From 5d888bb68faa7348a16cfa3dc68e830d520262b7 Mon Sep 17 00:00:00 2001 From: zhaojun <873019219@qq.com> Date: Sun, 10 Jul 2022 21:44:14 +0800 Subject: [PATCH] =?UTF-8?q?:bookmark:=20=E5=8F=91=E5=B8=83=204.0.0=20?= =?UTF-8?q?=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 15 +- API.md | 181 --- pom.xml | 213 ++- .../core/handlers/MybatisEnumTypeHandler.java | 173 +++ .../im/zhaojun/zfile/ZfileApplication.java | 39 +- .../zfile/admin/annoation/RefererCheck.java | 17 + .../admin/annoation/StorageParamItem.java | 75 ++ .../admin/annoation/StorageParamSelect.java | 28 + .../annoation/StorageParamSelectOption.java | 27 + .../model/StorageSourceParamDef.java | 95 ++ .../impl/EncodingStorageParamSelect.java | 30 + .../admin/constant/StorageConfigConstant.java | 14 + .../admin/constant/SystemConfigConstant.java | 18 + .../admin/controller/CacheController.java | 108 ++ .../zfile/admin/controller/LogController.java | 47 + .../link/DownloadLogManagerController.java | 147 ++ .../link/ShortLinkManagerController.java | 141 ++ .../controller/login/LoginController.java | 1 + .../controller/setting/SettingController.java | 103 ++ .../stroage/StorageMetaDataController.java | 44 + .../stroage/StorageSourceController.java | 134 ++ .../StorageSourceFilterController.java | 53 + .../StorageSourcePasswordController.java | 53 + .../StorageSourceReadmeController.java | 53 + .../admin/convert/DownloadLogConvert.java | 22 + .../zfile/admin/convert/ShortLinkConvert.java | 22 + .../ForbidFileOperationException.java | 22 + .../StorageSourceAutoConfigCorsException.java | 21 + .../zfile/admin/mapper/DownloadLogMapper.java | 15 + .../admin/mapper/FilterConfigMapper.java | 61 + .../admin/mapper/PasswordConfigMapper.java | 39 + .../admin/mapper/ReadmeConfigMapper.java | 40 + .../zfile/admin/mapper/ShortLinkMapper.java | 41 + .../mapper/StorageSourceConfigMapper.java | 65 + .../admin/mapper/StorageSourceMapper.java | 98 ++ .../admin/mapper/SystemConfigMapper.java | 48 + .../model/dto}/OneDriveToken.java | 7 +- .../model/dto/StorageSourceCacheKey.java} | 8 +- .../zfile/admin/model/entity/DownloadLog.java | 65 + .../admin/model/entity/FilterConfig.java | 52 + .../admin/model/entity/PasswordConfig.java | 51 + .../admin/model/entity/ReadmeConfig.java | 57 + .../zfile/admin/model/entity/ShortLink.java | 48 + .../admin/model/entity/StorageSource.java | 106 ++ .../model/entity/StorageSourceConfig.java | 53 + .../admin/model/entity/SystemConfig.java | 42 + .../model/enums/FileOperatorTypeEnum.java | 58 + .../enums/FilterConfigHiddenModeEnum.java | 36 + .../model/enums/LoginVerifyModeEnum.java | 36 + .../model/enums/ReadmeDisplayModeEnum.java | 36 + .../admin/model/enums/RefererTypeEnum.java | 36 + .../admin/model/enums/SearchModeEnum.java | 31 + .../model/enums/StorageParamTypeEnum.java | 36 + .../zfile/admin/model/param/AliyunParam.java | 13 + .../zfile/admin/model/param/FtpParam.java | 41 + .../zfile/admin/model/param/HuaweiParam.java | 13 + .../admin/model/param/IStorageParam.java | 5 + .../zfile/admin/model/param/LocalParam.java | 18 + .../model/param/MicrosoftDriveParam.java | 34 + .../zfile/admin/model/param/MinIOParam.java | 20 + .../admin/model/param/OneDriveChinaParam.java | 24 + .../admin/model/param/OneDriveParam.java | 13 + .../admin/model/param/ProxyDownloadParam.java | 13 + .../admin/model/param/ProxyTransferParam.java | 24 + .../admin/model/param/ProxyUploadParam.java | 10 + .../zfile/admin/model/param/QiniuParam.java | 13 + .../zfile/admin/model/param/S3BaseParam.java | 43 + .../zfile/admin/model/param/S3Param.java | 28 + .../zfile/admin/model/param/SftpParam.java | 13 + .../model/param/SharePointChinaParam.java | 22 + .../admin/model/param/SharePointParam.java | 27 + .../zfile/admin/model/param/TencentParam.java | 17 + .../zfile/admin/model/param/UpYunParam.java | 35 + .../zfile/admin/model/param/WebdavParam.java | 23 + .../model/request/DownloadTopInfoRequest.java | 23 + .../request/SaveStorageSourceRequest.java | 69 + .../request/link/QueryDownloadLogRequest.java | 46 + .../request/login/VerifyLogin2FARequest.java | 28 + .../request/s3/GetS3BucketListRequest.java | 34 + .../setting/UpdateLinkSettingRequest.java | 41 + .../setting/UpdateSecuritySettingRequest.java | 26 + .../setting/UpdateSiteSettingRequest.java | 35 + .../UpdateUserNameAndPasswordRequest.java | 1 + .../setting/UpdateViewSettingRequest.java | 52 + .../model/result/link/DownloadLogResult.java | 47 + .../model/result/link/ShortLinkResult.java | 35 + .../model/result/login/Login2FAResult.java | 24 + .../result/login/LoginVerifyImgResult.java | 22 + .../model/result/s3/S3BucketNameResult.java | 26 + .../result/sharepoint/SharepointSite.java | 25 + .../result/sharepoint/SharepointSiteList.java | 30 + .../storage/StorageSourceAdminResult.java | 82 ++ .../model/verify}/VerifyResult.java | 17 +- .../admin/service/DownloadLogService.java | 17 + .../admin/service/FilterConfigService.java | 219 +++ .../admin/service/PasswordConfigService.java | 159 +++ .../admin/service/ReadmeConfigService.java | 110 ++ .../zfile/admin/service/ShortLinkService.java | 116 ++ .../service/StorageSourceConfigService.java | 116 ++ .../admin/service/StorageSourceService.java | 502 +++++++ .../admin/service/SystemConfigService.java | 270 ++++ .../service/login/ImgVerifyCodeService.java | 84 ++ .../service/login/TwoFAVerifyService.java | 101 ++ .../zfile/aspect/FileListCacheAspect.java | 66 - .../im/zhaojun/zfile/cache/MyTimedCache.java | 55 - .../im/zhaojun/zfile/cache/ZFileCache.java | 331 ----- .../zfile/common/cache/MyTimedCache.java | 61 + .../zfile/common/cache/RefreshTokenCache.java | 53 + .../zfile/common/cache/ZFileCache.java | 298 ++++ .../common/config/FlywayDbInitializer.java | 1 + .../config/JacksonEnumDeserializer.java | 83 ++ .../common/config/Knife4jConfiguration.java | 1 + .../common/config/MyBatisPlusConfig.java | 37 + .../common/config/MybatisEnumTypeHandler.java | 173 +++ .../common/config/RestTemplateConfig.java | 79 ++ .../zfile/common/config/SaTokenConfigure.java | 1 + .../config/StringToEnumConverterFactory.java | 116 ++ .../zfile/common/config/WebMvcConfig.java | 44 + .../zfile/common/config/ZFileProperties.java | 21 + .../zfile/common/constant/ZFileConstant.java | 55 + .../common/context/StorageSourceContext.java | 290 ++++ .../callback}/OneDriveCallbackController.java | 55 +- .../download/ProxyDownloadController.java | 80 ++ .../front/FrontIndexController.java | 25 + .../onedrive/SharePointHelperController.java | 292 ++++ .../controller/s3/S3HelperController.java | 65 + .../upload/ProxyUploadController.java | 63 + .../DisableProxyDownloadException.java | 10 + .../common/exception/FileAccessException.java | 31 + .../common/exception/FileUploadException.java | 27 + .../common/exception/GlobalException.java | 1 + .../IllegalDownloadLinkException.java | 21 + .../InitializeStorageSourceException.java | 30 + .../exception/InstallSystemException.java | 30 + .../exception/InvalidShortLinkException.java | 29 + .../InvalidStorageSourceException.java | 29 + .../exception/LoginVerifyException.java | 14 + .../NotAllowedDownloadException.java | 7 +- .../NotEnabledStorageSourceException.java | 29 + .../exception/NotExistFileException.java | 5 +- .../exception/PasswordVerifyException.java | 22 + .../exception/PreviewException.java | 3 +- .../exception/RefreshCacheException.java | 2 +- ...eSourceNotSupportProxyUploadException.java | 14 + .../StorageSourceRefreshTokenException.java | 26 + .../exception/TextParseException.java | 5 +- .../exception/UnSupportedOperation.java | 29 + .../file/StorageSourceException.java | 32 + .../file/operator/DownloadFileException.java | 24 + .../file/operator/GetFileInfoException.java | 35 + .../operator/ProxyDownloadFileException.java | 24 + .../zfile/{ => common}/filter/CorsFilter.java | 21 +- .../schedule/AccessTokenRefreshSchedule.java | 48 + .../zhaojun/zfile/common/util/AjaxJson.java | 1 + .../zhaojun/zfile/common/util/ClassUtils.java | 28 + .../zfile/common/util/EnumConvertUtils.java | 82 ++ .../{ => common}/util/FileComparator.java | 27 +- .../zfile/common/util/FileResponseUtil.java | 64 + .../zfile/{ => common}/util/HttpUtil.java | 27 +- .../util/NaturalOrderComparator.java | 6 +- .../zfile/common/util/PlaceholderUtils.java | 144 ++ .../common/util/ProxyDownloadUrlUtils.java | 86 ++ .../zfile/common/util/RequestHolder.java | 77 ++ .../zfile/common/util/SizeToStrUtils.java | 51 + .../zfile/common/util/StringUtils.java | 405 ++++++ .../common/validation/StringListValue.java | 31 + .../StringListValueConstraintValidator.java | 53 + .../config/ApplicationContextConfigure.java | 36 - .../zhaojun/zfile/config/OneDriveConfig.java | 47 - .../zfile/config/SaTokenConfigure.java | 1 - .../im/zhaojun/zfile/config/WebMvcConfig.java | 53 - .../zfile/config/ZFileConfiguration.java | 42 - .../config/webdav/MiltonConfiguration.java | 60 - .../config/webdav/WebDavConfiguration.java | 33 - .../webdav/adapter/WebDavUrlAdapterImpl.java | 41 - .../auth/SystemConfigSecurityManager.java | 130 -- .../resolver/WebDavRedirectViewResolver.java | 62 - .../zhaojun/zfile/context/DriveContext.java | 147 -- .../zfile/context/StorageTypeContext.java | 56 - .../controller/admin/AdminController.java | 54 - .../controller/admin/CacheController.java | 72 - .../controller/admin/DebugController.java | 33 - .../controller/admin/DriveController.java | 173 --- .../zfile/controller/admin/LogController.java | 38 - .../controller/admin/LoginController.java | 1 - .../controller/admin/MateDataController.java | 47 - .../admin/ShortLinkManagerController.java | 45 - .../controller/home/DirectLinkController.java | 102 -- .../zfile/controller/home/FileController.java | 243 ---- .../controller/home/FileParseController.java | 45 - .../controller/home/LocalController.java | 52 - .../controller/home/ShortLinkController.java | 107 -- .../controller/home/WebDavController.java | 159 --- .../controller/install/InstallController.java | 45 - .../onedrive/SharePointHelperController.java | 134 -- .../exception/GlobleExceptionHandler.java | 135 -- .../exception/InitializeDriveException.java | 29 - .../exception/InvalidDriveException.java | 27 - .../exception/InvalidShortLinkException.java | 26 - .../exception/NotEnabledDriveException.java | 27 - .../exception/PasswordVerifyException.java | 27 - ...StorageStrategyUninitializedException.java | 30 - .../zhaojun/zfile/filter/NotFoundFilter.java | 1 - .../home/aspect/FileListCacheAspect.java | 66 + .../home/aspect/FileOperatorCheckAspect.java | 122 ++ .../zfile/home/aspect/RefererCheckAspect.java | 127 ++ .../zhaojun/zfile/home/chain/FileChain.java | 64 + .../zhaojun/zfile/home/chain/FileContext.java | 44 + .../FileAccessPermissionVerifyCommand.java | 42 + .../home/chain/command/FileHiddenCommand.java | 61 + .../home/chain/command/FileSortCommand.java | 47 + .../command/FileUrlAddVersionCommand.java | 45 + .../command/FolderPasswordVerifyCommand.java | 54 + .../zfile/home/controller/FileController.java | 1 + .../controller/FileOperatorController.java | 120 ++ .../home/controller/FileParseController.java | 40 + .../home/controller/ShortLinkController.java | 118 ++ .../zfile/home/controller/SiteController.java | 120 ++ .../home/convert/StorageSourceConvert.java | 55 + .../zfile/home/filter/DownloadLinkFilter.java | 220 +++ .../zfile/home/install/InstallController.java | 62 + .../zfile/home/model/dto/CacheInfoDTO.java | 32 + .../home/model/dto/StorageSourceAllParam.java | 106 ++ .../home/model/dto/StorageSourceDTO.java | 66 + .../zfile/home/model/dto/SystemConfigDTO.java | 119 ++ .../zfile/home/model/enums/FileTypeEnum.java | 31 + .../model/enums/StorageTypeEnum.java | 45 +- .../model/request/FileListConfigRequest.java | 25 + .../home/model/request/FileListRequest.java | 52 + .../model/request/InstallSystemRequest.java | 28 + .../model/request/SearchStorageRequest.java | 26 + .../model/request/SharePointInfoRequest.java | 35 + .../model/request/ShortLinkSearchRequest.java | 46 + .../model/request/UpdateStorageIdRequest.java | 27 + .../request/UpdateStorageSortRequest.java | 27 + .../home/model/request/UserLoginRequest.java | 1 + .../request/operator/DeleteFileRequest.java | 30 + .../request/operator/DeleteFolderRequest.java | 30 + .../request/operator/NewFolderRequest.java | 30 + .../request/operator/RenameFileRequest.java | 34 + .../request/operator/RenameFolderRequest.java | 34 + .../request/operator/UploadFileRequest.java | 33 + .../SharePointSearchSitesRequest.java | 24 + .../SharePointSiteListsRequest.java | 28 + .../home/model/result/FileInfoResult.java | 26 + .../home/model/result/FileItemResult.java | 38 + .../home/model/result/SiteConfigResult.java | 85 ++ .../result/StorageSourceConfigResult.java | 29 + .../model/result/StorageSourceResult.java | 36 + .../zfile/home/model/upyun/AuthModel.java | 31 + .../home/model/upyun/UploadSignParam.java | 28 + .../service/base/AbstractBaseFileService.java | 280 ++++ .../base/AbstractOneDriveServiceBase.java | 30 + .../base/AbstractS3BaseFileService.java | 250 ++++ .../base/AbstractSharePointServiceBase.java | 22 + .../home/service/base/BaseFileService.java | 35 + .../base/MicrosoftDriveServiceBase.java | 408 ++++++ .../service/base/ProxyDownloadService.java | 21 + .../service/base/ProxyTransferService.java | 111 ++ .../home/service/base/ProxyUploadService.java | 22 + .../service/base/RefreshTokenService.java | 12 + .../home/service/impl/AliyunServiceImpl.java | 39 + .../home/service/impl/FtpServiceImpl.java | 198 +++ .../home/service/impl/HuaweiServiceImpl.java | 38 + .../home/service/impl/LocalServiceImpl.java | 201 +++ .../home/service/impl/MinIOServiceImpl.java | 39 + .../impl/OneDriveChinaServiceImpl.java | 67 + .../service/impl/OneDriveServiceImpl.java | 67 + .../home/service/impl/QiniuServiceImpl.java | 71 + .../home/service/impl/S3ServiceImpl.java | 47 + .../home/service/impl/SftpServiceImpl.java | 171 +++ .../impl/SharePointChinaServiceImpl.java | 67 + .../service/impl/SharePointServiceImpl.java | 67 + .../home/service/impl/TencentServiceImpl.java | 37 + .../home/service/impl/UpYunServiceImpl.java | 245 ++++ .../home/service/impl/WebdavServiceImpl.java | 183 +++ .../LocalFileResponseTypeConstant.java | 1 - .../model/constant/StorageConfigConstant.java | 54 - .../model/constant/SystemConfigConstant.java | 24 - .../zfile/model/constant/ZFileConstant.java | 85 -- .../zhaojun/zfile/model/dto/AudioInfoDTO.java | 27 - .../zhaojun/zfile/model/dto/CacheInfoDTO.java | 23 - .../zfile/model/dto/DriveConfigDTO.java | 39 - .../zhaojun/zfile/model/dto/DriveListDTO.java | 21 - .../zhaojun/zfile/model/dto/FileItemDTO.java | 79 -- .../zhaojun/zfile/model/dto/FileListDTO.java | 18 - .../zfile/model/dto/SharePointInfoVO.java | 20 - .../model/dto/StorageStrategyConfig.java | 59 - .../zfile/model/dto/StorageStrategyDTO.java | 23 - .../zfile/model/dto/SystemConfigDTO.java | 55 - .../zfile/model/dto/SystemFrontConfigDTO.java | 56 - .../zfile/model/entity/DriveConfig.java | 41 - .../zfile/model/entity/FilterConfig.java | 25 - .../zfile/model/entity/ShortLinkConfig.java | 22 - .../zfile/model/entity/StorageConfig.java | 43 - .../zfile/model/entity/SystemConfig.java | 31 - .../model/entity/webdav/WebDavEntity.java | 112 -- .../zfile/model/entity/webdav/WebDavFile.java | 37 - .../model/entity/webdav/WebDavFolder.java | 41 - .../zfile/model/enums/FileTypeEnum.java | 32 - .../model/enums/StorageTypeEnumConvert.java | 22 - .../StorageTypeEnumDeSerializerConvert.java | 16 - ...torageTypeEnumJsonDeSerializerConvert.java | 18 - .../StorageTypeEnumSerializerConvert.java | 18 - .../zfile/model/support/FilePageModel.java | 20 - .../zfile/model/support/ResultBean.java | 97 -- .../repository/DriverConfigRepository.java | 65 - .../repository/FilterConfigRepository.java | 44 - .../repository/ShortLinkConfigRepository.java | 75 -- .../repository/StorageConfigRepository.java | 87 -- .../repository/SystemConfigRepository.java | 23 - .../OneDriveTokenRefreshSchedule.java | 63 - .../zfile/service/DriveConfigService.java | 414 ------ .../zfile/service/FilterConfigService.java | 68 - .../zfile/service/ShortLinkConfigService.java | 84 -- .../zfile/service/StorageConfigService.java | 60 - .../zfile/service/SystemConfigService.java | 187 --- .../service/base/AbstractBaseFileService.java | 181 --- .../base/AbstractOneDriveServiceBase.java | 35 - .../base/AbstractS3BaseFileService.java | 144 -- .../base/AbstractSharePointServiceBase.java | 34 - .../zfile/service/base/BaseFileService.java | 28 - .../base/MicrosoftDriveServiceBase.java | 298 ---- .../zfile/service/impl/AliyunServiceImpl.java | 79 -- .../zfile/service/impl/FtpServiceImpl.java | 150 --- .../zfile/service/impl/HuaweiServiceImpl.java | 80 -- .../zfile/service/impl/LocalServiceImpl.java | 160 --- .../zfile/service/impl/MinIOServiceImpl.java | 83 -- .../impl/OneDriveChinaServiceImpl.java | 102 -- .../service/impl/OneDriveServiceImpl.java | 101 -- .../zfile/service/impl/QiniuServiceImpl.java | 80 -- .../zfile/service/impl/S3ServiceImpl.java | 92 -- .../impl/SharePointChinaServiceImpl.java | 102 -- .../service/impl/SharePointServiceImpl.java | 102 -- .../service/impl/TencentServiceImpl.java | 80 -- .../zfile/service/impl/UFileServiceImpl.java | 20 - .../zfile/service/impl/UpYunServiceImpl.java | 162 --- .../zfile/service/impl/WebdavServiceImpl.java | 133 -- .../java/im/zhaojun/zfile/util/AudioUtil.java | 104 -- .../java/im/zhaojun/zfile/util/FileUtil.java | 198 --- .../zhaojun/zfile/util/RegexMatchUtils.java | 61 - .../zfile/util/SpringContextHolder.java | 74 - .../zhaojun/zfile/util/StartupListener.java | 53 - .../im/zhaojun/zfile/util/StringUtils.java | 157 --- ...itional-spring-configuration-metadata.json | 5 - .../resources/application-default.properties | 1 + src/main/resources/application.properties | 30 + src/main/resources/application.yml | 84 -- src/main/resources/db/data.sql | 17 - .../resources/db/migration-mysql/R__data.sql | 1 + .../db/migration-mysql/V1__Base_version.sql | 1 + .../resources/db/migration-sqlite/R__data.sql | 1 + .../db/migration-sqlite/V1__Base_version.sql | 1 + src/main/resources/logback-spring.xml | 16 +- .../resources/mapper/DownloadLogMapper.xml | 21 + .../resources/mapper/FilterConfigMapper.xml | 49 + .../resources/mapper/PasswordConfigMapper.xml | 32 + .../resources/mapper/ReadmeConfigMapper.xml | 33 + src/main/resources/mapper/ShortLinkMapper.xml | 37 + .../resources/mapper/StorageConfigMapper.xml | 68 + .../resources/mapper/StorageSourceMapper.xml | 72 + .../resources/mapper/SystemConfigMapper.xml | 44 + src/main/resources/rebel.xml | 14 - .../resources/static/assets/401.23b72021.js | 1 + .../resources/static/assets/401.3f3777af.js | 1 + .../resources/static/assets/401.f56d4c2a.svg | 1 + .../resources/static/assets/403.07bdf36d.svg | 45 + .../resources/static/assets/403.179bde5f.js | 1 + .../resources/static/assets/403.65996b09.css | 1 + .../resources/static/assets/404.46de94fc.svg | 1 + .../resources/static/assets/404.b443a636.css | 1 + .../resources/static/assets/404.b81b6fc2.js | 1 + .../static/assets/BadgeCheckIcon.fc085fd1.js | 1 + .../static/assets/FileGallery.34e81982.css | 1 + .../static/assets/FileGallery.4ff55311.js | 1 + .../static/assets/MarkdownViewer.6a8257c9.js | 48 + .../static/assets/MarkdownViewer.d4ddbd4f.css | 1 + .../static/assets/SvgIcon.e3258df0.js | 1 + .../static/assets/TextViewer.a3d21d3c.js | 625 +++++++++ .../static/assets/TextViewer.a4e3072e.css | 1 + .../static/assets/VideoPlayer.1614ab82.css | 1 + .../static/assets/VideoPlayer.70650d66.js | 52 + .../static/assets/ZFormItem.7698444e.css | 1 + .../static/assets/ZFormItem.f4459b46.js | 1 + .../static/assets/_storageId_.080df354.js | 1 + .../static/assets/_storageId_.11ae694b.css | 1 + .../static/assets/_storageId_.3751388b.js | 1 + .../static/assets/_storageId_.4ca0040d.js | 1 + .../static/assets/_storageId_.60e7270d.js | 1 + .../static/assets/_storageId_.e28774f9.css | 1 + .../static/assets/_storageId_.e45f650b.css | 1 + .../resources/static/assets/about.06020ca1.js | 1 + .../static/assets/add-file.9d01a01a.svg | 1 + .../assets/add-folder-back.28141d7f.svg | 1 + .../static/assets/add-folder.7ef044d1.svg | 1 + .../resources/static/assets/add.598ba734.svg | 1 + .../static/assets/admin-login.db1d73c1.svg | 1 + .../static/assets/admin-setting.fad9817e.js | 1 + .../static/assets/admin-storage.12c0dbf5.js | 1 + .../resources/static/assets/admin.8c67bb88.js | 4 + .../resources/static/assets/alert.1b484cdc.js | 1 + .../static/assets/alert.220a30c1.css | 1 + .../static/assets/aliyun.0f005258.svg | 1 + .../static/assets/baidu.4a11f5ee.svg | 1 + .../static/assets/base-editor.59951ec0.css | 1 + .../static/assets/base-editor.a9da2621.js | 15 + .../resources/static/assets/base.197bc1e5.js | 1 + .../resources/static/assets/base.ef3e45d0.css | 1 + .../static/assets/basic-setting.268395dd.js | 1 + .../static/assets/button.cca160de.css | 1 + .../static/assets/card-layout.0aa8ea66.svg | 1 + .../static/assets/checkbox.4d1c2a75.js | 20 + .../static/assets/checkbox.74f2ee5a.css | 1 + .../static/assets/codicon.c99115f8.ttf | Bin 0 -> 70776 bytes .../static/assets/common.6565cdd3.js | 1 + .../static/assets/common.a295a3b6.js | 1 + .../static/assets/common.d0a2bd7a.js | 1 + .../resources/static/assets/copy.0d4a2f7b.svg | 1 + .../resources/static/assets/cpp.337468ce.js | 6 + .../resources/static/assets/css.4c22ed20.js | 8 + .../static/assets/dayjs.min.b4bc51d5.js | 1 + .../static/assets/debounce.a03a8484.js | 1 + .../static/assets/default.83526f4b.js | 1 + .../static/assets/delete.06c9bd69.svg | 1 + .../static/assets/dialog.731d01ef.css | 1 + .../static/assets/dialog.d131328b.js | 1 + .../static/assets/directive.b8a17520.js | 1 + .../static/assets/dockerfile.de6a0f2c.js | 6 + .../static/assets/download.48c98cdb.svg | 4 + .../static/assets/dropdown-item.32357c71.css | 1 + .../static/assets/dropdown-item.731434fa.js | 1 + .../static/assets/dropdown.e1a9d9ca.js | 1 + .../resources/static/assets/edit.a2e2c356.svg | 5 + .../static/assets/empty.d5d3dec8.svg | 145 ++ .../resources/static/assets/event.3ec63147.js | 1 + .../resources/static/assets/event.776e7e11.js | 1 + .../static/assets/file-type-apk.e1385fc3.svg | 1 + .../assets/file-type-archive.f4b181db.svg | 1 + .../assets/file-type-audio.94e75894.svg | 1 + .../static/assets/file-type-back.ca0b84c2.svg | 1 + .../static/assets/file-type-css.5dfb9ed8.svg | 1 + .../static/assets/file-type-deb.5804788b.svg | 1 + .../static/assets/file-type-dll.6ea302d9.svg | 1 + .../static/assets/file-type-doc.a9d08313.svg | 1 + .../assets/file-type-document.b6e28e75.svg | 1 + .../static/assets/file-type-exe.b561ed3f.svg | 1 + .../assets/file-type-expression.3aaf04f1.svg | 1 + .../static/assets/file-type-file.47afa61a.svg | 1 + .../assets/file-type-folder.35bcb02c.svg | 1 + .../static/assets/file-type-html.e37c00f9.svg | 1 + .../assets/file-type-image.689e667c.svg | 1 + .../static/assets/file-type-java.e50a4779.svg | 1 + .../static/assets/file-type-js.5c3b67c3.svg | 1 + .../static/assets/file-type-less.429d4f89.svg | 1 + .../static/assets/file-type-md.4dd32bf9.svg | 1 + .../assets/file-type-office.9af40573.svg | 1 + .../static/assets/file-type-pdf.1e018e0c.svg | 1 + .../static/assets/file-type-php.4feb4413.svg | 1 + .../static/assets/file-type-ppt.3d3e6af9.svg | 1 + .../static/assets/file-type-py.09b51350.svg | 1 + .../static/assets/file-type-rb.32961396.svg | 1 + .../static/assets/file-type-root.80ddc97b.svg | 1 + .../static/assets/file-type-rpm.559b18a5.svg | 1 + .../static/assets/file-type-rust.69994176.svg | 1 + .../assets/file-type-script.52b80ced.svg | 1 + .../static/assets/file-type-text.8ff306a0.svg | 1 + .../static/assets/file-type-vbs.22c9b0b7.svg | 1 + .../assets/file-type-video.888eeb7b.svg | 1 + .../static/assets/file-type-xls.db6934ae.svg | 1 + .../static/assets/file-type-xml.234b67f6.svg | 1 + .../static/assets/file-type-yaml.c1af7aa9.svg | 1 + .../static/assets/file-upload.65dff662.svg | 1 + .../resources/static/assets/file.3623dcff.js | 1195 +++++++++++++++++ .../resources/static/assets/file.68aaede4.js | 1 + .../resources/static/assets/file.733502d9.css | 1 + .../resources/static/assets/file.8ce7ebe5.css | 1 + .../static/assets/files.a94428cd.svg | 1 + .../static/assets/focus-trap.fe4b8179.js | 1 + .../static/assets/form-item.4ffcf52c.css | 1 + .../static/assets/form-item.962ab13d.js | 1 + .../resources/static/assets/ftp.c6a679c1.svg | 13 + .../static/assets/github.1e923e45.css | 1 + .../static/assets/github.6902a714.js | 19 + .../resources/static/assets/go.1e1292ae.js | 6 + .../static/assets/graphql.900d9927.js | 6 + .../resources/static/assets/html.b425aed9.js | 6 + .../static/assets/huawei.57d8824c.svg | 1 + .../resources/static/assets/icon.cca102d8.css | 1 + .../static/assets/image-viewer.856a8939.css | 1 + .../static/assets/image-viewer.9e2d72eb.js | 1 + .../static/assets/img-disable.16380239.svg | 22 + .../static/assets/img-enable.ca957fe0.svg | 20 + .../static/assets/index.027c5919.css | 1 + .../resources/static/assets/index.02d854ed.js | 12 + .../resources/static/assets/index.283c220f.js | 1 + .../resources/static/assets/index.2f5dd8a9.js | 1 + .../resources/static/assets/index.3134231f.js | 1 + .../resources/static/assets/index.3fed707f.js | 1 + .../resources/static/assets/index.4546773b.js | 1 + .../resources/static/assets/index.6dd6d04c.js | 1 + .../resources/static/assets/index.7fa0be7b.js | 1 + .../resources/static/assets/index.9aca9b8e.js | 9 + .../resources/static/assets/index.ac29bb47.js | 1 + .../static/assets/index.b3614aa3.css | 1 + .../static/assets/index.b549c954.css | 15 + .../resources/static/assets/index.bbf7818f.js | 111 ++ .../resources/static/assets/index.c66de53e.js | 1 + .../resources/static/assets/index.c851300a.js | 1 + .../resources/static/assets/index.c92ded65.js | 12 + .../resources/static/assets/index.dde1fe07.js | 1 + .../resources/static/assets/index.e63d92a7.js | 1 + .../static/assets/index.edc59957.css | 1 + .../resources/static/assets/index.eeb08216.js | 1 + .../static/assets/index.f31e0464.css | 1 + .../resources/static/assets/info.54497d89.svg | 3 + .../resources/static/assets/ini.75848fa5.js | 6 + .../static/assets/input.c3618236.css | 1 + .../static/assets/install-step.28fbaa8c.svg | 40 + .../static/assets/install.0838262e.js | 1 + .../static/assets/isEqual.a8284c4e.js | 1 + .../resources/static/assets/java.13c44e5c.js | 6 + .../static/assets/javascript.f8f21cc3.js | 6 + .../static/assets/kotlin.3399aeb6.js | 6 + .../resources/static/assets/less.b6aad23a.js | 7 + .../resources/static/assets/link.0a44cb5c.svg | 1 + .../resources/static/assets/link.b3090580.js | 1 + .../resources/static/assets/link.f7c436ab.css | 1 + .../static/assets/loading.dd11abc3.css | 1 + .../static/assets/local.f6bc02e5.svg | 11 + .../resources/static/assets/log.108b3524.css | 1 + .../resources/static/assets/log.80920fd2.js | 1 + .../resources/static/assets/login.01a8ea4c.js | 1 + .../static/assets/login.0bbedd1d.css | 1 + .../resources/static/assets/login.94b8768f.js | 1 + .../static/assets/login.e2217ec4.svg | 1 + .../static/assets/markdown.236ff8ef.js | 6 + .../static/assets/minio.e5474b90.svg | 1 + .../resources/static/assets/move.897d1439.svg | 6 + .../resources/static/assets/mysql.fdc04fe1.js | 6 + .../static/assets/new-folder.549c271c.svg | 1 + .../static/assets/notFound.345f1754.svg | 1 + .../static/assets/notFound.abb340bf.js | 1 + .../static/assets/onedrive-china.f477f7d4.svg | 18 + .../static/assets/onedrive.1120a54d.svg | 4 + .../static/assets/overlay.21d31a0b.js | 1 + .../static/assets/overlay.dd389659.css | 1 + .../resources/static/assets/php.a9540a84.js | 6 + .../static/assets/popover.74dd4546.css | 1 + .../static/assets/popper.91c84279.js | 1 + .../static/assets/popper.e5c0055c.css | 1 + .../static/assets/preview.330b1af8.svg | 10 + .../static/assets/preview.91ef53b4.js | 5 + .../static/assets/preview.ebfa3115.css | 1 + .../resources/static/assets/prism.bf3a2a07.js | 9 + .../static/assets/python.b05e1114.js | 6 + .../static/assets/qiniu.6036c6bb.svg | 1 + .../static/assets/radio.3ebff4f2.css | 1 + .../resources/static/assets/radio.6dc3ee2c.js | 1 + .../assets/readme-editor-dialog.6f036205.js | 1 + .../resources/static/assets/refs.e098e5db.js | 1 + .../static/assets/request.19cbe8c5.js | 1 + .../static/assets/reset-password.b19e1ea5.svg | 1 + .../static/assets/route-block.9b0645f8.js | 1 + .../resources/static/assets/s3.280509b0.svg | 5 + .../static/assets/scroll.4cf9bb37.js | 1 + .../static/assets/scrollbar.7d059005.js | 1 + .../static/assets/scrollbar.88366223.css | 1 + .../resources/static/assets/scss.19caa34f.js | 8 + .../static/assets/select-all.4aaccd3e.svg | 1 + .../static/assets/select.00495d75.css | 1 + .../static/assets/select.3d28f8f8.js | 1 + .../static/assets/server.f8a853a2.svg | 1 + .../static/assets/setting.18e82df4.js | 1 + .../static/assets/settings.b524ea2e.svg | 1 + .../resources/static/assets/sftp.c71078df.svg | 13 + .../assets/sharepoint-china.9907efac.svg | 23 + .../static/assets/sharepoint.1bd337fc.svg | 1 + .../static/assets/site-setting.12d28780.js | 1 + .../static/assets/site-setting.45584336.css | 1 + .../static/assets/sortable.esm.a99254e8.js | 6 + .../resources/static/assets/sql.5f2f7ebd.js | 6 + .../static/assets/storage-list.33b9c5a5.css | 1 + .../static/assets/storage-list.3f531448.js | 1 + .../static/assets/storage-list.a02d975e.js | 1 + .../static/assets/success.ddc7b948.svg | 1 + .../static/assets/switch.4caa5287.js | 1 + .../static/assets/switch.de8121aa.css | 1 + .../static/assets/table-column.58e8e9a6.css | 1 + .../static/assets/table-column.f368ae14.js | 1 + .../static/assets/table-layout.e8017f7c.svg | 1 + .../static/assets/target.182a531a.svg | 1 + .../static/assets/tencent.7b52a406.svg | 9 + .../resources/static/assets/test.b2ee4998.svg | 1 + .../static/assets/tool-close.4c4ed1a4.svg | 7 + .../static/assets/tool-close2.a77027c1.svg | 4 + .../static/assets/tool-delete.306633e9.svg | 5 + .../static/assets/tool-download.bf4da40f.svg | 4 + .../static/assets/tool-edit.405fd9c3.svg | 5 + .../static/assets/tool-link.6a893d0f.svg | 1 + .../static/assets/tool-move.fa418958.svg | 6 + .../static/assets/tool-preview.13c8406c.svg | 10 + .../static/assets/tool-setting.f36fb1c2.svg | 8 + .../static/assets/tooltip.f118fcb0.js | 1 + .../static/assets/typescript.47aa7854.js | 6 + .../static/assets/ufile.e305639b.svg | 14 + .../static/assets/update-password.020fe0a7.js | 1 + .../static/assets/upload-1.f348e120.svg | 50 + .../static/assets/upload-folder.8e924b23.svg | 1 + .../static/assets/upload.a9eeb994.svg | 1 + .../static/assets/upyun.b24d52ea.svg | 1 + .../static/assets/useFileUpload.ba32a7f8.js | 4 + .../static/assets/useLinkSetting.96dd46ae.js | 1 + .../static/assets/validator.998eeed0.js | 1 + .../static/assets/video-download.3a226681.png | Bin 0 -> 5589 bytes .../static/assets/video-iina.1db26170.png | Bin 0 -> 56634 bytes .../static/assets/video-motrix.95ef7e61.png | Bin 0 -> 24021 bytes .../assets/video-mxplayer-pro.10406916.png | Bin 0 -> 33135 bytes .../static/assets/video-mxplayer.5dfa69aa.png | Bin 0 -> 4679 bytes .../static/assets/video-thunder.5e7f4cec.png | Bin 0 -> 79692 bytes .../static/assets/video-vlc.54e63a7e.png | Bin 0 -> 9581 bytes .../static/assets/view-setting.26f8cc36.css | 1 + .../static/assets/view-setting.f7cd3f90.js | 1 + .../vue.runtime.esm-bundler.1e3a6623.js | 1 + .../vue3-clipboard.esm-bundler.34366eba.js | 10 + .../static/assets/vuepress.5dbd54dc.css | 1 + .../static/assets/vuepress.ccb055dc.js | 25 + .../static/assets/warning.7093bb23.svg | 1 + .../static/assets/webdav.c885a54c.svg | 1 + .../resources/static/assets/xml.9fe09fd6.js | 6 + .../resources/static/assets/yaml.7d8c6ae6.js | 6 + .../static/assets/zfile-basic.5314831c.js | 1 + .../static/assets/zfile-basic.58891cac.svg | 17 + .../assets/zfile-horizontal.2a5355c9.js | 1 + .../assets/zfile-horizontal.abd5aec9.svg | 16 + .../static/assets/zfile.76406368.svg | 1 + .../static/assets/zh-cn.3cfc5143.css | 1 + .../resources/static/assets/zh-cn.7b401b88.js | 1 + .../resources/static/css/admin.da89697f.css | 1 - .../static/css/admin~front.630e4aa3.css | 1 - .../resources/static/css/app.89e722fc.css | 1 - .../static/css/chunk-vendors.74b40c55.css | 7 - .../static/css/front-audio.67db92c1.css | 1 - .../static/css/front-text.dad0723a.css | 1 - .../static/css/front-video.fb7331d8.css | 1 - .../resources/static/css/front.b46debaa.css | 1 - .../resources/static/css/install.19dbd4e6.css | 1 - .../static/css/monaco-editor.0dbdf587.css | 1 - src/main/resources/static/editor.worker.js | 6 - src/main/resources/static/favicon.ico | Bin 10265 -> 0 bytes src/main/resources/static/favicon.svg | 14 + .../static/fonts/element-icons.535877f5.woff | Bin 28200 -> 0 bytes .../static/fonts/element-icons.732389de.ttf | Bin 55956 -> 0 bytes .../static/img/icon-ext.ba81b24c.png | Bin 5911 -> 0 bytes .../resources/static/img/icon.551539f8.png | Bin 11493 -> 0 bytes .../static/img/iconfont.573255ce.svg | 36 - .../static/img/loading-0.a72011cc.gif | Bin 5793 -> 0 bytes src/main/resources/static/index.html | 27 +- src/main/resources/static/js/admin.min.js | 8 - .../resources/static/js/admin~front.min.js | 1 - src/main/resources/static/js/app.js | 3 - .../resources/static/js/chunk-2d0a43df.min.js | 1 - .../resources/static/js/chunk-2d0e57ec.min.js | 1 - .../resources/static/js/chunk-vendors.min.js | 56 - .../resources/static/js/front-audio.min.js | 1 - .../resources/static/js/front-text.min.js | 1 - .../resources/static/js/front-video.min.js | 218 --- src/main/resources/static/js/front.min.js | 1 - src/main/resources/static/js/install.min.js | 1 - .../resources/static/js/monaco-editor.min.js | 6 - src/main/resources/static/logo.png | Bin 0 -> 11411 bytes src/main/resources/static/zfile.config.json | 26 +- src/main/resources/templates/error/404.html | 187 +++ 672 files changed, 18083 insertions(+), 8856 deletions(-) delete mode 100644 API.md create mode 100644 src/main/java/com/baomidou/mybatisplus/core/handlers/MybatisEnumTypeHandler.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/annoation/RefererCheck.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/annoation/StorageParamItem.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/annoation/StorageParamSelect.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/annoation/StorageParamSelectOption.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/annoation/model/StorageSourceParamDef.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/annoation/select/impl/EncodingStorageParamSelect.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/constant/StorageConfigConstant.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/constant/SystemConfigConstant.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/controller/CacheController.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/controller/LogController.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/controller/link/DownloadLogManagerController.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/controller/link/ShortLinkManagerController.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/controller/login/LoginController.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/controller/setting/SettingController.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/controller/stroage/StorageMetaDataController.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/controller/stroage/StorageSourceController.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/controller/stroage/StorageSourceFilterController.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/controller/stroage/StorageSourcePasswordController.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/controller/stroage/StorageSourceReadmeController.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/convert/DownloadLogConvert.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/convert/ShortLinkConvert.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/exception/ForbidFileOperationException.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/exception/StorageSourceAutoConfigCorsException.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/mapper/DownloadLogMapper.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/mapper/FilterConfigMapper.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/mapper/PasswordConfigMapper.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/mapper/ReadmeConfigMapper.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/mapper/ShortLinkMapper.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/mapper/StorageSourceConfigMapper.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/mapper/StorageSourceMapper.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/mapper/SystemConfigMapper.java rename src/main/java/im/zhaojun/zfile/{model/support => admin/model/dto}/OneDriveToken.java (80%) rename src/main/java/im/zhaojun/zfile/{cache/DriveCacheKey.java => admin/model/dto/StorageSourceCacheKey.java} (51%) create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/entity/DownloadLog.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/entity/FilterConfig.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/entity/PasswordConfig.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/entity/ReadmeConfig.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/entity/ShortLink.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/entity/StorageSource.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/entity/StorageSourceConfig.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/entity/SystemConfig.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/enums/FileOperatorTypeEnum.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/enums/FilterConfigHiddenModeEnum.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/enums/LoginVerifyModeEnum.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/enums/ReadmeDisplayModeEnum.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/enums/RefererTypeEnum.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/enums/SearchModeEnum.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/enums/StorageParamTypeEnum.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/param/AliyunParam.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/param/FtpParam.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/param/HuaweiParam.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/param/IStorageParam.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/param/LocalParam.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/param/MicrosoftDriveParam.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/param/MinIOParam.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/param/OneDriveChinaParam.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/param/OneDriveParam.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/param/ProxyDownloadParam.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/param/ProxyTransferParam.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/param/ProxyUploadParam.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/param/QiniuParam.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/param/S3BaseParam.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/param/S3Param.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/param/SftpParam.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/param/SharePointChinaParam.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/param/SharePointParam.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/param/TencentParam.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/param/UpYunParam.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/param/WebdavParam.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/request/DownloadTopInfoRequest.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/request/SaveStorageSourceRequest.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/request/link/QueryDownloadLogRequest.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/request/login/VerifyLogin2FARequest.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/request/s3/GetS3BucketListRequest.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/request/setting/UpdateLinkSettingRequest.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/request/setting/UpdateSecuritySettingRequest.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/request/setting/UpdateSiteSettingRequest.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/request/setting/UpdateUserNameAndPasswordRequest.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/request/setting/UpdateViewSettingRequest.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/result/link/DownloadLogResult.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/result/link/ShortLinkResult.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/result/login/Login2FAResult.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/result/login/LoginVerifyImgResult.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/result/s3/S3BucketNameResult.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/result/sharepoint/SharepointSite.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/result/sharepoint/SharepointSiteList.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/model/result/storage/StorageSourceAdminResult.java rename src/main/java/im/zhaojun/zfile/{model/support => admin/model/verify}/VerifyResult.java (75%) create mode 100644 src/main/java/im/zhaojun/zfile/admin/service/DownloadLogService.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/service/FilterConfigService.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/service/PasswordConfigService.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/service/ReadmeConfigService.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/service/ShortLinkService.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/service/StorageSourceConfigService.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/service/StorageSourceService.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/service/SystemConfigService.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/service/login/ImgVerifyCodeService.java create mode 100644 src/main/java/im/zhaojun/zfile/admin/service/login/TwoFAVerifyService.java delete mode 100644 src/main/java/im/zhaojun/zfile/aspect/FileListCacheAspect.java delete mode 100644 src/main/java/im/zhaojun/zfile/cache/MyTimedCache.java delete mode 100644 src/main/java/im/zhaojun/zfile/cache/ZFileCache.java create mode 100644 src/main/java/im/zhaojun/zfile/common/cache/MyTimedCache.java create mode 100644 src/main/java/im/zhaojun/zfile/common/cache/RefreshTokenCache.java create mode 100644 src/main/java/im/zhaojun/zfile/common/cache/ZFileCache.java create mode 100644 src/main/java/im/zhaojun/zfile/common/config/FlywayDbInitializer.java create mode 100644 src/main/java/im/zhaojun/zfile/common/config/JacksonEnumDeserializer.java create mode 100644 src/main/java/im/zhaojun/zfile/common/config/Knife4jConfiguration.java create mode 100644 src/main/java/im/zhaojun/zfile/common/config/MyBatisPlusConfig.java create mode 100644 src/main/java/im/zhaojun/zfile/common/config/MybatisEnumTypeHandler.java create mode 100644 src/main/java/im/zhaojun/zfile/common/config/RestTemplateConfig.java create mode 100644 src/main/java/im/zhaojun/zfile/common/config/SaTokenConfigure.java create mode 100644 src/main/java/im/zhaojun/zfile/common/config/StringToEnumConverterFactory.java create mode 100644 src/main/java/im/zhaojun/zfile/common/config/WebMvcConfig.java create mode 100644 src/main/java/im/zhaojun/zfile/common/config/ZFileProperties.java create mode 100644 src/main/java/im/zhaojun/zfile/common/constant/ZFileConstant.java create mode 100644 src/main/java/im/zhaojun/zfile/common/context/StorageSourceContext.java rename src/main/java/im/zhaojun/zfile/{controller/onedrive => common/controller/callback}/OneDriveCallbackController.java (59%) create mode 100644 src/main/java/im/zhaojun/zfile/common/controller/download/ProxyDownloadController.java create mode 100644 src/main/java/im/zhaojun/zfile/common/controller/front/FrontIndexController.java create mode 100644 src/main/java/im/zhaojun/zfile/common/controller/onedrive/SharePointHelperController.java create mode 100644 src/main/java/im/zhaojun/zfile/common/controller/s3/S3HelperController.java create mode 100644 src/main/java/im/zhaojun/zfile/common/controller/upload/ProxyUploadController.java create mode 100644 src/main/java/im/zhaojun/zfile/common/exception/DisableProxyDownloadException.java create mode 100644 src/main/java/im/zhaojun/zfile/common/exception/FileAccessException.java create mode 100644 src/main/java/im/zhaojun/zfile/common/exception/FileUploadException.java create mode 100644 src/main/java/im/zhaojun/zfile/common/exception/GlobalException.java create mode 100644 src/main/java/im/zhaojun/zfile/common/exception/IllegalDownloadLinkException.java create mode 100644 src/main/java/im/zhaojun/zfile/common/exception/InitializeStorageSourceException.java create mode 100644 src/main/java/im/zhaojun/zfile/common/exception/InstallSystemException.java create mode 100644 src/main/java/im/zhaojun/zfile/common/exception/InvalidShortLinkException.java create mode 100644 src/main/java/im/zhaojun/zfile/common/exception/InvalidStorageSourceException.java create mode 100644 src/main/java/im/zhaojun/zfile/common/exception/LoginVerifyException.java rename src/main/java/im/zhaojun/zfile/{ => common}/exception/NotAllowedDownloadException.java (93%) create mode 100644 src/main/java/im/zhaojun/zfile/common/exception/NotEnabledStorageSourceException.java rename src/main/java/im/zhaojun/zfile/{ => common}/exception/NotExistFileException.java (93%) create mode 100644 src/main/java/im/zhaojun/zfile/common/exception/PasswordVerifyException.java rename src/main/java/im/zhaojun/zfile/{ => common}/exception/PreviewException.java (92%) rename src/main/java/im/zhaojun/zfile/{ => common}/exception/RefreshCacheException.java (93%) create mode 100644 src/main/java/im/zhaojun/zfile/common/exception/StorageSourceNotSupportProxyUploadException.java create mode 100644 src/main/java/im/zhaojun/zfile/common/exception/StorageSourceRefreshTokenException.java rename src/main/java/im/zhaojun/zfile/{ => common}/exception/TextParseException.java (93%) create mode 100644 src/main/java/im/zhaojun/zfile/common/exception/UnSupportedOperation.java create mode 100644 src/main/java/im/zhaojun/zfile/common/exception/file/StorageSourceException.java create mode 100644 src/main/java/im/zhaojun/zfile/common/exception/file/operator/DownloadFileException.java create mode 100644 src/main/java/im/zhaojun/zfile/common/exception/file/operator/GetFileInfoException.java create mode 100644 src/main/java/im/zhaojun/zfile/common/exception/file/operator/ProxyDownloadFileException.java rename src/main/java/im/zhaojun/zfile/{ => common}/filter/CorsFilter.java (77%) create mode 100644 src/main/java/im/zhaojun/zfile/common/schedule/AccessTokenRefreshSchedule.java create mode 100644 src/main/java/im/zhaojun/zfile/common/util/AjaxJson.java create mode 100644 src/main/java/im/zhaojun/zfile/common/util/ClassUtils.java create mode 100644 src/main/java/im/zhaojun/zfile/common/util/EnumConvertUtils.java rename src/main/java/im/zhaojun/zfile/{ => common}/util/FileComparator.java (73%) create mode 100644 src/main/java/im/zhaojun/zfile/common/util/FileResponseUtil.java rename src/main/java/im/zhaojun/zfile/{ => common}/util/HttpUtil.java (75%) rename src/main/java/im/zhaojun/zfile/{ => common}/util/NaturalOrderComparator.java (98%) create mode 100644 src/main/java/im/zhaojun/zfile/common/util/PlaceholderUtils.java create mode 100644 src/main/java/im/zhaojun/zfile/common/util/ProxyDownloadUrlUtils.java create mode 100644 src/main/java/im/zhaojun/zfile/common/util/RequestHolder.java create mode 100644 src/main/java/im/zhaojun/zfile/common/util/SizeToStrUtils.java create mode 100644 src/main/java/im/zhaojun/zfile/common/util/StringUtils.java create mode 100644 src/main/java/im/zhaojun/zfile/common/validation/StringListValue.java create mode 100644 src/main/java/im/zhaojun/zfile/common/validation/StringListValueConstraintValidator.java delete mode 100644 src/main/java/im/zhaojun/zfile/config/ApplicationContextConfigure.java delete mode 100644 src/main/java/im/zhaojun/zfile/config/OneDriveConfig.java delete mode 100644 src/main/java/im/zhaojun/zfile/config/SaTokenConfigure.java delete mode 100644 src/main/java/im/zhaojun/zfile/config/WebMvcConfig.java delete mode 100644 src/main/java/im/zhaojun/zfile/config/ZFileConfiguration.java delete mode 100644 src/main/java/im/zhaojun/zfile/config/webdav/MiltonConfiguration.java delete mode 100644 src/main/java/im/zhaojun/zfile/config/webdav/WebDavConfiguration.java delete mode 100644 src/main/java/im/zhaojun/zfile/config/webdav/adapter/WebDavUrlAdapterImpl.java delete mode 100644 src/main/java/im/zhaojun/zfile/config/webdav/auth/SystemConfigSecurityManager.java delete mode 100644 src/main/java/im/zhaojun/zfile/config/webdav/resolver/WebDavRedirectViewResolver.java delete mode 100644 src/main/java/im/zhaojun/zfile/context/DriveContext.java delete mode 100644 src/main/java/im/zhaojun/zfile/context/StorageTypeContext.java delete mode 100644 src/main/java/im/zhaojun/zfile/controller/admin/AdminController.java delete mode 100644 src/main/java/im/zhaojun/zfile/controller/admin/CacheController.java delete mode 100644 src/main/java/im/zhaojun/zfile/controller/admin/DebugController.java delete mode 100644 src/main/java/im/zhaojun/zfile/controller/admin/DriveController.java delete mode 100644 src/main/java/im/zhaojun/zfile/controller/admin/LogController.java delete mode 100644 src/main/java/im/zhaojun/zfile/controller/admin/LoginController.java delete mode 100644 src/main/java/im/zhaojun/zfile/controller/admin/MateDataController.java delete mode 100644 src/main/java/im/zhaojun/zfile/controller/admin/ShortLinkManagerController.java delete mode 100644 src/main/java/im/zhaojun/zfile/controller/home/DirectLinkController.java delete mode 100644 src/main/java/im/zhaojun/zfile/controller/home/FileController.java delete mode 100644 src/main/java/im/zhaojun/zfile/controller/home/FileParseController.java delete mode 100644 src/main/java/im/zhaojun/zfile/controller/home/LocalController.java delete mode 100644 src/main/java/im/zhaojun/zfile/controller/home/ShortLinkController.java delete mode 100644 src/main/java/im/zhaojun/zfile/controller/home/WebDavController.java delete mode 100644 src/main/java/im/zhaojun/zfile/controller/install/InstallController.java delete mode 100644 src/main/java/im/zhaojun/zfile/controller/onedrive/SharePointHelperController.java delete mode 100644 src/main/java/im/zhaojun/zfile/exception/GlobleExceptionHandler.java delete mode 100644 src/main/java/im/zhaojun/zfile/exception/InitializeDriveException.java delete mode 100644 src/main/java/im/zhaojun/zfile/exception/InvalidDriveException.java delete mode 100644 src/main/java/im/zhaojun/zfile/exception/InvalidShortLinkException.java delete mode 100644 src/main/java/im/zhaojun/zfile/exception/NotEnabledDriveException.java delete mode 100644 src/main/java/im/zhaojun/zfile/exception/PasswordVerifyException.java delete mode 100644 src/main/java/im/zhaojun/zfile/exception/StorageStrategyUninitializedException.java delete mode 100644 src/main/java/im/zhaojun/zfile/filter/NotFoundFilter.java create mode 100644 src/main/java/im/zhaojun/zfile/home/aspect/FileListCacheAspect.java create mode 100644 src/main/java/im/zhaojun/zfile/home/aspect/FileOperatorCheckAspect.java create mode 100644 src/main/java/im/zhaojun/zfile/home/aspect/RefererCheckAspect.java create mode 100644 src/main/java/im/zhaojun/zfile/home/chain/FileChain.java create mode 100644 src/main/java/im/zhaojun/zfile/home/chain/FileContext.java create mode 100644 src/main/java/im/zhaojun/zfile/home/chain/command/FileAccessPermissionVerifyCommand.java create mode 100644 src/main/java/im/zhaojun/zfile/home/chain/command/FileHiddenCommand.java create mode 100644 src/main/java/im/zhaojun/zfile/home/chain/command/FileSortCommand.java create mode 100644 src/main/java/im/zhaojun/zfile/home/chain/command/FileUrlAddVersionCommand.java create mode 100644 src/main/java/im/zhaojun/zfile/home/chain/command/FolderPasswordVerifyCommand.java create mode 100644 src/main/java/im/zhaojun/zfile/home/controller/FileController.java create mode 100644 src/main/java/im/zhaojun/zfile/home/controller/FileOperatorController.java create mode 100644 src/main/java/im/zhaojun/zfile/home/controller/FileParseController.java create mode 100644 src/main/java/im/zhaojun/zfile/home/controller/ShortLinkController.java create mode 100644 src/main/java/im/zhaojun/zfile/home/controller/SiteController.java create mode 100644 src/main/java/im/zhaojun/zfile/home/convert/StorageSourceConvert.java create mode 100644 src/main/java/im/zhaojun/zfile/home/filter/DownloadLinkFilter.java create mode 100644 src/main/java/im/zhaojun/zfile/home/install/InstallController.java create mode 100644 src/main/java/im/zhaojun/zfile/home/model/dto/CacheInfoDTO.java create mode 100644 src/main/java/im/zhaojun/zfile/home/model/dto/StorageSourceAllParam.java create mode 100644 src/main/java/im/zhaojun/zfile/home/model/dto/StorageSourceDTO.java create mode 100644 src/main/java/im/zhaojun/zfile/home/model/dto/SystemConfigDTO.java create mode 100644 src/main/java/im/zhaojun/zfile/home/model/enums/FileTypeEnum.java rename src/main/java/im/zhaojun/zfile/{ => home}/model/enums/StorageTypeEnum.java (54%) create mode 100644 src/main/java/im/zhaojun/zfile/home/model/request/FileListConfigRequest.java create mode 100644 src/main/java/im/zhaojun/zfile/home/model/request/FileListRequest.java create mode 100644 src/main/java/im/zhaojun/zfile/home/model/request/InstallSystemRequest.java create mode 100644 src/main/java/im/zhaojun/zfile/home/model/request/SearchStorageRequest.java create mode 100644 src/main/java/im/zhaojun/zfile/home/model/request/SharePointInfoRequest.java create mode 100644 src/main/java/im/zhaojun/zfile/home/model/request/ShortLinkSearchRequest.java create mode 100644 src/main/java/im/zhaojun/zfile/home/model/request/UpdateStorageIdRequest.java create mode 100644 src/main/java/im/zhaojun/zfile/home/model/request/UpdateStorageSortRequest.java create mode 100644 src/main/java/im/zhaojun/zfile/home/model/request/UserLoginRequest.java create mode 100644 src/main/java/im/zhaojun/zfile/home/model/request/operator/DeleteFileRequest.java create mode 100644 src/main/java/im/zhaojun/zfile/home/model/request/operator/DeleteFolderRequest.java create mode 100644 src/main/java/im/zhaojun/zfile/home/model/request/operator/NewFolderRequest.java create mode 100644 src/main/java/im/zhaojun/zfile/home/model/request/operator/RenameFileRequest.java create mode 100644 src/main/java/im/zhaojun/zfile/home/model/request/operator/RenameFolderRequest.java create mode 100644 src/main/java/im/zhaojun/zfile/home/model/request/operator/UploadFileRequest.java create mode 100644 src/main/java/im/zhaojun/zfile/home/model/request/sharepoint/SharePointSearchSitesRequest.java create mode 100644 src/main/java/im/zhaojun/zfile/home/model/request/sharepoint/SharePointSiteListsRequest.java create mode 100644 src/main/java/im/zhaojun/zfile/home/model/result/FileInfoResult.java create mode 100644 src/main/java/im/zhaojun/zfile/home/model/result/FileItemResult.java create mode 100644 src/main/java/im/zhaojun/zfile/home/model/result/SiteConfigResult.java create mode 100644 src/main/java/im/zhaojun/zfile/home/model/result/StorageSourceConfigResult.java create mode 100644 src/main/java/im/zhaojun/zfile/home/model/result/StorageSourceResult.java create mode 100644 src/main/java/im/zhaojun/zfile/home/model/upyun/AuthModel.java create mode 100644 src/main/java/im/zhaojun/zfile/home/model/upyun/UploadSignParam.java create mode 100644 src/main/java/im/zhaojun/zfile/home/service/base/AbstractBaseFileService.java create mode 100644 src/main/java/im/zhaojun/zfile/home/service/base/AbstractOneDriveServiceBase.java create mode 100644 src/main/java/im/zhaojun/zfile/home/service/base/AbstractS3BaseFileService.java create mode 100644 src/main/java/im/zhaojun/zfile/home/service/base/AbstractSharePointServiceBase.java create mode 100644 src/main/java/im/zhaojun/zfile/home/service/base/BaseFileService.java create mode 100644 src/main/java/im/zhaojun/zfile/home/service/base/MicrosoftDriveServiceBase.java create mode 100644 src/main/java/im/zhaojun/zfile/home/service/base/ProxyDownloadService.java create mode 100644 src/main/java/im/zhaojun/zfile/home/service/base/ProxyTransferService.java create mode 100644 src/main/java/im/zhaojun/zfile/home/service/base/ProxyUploadService.java create mode 100644 src/main/java/im/zhaojun/zfile/home/service/base/RefreshTokenService.java create mode 100644 src/main/java/im/zhaojun/zfile/home/service/impl/AliyunServiceImpl.java create mode 100644 src/main/java/im/zhaojun/zfile/home/service/impl/FtpServiceImpl.java create mode 100644 src/main/java/im/zhaojun/zfile/home/service/impl/HuaweiServiceImpl.java create mode 100644 src/main/java/im/zhaojun/zfile/home/service/impl/LocalServiceImpl.java create mode 100644 src/main/java/im/zhaojun/zfile/home/service/impl/MinIOServiceImpl.java create mode 100644 src/main/java/im/zhaojun/zfile/home/service/impl/OneDriveChinaServiceImpl.java create mode 100644 src/main/java/im/zhaojun/zfile/home/service/impl/OneDriveServiceImpl.java create mode 100644 src/main/java/im/zhaojun/zfile/home/service/impl/QiniuServiceImpl.java create mode 100644 src/main/java/im/zhaojun/zfile/home/service/impl/S3ServiceImpl.java create mode 100644 src/main/java/im/zhaojun/zfile/home/service/impl/SftpServiceImpl.java create mode 100644 src/main/java/im/zhaojun/zfile/home/service/impl/SharePointChinaServiceImpl.java create mode 100644 src/main/java/im/zhaojun/zfile/home/service/impl/SharePointServiceImpl.java create mode 100644 src/main/java/im/zhaojun/zfile/home/service/impl/TencentServiceImpl.java create mode 100644 src/main/java/im/zhaojun/zfile/home/service/impl/UpYunServiceImpl.java create mode 100644 src/main/java/im/zhaojun/zfile/home/service/impl/WebdavServiceImpl.java delete mode 100644 src/main/java/im/zhaojun/zfile/model/constant/LocalFileResponseTypeConstant.java delete mode 100644 src/main/java/im/zhaojun/zfile/model/constant/StorageConfigConstant.java delete mode 100644 src/main/java/im/zhaojun/zfile/model/constant/SystemConfigConstant.java delete mode 100644 src/main/java/im/zhaojun/zfile/model/constant/ZFileConstant.java delete mode 100644 src/main/java/im/zhaojun/zfile/model/dto/AudioInfoDTO.java delete mode 100644 src/main/java/im/zhaojun/zfile/model/dto/CacheInfoDTO.java delete mode 100644 src/main/java/im/zhaojun/zfile/model/dto/DriveConfigDTO.java delete mode 100644 src/main/java/im/zhaojun/zfile/model/dto/DriveListDTO.java delete mode 100644 src/main/java/im/zhaojun/zfile/model/dto/FileItemDTO.java delete mode 100644 src/main/java/im/zhaojun/zfile/model/dto/FileListDTO.java delete mode 100644 src/main/java/im/zhaojun/zfile/model/dto/SharePointInfoVO.java delete mode 100644 src/main/java/im/zhaojun/zfile/model/dto/StorageStrategyConfig.java delete mode 100644 src/main/java/im/zhaojun/zfile/model/dto/StorageStrategyDTO.java delete mode 100644 src/main/java/im/zhaojun/zfile/model/dto/SystemConfigDTO.java delete mode 100644 src/main/java/im/zhaojun/zfile/model/dto/SystemFrontConfigDTO.java delete mode 100644 src/main/java/im/zhaojun/zfile/model/entity/DriveConfig.java delete mode 100644 src/main/java/im/zhaojun/zfile/model/entity/FilterConfig.java delete mode 100644 src/main/java/im/zhaojun/zfile/model/entity/ShortLinkConfig.java delete mode 100644 src/main/java/im/zhaojun/zfile/model/entity/StorageConfig.java delete mode 100644 src/main/java/im/zhaojun/zfile/model/entity/SystemConfig.java delete mode 100644 src/main/java/im/zhaojun/zfile/model/entity/webdav/WebDavEntity.java delete mode 100644 src/main/java/im/zhaojun/zfile/model/entity/webdav/WebDavFile.java delete mode 100644 src/main/java/im/zhaojun/zfile/model/entity/webdav/WebDavFolder.java delete mode 100644 src/main/java/im/zhaojun/zfile/model/enums/FileTypeEnum.java delete mode 100644 src/main/java/im/zhaojun/zfile/model/enums/StorageTypeEnumConvert.java delete mode 100644 src/main/java/im/zhaojun/zfile/model/enums/StorageTypeEnumDeSerializerConvert.java delete mode 100644 src/main/java/im/zhaojun/zfile/model/enums/StorageTypeEnumJsonDeSerializerConvert.java delete mode 100644 src/main/java/im/zhaojun/zfile/model/enums/StorageTypeEnumSerializerConvert.java delete mode 100644 src/main/java/im/zhaojun/zfile/model/support/FilePageModel.java delete mode 100644 src/main/java/im/zhaojun/zfile/model/support/ResultBean.java delete mode 100644 src/main/java/im/zhaojun/zfile/repository/DriverConfigRepository.java delete mode 100644 src/main/java/im/zhaojun/zfile/repository/FilterConfigRepository.java delete mode 100644 src/main/java/im/zhaojun/zfile/repository/ShortLinkConfigRepository.java delete mode 100644 src/main/java/im/zhaojun/zfile/repository/StorageConfigRepository.java delete mode 100644 src/main/java/im/zhaojun/zfile/repository/SystemConfigRepository.java delete mode 100644 src/main/java/im/zhaojun/zfile/schedule/OneDriveTokenRefreshSchedule.java delete mode 100644 src/main/java/im/zhaojun/zfile/service/DriveConfigService.java delete mode 100644 src/main/java/im/zhaojun/zfile/service/FilterConfigService.java delete mode 100644 src/main/java/im/zhaojun/zfile/service/ShortLinkConfigService.java delete mode 100644 src/main/java/im/zhaojun/zfile/service/StorageConfigService.java delete mode 100644 src/main/java/im/zhaojun/zfile/service/SystemConfigService.java delete mode 100644 src/main/java/im/zhaojun/zfile/service/base/AbstractBaseFileService.java delete mode 100644 src/main/java/im/zhaojun/zfile/service/base/AbstractOneDriveServiceBase.java delete mode 100644 src/main/java/im/zhaojun/zfile/service/base/AbstractS3BaseFileService.java delete mode 100644 src/main/java/im/zhaojun/zfile/service/base/AbstractSharePointServiceBase.java delete mode 100644 src/main/java/im/zhaojun/zfile/service/base/BaseFileService.java delete mode 100644 src/main/java/im/zhaojun/zfile/service/base/MicrosoftDriveServiceBase.java delete mode 100644 src/main/java/im/zhaojun/zfile/service/impl/AliyunServiceImpl.java delete mode 100644 src/main/java/im/zhaojun/zfile/service/impl/FtpServiceImpl.java delete mode 100644 src/main/java/im/zhaojun/zfile/service/impl/HuaweiServiceImpl.java delete mode 100644 src/main/java/im/zhaojun/zfile/service/impl/LocalServiceImpl.java delete mode 100644 src/main/java/im/zhaojun/zfile/service/impl/MinIOServiceImpl.java delete mode 100644 src/main/java/im/zhaojun/zfile/service/impl/OneDriveChinaServiceImpl.java delete mode 100644 src/main/java/im/zhaojun/zfile/service/impl/OneDriveServiceImpl.java delete mode 100644 src/main/java/im/zhaojun/zfile/service/impl/QiniuServiceImpl.java delete mode 100644 src/main/java/im/zhaojun/zfile/service/impl/S3ServiceImpl.java delete mode 100644 src/main/java/im/zhaojun/zfile/service/impl/SharePointChinaServiceImpl.java delete mode 100644 src/main/java/im/zhaojun/zfile/service/impl/SharePointServiceImpl.java delete mode 100644 src/main/java/im/zhaojun/zfile/service/impl/TencentServiceImpl.java delete mode 100644 src/main/java/im/zhaojun/zfile/service/impl/UFileServiceImpl.java delete mode 100644 src/main/java/im/zhaojun/zfile/service/impl/UpYunServiceImpl.java delete mode 100644 src/main/java/im/zhaojun/zfile/service/impl/WebdavServiceImpl.java delete mode 100644 src/main/java/im/zhaojun/zfile/util/AudioUtil.java delete mode 100644 src/main/java/im/zhaojun/zfile/util/FileUtil.java delete mode 100644 src/main/java/im/zhaojun/zfile/util/RegexMatchUtils.java delete mode 100644 src/main/java/im/zhaojun/zfile/util/SpringContextHolder.java delete mode 100644 src/main/java/im/zhaojun/zfile/util/StartupListener.java delete mode 100644 src/main/java/im/zhaojun/zfile/util/StringUtils.java create mode 100644 src/main/resources/application-default.properties create mode 100644 src/main/resources/application.properties delete mode 100644 src/main/resources/application.yml delete mode 100644 src/main/resources/db/data.sql create mode 100644 src/main/resources/db/migration-mysql/R__data.sql create mode 100644 src/main/resources/db/migration-mysql/V1__Base_version.sql create mode 100644 src/main/resources/db/migration-sqlite/R__data.sql create mode 100644 src/main/resources/db/migration-sqlite/V1__Base_version.sql create mode 100644 src/main/resources/mapper/DownloadLogMapper.xml create mode 100644 src/main/resources/mapper/FilterConfigMapper.xml create mode 100644 src/main/resources/mapper/PasswordConfigMapper.xml create mode 100644 src/main/resources/mapper/ReadmeConfigMapper.xml create mode 100644 src/main/resources/mapper/ShortLinkMapper.xml create mode 100644 src/main/resources/mapper/StorageConfigMapper.xml create mode 100644 src/main/resources/mapper/StorageSourceMapper.xml create mode 100644 src/main/resources/mapper/SystemConfigMapper.xml delete mode 100644 src/main/resources/rebel.xml create mode 100644 src/main/resources/static/assets/401.23b72021.js create mode 100644 src/main/resources/static/assets/401.3f3777af.js create mode 100644 src/main/resources/static/assets/401.f56d4c2a.svg create mode 100644 src/main/resources/static/assets/403.07bdf36d.svg create mode 100644 src/main/resources/static/assets/403.179bde5f.js create mode 100644 src/main/resources/static/assets/403.65996b09.css create mode 100644 src/main/resources/static/assets/404.46de94fc.svg create mode 100644 src/main/resources/static/assets/404.b443a636.css create mode 100644 src/main/resources/static/assets/404.b81b6fc2.js create mode 100644 src/main/resources/static/assets/BadgeCheckIcon.fc085fd1.js create mode 100644 src/main/resources/static/assets/FileGallery.34e81982.css create mode 100644 src/main/resources/static/assets/FileGallery.4ff55311.js create mode 100644 src/main/resources/static/assets/MarkdownViewer.6a8257c9.js create mode 100644 src/main/resources/static/assets/MarkdownViewer.d4ddbd4f.css create mode 100644 src/main/resources/static/assets/SvgIcon.e3258df0.js create mode 100644 src/main/resources/static/assets/TextViewer.a3d21d3c.js create mode 100644 src/main/resources/static/assets/TextViewer.a4e3072e.css create mode 100644 src/main/resources/static/assets/VideoPlayer.1614ab82.css create mode 100644 src/main/resources/static/assets/VideoPlayer.70650d66.js create mode 100644 src/main/resources/static/assets/ZFormItem.7698444e.css create mode 100644 src/main/resources/static/assets/ZFormItem.f4459b46.js create mode 100644 src/main/resources/static/assets/_storageId_.080df354.js create mode 100644 src/main/resources/static/assets/_storageId_.11ae694b.css create mode 100644 src/main/resources/static/assets/_storageId_.3751388b.js create mode 100644 src/main/resources/static/assets/_storageId_.4ca0040d.js create mode 100644 src/main/resources/static/assets/_storageId_.60e7270d.js create mode 100644 src/main/resources/static/assets/_storageId_.e28774f9.css create mode 100644 src/main/resources/static/assets/_storageId_.e45f650b.css create mode 100644 src/main/resources/static/assets/about.06020ca1.js create mode 100644 src/main/resources/static/assets/add-file.9d01a01a.svg create mode 100644 src/main/resources/static/assets/add-folder-back.28141d7f.svg create mode 100644 src/main/resources/static/assets/add-folder.7ef044d1.svg create mode 100644 src/main/resources/static/assets/add.598ba734.svg create mode 100644 src/main/resources/static/assets/admin-login.db1d73c1.svg create mode 100644 src/main/resources/static/assets/admin-setting.fad9817e.js create mode 100644 src/main/resources/static/assets/admin-storage.12c0dbf5.js create mode 100644 src/main/resources/static/assets/admin.8c67bb88.js create mode 100644 src/main/resources/static/assets/alert.1b484cdc.js create mode 100644 src/main/resources/static/assets/alert.220a30c1.css create mode 100644 src/main/resources/static/assets/aliyun.0f005258.svg create mode 100644 src/main/resources/static/assets/baidu.4a11f5ee.svg create mode 100644 src/main/resources/static/assets/base-editor.59951ec0.css create mode 100644 src/main/resources/static/assets/base-editor.a9da2621.js create mode 100644 src/main/resources/static/assets/base.197bc1e5.js create mode 100644 src/main/resources/static/assets/base.ef3e45d0.css create mode 100644 src/main/resources/static/assets/basic-setting.268395dd.js create mode 100644 src/main/resources/static/assets/button.cca160de.css create mode 100644 src/main/resources/static/assets/card-layout.0aa8ea66.svg create mode 100644 src/main/resources/static/assets/checkbox.4d1c2a75.js create mode 100644 src/main/resources/static/assets/checkbox.74f2ee5a.css create mode 100644 src/main/resources/static/assets/codicon.c99115f8.ttf create mode 100644 src/main/resources/static/assets/common.6565cdd3.js create mode 100644 src/main/resources/static/assets/common.a295a3b6.js create mode 100644 src/main/resources/static/assets/common.d0a2bd7a.js create mode 100644 src/main/resources/static/assets/copy.0d4a2f7b.svg create mode 100644 src/main/resources/static/assets/cpp.337468ce.js create mode 100644 src/main/resources/static/assets/css.4c22ed20.js create mode 100644 src/main/resources/static/assets/dayjs.min.b4bc51d5.js create mode 100644 src/main/resources/static/assets/debounce.a03a8484.js create mode 100644 src/main/resources/static/assets/default.83526f4b.js create mode 100644 src/main/resources/static/assets/delete.06c9bd69.svg create mode 100644 src/main/resources/static/assets/dialog.731d01ef.css create mode 100644 src/main/resources/static/assets/dialog.d131328b.js create mode 100644 src/main/resources/static/assets/directive.b8a17520.js create mode 100644 src/main/resources/static/assets/dockerfile.de6a0f2c.js create mode 100644 src/main/resources/static/assets/download.48c98cdb.svg create mode 100644 src/main/resources/static/assets/dropdown-item.32357c71.css create mode 100644 src/main/resources/static/assets/dropdown-item.731434fa.js create mode 100644 src/main/resources/static/assets/dropdown.e1a9d9ca.js create mode 100644 src/main/resources/static/assets/edit.a2e2c356.svg create mode 100644 src/main/resources/static/assets/empty.d5d3dec8.svg create mode 100644 src/main/resources/static/assets/event.3ec63147.js create mode 100644 src/main/resources/static/assets/event.776e7e11.js create mode 100644 src/main/resources/static/assets/file-type-apk.e1385fc3.svg create mode 100644 src/main/resources/static/assets/file-type-archive.f4b181db.svg create mode 100644 src/main/resources/static/assets/file-type-audio.94e75894.svg create mode 100644 src/main/resources/static/assets/file-type-back.ca0b84c2.svg create mode 100644 src/main/resources/static/assets/file-type-css.5dfb9ed8.svg create mode 100644 src/main/resources/static/assets/file-type-deb.5804788b.svg create mode 100644 src/main/resources/static/assets/file-type-dll.6ea302d9.svg create mode 100644 src/main/resources/static/assets/file-type-doc.a9d08313.svg create mode 100644 src/main/resources/static/assets/file-type-document.b6e28e75.svg create mode 100644 src/main/resources/static/assets/file-type-exe.b561ed3f.svg create mode 100644 src/main/resources/static/assets/file-type-expression.3aaf04f1.svg create mode 100644 src/main/resources/static/assets/file-type-file.47afa61a.svg create mode 100644 src/main/resources/static/assets/file-type-folder.35bcb02c.svg create mode 100644 src/main/resources/static/assets/file-type-html.e37c00f9.svg create mode 100644 src/main/resources/static/assets/file-type-image.689e667c.svg create mode 100644 src/main/resources/static/assets/file-type-java.e50a4779.svg create mode 100644 src/main/resources/static/assets/file-type-js.5c3b67c3.svg create mode 100644 src/main/resources/static/assets/file-type-less.429d4f89.svg create mode 100644 src/main/resources/static/assets/file-type-md.4dd32bf9.svg create mode 100644 src/main/resources/static/assets/file-type-office.9af40573.svg create mode 100644 src/main/resources/static/assets/file-type-pdf.1e018e0c.svg create mode 100644 src/main/resources/static/assets/file-type-php.4feb4413.svg create mode 100644 src/main/resources/static/assets/file-type-ppt.3d3e6af9.svg create mode 100644 src/main/resources/static/assets/file-type-py.09b51350.svg create mode 100644 src/main/resources/static/assets/file-type-rb.32961396.svg create mode 100644 src/main/resources/static/assets/file-type-root.80ddc97b.svg create mode 100644 src/main/resources/static/assets/file-type-rpm.559b18a5.svg create mode 100644 src/main/resources/static/assets/file-type-rust.69994176.svg create mode 100644 src/main/resources/static/assets/file-type-script.52b80ced.svg create mode 100644 src/main/resources/static/assets/file-type-text.8ff306a0.svg create mode 100644 src/main/resources/static/assets/file-type-vbs.22c9b0b7.svg create mode 100644 src/main/resources/static/assets/file-type-video.888eeb7b.svg create mode 100644 src/main/resources/static/assets/file-type-xls.db6934ae.svg create mode 100644 src/main/resources/static/assets/file-type-xml.234b67f6.svg create mode 100644 src/main/resources/static/assets/file-type-yaml.c1af7aa9.svg create mode 100644 src/main/resources/static/assets/file-upload.65dff662.svg create mode 100644 src/main/resources/static/assets/file.3623dcff.js create mode 100644 src/main/resources/static/assets/file.68aaede4.js create mode 100644 src/main/resources/static/assets/file.733502d9.css create mode 100644 src/main/resources/static/assets/file.8ce7ebe5.css create mode 100644 src/main/resources/static/assets/files.a94428cd.svg create mode 100644 src/main/resources/static/assets/focus-trap.fe4b8179.js create mode 100644 src/main/resources/static/assets/form-item.4ffcf52c.css create mode 100644 src/main/resources/static/assets/form-item.962ab13d.js create mode 100644 src/main/resources/static/assets/ftp.c6a679c1.svg create mode 100644 src/main/resources/static/assets/github.1e923e45.css create mode 100644 src/main/resources/static/assets/github.6902a714.js create mode 100644 src/main/resources/static/assets/go.1e1292ae.js create mode 100644 src/main/resources/static/assets/graphql.900d9927.js create mode 100644 src/main/resources/static/assets/html.b425aed9.js create mode 100644 src/main/resources/static/assets/huawei.57d8824c.svg create mode 100644 src/main/resources/static/assets/icon.cca102d8.css create mode 100644 src/main/resources/static/assets/image-viewer.856a8939.css create mode 100644 src/main/resources/static/assets/image-viewer.9e2d72eb.js create mode 100644 src/main/resources/static/assets/img-disable.16380239.svg create mode 100644 src/main/resources/static/assets/img-enable.ca957fe0.svg create mode 100644 src/main/resources/static/assets/index.027c5919.css create mode 100644 src/main/resources/static/assets/index.02d854ed.js create mode 100644 src/main/resources/static/assets/index.283c220f.js create mode 100644 src/main/resources/static/assets/index.2f5dd8a9.js create mode 100644 src/main/resources/static/assets/index.3134231f.js create mode 100644 src/main/resources/static/assets/index.3fed707f.js create mode 100644 src/main/resources/static/assets/index.4546773b.js create mode 100644 src/main/resources/static/assets/index.6dd6d04c.js create mode 100644 src/main/resources/static/assets/index.7fa0be7b.js create mode 100644 src/main/resources/static/assets/index.9aca9b8e.js create mode 100644 src/main/resources/static/assets/index.ac29bb47.js create mode 100644 src/main/resources/static/assets/index.b3614aa3.css create mode 100644 src/main/resources/static/assets/index.b549c954.css create mode 100644 src/main/resources/static/assets/index.bbf7818f.js create mode 100644 src/main/resources/static/assets/index.c66de53e.js create mode 100644 src/main/resources/static/assets/index.c851300a.js create mode 100644 src/main/resources/static/assets/index.c92ded65.js create mode 100644 src/main/resources/static/assets/index.dde1fe07.js create mode 100644 src/main/resources/static/assets/index.e63d92a7.js create mode 100644 src/main/resources/static/assets/index.edc59957.css create mode 100644 src/main/resources/static/assets/index.eeb08216.js create mode 100644 src/main/resources/static/assets/index.f31e0464.css create mode 100644 src/main/resources/static/assets/info.54497d89.svg create mode 100644 src/main/resources/static/assets/ini.75848fa5.js create mode 100644 src/main/resources/static/assets/input.c3618236.css create mode 100644 src/main/resources/static/assets/install-step.28fbaa8c.svg create mode 100644 src/main/resources/static/assets/install.0838262e.js create mode 100644 src/main/resources/static/assets/isEqual.a8284c4e.js create mode 100644 src/main/resources/static/assets/java.13c44e5c.js create mode 100644 src/main/resources/static/assets/javascript.f8f21cc3.js create mode 100644 src/main/resources/static/assets/kotlin.3399aeb6.js create mode 100644 src/main/resources/static/assets/less.b6aad23a.js create mode 100644 src/main/resources/static/assets/link.0a44cb5c.svg create mode 100644 src/main/resources/static/assets/link.b3090580.js create mode 100644 src/main/resources/static/assets/link.f7c436ab.css create mode 100644 src/main/resources/static/assets/loading.dd11abc3.css create mode 100644 src/main/resources/static/assets/local.f6bc02e5.svg create mode 100644 src/main/resources/static/assets/log.108b3524.css create mode 100644 src/main/resources/static/assets/log.80920fd2.js create mode 100644 src/main/resources/static/assets/login.01a8ea4c.js create mode 100644 src/main/resources/static/assets/login.0bbedd1d.css create mode 100644 src/main/resources/static/assets/login.94b8768f.js create mode 100644 src/main/resources/static/assets/login.e2217ec4.svg create mode 100644 src/main/resources/static/assets/markdown.236ff8ef.js create mode 100644 src/main/resources/static/assets/minio.e5474b90.svg create mode 100644 src/main/resources/static/assets/move.897d1439.svg create mode 100644 src/main/resources/static/assets/mysql.fdc04fe1.js create mode 100644 src/main/resources/static/assets/new-folder.549c271c.svg create mode 100644 src/main/resources/static/assets/notFound.345f1754.svg create mode 100644 src/main/resources/static/assets/notFound.abb340bf.js create mode 100644 src/main/resources/static/assets/onedrive-china.f477f7d4.svg create mode 100644 src/main/resources/static/assets/onedrive.1120a54d.svg create mode 100644 src/main/resources/static/assets/overlay.21d31a0b.js create mode 100644 src/main/resources/static/assets/overlay.dd389659.css create mode 100644 src/main/resources/static/assets/php.a9540a84.js create mode 100644 src/main/resources/static/assets/popover.74dd4546.css create mode 100644 src/main/resources/static/assets/popper.91c84279.js create mode 100644 src/main/resources/static/assets/popper.e5c0055c.css create mode 100644 src/main/resources/static/assets/preview.330b1af8.svg create mode 100644 src/main/resources/static/assets/preview.91ef53b4.js create mode 100644 src/main/resources/static/assets/preview.ebfa3115.css create mode 100644 src/main/resources/static/assets/prism.bf3a2a07.js create mode 100644 src/main/resources/static/assets/python.b05e1114.js create mode 100644 src/main/resources/static/assets/qiniu.6036c6bb.svg create mode 100644 src/main/resources/static/assets/radio.3ebff4f2.css create mode 100644 src/main/resources/static/assets/radio.6dc3ee2c.js create mode 100644 src/main/resources/static/assets/readme-editor-dialog.6f036205.js create mode 100644 src/main/resources/static/assets/refs.e098e5db.js create mode 100644 src/main/resources/static/assets/request.19cbe8c5.js create mode 100644 src/main/resources/static/assets/reset-password.b19e1ea5.svg create mode 100644 src/main/resources/static/assets/route-block.9b0645f8.js create mode 100644 src/main/resources/static/assets/s3.280509b0.svg create mode 100644 src/main/resources/static/assets/scroll.4cf9bb37.js create mode 100644 src/main/resources/static/assets/scrollbar.7d059005.js create mode 100644 src/main/resources/static/assets/scrollbar.88366223.css create mode 100644 src/main/resources/static/assets/scss.19caa34f.js create mode 100644 src/main/resources/static/assets/select-all.4aaccd3e.svg create mode 100644 src/main/resources/static/assets/select.00495d75.css create mode 100644 src/main/resources/static/assets/select.3d28f8f8.js create mode 100644 src/main/resources/static/assets/server.f8a853a2.svg create mode 100644 src/main/resources/static/assets/setting.18e82df4.js create mode 100644 src/main/resources/static/assets/settings.b524ea2e.svg create mode 100644 src/main/resources/static/assets/sftp.c71078df.svg create mode 100644 src/main/resources/static/assets/sharepoint-china.9907efac.svg create mode 100644 src/main/resources/static/assets/sharepoint.1bd337fc.svg create mode 100644 src/main/resources/static/assets/site-setting.12d28780.js create mode 100644 src/main/resources/static/assets/site-setting.45584336.css create mode 100644 src/main/resources/static/assets/sortable.esm.a99254e8.js create mode 100644 src/main/resources/static/assets/sql.5f2f7ebd.js create mode 100644 src/main/resources/static/assets/storage-list.33b9c5a5.css create mode 100644 src/main/resources/static/assets/storage-list.3f531448.js create mode 100644 src/main/resources/static/assets/storage-list.a02d975e.js create mode 100644 src/main/resources/static/assets/success.ddc7b948.svg create mode 100644 src/main/resources/static/assets/switch.4caa5287.js create mode 100644 src/main/resources/static/assets/switch.de8121aa.css create mode 100644 src/main/resources/static/assets/table-column.58e8e9a6.css create mode 100644 src/main/resources/static/assets/table-column.f368ae14.js create mode 100644 src/main/resources/static/assets/table-layout.e8017f7c.svg create mode 100644 src/main/resources/static/assets/target.182a531a.svg create mode 100644 src/main/resources/static/assets/tencent.7b52a406.svg create mode 100644 src/main/resources/static/assets/test.b2ee4998.svg create mode 100644 src/main/resources/static/assets/tool-close.4c4ed1a4.svg create mode 100644 src/main/resources/static/assets/tool-close2.a77027c1.svg create mode 100644 src/main/resources/static/assets/tool-delete.306633e9.svg create mode 100644 src/main/resources/static/assets/tool-download.bf4da40f.svg create mode 100644 src/main/resources/static/assets/tool-edit.405fd9c3.svg create mode 100644 src/main/resources/static/assets/tool-link.6a893d0f.svg create mode 100644 src/main/resources/static/assets/tool-move.fa418958.svg create mode 100644 src/main/resources/static/assets/tool-preview.13c8406c.svg create mode 100644 src/main/resources/static/assets/tool-setting.f36fb1c2.svg create mode 100644 src/main/resources/static/assets/tooltip.f118fcb0.js create mode 100644 src/main/resources/static/assets/typescript.47aa7854.js create mode 100644 src/main/resources/static/assets/ufile.e305639b.svg create mode 100644 src/main/resources/static/assets/update-password.020fe0a7.js create mode 100644 src/main/resources/static/assets/upload-1.f348e120.svg create mode 100644 src/main/resources/static/assets/upload-folder.8e924b23.svg create mode 100644 src/main/resources/static/assets/upload.a9eeb994.svg create mode 100644 src/main/resources/static/assets/upyun.b24d52ea.svg create mode 100644 src/main/resources/static/assets/useFileUpload.ba32a7f8.js create mode 100644 src/main/resources/static/assets/useLinkSetting.96dd46ae.js create mode 100644 src/main/resources/static/assets/validator.998eeed0.js create mode 100644 src/main/resources/static/assets/video-download.3a226681.png create mode 100644 src/main/resources/static/assets/video-iina.1db26170.png create mode 100644 src/main/resources/static/assets/video-motrix.95ef7e61.png create mode 100644 src/main/resources/static/assets/video-mxplayer-pro.10406916.png create mode 100644 src/main/resources/static/assets/video-mxplayer.5dfa69aa.png create mode 100644 src/main/resources/static/assets/video-thunder.5e7f4cec.png create mode 100644 src/main/resources/static/assets/video-vlc.54e63a7e.png create mode 100644 src/main/resources/static/assets/view-setting.26f8cc36.css create mode 100644 src/main/resources/static/assets/view-setting.f7cd3f90.js create mode 100644 src/main/resources/static/assets/vue.runtime.esm-bundler.1e3a6623.js create mode 100644 src/main/resources/static/assets/vue3-clipboard.esm-bundler.34366eba.js create mode 100644 src/main/resources/static/assets/vuepress.5dbd54dc.css create mode 100644 src/main/resources/static/assets/vuepress.ccb055dc.js create mode 100644 src/main/resources/static/assets/warning.7093bb23.svg create mode 100644 src/main/resources/static/assets/webdav.c885a54c.svg create mode 100644 src/main/resources/static/assets/xml.9fe09fd6.js create mode 100644 src/main/resources/static/assets/yaml.7d8c6ae6.js create mode 100644 src/main/resources/static/assets/zfile-basic.5314831c.js create mode 100644 src/main/resources/static/assets/zfile-basic.58891cac.svg create mode 100644 src/main/resources/static/assets/zfile-horizontal.2a5355c9.js create mode 100644 src/main/resources/static/assets/zfile-horizontal.abd5aec9.svg create mode 100644 src/main/resources/static/assets/zfile.76406368.svg create mode 100644 src/main/resources/static/assets/zh-cn.3cfc5143.css create mode 100644 src/main/resources/static/assets/zh-cn.7b401b88.js delete mode 100644 src/main/resources/static/css/admin.da89697f.css delete mode 100644 src/main/resources/static/css/admin~front.630e4aa3.css delete mode 100644 src/main/resources/static/css/app.89e722fc.css delete mode 100644 src/main/resources/static/css/chunk-vendors.74b40c55.css delete mode 100644 src/main/resources/static/css/front-audio.67db92c1.css delete mode 100644 src/main/resources/static/css/front-text.dad0723a.css delete mode 100644 src/main/resources/static/css/front-video.fb7331d8.css delete mode 100644 src/main/resources/static/css/front.b46debaa.css delete mode 100644 src/main/resources/static/css/install.19dbd4e6.css delete mode 100644 src/main/resources/static/css/monaco-editor.0dbdf587.css delete mode 100644 src/main/resources/static/editor.worker.js delete mode 100644 src/main/resources/static/favicon.ico create mode 100644 src/main/resources/static/favicon.svg delete mode 100644 src/main/resources/static/fonts/element-icons.535877f5.woff delete mode 100644 src/main/resources/static/fonts/element-icons.732389de.ttf delete mode 100644 src/main/resources/static/img/icon-ext.ba81b24c.png delete mode 100644 src/main/resources/static/img/icon.551539f8.png delete mode 100644 src/main/resources/static/img/iconfont.573255ce.svg delete mode 100644 src/main/resources/static/img/loading-0.a72011cc.gif delete mode 100644 src/main/resources/static/js/admin.min.js delete mode 100644 src/main/resources/static/js/admin~front.min.js delete mode 100644 src/main/resources/static/js/app.js delete mode 100644 src/main/resources/static/js/chunk-2d0a43df.min.js delete mode 100644 src/main/resources/static/js/chunk-2d0e57ec.min.js delete mode 100644 src/main/resources/static/js/chunk-vendors.min.js delete mode 100644 src/main/resources/static/js/front-audio.min.js delete mode 100644 src/main/resources/static/js/front-text.min.js delete mode 100644 src/main/resources/static/js/front-video.min.js delete mode 100644 src/main/resources/static/js/front.min.js delete mode 100644 src/main/resources/static/js/install.min.js delete mode 100644 src/main/resources/static/js/monaco-editor.min.js create mode 100644 src/main/resources/static/logo.png create mode 100644 src/main/resources/templates/error/404.html diff --git a/.gitignore b/.gitignore index b682fee..e36d7e2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,8 @@ HELP.md target/ -.mvn/wrapper/** -!**/src/main/** -**/src/test/** - -mvnw -mvnw.cmd +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ ### STS ### .apt_generated @@ -29,6 +26,12 @@ mvnw.cmd /nbdist/ /.nb-gradle/ build/ +!**/src/main/**/build/ +!**/src/test/**/build/ ### VS Code ### .vscode/ +/.mvn/wrapper/ +/mvnw +/mvnw.cmd +/.script/ diff --git a/API.md b/API.md deleted file mode 100644 index 8d550b5..0000000 --- a/API.md +++ /dev/null @@ -1,181 +0,0 @@ -## API 标准 - -所有 API 均返回 `msg`, `code`, `data` 三个属性. - -| code | 描述 | -| :---: | :------------: | -| 0 | 请求成功 | -| -1 | 请求失败 | -| -2 | 文件夹需要密码 | - -当 `code == 0` 时, `data` 中为请求所需数据. - -当 `code != 0` 时, 应当将 `msg` 中的内容作为参考值. - - -## 驱动器列表 - -### 请求 URL - -`/api/drive/list` `GET` - -### 响应 - -```json -{ - "msg": "操作成功", - "code": 0, - "data": [ - { - "id": 3, --- 此 ID 是驱动器 ID, 用来唯一区分驱动器 - "name": "演示 A 盘", --- 驱动器名称 - "enableCache": true, --- 是否开启了缓存 - "autoRefreshCache": false, --- 是否开启了缓存自动刷新 - "type": { --- 存储源类型 - "key": "upyun", - "description": "又拍云 USS" - }, - "searchEnable": false, --- 是否开启搜索 - "searchIgnoreCase": false, --- 搜索是否忽略大小写 - "searchContainEncryptedFile": false --- 搜索是否包含加密文件夹 - } - ] -} -``` - - - -## 获取文件列表 - -### 请求 URL - -`/api/list/{driveId}` `GET` - - -### URL 参数 - - -| 参数名 | 描述 | 是否必填 | 参考值 | -| :-----: | :-------------------: | :------: | :------------------------------------: | -| driveId | 驱动器 ID | 是 | 参考 `获取驱动器列表` 接口返回的 id 值 | - - -### 请求参数 - - -| 参数名 | 描述 | 是否必填 | 参考值 | -| :------: | :--------: | :------: | :--------------------------: | -| path | 路径 | 是 | `/`, `/文件夹名称` | -| password | 文件夹密码 | 否 | 当文件夹需要密码时, | -| page | 页数 | 否 | 默认取第一页, 每页固定 30 条 | - - -### 响应 - - -```json -{ - "msg": "操作成功", - "code": 0, - "data": [ - { - "name": "密码文件夹", - "time": "2020-01-28 13:17", - "size": 4096, - "type": "FOLDER", - "path": "/", - "url": null - }, - { - "name": "新建 文本文档.txt", - "time": "2020-01-28 13:16", - "size": 3, - "type": "FILE", - "path": "/", - "url": "http://127.0.0.1:8080/file/新建 文本文档.txt" - } - ] -} -``` - - -## 获取单个文件信息 - -### 请求 URL - -`/api/directlink/{driveId}` `GET` - - -### URL 参数 - -| 参数名 | 描述 | 是否必填 | 参考值 | -| :-----: | :-------------------: | :------: | :------------------------------------: | -| driveId | 驱动器 ID | 是 | 参考 `获取驱动器列表` 接口返回的 id 值 | - -### 参数 - -| 参数名 | 描述 | 是否必填 | 参考值 | -| :----: | :--------: | :------: | :------------------: | -| path | 文件全路径 | 是 | `/新建 文本文档.txt` | - -### 响应 - -```json -{ - "msg": "操作成功", - "code": 0, - "data": { - "name": "新建 文本文档.txt", - "time": "2020-01-28 13:16", - "size": 3, - "type": "FILE", - "path": "d:/test", - "url": "http://127.0.0.1:8080/file/新建 文本文档.txt" - } -} -``` - -## 获取系统配置 - - -### 请求 URL - -`/api/config/{driveId}` `GET` - - -### URL 参数 - -| 参数名 | 描述 | 是否必填 | 参考值 | -| :-----: | :-------------------: | :------: | :------------------------------------: | -| driveId | 驱动器 ID | 是 | 参考 `获取驱动器列表` 接口返回的 id 值 | - - -### 参数 - -| 参数名 | 描述 | 是否必填 | 参考值 | -| :----: | :--------: | :------: | :-----------: | -| path | 文件夹名称 | 是 | `/文件夹名称` | - -### 响应 - -```json -{ - "msg": "操作成功", - "code": 0, - "data": { - "siteName": "ZFile 演示站", - "searchEnable": false, - "username": "zhao", - "domain": "https://zfile.jun6.net", - "customJs": "", - "customCss": "", - "tableSize": "small", - "showOperator": true, - "showDocument": true, - "announcement": "本站是 ZFile 演示站,交流反馈群 180605017", - "showAnnouncement": true, - "layout": "full", - "readme": null - } -} -``` \ No newline at end of file diff --git a/pom.xml b/pom.xml index 2438f35..80f0fd7 100644 --- a/pom.xml +++ b/pom.xml @@ -1,29 +1,30 @@ - + 4.0.0 org.springframework.boot spring-boot-starter-parent - 2.5.4 - + 2.6.6 + im.zhaojun zfile - 3.2.5 + 4.0.0 zfile war 一个在线的文件浏览系统 1.8 - 2.17.1 + 2.17.0 + 1.5.1.Final + 7.2.1 + 2.5.3 - org.springframework.boot @@ -33,10 +34,6 @@ org.springframework.boot spring-boot-starter-aop - - org.springframework.boot - spring-boot-starter-data-jpa - org.springframework.boot spring-boot-configuration-processor @@ -47,30 +44,29 @@ spring-boot-starter-cache + + com.baomidou + mybatis-plus-boot-starter + 3.5.2 + + org.springframework.boot spring-boot-starter-thymeleaf - - - com.h2database - h2 - runtime - 1.4.197 - mysql mysql-connector-java + 8.0.29 runtime - 8.0.27 cn.hutool hutool-all - 5.1.3 + 5.8.3 @@ -82,7 +78,12 @@ com.amazonaws aws-java-sdk-s3 - 1.11.699 + 1.12.146 + + + com.qiniu + qiniu-java-sdk + 7.11.0 org.apache.httpcomponents @@ -91,41 +92,22 @@ commons-net commons-net - 3.6 - - - - - io.milton - milton-server-ce - 3.1.1.413 - - - commons-logging - commons-logging - - - json - org.json - - - - - - - - com.github.lookfirst - sardine - 5.10 + 3.8.0 org.projectlombok lombok + 1.18.24 provided + + com.squareup.okhttp3 + okhttp + + com.mpatric mp3agic @@ -135,15 +117,107 @@ com.alibaba fastjson - 1.2.69 + 1.2.83 + + + org.xerial + sqlite-jdbc + - + + org.flywaydb + flyway-core + 7.15.0 + + + cn.dev33 sa-token-spring-boot-starter - 1.26.0 + 1.30.0 + + + + org.springframework.session + spring-session-core + + + + com.aliyun.oss + aliyun-sdk-oss + 3.14.0 + + + + com.github.xiaoymin + knife4j-spring-boot-starter + 3.0.3 + + + + com.qcloud + cos_api + 5.6.75 + + + + com.google.guava + guava + 30.1.1-jre + + + + org.springframework.boot + spring-boot-starter-validation + + + + org.mapstruct + mapstruct + ${org.mapstruct.version} + + + commons-chain + commons-chain + 1.2 + + + + com.jcraft + jsch + 0.1.55 + + + + com.github.lookfirst + sardine + 5.10 + + + + dev.samstevens.totp + totp-spring-boot-starter + 1.7.1 + + + + com.beust + jcommander + 1.82 + + + + org.json + json + 20200518 + + + + org.apache.httpcomponents + httpmime + 4.5.13 @@ -153,6 +227,44 @@ org.springframework.boot spring-boot-maven-plugin + + + + org.projectlombok + lombok + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.8 + 1.8 + UTF-8 + + + org.mapstruct + mapstruct-processor + ${org.mapstruct.version} + + + org.projectlombok + lombok + 1.18.16 + + + org.projectlombok + lombok-mapstruct-binding + 0.2.0 + + + + + + org.flywaydb + flyway-maven-plugin com.uyoqu.framework @@ -175,5 +287,4 @@ - \ No newline at end of file diff --git a/src/main/java/com/baomidou/mybatisplus/core/handlers/MybatisEnumTypeHandler.java b/src/main/java/com/baomidou/mybatisplus/core/handlers/MybatisEnumTypeHandler.java new file mode 100644 index 0000000..b4674eb --- /dev/null +++ b/src/main/java/com/baomidou/mybatisplus/core/handlers/MybatisEnumTypeHandler.java @@ -0,0 +1,173 @@ +/* + * Copyright (c) 2011-2022, baomidou (jobob@qq.com). + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.baomidou.mybatisplus.core.handlers; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.baomidou.mybatisplus.annotation.IEnum; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.core.toolkit.ExceptionUtils; +import com.baomidou.mybatisplus.core.toolkit.ReflectionKit; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import org.apache.ibatis.reflection.DefaultReflectorFactory; +import org.apache.ibatis.reflection.MetaClass; +import org.apache.ibatis.reflection.ReflectorFactory; +import org.apache.ibatis.reflection.invoker.Invoker; +import org.apache.ibatis.type.BaseTypeHandler; +import org.apache.ibatis.type.JdbcType; + +import java.lang.reflect.Field; +import java.math.BigDecimal; +import java.sql.CallableStatement; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.Arrays; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import java.util.concurrent.ConcurrentHashMap; + +/** + * 自定义枚举属性转换器 + * + * @author hubin + * @since 2017-10-11 + */ +public class MybatisEnumTypeHandler> extends BaseTypeHandler { + + private static final Map TABLE_METHOD_OF_ENUM_TYPES = new ConcurrentHashMap<>(); + private static final ReflectorFactory REFLECTOR_FACTORY = new DefaultReflectorFactory(); + private final Class enumClassType; + private final Class propertyType; + private final Invoker getInvoker; + + public MybatisEnumTypeHandler(Class enumClassType) { + if (enumClassType == null) { + throw new IllegalArgumentException("Type argument cannot be null"); + } + this.enumClassType = enumClassType; + MetaClass metaClass = MetaClass.forClass(enumClassType, REFLECTOR_FACTORY); + String name = "value"; + if (!IEnum.class.isAssignableFrom(enumClassType)) { + name = findEnumValueFieldName(this.enumClassType).orElseThrow(() -> new IllegalArgumentException(String.format("Could not find @EnumValue in Class: %s.", this.enumClassType.getName()))); + } + this.propertyType = ReflectionKit.resolvePrimitiveIfNecessary(metaClass.getGetterType(name)); + this.getInvoker = metaClass.getGetInvoker(name); + } + + /** + * 查找标记标记EnumValue字段 + * + * @param clazz class + * @return EnumValue字段 + * @since 3.3.1 + */ + public static Optional findEnumValueFieldName(Class clazz) { + if (clazz != null && clazz.isEnum()) { + String className = clazz.getName(); + return Optional.ofNullable(CollectionUtils.computeIfAbsent(TABLE_METHOD_OF_ENUM_TYPES, className, key -> { + Optional fieldOptional = findEnumValueAnnotationField(clazz); + return fieldOptional.map(Field::getName).orElse(null); + })); + } + return Optional.empty(); + } + + private static Optional findEnumValueAnnotationField(Class clazz) { + return Arrays.stream(clazz.getDeclaredFields()).filter(field -> field.isAnnotationPresent(EnumValue.class)).findFirst(); + } + + /** + * 判断是否为MP枚举处理 + * + * @param clazz class + * @return 是否为MP枚举处理 + * @since 3.3.1 + */ + public static boolean isMpEnums(Class clazz) { + return clazz != null && clazz.isEnum() && (IEnum.class.isAssignableFrom(clazz) || findEnumValueFieldName(clazz).isPresent()); + } + + @SuppressWarnings("Duplicates") + @Override + public void setNonNullParameter(PreparedStatement ps, int i, E parameter, JdbcType jdbcType) + throws SQLException { + if (jdbcType == null) { + ps.setObject(i, this.getValue(parameter)); + } else { + // see r3589 + ps.setObject(i, this.getValue(parameter), jdbcType.TYPE_CODE); + } + } + + @Override + public E getNullableResult(ResultSet rs, String columnName) throws SQLException { + Object value = rs.getObject(columnName); + if (null == value && rs.wasNull()) { + return null; + } + return this.valueOf(value); + } + + @Override + public E getNullableResult(ResultSet rs, int columnIndex) throws SQLException { + Object value = rs.getObject(columnIndex, this.propertyType); + if (null == value && rs.wasNull()) { + return null; + } + return this.valueOf(value); + } + + @Override + public E getNullableResult(CallableStatement cs, int columnIndex) throws SQLException { + Object value = cs.getObject(columnIndex, this.propertyType); + if (null == value && cs.wasNull()) { + return null; + } + return this.valueOf(value); + } + + private E valueOf(Object value) { + E[] es = this.enumClassType.getEnumConstants(); + return Arrays.stream(es).filter((e) -> equalsValue(value, getValue(e))).findAny().orElse(null); + } + + /** + * 值比较 + * + * @param sourceValue 数据库字段值 + * @param targetValue 当前枚举属性值 + * @return 是否匹配 + * @since 3.3.0 + */ + protected boolean equalsValue(Object sourceValue, Object targetValue) { + String sValue = StringUtils.toStringTrim(sourceValue); + String tValue = StringUtils.toStringTrim(targetValue); + if (sourceValue instanceof Number && targetValue instanceof Number + && new BigDecimal(sValue).compareTo(new BigDecimal(tValue)) == 0) { + return true; + } + return Objects.equals(sValue, tValue); + } + + private Object getValue(Object object) { + try { + return this.getInvoker.invoke(object, new Object[0]); + } catch (ReflectiveOperationException e) { + throw ExceptionUtils.mpe(e); + } + } +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/ZfileApplication.java b/src/main/java/im/zhaojun/zfile/ZfileApplication.java index e48eb4e..679d65e 100644 --- a/src/main/java/im/zhaojun/zfile/ZfileApplication.java +++ b/src/main/java/im/zhaojun/zfile/ZfileApplication.java @@ -1,22 +1,43 @@ package im.zhaojun.zfile; +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.StrUtil; +import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; +import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.data.jpa.repository.config.EnableJpaRepositories; -import org.springframework.scheduling.annotation.EnableAsync; -/** - * @author zhaojun - */ -@EnableAsync +import javax.annotation.PostConstruct; + @SpringBootApplication -@EnableJpaRepositories("im.zhaojun.zfile.repository") -@EnableAspectJAutoProxy(exposeProxy = true) +@EnableAspectJAutoProxy(exposeProxy = true, proxyTargetClass = true) +@ServletComponentScan(basePackages = "im.zhaojun.zfile.*.filter") +@ComponentScan(basePackages = "im.zhaojun.zfile.*") public class ZfileApplication { + public static void main(String[] args) { SpringApplication.run(ZfileApplication.class, args); } -} + @Value("${spring.datasource.driver-class-name}") + private String datasourceDriveClassName; + + @Value("${spring.datasource.url}") + private String datasourceUrl; + + + @PostConstruct + public void init() { + if (StrUtil.equals(datasourceDriveClassName, "org.sqlite.JDBC")) { + String path = datasourceUrl.replace("jdbc:sqlite:", ""); + String folderPath = FileUtil.getParent(path, 1); + if (!FileUtil.exist(folderPath)) { + FileUtil.mkdir(folderPath); + } + } + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/annoation/RefererCheck.java b/src/main/java/im/zhaojun/zfile/admin/annoation/RefererCheck.java new file mode 100644 index 0000000..c78b6b6 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/annoation/RefererCheck.java @@ -0,0 +1,17 @@ +package im.zhaojun.zfile.admin.annoation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Referer 校验注解,标注了此注解的请求,会被校验 Referer 是否符合要求. + * + * @author zhaojun + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface RefererCheck { + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/annoation/StorageParamItem.java b/src/main/java/im/zhaojun/zfile/admin/annoation/StorageParamItem.java new file mode 100644 index 0000000..84fdf59 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/annoation/StorageParamItem.java @@ -0,0 +1,75 @@ +package im.zhaojun.zfile.admin.annoation; + +import im.zhaojun.zfile.admin.model.enums.StorageParamTypeEnum; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 标记存储类型参数名称 + * + * @author zhaojun + */ +@Target(ElementType.FIELD) +@Retention(RetentionPolicy.RUNTIME) +public @interface StorageParamItem { + + /** + * 字段显示排序值, 值越小, 越靠前. 默认为 99 + */ + int order() default 99; + + /** + * 参数键, 如果为空, 则使用字段名称. + */ + String key() default ""; + + /** + * 参数名称, 用于网页上显示名称. + */ + String name(); + + /** + * 字段类型, 默认为 input, 可选值为: input, select, switch. + */ + StorageParamTypeEnum type() default StorageParamTypeEnum.INPUT; + + /** + * 当 {@link #type} 为 select 时, 选项的值. + */ + StorageParamSelectOption[] options() default {}; + + /** + * 当 {@link #type} 为 select 时, 选项的值. 通过 {@link StorageParamSelect#getOptions)} 方法获取选项值. + */ + Class optionsClass() default StorageParamSelect.class; + + /** + * 参数值是否可以为空. 如不为空,则抛出异常. + */ + boolean required() default true; + + /** + * 如果填写值为空,则给予默认值. + * 支持 ${xxx} 变量, 会读取配置文件中的值, 如获取失败, 会默认为空. + */ + String defaultValue() default ""; + + /** + * 参数描述信息, 用户在用户填写时, 进行提示. + */ + String description() default ""; + + /** + * 参数下方的提示链接, 如果为空, 则不显示. + */ + String link() default ""; + + /** + * 参数下方的提示链接文件信息, 如果为空, 则默认为链接地址. + */ + String linkName() default ""; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/annoation/StorageParamSelect.java b/src/main/java/im/zhaojun/zfile/admin/annoation/StorageParamSelect.java new file mode 100644 index 0000000..5b37977 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/annoation/StorageParamSelect.java @@ -0,0 +1,28 @@ +package im.zhaojun.zfile.admin.annoation; + +import im.zhaojun.zfile.admin.model.param.IStorageParam; +import im.zhaojun.zfile.admin.annoation.model.StorageSourceParamDef; + +import java.util.List; + +/** + * 存储源参数下拉值接口. + * + * @author zhaojun + */ +public interface StorageParamSelect { + + /** + * 获取存储源参数下拉选项列表. + * + * @param storageParamItem + * 存储源下拉参数定义 + * + * @param targetParam + * 存储源参数 + * + * @return 存储源参数下拉选项列表 + */ + List getOptions(StorageParamItem storageParamItem, IStorageParam targetParam); + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/annoation/StorageParamSelectOption.java b/src/main/java/im/zhaojun/zfile/admin/annoation/StorageParamSelectOption.java new file mode 100644 index 0000000..b9e5828 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/annoation/StorageParamSelectOption.java @@ -0,0 +1,27 @@ +package im.zhaojun.zfile.admin.annoation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 标记存储类型参数类型为 select 时, 数据的下拉值. + * + * @author zhaojun + */ +@Target(ElementType.ANNOTATION_TYPE) +@Retention(RetentionPolicy.RUNTIME) +public @interface StorageParamSelectOption { + + /** + * 选项显示值 + */ + String label(); + + /** + * 选项存储值 + */ + String value(); + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/annoation/model/StorageSourceParamDef.java b/src/main/java/im/zhaojun/zfile/admin/annoation/model/StorageSourceParamDef.java new file mode 100644 index 0000000..73f0d43 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/annoation/model/StorageSourceParamDef.java @@ -0,0 +1,95 @@ +package im.zhaojun.zfile.admin.annoation.model; + +import im.zhaojun.zfile.admin.annoation.StorageParamSelectOption; +import im.zhaojun.zfile.admin.model.enums.StorageParamTypeEnum; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.Getter; + +import java.util.List; + +/** + * 存储源参数定义, 包含参数名称、描述、必填、默认值等信息. + * + * @author zhaojun + */ +@Data +@AllArgsConstructor +@Builder +public class StorageSourceParamDef { + + /** + * 字段显示排序值, 值越小, 越靠前. + */ + private int order; + + /** + * 参数 key + */ + private String key; + + /** + * 参数名称 + */ + private String name; + + /** + * 参数描述 + */ + private String description; + + /** + * 是否必填 + */ + private boolean required; + + /** + * 默认值 + */ + private String defaultValue; + + /** + * 链接地址 + */ + private String link; + + /** + * 链接名称 + */ + private String linkName; + + /** + * 字段类型, 默认为 input, 可选值为: input, select, switch. + */ + private StorageParamTypeEnum type; + + /** + * 当 {@link #type} 为 select 时, 选项的值. + */ + private List options; + + @Getter + public static class Options { + + private final String label; + + private final String value; + + public Options(String value) { + this.label = value; + this.value = value; + } + + public Options(String label, String value) { + this.label = label; + this.value = value; + } + public Options(StorageParamSelectOption storageParamSelectOption) { + this.label = storageParamSelectOption.label(); + this.value = storageParamSelectOption.value(); + } + + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/annoation/select/impl/EncodingStorageParamSelect.java b/src/main/java/im/zhaojun/zfile/admin/annoation/select/impl/EncodingStorageParamSelect.java new file mode 100644 index 0000000..4cef030 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/annoation/select/impl/EncodingStorageParamSelect.java @@ -0,0 +1,30 @@ +package im.zhaojun.zfile.admin.annoation.select.impl; + +import im.zhaojun.zfile.admin.annoation.StorageParamItem; +import im.zhaojun.zfile.admin.annoation.StorageParamSelect; +import im.zhaojun.zfile.admin.model.param.IStorageParam; +import im.zhaojun.zfile.admin.annoation.model.StorageSourceParamDef; + +import java.nio.charset.Charset; +import java.util.ArrayList; +import java.util.List; + +/** + * 编码格式动态参数. + * + * @author zhaojun + */ +public class EncodingStorageParamSelect implements StorageParamSelect { + + @Override + public List getOptions(StorageParamItem storageParamItem, IStorageParam targetParam) { + List options = new ArrayList<>(); + + for (String name : Charset.availableCharsets().keySet()) { + StorageSourceParamDef.Options option = new StorageSourceParamDef.Options(name); + options.add(option); + } + return options; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/constant/StorageConfigConstant.java b/src/main/java/im/zhaojun/zfile/admin/constant/StorageConfigConstant.java new file mode 100644 index 0000000..0225ccd --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/constant/StorageConfigConstant.java @@ -0,0 +1,14 @@ +package im.zhaojun.zfile.admin.constant; + +/** + * 存储源设置字段常量. + * + * @author zhaojun + */ +public class StorageConfigConstant { + + public static final String ACCESS_TOKEN_KEY = "accessToken"; + + public static final String REFRESH_TOKEN_KEY = "refreshToken"; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/constant/SystemConfigConstant.java b/src/main/java/im/zhaojun/zfile/admin/constant/SystemConfigConstant.java new file mode 100644 index 0000000..18d3d8c --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/constant/SystemConfigConstant.java @@ -0,0 +1,18 @@ +package im.zhaojun.zfile.admin.constant; + +/** + * 系统设置字段常量. + * + * @author zhaojun + */ +public class SystemConfigConstant { + + public static final String USERNAME = "username"; + + public static final String PASSWORD = "password"; + + public static final String LOGIN_VERIFY_MODE = "loginVerifyMode"; + + public static final String RSA_HEX_KEY = "rsaHexKey"; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/controller/CacheController.java b/src/main/java/im/zhaojun/zfile/admin/controller/CacheController.java new file mode 100644 index 0000000..a26311b --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/controller/CacheController.java @@ -0,0 +1,108 @@ +package im.zhaojun.zfile.admin.controller; + +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.github.xiaoymin.knife4j.annotations.ApiSort; +import im.zhaojun.zfile.home.model.dto.CacheInfoDTO; +import im.zhaojun.zfile.admin.service.StorageSourceService; +import im.zhaojun.zfile.common.util.AjaxJson; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * 存储源缓存维护接口 + * + * @author zhaojun + */ +@RestController +@Api(tags = "存储源模块-缓存") +@ApiSort(5) +@RequestMapping("/admin/cache") +public class CacheController { + + @Resource + private StorageSourceService storageSourceService; + + @ApiOperationSupport(order = 1) + @ApiOperation(value = "启用存储源缓存", notes = "开启缓存后,N 秒内重复请求相同文件夹,不会重复调用 API。" + + "参数 N 在配置文件中设置 {zfile.cache.timeout},默认为 1800 秒。") + @ApiImplicitParam(paramType = "path", name = "storageId", value = "存储源 id", required = true) + @PostMapping("/{storageId}/enable") + public AjaxJson enableCache(@PathVariable("storageId") Integer storageId) { + storageSourceService.updateCacheStatus(storageId, true); + return AjaxJson.getSuccess(); + } + + + @ApiOperationSupport(order = 2) + @ApiOperation(value = "禁用存储源缓存") + @ApiImplicitParam(paramType = "path", name = "storageId", value = "存储源 id", required = true) + @PostMapping("/{storageId}/disable") + public AjaxJson disableCache(@PathVariable("storageId") Integer storageId) { + storageSourceService.updateCacheStatus(storageId, false); + return AjaxJson.getSuccess(); + } + + + @ApiOperationSupport(order = 3) + @ApiOperation(value = "查看存储源缓存", notes = "可查看存储源缓存的所有目录路径") + @ApiImplicitParam(paramType = "path", name = "storageId", value = "存储源 id", required = true) + @GetMapping("/{storageId}/info") + public AjaxJson cacheInfo(@PathVariable("storageId") Integer storageId) { + CacheInfoDTO cacheInfo = storageSourceService.findCacheInfo(storageId); + return AjaxJson.getSuccessData(cacheInfo); + } + + + @ApiOperationSupport(order = 4) + @ApiOperation(value = "刷新存储源缓存", notes = "刷新存储源缓存路径,系统会重新预热此路径的内容") + @ApiImplicitParams({ + @ApiImplicitParam(paramType = "path", name = "storageId", value = "存储源 id", required = true), + @ApiImplicitParam(paramType = "body", name = "key", value = "缓存 key", required = true) + }) + @PostMapping("/{storageId}/refresh") + public AjaxJson refreshCache(@PathVariable("storageId") Integer storageId, String key) throws Exception { + storageSourceService.refreshCache(storageId, key); + return AjaxJson.getSuccess(); + } + + + @ApiOperationSupport(order = 5) + @ApiOperation(value = "开启缓存自动刷新", notes = "开启后每隔 N 秒检测到期的缓存, 对于过期缓存尝试调用 API, 重新写入缓存." + + "参数 N 在配置文件中设置 {zfile.cache.auto-refresh-interval},默认为 5 秒。") + @ApiImplicitParam(paramType = "path", name = "storageId", value = "存储源 id", required = true) + @PostMapping("/{storageId}/auto-refresh/start") + public AjaxJson enableAutoRefresh(@PathVariable("storageId") Integer storageId) { + storageSourceService.startAutoCacheRefresh(storageId); + return AjaxJson.getSuccess(); + } + + + @ApiOperationSupport(order = 5) + @ApiOperation(value = "关闭缓存自动刷新") + @ApiImplicitParam(paramType = "path", name = "storageId", value = "存储源 id", required = true) + @PostMapping("/{storageId}/auto-refresh/stop") + public AjaxJson disableAutoRefresh(@PathVariable("storageId") Integer storageId) { + storageSourceService.stopAutoCacheRefresh(storageId); + return AjaxJson.getSuccess(); + } + + + @ApiOperationSupport(order = 6) + @ApiOperation(value = "清空缓存") + @ApiImplicitParam(paramType = "path", name = "storageId", value = "存储源 id", required = true) + @PostMapping("/{storageId}/clear") + public AjaxJson clearCache(@PathVariable("storageId") Integer storageId) { + storageSourceService.clearCache(storageId); + return AjaxJson.getSuccess(); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/controller/LogController.java b/src/main/java/im/zhaojun/zfile/admin/controller/LogController.java new file mode 100644 index 0000000..a546039 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/controller/LogController.java @@ -0,0 +1,47 @@ +package im.zhaojun.zfile.admin.controller; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ZipUtil; +import com.github.xiaoymin.knife4j.annotations.ApiSort; +import im.zhaojun.zfile.common.util.FileResponseUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.io.Resource; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.io.File; +import java.util.Date; + +/** + * 获取系统日志接口 + * + * @author zhaojun + */ +@Api(tags = "日志") +@ApiSort(8) +@Slf4j +@RestController +@RequestMapping("/admin") +public class LogController { + + @Value("${zfile.log.path}") + private String zfileLogPath; + + @GetMapping("/log/download") + @ApiOperation(value = "下载系统日志") + public ResponseEntity downloadLog() { + if (log.isDebugEnabled()) { + log.debug("下载诊断日志"); + } + + File fileZip = ZipUtil.zip(zfileLogPath); + String currentDate = DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss"); + return FileResponseUtil.exportSingleThread(fileZip, "ZFile 诊断日志 - " + currentDate + ".zip"); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/controller/link/DownloadLogManagerController.java b/src/main/java/im/zhaojun/zfile/admin/controller/link/DownloadLogManagerController.java new file mode 100644 index 0000000..c90c14b --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/controller/link/DownloadLogManagerController.java @@ -0,0 +1,147 @@ +package im.zhaojun.zfile.admin.controller.link; + +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.OrderItem; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.github.xiaoymin.knife4j.annotations.ApiSort; +import im.zhaojun.zfile.admin.convert.DownloadLogConvert; +import im.zhaojun.zfile.admin.model.entity.DownloadLog; +import im.zhaojun.zfile.admin.model.entity.StorageSource; +import im.zhaojun.zfile.admin.model.request.link.QueryDownloadLogRequest; +import im.zhaojun.zfile.admin.model.result.link.DownloadLogResult; +import im.zhaojun.zfile.admin.service.DownloadLogService; +import im.zhaojun.zfile.admin.service.StorageSourceService; +import im.zhaojun.zfile.common.util.AjaxJson; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Stream; + +/** + * 直链下载日志接口 + * + * @author zhaojun + */ +@Api(tags = "直链日志管理") +@ApiSort(7) +@Controller +@RequestMapping("/admin/download/log") +public class DownloadLogManagerController { + + @Resource + private StorageSourceService storageSourceService; + + @Resource + private DownloadLogConvert downloadLogConvert; + + @Resource + private DownloadLogService downloadLogService; + + @ApiOperationSupport(order = 1) + @GetMapping("/list") + @ApiOperation(value = "直链下载日志") + @ResponseBody + @ApiImplicitParams({ + @ApiImplicitParam(paramType = "query", name = "key", value = "直链 key"), + @ApiImplicitParam(paramType = "query", name = "page", value = "分页页数"), + @ApiImplicitParam(paramType = "query", name = "limit", value = "每页条数"), + @ApiImplicitParam(paramType = "query", name = "orderBy", defaultValue = "createDate", value = "排序字段"), + @ApiImplicitParam(paramType = "query", name = "orderDirection", defaultValue = "desc", value = "排序顺序") + }) + public AjaxJson list(QueryDownloadLogRequest queryDownloadLogRequest, + @RequestParam(required = false, defaultValue = "create_time") String orderBy, + @RequestParam(required = false, defaultValue = "desc") String orderDirection) { + Page pages = Page.of(queryDownloadLogRequest.getPage(), queryDownloadLogRequest.getLimit()); + boolean asc = Objects.equals(orderDirection, "asc"); + pages.addOrder(new OrderItem(orderBy, asc)); + + DownloadLog downloadLog = new DownloadLog(); + QueryWrapper queryWrapper = new QueryWrapper<>(downloadLog); + + if (StrUtil.isNotEmpty(queryDownloadLogRequest.getStorageKey())) { + queryWrapper.eq("storage_key", queryDownloadLogRequest.getStorageKey()); + } + if (StrUtil.isNotEmpty(queryDownloadLogRequest.getPath())) { + queryWrapper.like("path", queryDownloadLogRequest.getPath()); + } + if (StrUtil.isNotEmpty(queryDownloadLogRequest.getShortKey())) { + queryWrapper.like("short_key", queryDownloadLogRequest.getShortKey()); + } + if (StrUtil.isNotEmpty(queryDownloadLogRequest.getIp())) { + queryWrapper.like("ip", queryDownloadLogRequest.getIp()); + } + if (StrUtil.isNotEmpty(queryDownloadLogRequest.getReferer())) { + queryWrapper.like("referer", queryDownloadLogRequest.getReferer()); + } + if (StrUtil.isNotEmpty(queryDownloadLogRequest.getUserAgent())) { + queryWrapper.like("user_agent", queryDownloadLogRequest.getUserAgent()); + } + if (ObjectUtil.isNotEmpty(queryDownloadLogRequest.getDateFrom())) { + queryWrapper.ge("create_time", queryDownloadLogRequest.getDateFrom()); + } + if (ObjectUtil.isNotEmpty(queryDownloadLogRequest.getDateTo())) { + queryWrapper.le("create_time", queryDownloadLogRequest.getDateFrom()); + } + Page selectResult = downloadLogService.page(pages, queryWrapper); + + long total = selectResult.getTotal(); + List records = selectResult.getRecords(); + + Map cache = new HashMap<>(); + + Stream shortLinkResultList = records.stream().map(model -> { + String storageKey = model.getStorageKey(); + StorageSource storageSource; + if (cache.containsKey(storageKey)) { + storageSource = cache.get(storageKey); + } else { + storageSource = storageSourceService.findByStorageKey(storageKey); + cache.put(storageKey, storageSource); + } + return downloadLogConvert.entityToResultList(model, storageSource); + }); + return AjaxJson.getPageData(total, shortLinkResultList); + } + + + @ApiOperationSupport(order = 2) + @DeleteMapping("/delete/{id}") + @ApiOperation(value = "删除直链") + @ApiImplicitParam(paramType = "path", name = "id", value = "直链 id", required = true) + @ResponseBody + public AjaxJson deleteById(@PathVariable Integer id) { + downloadLogService.removeById(id); + return AjaxJson.getSuccess(); + } + + + @ApiOperationSupport(order = 3) + @DeleteMapping("/delete/batch") + @ResponseBody + @ApiImplicitParam(paramType = "query", name = "ids", value = "直链 id", required = true) + @ApiOperation(value = "批量删除直链") + public AjaxJson batchDelete(@RequestParam("id[]") Integer[] ids) { + downloadLogService.removeBatchByIds(Arrays.asList(ids)); + return AjaxJson.getSuccess(); + } + + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/controller/link/ShortLinkManagerController.java b/src/main/java/im/zhaojun/zfile/admin/controller/link/ShortLinkManagerController.java new file mode 100644 index 0000000..ee46000 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/controller/link/ShortLinkManagerController.java @@ -0,0 +1,141 @@ +package im.zhaojun.zfile.admin.controller.link; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.OrderItem; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.github.xiaoymin.knife4j.annotations.ApiSort; +import im.zhaojun.zfile.admin.convert.ShortLinkConvert; +import im.zhaojun.zfile.admin.model.entity.ShortLink; +import im.zhaojun.zfile.admin.model.entity.StorageSource; +import im.zhaojun.zfile.admin.model.result.link.ShortLinkResult; +import im.zhaojun.zfile.admin.service.ShortLinkService; +import im.zhaojun.zfile.admin.service.StorageSourceService; +import im.zhaojun.zfile.common.util.AjaxJson; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Stream; + +/** + * 直链管理接口 + * + * @author zhaojun + */ +@Api(tags = "直链管理") +@ApiSort(7) +@Controller +@RequestMapping("/admin") +public class ShortLinkManagerController { + + @Resource + private ShortLinkService shortLinkService; + + @Resource + private StorageSourceService storageSourceService; + + @Resource + private ShortLinkConvert shortLinkConvert; + + @ApiOperationSupport(order = 1) + @GetMapping("/link/list") + @ApiOperation(value = "搜索短链") + @ResponseBody + @ApiImplicitParams({ + @ApiImplicitParam(paramType = "query", name = "key", value = "短链 key"), + @ApiImplicitParam(paramType = "query", name = "storageId", value = "存储源 ID"), + @ApiImplicitParam(paramType = "query", name = "url", value = "短链 url"), + @ApiImplicitParam(paramType = "query", name = "dateFrom", value = "短链创建时间从"), + @ApiImplicitParam(paramType = "query", name = "dateTo", value = "短链创建时间至"), + @ApiImplicitParam(paramType = "query", name = "page", value = "分页页数"), + @ApiImplicitParam(paramType = "query", name = "limit", value = "每页条数"), + @ApiImplicitParam(paramType = "query", name = "orderBy", defaultValue = "createDate", value = "排序字段"), + @ApiImplicitParam(paramType = "query", name = "orderDirection", defaultValue = "desc", value = "排序顺序") + }) + public AjaxJson list(String key, String storageId, + String url, + String dateFrom, + String dateTo, + Integer page, + Integer limit, + @RequestParam(required = false, defaultValue = "create_date") String orderBy, + @RequestParam(required = false, defaultValue = "desc") String orderDirection) { + Page pages = Page.of(page, limit); + boolean asc = Objects.equals(orderDirection, "asc"); + pages.addOrder(new OrderItem(orderBy, asc)); + QueryWrapper queryWrapper = new QueryWrapper<>(new ShortLink()); + if (StrUtil.isNotEmpty(storageId)) { + queryWrapper.eq("storage_id", storageId); + } + if (StrUtil.isNotEmpty(key)) { + queryWrapper.like("short_key", key); + } + if (StrUtil.isNotEmpty(url)) { + queryWrapper.like("url", url); + } + if (StrUtil.isNotEmpty(dateFrom)) { + queryWrapper.ge("create_date", dateFrom); + } + if (StrUtil.isNotEmpty(dateTo)) { + queryWrapper.le("create_date", dateTo); + } + Page selectResult = shortLinkService.page(pages, queryWrapper); + + long total = selectResult.getTotal(); + List records = selectResult.getRecords(); + + Map cache = new HashMap<>(); + + Stream shortLinkResultList = records.stream().map(shortLink -> { + Integer shortLinkStorageId = shortLink.getStorageId(); + StorageSource storageSource; + if (cache.containsKey(shortLinkStorageId)) { + storageSource = cache.get(shortLinkStorageId); + } else { + storageSource = storageSourceService.findById(shortLinkStorageId); + cache.put(shortLinkStorageId, storageSource); + } + return shortLinkConvert.entityToResultList(shortLink, storageSource); + }); + return AjaxJson.getPageData(total, shortLinkResultList); + } + + + @ApiOperationSupport(order = 2) + @DeleteMapping("/link/delete/{id}") + @ApiOperation(value = "删除短链") + @ApiImplicitParam(paramType = "path", name = "id", value = "短链 id", required = true) + @ResponseBody + public AjaxJson deleteById(@PathVariable Integer id) { + shortLinkService.removeById(id); + return AjaxJson.getSuccess(); + } + + + @ApiOperationSupport(order = 3) + @DeleteMapping("/link/delete/batch") + @ResponseBody + @ApiImplicitParam(paramType = "query", name = "ids", value = "短链 id", required = true) + @ApiOperation(value = "批量删除短链") + public AjaxJson batchDelete(@RequestParam("id[]") Integer[] ids) { + shortLinkService.removeBatchByIds(Arrays.asList(ids)); + return AjaxJson.getSuccess(); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/controller/login/LoginController.java b/src/main/java/im/zhaojun/zfile/admin/controller/login/LoginController.java new file mode 100644 index 0000000..8cc56e1 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/controller/login/LoginController.java @@ -0,0 +1 @@ +package im.zhaojun.zfile.admin.controller.login; import cn.dev33.satoken.stp.SaTokenInfo; import cn.dev33.satoken.stp.StpUtil; import cn.hutool.crypto.SecureUtil; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiSort; import com.github.xiaoymin.knife4j.annotations.DynamicParameter; import com.github.xiaoymin.knife4j.annotations.DynamicResponseParameters; import dev.samstevens.totp.exceptions.QrGenerationException; import im.zhaojun.zfile.admin.model.enums.LoginVerifyModeEnum; import im.zhaojun.zfile.admin.model.request.login.VerifyLogin2FARequest; import im.zhaojun.zfile.admin.model.result.login.Login2FAResult; import im.zhaojun.zfile.admin.model.result.login.LoginVerifyImgResult; import im.zhaojun.zfile.admin.service.SystemConfigService; import im.zhaojun.zfile.admin.service.login.ImgVerifyCodeService; import im.zhaojun.zfile.admin.service.login.TwoFAVerifyService; import im.zhaojun.zfile.common.util.AjaxJson; import im.zhaojun.zfile.home.model.dto.SystemConfigDTO; import im.zhaojun.zfile.home.model.request.UserLoginRequest; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.validation.Valid; import java.util.Objects; /** * 登陆注销相关接口 * * @author zhaojun */ @Api(tags = "登录模块") @ApiSort(1) @RestController @RequestMapping("/admin") public class LoginController { @Resource private SystemConfigService systemConfigService; @Resource private ImgVerifyCodeService imgVerifyCodeService; @Resource private TwoFAVerifyService twoFAVerifyService; @ApiOperationSupport(order = 1, ignoreParameters = {"zfile-token"}) @ApiOperation(value = "登录") @DynamicResponseParameters(properties = { @DynamicParameter(name = "data", value = "登录成功后返回 token 值,后续请求需要在 header 或 cookie 中添加名为 zfile-token 的令牌", example = "629932e1-5103-4c33-85c0-dc89df108ef7", required = true), @DynamicParameter(name = "code", value = "状态码,0 为正常,其他值表示登录失败,异常情况下见响应消息", dataTypeClass = Integer.class, example = "0"), @DynamicParameter(name = "msg", value = "响应消息", example = "ok"), }) @PostMapping("/login") public AjaxJson doLogin(@Valid @RequestBody UserLoginRequest userLoginRequest) { SystemConfigDTO systemConfig = systemConfigService.getSystemConfig(); String verifyCode = userLoginRequest.getVerifyCode(); String verifyCodeUUID = userLoginRequest.getVerifyCodeUUID(); LoginVerifyModeEnum loginVerifyMode = systemConfig.getLoginVerifyMode(); String loginVerifySecret = systemConfig.getLoginVerifySecret(); if (Objects.equals(loginVerifyMode, LoginVerifyModeEnum.TWO_FACTOR_AUTHENTICATION_MODE)) { twoFAVerifyService.checkCode(loginVerifySecret, verifyCode); } else if (Objects.equals(loginVerifyMode, LoginVerifyModeEnum.IMG_VERIFY_MODE)) { imgVerifyCodeService.checkCaptcha(verifyCodeUUID, verifyCode); } if (Objects.equals(systemConfig.getUsername(), userLoginRequest.getUsername()) && Objects.equals(systemConfig.getPassword(), SecureUtil.md5(userLoginRequest.getPassword()))) { StpUtil.login("admin"); SaTokenInfo tokenInfo = StpUtil.getTokenInfo(); return AjaxJson.getSuccess("登录成功", tokenInfo.getTokenValue()); } return AjaxJson.getError("登录失败, 账号或密码错误"); } @ApiOperationSupport(order = 2) @ApiOperation(value = "注销") @PostMapping("/logout") public AjaxJson logout() { StpUtil.logout(); return AjaxJson.getSuccess("注销成功"); } @ApiOperationSupport(order = 3) @ApiOperation(value = "生成 2FA") @GetMapping("/2fa/setup") public AjaxJson setupDevice() throws QrGenerationException { Login2FAResult login2FAResult = twoFAVerifyService.setupDevice(); return AjaxJson.getSuccessData(login2FAResult); } @ApiOperationSupport(order = 4) @ApiOperation(value = "2FA 验证并绑定") @PostMapping("/2fa/verify") public AjaxJson deviceVerify(@Valid @RequestBody VerifyLogin2FARequest verifyLogin2FARequest) { twoFAVerifyService.deviceVerify(verifyLogin2FARequest); return AjaxJson.getSuccess(); } @ApiOperationSupport(order = 5) @ApiOperation(value = "获取登陆验证方式") @GetMapping("/login/verify-mode") public AjaxJson loginVerifyMode() { SystemConfigDTO systemConfig = systemConfigService.getSystemConfig(); return AjaxJson.getSuccessData(systemConfig.getLoginVerifyMode()); } @ApiOperationSupport(order = 6) @ApiOperation(value = "获取图形验证码") @GetMapping("/login/captcha") public AjaxJson captcha() { LoginVerifyImgResult loginVerifyImgResult = imgVerifyCodeService.generatorCaptcha(); return AjaxJson.getSuccessData(loginVerifyImgResult); } @ApiOperationSupport(order = 7) @ApiOperation(value = "检测是否已登录") @GetMapping("/login/check") public AjaxJson checkLogin() { return AjaxJson.getSuccessData(StpUtil.isLogin()); } } \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/controller/setting/SettingController.java b/src/main/java/im/zhaojun/zfile/admin/controller/setting/SettingController.java new file mode 100644 index 0000000..37c947b --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/controller/setting/SettingController.java @@ -0,0 +1,103 @@ +package im.zhaojun.zfile.admin.controller.setting; + +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.github.xiaoymin.knife4j.annotations.ApiSort; +import im.zhaojun.zfile.admin.model.request.setting.UpdateLinkSettingRequest; +import im.zhaojun.zfile.admin.model.request.setting.UpdateSecuritySettingRequest; +import im.zhaojun.zfile.admin.model.request.setting.UpdateSiteSettingRequest; +import im.zhaojun.zfile.admin.model.request.setting.UpdateUserNameAndPasswordRequest; +import im.zhaojun.zfile.admin.model.request.setting.UpdateViewSettingRequest; +import im.zhaojun.zfile.admin.service.SystemConfigService; +import im.zhaojun.zfile.common.util.AjaxJson; +import im.zhaojun.zfile.home.model.dto.SystemConfigDTO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.BeanUtils; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.validation.Valid; + +/** + * 站点设定值接口 + * + * @author zhaojun + */ +@Api(tags = "站点设置模块") +@ApiSort(2) +@RestController +@RequestMapping("/admin") +public class SettingController { + + @Resource + private SystemConfigService systemConfigService; + + @ApiOperationSupport(order = 1) + @ApiOperation(value = "获取站点信息", + notes = "获取站点相关信息,如站点名称,风格样式,是否显示公告,是否显示文档区,自定义 CSS,JS 等参数") + @GetMapping("/config") + public AjaxJson getConfig() { + SystemConfigDTO systemConfigDTO = systemConfigService.getSystemConfig(); + return AjaxJson.getSuccessData(systemConfigDTO); + } + + + @ApiOperationSupport(order = 2) + @ApiOperation(value = "修改管理员账号密码") + @PutMapping("/config/password") + public AjaxJson updatePwd(@Valid @RequestBody UpdateUserNameAndPasswordRequest settingRequest) { + SystemConfigDTO systemConfigDTO = new SystemConfigDTO(); + BeanUtils.copyProperties(settingRequest, systemConfigDTO); + systemConfigService.updateSystemConfig(systemConfigDTO); + return AjaxJson.getSuccess(); + } + + + @ApiOperationSupport(order = 3) + @ApiOperation(value = "修改站点设置") + @PutMapping("/config/site") + public AjaxJson updateSiteSetting(@Valid @RequestBody UpdateSiteSettingRequest settingRequest) { + SystemConfigDTO systemConfigDTO = new SystemConfigDTO(); + BeanUtils.copyProperties(settingRequest, systemConfigDTO); + systemConfigService.updateSystemConfig(systemConfigDTO); + return AjaxJson.getSuccess(); + } + + + @ApiOperationSupport(order = 4) + @ApiOperation(value = "修改显示设置") + @PutMapping("/config/view") + public AjaxJson updateViewSetting(@Valid @RequestBody UpdateViewSettingRequest settingRequest) { + SystemConfigDTO systemConfigDTO = new SystemConfigDTO(); + BeanUtils.copyProperties(settingRequest, systemConfigDTO); + systemConfigService.updateSystemConfig(systemConfigDTO); + return AjaxJson.getSuccess(); + } + + + @ApiOperationSupport(order = 5) + @ApiOperation(value = "修改登陆安全设置") + @PutMapping("/config/security") + public AjaxJson updateSecuritySetting(@Valid @RequestBody UpdateSecuritySettingRequest settingRequest) { + SystemConfigDTO systemConfigDTO = new SystemConfigDTO(); + BeanUtils.copyProperties(settingRequest, systemConfigDTO); + systemConfigService.updateSystemConfig(systemConfigDTO); + return AjaxJson.getSuccess(); + } + + + @ApiOperationSupport(order = 6) + @ApiOperation(value = "修改直链设置") + @PutMapping("/config/link") + public AjaxJson updateLinkSetting(@Valid @RequestBody UpdateLinkSettingRequest settingRequest) { + SystemConfigDTO systemConfigDTO = new SystemConfigDTO(); + BeanUtils.copyProperties(settingRequest, systemConfigDTO); + systemConfigService.updateSystemConfig(systemConfigDTO); + return AjaxJson.getSuccess(); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/controller/stroage/StorageMetaDataController.java b/src/main/java/im/zhaojun/zfile/admin/controller/stroage/StorageMetaDataController.java new file mode 100644 index 0000000..65e41a1 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/controller/stroage/StorageMetaDataController.java @@ -0,0 +1,44 @@ +package im.zhaojun.zfile.admin.controller.stroage; + +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.github.xiaoymin.knife4j.annotations.ApiSort; +import im.zhaojun.zfile.common.context.StorageSourceContext; +import im.zhaojun.zfile.home.model.enums.StorageTypeEnum; +import im.zhaojun.zfile.admin.annoation.model.StorageSourceParamDef; +import im.zhaojun.zfile.common.util.AjaxJson; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * 系统元数据接口 + * + * @author zhaojun + */ +@Api(tags = "存储源模块-元数据") +@ApiSort(4) +@RestController +@RequestMapping("/admin") +public class StorageMetaDataController { + + @GetMapping("/support-storage") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "获取支持的存储源类型", notes = "获取系统支持的存储源类型") + public AjaxJson supportStorage() { + return AjaxJson.getSuccessData(StorageTypeEnum.values()); + } + + + @GetMapping("/storage-params") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "获取指定存储源类型的所有参数信息", notes = "获取指定存储源类型的参数,如本地存储只需要填路径地址,而对象存储需要填 AccessKey, SecretKey 等信息.") + public AjaxJson> getFormByStorageType(StorageTypeEnum storageType) { + List storageSourceConfigList = StorageSourceContext.getStorageSourceParamListByType(storageType); + return AjaxJson.getSuccessData(storageSourceConfigList); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/controller/stroage/StorageSourceController.java b/src/main/java/im/zhaojun/zfile/admin/controller/stroage/StorageSourceController.java new file mode 100644 index 0000000..101bf85 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/controller/stroage/StorageSourceController.java @@ -0,0 +1,134 @@ +package im.zhaojun.zfile.admin.controller.stroage; + +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.github.xiaoymin.knife4j.annotations.ApiSort; +import im.zhaojun.zfile.admin.model.entity.StorageSource; +import im.zhaojun.zfile.admin.model.request.SaveStorageSourceRequest; +import im.zhaojun.zfile.admin.model.result.storage.StorageSourceAdminResult; +import im.zhaojun.zfile.admin.service.StorageSourceService; +import im.zhaojun.zfile.common.cache.RefreshTokenCache; +import im.zhaojun.zfile.common.util.AjaxJson; +import im.zhaojun.zfile.home.convert.StorageSourceConvert; +import im.zhaojun.zfile.home.model.dto.StorageSourceDTO; +import im.zhaojun.zfile.home.model.request.UpdateStorageSortRequest; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 存储源基础设置模块接口 + * + * @author zhaojun + */ +@Api(tags = "存储源模块-基础") +@ApiSort(3) +@RestController +@RequestMapping("/admin") +public class StorageSourceController { + + @Resource + private StorageSourceService storageSourceService; + + @Resource + private StorageSourceConvert storageSourceConvert; + + + @ApiOperationSupport(order = 1) + @ApiOperation(value = "获取所有存储源列表", notes = "获取所有添加的存储源列表,按照排序值由小到大排序") + @GetMapping("/storages") + public AjaxJson> storageList() { + List list = storageSourceService.findAllOrderByOrderNum(); + + List storageSourceAdminResults = storageSourceConvert.entityToAdminResultList(list); + + storageSourceAdminResults.forEach(storageSourceAdminResult -> { + RefreshTokenCache.RefreshTokenInfo refreshTokenInfo = RefreshTokenCache.getRefreshTokenInfo(storageSourceAdminResult.getId()); + storageSourceAdminResult.setRefreshTokenInfo(refreshTokenInfo); + }); + + return AjaxJson.getSuccessData(storageSourceAdminResults); + } + + + @ApiOperationSupport(order = 2) + @ApiOperation(value = "获取指定存储源参数", notes = "获取指定存储源基本信息及其参数") + @ApiImplicitParam(paramType = "path", name = "storageId", value = "存储源 id", required = true) + @GetMapping("/storage/{storageId}") + public AjaxJson storageItem(@PathVariable Integer storageId) { + StorageSourceDTO storageSourceDTO = storageSourceService.findStorageSourceDTOById(storageId); + return AjaxJson.getSuccessData(storageSourceDTO); + } + + + @ApiOperationSupport(order = 3) + @ApiOperation(value = "保存存储源参数", notes = "保存存储源的所有参数") + @PostMapping("/storage") + public AjaxJson saveStorageItem(@RequestBody SaveStorageSourceRequest saveStorageSourceRequest) { + storageSourceService.saveStorageSource(saveStorageSourceRequest); + return AjaxJson.getSuccess(); + } + + + @ApiOperationSupport(order = 4) + @ApiOperation(value = "删除存储源", notes = "删除存储源基本设置和拓展设置") + @ApiImplicitParam(paramType = "path", name = "storageId", value = "存储源 id", required = true) + @DeleteMapping("/storage/{storageId}") + public AjaxJson deleteStorageItem(@PathVariable Integer storageId) { + storageSourceService.deleteById(storageId); + return AjaxJson.getSuccess(); + } + + + @ApiOperationSupport(order = 5) + @ApiOperation(value = "启用存储源", notes = "开启存储源后可在前台显示") + @ApiImplicitParam(paramType = "path", name = "storageId", value = "存储源 id", required = true) + @PostMapping("/storage/{storageId}/enable") + public AjaxJson enable(@PathVariable Integer storageId) { + StorageSource storageSource = storageSourceService.findById(storageId); + storageSource.setEnable(true); + storageSourceService.updateById(storageSource); + return AjaxJson.getSuccess(); + } + + + @ApiOperationSupport(order = 6) + @ApiOperation(value = "停止存储源", notes = "停用存储源后不在前台显示") + @ApiImplicitParam(paramType = "path", name = "storageId", value = "存储源 id", required = true) + @PostMapping("/storage/{storageId}/disable") + public AjaxJson disable(@PathVariable Integer storageId) { + StorageSource storageSource = storageSourceService.findById(storageId); + storageSource.setEnable(false); + storageSourceService.updateById(storageSource); + return AjaxJson.getSuccess(); + } + + + @ApiOperationSupport(order = 7) + @ApiOperation(value = "更新存储源顺序") + @PostMapping("/storage/sort") + public AjaxJson updateStorageSort(@RequestBody List updateStorageSortRequestList) { + storageSourceService.updateStorageSort(updateStorageSortRequestList); + return AjaxJson.getSuccess(); + } + + + @ApiOperationSupport(order = 8) + @ApiOperation(value = "校验存储源 key 是否重复") + @ApiImplicitParam(paramType = "query", name = "storageKey", value = "存储源 key", required = true) + @GetMapping("/storage/exist/key") + public AjaxJson existKey(String storageKey) { + boolean exist = storageSourceService.existByStorageKey(storageKey); + return AjaxJson.getSuccessData(exist); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/controller/stroage/StorageSourceFilterController.java b/src/main/java/im/zhaojun/zfile/admin/controller/stroage/StorageSourceFilterController.java new file mode 100644 index 0000000..2814d3a --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/controller/stroage/StorageSourceFilterController.java @@ -0,0 +1,53 @@ +package im.zhaojun.zfile.admin.controller.stroage; + +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.github.xiaoymin.knife4j.annotations.ApiSort; +import im.zhaojun.zfile.admin.model.entity.FilterConfig; +import im.zhaojun.zfile.admin.service.FilterConfigService; +import im.zhaojun.zfile.common.util.AjaxJson; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 存储源过滤器维护接口 + * + * @author zhaojun + */ +@Api(tags = "存储源模块-过滤文件") +@ApiSort(6) +@RestController +@RequestMapping("/admin") +public class StorageSourceFilterController { + + @Resource + private FilterConfigService filterConfigService; + + @ApiOperationSupport(order = 1) + @ApiOperation(value = "获取存储源过滤文件列表", notes = "根据存储源 ID 获取存储源设置的过滤文件列表") + @ApiImplicitParam(paramType = "path", name = "storageId", value = "存储源 id", required = true) + @GetMapping("/storage/{storageId}/filters") + public AjaxJson> getFilters(@PathVariable Integer storageId) { + return AjaxJson.getSuccessData(filterConfigService.findByStorageId(storageId)); + } + + + @ApiOperationSupport(order = 2) + @ApiOperation(value = "保存存储源过滤文件列表", notes = "保存指定存储源 ID 设置的过滤文件列表") + @ApiImplicitParam(paramType = "path", name = "storageId", value = "存储源 id", required = true) + @PostMapping("/storage/{storageId}/filters") + public AjaxJson saveFilters(@PathVariable Integer storageId, @RequestBody List filter) { + filterConfigService.batchSave(storageId, filter); + return AjaxJson.getSuccess(); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/controller/stroage/StorageSourcePasswordController.java b/src/main/java/im/zhaojun/zfile/admin/controller/stroage/StorageSourcePasswordController.java new file mode 100644 index 0000000..1947811 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/controller/stroage/StorageSourcePasswordController.java @@ -0,0 +1,53 @@ +package im.zhaojun.zfile.admin.controller.stroage; + +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.github.xiaoymin.knife4j.annotations.ApiSort; +import im.zhaojun.zfile.admin.model.entity.PasswordConfig; +import im.zhaojun.zfile.admin.service.PasswordConfigService; +import im.zhaojun.zfile.common.util.AjaxJson; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 存储源密码维护接口 + * + * @author zhaojun + */ +@Api(tags = "存储源模块-密码文件夹") +@ApiSort(6) +@RestController +@RequestMapping("/admin") +public class StorageSourcePasswordController { + + @Resource + private PasswordConfigService passwordConfigService; + + @ApiOperationSupport(order = 1) + @ApiOperation(value = "获取存储源密码文件夹列表", notes = "根据存储源 ID 获取存储源设置的密码文件夹列表") + @ApiImplicitParam(paramType = "path", name = "storageId", value = "存储源 id", required = true) + @GetMapping("/storage/{storageId}/password") + public AjaxJson> getPasswordList(@PathVariable Integer storageId) { + return AjaxJson.getSuccessData(passwordConfigService.findByStorageId(storageId)); + } + + + @ApiOperationSupport(order = 2) + @ApiOperation(value = "保存存储源密码文件夹列表", notes = "保存指定存储源 ID 设置的密码文件夹列表") + @ApiImplicitParam(paramType = "path", name = "storageId", value = "存储源 id", required = true) + @PostMapping("/storage/{storageId}/password") + public AjaxJson savePasswordList(@PathVariable Integer storageId, @RequestBody List password) { + passwordConfigService.batchSave(storageId, password); + return AjaxJson.getSuccess(); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/controller/stroage/StorageSourceReadmeController.java b/src/main/java/im/zhaojun/zfile/admin/controller/stroage/StorageSourceReadmeController.java new file mode 100644 index 0000000..5a6e95f --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/controller/stroage/StorageSourceReadmeController.java @@ -0,0 +1,53 @@ +package im.zhaojun.zfile.admin.controller.stroage; + +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.github.xiaoymin.knife4j.annotations.ApiSort; +import im.zhaojun.zfile.admin.model.entity.ReadmeConfig; +import im.zhaojun.zfile.admin.service.ReadmeConfigService; +import im.zhaojun.zfile.common.util.AjaxJson; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 存储源文档模块维护接口 + * + * @author zhaojun + */ +@Api(tags = "存储源模块-README") +@ApiSort(7) +@RestController +@RequestMapping("/admin") +public class StorageSourceReadmeController { + + @Resource + private ReadmeConfigService readmeConfigService; + + @ApiOperationSupport(order = 1) + @ApiOperation(value = "获取存储源文档文件夹列表", notes = "根据存储源 ID 获取存储源设置的文档文件夹列表") + @ApiImplicitParam(paramType = "path", name = "storageId", value = "存储源 id", required = true) + @GetMapping("/storage/{storageId}/readme") + public AjaxJson> getReadmeList(@PathVariable Integer storageId) { + return AjaxJson.getSuccessData(readmeConfigService.findByStorageId(storageId)); + } + + + @ApiOperationSupport(order = 2) + @ApiOperation(value = "保存存储源文档文件夹列表", notes = "保存指定存储源 ID 设置的文档文件夹列表") + @ApiImplicitParam(paramType = "path", name = "storageId", value = "存储源 id", required = true) + @PostMapping("/storage/{storageId}/readme") + public AjaxJson saveReadmeList(@PathVariable Integer storageId, @RequestBody List readme) { + readmeConfigService.batchSave(storageId, readme); + return AjaxJson.getSuccess(); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/convert/DownloadLogConvert.java b/src/main/java/im/zhaojun/zfile/admin/convert/DownloadLogConvert.java new file mode 100644 index 0000000..44b28fd --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/convert/DownloadLogConvert.java @@ -0,0 +1,22 @@ +package im.zhaojun.zfile.admin.convert; + +import im.zhaojun.zfile.admin.model.entity.DownloadLog; +import im.zhaojun.zfile.admin.model.entity.StorageSource; +import im.zhaojun.zfile.admin.model.result.link.DownloadLogResult; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.springframework.stereotype.Component; + +/** + * @author zhaojun + */ +@Component +@Mapper(componentModel = "spring") +public interface DownloadLogConvert { + + @Mapping(source = "downloadLog.id", target = "id") + @Mapping(source = "storageSource.name", target = "storageName") + @Mapping(source = "storageSource.type", target = "storageType") + DownloadLogResult entityToResultList(DownloadLog downloadLog, StorageSource storageSource); + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/convert/ShortLinkConvert.java b/src/main/java/im/zhaojun/zfile/admin/convert/ShortLinkConvert.java new file mode 100644 index 0000000..152bfa6 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/convert/ShortLinkConvert.java @@ -0,0 +1,22 @@ +package im.zhaojun.zfile.admin.convert; + +import im.zhaojun.zfile.admin.model.entity.ShortLink; +import im.zhaojun.zfile.admin.model.entity.StorageSource; +import im.zhaojun.zfile.admin.model.result.link.ShortLinkResult; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.springframework.stereotype.Component; + +/** + * @author zhaojun + */ +@Component +@Mapper(componentModel = "spring") +public interface ShortLinkConvert { + + @Mapping(source = "shortLink.id", target = "id") + @Mapping(source = "storageSource.name", target = "storageName") + @Mapping(source = "storageSource.type", target = "storageType") + ShortLinkResult entityToResultList(ShortLink shortLink, StorageSource storageSource); + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/exception/ForbidFileOperationException.java b/src/main/java/im/zhaojun/zfile/admin/exception/ForbidFileOperationException.java new file mode 100644 index 0000000..0190858 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/exception/ForbidFileOperationException.java @@ -0,0 +1,22 @@ +package im.zhaojun.zfile.admin.exception; + +import lombok.Getter; + +/** + * 禁止的文件操作异常 + * + * @author zhaojun + */ +@Getter +public class ForbidFileOperationException extends RuntimeException { + + private final Integer storageId; + + private final String action; + + public ForbidFileOperationException(Integer storageId, String action) { + this.storageId = storageId; + this.action = action; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/exception/StorageSourceAutoConfigCorsException.java b/src/main/java/im/zhaojun/zfile/admin/exception/StorageSourceAutoConfigCorsException.java new file mode 100644 index 0000000..5664ef1 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/exception/StorageSourceAutoConfigCorsException.java @@ -0,0 +1,21 @@ +package im.zhaojun.zfile.admin.exception; + +import im.zhaojun.zfile.admin.model.param.IStorageParam; +import lombok.Getter; + +/** + * 存储源自动设置 cors 异常 + * + * @author zhaojun + */ +@Getter +public class StorageSourceAutoConfigCorsException extends RuntimeException { + + private final IStorageParam iStorageParam; + + public StorageSourceAutoConfigCorsException(String message, Throwable cause, IStorageParam iStorageParam) { + super(message, cause); + this.iStorageParam = iStorageParam; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/mapper/DownloadLogMapper.java b/src/main/java/im/zhaojun/zfile/admin/mapper/DownloadLogMapper.java new file mode 100644 index 0000000..b8083a8 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/mapper/DownloadLogMapper.java @@ -0,0 +1,15 @@ +package im.zhaojun.zfile.admin.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import im.zhaojun.zfile.admin.model.entity.DownloadLog; +import org.apache.ibatis.annotations.Mapper; + +/** + * 下载日志 Mapper 接口 + * + * @author zhaojun + */ +@Mapper +public interface DownloadLogMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/mapper/FilterConfigMapper.java b/src/main/java/im/zhaojun/zfile/admin/mapper/FilterConfigMapper.java new file mode 100644 index 0000000..0478d8c --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/mapper/FilterConfigMapper.java @@ -0,0 +1,61 @@ +package im.zhaojun.zfile.admin.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import im.zhaojun.zfile.admin.model.entity.FilterConfig; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 过滤器配置表 Mapper 接口 + * + * @author zhaojun + */ +@Mapper +public interface FilterConfigMapper extends BaseMapper { + + /** + * 根据存储源 ID 获取存储源配置列表 + * + * @param storageId + * 存储源 ID + * + * @return 存储源过滤器配置列表 + */ + List findByStorageId(@Param("storageId") Integer storageId); + + + /** + * 根据存储源 ID 删除过滤器配置 + * + * @param storageId + * 存储源 ID + * + * @return 删除条数 + */ + int deleteByStorageId(@Param("storageId") Integer storageId); + + + /** + * 获取所有类型为禁止访问的过滤规则 + * + * @param storageId + * 存储 ID + * + * @return 禁止访问的过滤规则列表 + */ + List findByStorageIdAndInaccessible(@Param("storageId")Integer storageId); + + + /** + * 获取所有类型为禁止下载的过滤规则 + * + * @param storageId + * 存储 ID + * + * @return 禁止下载的过滤规则列表 + */ + List findByStorageIdAndDisableDownload(@Param("storageId")Integer storageId); + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/mapper/PasswordConfigMapper.java b/src/main/java/im/zhaojun/zfile/admin/mapper/PasswordConfigMapper.java new file mode 100644 index 0000000..6893f35 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/mapper/PasswordConfigMapper.java @@ -0,0 +1,39 @@ +package im.zhaojun.zfile.admin.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import im.zhaojun.zfile.admin.model.entity.PasswordConfig; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 存储源密码配置表 Mapper 接口 + * + * @author zhaojun + */ +@Mapper +public interface PasswordConfigMapper extends BaseMapper { + + /** + * 根据存储源 ID 获取密码规则配置 + * + * @param storageId + * 存储源 ID + * + * @return 存储源密码规则配置列表 + */ + List findByStorageId(@Param("storageId") Integer storageId); + + + /** + * 根据存储源 ID 删除要密码规则配置 + * + * @param storageId + * 存储源 ID + * + * @return 删除记录数 + */ + int deleteByStorageId(@Param("storageId") Integer storageId); + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/mapper/ReadmeConfigMapper.java b/src/main/java/im/zhaojun/zfile/admin/mapper/ReadmeConfigMapper.java new file mode 100644 index 0000000..87f78d7 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/mapper/ReadmeConfigMapper.java @@ -0,0 +1,40 @@ +package im.zhaojun.zfile.admin.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import im.zhaojun.zfile.admin.model.entity.ReadmeConfig; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 存储源文档配置表 Mapper 接口 + * + * @author zhaojun + */ +@Mapper +public interface ReadmeConfigMapper extends BaseMapper { + + + /** + * 根据存储源 ID 查询文档配置 + * + * @param storageId + * 存储源ID + * + * @return 存储源文档配置列表 + */ + List findByStorageId(@Param("storageId") Integer storageId); + + + /** + * 根据存储源 ID 删除文档配置 + * + * @param storageId + * 存储源ID + * + * @return 删除记录数 + */ + int deleteByStorageId(@Param("storageId") Integer storageId); + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/mapper/ShortLinkMapper.java b/src/main/java/im/zhaojun/zfile/admin/mapper/ShortLinkMapper.java new file mode 100644 index 0000000..a8fc82c --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/mapper/ShortLinkMapper.java @@ -0,0 +1,41 @@ +package im.zhaojun.zfile.admin.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import im.zhaojun.zfile.admin.model.entity.ShortLink; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * 短链接配置表 Mapper 接口 + * + * @author zhaojun + */ +@Mapper +public interface ShortLinkMapper extends BaseMapper { + + /** + * 根据短链接 key 查询短链接 + * + * @param key + * 短链接 key + * + * @return 短链接信息 + */ + ShortLink findByKey(@Param("key")String key); + + + /** + * 根据存储源 ID 和文件路径查询短链接 + * + * @param storageId + * 存储源 ID + * + * @param url + * 短链接 url + * + * @return 短链接信息 + */ + ShortLink findByStorageIdAndUrl(@Param("storageId") Integer storageId, @Param("url") String url); + + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/mapper/StorageSourceConfigMapper.java b/src/main/java/im/zhaojun/zfile/admin/mapper/StorageSourceConfigMapper.java new file mode 100644 index 0000000..9549f04 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/mapper/StorageSourceConfigMapper.java @@ -0,0 +1,65 @@ +package im.zhaojun.zfile.admin.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import im.zhaojun.zfile.admin.model.entity.StorageSourceConfig; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +/** + * 存储源拓展设置 Mapper 接口 + * + * @author zhaojun + */ +@Mapper +public interface StorageSourceConfigMapper extends BaseMapper { + + /** + * 根据存储源 ID 查询存储源拓展配置, 并按照存储源 id 排序 + * + * @param storageId + * 存储源 ID + * + * @return 存储源拓展配置列表 + */ + List findByStorageIdOrderById(@Param("storageId") Integer storageId); + + + /** + * 获取指定存储源的指定参数名称 + * + * @param storageId + * 存储源 id + * + * @param name + * 参数名 + * + * @return 参数信息 + */ + StorageSourceConfig findByStorageIdAndName(@Param("storageId") Integer storageId, @Param("name") String name); + + + /** + * 根据存储源 ID 删除存储源拓展配置 + * + * @param storageId + * 存储源 ID + * + * @return 删除记录数 + */ + int deleteByStorageId(@Param("storageId") Integer storageId); + + + /** + * 批量插入存储源拓展配置 + * + * @param list + * 存储源拓展配置列表 + * + * @return 插入记录数 + */ + int insertList(@Param("list") List list); + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/mapper/StorageSourceMapper.java b/src/main/java/im/zhaojun/zfile/admin/mapper/StorageSourceMapper.java new file mode 100644 index 0000000..0e6c677 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/mapper/StorageSourceMapper.java @@ -0,0 +1,98 @@ +package im.zhaojun.zfile.admin.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import im.zhaojun.zfile.admin.model.entity.StorageSource; +import im.zhaojun.zfile.home.model.enums.StorageTypeEnum; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 存储源基本配置 Mapper 接口 + * + * @author zhaojun + */ +@Mapper +public interface StorageSourceMapper extends BaseMapper { + + /** + * 获取所有已启用的存储源, 并按照存储源排序值排序 + * + * @return 存储源列表 + */ + List findListByEnableOrderByOrderNum(); + + + /** + * 获取所有存储源, 并按照存储源排序值排序 + * + * @return 存储源列表 + */ + List findAllOrderByOrderNum(); + + + /** + * 获取存储源 ID 最大值 + * + * @return 存储源 ID 最大值 + */ + Integer selectMaxId(); + + + /** + * 根据存储源类型获取存储源列表 + * + * @param type + * 存储源类型 + * + * @return 存储源列表 + */ + List findByType(@Param("type") StorageTypeEnum type); + + + /** + * 根据存储源 ID 设置排序值 + * + * @param orderNum + * 排序值 + * + * @param id + * 存储源 ID + */ + void updateSetOrderNumById(@Param("orderNum") int orderNum, @Param("id") Integer id); + + + /** + * 根据存储源 key 获取存储源 + * + * @param storageKey + * 存储源 key + * + * @return 存储源信息 + */ + StorageSource findByStorageKey(@Param("storageKey") String storageKey); + + + /** + * 根据存储源 key 获取存储源 id + * + * @param storageKey + * 存储源 key + * + * @return 存储源 id + */ + Integer findIdByStorageKey(@Param("storageKey") String storageKey); + + + /** + * 根据存储源 id 获取存储源 key + * + * @param id + * 存储源 id + * + * @return 存储源 key + */ + String findKeyById(@Param("id")Integer id); + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/mapper/SystemConfigMapper.java b/src/main/java/im/zhaojun/zfile/admin/mapper/SystemConfigMapper.java new file mode 100644 index 0000000..5032e11 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/mapper/SystemConfigMapper.java @@ -0,0 +1,48 @@ +package im.zhaojun.zfile.admin.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import im.zhaojun.zfile.admin.model.entity.SystemConfig; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +/** + * 系统配置 Mapper 接口 + * + * @author zhaojun + */ +@Mapper +public interface SystemConfigMapper extends BaseMapper { + + /** + * 获取所有系统设置 + * + * @return 系统设置列表 + */ + List findAll(); + + + /** + * 根据系统设置名称获取设置信息 + * + * @param name + * 系统设置名称 + * + * @return 系统设置信息 + */ + SystemConfig findByName(@Param("name")String name); + + + /** + * 批量保存系统设置 + * + * @param list + * 系统设置列表 + * + * @return 保存记录数 + */ + int saveAll(@Param("list")List list); + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/model/support/OneDriveToken.java b/src/main/java/im/zhaojun/zfile/admin/model/dto/OneDriveToken.java similarity index 80% rename from src/main/java/im/zhaojun/zfile/model/support/OneDriveToken.java rename to src/main/java/im/zhaojun/zfile/admin/model/dto/OneDriveToken.java index f101783..1a0c9a3 100644 --- a/src/main/java/im/zhaojun/zfile/model/support/OneDriveToken.java +++ b/src/main/java/im/zhaojun/zfile/admin/model/dto/OneDriveToken.java @@ -1,9 +1,11 @@ -package im.zhaojun.zfile.model.support; +package im.zhaojun.zfile.admin.model.dto; import com.alibaba.fastjson.annotation.JSONField; import lombok.Data; /** + * OneDrive Token DTO + * * @author zhaojun */ @Data @@ -14,4 +16,5 @@ public class OneDriveToken { @JSONField(name = "refresh_token") private String refreshToken; -} + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/cache/DriveCacheKey.java b/src/main/java/im/zhaojun/zfile/admin/model/dto/StorageSourceCacheKey.java similarity index 51% rename from src/main/java/im/zhaojun/zfile/cache/DriveCacheKey.java rename to src/main/java/im/zhaojun/zfile/admin/model/dto/StorageSourceCacheKey.java index 71679a6..8f28c93 100644 --- a/src/main/java/im/zhaojun/zfile/cache/DriveCacheKey.java +++ b/src/main/java/im/zhaojun/zfile/admin/model/dto/StorageSourceCacheKey.java @@ -1,18 +1,20 @@ -package im.zhaojun.zfile.cache; +package im.zhaojun.zfile.admin.model.dto; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; /** + * 缓存对象,用户表示那个存储源的那个文件夹. + * * @author zhaojun */ @Data @AllArgsConstructor @NoArgsConstructor -public class DriveCacheKey { +public class StorageSourceCacheKey { - private Integer driveId; + private Integer storageId; private String key; diff --git a/src/main/java/im/zhaojun/zfile/admin/model/entity/DownloadLog.java b/src/main/java/im/zhaojun/zfile/admin/model/entity/DownloadLog.java new file mode 100644 index 0000000..62c5f82 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/entity/DownloadLog.java @@ -0,0 +1,65 @@ +package im.zhaojun.zfile.admin.model.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 文件下载日志 entity + * + * @author zhaojun + */ +@Data +@ApiModel(value="文件下载日志") +@TableName(value = "`download_log`") +public class DownloadLog implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.INPUT) + @ApiModelProperty(value = "ID, 新增无需填写", example = "1") + private Integer id; + + + @TableField(value = "`path`") + @ApiModelProperty(value="文件路径") + private String path; + + + @TableField(value = "`storage_key`") + @ApiModelProperty(value="存储源 key") + private String storageKey; + + + @TableField(value = "`create_time`") + @ApiModelProperty(value="访问时间") + private Date createTime; + + + @TableField(value = "`ip`") + @ApiModelProperty(value="访问 ip") + private String ip; + + + @TableField(value = "short_key") + @ApiModelProperty(value = "短链 key", example = "voldd3") + private String shortKey; + + + @TableField(value = "`user_agent`") + @ApiModelProperty(value="访问 user_agent") + private String userAgent; + + + @TableField(value = "`referer`") + @ApiModelProperty(value="访问 referer") + private String referer; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/entity/FilterConfig.java b/src/main/java/im/zhaojun/zfile/admin/model/entity/FilterConfig.java new file mode 100644 index 0000000..7ad50d3 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/entity/FilterConfig.java @@ -0,0 +1,52 @@ +package im.zhaojun.zfile.admin.model.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonIgnore; +import im.zhaojun.zfile.admin.model.enums.FilterConfigHiddenModeEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * 存储源过滤配置 entity + * + * @author zhaojun + */ +@Data +@ApiModel(value="存储源过滤配置") +@TableName(value = "filter_config") +public class FilterConfig implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + @ApiModelProperty(value = "ID, 新增无需填写", example = "1") + @JsonIgnore + private Integer id; + + + @TableField(value = "storage_id") + @ApiModelProperty(value = "存储源 ID", required = true, example = "1") + private Integer storageId; + + + @TableField(value = "expression") + @ApiModelProperty(value = "过滤表达式", required = true, example = "/*.png") + private String expression; + + + @TableField(value = "description") + @ApiModelProperty(value = "表达式描述", required = true, example = "用来辅助记忆表达式") + private String description; + + + @TableField(value = "mode") + @ApiModelProperty(value = "模式", required = true, example = "隐藏模式,仅隐藏: hidden, 隐藏后不可访问: inaccessible, 隐藏后不可下载: disable_download") + private FilterConfigHiddenModeEnum mode; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/entity/PasswordConfig.java b/src/main/java/im/zhaojun/zfile/admin/model/entity/PasswordConfig.java new file mode 100644 index 0000000..daaf3fc --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/entity/PasswordConfig.java @@ -0,0 +1,51 @@ +package im.zhaojun.zfile.admin.model.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonIgnore; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * 密码设置 entity + * + * @author zhaojun + */ +@Data +@ApiModel(value="密码设置") +@TableName(value = "password_config") +public class PasswordConfig implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.INPUT) + @ApiModelProperty(value = "ID, 新增无需填写", example = "1") + @JsonIgnore + private Integer id; + + + @TableField(value = "storage_id") + @ApiModelProperty(value = "存储源 ID", required = true, example = "1") + private Integer storageId; + + + @TableField(value = "expression") + @ApiModelProperty(value = "密码文件夹表达式", required = true, example = "/*.png") + private String expression; + + + @TableField(value = "password") + @ApiModelProperty(value = "密码值", required = true, example = "123456") + private String password; + + + @TableField(value = "description") + @ApiModelProperty(value = "表达式描述", required = true, example = "用来辅助记忆表达式") + private String description; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/entity/ReadmeConfig.java b/src/main/java/im/zhaojun/zfile/admin/model/entity/ReadmeConfig.java new file mode 100644 index 0000000..78429cb --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/entity/ReadmeConfig.java @@ -0,0 +1,57 @@ +package im.zhaojun.zfile.admin.model.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonIgnore; +import im.zhaojun.zfile.admin.model.enums.ReadmeDisplayModeEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * readme 文档配置 entity + * + * @author zhaojun + */ +@Data +@ApiModel(value="readme 文档配置") +@TableName(value = "`readme_config`") +public class ReadmeConfig implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.INPUT) + @ApiModelProperty(value = "ID, 新增无需填写", example = "1") + @JsonIgnore + private Integer id; + + + @TableField(value = "`storage_id`") + @ApiModelProperty(value="存储源 ID") + private Integer storageId; + + + @TableField(value = "`description`") + @ApiModelProperty(value = "表达式描述", required = true, example = "用来辅助记忆表达式") + private String description; + + + @TableField(value = "`expression`") + @ApiModelProperty(value="路径表达式") + private String expression; + + + @TableField(value = "`readme_text`") + @ApiModelProperty(value="readme 文本内容, 支持 md 语法.") + private String readmeText; + + + @TableField(value = "`display_mode`") + @ApiModelProperty(value = "显示模式", required = true, example = "readme 显示模式,支持顶部显示: top, 底部显示:bottom, 弹窗显示: dialog") + private ReadmeDisplayModeEnum displayMode; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/entity/ShortLink.java b/src/main/java/im/zhaojun/zfile/admin/model/entity/ShortLink.java new file mode 100644 index 0000000..3229f89 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/entity/ShortLink.java @@ -0,0 +1,48 @@ +package im.zhaojun.zfile.admin.model.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 短链信息 entity + */ +@Data +@ApiModel(description = "短链信息") +@TableName(value = "short_link") +public class ShortLink implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + @ApiModelProperty(value = "ID, 新增无需填写", example = "1") + private Integer id; + + + @TableField(value = "storage_id") + @ApiModelProperty(value = "存储源 ID", example = "1") + private Integer storageId; + + + @TableField(value = "short_key") + @ApiModelProperty(value = "短链 key", example = "voldd3") + private String shortKey; + + + @TableField(value = "url") + @ApiModelProperty(value = "短链 url", example = "/directlink/1/test02.png") + private String url; + + + @TableField(value = "create_date") + @ApiModelProperty(value = "创建时间", example = "2021-11-22 10:05") + private Date createDate; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/entity/StorageSource.java b/src/main/java/im/zhaojun/zfile/admin/model/entity/StorageSource.java new file mode 100644 index 0000000..0b06535 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/entity/StorageSource.java @@ -0,0 +1,106 @@ +package im.zhaojun.zfile.admin.model.entity; + +import cn.dev33.satoken.stp.StpUtil; +import cn.hutool.core.util.BooleanUtil; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import im.zhaojun.zfile.admin.model.enums.SearchModeEnum; +import im.zhaojun.zfile.home.model.enums.StorageTypeEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * 存储源基本属性 entity + */ +@Data +@ApiModel(description = "存储源基本属性") +@TableName(value = "storage_source") +public class StorageSource implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + @ApiModelProperty(value = "ID, 新增无需填写", example = "1") + private Integer id; + + + @TableField(value = "`enable`") + @ApiModelProperty(value = "是否启用", example = "true") + private Boolean enable; + + + @TableField(value = "`enable_file_operator`") + @ApiModelProperty(value = "是否启用文件操作功能", example = "true", notes = "是否启用文件上传,编辑,删除等操作.") + private Boolean enableFileOperator; + + + @TableField(value = "`enable_file_anno_operator`") + @ApiModelProperty(value = "是否允许匿名进行文件操作", example = "true", notes = "是否允许匿名进行文件上传,编辑,删除等操作.") + private Boolean enableFileAnnoOperator; + + + @TableField(value = "`enable_cache`") + @ApiModelProperty(value = "是否开启缓存", example = "true") + private Boolean enableCache; + + + @TableField(value = "`name`") + @ApiModelProperty(value = "存储源名称", example = "阿里云 OSS 存储") + private String name; + + + @TableField(value = "`key`") + @ApiModelProperty(value = "存储源别名", example = "存储源别名,用于 URL 中展示, 如 http://ip:port/{存储源别名}") + private String key; + + + @TableField(value = "`remark`") + @ApiModelProperty(value = "存储源备注", example = "这是一个备注信息, 用于管理员区分不同的存储源, 此字段仅管理员可见") + private String remark; + + + @TableField(value = "auto_refresh_cache") + @ApiModelProperty(value = "是否开启缓存自动刷新", example = "true") + private Boolean autoRefreshCache; + + + @TableField(value = "`type`") + @ApiModelProperty(value = "存储源类型") + private StorageTypeEnum type; + + + @TableField(value = "search_enable") + @ApiModelProperty(value = "是否开启搜索", example = "true") + private Boolean searchEnable; + + + @TableField(value = "search_ignore_case") + @ApiModelProperty(value = "搜索是否忽略大小写", example = "true") + private Boolean searchIgnoreCase; + + + @TableField(value = "`search_mode`") + @ApiModelProperty(value = "搜索模式", example = "SEARCH_CACHE", notes = "仅从缓存中搜索或直接全量搜索") + private SearchModeEnum searchMode; + + + @TableField(value = "order_num") + @ApiModelProperty(value = "排序值", example = "1") + private Integer orderNum; + + + @TableField(value = "default_switch_to_img_mode") + @ApiModelProperty(value = "是否默认开启图片模式", example = "true") + private Boolean defaultSwitchToImgMode; + + public boolean allowOperator() { + // 允许文件操作,且允许匿名操作或者当前登录用户是管理员 + return BooleanUtil.isTrue(enableFileOperator) && (BooleanUtil.isTrue(enableFileAnnoOperator) || StpUtil.isLogin()); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/entity/StorageSourceConfig.java b/src/main/java/im/zhaojun/zfile/admin/model/entity/StorageSourceConfig.java new file mode 100644 index 0000000..59f5c34 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/entity/StorageSourceConfig.java @@ -0,0 +1,53 @@ +package im.zhaojun.zfile.admin.model.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import im.zhaojun.zfile.home.model.enums.StorageTypeEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * 存储源拓展属性 entity + */ +@Data +@ApiModel(description = "存储源拓展属性") +@TableName(value = "storage_source_config") +public class StorageSourceConfig implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + @ApiModelProperty(value = "ID, 新增无需填写", example = "1") + private Integer id; + + + @TableField(value = "`name`") + @ApiModelProperty(value = "存储源属性名称 name", example = "bucketName") + private String name; + + + @TableField(value = "`type`") + @ApiModelProperty(value = "存储源类型") + private StorageTypeEnum type; + + + @TableField(value = "title") + @ApiModelProperty(value = "存储源属性名称", example = "Bucket 名称") + private String title; + + + @TableField(value = "storage_id") + @ApiModelProperty(value = "存储源 id", example = "1") + private Integer storageId; + + + @TableField(value = "`value`") + @ApiModelProperty(value = "存储源对应的值", example = "my-bucket") + private String value; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/entity/SystemConfig.java b/src/main/java/im/zhaojun/zfile/admin/model/entity/SystemConfig.java new file mode 100644 index 0000000..fdfdb0b --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/entity/SystemConfig.java @@ -0,0 +1,42 @@ +package im.zhaojun.zfile.admin.model.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * 系统设置 entity + */ +@Data +@ApiModel(description = "系统设置") +@TableName(value = "system_config") +public class SystemConfig implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + @ApiModelProperty(value = "ID, 新增无需填写", example = "1") + private Integer id; + + + @TableField(value = "name") + @ApiModelProperty(value = "系统设置名称", example = "siteName") + private String name; + + + @TableField(value = "`value`") + @ApiModelProperty(value = "系统设置值", example = "ZFile 演示站") + private String value; + + + @TableField(value = "title") + @ApiModelProperty(value = "系统设置描述", example = "站点名称") + private String title; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/enums/FileOperatorTypeEnum.java b/src/main/java/im/zhaojun/zfile/admin/model/enums/FileOperatorTypeEnum.java new file mode 100644 index 0000000..250e26f --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/enums/FileOperatorTypeEnum.java @@ -0,0 +1,58 @@ +package im.zhaojun.zfile.admin.model.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.fasterxml.jackson.annotation.JsonValue; +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 文件操作类型枚举 + * + * @author zhaojun + */ +@Getter +@AllArgsConstructor +public enum FileOperatorTypeEnum { + + /** + * 获取文件上传链接操作 + */ + UPLOAD("上传", "upload"), + + /** + * 新建文件夹操作 + */ + NEW_FOLDER("新建文件夹", "new_folder"), + + /** + * 删除文件&文件夹操作 + */ + DELETE("删除", "delete"), + + /** + * 重命名文件&文件夹操作 + */ + RENAME("重命名", "rename"), + + /** + * 复制文件&文件夹操作 + */ + COPY("复制", "copy"), + + /** + * 移动文件&文件夹操作 + */ + MOVE("移动", "move"), + + /** + * 搜索操作 + */ + SEARCH("搜索", "search"); + + private final String name; + + @EnumValue + @JsonValue + private final String value; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/enums/FilterConfigHiddenModeEnum.java b/src/main/java/im/zhaojun/zfile/admin/model/enums/FilterConfigHiddenModeEnum.java new file mode 100644 index 0000000..8c68648 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/enums/FilterConfigHiddenModeEnum.java @@ -0,0 +1,36 @@ +package im.zhaojun.zfile.admin.model.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.fasterxml.jackson.annotation.JsonValue; +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 文件夹隐藏模式枚举 + * + * @author zhaojun + */ +@Getter +@AllArgsConstructor +public enum FilterConfigHiddenModeEnum { + + /** + * 仅隐藏 + */ + HIDDEN("hidden"), + + /** + * 隐藏并不可访问 (针对目录) + */ + INACCESSIBLE("inaccessible"), + + /** + * 隐藏并不可访问 (针对文件) + */ + DISABLE_DOWNLOAD("disable_download"); + + @EnumValue + @JsonValue + private final String value; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/enums/LoginVerifyModeEnum.java b/src/main/java/im/zhaojun/zfile/admin/model/enums/LoginVerifyModeEnum.java new file mode 100644 index 0000000..7ceec06 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/enums/LoginVerifyModeEnum.java @@ -0,0 +1,36 @@ +package im.zhaojun.zfile.admin.model.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.fasterxml.jackson.annotation.JsonValue; +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 登陆验证方式枚举 + * + * @author zhaojun + */ +@Getter +@AllArgsConstructor +public enum LoginVerifyModeEnum { + + /** + * 不启用登陆模式 + */ + OFF_MODE("off"), + + /** + * 图形验证码模式 + */ + IMG_VERIFY_MODE("image"), + + /** + * 图形验证码模式 + */ + TWO_FACTOR_AUTHENTICATION_MODE("2fa"); + + @EnumValue + @JsonValue + private final String value; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/enums/ReadmeDisplayModeEnum.java b/src/main/java/im/zhaojun/zfile/admin/model/enums/ReadmeDisplayModeEnum.java new file mode 100644 index 0000000..769acae --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/enums/ReadmeDisplayModeEnum.java @@ -0,0 +1,36 @@ +package im.zhaojun.zfile.admin.model.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.fasterxml.jackson.annotation.JsonValue; +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * Readme 展示模式枚举 + * + * @author zhaojun + */ +@Getter +@AllArgsConstructor +public enum ReadmeDisplayModeEnum { + + /** + * 顶部显示 + */ + TOP("top"), + + /** + * 底部显示 + */ + BOTTOM("bottom"), + + /** + * 弹窗显示 + */ + DIALOG("dialog"); + + @EnumValue + @JsonValue + private final String value; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/enums/RefererTypeEnum.java b/src/main/java/im/zhaojun/zfile/admin/model/enums/RefererTypeEnum.java new file mode 100644 index 0000000..4829218 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/enums/RefererTypeEnum.java @@ -0,0 +1,36 @@ +package im.zhaojun.zfile.admin.model.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.fasterxml.jackson.annotation.JsonValue; +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * Referer 防盗链类型枚举 + * + * @author zhaojun + */ +@Getter +@AllArgsConstructor +public enum RefererTypeEnum { + + /** + * 不启用 Referer 防盗链 + */ + OFF("off"), + + /** + * 启用白名单模式 + */ + WHITE_LIST("white_list"), + + /** + * 启用黑名单模式 + */ + BLACK_LIST("black_list"); + + @EnumValue + @JsonValue + private final String value; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/enums/SearchModeEnum.java b/src/main/java/im/zhaojun/zfile/admin/model/enums/SearchModeEnum.java new file mode 100644 index 0000000..65d67e2 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/enums/SearchModeEnum.java @@ -0,0 +1,31 @@ +package im.zhaojun.zfile.admin.model.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.fasterxml.jackson.annotation.JsonValue; +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 文件搜索模式枚举 + * + * @author zhaojun + */ +@Getter +@AllArgsConstructor +public enum SearchModeEnum { + + /** + * 仅搜索缓存 + */ + SEARCH_CACHE_MODE("SEARCH_CACHE"), + + /** + * 搜索全部 + */ + SEARCH_ALL_MODE("SEARCH_ALL"); + + @EnumValue + @JsonValue + private final String value; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/enums/StorageParamTypeEnum.java b/src/main/java/im/zhaojun/zfile/admin/model/enums/StorageParamTypeEnum.java new file mode 100644 index 0000000..9423cab --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/enums/StorageParamTypeEnum.java @@ -0,0 +1,36 @@ +package im.zhaojun.zfile.admin.model.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.fasterxml.jackson.annotation.JsonValue; +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 存储源参数类型枚举 + * + * @author zhaojun + */ +@Getter +@AllArgsConstructor +public enum StorageParamTypeEnum { + + /** + * 输入框 + */ + INPUT("input"), + + /** + * 下拉框 + */ + SELECT("select"), + + /** + * 开关 + */ + SWITCH("switch"); + + @EnumValue + @JsonValue + private final String value; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/param/AliyunParam.java b/src/main/java/im/zhaojun/zfile/admin/model/param/AliyunParam.java new file mode 100644 index 0000000..47b1e68 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/param/AliyunParam.java @@ -0,0 +1,13 @@ +package im.zhaojun.zfile.admin.model.param; + +import lombok.Getter; + +/** + * 阿里云初始化参数 + * + * @author zhaojun + */ +@Getter +public class AliyunParam extends S3BaseParam { + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/param/FtpParam.java b/src/main/java/im/zhaojun/zfile/admin/model/param/FtpParam.java new file mode 100644 index 0000000..741dc1d --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/param/FtpParam.java @@ -0,0 +1,41 @@ +package im.zhaojun.zfile.admin.model.param; + +import im.zhaojun.zfile.admin.annoation.StorageParamItem; +import im.zhaojun.zfile.admin.annoation.select.impl.EncodingStorageParamSelect; +import im.zhaojun.zfile.admin.model.enums.StorageParamTypeEnum; +import lombok.Getter; + +/** + * 本地存储初始化参数 + * + * @author zhaojun + */ +@Getter +public class FtpParam extends ProxyDownloadParam { + + @StorageParamItem(name = "域名或 IP") + private String host; + + @StorageParamItem(name = "端口") + private int port; + + @StorageParamItem(name = "编码格式", + defaultValue = "UTF-8", + type = StorageParamTypeEnum.SELECT, + optionsClass = EncodingStorageParamSelect.class, + description = "表示文件夹及文件名称的编码格式,不表示文本内容的编码格式.") + private String encoding; + + @StorageParamItem(name = "用户名", required = false) + private String username; + + @StorageParamItem(name = "密码", required = false) + private String password; + + @StorageParamItem(name = "加速域名", required = false, description = "如不配置加速域名,则使用服务器中转下载, 反之则使用加速域名下载.") + private String domain; + + @StorageParamItem(name = "基路径", defaultValue = "/", description = "基路径表示读取的根文件夹,不填写表示允许读取所有。如: '/','/文件夹1'") + private String basePath; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/param/HuaweiParam.java b/src/main/java/im/zhaojun/zfile/admin/model/param/HuaweiParam.java new file mode 100644 index 0000000..5e59efb --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/param/HuaweiParam.java @@ -0,0 +1,13 @@ +package im.zhaojun.zfile.admin.model.param; + +import lombok.Getter; + +/** + * 华为云初始化参数 + * + * @author zhaojun + */ +@Getter +public class HuaweiParam extends S3BaseParam { + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/param/IStorageParam.java b/src/main/java/im/zhaojun/zfile/admin/model/param/IStorageParam.java new file mode 100644 index 0000000..9fc2786 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/param/IStorageParam.java @@ -0,0 +1,5 @@ +package im.zhaojun.zfile.admin.model.param; + + +public interface IStorageParam { +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/param/LocalParam.java b/src/main/java/im/zhaojun/zfile/admin/model/param/LocalParam.java new file mode 100644 index 0000000..35e1803 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/param/LocalParam.java @@ -0,0 +1,18 @@ +package im.zhaojun.zfile.admin.model.param; + +import im.zhaojun.zfile.admin.annoation.StorageParamItem; +import lombok.Getter; + +/** + * 本地存储初始化参数 + * + * @author zhaojun + */ +@Getter +public class LocalParam extends ProxyDownloadParam { + + @StorageParamItem(name = "文件路径", description = "只支持绝对路径
Docker 部署需提前映射宿主机路径! " + + "(配置文档)") + private String filePath; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/param/MicrosoftDriveParam.java b/src/main/java/im/zhaojun/zfile/admin/model/param/MicrosoftDriveParam.java new file mode 100644 index 0000000..e2fb9d0 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/param/MicrosoftDriveParam.java @@ -0,0 +1,34 @@ +package im.zhaojun.zfile.admin.model.param; + +import im.zhaojun.zfile.admin.annoation.StorageParamItem; +import lombok.Getter; + +/** + * 微软云初始化参数 + * + * @author zhaojun + */ +@Getter +public class MicrosoftDriveParam implements IStorageParam { + + @StorageParamItem(name = "clientId", defaultValue = "${zfile.onedrive.clientId}", order = 1, + description = "可自行更改,但修改后,下方获取访问令牌的地址不可用,需自行获取访问令牌和刷新令牌.") + private String clientId; + + @StorageParamItem(name = "SecretKey", defaultValue = "${zfile.onedrive.clientSecret}", order = 2) + private String clientSecret; + + @StorageParamItem(name = "访问令牌", link = "/onedrive/authorize", linkName = "前往获取令牌", order = 3) + private String accessToken; + + @StorageParamItem(name = "刷新令牌", order = 4) + private String refreshToken; + + @StorageParamItem(name = "反代域名", required = false, order = 7, + link = "https://docs.zfile.vip/#/advanced?id=onedrive-cf", linkName = "配置文档") + private String proxyDomain; + + @StorageParamItem(name = "基路径", defaultValue = "/", order = 8, description = "基路径表示读取的根文件夹,不填写表示允许读取所有。如: '/','/文件夹1'") + private String basePath; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/param/MinIOParam.java b/src/main/java/im/zhaojun/zfile/admin/model/param/MinIOParam.java new file mode 100644 index 0000000..527da6a --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/param/MinIOParam.java @@ -0,0 +1,20 @@ +package im.zhaojun.zfile.admin.model.param; + +import im.zhaojun.zfile.admin.annoation.StorageParamItem; +import lombok.Getter; + +/** + * MinIO 初始化参数 + * + * @author zhaojun + */ +@Getter +public class MinIOParam extends S3BaseParam { + + @StorageParamItem(name = "地域") + private String region; + + @StorageParamItem(name = "服务地址", description = "为 minio 的服务地址,非 web 访问地址,一般为 http://ip:9000") + private String endPoint; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/param/OneDriveChinaParam.java b/src/main/java/im/zhaojun/zfile/admin/model/param/OneDriveChinaParam.java new file mode 100644 index 0000000..95a1943 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/param/OneDriveChinaParam.java @@ -0,0 +1,24 @@ +package im.zhaojun.zfile.admin.model.param; + +import im.zhaojun.zfile.admin.annoation.StorageParamItem; +import lombok.Getter; + +/** + * OneDrive 初始化参数 + * + * @author zhaojun + */ +@Getter +public class OneDriveChinaParam extends OneDriveParam { + + @StorageParamItem(name = "clientId", defaultValue = "${zfile.onedrive-china.clientId}", + description = "可自行更改,但修改后,则下方获取访问令牌的地址不可用,需自行获取访问令牌和刷新令牌.", order = 1) + private String clientId; + + @StorageParamItem(name = "SecretKey", defaultValue = "${zfile.onedrive-china.clientSecret}", order = 2) + private String clientSecret; + + @StorageParamItem(name = "访问令牌", link = "/onedrive/china-authorize", linkName = "前往获取令牌", order = 3) + private String accessToken; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/param/OneDriveParam.java b/src/main/java/im/zhaojun/zfile/admin/model/param/OneDriveParam.java new file mode 100644 index 0000000..16f71b6 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/param/OneDriveParam.java @@ -0,0 +1,13 @@ +package im.zhaojun.zfile.admin.model.param; + +import lombok.Getter; + +/** + * OneDrive 初始化参数 + * + * @author zhaojun + */ +@Getter +public class OneDriveParam extends MicrosoftDriveParam { + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/param/ProxyDownloadParam.java b/src/main/java/im/zhaojun/zfile/admin/model/param/ProxyDownloadParam.java new file mode 100644 index 0000000..9c72f87 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/param/ProxyDownloadParam.java @@ -0,0 +1,13 @@ +package im.zhaojun.zfile.admin.model.param; + +import lombok.Getter; + +/** + * 代理下载参数 + * + * @author zhaojun + */ +@Getter +public class ProxyDownloadParam extends ProxyTransferParam { + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/param/ProxyTransferParam.java b/src/main/java/im/zhaojun/zfile/admin/model/param/ProxyTransferParam.java new file mode 100644 index 0000000..9d32e44 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/param/ProxyTransferParam.java @@ -0,0 +1,24 @@ +package im.zhaojun.zfile.admin.model.param; + +import im.zhaojun.zfile.admin.annoation.StorageParamItem; +import im.zhaojun.zfile.admin.model.enums.StorageParamTypeEnum; +import lombok.Getter; + +/** + * 代理上传下载参数 + * + * @author zhaojun + */ +@Getter +public class ProxyTransferParam implements IStorageParam { + + @StorageParamItem(name = "加速域名", required = false, description = "如不配置加速域名,则使用服务器中转下载, 反之则使用加速域名下载.") + private String domain; + + @StorageParamItem(name = "生成签名链接", type = StorageParamTypeEnum.SWITCH, defaultValue = "true", description = "下载会生成带签名的下载链接, 如不想对外开放直链, 可以防止被当做直链使用.") + private boolean isPrivate; + + @StorageParamItem(name = "下载签名有效期", required = false, defaultValue = "1800", description = "用于下载签名的有效期, 单位为秒, 如不配置则默认为 1800 秒.") + private Integer tokenTime; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/param/ProxyUploadParam.java b/src/main/java/im/zhaojun/zfile/admin/model/param/ProxyUploadParam.java new file mode 100644 index 0000000..6ea447d --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/param/ProxyUploadParam.java @@ -0,0 +1,10 @@ +package im.zhaojun.zfile.admin.model.param; + +/** + * 代理上传参数 + * + * @author zhaojun + */ +public class ProxyUploadParam extends ProxyTransferParam { + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/param/QiniuParam.java b/src/main/java/im/zhaojun/zfile/admin/model/param/QiniuParam.java new file mode 100644 index 0000000..bf25916 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/param/QiniuParam.java @@ -0,0 +1,13 @@ +package im.zhaojun.zfile.admin.model.param; + +import lombok.Getter; + +/** + * 七牛云初始化参数 + * + * @author zhaojun + */ +@Getter +public class QiniuParam extends S3BaseParam { + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/param/S3BaseParam.java b/src/main/java/im/zhaojun/zfile/admin/model/param/S3BaseParam.java new file mode 100644 index 0000000..d788b93 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/param/S3BaseParam.java @@ -0,0 +1,43 @@ +package im.zhaojun.zfile.admin.model.param; + +import im.zhaojun.zfile.admin.annoation.StorageParamItem; +import im.zhaojun.zfile.admin.model.enums.StorageParamTypeEnum; +import lombok.Getter; + +/** + * S3 通用参数 + * + * @author zhaojun + */ +@Getter +public class S3BaseParam implements IStorageParam { + + @StorageParamItem(name = "AccessKey", order = 1) + private String accessKey; + + @StorageParamItem(name = "SecretKey", order = 2) + private String secretKey; + + @StorageParamItem(name = "区域", order = 3, description = "如下拉列表中没有的区域,或想使用内网地址,可直接输入后回车,如: xxx-cn-beijing.example.com") + private String endPoint; + + @StorageParamItem(name = "存储空间名称", order = 4) + private String bucketName; + + @StorageParamItem(name = "Bucket 域名 / CDN 加速域名", required = false, order = 5) + private String domain; + + @StorageParamItem(name = "基路径", order = 6, required = false, defaultValue = "/", description = "基路径表示读取的根文件夹,不填写表示允许读取所有。如: '/','/文件夹1'") + private String basePath; + + @StorageParamItem(name = "是否是私有空间", order = 7, type = StorageParamTypeEnum.SWITCH, defaultValue = "true", description = "私有空间会生成带签名的下载链接") + private boolean isPrivate; + + @StorageParamItem(name = "下载签名有效期", required = false, defaultValue = "1800", description = "当为私有空间时, 用于下载签名的有效期, 单位为秒, 如不配置则默认为 1800 秒.") + private Integer tokenTime; + + @StorageParamItem(name = "是否自动配置 CORS 跨域设置", order = 100, type = StorageParamTypeEnum.SWITCH, defaultValue = "true", description = "如不配置跨域设置,可能会无法导致无法上传,或上传后看不到文件
此配置会覆盖之前的跨域配置,如您已经配置过,可忽略此选项") + private boolean autoConfigCors; + + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/param/S3Param.java b/src/main/java/im/zhaojun/zfile/admin/model/param/S3Param.java new file mode 100644 index 0000000..3c0493f --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/param/S3Param.java @@ -0,0 +1,28 @@ +package im.zhaojun.zfile.admin.model.param; + +import im.zhaojun.zfile.admin.annoation.StorageParamItem; +import im.zhaojun.zfile.admin.annoation.StorageParamSelectOption; +import im.zhaojun.zfile.admin.model.enums.StorageParamTypeEnum; +import lombok.Getter; + +/** + * S3 初始化参数 + * + * @author zhaojun + */ +@Getter +public class S3Param extends S3BaseParam { + + @StorageParamItem(name = "EndPoint", order = 3) + private String endPoint; + + @StorageParamItem(name = "地域", order = 3) + private String region; + + @StorageParamItem(name = "域名风格", type = StorageParamTypeEnum.SWITCH, + options = { @StorageParamSelectOption(value = "path-style", label = "path-style"), + @StorageParamSelectOption(value = "bucket-virtual-hosting", label = "bucket-virtual-hosting")}, + linkName = "查看 S3 API 说明文档", link = "https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/userguide/VirtualHosting.html#path-style-access") + private String pathStyle; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/param/SftpParam.java b/src/main/java/im/zhaojun/zfile/admin/model/param/SftpParam.java new file mode 100644 index 0000000..3bb94ef --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/param/SftpParam.java @@ -0,0 +1,13 @@ +package im.zhaojun.zfile.admin.model.param; + +import lombok.Getter; + +/** + * SFTP 初始化参数 + * + * @author zhaojun + */ +@Getter +public class SftpParam extends FtpParam { + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/param/SharePointChinaParam.java b/src/main/java/im/zhaojun/zfile/admin/model/param/SharePointChinaParam.java new file mode 100644 index 0000000..14bc2c2 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/param/SharePointChinaParam.java @@ -0,0 +1,22 @@ +package im.zhaojun.zfile.admin.model.param; + +import im.zhaojun.zfile.admin.annoation.StorageParamItem; + +/** + * SharePoint 世纪互联初始化参数 + * + * @author zhaojun + */ +public class SharePointChinaParam extends SharePointParam { + + @StorageParamItem(name = "clientId", defaultValue = "${zfile.onedrive-china.clientId}", order = 1, + description = "可自行更改,但修改后,则下方获取访问令牌的地址不可用,需自行获取访问令牌和刷新令牌.") + private String clientId; + + @StorageParamItem(name = "SecretKey", defaultValue = "${zfile.onedrive-china.clientSecret}", order = 2) + private String clientSecret; + + @StorageParamItem(name = "访问令牌", link = "/onedrive/china-authorize", linkName = "前往获取令牌", order = 3) + private String accessToken; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/param/SharePointParam.java b/src/main/java/im/zhaojun/zfile/admin/model/param/SharePointParam.java new file mode 100644 index 0000000..33af559 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/param/SharePointParam.java @@ -0,0 +1,27 @@ +package im.zhaojun.zfile.admin.model.param; + +import im.zhaojun.zfile.admin.annoation.StorageParamItem; +import lombok.Getter; + +/** + * SharePoint 初始化参数 + * + * @author zhaojun + */ +@Getter +public class SharePointParam extends MicrosoftDriveParam { + + @StorageParamItem(name = "clientId", defaultValue = "${zfile.onedrive.clientId}", order = 1, + description = "可自行更改,但修改后,下方获取访问令牌的地址不可用,需自行获取访问令牌和刷新令牌.") + private String clientId; + + @StorageParamItem(name = "SecretKey", defaultValue = "${zfile.onedrive.clientSecret}", order = 2) + private String clientSecret; + + @StorageParamItem(name = "网站", order = 5) + private String siteId; + + @StorageParamItem(name = "子目录", order = 6, description = "表示 SharePoint 子列表/子网站,在世纪互联网站 Tab 卡中 \"网站内容\" 新增.") + private String listId; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/param/TencentParam.java b/src/main/java/im/zhaojun/zfile/admin/model/param/TencentParam.java new file mode 100644 index 0000000..f0f25a1 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/param/TencentParam.java @@ -0,0 +1,17 @@ +package im.zhaojun.zfile.admin.model.param; + +import im.zhaojun.zfile.admin.annoation.StorageParamItem; +import lombok.Getter; + +/** + * 腾讯云初始化参数 + * + * @author zhaojun + */ +@Getter +public class TencentParam extends S3BaseParam { + + @StorageParamItem(key = "secretId", name = "SecretId", order = 1) + private String accessKey; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/param/UpYunParam.java b/src/main/java/im/zhaojun/zfile/admin/model/param/UpYunParam.java new file mode 100644 index 0000000..25a713c --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/param/UpYunParam.java @@ -0,0 +1,35 @@ +package im.zhaojun.zfile.admin.model.param; + +import im.zhaojun.zfile.admin.annoation.StorageParamItem; +import lombok.Getter; + +/** + * 又拍云初始化参数 + * + * @author zhaojun + */ +@Getter +public class UpYunParam implements IStorageParam { + + @StorageParamItem(name = "存储空间名称") + private String bucketName; + + @StorageParamItem(name = "用户名") + private String username; + + @StorageParamItem(name = "密码") + private String password; + + @StorageParamItem(name = "下载域名", description = "填写您在又拍云绑定的域名.") + private String domain; + + @StorageParamItem(name = "基路径", defaultValue = "/", description = "基路径表示读取的根文件夹,不填写表示允许读取所有。如: '/','/文件夹1'") + private String basePath; + + @StorageParamItem(name = "Token", required = false, link = "https://help.upyun.com/knowledge-base/cdn-token-limite/", linkName = "官方配置文档",description = "可在又拍云后台开启 \"访问控制\" -> \"Token 防盗链\",控制资源内容的访问时限,即时间戳防盗链。") + private String token; + + @StorageParamItem(name = "Token 有效期", required = false, defaultValue = "1800", description = "Token (防盗链)有效期,单位为秒。") + private int tokenTime; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/param/WebdavParam.java b/src/main/java/im/zhaojun/zfile/admin/model/param/WebdavParam.java new file mode 100644 index 0000000..75ff39f --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/param/WebdavParam.java @@ -0,0 +1,23 @@ +package im.zhaojun.zfile.admin.model.param; + +import im.zhaojun.zfile.admin.annoation.StorageParamItem; +import lombok.Getter; + +/** + * WebDav 初始化参数 + * + * @author zhaojun + */ +@Getter +public class WebdavParam extends ProxyDownloadParam { + + @StorageParamItem(key = "url", name = "WebDAV 链接") + private String url; + + @StorageParamItem(key = "username", name = "用户名", required = false) + private String username; + + @StorageParamItem(key = "password", name = "密码", required = false) + private String password; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/request/DownloadTopInfoRequest.java b/src/main/java/im/zhaojun/zfile/admin/model/request/DownloadTopInfoRequest.java new file mode 100644 index 0000000..43c80c0 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/request/DownloadTopInfoRequest.java @@ -0,0 +1,23 @@ +package im.zhaojun.zfile.admin.model.request; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 下载排行请求类 + * + * @author zhaojun + */ +@Data +public class DownloadTopInfoRequest { + + @ApiModelProperty(value = "排行数量", required = true) + private Integer top; + + @ApiModelProperty(value = "开始时间") + private String startTime; + + @ApiModelProperty(value = "结束时间") + private String endTime; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/request/SaveStorageSourceRequest.java b/src/main/java/im/zhaojun/zfile/admin/model/request/SaveStorageSourceRequest.java new file mode 100644 index 0000000..3b668d5 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/request/SaveStorageSourceRequest.java @@ -0,0 +1,69 @@ +package im.zhaojun.zfile.admin.model.request; + +import com.baomidou.mybatisplus.annotation.TableField; +import im.zhaojun.zfile.admin.model.enums.SearchModeEnum; +import im.zhaojun.zfile.home.model.dto.StorageSourceAllParam; +import im.zhaojun.zfile.home.model.enums.StorageTypeEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 保存存储源信息请求类 + * + * @author zhaojun + */ +@Data +@ApiModel(description = "存储源基本参数") +public class SaveStorageSourceRequest { + + @ApiModelProperty(value = "ID, 新增无需填写", example = "1") + private Integer id; + + @ApiModelProperty(value = "存储源名称", example = "阿里云 OSS 存储") + private String name; + + @ApiModelProperty(value = "存储源别名", example = "存储源别名,用于 URL 中展示, 如 http://ip:port/{存储源别名}") + private String key; + + @ApiModelProperty(value = "存储源备注", example = "这是一个备注信息, 用于管理员区分不同的存储源, 此字段仅管理员可见") + private String remark; + + @ApiModelProperty(value = "存储源类型", example = "ftp") + private StorageTypeEnum type; + + @ApiModelProperty(value = "是否启用", example = "true") + private Boolean enable; + + @ApiModelProperty(value = "是否启用文件操作功能", example = "true", notes = "是否启用文件上传,编辑,删除等操作.") + private Boolean enableFileOperator; + + @ApiModelProperty(value = "是否允许匿名进行文件操作", example = "true", notes = "是否允许匿名进行文件上传,编辑,删除等操作.") + private Boolean enableFileAnnoOperator; + + @ApiModelProperty(value = "是否开启缓存", example = "true") + private boolean enableCache; + + @ApiModelProperty(value = "是否开启缓存自动刷新", example = "true") + private boolean autoRefreshCache; + + @ApiModelProperty(value = "是否开启搜索", example = "true") + private boolean searchEnable; + + @ApiModelProperty(value = "搜索是否忽略大小写", example = "true") + private boolean searchIgnoreCase; + + @TableField(value = "`search_mode`") + @ApiModelProperty(value = "搜索模式", example = "SEARCH_CACHE", notes = "仅从缓存中搜索或直接全量搜索") + private SearchModeEnum searchMode; + + @ApiModelProperty(value = "排序值", example = "1") + private Integer orderNum; + + @ApiModelProperty(value = "存储源拓展属性") + private StorageSourceAllParam storageSourceAllParam; + + @ApiModelProperty(value = "是否默认开启图片模式", example = "true") + private boolean defaultSwitchToImgMode; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/request/link/QueryDownloadLogRequest.java b/src/main/java/im/zhaojun/zfile/admin/model/request/link/QueryDownloadLogRequest.java new file mode 100644 index 0000000..d51155a --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/request/link/QueryDownloadLogRequest.java @@ -0,0 +1,46 @@ +package im.zhaojun.zfile.admin.model.request.link; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; + +/** + * 查询下载日志请求参数 + * + * @author zhaojun + */ +@Data +public class QueryDownloadLogRequest { + + @ApiModelProperty(value="文件路径") + private String path; + + @ApiModelProperty(value="存储源 key") + private String storageKey; + + @ApiModelProperty(value="短链 key") + private String shortKey; + + @ApiModelProperty(value="访问时间从") + private String dateFrom; + + @ApiModelProperty(value="访问时间至") + private String dateTo; + + @ApiModelProperty(value="访问 ip") + private String ip; + + @ApiModelProperty(value="访问 user_agent") + private String userAgent; + + @ApiModelProperty(value="访问 referer") + private String referer; + + @NotEmpty(message = "分页页数不能为空") + private Integer page; + + @NotEmpty(message = "每页条数不能为空") + private Integer limit; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/request/login/VerifyLogin2FARequest.java b/src/main/java/im/zhaojun/zfile/admin/model/request/login/VerifyLogin2FARequest.java new file mode 100644 index 0000000..d564cff --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/request/login/VerifyLogin2FARequest.java @@ -0,0 +1,28 @@ +package im.zhaojun.zfile.admin.model.request.login; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * 验证 2FA 认证返回结果 + * + * @author zhaojun + */ +@Data +@AllArgsConstructor +@ApiModel(description = "验证二步验证结果") +public class VerifyLogin2FARequest { + + @ApiModelProperty(value = "二步验证二维码", required = true, example = "EwBoxxxxxxxxxxxxxxxbAI=") + @NotBlank(message = "二步验证密钥不能为空") + private String secret; + + @ApiModelProperty(value = "APP 生成的二步验证验证码", required = true, example = "125612") + @NotBlank(message = "二步验证验证码不能为空") + private String code; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/request/s3/GetS3BucketListRequest.java b/src/main/java/im/zhaojun/zfile/admin/model/request/s3/GetS3BucketListRequest.java new file mode 100644 index 0000000..752d7d1 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/request/s3/GetS3BucketListRequest.java @@ -0,0 +1,34 @@ +package im.zhaojun.zfile.admin.model.request.s3; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * 获取 S3 bucket 列表请求类 + * + * @author zhaojun + */ +@Data +@ApiModel(value="S3 bucket 列表请求类") +public class GetS3BucketListRequest { + + @NotBlank(message = "accessKey 不能为空") + @ApiModelProperty(value = "accessKey", required = true, example = "XQEWQJI129JAS12") + private String accessKey; + + @NotBlank(message = "secretKey 不能为空") + @ApiModelProperty(value = "secretKey", required = true, example = "EWQJI129JAS11AE2") + private String secretKey; + + @NotBlank(message = "EndPoint 不能为空") + @ApiModelProperty(value = "Endpoint 接入点", required = true, example = "oss-cn-beijing.aliyuncs.com") + private String endPoint; + + @ApiModelProperty(value = "Endpoint 接入点", required = true, example = "cn-beijing") + // @NotBlank(message = "地域不能为空") + private String region; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/request/setting/UpdateLinkSettingRequest.java b/src/main/java/im/zhaojun/zfile/admin/model/request/setting/UpdateLinkSettingRequest.java new file mode 100644 index 0000000..ecbebcd --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/request/setting/UpdateLinkSettingRequest.java @@ -0,0 +1,41 @@ +package im.zhaojun.zfile.admin.model.request.setting; + +import im.zhaojun.zfile.admin.model.enums.RefererTypeEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 直链设置请求参数类 + * + * @author zhaojun + */ +@Data +@ApiModel(description = "直链设置请求参数类") +public class UpdateLinkSettingRequest { + + @ApiModelProperty(value = "是否记录下载日志", example = "true") + private Boolean recordDownloadLog; + + @ApiModelProperty(value = "直链 Referer 防盗链类型") + private RefererTypeEnum refererType; + + @ApiModelProperty(value = "直链 Referer 是否允许为空") + private Boolean refererAllowEmpty; + + @ApiModelProperty(value = "直链 Referer 值") + private String refererValue; + + @ApiModelProperty(value = "直链地址前缀") + private String directLinkPrefix; + + @ApiModelProperty(value = "是否显示生成直链功能(含直链和路径短链)", example = "true", required = true) + private Boolean showLinkBtn; + + @ApiModelProperty(value = "是否显示生成短链功能", example = "true", required = true) + private Boolean showShortLink; + + @ApiModelProperty(value = "是否显示生成路径链接功能", example = "true", required = true) + private Boolean showPathLink; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/request/setting/UpdateSecuritySettingRequest.java b/src/main/java/im/zhaojun/zfile/admin/model/request/setting/UpdateSecuritySettingRequest.java new file mode 100644 index 0000000..f3343be --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/request/setting/UpdateSecuritySettingRequest.java @@ -0,0 +1,26 @@ +package im.zhaojun.zfile.admin.model.request.setting; + +import im.zhaojun.zfile.admin.model.enums.LoginVerifyModeEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 登陆安全设置请求参数类 + * + * @author zhaojun + */ +@Data +@ApiModel(description = "登陆安全设置请求参数类") +public class UpdateSecuritySettingRequest { + + @ApiModelProperty(value = "是否在前台显示登陆按钮", example = "true") + private Boolean showLogin; + + @ApiModelProperty(value = "登陆验证方式,支持验证码和 2FA 认证") + private LoginVerifyModeEnum loginVerifyMode; + + @ApiModelProperty(value = "登陆验证 Secret") + private String loginVerifySecret; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/request/setting/UpdateSiteSettingRequest.java b/src/main/java/im/zhaojun/zfile/admin/model/request/setting/UpdateSiteSettingRequest.java new file mode 100644 index 0000000..48f9c63 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/request/setting/UpdateSiteSettingRequest.java @@ -0,0 +1,35 @@ +package im.zhaojun.zfile.admin.model.request.setting; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * 站点设置请求参数类 + * + * @author zhaojun + */ +@Data +@ApiModel(description = "站点设置请求参数类") +public class UpdateSiteSettingRequest { + + @ApiModelProperty(value = "站点名称", required = true, example = "ZFile Site Name") + @NotBlank(message = "站点名称不能为空") + private String siteName; + + @ApiModelProperty(value = "站点域名", required = true, example = "https://zfile.vip") + @NotBlank(message = "站点域名不能为空") + private String domain; + + @ApiModelProperty(value = "前端域名", notes = "前端域名,前后端分离情况下需要配置.", example = "http://xxx.example.com") + private String frontDomain; + + @ApiModelProperty(value = "头像地址", example = "https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png") + private String avatar; + + @ApiModelProperty(value = "备案号", example = "冀ICP备12345678号-1") + private String icp; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/request/setting/UpdateUserNameAndPasswordRequest.java b/src/main/java/im/zhaojun/zfile/admin/model/request/setting/UpdateUserNameAndPasswordRequest.java new file mode 100644 index 0000000..c18d631 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/request/setting/UpdateUserNameAndPasswordRequest.java @@ -0,0 +1 @@ +package im.zhaojun.zfile.admin.model.request.setting; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotBlank; /** * 用户修改密码请求参数类 * * @author zhaojun */ @Data @ApiModel(description = "用户修改密码请求参数类") public class UpdateUserNameAndPasswordRequest { @ApiModelProperty(value = "用户名", required = true, example = "admin") @NotBlank(message = "用户名不能为空") private String username; @ApiModelProperty(value = "密码", required = true, example = "123456") @NotBlank(message = "密码不能为空") private String password; } \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/request/setting/UpdateViewSettingRequest.java b/src/main/java/im/zhaojun/zfile/admin/model/request/setting/UpdateViewSettingRequest.java new file mode 100644 index 0000000..fbe20ea --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/request/setting/UpdateViewSettingRequest.java @@ -0,0 +1,52 @@ +package im.zhaojun.zfile.admin.model.request.setting; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 显示设置请求参数类 + * + * @author zhaojun + */ +@Data +@ApiModel(description = "显示设置请求参数类") +public class UpdateViewSettingRequest { + + @ApiModelProperty(value = "根目录是否显示所有存储源", notes = "根目录是否显示所有存储源, 如果为 true, 则根目录显示所有存储源列表, 如果为 false, 则会自动跳转到第一个存储源.", example = "true", required = true) + private Boolean rootShowStorage; + + @ApiModelProperty(value = "页面布局", notes = "full:全屏,center:居中", example = "full", required = true) + private String layout; + + @ApiModelProperty(value = "列表尺寸", notes = "large:大,default:中,small:小", example = "default", required = true) + private String tableSize; + + @ApiModelProperty(value = "自定义视频文件后缀格式") + private String customVideoSuffix; + + @ApiModelProperty(value = "自定义图像文件后缀格式") + private String customImageSuffix; + + @ApiModelProperty(value = "自定义音频文件后缀格式") + private String customAudioSuffix; + + @ApiModelProperty(value = "自定义文本文件后缀格式") + private String customTextSuffix; + + @ApiModelProperty(value = "是否显示文档区", example = "true", required = true) + private Boolean showDocument; + + @ApiModelProperty(value = "是否显示网站公告", example = "true", required = true) + private Boolean showAnnouncement; + + @ApiModelProperty(value = "网站公告", example = "ZFile 网站公告") + private String announcement; + + @ApiModelProperty(value = "自定义 CSS") + private String customCss; + + @ApiModelProperty(value = "自定义 JS") + private String customJs; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/result/link/DownloadLogResult.java b/src/main/java/im/zhaojun/zfile/admin/model/result/link/DownloadLogResult.java new file mode 100644 index 0000000..8a5cc7b --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/result/link/DownloadLogResult.java @@ -0,0 +1,47 @@ +package im.zhaojun.zfile.admin.model.result.link; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import im.zhaojun.zfile.home.model.enums.StorageTypeEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * 下载日志结果类 + * + * @author zhaojun + */ +@Data +public class DownloadLogResult { + + @TableId(value = "id", type = IdType.INPUT) + @ApiModelProperty(value="") + private Integer id; + + @ApiModelProperty(value="文件路径") + private String path; + + @ApiModelProperty(value = "存储源名称", example = "我的本地存储") + private String storageName; + + @ApiModelProperty(value = "存储源类型") + private StorageTypeEnum storageType; + + @ApiModelProperty(value = "短链 Key") + private String shortKey; + + @ApiModelProperty(value="访问时间") + private Date createTime; + + @ApiModelProperty(value="访问 ip") + private String ip; + + @ApiModelProperty(value="访问 user_agent") + private String userAgent; + + @ApiModelProperty(value="访问 referer") + private String referer; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/result/link/ShortLinkResult.java b/src/main/java/im/zhaojun/zfile/admin/model/result/link/ShortLinkResult.java new file mode 100644 index 0000000..37fd773 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/result/link/ShortLinkResult.java @@ -0,0 +1,35 @@ +package im.zhaojun.zfile.admin.model.result.link; + +import im.zhaojun.zfile.home.model.enums.StorageTypeEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * 短链结果类 + * + * @author zhaojun + */ +@Data +public class ShortLinkResult { + + @ApiModelProperty(value = "短链 id", example = "1") + private Integer id; + + @ApiModelProperty(value = "存储源名称", example = "我的本地存储") + private String storageName; + + @ApiModelProperty(value = "存储源类型") + private StorageTypeEnum storageType; + + @ApiModelProperty(value = "短链 key", example = "voldd3") + private String shortKey; + + @ApiModelProperty(value = "文件 url", example = "/directlink/1/test02.png") + private String url; + + @ApiModelProperty(value = "创建时间", example = "2021-11-22 10:05") + private Date createDate; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/result/login/Login2FAResult.java b/src/main/java/im/zhaojun/zfile/admin/model/result/login/Login2FAResult.java new file mode 100644 index 0000000..569b4e2 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/result/login/Login2FAResult.java @@ -0,0 +1,24 @@ +package im.zhaojun.zfile.admin.model.result.login; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; + +/** + * 登陆 2FA 认证生成返回结果 + * + * @author zhaojun + */ +@Data +@AllArgsConstructor +@ApiModel(description = "生成二步验证结果") +public class Login2FAResult { + + @ApiModelProperty(value = "二步验证二维码") + private String qrcode; + + @ApiModelProperty(value = "二步验证密钥") + private String secret; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/result/login/LoginVerifyImgResult.java b/src/main/java/im/zhaojun/zfile/admin/model/result/login/LoginVerifyImgResult.java new file mode 100644 index 0000000..171a0c9 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/result/login/LoginVerifyImgResult.java @@ -0,0 +1,22 @@ +package im.zhaojun.zfile.admin.model.result.login; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 生成图片验证码结果类 + * + * @author zhaojun + */ +@Data +@ApiModel(description = "生成图片验证码结果类") +public class LoginVerifyImgResult { + + @ApiModelProperty(value = "验证码图片", example = "data:image/png;base64,iajsiAAA...") + private String imgBase64; + + @ApiModelProperty(value = "验证码 UUID", example = "c140a792-4ca2-4dac-8d4c-35750b78524f") + private String uuid; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/result/s3/S3BucketNameResult.java b/src/main/java/im/zhaojun/zfile/admin/model/result/s3/S3BucketNameResult.java new file mode 100644 index 0000000..0285f99 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/result/s3/S3BucketNameResult.java @@ -0,0 +1,26 @@ +package im.zhaojun.zfile.admin.model.result.s3; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; + +import java.util.Date; + +/** + * S3 bucket 名称结果类 + * + * @author zhaojun + */ +@Data +@AllArgsConstructor +@ApiModel(value="S3 bucket 名称结果类") +public class S3BucketNameResult { + + @ApiModelProperty(value = "bucket 名称", example = "zfile") + private String name; + + @ApiModelProperty(value = "bucket 创建时间", example = "2022-01-01 15:22") + private Date date; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/result/sharepoint/SharepointSite.java b/src/main/java/im/zhaojun/zfile/admin/model/result/sharepoint/SharepointSite.java new file mode 100644 index 0000000..87966bc --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/result/sharepoint/SharepointSite.java @@ -0,0 +1,25 @@ +package im.zhaojun.zfile.admin.model.result.sharepoint; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * Sharepoint 站点信息 + * + * @author zhaojun + */ +@Data +@ApiModel(description = "SharePoint 站点结果类") +public class SharepointSite { + + @ApiModelProperty(value="站点 id") + private String id; + + @ApiModelProperty(value="站点名称") + private String displayName; + + @ApiModelProperty(value="站点地址") + private String webUrl; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/result/sharepoint/SharepointSiteList.java b/src/main/java/im/zhaojun/zfile/admin/model/result/sharepoint/SharepointSiteList.java new file mode 100644 index 0000000..39c5fa5 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/result/sharepoint/SharepointSiteList.java @@ -0,0 +1,30 @@ +package im.zhaojun.zfile.admin.model.result.sharepoint; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * Sharepoint 网站 list 列表 + * + * @author zhaojun + */ +@Data +@ApiModel(description = "Sharepoint 网站 list 列表") +public class SharepointSiteList { + + @ApiModelProperty(value="站点目录 id") + private String id; + + @ApiModelProperty(value="站点目录名称") + private String displayName; + + @ApiModelProperty(value="站点目录创建时间") + private Date createdDateTime; + + @ApiModelProperty(value="站点目录地址") + private String webUrl; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/model/result/storage/StorageSourceAdminResult.java b/src/main/java/im/zhaojun/zfile/admin/model/result/storage/StorageSourceAdminResult.java new file mode 100644 index 0000000..9b6ec39 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/model/result/storage/StorageSourceAdminResult.java @@ -0,0 +1,82 @@ +package im.zhaojun.zfile.admin.model.result.storage; + +import im.zhaojun.zfile.admin.model.enums.SearchModeEnum; +import im.zhaojun.zfile.common.cache.RefreshTokenCache; +import im.zhaojun.zfile.home.model.enums.StorageTypeEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 存储源设置后台管理 Result + * + * @author zhaojun + */ +@Data +@ApiModel(description = "存储源设置后台管理 Result") +public class StorageSourceAdminResult { + + @ApiModelProperty(value = "ID, 新增无需填写", example = "1") + private Integer id; + + + @ApiModelProperty(value = "是否启用", example = "true") + private Boolean enable; + + + @ApiModelProperty(value = "是否启用文件操作功能", example = "true", notes = "是否启用文件上传,编辑,删除等操作.") + private Boolean enableFileOperator; + + + @ApiModelProperty(value = "是否允许匿名进行文件操作", example = "true", notes = "是否允许匿名进行文件上传,编辑,删除等操作.") + private Boolean enableFileAnnoOperator; + + + @ApiModelProperty(value = "是否开启缓存", example = "true") + private Boolean enableCache; + + + @ApiModelProperty(value = "存储源名称", example = "阿里云 OSS 存储") + private String name; + + + @ApiModelProperty(value = "存储源别名", example = "存储源别名,用于 URL 中展示, 如 http://ip:port/{存储源别名}") + private String key; + + + @ApiModelProperty(value = "存储源备注", example = "这是一个备注信息, 用于管理员区分不同的存储源, 此字段仅管理员可见") + private String remark; + + + @ApiModelProperty(value = "是否开启缓存自动刷新", example = "true") + private Boolean autoRefreshCache; + + + @ApiModelProperty(value = "存储源类型") + private StorageTypeEnum type; + + + @ApiModelProperty(value = "是否开启搜索", example = "true") + private Boolean searchEnable; + + + @ApiModelProperty(value = "搜索是否忽略大小写", example = "true") + private Boolean searchIgnoreCase; + + + @ApiModelProperty(value = "搜索模式", example = "SEARCH_CACHE", notes = "仅从缓存中搜索或直接全量搜索") + private SearchModeEnum searchMode; + + + @ApiModelProperty(value = "排序值", example = "1") + private Integer orderNum; + + + @ApiModelProperty(value = "是否默认开启图片模式", example = "true") + private Boolean defaultSwitchToImgMode; + + + @ApiModelProperty(value = "存储源刷新信息") + private RefreshTokenCache.RefreshTokenInfo refreshTokenInfo; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/model/support/VerifyResult.java b/src/main/java/im/zhaojun/zfile/admin/model/verify/VerifyResult.java similarity index 75% rename from src/main/java/im/zhaojun/zfile/model/support/VerifyResult.java rename to src/main/java/im/zhaojun/zfile/admin/model/verify/VerifyResult.java index 054be04..c64a215 100644 --- a/src/main/java/im/zhaojun/zfile/model/support/VerifyResult.java +++ b/src/main/java/im/zhaojun/zfile/admin/model/verify/VerifyResult.java @@ -1,9 +1,11 @@ -package im.zhaojun.zfile.model.support; +package im.zhaojun.zfile.admin.model.verify; import lombok.Data; /** * 用于表示校验结果的类 + * + * @author zhaojun */ @Data public class VerifyResult { @@ -23,19 +25,26 @@ public class VerifyResult { */ private Integer code; + /** + * 表达式 + */ + private String pattern; + public static VerifyResult success() { VerifyResult verifyResult = new VerifyResult(); verifyResult.setPassed(true); return verifyResult; } - public static VerifyResult fail(String msg) { + + public static VerifyResult success(String pattern) { VerifyResult verifyResult = new VerifyResult(); - verifyResult.setPassed(false); - verifyResult.setMsg(msg); + verifyResult.setPassed(true); + verifyResult.setPattern(pattern); return verifyResult; } + public static VerifyResult fail(String msg, Integer code) { VerifyResult verifyResult = new VerifyResult(); verifyResult.setPassed(false); diff --git a/src/main/java/im/zhaojun/zfile/admin/service/DownloadLogService.java b/src/main/java/im/zhaojun/zfile/admin/service/DownloadLogService.java new file mode 100644 index 0000000..da33f1b --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/service/DownloadLogService.java @@ -0,0 +1,17 @@ +package im.zhaojun.zfile.admin.service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import im.zhaojun.zfile.admin.mapper.DownloadLogMapper; +import im.zhaojun.zfile.admin.model.entity.DownloadLog; +import org.springframework.stereotype.Service; + +/** + * 下载日志 Service + * + * @author zhaojun + */ +@Service +public class DownloadLogService extends ServiceImpl { + + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/service/FilterConfigService.java b/src/main/java/im/zhaojun/zfile/admin/service/FilterConfigService.java new file mode 100644 index 0000000..a4e9565 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/service/FilterConfigService.java @@ -0,0 +1,219 @@ +package im.zhaojun.zfile.admin.service; + +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import im.zhaojun.zfile.admin.mapper.FilterConfigMapper; +import im.zhaojun.zfile.admin.model.entity.FilterConfig; +import im.zhaojun.zfile.common.exception.FileAccessException; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.nio.file.FileSystems; +import java.nio.file.PathMatcher; +import java.nio.file.Paths; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 存储源过滤器 Service + * + * @author zhaojun + */ +@Slf4j +@Service +public class FilterConfigService extends ServiceImpl { + + @Resource + private FilterConfigMapper filterConfigMapper; + + + /** + * 存储源 ID -> 过滤器列表(全部)缓存. + */ + private final Map> baseCache = new HashMap<>(); + + /** + * 存储源 ID -> 过滤器列表(禁止访问)缓存. + */ + private final Map> inaccessibleCache = new HashMap<>(); + + /** + * 存储源 ID -> 过滤器列表(禁止下载)缓存. + */ + private final Map> disableDownloadCache = new HashMap<>(); + + + /** + * 根据存储源 ID 获取存储源配置列表 + * + * @param storageId + * 存储源 ID + * + * @return 存储源过滤器配置列表 + */ + public List findByStorageId(Integer storageId){ + if (baseCache.get(storageId) != null) { + return baseCache.get(storageId); + } else { + List dbResult = filterConfigMapper.findByStorageId(storageId); + baseCache.put(storageId, dbResult); + return dbResult; + } + } + + + /** + * 批量保存存储源过滤器配置, 会先删除之前的所有配置(在事务中运行) + * + * @param storageId + * 存储源 ID + * + * @param filterConfigList + * 存储源过滤器配置列表 + */ + @Transactional(rollbackFor = Exception.class) + public void batchSave(Integer storageId, List filterConfigList) { + filterConfigMapper.deleteByStorageId(storageId); + super.saveBatch(filterConfigList); + baseCache.put(storageId, filterConfigList); + } + + + /** + * 判断访问的路径是否是不允许访问的 + * + * @param storageId + * 存储源 ID + * + * @param path + * 请求路径 + * + * @throws FileAccessException 如果没权限访问此目录, 则抛出异常 + * + */ + public void checkPathPermission(Integer storageId, String path) { + List filterConfigList = findByStorageIdAndInaccessible(storageId); + if (testPattern(filterConfigList, path)) { + throw new FileAccessException("您没有权限访问该路径"); + } + + } + + + /** + * 获取所有类型为禁止访问的过滤规则 + * + * @param storageId + * 存储 ID + * + * @return 禁止访问的过滤规则列表 + */ + public List findByStorageIdAndInaccessible(Integer storageId){ + if (inaccessibleCache.get(storageId) != null) { + return inaccessibleCache.get(storageId); + } else { + List dbResult = filterConfigMapper.findByStorageIdAndInaccessible(storageId); + inaccessibleCache.put(storageId, dbResult); + return dbResult; + } + } + + + /** + * 获取所有类型为禁止下载的过滤规则 + * + * @param storageId + * 存储 ID + * + * @return 禁止下载的过滤规则列表 + */ + public List findByStorageIdAndDisableDownload(Integer storageId){ + if (disableDownloadCache.get(storageId) != null) { + return disableDownloadCache.get(storageId); + } else { + List dbResult = filterConfigMapper.findByStorageIdAndDisableDownload(storageId); + disableDownloadCache.put(storageId, dbResult); + return dbResult; + } + } + + + /** + * 指定存储源下的文件名称, 根据过滤表达式判断是否会显示, 如果符合任意一条表达式, 则返回 true, 反之则返回 false. + * + * @param storageId + * 存储源 ID + * + * @param fileName + * 文件名 + * + * @return 是否显示 + */ + public boolean filterResultIsHidden(Integer storageId, String fileName) { + List filterConfigList = findByStorageId(storageId); + return testPattern(filterConfigList, fileName); + } + + + /** + * 指定存储源下的文件名称, 根据过滤表达式判断文件名和所在路径是否禁止下载, 如果符合任意一条表达式, 则返回 true, 反之则返回 false. + * + * @param storageId + * 存储源 ID + * + * @param fileName + * 文件名 + * + * @return 是否显示 + */ + public boolean filterResultIsDisableDownload(Integer storageId, String fileName) { + List filterConfigList = findByStorageIdAndDisableDownload(storageId); + String filePath = FileUtil.getParent(fileName, 1); + if (StrUtil.isEmpty(filePath)) { + return testPattern(filterConfigList, fileName); + } else { + return testPattern(filterConfigList, fileName) || testPattern(filterConfigList, filePath); + } + } + + + /** + * 根据规则表达式和测试字符串进行匹配,如测试字符串和其中一个规则匹配上,则返回 true,反之返回 false。 + * + * @param patternList + * 规则列表 + * + * @param test + * + * 测试字符串 + * + * @return 是否显示 + */ + private boolean testPattern(List patternList, String test) { + for (FilterConfig filterConfig : patternList) { + String expression = filterConfig.getExpression(); + + if (StrUtil.isEmpty(expression)) { + return false; + } + + try { + PathMatcher pathMatcher = FileSystems.getDefault().getPathMatcher("glob:" + expression); + boolean match = pathMatcher.matches(Paths.get(test)); + if (match) { + return true; + } + log.debug("regex: {}, name {}, contains: {}", expression, test, match); + } catch (Exception e) { + log.debug("regex: {}, name {}, parse error, skip expression", expression, test); + } + } + + return false; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/service/PasswordConfigService.java b/src/main/java/im/zhaojun/zfile/admin/service/PasswordConfigService.java new file mode 100644 index 0000000..b6a0d52 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/service/PasswordConfigService.java @@ -0,0 +1,159 @@ +package im.zhaojun.zfile.admin.service; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import im.zhaojun.zfile.admin.mapper.PasswordConfigMapper; +import im.zhaojun.zfile.admin.model.entity.PasswordConfig; +import im.zhaojun.zfile.admin.model.verify.VerifyResult; +import im.zhaojun.zfile.common.util.AjaxJson; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.nio.file.FileSystems; +import java.nio.file.PathMatcher; +import java.nio.file.Paths; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** + * 存储源密码配置 Service + * + * @author zhaojun + */ +@Service +@Slf4j +public class PasswordConfigService extends ServiceImpl { + + @Resource + private PasswordConfigMapper passwordConfigMapper; + + + /** + * 存储源 ID -> 密码规则列表(全部)缓存. + */ + private final Map> baseCache = new HashMap<>(); + + + /** + * 根据存储源 ID 查询密码规则列表 + * + * @param storageId + * 存储源 ID + * + * @return 密码规则列表 + */ + public List findByStorageId(Integer storageId) { + if (baseCache.get(storageId) != null) { + return baseCache.get(storageId); + } else { + List dbResult = passwordConfigMapper.findByStorageId(storageId); + baseCache.put(storageId, dbResult); + return dbResult; + } + } + + + /** + * 批量保存指定存储源 ID 的密码规则列表 + * + * @param storageId + * 存储源 ID + * + * @param passwordConfigList + * 存储源类别 + */ + @Transactional(rollbackFor = Exception.class) + public void batchSave(Integer storageId, List passwordConfigList) { + passwordConfigMapper.deleteByStorageId(storageId); + super.saveBatch(passwordConfigList); + baseCache.put(storageId, passwordConfigList); + } + + + /** + * 校验密码 + * + * @param storageId + * 存储源 ID + * + * @param path + * 请求路径 + * + * @param inputPassword + * 用户输入的密码 + * + * @return 是否校验通过 + */ + public VerifyResult verifyPassword(Integer storageId, String path, String inputPassword) { + List passwordConfigList = findByStorageId(storageId); + + for (PasswordConfig passwordConfig : passwordConfigList) { + String expression = passwordConfig.getExpression(); + if (StrUtil.isEmpty(expression)) { + continue; + } + + try { + PathMatcher pathMatcher = FileSystems.getDefault() + .getPathMatcher("glob:" + expression); + // 判断当前请求路径是否和规则路径表达式匹配 + boolean match = pathMatcher.matches(Paths.get(path)); + // 如果匹配且输入了密码则校验 + if (match) { + if (StrUtil.isEmpty(inputPassword)) { + return VerifyResult.fail("此文件夹需要密码.", AjaxJson.REQUIRED_PASSWORD); + } + + String expectedPassword = passwordConfig.getPassword(); + if (matchPassword(expectedPassword, inputPassword)) { + log.debug("匹配文件夹密码 path: {}, expression: {}, 用户输入: {}, 匹配成功", path, expression, inputPassword); + return VerifyResult.success(expression); + } + log.debug("匹配文件夹密码 path: {}, expression: {}, 用户输入: {}, 不匹配.", path, expression, inputPassword); + return VerifyResult.fail("此文件夹密码错误.", AjaxJson.INVALID_PASSWORD); + } + } catch (Exception e) { + log.warn("匹配文件夹密码 path: {}, expression: {}, 用户输入: {}, 解析错误, 跳过此规则.", + path, expression, inputPassword, e); + } + } + + log.debug("校验文件夹密码 path: {}, 没有匹配的表达式, 不进行密码校验.", path); + return VerifyResult.success(); + } + + + /** + * 校验两个密码是否相同, 忽略空白字符 + * + * @param expectedPasswordContent + * 预期密码 + * + * @param password + * 实际输入密码 + * + * @return 是否匹配 + */ + private boolean matchPassword(String expectedPasswordContent, String password) { + if (Objects.equals(expectedPasswordContent, password)) { + return true; + } + + if (expectedPasswordContent == null) { + return false; + } + + if (password == null) { + return false; + } + + expectedPasswordContent = expectedPasswordContent.replace("\n", "").trim(); + password = password.replace("\n", "").trim(); + return Objects.equals(expectedPasswordContent, password); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/service/ReadmeConfigService.java b/src/main/java/im/zhaojun/zfile/admin/service/ReadmeConfigService.java new file mode 100644 index 0000000..0ab7721 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/service/ReadmeConfigService.java @@ -0,0 +1,110 @@ +package im.zhaojun.zfile.admin.service; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import im.zhaojun.zfile.admin.mapper.ReadmeConfigMapper; +import im.zhaojun.zfile.admin.model.entity.ReadmeConfig; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.nio.file.FileSystems; +import java.nio.file.PathMatcher; +import java.nio.file.Paths; +import java.util.List; + +/** + * 存储源 readme 配置 Service + * + * @author zhaojun + */ +@Slf4j +@Service +public class ReadmeConfigService extends ServiceImpl { + + @Resource + private ReadmeConfigMapper readmeConfigMapper; + + + /** + * 根据存储源 ID 查询文档配置 + * + * @param storageId + * 存储源ID + * + * @return 存储源文档配置列表 + */ + public List findByStorageId(Integer storageId){ + return readmeConfigMapper.findByStorageId(storageId); + } + + + /** + * 批量保存存储源 readme 配置, 会先删除之前的所有配置(在事务中运行) + * + * @param storageId + * 存储源 ID + * + * @param filterConfigList + * 存储源 readme 配置列表 + */ + @Transactional(rollbackFor = Exception.class) + public void batchSave(Integer storageId, List filterConfigList) { + readmeConfigMapper.deleteByStorageId(storageId); + super.saveBatch(filterConfigList); + } + + + + /** + * 根据存储源指定路径下的 readme 配置 + * + * @param storageId + * 存储源ID + * + * @param path + * 文件夹路径 + * + * @return 存储源 readme 配置列表 + */ + public ReadmeConfig findReadmeByPath(Integer storageId, String path) { + List readmeConfigList = readmeConfigMapper.findByStorageId(storageId); + return getReadmeByTestPattern(readmeConfigList, path); + } + + + /** + * 根据规则表达式和测试字符串进行匹配,如测试字符串和其中一个规则匹配上,则返回 true,反之返回 false。 + * + * @param patternList + * 规则列表 + * + * @param test + * 测试字符串 + * + * @return 是否显示 + */ + private ReadmeConfig getReadmeByTestPattern(List patternList, String test) { + for (ReadmeConfig filterConfig : patternList) { + String expression = filterConfig.getExpression(); + if (StrUtil.isEmpty(expression)) { + continue; + } + + try { + PathMatcher pathMatcher = FileSystems.getDefault().getPathMatcher("glob:" + expression); + boolean match = pathMatcher.matches(Paths.get(test)); + if (match) { + return filterConfig; + } + log.debug("regex: {}, name {}, contains: {}", expression, test, match); + } catch (Exception e) { + log.debug("regex: {}, name {}, parse error, skip expression", expression, test); + } + } + + return null; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/service/ShortLinkService.java b/src/main/java/im/zhaojun/zfile/admin/service/ShortLinkService.java new file mode 100644 index 0000000..64c75a3 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/service/ShortLinkService.java @@ -0,0 +1,116 @@ +package im.zhaojun.zfile.admin.service; + +import cn.hutool.core.util.RandomUtil; +import com.baomidou.mybatisplus.extension.service.IService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import im.zhaojun.zfile.admin.mapper.ShortLinkMapper; +import im.zhaojun.zfile.admin.model.entity.ShortLink; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Date; + +/** + * 短链 Service + * + * @author zhaojun + */ +@Service +public class ShortLinkService extends ServiceImpl implements IService { + + @Resource + private ShortLinkMapper shortLinkMapper; + + @Resource + private StorageSourceService storageSourceService; + + /** + * 根据短链接 key 查询短链接 + * + * @param key + * 短链接 key + * + * @return 短链接信息 + */ + public ShortLink findByKey(String key) { + return shortLinkMapper.findByKey(key); + } + + + /** + * 根据短链接 id 查询短链接 + * + * @param id + * 短链接 id + * + * @return 短链接信息 + */ + public ShortLink findById(Integer id) { + return shortLinkMapper.selectById(id); + } + + + /** + * 根据存储源 ID 和文件路径查询短链接 + * + * @param storageId + * 存储源 ID + * + * @param url + * 短链接 url + * + * @return 短链接信息 + */ + public ShortLink findByStorageIdAndUrl(Integer storageId, String url) { + return shortLinkMapper.findByStorageIdAndUrl(storageId, url); + } + + + /** + * 根据存储源 KEY 和文件路径查询短链接 + * + * @param storageKey + * 存储源 KEY + * + * @param url + * 短链接 url + * + * @return 短链接信息 + */ + public ShortLink findByStorageKeyAndUrl(String storageKey,String url) { + Integer storageId = storageSourceService.findIdByKey(storageKey); + return findByStorageIdAndUrl(storageId, url); + } + + + /** + * 为存储源指定路径生成短链接, 保证生成的短连接 key 是不同的 + * + * @param storageId + * 存储源 id + * + * @param fullPath + * 存储源路径 + * + * @return 生成后的短链接信息 + */ + public ShortLink generatorShortLink(Integer storageId, String fullPath) { + ShortLink shortLink; + String randomKey; + do { + // 获取短链 + randomKey = RandomUtil.randomString(6); + shortLink = findByKey(randomKey); + } while (shortLink != null); + + shortLink = new ShortLink(); + shortLink.setShortKey(randomKey); + shortLink.setUrl(fullPath); + shortLink.setCreateDate(new Date()); + shortLink.setStorageId(storageId); + save(shortLink); + + return shortLink; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/service/StorageSourceConfigService.java b/src/main/java/im/zhaojun/zfile/admin/service/StorageSourceConfigService.java new file mode 100644 index 0000000..ba453b2 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/service/StorageSourceConfigService.java @@ -0,0 +1,116 @@ +package im.zhaojun.zfile.admin.service; + +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.extension.service.IService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import im.zhaojun.zfile.admin.mapper.StorageSourceConfigMapper; +import im.zhaojun.zfile.admin.model.entity.StorageSourceConfig; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 存储源拓展配置 Service + * + * @author zhaojun + */ +@Service +@Slf4j +public class StorageSourceConfigService extends ServiceImpl implements IService { + + @Resource + private StorageSourceConfigMapper storageSourceConfigMapper; + + /** + * 存储源 ID -> 存储源参数列表对象缓存 + */ + private final Map> sourceConfigConfigMapCache = new HashMap<>(); + + /** + * 根据存储源 ID 查询存储源拓展配置, 并按照存储源 id 排序 + * + * @param storageId + * 存储源 ID + * + * @return 存储源拓展配置列表 + */ + public List selectStorageConfigByStorageId(Integer storageId) { + if (sourceConfigConfigMapCache.containsKey(storageId)) { + return sourceConfigConfigMapCache.get(storageId); + } else { + List dbResult = storageSourceConfigMapper.findByStorageIdOrderById(storageId); + sourceConfigConfigMapCache.put(storageId, dbResult); + return dbResult; + } + } + + + /** + * 获取指定存储源的指定参数名称 + * + * @param storageId + * 存储源 id + * + * @param name + * 参数名 + * + * @return 参数信息 + */ + public StorageSourceConfig findByStorageIdAndName(Integer storageId, String name) { + return storageSourceConfigMapper.findByStorageIdAndName(storageId, name); + } + + + /** + * 批量更新存储源设置 + * + * @param storageSourceConfigList + * 存储源设置列表 + */ + public void updateStorageConfig(List storageSourceConfigList) { + super.updateBatchById(storageSourceConfigList); + if (CollUtil.isNotEmpty(storageSourceConfigList)) { + StorageSourceConfig first = CollUtil.getFirst(storageSourceConfigList); + Integer storageId = first.getStorageId(); + sourceConfigConfigMapCache.remove(storageId); + } + } + + + /** + * 根据存储源 id 删除所有设置 + * + * @param id + * 存储源 ID + */ + public void deleteByStorageId(Integer id) { + storageSourceConfigMapper.deleteByStorageId(id); + sourceConfigConfigMapCache.remove(id); + } + + + /** + * 批量保存 + * + * @param entityList + * 实体对象集合 + * + * @return 是否保存成功 + */ + @Override + public boolean saveBatch(Collection entityList) { + if (CollUtil.isNotEmpty(entityList)) { + StorageSourceConfig storageSourceConfig = CollUtil.getFirst(entityList); + Integer storageId = storageSourceConfig.getStorageId(); + sourceConfigConfigMapCache.put(storageId, new ArrayList<>(entityList)); + } + return saveBatch(entityList, DEFAULT_BATCH_SIZE); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/service/StorageSourceService.java b/src/main/java/im/zhaojun/zfile/admin/service/StorageSourceService.java new file mode 100644 index 0000000..bf0efdb --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/service/StorageSourceService.java @@ -0,0 +1,502 @@ +package im.zhaojun.zfile.admin.service; + +import cn.hutool.core.convert.Convert; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.ReflectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.extension.service.IService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import im.zhaojun.zfile.admin.annoation.model.StorageSourceParamDef; +import im.zhaojun.zfile.admin.mapper.StorageSourceMapper; +import im.zhaojun.zfile.admin.model.entity.StorageSource; +import im.zhaojun.zfile.admin.model.entity.StorageSourceConfig; +import im.zhaojun.zfile.admin.model.param.IStorageParam; +import im.zhaojun.zfile.admin.model.request.SaveStorageSourceRequest; +import im.zhaojun.zfile.common.cache.ZFileCache; +import im.zhaojun.zfile.common.context.StorageSourceContext; +import im.zhaojun.zfile.common.exception.InitializeStorageSourceException; +import im.zhaojun.zfile.common.exception.InvalidStorageSourceException; +import im.zhaojun.zfile.home.model.dto.CacheInfoDTO; +import im.zhaojun.zfile.home.model.dto.StorageSourceAllParam; +import im.zhaojun.zfile.home.model.dto.StorageSourceDTO; +import im.zhaojun.zfile.home.model.enums.StorageTypeEnum; +import im.zhaojun.zfile.home.model.request.UpdateStorageSortRequest; +import im.zhaojun.zfile.home.service.base.AbstractBaseFileService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** + * 存储源基本信息 Service + * + * @author zhaojun + */ +@Slf4j +@Service +public class StorageSourceService extends ServiceImpl implements IService { + + @Resource + private StorageSourceMapper storageSourceMapper; + + @Resource + private StorageSourceConfigService storageSourceConfigService; + + @Resource + private StorageSourceContext storageSourceContext; + + @Resource + private ZFileCache zFileCache; + + public static final Class STORAGE_SOURCE_ALL_PARAM_CLASS = StorageSourceAllParam.class; + + + /** + * 存储源 ID -> 存储源对象缓存 + */ + private final Map storageIdMapCache = new HashMap<>(); + + + /** + * 存储源 KEY -> 存储源对象缓存 + */ + private final Map storageKeyMapCache = new HashMap<>(); + + + /** + * 获取所有存储源列表 + * + * @return 存储源列表 + */ + public List findAllOrderByOrderNum() { + return storageSourceMapper.findAllOrderByOrderNum(); + } + + + /** + * 获取所有已启用的存储源列表,按照存储源的排序号排序 + * + * @return 已启用的存储源列表 + */ + public List findListByEnableOrderByOrderNum() { + return storageSourceMapper.findListByEnableOrderByOrderNum(); + } + + + /** + * 获取指定存储源设置 + * + * @param id + * 存储源 ID + * + * @return 存储源设置 + */ + public StorageSource findById(Integer id) { + if (storageIdMapCache.get(id) != null) { + return storageIdMapCache.get(id); + } else { + StorageSource dbResult = storageSourceMapper.selectById(id); + storageIdMapCache.put(id, dbResult); + return dbResult; + } + } + + + /** + * 获取指定存储源 DTO 对象, 此对象包含详细的参数设置. + * + * @param id + * 存储源 ID + * + * @return 存储源 DTO + */ + public StorageSourceDTO findStorageSourceDTOById(Integer id) { + StorageSource storageSource = findById(id); + Boolean defaultSwitchToImgMode = storageSource.getDefaultSwitchToImgMode(); + if (defaultSwitchToImgMode == null) { + storageSource.setDefaultSwitchToImgMode(false); + } + + StorageSourceDTO storageSourceDTO = new StorageSourceDTO(); + BeanUtils.copyProperties(storageSource, storageSourceDTO); + + List storageSourceConfigList = storageSourceConfigService.selectStorageConfigByStorageId(storageSource.getId()); + + StorageSourceAllParam storageSourceAllParam = new StorageSourceAllParam(); + for (StorageSourceConfig storageSourceConfig : storageSourceConfigList) { + String name = storageSourceConfig.getName(); + String value = storageSourceConfig.getValue(); + + Field declaredField; + try { + declaredField = STORAGE_SOURCE_ALL_PARAM_CLASS.getDeclaredField(name); + declaredField.setAccessible(true); + + Class paramFieldType = declaredField.getType(); + Object convertToValue = Convert.convert(paramFieldType, value); + declaredField.set(storageSourceAllParam, convertToValue); + } catch (NoSuchFieldException | IllegalAccessException e) { + log.error("通过反射, 将字段 {} 注入 StorageSourceDTO 时出现异常:", name, e); + } + } + + storageSourceDTO.setStorageSourceAllParam(storageSourceAllParam); + return storageSourceDTO; + } + + + /** + * 根据 id 获取指定存储源的类型. + * + * @param id + * 存储源 ID + * + * @return 存储源对应的类型. + */ + public StorageTypeEnum findStorageTypeById(Integer id) { + return findById(id).getType(); + } + + + /** + * 保存存储源基本信息及其对应的参数设置 + * + * @param saveStorageSourceRequest + * 存储源 DTO 对象 + */ + @Transactional(rollbackFor = Exception.class) + public void saveStorageSource(SaveStorageSourceRequest saveStorageSourceRequest) { + + // 判断是新增还是修改 + boolean updateFlag = saveStorageSourceRequest.getId() != null; + + // 保存基本信息 + StorageSource storageSource = new StorageSource(); + StorageTypeEnum storageType = saveStorageSourceRequest.getType(); + BeanUtils.copyProperties(saveStorageSourceRequest, storageSource); + + if (storageSource.getId() == null) { + Integer nextId = selectNextId(); + storageSource.setId(nextId); + } + + + // 获取通过 id 缓存的对象 + StorageSource cacheStorageSource = storageIdMapCache.get(storageSource.getId()); + // 如果缓存的对象和当前的对象 key 不同, 则说明修改了 key, 需要移除 key 缓存, 并重新写入. + if (ObjectUtil.isNotEmpty(cacheStorageSource) && + !StrUtil.equals(cacheStorageSource.getKey(), storageSource.getKey())) { + storageKeyMapCache.remove(cacheStorageSource.getKey()); + } + + super.saveOrUpdate(storageSource); + + if (StrUtil.isEmpty(storageSource.getKey()) && !StrUtil.equals(storageSource.getId().toString(), storageSource.getKey())) { + storageSource.setKey(Convert.toStr(storageSource.getId())); + baseMapper.updateById(storageSource); + } + storageKeyMapCache.put(storageSource.getKey(), storageSource); + + StorageSourceAllParam storageSourceAllParam = saveStorageSourceRequest.getStorageSourceAllParam(); + + // 获取该存储源类型需要的参数列表 + List storageSourceParamList = StorageSourceContext.getStorageSourceParamListByType(storageType); + + List storageSourceConfigList = new ArrayList<>(); + storageSourceConfigService.deleteByStorageId(saveStorageSourceRequest.getId()); + + for (StorageSourceParamDef storageSourceParam : storageSourceParamList) { + String paramKey = storageSourceParam.getKey(); + String paramName = storageSourceParam.getName(); + + StorageSourceConfig storageSourceConfig = new StorageSourceConfig(); + storageSourceConfigList.add(storageSourceConfig); + + Object fieldValue = ReflectUtil.getFieldValue(storageSourceAllParam, paramKey); + String fieldStrValue = Convert.toStr(fieldValue); + + boolean paramRequired = storageSourceParam.isRequired(); + String paramDefaultValue = storageSourceParam.getDefaultValue(); + + // 如果是必填的, 并且值为空, 则抛出异常 + if (paramRequired && StrUtil.isEmpty(fieldStrValue)) { + throw new InitializeStorageSourceException("存储源参数配置错误: [" + paramName + "] 不能为空"); + } + + // 如果默认值不为空, 且输入值为空, 则使用默认值 + if (StrUtil.isNotEmpty(paramDefaultValue) && StrUtil.isEmpty(fieldStrValue)) { + fieldStrValue = paramDefaultValue; + } + + storageSourceConfig.setTitle(paramName); + storageSourceConfig.setName(paramKey); + storageSourceConfig.setValue(fieldStrValue); + storageSourceConfig.setType(storageType); + storageSourceConfig.setStorageId(storageSource.getId()); + } + storageSourceConfigService.saveBatch(storageSourceConfigList); + + storageSourceContext.init(storageSource.getId()); + + AbstractBaseFileService driveService = storageSourceContext.get(storageSource.getId()); + if (driveService.getIsUnInitialized()) { + throw new InitializeStorageSourceException("初始化异常, 请检查配置是否正确."); + } + + if (storageSource.getAutoRefreshCache()) { + startAutoCacheRefresh(storageSource.getId()); + } else if (updateFlag) { + stopAutoCacheRefresh(storageSource.getId()); + } + + } + + + /** + * 查询存储源最大的 ID + * + * @return 存储源最大 ID + */ + public synchronized Integer selectNextId() { + Integer maxId = storageSourceMapper.selectMaxId(); + if (maxId == null) { + return 1; + } else { + return maxId + 1; + } + } + + + + /** + * 删除指定存储源设置, 会级联删除其参数设置 + * + * @param id + * 存储源 ID + */ + @Transactional(rollbackFor = Exception.class) + public void deleteById(Integer id) { + if (log.isDebugEnabled()) { + log.debug("尝试删除存储源, storageId: {}", id); + } + StorageSource storageSource = findById(id); + storageSourceMapper.deleteById(id); + storageSourceConfigService.deleteByStorageId(id); + if (storageSource.getEnableCache()) { + zFileCache.stopAutoCacheRefresh(id); + zFileCache.clear(id); + } + String key = storageSource.getKey(); + storageIdMapCache.remove(id); + storageKeyMapCache.remove(key); + storageSourceContext.destroy(id); + if (log.isDebugEnabled()) { + log.debug("尝试删除存储源成功, 已清理相关数据, storageId: {}", id); + } + } + + + /** + * 更新指定存储源的缓存启用状态 + * + * @param storageId + * 存储源 ID + * + * @param cacheEnable + * 是否启用缓存 + */ + public void updateCacheStatus(Integer storageId, Boolean cacheEnable) { + StorageSource storageSource = findById(storageId); + if (storageSource != null) { + storageSource.setEnableCache(cacheEnable); + super.saveOrUpdate(storageSource); + storageIdMapCache.put(storageId, storageSource); + } + } + + + /** + * 获取指定存储源的缓存信息 + * + * @param storageId + * 存储源 ID + * + * @return 缓存信息 + */ + public CacheInfoDTO findCacheInfo(Integer storageId) { + long hitCount = zFileCache.getHitCount(storageId); + long missCount = zFileCache.getMissCount(storageId); + Set keys = zFileCache.keySet(storageId); + int cacheCount = keys.size(); + return new CacheInfoDTO(cacheCount, hitCount, missCount, keys); + } + + + /** + * 刷新指定 key 的缓存: + * 1. 清空此 key 的缓存. + * 2. 重新调用方法写入缓存. + * + * @param storageId + * 存储源 ID + * + * @param key + * 缓存 key (文件夹名称) + */ + public void refreshCache(Integer storageId, String key) throws Exception { + if (log.isDebugEnabled()) { + log.debug("手动刷新缓存 storageId: {}, key: {}", storageId, key); + } + zFileCache.remove(storageId, key); + AbstractBaseFileService baseFileService = storageSourceContext.get(storageId); + baseFileService.fileList(key); + } + + + /** + * 开启缓存自动刷新 + * + * @param storageId + * 存储源 ID + */ + public void startAutoCacheRefresh(Integer storageId) { + StorageSource storageSource = findById(storageId); + storageSource.setAutoRefreshCache(true); + super.saveOrUpdate(storageSource); + storageIdMapCache.put(storageId, storageSource); + zFileCache.startAutoCacheRefresh(storageId); + } + + + /** + * 停止缓存自动刷新 + * + * @param storageId + * 存储源 ID + */ + public void stopAutoCacheRefresh(Integer storageId) { + StorageSource storageSource = findById(storageId); + storageSource.setAutoRefreshCache(false); + super.saveOrUpdate(storageSource); + storageIdMapCache.put(storageId, storageSource); + zFileCache.stopAutoCacheRefresh(storageId); + } + + + /** + * 清理缓存 + * + * @param storageId + * 存储源 ID + */ + public void clearCache(Integer storageId) { + zFileCache.clear(storageId); + } + + + /** + * 交换存储源排序 + * + * @param updateStorageSortRequestList + * 更新排序的存储源 id 及排序值列表 + */ + @Transactional(rollbackFor = Exception.class) + public void updateStorageSort(List updateStorageSortRequestList) { + for (int i = 0; i < updateStorageSortRequestList.size(); i++) { + UpdateStorageSortRequest item = updateStorageSortRequestList.get(i); + if (!Objects.equals(i, item.getOrderNum())) { + storageSourceMapper.updateSetOrderNumById(i, item.getId()); + storageIdMapCache.clear(); + } + } + } + + + /** + * 根据存储源 key 获取存储源 + * + * @param storageKey + * 存储源 key + * + * @throws InvalidStorageSourceException 存储源不存在时, 抛出异常. + * + * @return 存储源信息 + */ + public StorageSource findByStorageKey(String storageKey) { + if (storageKeyMapCache.containsKey(storageKey)) { + return storageKeyMapCache.get(storageKey); + } else { + StorageSource storageSource = storageSourceMapper.findByStorageKey(storageKey); + if (storageSource != null) { + storageKeyMapCache.put(storageKey, storageSource); + } + return storageSource; + } + + + } + + + /** + * 判断存储源 key 是否已存在 (不读取缓存) + * + * @param storageKey + * 存储源 key + * + * @return 是否已存在 + */ + public boolean existByStorageKey(String storageKey) { + return storageSourceMapper.findIdByStorageKey(storageKey) != null; + } + + + /** + * 根据存储源 id 获取存储源 key + * + * @param id + * 存储源 id + * + * @return 存储源 key + */ + public String findKeyById(Integer id){ + return findById(id).getKey(); + } + + + /** + * 根据存储源 key 获取存储源 + * + * @param storageKey + * 存储源 key + * + * @return 存储源信息 + */ + public Integer findIdByKey(String storageKey) { + StorageSource storageSource = findByStorageKey(storageKey); + if (storageSource == null) { + return null; + } else { + return storageSource.getId(); + } + } + + + @Override + public boolean updateById(StorageSource entity) { + if (entity != null) { + Integer id = entity.getId(); + storageIdMapCache.put(id, entity); + } + return super.updateById(entity); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/service/SystemConfigService.java b/src/main/java/im/zhaojun/zfile/admin/service/SystemConfigService.java new file mode 100644 index 0000000..6e0e297 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/service/SystemConfigService.java @@ -0,0 +1,270 @@ +package im.zhaojun.zfile.admin.service; + +import cn.hutool.core.convert.Convert; +import cn.hutool.core.convert.ConvertException; +import cn.hutool.core.util.EnumUtil; +import cn.hutool.core.util.HexUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.crypto.SecureUtil; +import cn.hutool.crypto.symmetric.SymmetricAlgorithm; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import im.zhaojun.zfile.admin.constant.SystemConfigConstant; +import im.zhaojun.zfile.admin.mapper.SystemConfigMapper; +import im.zhaojun.zfile.admin.model.entity.SystemConfig; +import im.zhaojun.zfile.admin.model.enums.LoginVerifyModeEnum; +import im.zhaojun.zfile.common.cache.ZFileCache; +import im.zhaojun.zfile.common.util.EnumConvertUtils; +import im.zhaojun.zfile.home.model.dto.SystemConfigDTO; +import lombok.extern.slf4j.Slf4j; +import org.springframework.context.annotation.DependsOn; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.List; + +/** + * 系统设置 Service + * + * @author zhaojun + */ +@Slf4j +@Service +@DependsOn("zFileCache") +public class SystemConfigService extends ServiceImpl { + + private static final String DEFAULT_USERNAME = "admin"; + + private static final String DEFAULT_PASSWORD = "123456"; + + private static final LoginVerifyModeEnum DEFAULT_LOGIN_VERIFY_MODE = LoginVerifyModeEnum.IMG_VERIFY_MODE; + + @Resource + private ZFileCache zFileCache; + + @Resource + private SystemConfigMapper systemConfigMapper; + + private final Class systemConfigClazz = SystemConfigDTO.class; + + /** + * 获取系统设置, 如果缓存中有, 则去缓存取, 没有则查询数据库并写入到缓存中. + * + * @return 系统设置 + */ + public SystemConfigDTO getSystemConfig() { + SystemConfigDTO cacheConfig = zFileCache.getConfig(); + if (cacheConfig != null) { + return cacheConfig; + } + + SystemConfigDTO systemConfigDTO = new SystemConfigDTO(); + List systemConfigList = systemConfigMapper.findAll(); + + for (SystemConfig systemConfig : systemConfigList) { + String key = systemConfig.getName(); + + try { + Field field = systemConfigClazz.getDeclaredField(key); + field.setAccessible(true); + String strVal = systemConfig.getValue(); + Class fieldType = field.getType(); + + Object convertVal; + if (EnumUtil.isEnum(fieldType)) { + convertVal = EnumConvertUtils.convertStrToEnum(fieldType, strVal); + } else { + convertVal = Convert.convert(fieldType, strVal); + } + field.set(systemConfigDTO, convertVal); + } catch (NoSuchFieldException | IllegalAccessException | ConvertException e) { + log.error("通过反射, 将字段 {} 注入 SystemConfigDTO 时出现异常:", key, e); + } + } + + zFileCache.updateConfig(systemConfigDTO); + return systemConfigDTO; + } + + + /** + * 更新系统设置, 并清空缓存中的内容. + * + * @param systemConfigDTO + * 系统设置 dto + */ + public void updateSystemConfig(SystemConfigDTO systemConfigDTO) { + List systemConfigList = new ArrayList<>(); + + Field[] fields = systemConfigClazz.getDeclaredFields(); + for (Field field : fields) { + String key = field.getName(); + SystemConfig systemConfig = systemConfigMapper.findByName(key); + if (systemConfig != null) { + field.setAccessible(true); + Object val = null; + + try { + val = field.get(systemConfigDTO); + } catch (IllegalAccessException e) { + log.error("通过反射, 从 SystemConfigDTO 获取字段 {} 时出现异常:", key, e); + } + + if (val != null) { + // 如果是枚举类型, 则取 value 值. + if (EnumUtil.isEnum(val)) { + val = EnumConvertUtils.convertEnumToStr(val); + } + systemConfig.setValue(Convert.toStr(val)); + systemConfigList.add(systemConfig); + } + } + } + + zFileCache.removeConfig(); + + systemConfigList.forEach(systemConfig -> systemConfigMapper.updateById(systemConfig)); + } + + + /** + * 重置管理员登录信息, 重置登录账号为 admin, 密码为 123456, 登录校验方式为 图形验证码. + */ + public void resetAdminLoginInfo() { + SystemConfig usernameConfig = systemConfigMapper.findByName(SystemConfigConstant.USERNAME); + usernameConfig.setValue(DEFAULT_USERNAME); + saveOrUpdate(usernameConfig); + + String encryptionPassword = SecureUtil.md5(DEFAULT_PASSWORD); + SystemConfig passwordConfig = systemConfigMapper.findByName(SystemConfigConstant.PASSWORD); + passwordConfig.setValue(encryptionPassword); + saveOrUpdate(passwordConfig); + + SystemConfig loginVerifyModeConfig = systemConfigMapper.findByName(SystemConfigConstant.LOGIN_VERIFY_MODE); + loginVerifyModeConfig.setValue(DEFAULT_LOGIN_VERIFY_MODE.getValue()); + saveOrUpdate(loginVerifyModeConfig); + + zFileCache.removeConfig(); + } + + + /** + * 获取是否已安装初始化 + * + * @return 是否已安装初始化 + */ + public boolean getIsInstall() { + SystemConfigDTO systemConfigDTO = getSystemConfig(); + return StrUtil.isNotEmpty(systemConfigDTO.getUsername()); + } + + + /** + * 获取管理员名称 + * + * @return 管理员名称 + */ + public String getAdminUsername() { + SystemConfigDTO systemConfigDTO = getSystemConfig(); + return systemConfigDTO.getUsername(); + } + + + /** + * 获取系统是否已初始化 + * + * @return 管理员名称 + */ + public Boolean getSystemIsInstalled() { + return getSystemConfig().getInstalled(); + } + + + /** + * 获取后端站点域名 + * + * @return 后端站点域名 + */ + public String getDomain() { + SystemConfigDTO systemConfigDTO = getSystemConfig(); + return systemConfigDTO.getDomain(); + } + + + /** + * 获取前端站点域名 + * + * @return 前端站点域名 + */ + public String getFrontDomain() { + SystemConfigDTO systemConfigDTO = getSystemConfig(); + return systemConfigDTO.getFrontDomain(); + } + + + /** + * 获取实际的前端站点域名 + * + * @return 实际的前端站点域名 + */ + public String getRealFrontDomain() { + SystemConfigDTO systemConfigDTO = getSystemConfig(); + + String baseUrl = ""; + + if (StrUtil.isNotEmpty(systemConfigDTO.getFrontDomain())) { + baseUrl = systemConfigDTO.getFrontDomain(); + } else if (StrUtil.isNotEmpty(systemConfigDTO.getDomain())) { + baseUrl = systemConfigDTO.getDomain(); + } + + return baseUrl; + } + + + /** + * 获取前端地址下的 403 页面地址. + * + * @return 前端地址下的 403 页面地址. + * + */ + public String getForbiddenUrl() { + return getRealFrontDomain() + "/403"; + } + + + /** + * 获取直链前缀 + * + * @return 直链前缀 + */ + public String getDirectLinkPrefix() { + SystemConfigDTO systemConfigDTO = getSystemConfig(); + return systemConfigDTO.getDirectLinkPrefix(); + } + + + /** + * 获取 RSA Hex 格式密钥 + * + * @return RSA Hex 格式密钥 + */ + public String getRsaHexKey() { + SystemConfigDTO systemConfigDTO = getSystemConfig(); + String rsaHexKey = systemConfigDTO.getRsaHexKey(); + if (StrUtil.isEmpty(rsaHexKey)) { + byte[] key = SecureUtil.generateKey(SymmetricAlgorithm.AES.getValue()).getEncoded(); + rsaHexKey = HexUtil.encodeHexStr(key); + + SystemConfig loginVerifyModeConfig = systemConfigMapper.findByName(SystemConfigConstant.RSA_HEX_KEY); + loginVerifyModeConfig.setValue(rsaHexKey); + saveOrUpdate(loginVerifyModeConfig); + + systemConfigDTO.setRsaHexKey(rsaHexKey); + zFileCache.updateConfig(systemConfigDTO); + } + return rsaHexKey; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/service/login/ImgVerifyCodeService.java b/src/main/java/im/zhaojun/zfile/admin/service/login/ImgVerifyCodeService.java new file mode 100644 index 0000000..c8f11a7 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/service/login/ImgVerifyCodeService.java @@ -0,0 +1,84 @@ +package im.zhaojun.zfile.admin.service.login; + +import cn.hutool.cache.CacheUtil; +import cn.hutool.cache.impl.FIFOCache; +import cn.hutool.captcha.CaptchaUtil; +import cn.hutool.captcha.CircleCaptcha; +import cn.hutool.core.lang.UUID; +import im.zhaojun.zfile.common.exception.LoginVerifyException; +import im.zhaojun.zfile.admin.model.result.login.LoginVerifyImgResult; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.Objects; + +/** + * 图片验证码 Service + * + * @author zhaojun + */ +@Service +@Slf4j +public class ImgVerifyCodeService { + + /** + * 最大容量为 100 的验证码缓存,防止恶意请求占满内存. 验证码有效期为 60 秒. + */ + private final FIFOCache verifyCodeCache = CacheUtil.newFIFOCache(100,60 * 1000L); + + + /** + * 生成验证码,并写入缓存中. + * + * @return 验证码生成结果 + */ + public LoginVerifyImgResult generatorCaptcha() { + CircleCaptcha captcha = CaptchaUtil.createCircleCaptcha(200, 45, 4, 7); + String code = captcha.getCode(); + String imageBase64 = captcha.getImageBase64Data(); + + String uuid = UUID.fastUUID().toString(); + verifyCodeCache.put(uuid, code); + + LoginVerifyImgResult loginVerifyImgResult = new LoginVerifyImgResult(); + loginVerifyImgResult.setImgBase64(imageBase64); + loginVerifyImgResult.setUuid(uuid); + return loginVerifyImgResult; + } + + + /** + * 对验证码进行验证. + * + * @param uuid + * 验证码 uuid + * + * @param code + * 验证码 + * + * @return 是否验证成功 + */ + public boolean verifyCaptcha(String uuid, String code) { + String expectedCode = verifyCodeCache.get(uuid); + return Objects.equals(expectedCode, code); + } + + + /** + * 对验证码进行验证, 如验证失败则抛出异常 + * + * @param uuid + * 验证码 uuid + * + * @param code + * 验证码 + */ + public void checkCaptcha(String uuid, String code) { + boolean flag = verifyCaptcha(uuid, code); + if (!flag) { + throw new LoginVerifyException("验证码错误或已失效."); + } + } + + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/admin/service/login/TwoFAVerifyService.java b/src/main/java/im/zhaojun/zfile/admin/service/login/TwoFAVerifyService.java new file mode 100644 index 0000000..f3367fb --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/admin/service/login/TwoFAVerifyService.java @@ -0,0 +1,101 @@ +package im.zhaojun.zfile.admin.service.login; + +import dev.samstevens.totp.code.CodeVerifier; +import dev.samstevens.totp.exceptions.QrGenerationException; +import dev.samstevens.totp.qr.QrData; +import dev.samstevens.totp.qr.QrDataFactory; +import dev.samstevens.totp.qr.QrGenerator; +import dev.samstevens.totp.secret.SecretGenerator; +import im.zhaojun.zfile.common.exception.LoginVerifyException; +import im.zhaojun.zfile.admin.model.request.login.VerifyLogin2FARequest; +import im.zhaojun.zfile.admin.model.result.login.Login2FAResult; +import im.zhaojun.zfile.home.model.dto.SystemConfigDTO; +import im.zhaojun.zfile.admin.model.enums.LoginVerifyModeEnum; +import im.zhaojun.zfile.admin.service.SystemConfigService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +import static dev.samstevens.totp.util.Utils.getDataUriForImage; + +/** + * 2FA 双因素认证 Service + * + * @author zhaojun + */ +@Service +public class TwoFAVerifyService { + + @Resource + private SecretGenerator secretGenerator; + + @Resource + private QrDataFactory qrDataFactory; + + @Resource + private QrGenerator qrGenerator; + + @Resource + private CodeVerifier verifier; + + @Resource + private SystemConfigService systemConfigService; + + + /** + * 生成 2FA 双因素认证二维码和密钥 + * + * @return 2FA 双因素认证二维码和密钥 + * @throws QrGenerationException 二维码生成异常 + */ + public Login2FAResult setupDevice() throws QrGenerationException { + // 生成 2FA 密钥 + String secret = secretGenerator.generate(); + QrData data = qrDataFactory.newBuilder().secret(secret).issuer("ZFile").build(); + + // 将生成的 2FA 密钥转换为 Base64 图像字符串 + String qrCodeImage = getDataUriForImage( + qrGenerator.generate(data), + qrGenerator.getImageMimeType()); + + return new Login2FAResult(qrCodeImage, secret); + } + + + /** + * 验证 2FA 双因素认证是否正确,正确则进行绑定. + * + * @param verifyLogin2FARequest + * 2FA 双因素认证请求参数 + */ + public void deviceVerify(VerifyLogin2FARequest verifyLogin2FARequest) { + String secret = verifyLogin2FARequest.getSecret(); + String code = verifyLogin2FARequest.getCode(); + + if (verifier.isValidCode(secret, code)) { + SystemConfigDTO systemConfig = systemConfigService.getSystemConfig(); + systemConfig.setLoginVerifyMode(LoginVerifyModeEnum.TWO_FACTOR_AUTHENTICATION_MODE); + systemConfig.setLoginVerifySecret(secret); + systemConfigService.updateSystemConfig(systemConfig); + } else { + throw new LoginVerifyException("验证码不正确"); + } + } + + + /** + * 验证 2FA 双因素认证. + * + * @param loginVerifySecret + * 2FA 双因素认证密钥 + * + * @param verifyCode + * 2FA 双因素认证验证码 + */ + public void checkCode(String loginVerifySecret, String verifyCode) { + if (!verifier.isValidCode(loginVerifySecret, verifyCode)) { + throw new LoginVerifyException("验证码错误或已失效"); + } + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/aspect/FileListCacheAspect.java b/src/main/java/im/zhaojun/zfile/aspect/FileListCacheAspect.java deleted file mode 100644 index f17c2ae..0000000 --- a/src/main/java/im/zhaojun/zfile/aspect/FileListCacheAspect.java +++ /dev/null @@ -1,66 +0,0 @@ -package im.zhaojun.zfile.aspect; - -import im.zhaojun.zfile.cache.ZFileCache; -import im.zhaojun.zfile.model.dto.FileItemDTO; -import im.zhaojun.zfile.model.entity.DriveConfig; -import im.zhaojun.zfile.service.DriveConfigService; -import im.zhaojun.zfile.service.base.AbstractBaseFileService; -import org.aspectj.lang.ProceedingJoinPoint; -import org.aspectj.lang.annotation.Around; -import org.aspectj.lang.annotation.Aspect; -import org.springframework.stereotype.Component; - -import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; - -/** - * @author zhaojun - * 缓存切面类, 用于访问文件夹时, 缓存文件列表内容. - */ -@Aspect -@Component -public class FileListCacheAspect { - - @Resource - private ZFileCache zFileCache; - - @Resource - private DriveConfigService driveConfigService; - - - /** - * 缓存切面, 如果此驱动器开启了缓存, 则从缓存中取数据, 没有开启, 则直接调用方法. - */ - @Around(value = "execution(public * im.zhaojun.zfile.service.base.AbstractBaseFileService.fileList(..))") - public Object around(ProceedingJoinPoint point) throws Throwable { - List result; - - // 获取请求路径 - Object[] args = point.getArgs(); - String path = String.valueOf(args[0]); - - // 获取当前驱动器 - AbstractBaseFileService fileService = ((AbstractBaseFileService) point.getTarget()); - Integer driveId = fileService.driveId; - - // 判断驱动器是否开启了缓存 - DriveConfig driveConfig = driveConfigService.findById(driveId); - boolean enableCache = driveConfig.getEnableCache(); - - if (enableCache) { - List cacheFileList = zFileCache.get(driveId, path); - if (cacheFileList == null) { - result = Collections.unmodifiableList((List) point.proceed()); - zFileCache.put(driveId, path, result); - } else { - result = cacheFileList; - } - } else { - result = (List) point.proceed(); - } - - return result; - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/cache/MyTimedCache.java b/src/main/java/im/zhaojun/zfile/cache/MyTimedCache.java deleted file mode 100644 index c33fe08..0000000 --- a/src/main/java/im/zhaojun/zfile/cache/MyTimedCache.java +++ /dev/null @@ -1,55 +0,0 @@ -package im.zhaojun.zfile.cache; - -import cn.hutool.cache.impl.CacheObj; -import cn.hutool.cache.impl.TimedCache; -import im.zhaojun.zfile.context.DriveContext; -import im.zhaojun.zfile.service.base.AbstractBaseFileService; -import im.zhaojun.zfile.util.SpringContextHolder; -import lombok.extern.slf4j.Slf4j; - -import java.util.Map; - -/** - * @author zhaojun - */ -@Slf4j -public class MyTimedCache extends TimedCache { - - private DriveContext driveContext; - - public MyTimedCache(long timeout) { - super(timeout); - } - - public MyTimedCache(long timeout, Map> map) { - super(timeout, map); - } - - @Override - protected void onRemove(K key, V cachedObject) { - if (driveContext == null) { - driveContext = SpringContextHolder.getBean(DriveContext.class); - } - - DriveCacheKey cacheKey = (DriveCacheKey) key; - AbstractBaseFileService baseFileService = driveContext.get(cacheKey.getDriveId()); - - if (log.isDebugEnabled()) { - log.debug("尝试刷新缓存: {}", cacheKey); - } - - if (baseFileService == null) { - log.error("尝试刷新缓存: {}, 时出现异常, 驱动器已不存在", cacheKey); - return; - } - - try { - baseFileService.fileList(cacheKey.getKey()); - } catch (Exception e) { - log.error("尝试刷新缓存 {} 失败", cacheKey); - e.printStackTrace(); - } - - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/cache/ZFileCache.java b/src/main/java/im/zhaojun/zfile/cache/ZFileCache.java deleted file mode 100644 index d9cf396..0000000 --- a/src/main/java/im/zhaojun/zfile/cache/ZFileCache.java +++ /dev/null @@ -1,331 +0,0 @@ -package im.zhaojun.zfile.cache; - -import cn.hutool.cache.impl.CacheObj; -import cn.hutool.core.util.StrUtil; -import im.zhaojun.zfile.model.constant.ZFileConstant; -import im.zhaojun.zfile.model.dto.FileItemDTO; -import im.zhaojun.zfile.model.dto.SystemConfigDTO; -import im.zhaojun.zfile.model.entity.DriveConfig; -import im.zhaojun.zfile.repository.DriverConfigRepository; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Component; - -import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Objects; -import java.util.Set; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ConcurrentMap; - -/** - * ZFile 缓存类 - * - * @author zhaojun - */ -@Component -@Slf4j -public class ZFileCache { - - @Resource - private DriverConfigRepository driverConfigRepository; - - /** - * 缓存过期时间 - */ - @Value("${zfile.cache.timeout}") - private long timeout; - - /** - * 缓存自动刷新间隔 - */ - @Value("${zfile.cache.auto-refresh.interval}") - private long autoRefreshInterval; - - /** - * 文件/文件对象缓存. - * - * ConcurrentMap>> - * ConcurrentMap> - * - * driveId: 驱动器 ID - * key: 文件夹路径 - * value: 文件夹中内容 - */ - private ConcurrentMap>> drivesCache = new ConcurrentHashMap<>(); - - /** - * 系统设置缓存 - */ - private SystemConfigDTO systemConfigCache; - - - /** - * 写入缓存 - * - * @param driveId - * 驱动器 ID - * - * @param key - * 文件夹路径 - * - * @param value - * 文件夹中列表 - */ - public synchronized void put(Integer driveId, String key, List value) { - getCacheByDriveId(driveId).put(new DriveCacheKey(driveId, key), value); - } - - - /** - * 获取指定驱动器, 某个文件夹的名称 - * - * @param driveId - * 驱动器 ID - * - * @param key - * 文件夹路径 - * - * @return 驱动器中文件夹的内容 - */ - public List get(Integer driveId, String key) { - return getCacheByDriveId(driveId).get(new DriveCacheKey(driveId, key), false); - } - - - /** - * 清空指定驱动器的缓存. - * - * @param driveId - * 驱动器 ID - */ - public void clear(Integer driveId) { - if (log.isDebugEnabled()) { - log.debug("清空驱动器所有缓存, driveId: {}", driveId); - } - getCacheByDriveId(driveId).clear(); - } - - - /** - * 获取指定驱动器中已缓存文件夹数量 - * - * @param driveId - * 驱动器 ID - * - * @return 已缓存文件夹数量 - */ - public int cacheCount(Integer driveId) { - return getCacheByDriveId(driveId).size(); - } - - - /** - * 指定驱动器, 根据文件及文件名查找相关的文件 - * - * @param driveId - * 驱动器 ID - * - * @param key - * 搜索键, 可匹配文件夹名称和文件名称. - * - * @return 搜索结果, 包含文件夹和文件. - */ - public List find(Integer driveId, String key) { - List result = new ArrayList<>(); - - DriveConfig driveConfig = driverConfigRepository.getOne(driveId); - boolean searchContainEncryptedFile = driveConfig.getSearchContainEncryptedFile(); - boolean ignoreCase = driveConfig.getSearchIgnoreCase(); - - for (List fileItemList : getCacheByDriveId(driveId)) { - // 过滤加密文件 - if (!searchContainEncryptedFile && isEncryptedFolder(fileItemList)) { - continue; - } - - for (FileItemDTO fileItemDTO : fileItemList) { - boolean testResult; - - // 根据是否需要忽略大小写来匹配文件(夹)名 - if (ignoreCase) { - testResult = StrUtil.containsIgnoreCase(fileItemDTO.getName(), key); - } else { - testResult = fileItemDTO.getName().contains(key); - } - - if (testResult) { - result.add(fileItemDTO); - } - } - } - return result; - } - - - /** - * 获取所有缓存 key (文件夹名称) - * - * @return 所有缓存 key - */ - public Set keySet(Integer driveId) { - Iterator>> cacheObjIterator = getCacheByDriveId(driveId).cacheObjIterator(); - Set keys = new HashSet<>(); - while (cacheObjIterator.hasNext()) { - keys.add(cacheObjIterator.next().getKey().getKey()); - } - return keys; - } - - - /** - * 从缓存中删除指定驱动器的某个路径的缓存 - * - * @param driveId - * 驱动器 ID - * - * @param key - * 文件夹路径 - */ - public void remove(Integer driveId, String key) { - getCacheByDriveId(driveId).remove(new DriveCacheKey(driveId, key)); - } - - - - /** - * 更新缓存中的系统设置 - * - * @param systemConfigCache - * 系统设置 - */ - public void updateConfig(SystemConfigDTO systemConfigCache) { - this.systemConfigCache = systemConfigCache; - } - - - /** - * 从缓存中获取系统设置 - * - * @return 系统设置 - */ - public SystemConfigDTO getConfig() { - return this.systemConfigCache; - } - - - /** - * 清空系统设置缓存 - */ - public void removeConfig() { - this.systemConfigCache = null; - } - - - /** - * 判断此文件夹是否为加密文件夹 (包含) - * - * @param list - * 文件夹中的内容 - * - * @return 返回此文件夹是否是加密的 (). - */ - private boolean isEncryptedFolder(List list) { - // 遍历文件判断是否包含 - for (FileItemDTO fileItemDTO : list) { - if (Objects.equals(ZFileConstant.PASSWORD_FILE_NAME, fileItemDTO.getName())) { - return true; - } - } - return false; - } - - - /** - * 获取指定驱动器对应的缓存 - * - * @param driveId - * 驱动器 ID - * - * @return 驱动器对应的缓存 - */ - private synchronized MyTimedCache> getCacheByDriveId(Integer driveId) { - MyTimedCache> driveCache = drivesCache.get(driveId); - if (driveCache == null) { - driveCache = new MyTimedCache<>(timeout * 1000); - drivesCache.put(driveId, driveCache); - startAutoCacheRefresh(driveId); - } - return driveCache; - } - - - /** - * 获取指定驱动器的缓存命中数 - * - * @param driveId - * 驱动器 ID - * - * @return 缓存命中数 - */ - public int getHitCount(Integer driveId) { - return getCacheByDriveId(driveId).getHitCount(); - } - - - /** - * 获取指定驱动器的缓存未命中数 - * - * @param driveId - * 驱动器 ID - * - * @return 缓存未命中数 - */ - public int getMissCount(Integer driveId) { - return getCacheByDriveId(driveId).getMissCount(); - } - - - /** - * 开启缓存自动刷新 - * - * @param driveId - * 驱动器 ID - */ - public void startAutoCacheRefresh(Integer driveId) { - if (log.isDebugEnabled()) { - log.debug("开启缓存自动刷新 driveId: {}", driveId); - } - DriveConfig driveConfig = driverConfigRepository.findById(driveId).get(); - Boolean autoRefreshCache = driveConfig.getAutoRefreshCache(); - if (autoRefreshCache != null && autoRefreshCache) { - MyTimedCache> driveCache = drivesCache.get(driveId); - if (driveCache == null) { - driveCache = new MyTimedCache<>(timeout * 1000); - drivesCache.put(driveId, driveCache); - } - driveCache.schedulePrune(autoRefreshInterval * 1000); - } - } - - - /** - * 停止缓存自动刷新 - * - * @param driveId - * 驱动器 ID - */ - public void stopAutoCacheRefresh(Integer driveId) { - if (log.isDebugEnabled()) { - log.debug("停止缓存自动刷新 driveId: {}", driveId); - } - MyTimedCache> driveCache = drivesCache.get(driveId); - if (driveCache != null) { - driveCache.cancelPruneSchedule(); - } - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/cache/MyTimedCache.java b/src/main/java/im/zhaojun/zfile/common/cache/MyTimedCache.java new file mode 100644 index 0000000..95b3ba0 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/cache/MyTimedCache.java @@ -0,0 +1,61 @@ +package im.zhaojun.zfile.common.cache; + +import cn.hutool.cache.impl.TimedCache; +import cn.hutool.extra.spring.SpringUtil; +import im.zhaojun.zfile.common.context.StorageSourceContext; +import im.zhaojun.zfile.admin.model.dto.StorageSourceCacheKey; +import im.zhaojun.zfile.home.service.base.AbstractBaseFileService; +import lombok.extern.slf4j.Slf4j; + +/** + * 自定义缓存类, 实现缓存超时后自动刷新 + * + * @author zhaojun + */ +@Slf4j +public class MyTimedCache extends TimedCache { + + private StorageSourceContext storageSourceContext; + + public MyTimedCache(long timeout) { + super(timeout); + } + + + /** + * 当缓存超时后自动刷新 + * + * @param key + * 缓存 key + * + * @param cachedObject + * 缓存值 + */ + @Override + protected void onRemove(K key, V cachedObject) { + if (storageSourceContext == null) { + storageSourceContext = SpringUtil.getBean(StorageSourceContext.class); + } + + StorageSourceCacheKey cacheKey = (StorageSourceCacheKey) key; + AbstractBaseFileService baseFileService = storageSourceContext.get(cacheKey.getStorageId()); + + if (log.isDebugEnabled()) { + log.debug("尝试刷新缓存: {}", cacheKey); + } + + if (baseFileService == null) { + log.error("尝试刷新缓存: {}, 时出现异常, 存储源已不存在", cacheKey); + return; + } + + try { + baseFileService.fileList(cacheKey.getKey()); + } catch (Exception e) { + log.error("尝试刷新缓存 {} 失败", cacheKey); + e.printStackTrace(); + } + + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/cache/RefreshTokenCache.java b/src/main/java/im/zhaojun/zfile/common/cache/RefreshTokenCache.java new file mode 100644 index 0000000..bec239e --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/cache/RefreshTokenCache.java @@ -0,0 +1,53 @@ +package im.zhaojun.zfile.common.cache; + +import cn.hutool.cache.Cache; +import cn.hutool.cache.CacheUtil; +import lombok.Data; + +import java.util.Date; + +/** + * 用于存储刷新 Token 信息的缓存 + * + * @author zhaojun + */ +public class RefreshTokenCache { + + private static final Cache cache = CacheUtil.newFIFOCache(100); + + public static void putRefreshTokenInfo(Integer storageId, RefreshTokenInfo lastRefreshTime) { + cache.put(storageId, lastRefreshTime); + } + + public static RefreshTokenInfo getRefreshTokenInfo(Integer storageId) { + return cache.get(storageId); + } + + @Data + public static class RefreshTokenInfo { + + private boolean success; + + private Date lastRefreshTime; + + private String msg; + + + public static RefreshTokenInfo success() { + RefreshTokenInfo info = new RefreshTokenInfo(); + info.setSuccess(true); + info.setLastRefreshTime(new Date()); + return info; + } + + public static RefreshTokenInfo fail(String msg) { + RefreshTokenInfo info = new RefreshTokenInfo(); + info.setSuccess(false); + info.setMsg(msg); + info.setLastRefreshTime(new Date()); + return info; + } + + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/cache/ZFileCache.java b/src/main/java/im/zhaojun/zfile/common/cache/ZFileCache.java new file mode 100644 index 0000000..ce9d116 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/cache/ZFileCache.java @@ -0,0 +1,298 @@ +package im.zhaojun.zfile.common.cache; + +import cn.hutool.cache.impl.CacheObj; +import cn.hutool.core.util.StrUtil; +import im.zhaojun.zfile.admin.model.dto.StorageSourceCacheKey; +import im.zhaojun.zfile.admin.model.entity.StorageSource; +import im.zhaojun.zfile.admin.service.StorageSourceService; +import im.zhaojun.zfile.common.context.StorageSourceContext; +import im.zhaojun.zfile.home.model.dto.SystemConfigDTO; +import im.zhaojun.zfile.home.model.result.FileItemResult; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; + +/** + * ZFile 缓存工具类 + * + * @author zhaojun + */ +@Service("zFileCache") +@Slf4j +public class ZFileCache { + + @Resource + private StorageSourceService storageSourceService; + + @Resource + private StorageSourceContext storageSourceContext; + + /** + * 缓存过期时间 + */ + @Value("${zfile.cache.timeout}") + private long timeout; + + /** + * 缓存自动刷新间隔 + */ + @Value("${zfile.cache.auto-refresh.interval}") + private long autoRefreshInterval; + + /** + * 文件/文件对象缓存. + * + * ConcurrentMap>> + * ConcurrentMap> + * + * storageId: 存储源 ID + * key: 文件夹路径 + * value: 文件夹中内容 + */ + private final ConcurrentMap>> storageSourcesCache = new ConcurrentHashMap<>(); + + /** + * 系统设置缓存 + */ + private SystemConfigDTO systemConfigCache; + + + /** + * 写入缓存 + * + * @param storageId + * 存储源 ID + * + * @param key + * 文件夹路径 + * + * @param value + * 文件夹中列表 + */ + public synchronized void put(Integer storageId, String key, List value) { + getCacheByStorageId(storageId).put(new StorageSourceCacheKey(storageId, key), value); + } + + + /** + * 获取指定存储源, 某个文件夹的名称 + * + * @param storageId + * 存储源 ID + * + * @param key + * 文件夹路径 + * + * @return 存储源中文件夹的内容 + */ + public List get(Integer storageId, String key) { + return getCacheByStorageId(storageId).get(new StorageSourceCacheKey(storageId, key), false); + } + + + /** + * 清空指定存储源的缓存. + * + * @param storageId + * 存储源 ID + */ + public void clear(Integer storageId) { + if (log.isDebugEnabled()) { + log.debug("清空存储源所有缓存, storageId: {}", storageId); + } + getCacheByStorageId(storageId).clear(); + } + + + /** + * 获取指定存储源中已缓存文件夹数量 + * + * @param storageId + * 存储源 ID + * + * @return 已缓存文件夹数量 + */ + public int cacheCount(Integer storageId) { + return getCacheByStorageId(storageId).size(); + } + + + /** + * 指定存储源, 根据文件及文件名查找相关的文件 + * + * @param storageId + * 存储源 ID + * + * @param key + * 搜索键, 可匹配文件夹名称和文件名称. + * + * @return 搜索结果, 包含文件夹和文件. + */ + public List find(Integer storageId, String key) { + return new ArrayList<>(); + } + + + private boolean testMatch(String searchKey, boolean ignoreCase, FileItemResult fileItemResult) { + // 根据是否需要忽略大小写来匹配文件(夹)名 + if (ignoreCase) { + return StrUtil.containsIgnoreCase(fileItemResult.getName(), searchKey); + } else { + return StrUtil.contains(fileItemResult.getName(), searchKey); + } + + } + + + /** + * 获取所有缓存 key (文件夹名称) + * + * @return 所有缓存 key + */ + public Set keySet(Integer storageId) { + Iterator>> cacheObjIterator = getCacheByStorageId(storageId).cacheObjIterator(); + Set keys = new HashSet<>(); + while (cacheObjIterator.hasNext()) { + keys.add(cacheObjIterator.next().getKey().getKey()); + } + return keys; + } + + + /** + * 从缓存中删除指定存储源的某个路径的缓存 + * + * @param storageId + * 存储源 ID + * + * @param key + * 文件夹路径 + */ + public void remove(Integer storageId, String key) { + getCacheByStorageId(storageId).remove(new StorageSourceCacheKey(storageId, key)); + } + + + /** + * 更新缓存中的系统设置 + * + * @param systemConfigCache + * 系统设置 + */ + public void updateConfig(SystemConfigDTO systemConfigCache) { + this.systemConfigCache = systemConfigCache; + } + + + /** + * 从缓存中获取系统设置 + * + * @return 系统设置 + */ + public SystemConfigDTO getConfig() { + return this.systemConfigCache; + } + + + /** + * 清空系统设置缓存 + */ + public void removeConfig() { + this.systemConfigCache = null; + } + + + /** + * 获取指定存储源对应的缓存 + * + * @param storageId + * 存储源 ID + * + * @return 存储源对应的缓存 + */ + private synchronized MyTimedCache> getCacheByStorageId(Integer storageId) { + MyTimedCache> driveCache = storageSourcesCache.get(storageId); + if (driveCache == null) { + driveCache = new MyTimedCache<>(timeout * 1000); + storageSourcesCache.put(storageId, driveCache); + startAutoCacheRefresh(storageId); + } + return driveCache; + } + + + /** + * 获取指定存储源的缓存命中数 + * + * @param storageId + * 存储源 ID + * + * @return 缓存命中数 + */ + public long getHitCount(Integer storageId) { + return getCacheByStorageId(storageId).getHitCount(); + } + + + /** + * 获取指定存储源的缓存未命中数 + * + * @param storageId + * 存储源 ID + * + * @return 缓存未命中数 + */ + public long getMissCount(Integer storageId) { + return getCacheByStorageId(storageId).getMissCount(); + } + + + /** + * 开启缓存自动刷新 + * + * @param storageId + * 存储源 ID + */ + public void startAutoCacheRefresh(Integer storageId) { + if (log.isDebugEnabled()) { + log.debug("开启缓存自动刷新 storageId: {}", storageId); + } + StorageSource storageSource = storageSourceService.findById(storageId); + Boolean autoRefreshCache = storageSource.getAutoRefreshCache(); + if (autoRefreshCache != null && autoRefreshCache) { + MyTimedCache> driveCache = storageSourcesCache.get(storageId); + if (driveCache == null) { + driveCache = new MyTimedCache<>(timeout * 1000); + storageSourcesCache.put(storageId, driveCache); + } + driveCache.schedulePrune(autoRefreshInterval * 1000); + } + } + + + /** + * 停止缓存自动刷新 + * + * @param storageId + * 存储源 ID + */ + public void stopAutoCacheRefresh(Integer storageId) { + if (log.isDebugEnabled()) { + log.debug("停止缓存自动刷新 storageId: {}", storageId); + } + MyTimedCache> driveCache = storageSourcesCache.get(storageId); + if (driveCache != null) { + driveCache.cancelPruneSchedule(); + } + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/config/FlywayDbInitializer.java b/src/main/java/im/zhaojun/zfile/common/config/FlywayDbInitializer.java new file mode 100644 index 0000000..6c200ef --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/config/FlywayDbInitializer.java @@ -0,0 +1 @@ +package im.zhaojun.zfile.common.config; import cn.hutool.core.util.StrUtil; import org.flywaydb.core.Flyway; import org.springframework.context.annotation.Configuration; import javax.annotation.PostConstruct; import javax.annotation.Resource; import javax.sql.DataSource; import java.sql.SQLException; import java.util.Locale; /** * 数据库初始化 * * @author zhaojun */ @Configuration public class FlywayDbInitializer { public static final String[] SUPPORT_DB_TYPE = new String[]{"mysql", "sqlite"}; @Resource private DataSource dataSource; /** * 启动时根据当前数据库类型执行数据库初始化 */ @PostConstruct public void migrateFlyway() { try { String databaseProductName = dataSource.getConnection().getMetaData().getDatabaseProductName(); String dbType = databaseProductName.toLowerCase(Locale.ROOT); // 检查当前数据库类型是否支持 if (!StrUtil.equalsAnyIgnoreCase(dbType, SUPPORT_DB_TYPE)) { throw new RuntimeException("不支持的数据库类型 [" + dbType + "]"); } Flyway load = Flyway.configure().dataSource(dataSource).locations("db/migration-" + dbType).load(); load.migrate(); } catch (SQLException e) { e.printStackTrace(); } } } \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/config/JacksonEnumDeserializer.java b/src/main/java/im/zhaojun/zfile/common/config/JacksonEnumDeserializer.java new file mode 100644 index 0000000..cc7fab6 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/config/JacksonEnumDeserializer.java @@ -0,0 +1,83 @@ +package im.zhaojun.zfile.common.config; + +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.BeanProperty; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.deser.ContextualDeserializer; +import lombok.Setter; +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.jackson.JsonComponent; + +import java.io.IOException; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.Objects; + +/** + * Jackson 枚举反序列化器 + * + * @author zhaojun + */ +@Slf4j +@Setter +@JsonComponent +public class JacksonEnumDeserializer extends JsonDeserializer> implements ContextualDeserializer { + + private Class clazz; + + + /** + * 反序列化操作 + * + * @param jsonParser + * json 解析器 + * + * @param ctx + * 反序列化上下文 + * + * @return 反序列化后的枚举值 + * @throws IOException 反序列化异常 + */ + @Override + public Enum deserialize(JsonParser jsonParser, DeserializationContext ctx) throws IOException { + Class enumType = clazz; + if (Objects.isNull(enumType) || !enumType.isEnum()) { + return null; + } + String text = jsonParser.getText(); + Method method = StringToEnumConverterFactory.getMethod(clazz); + Enum[] enumConstants = (Enum[]) enumType.getEnumConstants(); + + // 将值与枚举对象对应并缓存 + for (Enum e : enumConstants) { + try { + if (Objects.equals(method.invoke(e).toString(), text)) { + return e; + } + } catch (IllegalAccessException | InvocationTargetException ex) { + log.error("获取枚举值错误!!! ", ex); + } + } + return null; + } + + + /** + * 为不同的枚举获取合适的解析器 + * + * @param ctx + * 反序列化上下文 + * + * @param property + * property + */ + @Override + public JsonDeserializer> createContextual(DeserializationContext ctx, BeanProperty property) { + Class rawCls = ctx.getContextualType().getRawClass(); + JacksonEnumDeserializer converter = new JacksonEnumDeserializer(); + converter.setClazz(rawCls); + return converter; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/config/Knife4jConfiguration.java b/src/main/java/im/zhaojun/zfile/common/config/Knife4jConfiguration.java new file mode 100644 index 0000000..1997c4d --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/config/Knife4jConfiguration.java @@ -0,0 +1 @@ +package im.zhaojun.zfile.common.config; import com.github.xiaoymin.knife4j.spring.extension.OpenApiExtensionResolver; import io.swagger.models.auth.In; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.builders.RequestParameterBuilder; import springfox.documentation.service.ApiInfo; import springfox.documentation.service.Contact; import springfox.documentation.service.RequestParameter; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; import java.util.ArrayList; import java.util.List; /** * @author zhaojun */ @Configuration @EnableSwagger2 public class Knife4jConfiguration { private final OpenApiExtensionResolver openApiExtensionResolver; @Autowired public Knife4jConfiguration(OpenApiExtensionResolver openApiExtensionResolver) { this.openApiExtensionResolver = openApiExtensionResolver; } /** * onedrive api docket * * @return docket */ @Bean(value = "onedriveApi") public Docket onedriveApi() { String groupName = "OneDrive 相关"; return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("im.zhaojun.zfile.common.controller.onedrive")) .paths(PathSelectors.regex("/onedrive/.*|/sharepoint/.*")) .build() .groupName(groupName) .extensions(openApiExtensionResolver.buildExtensions(groupName)); } /** * admin api docket * * @return docket */ @Bean(value = "adminApi") public Docket adminApi() { String groupName = "管理员功能"; return new Docket(DocumentationType.SWAGGER_2) .globalRequestParameters(generateRequestParameters()) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("im.zhaojun.zfile.controller.admin")) .paths(PathSelectors.ant("/admin/**")) .build() .groupName(groupName) .extensions(openApiExtensionResolver.buildExtensions(groupName)); } /** * home api docket * * @return docket */ @Bean(value = "homeApi") public Docket homeApi() { String groupName = "用户功能"; return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("im.zhaojun.zfile.controller.home")) .paths(PathSelectors.any()) .build() .groupName(groupName) .extensions(openApiExtensionResolver.buildExtensions(groupName)); } /** * install api info * * @return api info */ @Bean(value = "installApi") public Docket installApi() { String groupName = "初始化功能"; return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("im.zhaojun.zfile.home.install")) .paths(PathSelectors.any()) .build() .groupName(groupName) .extensions(openApiExtensionResolver.buildExtensions(groupName)); } /** * 获取通用的全局参数 * * @return 全局参数列表 */ private List generateRequestParameters(){ RequestParameterBuilder token = new RequestParameterBuilder(); List parameters = new ArrayList<>(); token.name("zfile-token").description("token").in(In.HEADER.toValue()).required(true).build(); parameters.add(token.build()); return parameters; } /** * api 基本信息描述 * * @return ApiInfo */ private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("ZFILE 文档") .description("# 这是 ZFILE Restful 接口文档展示页面") .termsOfServiceUrl("https://www.zfile.vip") .contact(new Contact("zhaojun", "https://zfile.vip", "admin@zfile.vip")) .version("1.0") .build(); } } \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/config/MyBatisPlusConfig.java b/src/main/java/im/zhaojun/zfile/common/config/MyBatisPlusConfig.java new file mode 100644 index 0000000..22c71e6 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/config/MyBatisPlusConfig.java @@ -0,0 +1,37 @@ +package im.zhaojun.zfile.common.config; + +import com.baomidou.mybatisplus.annotation.DbType; +import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; +import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import javax.annotation.Resource; +import javax.sql.DataSource; +import java.sql.SQLException; + +/** + * mybatis-plus 配置类 + * + * @author zhaojun + */ +@Configuration +public class MyBatisPlusConfig { + + @Resource + private DataSource dataSource; + + + /** + * mybatis plus 分页插件配置 + */ + @Bean + public MybatisPlusInterceptor mybatisPlusInterceptor() throws SQLException { + MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); + String databaseProductName = dataSource.getConnection().getMetaData().getDatabaseProductName(); + DbType dbType = DbType.getDbType(databaseProductName); + interceptor.addInnerInterceptor(new PaginationInnerInterceptor(dbType)); + return interceptor; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/config/MybatisEnumTypeHandler.java b/src/main/java/im/zhaojun/zfile/common/config/MybatisEnumTypeHandler.java new file mode 100644 index 0000000..7547a5b --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/config/MybatisEnumTypeHandler.java @@ -0,0 +1,173 @@ +/* + * Copyright (c) 2011-2022, baomidou (jobob@qq.com). + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package im.zhaojun.zfile.common.config; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.baomidou.mybatisplus.annotation.IEnum; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.core.toolkit.ExceptionUtils; +import com.baomidou.mybatisplus.core.toolkit.ReflectionKit; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import org.apache.ibatis.reflection.DefaultReflectorFactory; +import org.apache.ibatis.reflection.MetaClass; +import org.apache.ibatis.reflection.ReflectorFactory; +import org.apache.ibatis.reflection.invoker.Invoker; +import org.apache.ibatis.type.BaseTypeHandler; +import org.apache.ibatis.type.JdbcType; + +import java.lang.reflect.Field; +import java.math.BigDecimal; +import java.sql.CallableStatement; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.Arrays; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import java.util.concurrent.ConcurrentHashMap; + +/** + * 自定义枚举属性转换器 + * + * @author hubin + * @since 2017-10-11 + */ +public class MybatisEnumTypeHandler> extends BaseTypeHandler { + + private static final Map TABLE_METHOD_OF_ENUM_TYPES = new ConcurrentHashMap<>(); + private static final ReflectorFactory REFLECTOR_FACTORY = new DefaultReflectorFactory(); + private final Class enumClassType; + private final Class propertyType; + private final Invoker getInvoker; + + public MybatisEnumTypeHandler(Class enumClassType) { + if (enumClassType == null) { + throw new IllegalArgumentException("Type argument cannot be null"); + } + this.enumClassType = enumClassType; + MetaClass metaClass = MetaClass.forClass(enumClassType, REFLECTOR_FACTORY); + String name = "value"; + if (!IEnum.class.isAssignableFrom(enumClassType)) { + name = findEnumValueFieldName(this.enumClassType).orElseThrow(() -> new IllegalArgumentException(String.format("Could not find @EnumValue in Class: %s.", this.enumClassType.getName()))); + } + this.propertyType = ReflectionKit.resolvePrimitiveIfNecessary(metaClass.getGetterType(name)); + this.getInvoker = metaClass.getGetInvoker(name); + } + + /** + * 查找标记标记EnumValue字段 + * + * @param clazz class + * @return EnumValue字段 + * @since 3.3.1 + */ + public static Optional findEnumValueFieldName(Class clazz) { + if (clazz != null && clazz.isEnum()) { + String className = clazz.getName(); + return Optional.ofNullable(CollectionUtils.computeIfAbsent(TABLE_METHOD_OF_ENUM_TYPES, className, key -> { + Optional fieldOptional = findEnumValueAnnotationField(clazz); + return fieldOptional.map(Field::getName).orElse(null); + })); + } + return Optional.empty(); + } + + private static Optional findEnumValueAnnotationField(Class clazz) { + return Arrays.stream(clazz.getDeclaredFields()).filter(field -> field.isAnnotationPresent(EnumValue.class)).findFirst(); + } + + /** + * 判断是否为MP枚举处理 + * + * @param clazz class + * @return 是否为MP枚举处理 + * @since 3.3.1 + */ + public static boolean isMpEnums(Class clazz) { + return clazz != null && clazz.isEnum() && (IEnum.class.isAssignableFrom(clazz) || findEnumValueFieldName(clazz).isPresent()); + } + + @SuppressWarnings("Duplicates") + @Override + public void setNonNullParameter(PreparedStatement ps, int i, E parameter, JdbcType jdbcType) + throws SQLException { + if (jdbcType == null) { + ps.setObject(i, this.getValue(parameter)); + } else { + // see r3589 + ps.setObject(i, this.getValue(parameter), jdbcType.TYPE_CODE); + } + } + + @Override + public E getNullableResult(ResultSet rs, String columnName) throws SQLException { + Object value = rs.getObject(columnName); + if (null == value && rs.wasNull()) { + return null; + } + return this.valueOf(value); + } + + @Override + public E getNullableResult(ResultSet rs, int columnIndex) throws SQLException { + Object value = rs.getObject(columnIndex, this.propertyType); + if (null == value && rs.wasNull()) { + return null; + } + return this.valueOf(value); + } + + @Override + public E getNullableResult(CallableStatement cs, int columnIndex) throws SQLException { + Object value = cs.getObject(columnIndex, this.propertyType); + if (null == value && cs.wasNull()) { + return null; + } + return this.valueOf(value); + } + + private E valueOf(Object value) { + E[] es = this.enumClassType.getEnumConstants(); + return Arrays.stream(es).filter((e) -> equalsValue(value, getValue(e))).findAny().orElse(null); + } + + /** + * 值比较 + * + * @param sourceValue 数据库字段值 + * @param targetValue 当前枚举属性值 + * @return 是否匹配 + * @since 3.3.0 + */ + protected boolean equalsValue(Object sourceValue, Object targetValue) { + String sValue = StringUtils.toStringTrim(sourceValue); + String tValue = StringUtils.toStringTrim(targetValue); + if (sourceValue instanceof Number && targetValue instanceof Number + && new BigDecimal(sValue).compareTo(new BigDecimal(tValue)) == 0) { + return true; + } + return Objects.equals(sValue, tValue); + } + + private Object getValue(Object object) { + try { + return this.getInvoker.invoke(object, new Object[0]); + } catch (ReflectiveOperationException e) { + throw ExceptionUtils.mpe(e); + } + } +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/config/RestTemplateConfig.java b/src/main/java/im/zhaojun/zfile/common/config/RestTemplateConfig.java new file mode 100644 index 0000000..20baf15 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/config/RestTemplateConfig.java @@ -0,0 +1,79 @@ +package im.zhaojun.zfile.common.config; + +import im.zhaojun.zfile.admin.constant.StorageConfigConstant; +import im.zhaojun.zfile.admin.model.entity.StorageSourceConfig; +import im.zhaojun.zfile.admin.service.StorageSourceConfigService; +import org.apache.http.client.HttpClient; +import org.apache.http.impl.client.HttpClientBuilder; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.HttpHeaders; +import org.springframework.http.client.ClientHttpRequestInterceptor; +import org.springframework.http.client.ClientHttpResponse; +import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; +import org.springframework.http.client.OkHttp3ClientHttpRequestFactory; +import org.springframework.http.converter.StringHttpMessageConverter; +import org.springframework.web.client.RestTemplate; + +import javax.annotation.Resource; +import java.nio.charset.StandardCharsets; +import java.util.Collections; +import java.util.List; + +/** + * restTemplate 相关配置 + * + * @author zhaojun + */ +@Configuration +public class RestTemplateConfig { + + @Resource + private StorageSourceConfigService storageSourceConfigService; + + /** + * OneDrive 请求 RestTemplate. + * 获取 header 中的 storageId 来判断到底是哪个存储源 ID, 在请求头中添加 Bearer: Authorization {token} 信息, 用于 API 认证. + */ + @Bean + public RestTemplate oneDriveRestTemplate() { + RestTemplate restTemplate = new RestTemplate(); + OkHttp3ClientHttpRequestFactory factory = new OkHttp3ClientHttpRequestFactory(); + restTemplate.setRequestFactory(factory); + ClientHttpRequestInterceptor interceptor = (httpRequest, bytes, clientHttpRequestExecution) -> { + HttpHeaders headers = httpRequest.getHeaders(); + Integer storageId = Integer.valueOf(((List)headers.get("storageId")).get(0).toString()); + + StorageSourceConfig accessTokenConfig = + storageSourceConfigService.findByStorageIdAndName(storageId, StorageConfigConstant.ACCESS_TOKEN_KEY); + + String tokenValue = String.format("%s %s", "Bearer", accessTokenConfig.getValue()); + httpRequest.getHeaders().add("Authorization", tokenValue); + return clientHttpRequestExecution.execute(httpRequest, bytes); + }; + restTemplate.setInterceptors(Collections.singletonList(interceptor)); + return restTemplate; + } + + + /** + * restTemplate 设置请求和响应字符集都为 UTF-8, 并设置响应头为 Content-Type: application/text; + */ + @Bean + public RestTemplate restTemplate(){ + HttpComponentsClientHttpRequestFactory httpRequestFactory = new HttpComponentsClientHttpRequestFactory(); + HttpClient httpClient = HttpClientBuilder.create().build(); + httpRequestFactory.setHttpClient(httpClient); + RestTemplate restTemplate = new RestTemplate(httpRequestFactory); + restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8)); + restTemplate.setInterceptors(Collections.singletonList((request, body, execution) -> { + ClientHttpResponse response = execution.execute(request, body); + HttpHeaders headers = response.getHeaders(); + headers.put("Content-Type", Collections.singletonList("application/text")); + return response; + })); + + return restTemplate; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/config/SaTokenConfigure.java b/src/main/java/im/zhaojun/zfile/common/config/SaTokenConfigure.java new file mode 100644 index 0000000..2d61aeb --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/config/SaTokenConfigure.java @@ -0,0 +1 @@ +package im.zhaojun.zfile.common.config; import cn.dev33.satoken.interceptor.SaRouteInterceptor; import cn.dev33.satoken.router.SaRouter; import cn.dev33.satoken.stp.StpUtil; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; /** * SaToken 权限配置, 配置管理员才能访问管理员功能. * * @author zhaojun */ @Configuration public class SaTokenConfigure implements WebMvcConfigurer { /** * 注册权限校验拦截器, 拦截所有 /admin/** 请求, 但登陆相关的接口不需要认证. * @param registry * 拦截器注册器 */ @Override public void addInterceptors(InterceptorRegistry registry) { // 注册路由拦截器,自定义验证规则 registry.addInterceptor(new SaRouteInterceptor((req, res, handler) -> { // 根据路由划分模块,不同模块不同鉴权 SaRouter.match("/admin/**", StpUtil::checkLogin); // 忽略所有登陆相关接口 })).addPathPatterns("/**").excludePathPatterns("/admin/login", "/admin/login/**", "/admin"); } } \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/config/StringToEnumConverterFactory.java b/src/main/java/im/zhaojun/zfile/common/config/StringToEnumConverterFactory.java new file mode 100644 index 0000000..914b73f --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/config/StringToEnumConverterFactory.java @@ -0,0 +1,116 @@ +package im.zhaojun.zfile.common.config; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.baomidou.mybatisplus.annotation.IEnum; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.core.convert.converter.Converter; +import org.springframework.core.convert.converter.ConverterFactory; + +import javax.validation.constraints.NotNull; +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.Arrays; +import java.util.Map; +import java.util.Optional; +import java.util.concurrent.ConcurrentHashMap; + +/** + * String 转枚举通用转换器工厂 + * + * @author zhaojun + */ +@Slf4j +public class StringToEnumConverterFactory implements ConverterFactory> { + + /** + * 存储枚举类型的缓存 + */ + private static final Map, Converter>> CONVERTER_MAP = new ConcurrentHashMap<>(); + + /** + * 枚举类的获取枚举值方法缓存 + */ + private static final Map, Method> TABLE_METHOD_OF_ENUM_TYPES = new ConcurrentHashMap<>(); + + @Override + @SuppressWarnings("unchecked cast") + public > Converter getConverter(Class targetType) { + // 缓存转换器 + Converter converter = (Converter) CONVERTER_MAP.get(targetType); + if (converter == null) { + converter = new StringToEnumConverter<>(targetType); + CONVERTER_MAP.put(targetType, converter); + } + return converter; + } + + static class StringToEnumConverter> implements Converter { + + private final Map enumMap = new ConcurrentHashMap<>(); + + StringToEnumConverter(Class enumType) { + Method method = getMethod(enumType); + T[] enums = enumType.getEnumConstants(); + + // 将值与枚举对象对应并缓存 + for (T e : enums) { + try { + enumMap.put(method.invoke(e).toString(), e); + } catch (IllegalAccessException | InvocationTargetException ex) { + log.error("获取枚举值错误!!! ", ex); + } + } + } + + + @Override + public T convert(@NotNull String source) { + // 获取 + T t = enumMap.get(source); + if (t == null) { + throw new IllegalArgumentException("该字符串找不到对应的枚举对象 字符串:" + source); + } + return t; + } + } + + + public static Method getMethod(Class enumType) { + Method method; + // 找到取值的方法 + if (IEnum.class.isAssignableFrom(enumType)) { + try { + method = enumType.getMethod("getValue"); + } catch (NoSuchMethodException e) { + throw new IllegalArgumentException(String.format("类:%s 找不到 getValue方法", + enumType.getName())); + } + } else { + method = TABLE_METHOD_OF_ENUM_TYPES.computeIfAbsent(enumType, k -> { + Field field = + dealEnumType(enumType).orElseThrow(() -> new IllegalArgumentException(String.format( + "类:%s 找不到 EnumValue注解", enumType.getName()))); + + Class fieldType = field.getType(); + String fieldName = field.getName(); + String methodName = StringUtils.concatCapitalize(boolean.class.equals(fieldType) ? "is" : "get", fieldName); + try { + return enumType.getDeclaredMethod(methodName); + } catch (NoSuchMethodException e) { + e.printStackTrace(); + } + return null; + }); + } + return method; + } + + + private static Optional dealEnumType(Class clazz) { + return clazz.isEnum() ? + Arrays.stream(clazz.getDeclaredFields()).filter(field -> field.isAnnotationPresent(EnumValue.class)).findFirst() : Optional.empty(); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/config/WebMvcConfig.java b/src/main/java/im/zhaojun/zfile/common/config/WebMvcConfig.java new file mode 100644 index 0000000..6bca490 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/config/WebMvcConfig.java @@ -0,0 +1,44 @@ +package im.zhaojun.zfile.common.config; + +import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; +import org.springframework.boot.web.servlet.server.ServletWebServerFactory; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.format.FormatterRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +/** + * ZFile Web 相关配置. + * + * @author zhaojun + */ +@Configuration +public class WebMvcConfig implements WebMvcConfigurer { + + + /** + * 添加自定义枚举格式化器. + * @see im.zhaojun.zfile.home.model.enums.StorageTypeEnum + */ + @Override + public void addFormatters(FormatterRegistry registry) { + registry.addConverterFactory(new StringToEnumConverterFactory()); + } + + + /** + * 支持 url 中传入 <>[\]^`{|} 这些特殊字符. + */ + @Bean + public ServletWebServerFactory webServerFactory() { + TomcatServletWebServerFactory webServerFactory = new TomcatServletWebServerFactory(); + + // 添加对 URL 中特殊符号的支持. + webServerFactory.addConnectorCustomizers(connector -> { + connector.setProperty("relaxedPathChars", "<>[\\]^`{|}%[]"); + connector.setProperty("relaxedQueryChars", "<>[\\]^`{|}%[]"); + }); + return webServerFactory; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/config/ZFileProperties.java b/src/main/java/im/zhaojun/zfile/common/config/ZFileProperties.java new file mode 100644 index 0000000..74679de --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/config/ZFileProperties.java @@ -0,0 +1,21 @@ +package im.zhaojun.zfile.common.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.stereotype.Component; + +/** + * @author zhaojun + * @version V1.0 + * @date 2022-4-26 + */ +@Data +@EnableConfigurationProperties +@Component +@ConfigurationProperties(prefix = "zfile") +public class ZFileProperties { + + private boolean debug; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/constant/ZFileConstant.java b/src/main/java/im/zhaojun/zfile/common/constant/ZFileConstant.java new file mode 100644 index 0000000..569927b --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/constant/ZFileConstant.java @@ -0,0 +1,55 @@ +package im.zhaojun.zfile.common.constant; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; + +/** + * ZFile 常量 + * + * @author zhaojun + */ +@Configuration +public class ZFileConstant { + + public static final Character PATH_SEPARATOR_CHAR = '/'; + + public static final String PATH_SEPARATOR = "/"; + + + /** + * 系统产生的临时文件路径 + */ + public static String TEMP_FILE_PATH = "/.zfile/temp/"; + + + /** + * 最大支持文件大小为 ? MB 的音乐文件解析封面, 歌手等信息. + */ + public static Long AUDIO_MAX_FILE_SIZE_MB = 1L; + + + /** + * 最大支持文本文件大小为 ? KB 的文件内容. + */ + public static Long TEXT_MAX_FILE_SIZE_KB = 100L; + + + @Autowired(required = false) + public void setTmpFilePath(@Value("${zfile.temp.path}") String tmpFilePath) { + ZFileConstant.TEMP_FILE_PATH = tmpFilePath; + } + + + @Autowired(required = false) + public void setAudioMaxFileSizeMb(@Value("${zfile.preview.audio.maxFileSizeMb}") Long maxFileSizeMb) { + ZFileConstant.AUDIO_MAX_FILE_SIZE_MB = maxFileSizeMb; + } + + + @Autowired(required = false) + public void setTextMaxFileSizeMb(@Value("${zfile.preview.text.maxFileSizeKb}") Long maxFileSizeKb) { + ZFileConstant.TEXT_MAX_FILE_SIZE_KB = maxFileSizeKb; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/context/StorageSourceContext.java b/src/main/java/im/zhaojun/zfile/common/context/StorageSourceContext.java new file mode 100644 index 0000000..01fbd43 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/context/StorageSourceContext.java @@ -0,0 +1,290 @@ +package im.zhaojun.zfile.common.context; + +import cn.hutool.core.util.ReflectUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.extra.spring.SpringUtil; +import com.alibaba.fastjson.JSON; +import im.zhaojun.zfile.admin.annoation.StorageParamItem; +import im.zhaojun.zfile.admin.annoation.model.StorageSourceParamDef; +import im.zhaojun.zfile.admin.model.entity.StorageSource; +import im.zhaojun.zfile.admin.model.entity.StorageSourceConfig; +import im.zhaojun.zfile.admin.model.param.IStorageParam; +import im.zhaojun.zfile.admin.service.StorageSourceConfigService; +import im.zhaojun.zfile.admin.service.StorageSourceService; +import im.zhaojun.zfile.common.config.FlywayDbInitializer; +import im.zhaojun.zfile.common.exception.InvalidStorageSourceException; +import im.zhaojun.zfile.common.util.ClassUtils; +import im.zhaojun.zfile.home.model.enums.StorageTypeEnum; +import im.zhaojun.zfile.home.service.base.AbstractBaseFileService; +import im.zhaojun.zfile.home.service.base.RefreshTokenService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.aop.support.AopUtils; +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.context.annotation.DependsOn; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.lang.reflect.Field; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.concurrent.ConcurrentHashMap; + +/** + * 每个存储源对应一个 Service, 其中初始化好了与对象存储的配置信息. + * 此存储源上下文环境用户缓存每个 Service, 避免重复初始化. + * 依赖 {@link FlywayDbInitializer} 初始化数据库后执行. + * + * @author zhaojun + */ +@Component +@DependsOn("flywayDbInitializer") +@Slf4j +public class StorageSourceContext implements ApplicationContextAware { + + /** + * Map + * Map<存储源 ID, 存储源 Service> + */ + private static final Map DRIVES_SERVICE_MAP = new ConcurrentHashMap<>(); + + /** + * 缓存每个存储源参数的字段列表. + */ + Map, Map> PARAM_CLASS_FIELD_NAME_MAP_CACHE = new HashMap<>(); + + /** + * Map<存储源类型, 存储源 Service> + */ + private static Map storageTypeEnumFileServiceMap; + + @Resource + private StorageSourceService storageSourceService; + + @Resource + private StorageSourceConfigService storageSourceConfigService; + + + /** + * 项目启动时, 自动调用数据库已存储的所有存储源进行初始化. + */ + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + storageTypeEnumFileServiceMap = applicationContext.getBeansOfType(AbstractBaseFileService.class); + + List list = storageSourceService.findAllOrderByOrderNum(); + for (StorageSource storageSource : list) { + try { + init(storageSource.getId()); + log.info("启动时初始化存储源成功, 存储源信息: {}", JSON.toJSONString(storageSource)); + } catch (Exception e) { + log.error("启动时初始化存储源失败, 存储源信息: {}", JSON.toJSONString(storageSource), e); + } + } + } + + + /** + * 初始化指定存储源的 Service, 添加到上下文环境中. + * + * @param storageId + * 存储源 ID. + */ + public void init(Integer storageId) { + AbstractBaseFileService baseFileService = getInitStorageBeanByStorageId(storageId); + if (baseFileService != null) { + if (log.isDebugEnabled()) { + log.debug("尝试初始化存储源, storageId: {}", storageId); + } + + baseFileService.setStorageId(storageId); + IStorageParam initParam = getInitParam(storageId, baseFileService); + baseFileService.setParam(initParam); + + baseFileService.init(); + + baseFileService.testConnection(); + if (log.isDebugEnabled()) { + log.debug("初始化存储源成功, storageId: {}", storageId); + } + DRIVES_SERVICE_MAP.put(storageId, baseFileService); + } + } + + /** + * 获取指定存储源的初始化参数. + * + * @param storageId + * 存储源 ID + * + * @return 存储源初始化参数 + */ + private IStorageParam getInitParam(Integer storageId, AbstractBaseFileService baseFileService) { + List storageSourceConfigList = storageSourceConfigService.selectStorageConfigByStorageId(storageId); + + // 获取存储源实现类的实际 Class + Class beanTargetClass = AopUtils.getTargetClass(baseFileService); + // 获取存储源实现类的实际 Class 的泛型参数类型 + Class paramClass = ClassUtils.getClassFirstGenericsParam(beanTargetClass); + String paramClassName = paramClass.getName(); + + IStorageParam iStorageParam = ReflectUtil.newInstance(paramClassName); + + + // 获取存储器参数 key -> 存储器 field 对照关系,如果缓存中有,则从缓存中取. + Map fieldMap = new HashMap<>(); + if (PARAM_CLASS_FIELD_NAME_MAP_CACHE.containsKey(paramClass)) { + fieldMap = PARAM_CLASS_FIELD_NAME_MAP_CACHE.get(paramClass); + } else { + Field[] fields = ReflectUtil.getFieldsDirectly(paramClass, true); + for (Field field : fields) { + String key; + + StorageParamItem storageParamItem = field.getDeclaredAnnotation(StorageParamItem.class); + // 没有注解或注解中没有配置 key 则使用字段名. + if (storageParamItem == null || StrUtil.isEmpty(storageParamItem.key())) { + key = field.getName(); + } else { + key = storageParamItem.key(); + } + + // 如果 map 中包含此 key, 则是父类的, 跳过. + if (fieldMap.containsKey(key)) { + continue; + } + + fieldMap.put(key, field); + } + PARAM_CLASS_FIELD_NAME_MAP_CACHE.put(paramClass, fieldMap); + } + + for (StorageSourceConfig storageSourceConfig : storageSourceConfigList) { + String name = storageSourceConfig.getName(); + String value = storageSourceConfig.getValue(); + try { + Field field = fieldMap.get(name); + ReflectUtil.setFieldValue(iStorageParam, field, value); + } catch (Exception e) { + log.error("初始化存储源参数失败, storageId: {}, name: {}, value: {}", storageId, name, value, e); + } + } + + return iStorageParam; + } + + + /** + * 根据存储源 id 获取对应的 Service. + * + * @param storageId + * 存储源 ID + * + * @return 存储源对应的 Service + */ + public AbstractBaseFileService get(Integer storageId) { + AbstractBaseFileService abstractBaseFileService = DRIVES_SERVICE_MAP.get(storageId); + if (abstractBaseFileService == null) { + throw new InvalidStorageSourceException("无效的存储源, storageId: " + storageId); + } + return abstractBaseFileService; + } + + + /** + * 根据存储源 key 获取对应的 Service. + * + * @param key + * 存储源 key + * + * @return 存储源对应的 Service + */ + public AbstractBaseFileService getByKey(String key) { + return get(storageSourceService.findIdByKey(key)); + } + + + /** + * 销毁指定存储源的 Service. + * + * @param storageId + * 存储源 ID + */ + public void destroy(Integer storageId) { + if (log.isDebugEnabled()) { + log.debug("清理存储源上下文对象, storageId: {}", storageId); + } + DRIVES_SERVICE_MAP.remove(storageId); + } + + + /** + * 根据存储类型获取对应的存储源的参数列表. + * + * @param type + * 存储类型: {@link StorageTypeEnum} + * + * @return 指定类型存储源的参数列表. {@link AbstractBaseFileService#getStorageSourceParamList()} + */ + public static List getStorageSourceParamListByType(StorageTypeEnum type) { + AbstractBaseFileService service = null; + for (AbstractBaseFileService fileService : storageTypeEnumFileServiceMap.values()) { + if (fileService.getStorageTypeEnum() == type) { + service = fileService; + break; + } + } + if (service != null) { + return service.getStorageSourceParamList(); + } + return Collections.emptyList(); + } + + + /** + * 获取指定存储源初始状态的 Service. + * + * @param storageId + * 存储源 ID + * + * @return 存储源对应未初始化的 Service + */ + private AbstractBaseFileService getInitStorageBeanByStorageId(Integer storageId) { + StorageTypeEnum storageTypeEnum = storageSourceService.findStorageTypeById(storageId); + for (AbstractBaseFileService value : storageTypeEnumFileServiceMap.values()) { + if (Objects.equals(value.getStorageTypeEnum(), storageTypeEnum)) { + return SpringUtil.getBean(value.getClass()); + } + } + return null; + } + + + /** + * 获取所有 AccessToken 机制的存储源, 这些存储源都继承类 {@link RefreshTokenService}. + * + * @return 获取所有需要刷新 AccessToken 的存储源. + */ + public Map getAllRefreshTokenStorageSource() { + Map result = new HashMap<>(); + + for (Map.Entry baseFileServiceEntry : DRIVES_SERVICE_MAP.entrySet()) { + Integer storageId = baseFileServiceEntry.getKey(); + AbstractBaseFileService baseFileService = baseFileServiceEntry.getValue(); + // 如果未初始化成功, 则直接跳过 + if (baseFileService.getIsUnInitialized()) { + continue; + } + + if (baseFileService instanceof RefreshTokenService) { + result.put(storageId, (RefreshTokenService) baseFileService); + } + } + + return result; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/controller/onedrive/OneDriveCallbackController.java b/src/main/java/im/zhaojun/zfile/common/controller/callback/OneDriveCallbackController.java similarity index 59% rename from src/main/java/im/zhaojun/zfile/controller/onedrive/OneDriveCallbackController.java rename to src/main/java/im/zhaojun/zfile/common/controller/callback/OneDriveCallbackController.java index 4ef7e09..ccb92de 100644 --- a/src/main/java/im/zhaojun/zfile/controller/onedrive/OneDriveCallbackController.java +++ b/src/main/java/im/zhaojun/zfile/common/controller/callback/OneDriveCallbackController.java @@ -1,8 +1,11 @@ -package im.zhaojun.zfile.controller.onedrive; +package im.zhaojun.zfile.common.controller.callback; -import im.zhaojun.zfile.model.support.OneDriveToken; -import im.zhaojun.zfile.service.impl.OneDriveChinaServiceImpl; -import im.zhaojun.zfile.service.impl.OneDriveServiceImpl; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import im.zhaojun.zfile.admin.model.dto.OneDriveToken; +import im.zhaojun.zfile.home.service.impl.OneDriveChinaServiceImpl; +import im.zhaojun.zfile.home.service.impl.OneDriveServiceImpl; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; @@ -11,8 +14,11 @@ import org.springframework.web.bind.annotation.RequestMapping; import javax.annotation.Resource; /** + * OneDrive 授权回调 + * * @author zhaojun */ +@Api(tags = "OneDrive 认证回调模块") @Controller @RequestMapping(value = {"/onedrive", "/onedirve"}) public class OneDriveCallbackController { @@ -23,15 +29,10 @@ public class OneDriveCallbackController { @Resource private OneDriveChinaServiceImpl oneDriveChinaServiceImpl; - @GetMapping("/callback") - public String oneDriveCallback(String code, Model model) { - OneDriveToken oneDriveToken = oneDriveServiceImpl.getToken(code); - model.addAttribute("accessToken", oneDriveToken.getAccessToken()); - model.addAttribute("refreshToken", oneDriveToken.getRefreshToken()); - return "callback"; - } @GetMapping("/authorize") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "生成 OAuth2 登陆 URL", notes = "生成 OneDrive OAuth2 登陆 URL,用户国际版,家庭版等非世纪互联运营的 OneDrive.") public String authorize() { return "redirect:https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=" + oneDriveServiceImpl.getClientId() + "&response_type=code&redirect_uri=" + oneDriveServiceImpl.getRedirectUri() + @@ -39,7 +40,30 @@ public class OneDriveCallbackController { } + @GetMapping("/callback") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "OAuth2 回调地址", notes = "根据 OAuth2 协议,登录成功后,会返回给网站一个 code,用此 code 去换取 accessToken 和 refreshToken.(oneDrive 会回调此接口)") + public String oneDriveCallback(String code, Model model) { + OneDriveToken oneDriveToken = oneDriveServiceImpl.getToken(code); + model.addAttribute("accessToken", oneDriveToken.getAccessToken()); + model.addAttribute("refreshToken", oneDriveToken.getRefreshToken()); + return "callback"; + } + + + @GetMapping("/china-authorize") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "生成 OAuth2 登陆 URL(世纪互联)", notes = "生成 OneDrive OAuth2 登陆 URL,用于世纪互联版本.") + public String authorizeChina() { + return "redirect:https://login.chinacloudapi.cn/common/oauth2/v2.0/authorize?client_id=" + oneDriveChinaServiceImpl.getClientId() + + "&response_type=code&redirect_uri=" + oneDriveChinaServiceImpl.getRedirectUri() + + "&scope=" + oneDriveChinaServiceImpl.getScope(); + } + + @GetMapping("/china-callback") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "OAuth2 回调地址(世纪互联)", notes = "根据 OAuth2 协议,登录成功后,会返回给网站一个 code,用此 code 去换取 accessToken 和 refreshToken.(oneDrive 会回调此接口)") public String oneDriveChinaCallback(String code, Model model) { OneDriveToken oneDriveToken = oneDriveChinaServiceImpl.getToken(code); model.addAttribute("accessToken", oneDriveToken.getAccessToken()); @@ -47,11 +71,4 @@ public class OneDriveCallbackController { return "callback"; } - @GetMapping("/china-authorize") - public String authorizeChina() { - return "redirect:https://login.chinacloudapi.cn/common/oauth2/v2.0/authorize?client_id=" + oneDriveChinaServiceImpl.getClientId() + - "&response_type=code&redirect_uri=" + oneDriveChinaServiceImpl.getRedirectUri() + - "&scope=" + oneDriveChinaServiceImpl.getScope(); - } - -} +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/controller/download/ProxyDownloadController.java b/src/main/java/im/zhaojun/zfile/common/controller/download/ProxyDownloadController.java new file mode 100644 index 0000000..24f30c2 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/controller/download/ProxyDownloadController.java @@ -0,0 +1,80 @@ +package im.zhaojun.zfile.common.controller.download; + +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.github.xiaoymin.knife4j.annotations.ApiSort; +import im.zhaojun.zfile.common.context.StorageSourceContext; +import im.zhaojun.zfile.common.exception.StorageSourceNotSupportProxyUploadException; +import im.zhaojun.zfile.common.util.ProxyDownloadUrlUtils; +import im.zhaojun.zfile.home.service.base.AbstractBaseFileService; +import im.zhaojun.zfile.home.service.base.ProxyTransferService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.util.AntPathMatcher; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.servlet.HandlerMapping; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.beans.Beans; + +/** + * 服务端代理下载 Controller + * + * @author zhaojun + */ +@Api(tags = "服务端代理下载") +@ApiSort(6) +@Controller +public class ProxyDownloadController { + + @Resource + private StorageSourceContext storageSourceContext; + + @Resource + private HttpServletRequest httpServletRequest; + + + @GetMapping("/pd/{storageKey}/**") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "下载本地存储源的文件", notes = "因第三方存储源都有下载地址,本接口提供本地存储的下载地址的处理, 返回文件流进行下载.") + @ApiImplicitParams({ + @ApiImplicitParam(paramType = "path", name = "storageKey", value = "存储源 id"), + @ApiImplicitParam(paramType = "query", name = "type", + value = "下载类型: download(不论什么格式的文件都进行下载操作), " + + "default(使用浏览器默认处理,浏览器支持预览的格式,则进行预览,不支持的则进行下载)", + example = "download") + }) + @ResponseBody + public ResponseEntity downAttachment(@PathVariable("storageKey") String storageKey, String signature) { + // 获取下载文件路径 + String path = (String) httpServletRequest.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE); + String bestMatchPattern = (String) httpServletRequest.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE); + AntPathMatcher apm = new AntPathMatcher(); + String filePath = apm.extractPathWithinPattern(bestMatchPattern, path); + + AbstractBaseFileService storageServiceByKey = storageSourceContext.getByKey(storageKey); + + // 如果不是 ProxyTransferService, 则返回错误信息. + if (!Beans.isInstanceOf(storageServiceByKey, ProxyTransferService.class)) { + throw new StorageSourceNotSupportProxyUploadException("存储类型异常,不支持上传."); + } + + // 进行上传. + ProxyTransferService proxyDownloadService = (ProxyTransferService) storageServiceByKey; + + Integer storageId = proxyDownloadService.getStorageId(); + boolean valid = ProxyDownloadUrlUtils.validSignatureExpired(storageId, filePath, signature); + if (!valid) { + throw new IllegalArgumentException("签名无效或下载地址已过期."); + } + + return proxyDownloadService.downloadToStream(filePath); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/controller/front/FrontIndexController.java b/src/main/java/im/zhaojun/zfile/common/controller/front/FrontIndexController.java new file mode 100644 index 0000000..013a980 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/controller/front/FrontIndexController.java @@ -0,0 +1,25 @@ +package im.zhaojun.zfile.common.controller.front; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 处理前端首页 Controller + * + * @author zhaojun + */ +@Controller +public class FrontIndexController { + + /** + * 所有未找到的页面都跳转到首页, 用户解决 vue history 直接访问 404 的问题 + * + * @return 转发到 /index.html + */ + @RequestMapping(value = "/**/{[path:[^\\.]*}") + public String redirect() { + // Forward to home page so that route is preserved. + return "forward:/"; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/controller/onedrive/SharePointHelperController.java b/src/main/java/im/zhaojun/zfile/common/controller/onedrive/SharePointHelperController.java new file mode 100644 index 0000000..b22a339 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/controller/onedrive/SharePointHelperController.java @@ -0,0 +1,292 @@ +package im.zhaojun.zfile.common.controller.onedrive; + +import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpResponse; +import cn.hutool.http.HttpUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import im.zhaojun.zfile.home.model.request.sharepoint.SharePointSearchSitesRequest; +import im.zhaojun.zfile.home.model.request.sharepoint.SharePointSiteListsRequest; +import im.zhaojun.zfile.admin.model.result.sharepoint.SharepointSite; +import im.zhaojun.zfile.admin.model.result.sharepoint.SharepointSiteList; +import im.zhaojun.zfile.home.model.request.SharePointInfoRequest; +import im.zhaojun.zfile.common.util.AjaxJson; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.validation.Valid; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import java.util.Objects; + +/** + * SharePoint 工具类 + * + * @author zhaojun + */ +@Api(tags = "SharePoint 工具辅助模块") +@Controller +@RequestMapping("/sharepoint") +public class SharePointHelperController { + + private static final String SHAREPOINT_LIST_TYPE_EVENT = "事件"; + + private static final String SHAREPOINT_LIST_TYPE_DOCUMENT = "文档"; + + + @PostMapping("/getSites") + @ResponseBody + @ApiOperationSupport(order = 1) + @ApiOperation(value = "获取网站列表") + public AjaxJson> getSites(@Valid @RequestBody SharePointSearchSitesRequest searchSitesRequest) { + List sites = new ArrayList<>(); + + String requestUrl = getSearchSiteUrlByType(searchSitesRequest.getType()); + + // 构建请求认证 Token 信息 + String tokenValue = String.format("%s %s", "Bearer", searchSitesRequest.getAccessToken()); + HashMap headers = new HashMap<>(); + headers.put("Authorization", tokenValue); + + // 请求接口 + HttpRequest getRequest = HttpUtil.createGet(requestUrl); + getRequest.form("search", " "); + HttpResponse execute = getRequest.addHeaders(headers).execute(); + String body = execute.body(); + if (execute.getStatus() != HttpStatus.OK.value()) { + throw new RuntimeException("自动获取网站列表失败:" + body); + } + + // 解析前缀 + JSONObject rootObject = JSONObject.parseObject(body); + JSONArray valueArray = rootObject.getJSONArray("value"); + for (int i = 0; i < valueArray.size(); i++) { + SharepointSite sharepointSite = valueArray.getObject(i, SharepointSite.class); + sites.add(sharepointSite); + } + + return AjaxJson.getSuccessData(sites); + } + + + @PostMapping("/getSiteLists") + @ResponseBody + @ApiOperationSupport(order = 2) + @ApiOperation(value = "获取网站下的子目录") + public AjaxJson> getSites(@Valid @RequestBody SharePointSiteListsRequest sharePointSiteListsRequest) { + List sites = new ArrayList<>(); + + String siteId = sharePointSiteListsRequest.getSiteId(); + + String[] siteIdSplit = siteId.split(","); + if (siteIdSplit.length > 1) { + siteId = siteIdSplit[1]; + } + + String requestUrl = getSiteListsUrlByType(sharePointSiteListsRequest.getType(), siteId); + + // 构建请求认证 Token 信息 + String tokenValue = String.format("%s %s", "Bearer", sharePointSiteListsRequest.getAccessToken()); + HashMap headers = new HashMap<>(); + headers.put("Authorization", tokenValue); + + // 请求接口 + HttpRequest getRequest = HttpUtil.createGet(requestUrl); + HttpResponse execute = getRequest.addHeaders(headers).execute(); + String body = execute.body(); + if (execute.getStatus() != HttpStatus.OK.value()) { + throw new RuntimeException("自动获取网站子目录列表失败:" + body); + } + + // 解析前缀 + JSONObject rootObject = JSONObject.parseObject(body); + JSONArray valueArray = rootObject.getJSONArray("value"); + for (int i = 0; i < valueArray.size(); i++) { + SharepointSiteList sharepointSiteList = valueArray.getObject(i, SharepointSiteList.class); + // 如果是事件目录,则跳过 + if (Objects.equals(SHAREPOINT_LIST_TYPE_EVENT, sharepointSiteList.getDisplayName())) { + continue; + } + + // 如果是文档类型,则改名为"默认文档" + if (Objects.equals(SHAREPOINT_LIST_TYPE_DOCUMENT, sharepointSiteList.getDisplayName())) { + sharepointSiteList.setDisplayName("默认文档"); + } + sites.add(sharepointSiteList); + } + sites.sort(Comparator.comparing(SharepointSiteList::getCreatedDateTime)); + return AjaxJson.getSuccessData(sites); + } + + + @PostMapping("/getDomainPrefix") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "获取域名前缀") + @ResponseBody + public AjaxJson getDomainPrefix(@RequestBody SharePointInfoRequest sharePointInfoRequest) { + String host = ""; + + // 判断是标准版还是世纪互联版 + if (Objects.equals(sharePointInfoRequest.getType(), "Standard")) { + host = "graph.microsoft.com"; + } else if (Objects.equals(sharePointInfoRequest.getType(), "China")) { + host = "microsoftgraph.chinacloudapi.cn"; + } + + // 请求 URL + String requestUrl = StrUtil.format("https://{}/v1.0/sites/root", host); + + // 构建请求认证 Token 信息 + String tokenValue = String.format("%s %s", "Bearer", sharePointInfoRequest.getAccessToken()); + HashMap headers = new HashMap<>(); + headers.put("Authorization", tokenValue); + + // 请求接口 + HttpRequest getRequest = HttpUtil.createGet(requestUrl); + HttpResponse execute = getRequest.addHeaders(headers).execute(); + String body = execute.body(); + if (execute.getStatus() != HttpStatus.OK.value()) { + return AjaxJson.getError(body); + } + + // 解析前缀 + JSONObject jsonObject = JSONObject.parseObject(body); + String hostname = jsonObject.getJSONObject("siteCollection").getString("hostname"); + String domainPrefix = StrUtil.subBefore(hostname, ".sharepoint", false); + return AjaxJson.getSuccessData(domainPrefix); + } + + + @PostMapping("/getSiteId") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "获取 SiteId") + @ResponseBody + public AjaxJson getSiteId(@RequestBody SharePointInfoRequest sharePointInfoRequest) { + + // 判断必填参数 + if (sharePointInfoRequest == null || sharePointInfoRequest.getAccessToken() == null || sharePointInfoRequest.getSiteName() == null) { + return AjaxJson.getError("参数不全"); + } + + String host = ""; + + // 判断是标准版还是世纪互联版 + if (Objects.equals(sharePointInfoRequest.getType(), "Standard")) { + host = "graph.microsoft.com"; + sharePointInfoRequest.setDomainType("com"); + } else if (Objects.equals(sharePointInfoRequest.getType(), "China")) { + host = "microsoftgraph.chinacloudapi.cn"; + sharePointInfoRequest.setDomainType("cn"); + } else { + return AjaxJson.getError("参数不全"); + } + + // 构建请求认证 Token 信息 + String tokenValue = String.format("%s %s", "Bearer", sharePointInfoRequest.getAccessToken()); + HashMap authorizationHeaders = new HashMap<>(); + authorizationHeaders.put("Authorization", tokenValue); + + + // 如果没有域名前缀, 则先获取 + if (sharePointInfoRequest.getDomainPrefix() == null || sharePointInfoRequest.getDomainType() == null) { + String requestUrl = StrUtil.format("https://{}/v1.0/sites/root", host); + HttpRequest getRequest = HttpUtil.createGet(requestUrl); + HttpResponse execute = getRequest.addHeaders(authorizationHeaders).execute(); + String body = execute.body(); + if (execute.getStatus() != HttpStatus.OK.value()) { + return AjaxJson.getError(body); + } + JSONObject jsonObject = JSONObject.parseObject(body); + String hostname = jsonObject.getJSONObject("siteCollection").getString("hostname"); + String domainPrefix = StrUtil.subBefore(hostname, ".sharepoint", false); + sharePointInfoRequest.setDomainPrefix(domainPrefix); + } + + + if (StrUtil.isEmpty(sharePointInfoRequest.getSiteType())) { + sharePointInfoRequest.setSiteType("/sites/"); + } + + // 请求接口 + String requestUrl = StrUtil.format("https://{}/v1.0/sites/{}.sharepoint.{}:/{}/{}", host, + sharePointInfoRequest.getDomainPrefix(), + sharePointInfoRequest.getDomainType(), + sharePointInfoRequest.getSiteType(), + sharePointInfoRequest.getSiteName()); + HttpRequest getRequest = HttpUtil.createGet(requestUrl); + HttpResponse execute = getRequest.addHeaders(authorizationHeaders).execute(); + String body = execute.body(); + + // 解析数据 + if (execute.getStatus() != HttpStatus.OK.value()) { + return AjaxJson.getError(body); + } + JSONObject jsonObject = JSONObject.parseObject(body); + return AjaxJson.getSuccessData(jsonObject.getString("id")); + } + + + /** + * 根据类型获取 API 地址 + * + * @param type + * 网站类型: + * Standard:标准版 + * China:世纪互联版 + * + * @return API 地址 + */ + private String getHostByType(String type) { + // 判断是标准版还是世纪互联版 + if (Objects.equals(type, "Standard")) { + return "graph.microsoft.com"; + } else if (Objects.equals(type, "China")) { + return "microsoftgraph.chinacloudapi.cn"; + } else { + throw new RuntimeException("不支持的类型"); + } + } + + + /** + * 获取搜索网站请求 URL + * + * @param type + * 网站类型: + * Standard:标准版 + * China:世纪互联版 + * + * @return 搜索网站请求 URL + */ + private String getSearchSiteUrlByType(String type) { + String hostByType = getHostByType(type); + return StrUtil.format("https://{}/v1.0/sites", hostByType); + } + + + /** + * 获取搜索网站请求 URL + * + * @param type + * 网站类型: + * Standard:标准版 + * China:世纪互联版 + * + * @return 搜索网站请求 URL + */ + private String getSiteListsUrlByType(String type, String siteId) { + String hostByType = getHostByType(type); + return StrUtil.format("https://{}/v1.0/sites/{}/lists",hostByType, siteId); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/controller/s3/S3HelperController.java b/src/main/java/im/zhaojun/zfile/common/controller/s3/S3HelperController.java new file mode 100644 index 0000000..11729f5 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/controller/s3/S3HelperController.java @@ -0,0 +1,65 @@ +package im.zhaojun.zfile.common.controller.s3; + +import cn.hutool.core.util.StrUtil; +import com.amazonaws.auth.AWSStaticCredentialsProvider; +import com.amazonaws.auth.BasicAWSCredentials; +import com.amazonaws.client.builder.AwsClientBuilder; +import com.amazonaws.services.s3.AmazonS3; +import com.amazonaws.services.s3.AmazonS3ClientBuilder; +import com.amazonaws.services.s3.model.Bucket; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import im.zhaojun.zfile.common.util.AjaxJson; +import im.zhaojun.zfile.admin.model.request.s3.GetS3BucketListRequest; +import im.zhaojun.zfile.admin.model.result.s3.S3BucketNameResult; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.validation.Valid; +import java.util.ArrayList; +import java.util.List; + +/** + * S3 工具辅助 + * + * @author zhaojun + */ +@Api(tags = "S3 工具辅助模块") +@Controller +@RequestMapping("/s3") +public class S3HelperController { + + @PostMapping("/getBuckets") + @ResponseBody + @ApiOperationSupport(order = 1) + @ApiOperation(value = "获取 S3 存储器列表") + public AjaxJson> getBucketNames(@Valid @RequestBody GetS3BucketListRequest getS3BucketListRequest) { + List bucketNameList = new ArrayList<>(); + String accessKey = getS3BucketListRequest.getAccessKey(); + String secretKey = getS3BucketListRequest.getSecretKey(); + String endPoint = getS3BucketListRequest.getEndPoint(); + String region = getS3BucketListRequest.getRegion(); + + if (StrUtil.isEmpty(region) && StrUtil.contains(endPoint, '.')) { + region = endPoint.split("\\.")[1]; + } + + BasicAWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey); + AmazonS3 amazonS3 = AmazonS3ClientBuilder.standard() + .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(endPoint, region)) + .withCredentials(new AWSStaticCredentialsProvider(credentials)).build(); + + List buckets = amazonS3.listBuckets(); + for (Bucket bucket : buckets) { + S3BucketNameResult s3BucketNameResult = new S3BucketNameResult(bucket.getName(), bucket.getCreationDate()); + bucketNameList.add(s3BucketNameResult); + } + + return AjaxJson.getSuccessData(bucketNameList); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/controller/upload/ProxyUploadController.java b/src/main/java/im/zhaojun/zfile/common/controller/upload/ProxyUploadController.java new file mode 100644 index 0000000..b36c80c --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/controller/upload/ProxyUploadController.java @@ -0,0 +1,63 @@ +package im.zhaojun.zfile.common.controller.upload; + +import im.zhaojun.zfile.common.context.StorageSourceContext; +import im.zhaojun.zfile.common.util.AjaxJson; +import im.zhaojun.zfile.home.service.base.AbstractBaseFileService; +import im.zhaojun.zfile.home.service.base.ProxyTransferService; +import org.springframework.util.AntPathMatcher; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.servlet.HandlerMapping; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.beans.Beans; +import java.io.IOException; + +/** + * 服务端代理上传 Controller + * + * @author zhaojun + */ +@RestController +public class ProxyUploadController { + + @Resource + private StorageSourceContext storageSourceContext; + + @Resource + private HttpServletRequest httpServletRequest; + + + @PostMapping("/file/upload/{storageKey}/**") + @ResponseBody + public AjaxJson upload(@RequestParam MultipartFile file, @PathVariable("storageKey") String storageKey) throws IOException { + if (file == null || file.isEmpty()) { + return AjaxJson.getError("文件为空,无法上传."); + } + + // 获取上传路径 + String path = (String) httpServletRequest.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE); + String bestMatchPattern = (String) httpServletRequest.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE); + AntPathMatcher apm = new AntPathMatcher(); + String filePath = apm.extractPathWithinPattern(bestMatchPattern, path); + + AbstractBaseFileService storageServiceByKey = storageSourceContext.getByKey(storageKey); + + // 如果不是 ProxyTransferService, 则返回错误信息. + if (!Beans.isInstanceOf(storageServiceByKey, ProxyTransferService.class)) { + return AjaxJson.getError("存储类型异常,不支持上传."); + } + + + // 进行上传. + ProxyTransferService proxyUploadService = (ProxyTransferService) storageServiceByKey; + proxyUploadService.uploadFile(filePath, file.getInputStream()); + return AjaxJson.getSuccess(); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/exception/DisableProxyDownloadException.java b/src/main/java/im/zhaojun/zfile/common/exception/DisableProxyDownloadException.java new file mode 100644 index 0000000..b537702 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/exception/DisableProxyDownloadException.java @@ -0,0 +1,10 @@ +package im.zhaojun.zfile.common.exception; + +/** + * 禁止服务器代理下载异常 + * + * @author zhaojun + */ +public class DisableProxyDownloadException extends RuntimeException { + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/exception/FileAccessException.java b/src/main/java/im/zhaojun/zfile/common/exception/FileAccessException.java new file mode 100644 index 0000000..928fa23 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/exception/FileAccessException.java @@ -0,0 +1,31 @@ +package im.zhaojun.zfile.common.exception; + +/** + * 文件权限异常 + * + * @author zhaojun + */ +public class FileAccessException extends RuntimeException { + + private static final long serialVersionUID = 1L; + + public FileAccessException() { + } + + public FileAccessException(String message) { + super(message); + } + + public FileAccessException(String message, Throwable cause) { + super(message, cause); + } + + public FileAccessException(Throwable cause) { + super(cause); + } + + public FileAccessException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/exception/FileUploadException.java b/src/main/java/im/zhaojun/zfile/common/exception/FileUploadException.java new file mode 100644 index 0000000..5323598 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/exception/FileUploadException.java @@ -0,0 +1,27 @@ +package im.zhaojun.zfile.common.exception; + +import im.zhaojun.zfile.home.model.enums.StorageTypeEnum; +import lombok.Getter; + +/** + * 文件上传异常 + * + * @author zhaojun + */ +@Getter +public class FileUploadException extends RuntimeException { + + private final StorageTypeEnum storageTypeEnum; + + private final Integer storageId; + + private final String path; + + public FileUploadException(StorageTypeEnum storageTypeEnum, Integer storageId, String path, Throwable cause) { + super(cause); + this.storageTypeEnum = storageTypeEnum; + this.path = path; + this.storageId = storageId; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/exception/GlobalException.java b/src/main/java/im/zhaojun/zfile/common/exception/GlobalException.java new file mode 100644 index 0000000..bba9bdb --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/exception/GlobalException.java @@ -0,0 +1 @@ +package im.zhaojun.zfile.common.exception; import cn.dev33.satoken.exception.NotLoginException; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import im.zhaojun.zfile.admin.exception.ForbidFileOperationException; import im.zhaojun.zfile.admin.exception.StorageSourceAutoConfigCorsException; import im.zhaojun.zfile.common.exception.file.operator.GetFileInfoException; import im.zhaojun.zfile.common.exception.file.operator.ProxyDownloadFileException; import im.zhaojun.zfile.common.util.AjaxJson; import im.zhaojun.zfile.common.util.RequestHolder; import lombok.extern.slf4j.Slf4j; import org.apache.catalina.connector.ClientAbortException; import org.springframework.http.HttpStatus; import org.springframework.http.converter.HttpMessageNotReadableException; import org.springframework.validation.BindException; import org.springframework.validation.BindingResult; import org.springframework.web.HttpMediaTypeNotAcceptableException; import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseStatus; import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.util.HashMap; import java.util.Map; /** * 全局异常处理 * * @author zhaojun */ @ControllerAdvice @Slf4j public class GlobalException { @ExceptionHandler({IllegalDownloadLinkException.class}) @ResponseBody @ResponseStatus(HttpStatus.FORBIDDEN) public AjaxJson getFileInfoException(IllegalDownloadLinkException e) { return AjaxJson.getError(e.getMessage()); } @ExceptionHandler({GetFileInfoException.class}) @ResponseBody @ResponseStatus(HttpStatus.BAD_REQUEST) public AjaxJson getFileInfoException(GetFileInfoException e) { log.error("获取文件信息异常 {}. 存储源 ID: {}, 文件路径: {}", e.getMessage(), e.getStorageId(), e.getPathAndName()); return AjaxJson.getError("获取文件信息异常, 请联系管理员"); } @ExceptionHandler({ProxyDownloadFileException.class}) @ResponseBody @ResponseStatus(HttpStatus.BAD_REQUEST) public AjaxJson proxyDownloadFileException(ProxyDownloadFileException e) { log.error("代理下载文件异常 {}. 存储源 ID: {}, 下载路径: {}", e.getMessage(), e.getStorageId(), e.getPathAndName()); return AjaxJson.getError("下载文件异常, 请联系管理员!"); } @ExceptionHandler({LoginVerifyException.class}) @ResponseBody @ResponseStatus(HttpStatus.FORBIDDEN) public AjaxJson loginVerifyException(LoginVerifyException e) { return AjaxJson.getError(e.getMessage()); } @ExceptionHandler({StorageSourceNotSupportProxyUploadException.class}) @ResponseBody @ResponseStatus(HttpStatus.BAD_REQUEST) public AjaxJson storageSourceNotSupportProxyUploadException(StorageSourceNotSupportProxyUploadException e) { return AjaxJson.getError("非法操作, 当前存储源不支持此方式上传."); } @ExceptionHandler({DisableProxyDownloadException.class}) @ResponseBody @ResponseStatus(HttpStatus.BAD_REQUEST) public AjaxJson disableProxyDownloadException(DisableProxyDownloadException e) { return AjaxJson.getError("非法操作, 当前文件不支持此类下载方式."); } @ExceptionHandler({UnsupportedOperationException.class}) @ResponseBody @ResponseStatus(HttpStatus.BAD_REQUEST) public AjaxJson handleFileUploadException(UnsupportedOperationException e) { return AjaxJson.getError(e.getMessage()); } @ExceptionHandler({FileUploadException.class}) @ResponseBody @ResponseStatus(HttpStatus.UNAUTHORIZED) public AjaxJson handleFileUploadException(FileUploadException e) { if (log.isDebugEnabled()) { log.debug("上传文件失败: 存储类型: {}, 存储源 id: {}, 存储源路径: {}", e.getStorageTypeEnum(), e.getStorageId(), e.getPath(), e); } return AjaxJson.getError("上传失败"); } @ExceptionHandler({FileAccessException.class}) @ResponseBody @ResponseStatus(HttpStatus.UNAUTHORIZED) public AjaxJson handleFileAccessException(FileAccessException e) { return AjaxJson.getError(e.getMessage()); } @ExceptionHandler({HttpMessageNotReadableException.class}) @ResponseBody @ResponseStatus(HttpStatus.BAD_REQUEST) public AjaxJson handlerHttpMessageNotReadableException(HttpMessageNotReadableException e) { return AjaxJson.getBadRequestError("请求参数不合法"); } @ExceptionHandler({NotEnabledStorageSourceException.class}) @ResponseStatus(HttpStatus.FORBIDDEN) @ResponseBody public AjaxJson notEnabledDrive() { return AjaxJson.getError("存储源已关闭"); } @ExceptionHandler({NotExistFileException.class}) @ResponseBody public AjaxJson notExistFile() { return AjaxJson.getError("文件不存在"); } /** * 捕获 ClientAbortException 异常, 不做任何处理, 防止出现大量堆栈日志输出, 此异常不影响功能. */ @ExceptionHandler({HttpMediaTypeNotAcceptableException.class, ClientAbortException.class}) @ResponseBody @ResponseStatus public void clientAbortException() { // if (log.isDebugEnabled()) { // log.debug("出现了断开异常:", ex); // } } @ExceptionHandler(value = {MethodArgumentNotValidException.class, BindException.class}) @ResponseBody public AjaxJson handleValidException(Exception e) { BindingResult bindingResult = null; if (e instanceof MethodArgumentNotValidException) { bindingResult = ((MethodArgumentNotValidException) e).getBindingResult(); } else if (e instanceof BindException) { bindingResult = ((BindException) e).getBindingResult(); } Map errorMap = new HashMap<>(16); bindingResult.getFieldErrors().forEach((fieldError) -> errorMap.put(fieldError.getField(), fieldError.getDefaultMessage()) ); return new AjaxJson(400, "非法参数 !", errorMap); } /** * 密码校验异常 */ @ExceptionHandler({PasswordVerifyException.class}) @ResponseBody @ResponseStatus public AjaxJson passwordVerifyException(PasswordVerifyException ex) { return AjaxJson.get(ex.getCode(), ex.getMessage()); } /** * 无效的存储源异常 */ @ExceptionHandler({InvalidStorageSourceException.class}) @ResponseBody @ResponseStatus(HttpStatus.BAD_REQUEST) public AjaxJson invalidDriveException() { return AjaxJson.getBadRequestError("此存储源不存在或初始化失败, 请检查后台参数配置"); } /** * 文件预览异常 */ @ExceptionHandler({PreviewException.class}) @ResponseBody @ResponseStatus public AjaxJson previewException(PreviewException ex) { return AjaxJson.getError(ex.getMessage()); } /** * 初始化异常 */ @ExceptionHandler({InitializeStorageSourceException.class}) @ResponseBody @ResponseStatus public AjaxJson initializeException(InitializeStorageSourceException ex) { return AjaxJson.getError(ex.getMessage()); } /** * 初始化时自动设置 cors 异常 */ @ExceptionHandler({StorageSourceAutoConfigCorsException.class}) @ResponseBody @ResponseStatus public AjaxJson autoConfigCorsException(StorageSourceAutoConfigCorsException ex) { log.error("跨域配置失败, 存储源初始化信息 {}, 异常信息: ", JSON.toJSON(ex.getIStorageParam()), ex); return AjaxJson.getError(ex.getMessage()); } /** * 无权限时,进行文件操作异常. */ @ExceptionHandler({ForbidFileOperationException.class}) @ResponseBody @ResponseStatus public AjaxJson autoConfigCorsException(ForbidFileOperationException ex) { log.error("存储源 {} 拦截非法的文件操作 {}", ex.getStorageId(), ex.getAction()); return AjaxJson.getError("非法操作"); } @ExceptionHandler @ResponseBody @ResponseStatus public AjaxJson extraExceptionHandler(Exception e) { log.error(e.getMessage(), e); if (e.getClass() == Exception.class) { return AjaxJson.getError("系统异常, 请联系管理员"); } else { return AjaxJson.getError(e.getMessage()); } } /** * 登录异常拦截器 */ @ExceptionHandler(NotLoginException.class) @ResponseStatus(HttpStatus.UNAUTHORIZED) @ResponseBody public AjaxJson handlerNotLoginException(NotLoginException e) { HttpServletRequest request = RequestHolder.getRequest(); String axiosRequest = request.getHeader("axios-request"); if (StrUtil.isNotEmpty(axiosRequest)){ return AjaxJson.getNotLogin(); } try { RequestHolder.getResponse().sendRedirect("/login"); } catch (IOException ex) { throw new RuntimeException(ex); } return null; } } \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/exception/IllegalDownloadLinkException.java b/src/main/java/im/zhaojun/zfile/common/exception/IllegalDownloadLinkException.java new file mode 100644 index 0000000..6a8d1ee --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/exception/IllegalDownloadLinkException.java @@ -0,0 +1,21 @@ +package im.zhaojun.zfile.common.exception; + +/** + * 非法使用下载链接异常. + * + * @author zhaojun + */ +public class IllegalDownloadLinkException extends RuntimeException { + + public IllegalDownloadLinkException() { + super(); + } + + public IllegalDownloadLinkException(String message) { + super(message); + } + + public IllegalDownloadLinkException(String message, Throwable cause) { + super(message, cause); + } +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/exception/InitializeStorageSourceException.java b/src/main/java/im/zhaojun/zfile/common/exception/InitializeStorageSourceException.java new file mode 100644 index 0000000..1724821 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/exception/InitializeStorageSourceException.java @@ -0,0 +1,30 @@ +package im.zhaojun.zfile.common.exception; + +/** + * 存储源初始化异常 + * + * @author zhaojun + */ +public class InitializeStorageSourceException extends RuntimeException { + + private static final long serialVersionUID = -1920550904063819880L; + + public InitializeStorageSourceException() { + } + + public InitializeStorageSourceException(String message) { + super(message); + } + + public InitializeStorageSourceException(String message, Throwable cause) { + super(message, cause); + } + + public InitializeStorageSourceException(Throwable cause) { + super(cause); + } + + public InitializeStorageSourceException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/exception/InstallSystemException.java b/src/main/java/im/zhaojun/zfile/common/exception/InstallSystemException.java new file mode 100644 index 0000000..239fc1a --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/exception/InstallSystemException.java @@ -0,0 +1,30 @@ +package im.zhaojun.zfile.common.exception; + +/** + * 系统初始化异常 + * + * @author zhaojun + */ +public class InstallSystemException extends RuntimeException { + + public InstallSystemException() { + super(); + } + + public InstallSystemException(String message) { + super(message); + } + + public InstallSystemException(String message, Throwable cause) { + super(message, cause); + } + + public InstallSystemException(Throwable cause) { + super(cause); + } + + protected InstallSystemException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/exception/InvalidShortLinkException.java b/src/main/java/im/zhaojun/zfile/common/exception/InvalidShortLinkException.java new file mode 100644 index 0000000..bf1e4d6 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/exception/InvalidShortLinkException.java @@ -0,0 +1,29 @@ +package im.zhaojun.zfile.common.exception; + +/** + * 无效的直链异常 + * + * @author zhaojun + */ +public class InvalidShortLinkException extends RuntimeException { + + public InvalidShortLinkException() { + } + + public InvalidShortLinkException(String message) { + super(message); + } + + public InvalidShortLinkException(String message, Throwable cause) { + super(message, cause); + } + + public InvalidShortLinkException(Throwable cause) { + super(cause); + } + + public InvalidShortLinkException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/exception/InvalidStorageSourceException.java b/src/main/java/im/zhaojun/zfile/common/exception/InvalidStorageSourceException.java new file mode 100644 index 0000000..e4c4c5b --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/exception/InvalidStorageSourceException.java @@ -0,0 +1,29 @@ +package im.zhaojun.zfile.common.exception; + +/** + * 无效的存储源异常 + * + * @author zhaojun + */ +public class InvalidStorageSourceException extends RuntimeException { + + public InvalidStorageSourceException() { + } + + public InvalidStorageSourceException(String message) { + super(message); + } + + public InvalidStorageSourceException(String message, Throwable cause) { + super(message, cause); + } + + public InvalidStorageSourceException(Throwable cause) { + super(cause); + } + + public InvalidStorageSourceException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/exception/LoginVerifyException.java b/src/main/java/im/zhaojun/zfile/common/exception/LoginVerifyException.java new file mode 100644 index 0000000..5e10011 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/exception/LoginVerifyException.java @@ -0,0 +1,14 @@ +package im.zhaojun.zfile.common.exception; + +/** + * 登陆验证码验证异常 + * + * @author zhaojun + */ +public class LoginVerifyException extends RuntimeException { + + public LoginVerifyException(String message) { + super(message); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/exception/NotAllowedDownloadException.java b/src/main/java/im/zhaojun/zfile/common/exception/NotAllowedDownloadException.java similarity index 93% rename from src/main/java/im/zhaojun/zfile/exception/NotAllowedDownloadException.java rename to src/main/java/im/zhaojun/zfile/common/exception/NotAllowedDownloadException.java index 9d9407e..0489b31 100644 --- a/src/main/java/im/zhaojun/zfile/exception/NotAllowedDownloadException.java +++ b/src/main/java/im/zhaojun/zfile/common/exception/NotAllowedDownloadException.java @@ -1,10 +1,12 @@ -package im.zhaojun.zfile.exception; +package im.zhaojun.zfile.common.exception; /** * 文件不允许下载异常 + * * @author zhaojun */ public class NotAllowedDownloadException extends RuntimeException { + public NotAllowedDownloadException() { } @@ -23,4 +25,5 @@ public class NotAllowedDownloadException extends RuntimeException { public NotAllowedDownloadException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { super(message, cause, enableSuppression, writableStackTrace); } -} + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/exception/NotEnabledStorageSourceException.java b/src/main/java/im/zhaojun/zfile/common/exception/NotEnabledStorageSourceException.java new file mode 100644 index 0000000..515c852 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/exception/NotEnabledStorageSourceException.java @@ -0,0 +1,29 @@ +package im.zhaojun.zfile.common.exception; + +/** + * 未启用的存储源异常 + * + * @author zhaojun + */ +public class NotEnabledStorageSourceException extends RuntimeException { + + public NotEnabledStorageSourceException() { + } + + public NotEnabledStorageSourceException(String message) { + super(message); + } + + public NotEnabledStorageSourceException(String message, Throwable cause) { + super(message, cause); + } + + public NotEnabledStorageSourceException(Throwable cause) { + super(cause); + } + + public NotEnabledStorageSourceException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/exception/NotExistFileException.java b/src/main/java/im/zhaojun/zfile/common/exception/NotExistFileException.java similarity index 93% rename from src/main/java/im/zhaojun/zfile/exception/NotExistFileException.java rename to src/main/java/im/zhaojun/zfile/common/exception/NotExistFileException.java index ed63c11..24d114c 100644 --- a/src/main/java/im/zhaojun/zfile/exception/NotExistFileException.java +++ b/src/main/java/im/zhaojun/zfile/common/exception/NotExistFileException.java @@ -1,7 +1,8 @@ -package im.zhaojun.zfile.exception; +package im.zhaojun.zfile.common.exception; /** * 不存在的文件异常 + * * @author zhaojun */ public class NotExistFileException extends RuntimeException { @@ -26,4 +27,4 @@ public class NotExistFileException extends RuntimeException { super(message, cause, enableSuppression, writableStackTrace); } -} +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/exception/PasswordVerifyException.java b/src/main/java/im/zhaojun/zfile/common/exception/PasswordVerifyException.java new file mode 100644 index 0000000..401b68a --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/exception/PasswordVerifyException.java @@ -0,0 +1,22 @@ +package im.zhaojun.zfile.common.exception; + + +/** + * 密码校验失败异常 + * + * @author zhaojun + */ +public class PasswordVerifyException extends RuntimeException { + + private final Integer code; + + public PasswordVerifyException(Integer code, String message) { + super(message); + this.code = code; + } + + public Integer getCode() { + return code; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/exception/PreviewException.java b/src/main/java/im/zhaojun/zfile/common/exception/PreviewException.java similarity index 92% rename from src/main/java/im/zhaojun/zfile/exception/PreviewException.java rename to src/main/java/im/zhaojun/zfile/common/exception/PreviewException.java index 4120e45..dc567ac 100644 --- a/src/main/java/im/zhaojun/zfile/exception/PreviewException.java +++ b/src/main/java/im/zhaojun/zfile/common/exception/PreviewException.java @@ -1,7 +1,8 @@ -package im.zhaojun.zfile.exception; +package im.zhaojun.zfile.common.exception; /** * 文件预览异常类 + * * @author zhaojun */ public class PreviewException extends RuntimeException { diff --git a/src/main/java/im/zhaojun/zfile/exception/RefreshCacheException.java b/src/main/java/im/zhaojun/zfile/common/exception/RefreshCacheException.java similarity index 93% rename from src/main/java/im/zhaojun/zfile/exception/RefreshCacheException.java rename to src/main/java/im/zhaojun/zfile/common/exception/RefreshCacheException.java index 17150e2..90e7e72 100644 --- a/src/main/java/im/zhaojun/zfile/exception/RefreshCacheException.java +++ b/src/main/java/im/zhaojun/zfile/common/exception/RefreshCacheException.java @@ -1,4 +1,4 @@ -package im.zhaojun.zfile.exception; +package im.zhaojun.zfile.common.exception; /** * 刷新缓存时出现的异常信息 diff --git a/src/main/java/im/zhaojun/zfile/common/exception/StorageSourceNotSupportProxyUploadException.java b/src/main/java/im/zhaojun/zfile/common/exception/StorageSourceNotSupportProxyUploadException.java new file mode 100644 index 0000000..d6ff23c --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/exception/StorageSourceNotSupportProxyUploadException.java @@ -0,0 +1,14 @@ +package im.zhaojun.zfile.common.exception; + +/** + * 存储源不支持代理上传异常 + * + * @author zhaojun + */ +public class StorageSourceNotSupportProxyUploadException extends RuntimeException { + + public StorageSourceNotSupportProxyUploadException(String message) { + super(message); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/exception/StorageSourceRefreshTokenException.java b/src/main/java/im/zhaojun/zfile/common/exception/StorageSourceRefreshTokenException.java new file mode 100644 index 0000000..60cbfa3 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/exception/StorageSourceRefreshTokenException.java @@ -0,0 +1,26 @@ +package im.zhaojun.zfile.common.exception; + +import lombok.Getter; + +/** + * @author zhaojun + */ +@Getter +public class StorageSourceRefreshTokenException extends RuntimeException { + + private final Integer storageId; + + public StorageSourceRefreshTokenException(Integer storageId) { + this.storageId = storageId; + } + + public StorageSourceRefreshTokenException(String message, Integer storageId) { + super(message); + this.storageId = storageId; + } + + public StorageSourceRefreshTokenException(String message, Throwable cause, Integer storageId) { + super(message, cause); + this.storageId = storageId; + } +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/exception/TextParseException.java b/src/main/java/im/zhaojun/zfile/common/exception/TextParseException.java similarity index 93% rename from src/main/java/im/zhaojun/zfile/exception/TextParseException.java rename to src/main/java/im/zhaojun/zfile/common/exception/TextParseException.java index 6e3ac19..e7d5302 100644 --- a/src/main/java/im/zhaojun/zfile/exception/TextParseException.java +++ b/src/main/java/im/zhaojun/zfile/common/exception/TextParseException.java @@ -1,7 +1,8 @@ -package im.zhaojun.zfile.exception; +package im.zhaojun.zfile.common.exception; /** * 文件解析异常 + * * @author zhaojun */ public class TextParseException extends RuntimeException { @@ -26,4 +27,4 @@ public class TextParseException extends RuntimeException { super(message, cause, enableSuppression, writableStackTrace); } -} +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/exception/UnSupportedOperation.java b/src/main/java/im/zhaojun/zfile/common/exception/UnSupportedOperation.java new file mode 100644 index 0000000..ea4911f --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/exception/UnSupportedOperation.java @@ -0,0 +1,29 @@ +package im.zhaojun.zfile.common.exception; + +/** + * 不支持的操作异常 + * + * @author zhaojun + */ +public class UnSupportedOperation extends RuntimeException { + + public UnSupportedOperation() { + super(); + } + + public UnSupportedOperation(String message) { + super(message); + } + + public UnSupportedOperation(String message, Throwable cause) { + super(message, cause); + } + + public UnSupportedOperation(Throwable cause) { + super(cause); + } + + protected UnSupportedOperation(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/exception/file/StorageSourceException.java b/src/main/java/im/zhaojun/zfile/common/exception/file/StorageSourceException.java new file mode 100644 index 0000000..144f812 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/exception/file/StorageSourceException.java @@ -0,0 +1,32 @@ +package im.zhaojun.zfile.common.exception.file; + +import lombok.Getter; +import lombok.Setter; + +/** + * 存储源异常 + * + * @author zhaojun + */ +@Getter +@Setter +public class StorageSourceException extends RuntimeException { + + // 存储源 ID + private Integer storageId; + + public StorageSourceException(Integer storageId) { + this.storageId = storageId; + } + + public StorageSourceException(Integer storageId, String message) { + super(message); + this.storageId = storageId; + } + + public StorageSourceException(Integer storageId, Throwable cause) { + super(cause); + this.storageId = storageId; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/exception/file/operator/DownloadFileException.java b/src/main/java/im/zhaojun/zfile/common/exception/file/operator/DownloadFileException.java new file mode 100644 index 0000000..708d572 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/exception/file/operator/DownloadFileException.java @@ -0,0 +1,24 @@ +package im.zhaojun.zfile.common.exception.file.operator; + +import im.zhaojun.zfile.common.exception.file.StorageSourceException; +import lombok.Getter; +import lombok.Setter; + +/** + * 文件下载异常 + * + * @author zhaojun + */ +@Getter +@Setter +public class DownloadFileException extends StorageSourceException { + + // 下载文件路径 + private String pathAndName; + + public DownloadFileException(Integer storageId, String pathAndName, Throwable cause) { + super(storageId, cause); + this.pathAndName = pathAndName; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/exception/file/operator/GetFileInfoException.java b/src/main/java/im/zhaojun/zfile/common/exception/file/operator/GetFileInfoException.java new file mode 100644 index 0000000..09c5ced --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/exception/file/operator/GetFileInfoException.java @@ -0,0 +1,35 @@ +package im.zhaojun.zfile.common.exception.file.operator; + +import im.zhaojun.zfile.common.exception.file.StorageSourceException; +import lombok.Getter; +import lombok.Setter; + +/** + * 获取文件信息异常 + * + * @author zhaojun + */ +@Getter +@Setter +public class GetFileInfoException extends StorageSourceException { + + // 文件信息路径 + private String pathAndName; + + public GetFileInfoException(Integer storageId, String pathAndName) { + super(storageId); + this.pathAndName = pathAndName; + } + + public GetFileInfoException(Integer storageId, String pathAndName, String message) { + super(storageId, message); + this.pathAndName = pathAndName; + } + + + public GetFileInfoException(Integer storageId, String pathAndName, Throwable cause) { + super(storageId, cause); + this.pathAndName = pathAndName; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/exception/file/operator/ProxyDownloadFileException.java b/src/main/java/im/zhaojun/zfile/common/exception/file/operator/ProxyDownloadFileException.java new file mode 100644 index 0000000..278016f --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/exception/file/operator/ProxyDownloadFileException.java @@ -0,0 +1,24 @@ +package im.zhaojun.zfile.common.exception.file.operator; + +import im.zhaojun.zfile.common.exception.file.StorageSourceException; +import lombok.Getter; +import lombok.Setter; + +/** + * 代理文件下载异常 + * + * @author zhaojun + */ +@Getter +@Setter +public class ProxyDownloadFileException extends StorageSourceException { + + // 下载文件路径 + private String pathAndName; + + public ProxyDownloadFileException(Integer storageId, String pathAndName, Throwable cause) { + super(storageId, cause); + this.pathAndName = pathAndName; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/filter/CorsFilter.java b/src/main/java/im/zhaojun/zfile/common/filter/CorsFilter.java similarity index 77% rename from src/main/java/im/zhaojun/zfile/filter/CorsFilter.java rename to src/main/java/im/zhaojun/zfile/common/filter/CorsFilter.java index ecdf1f8..65583c0 100644 --- a/src/main/java/im/zhaojun/zfile/filter/CorsFilter.java +++ b/src/main/java/im/zhaojun/zfile/common/filter/CorsFilter.java @@ -1,11 +1,9 @@ -package im.zhaojun.zfile.filter; +package im.zhaojun.zfile.common.filter; -import org.springframework.core.annotation.Order; import org.springframework.http.HttpHeaders; -import org.springframework.stereotype.Component; import org.springframework.web.cors.CorsUtils; -import org.springframework.web.filter.GenericFilterBean; +import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.ServletRequest; @@ -17,12 +15,11 @@ import java.io.IOException; /** * 开启跨域支持. 一般用于开发环境, 或前后端分离部署时开启. + * * @author zhaojun */ -@Order(1) -@WebFilter(value = "/*") -@Component -public class CorsFilter extends GenericFilterBean { +@WebFilter(urlPatterns = "/*") +public class CorsFilter implements Filter { @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { @@ -30,14 +27,14 @@ public class CorsFilter extends GenericFilterBean { HttpServletResponse httpServletResponse = (HttpServletResponse) response; httpServletResponse.setHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN, httpServletRequest.getHeader(HttpHeaders.ORIGIN)); - httpServletResponse.setHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_HEADERS, "Origin, X-Requested-With, Content-Type, Accept"); + httpServletResponse.setHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_HEADERS, "Origin, X-Requested-With, Content-Type, Accept, zfile-token, axios-request"); httpServletResponse.setHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_METHODS, "GET, POST, PUT, DELETE, OPTIONS"); - httpServletResponse.setHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS, "true"); - httpServletResponse.setHeader(HttpHeaders.ACCESS_CONTROL_MAX_AGE, "3600"); + httpServletResponse.setHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS, "false"); + httpServletResponse.setHeader(HttpHeaders.ACCESS_CONTROL_MAX_AGE, "600"); if (!CorsUtils.isPreFlightRequest(httpServletRequest)) { chain.doFilter(httpServletRequest, httpServletResponse); } } -} +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/schedule/AccessTokenRefreshSchedule.java b/src/main/java/im/zhaojun/zfile/common/schedule/AccessTokenRefreshSchedule.java new file mode 100644 index 0000000..e8cd80c --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/schedule/AccessTokenRefreshSchedule.java @@ -0,0 +1,48 @@ +package im.zhaojun.zfile.common.schedule; + +import im.zhaojun.zfile.common.context.StorageSourceContext; +import im.zhaojun.zfile.home.service.base.RefreshTokenService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.Scheduled; + +import javax.annotation.Resource; +import java.util.Map; + +/** + * 刷新使用所有 AccessToken 机制的定时任务, 存储源实现 #{@link RefreshTokenService} 接口, 表示是需要刷新 AccessToken 的存储源 + * + * @author zhaojun + */ +@Configuration +@EnableScheduling +@Slf4j +public class AccessTokenRefreshSchedule { + + @Resource + private StorageSourceContext storageSourceContext; + + /** + * 项目启动 30 秒后, 每 15 分钟执行一次刷新 OneDrive Token 的定时任务. + */ + @Scheduled(fixedRate = 1000 * 60 * 10, initialDelay = 1000 * 10) + public void autoRefreshAccessToken() { + log.info("开始执行需要定期刷新 AccessToken 存储源的定时任务"); + + Map refreshTokenServiceMap = storageSourceContext.getAllRefreshTokenStorageSource(); + + for (Map.Entry refreshTokenServiceEntry : refreshTokenServiceMap.entrySet()) { + Integer storageId = refreshTokenServiceEntry.getKey(); + RefreshTokenService refreshTokenService = refreshTokenServiceEntry.getValue(); + try { + refreshTokenService.refreshAccessToken(); + log.info("尝试刷新存储源 {} AccessToken, 刷新成功", storageId); + } catch (Exception e) { + log.error("尝试刷新存储源 {} AccessToken, 刷新失败", storageId); + } + } + log.info("执行需要定期刷新 AccessToken 存储源的定时任务完成"); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/util/AjaxJson.java b/src/main/java/im/zhaojun/zfile/common/util/AjaxJson.java new file mode 100644 index 0000000..bf05659 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/util/AjaxJson.java @@ -0,0 +1 @@ +package im.zhaojun.zfile.common.util; import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; import java.util.List; /** * ajax 请求返回 JSON 格式数据的封装 * * @author zhaojun */ public class AjaxJson implements Serializable { private static final long serialVersionUID = 1L; // 序列化版本号 public static final int CODE_SUCCESS = 0; // 成功状态码 public static final int CODE_ERROR = 500; // 错误状态码 public static final int CODE_WARNING = 501; // 警告状态码 public static final int CODE_NOT_JUR = 403; // 无权限状态码 public static final int CODE_NOT_LOGIN = 401; // 未登录状态码 public static final int CODE_INVALID_REQUEST = 400; // 无效请求状态码 public static final int REQUIRED_PASSWORD = 405; // 未输入密码 public static final int INVALID_PASSWORD = 406; // 无效的密码 @ApiModelProperty(value = "业务状态码,0 为正常,其他值均为异常,异常情况下见响应消息", example = "0") private final int code; @ApiModelProperty(value = "响应消息", example = "ok") private String msg; @ApiModelProperty(value = "响应数据") private T data; @ApiModelProperty(value = "数据总条数,分页情况有效") private final Long dataCount; /** * 返回code */ public int getCode() { return this.code; } /** * 给 msg 赋值,连缀风格 */ public AjaxJson setMsg(String msg) { this.msg = msg; return this; } public String getMsg() { return this.msg; } /** * 给data赋值,连缀风格 */ public AjaxJson setData(T data) { this.data = data; return this; } // ============================ 构建 ================================== public AjaxJson(int code, String msg, T data) { this.code = code; this.msg = msg; this.data = data; this.dataCount = null; } public AjaxJson(int code, String msg, T data, Long dataCount) { this.code = code; this.msg = msg; this.data = data; this.dataCount = dataCount; } // 返回成功 public static AjaxJson getSuccess() { return new AjaxJson<>(CODE_SUCCESS, "ok", null, null); } public static AjaxJson getSuccess(String msg) { return new AjaxJson<>(CODE_SUCCESS, msg, null, null); } public static AjaxJson getSuccess(String msg, Object data) { return new AjaxJson<>(CODE_SUCCESS, msg, data, null); } public static AjaxJson getSuccessData(T data) { return new AjaxJson<>(CODE_SUCCESS, "ok", data, null); } public static AjaxJson getSuccessArray(Object... data) { return new AjaxJson<>(CODE_SUCCESS, "ok", data, null); } // 返回失败 public static AjaxJson getError() { return new AjaxJson<>(CODE_ERROR, "error", null, null); } public static AjaxJson getError(String msg) { return new AjaxJson<>(CODE_ERROR, msg, null, null); } public static AjaxJson getBadRequestError(String msg) { return new AjaxJson<>(CODE_INVALID_REQUEST, msg, null, null); } // 返回警告 public static AjaxJson getWarning() { return new AjaxJson<>(CODE_ERROR, "warning", null, null); } public static AjaxJson getWarning(String msg) { return new AjaxJson<>(CODE_WARNING, msg, null, null); } // 返回未登录 public static AjaxJson getNotLogin() { return new AjaxJson<>(CODE_NOT_LOGIN, "未登录,请登录后再次访问", null, null); } // 返回没有权限的 public static AjaxJson getNotJur(String msg) { return new AjaxJson<>(CODE_NOT_JUR, msg, null, null); } // 返回一个自定义状态码的 public static AjaxJson get(int code, String msg) { return new AjaxJson<>(code, msg, null, null); } // 返回分页和数据的 public static AjaxJson getPageData(Long dataCount, Object data) { return new AjaxJson<>(CODE_SUCCESS, "ok", data, dataCount); } // 返回,根据布尔值来确定最终结果的 (true=ok,false=error) public static AjaxJson getByBoolean(boolean b) { return b ? getSuccess("ok") : getError("error"); } @SuppressWarnings("rawtypes") @Override public String toString() { String data_string = null; if (data == null) { } else if (data instanceof List) { data_string = "List(length=" + ((List) data).size() + ")"; } else { data_string = data.toString(); } return "{" + "\"code\": " + this.getCode() + ", \"msg\": \"" + this.getMsg() + "\"" + ", \"data\": " + data_string + ", \"dataCount\": " + dataCount + "}"; } public T getData() { return data; } public Long getDataCount() { return dataCount; } } \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/util/ClassUtils.java b/src/main/java/im/zhaojun/zfile/common/util/ClassUtils.java new file mode 100644 index 0000000..dc27f3c --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/util/ClassUtils.java @@ -0,0 +1,28 @@ +package im.zhaojun.zfile.common.util; + +import sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl; + +import java.lang.reflect.Type; + +/** + * Class & 反射相关工具类 + * + * @author zhaojun + */ +public class ClassUtils { + + /** + * 获取指定类的泛型类型, 只获取第一个泛型类型 + * + * @param clazz + * 泛型类 + * + * @return 泛型类型 + */ + public static Class getClassFirstGenericsParam(Class clazz) { + Type genericSuperclass = clazz.getGenericSuperclass(); + Type actualTypeArgument = ((ParameterizedTypeImpl) genericSuperclass).getActualTypeArguments()[0]; + return (Class) actualTypeArgument; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/util/EnumConvertUtils.java b/src/main/java/im/zhaojun/zfile/common/util/EnumConvertUtils.java new file mode 100644 index 0000000..b417d7d --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/util/EnumConvertUtils.java @@ -0,0 +1,82 @@ +package im.zhaojun.zfile.common.util; + +import cn.hutool.core.convert.Convert; +import cn.hutool.core.util.ClassUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.ReflectUtil; +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.fasterxml.jackson.annotation.JsonValue; + +import java.lang.reflect.Field; + +/** + * 枚举转换工具类 + * + * @author zhaojun + */ +public class EnumConvertUtils { + + + /** + * 根据枚举 class 和值获取对应的枚举对象 + * + * @param clazz + * 枚举类 Class + * + * @param value + * 枚举值 + * + * @return 枚举对象 + */ + public static Enum convertStrToEnum(Class clazz, Object value) { + if (!ClassUtil.isEnum(clazz)) { + return null; + } + + Field[] fields = ReflectUtil.getFields(clazz); + for (Field field : fields) { + boolean jsonValuePresent = field.isAnnotationPresent(JsonValue.class); + boolean enumValuePresent = field.isAnnotationPresent(EnumValue.class); + + if (jsonValuePresent || enumValuePresent) { + Object[] enumConstants = clazz.getEnumConstants(); + + for (Object enumObj : enumConstants) { + if (ObjectUtil.equal(value, ReflectUtil.getFieldValue(enumObj, field))) { + return (Enum) enumObj; + } + } + } + } + return null; + } + + + /** + * 转换枚举对象为字符串, 如果枚举对象没有定义 JsonValue 注解, 则使用 EnumValue 注解的值 + * + * @param enumObj + * 枚举对象 + * + * @return 字符串 + */ + public static String convertEnumToStr(Object enumObj) { + Class clazz = enumObj.getClass(); + if (!ClassUtil.isEnum(clazz)) { + return null; + } + + Field[] fields = ReflectUtil.getFields(clazz); + for (Field field : fields) { + boolean jsonValuePresent = field.isAnnotationPresent(JsonValue.class); + boolean enumValuePresent = field.isAnnotationPresent(EnumValue.class); + + if (jsonValuePresent || enumValuePresent) { + return Convert.toStr(ReflectUtil.getFieldValue(enumObj, field)); + } + } + + return null; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/util/FileComparator.java b/src/main/java/im/zhaojun/zfile/common/util/FileComparator.java similarity index 73% rename from src/main/java/im/zhaojun/zfile/util/FileComparator.java rename to src/main/java/im/zhaojun/zfile/common/util/FileComparator.java index 27d1a22..ec5e35b 100644 --- a/src/main/java/im/zhaojun/zfile/util/FileComparator.java +++ b/src/main/java/im/zhaojun/zfile/common/util/FileComparator.java @@ -1,8 +1,8 @@ -package im.zhaojun.zfile.util; +package im.zhaojun.zfile.common.util; import cn.hutool.core.comparator.CompareUtil; -import im.zhaojun.zfile.model.dto.FileItemDTO; -import im.zhaojun.zfile.model.enums.FileTypeEnum; +import im.zhaojun.zfile.home.model.result.FileItemResult; +import im.zhaojun.zfile.home.model.enums.FileTypeEnum; import java.util.Comparator; @@ -16,21 +16,31 @@ import java.util.Comparator; * * @author zhaojun */ -public class FileComparator implements Comparator { +public class FileComparator implements Comparator { private String sortBy; - private String order; - public FileComparator() { - } + private String order; public FileComparator(String sortBy, String order) { this.sortBy = sortBy; this.order = order; } + + /** + * 比较两个文件的大小 + * + * @param o1 + * 第一个文件 + * + * @param o2 + * 第二个文件 + * + * @return 比较结果 + */ @Override - public int compare(FileItemDTO o1, FileItemDTO o2) { + public int compare(FileItemResult o1, FileItemResult o2) { if (sortBy == null) { sortBy = "name"; } @@ -57,4 +67,5 @@ public class FileComparator implements Comparator { return 1; } } + } \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/util/FileResponseUtil.java b/src/main/java/im/zhaojun/zfile/common/util/FileResponseUtil.java new file mode 100644 index 0000000..24adb37 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/util/FileResponseUtil.java @@ -0,0 +1,64 @@ +package im.zhaojun.zfile.common.util; + +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.StrUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.core.io.ByteArrayResource; +import org.springframework.core.io.InputStreamResource; +import org.springframework.core.io.Resource; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; + +import java.io.File; +import java.nio.charset.StandardCharsets; + +/** + * 将文件输出对象 + * + * @author zhaojun + */ +@Slf4j +public class FileResponseUtil { + + + /** + * 文件下载,单线程,不支持断点续传 + * + * @param file + * 文件对象 + * + * @param fileName + * 要保存为的文件名 + * + * @return 文件下载对象 + */ + public static ResponseEntity exportSingleThread(File file, String fileName) { + if (!file.exists()) { + ByteArrayResource byteArrayResource = new ByteArrayResource("文件不存在或异常,请联系管理员.".getBytes(StandardCharsets.UTF_8)); + return ResponseEntity.status(HttpStatus.NOT_FOUND) + .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE) + .body(byteArrayResource); + } + + MediaType mediaType = MediaType.APPLICATION_OCTET_STREAM; + + HttpHeaders headers = new HttpHeaders(); + + if (StrUtil.isEmpty(fileName)) { + fileName = file.getName(); + } + + headers.setContentDispositionFormData("attachment", StringUtils.encodeAllIgnoreSlashes(fileName)); + + return ResponseEntity + .ok() + .headers(headers) + .contentLength(file.length()) + .contentType(mediaType) + .body(new InputStreamResource(FileUtil.getInputStream(file))); + // .body(new FileSystemResource(file)); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/util/HttpUtil.java b/src/main/java/im/zhaojun/zfile/common/util/HttpUtil.java similarity index 75% rename from src/main/java/im/zhaojun/zfile/util/HttpUtil.java rename to src/main/java/im/zhaojun/zfile/common/util/HttpUtil.java index 7fc9eda..985f45b 100644 --- a/src/main/java/im/zhaojun/zfile/util/HttpUtil.java +++ b/src/main/java/im/zhaojun/zfile/common/util/HttpUtil.java @@ -1,32 +1,33 @@ -package im.zhaojun.zfile.util; +package im.zhaojun.zfile.common.util; import cn.hutool.core.io.FileUtil; -import im.zhaojun.zfile.exception.PreviewException; -import im.zhaojun.zfile.exception.TextParseException; -import im.zhaojun.zfile.model.constant.ZFileConstant; +import im.zhaojun.zfile.common.constant.ZFileConstant; +import im.zhaojun.zfile.common.exception.PreviewException; +import im.zhaojun.zfile.common.exception.TextParseException; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.client.RestTemplate; import java.io.IOException; import java.net.URL; import java.net.URLConnection; /** + * 网络相关工具 + * * @author zhaojun */ @Slf4j public class HttpUtil { + /** * 获取 URL 对应的文件内容 * * @param url * 文件 URL - * @return 文件 URL + * + * @return 文件内容 */ public static String getTextContent(String url) { - RestTemplate restTemplate = SpringContextHolder.getBean("restTemplate"); - long maxFileSize = 1024 * ZFileConstant.TEXT_MAX_FILE_SIZE_KB; if (getRemoteFileSize(url) > maxFileSize) { @@ -35,7 +36,7 @@ public class HttpUtil { String result; try { - result = restTemplate.getForObject(url, String.class); + result = cn.hutool.http.HttpUtil.get(url); } catch (Exception e) { throw new TextParseException("文件解析异常, 请求 url = " + url + ", 异常信息为 = " + e.getMessage()); } @@ -43,8 +44,14 @@ public class HttpUtil { return result == null ? "" : result; } + /** * 获取远程文件大小 + * + * @param url + * 文件 URL + * + * @return 文件大小 */ public static Long getRemoteFileSize(String url) { long size = 0; @@ -60,4 +67,4 @@ public class HttpUtil { return size; } -} +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/util/NaturalOrderComparator.java b/src/main/java/im/zhaojun/zfile/common/util/NaturalOrderComparator.java similarity index 98% rename from src/main/java/im/zhaojun/zfile/util/NaturalOrderComparator.java rename to src/main/java/im/zhaojun/zfile/common/util/NaturalOrderComparator.java index 6215221..b162ed0 100644 --- a/src/main/java/im/zhaojun/zfile/util/NaturalOrderComparator.java +++ b/src/main/java/im/zhaojun/zfile/common/util/NaturalOrderComparator.java @@ -1,4 +1,4 @@ -package im.zhaojun.zfile.util; +package im.zhaojun.zfile.common.util; /* NaturalOrderComparator.java -- Perform 'natural order' comparisons of strings in Java. Copyright (C) 2003 by Pierre-Luc Paour @@ -26,6 +26,8 @@ package im.zhaojun.zfile.util; import java.util.Comparator; /** + * 类 windows 文件排序算法 + * * @author zhaojun */ public class NaturalOrderComparator implements Comparator { @@ -147,4 +149,4 @@ public class NaturalOrderComparator implements Comparator { return a.length() - b.length(); } -} +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/util/PlaceholderUtils.java b/src/main/java/im/zhaojun/zfile/common/util/PlaceholderUtils.java new file mode 100644 index 0000000..03e6e67 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/util/PlaceholderUtils.java @@ -0,0 +1,144 @@ +package im.zhaojun.zfile.common.util; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.extra.spring.SpringUtil; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 配置文件或模板中的占位符替换工具类 + * + * @author zhaojun + */ +public class PlaceholderUtils { + + /** + * Prefix for system property placeholders: "${" + */ + public static final String PLACEHOLDER_PREFIX = "${"; + /** + * Suffix for system property placeholders: "}" + */ + public static final String PLACEHOLDER_SUFFIX = "}"; + + + /** + * 解析占位符, 将指定的占位符替换为指定的值. 变量值从 Spring 环境中获取, 如没取到, 则默认为空. + * + * 必须在 Spring 环境下使用, 否则会抛出异常. + * + * + * @param formatStr + * 模板字符串 + * + * @return 替换后的字符串 + */ + public static String resolvePlaceholdersBySpringProperties(String formatStr) { + String placeholderName = getFirstPlaceholderName(formatStr); + if (StrUtil.isEmpty(placeholderName)) { + return formatStr; + } + + String propertyValue = SpringUtil.getProperty(placeholderName); + Map map = new HashMap<>(); + map.put(placeholderName, propertyValue); + return resolvePlaceholders(formatStr, map); + } + + + /** + * 解析占位符, 将指定的占位符替换为指定的值. + * + * @param formatStr + * 模板字符串 + * + * @param parameter + * 参数列表 + * + * @return 替换后的字符串 + */ + public static String resolvePlaceholders(String formatStr, Map parameter) { + if (parameter == null || parameter.isEmpty()) { + return formatStr; + } + StringBuffer buf = new StringBuffer(formatStr); + int startIndex = buf.indexOf(PLACEHOLDER_PREFIX); + while (startIndex != -1) { + int endIndex = buf.indexOf(PLACEHOLDER_SUFFIX, startIndex + PLACEHOLDER_PREFIX.length()); + if (endIndex != -1) { + String placeholder = buf.substring(startIndex + PLACEHOLDER_PREFIX.length(), endIndex); + int nextIndex = endIndex + PLACEHOLDER_SUFFIX.length(); + try { + String propVal = parameter.get(placeholder); + if (propVal != null) { + buf.replace(startIndex, endIndex + PLACEHOLDER_SUFFIX.length(), propVal); + nextIndex = startIndex + propVal.length(); + } else { + System.out.println("Could not resolve placeholder '" + placeholder + "' in [" + formatStr + "] "); + } + } catch (Exception ex) { + System.out.println("Could not resolve placeholder '" + placeholder + "' in [" + formatStr + "]: " + ex); + } + startIndex = buf.indexOf(PLACEHOLDER_PREFIX, nextIndex); + } else { + startIndex = -1; + } + } + return buf.toString(); + } + + + /** + * 获取模板字符串第一个占位符的名称, 如 "我的名字是: ${name}, 我的年龄是: ${age}", 返回 "name". + * + * @param formatStr + * 模板字符串 + * + * @return 占位符名称 + */ + public static String getFirstPlaceholderName(String formatStr) { + List list = getPlaceholderNames(formatStr); + if (CollUtil.isNotEmpty(list)) { + return list.get(0); + } + return null; + } + + + /** + * 获取模板字符串第一个占位符的名称, 如 "我的名字是: ${name}, 我的年龄是: ${age}", 返回 ["name", "age]. + * + * @param formatStr + * 模板字符串 + * + * @return 占位符名称 + */ + public static List getPlaceholderNames(String formatStr) { + if (StrUtil.isEmpty(formatStr)) { + return Collections.emptyList(); + } + + List placeholderNameList = new ArrayList<>(); + + StringBuffer buf = new StringBuffer(formatStr); + int startIndex = buf.indexOf(PLACEHOLDER_PREFIX); + while (startIndex != -1) { + int endIndex = buf.indexOf(PLACEHOLDER_SUFFIX, startIndex + PLACEHOLDER_PREFIX.length()); + if (endIndex != -1) { + String placeholder = buf.substring(startIndex + PLACEHOLDER_PREFIX.length(), endIndex); + int nextIndex = endIndex + PLACEHOLDER_SUFFIX.length(); + startIndex = buf.indexOf(PLACEHOLDER_PREFIX, nextIndex); + placeholderNameList.add(placeholder); + } else { + startIndex = -1; + } + } + return placeholderNameList; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/util/ProxyDownloadUrlUtils.java b/src/main/java/im/zhaojun/zfile/common/util/ProxyDownloadUrlUtils.java new file mode 100644 index 0000000..295332c --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/util/ProxyDownloadUrlUtils.java @@ -0,0 +1,86 @@ +package im.zhaojun.zfile.common.util; + +import cn.hutool.core.convert.Convert; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.HexUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.crypto.symmetric.SymmetricAlgorithm; +import cn.hutool.crypto.symmetric.SymmetricCrypto; +import cn.hutool.extra.spring.SpringUtil; +import im.zhaojun.zfile.admin.service.SystemConfigService; + +import java.util.Date; +import java.util.List; + +/** + * 代理下载链接工具类 + * + * @author zhaojun + */ +public class ProxyDownloadUrlUtils { + + private static SystemConfigService systemConfigService; + + + private static final String PROXY_DOWNLOAD_LINK_DELIMITER= ":"; + + + /** + * 服务器代理下载 URL 有效期 (分钟). + */ + public static final Integer PROXY_DOWNLOAD_LINK_EFFECTIVE_SECOND = 1800; + + public static String generatorSignature(Integer storageId, String pathAndName, Integer effectiveSecond) { + if (systemConfigService == null) { + systemConfigService = SpringUtil.getBean(SystemConfigService.class); + } + + // 如果有效时间为空, 则设置 30 分钟过期 + if (effectiveSecond == null || effectiveSecond < 1) { + effectiveSecond = PROXY_DOWNLOAD_LINK_EFFECTIVE_SECOND; + } + + // 过期时间的秒数 + long second = DateUtil.offsetSecond(DateUtil.date(), effectiveSecond).getTime(); + String content = storageId + PROXY_DOWNLOAD_LINK_DELIMITER + pathAndName + PROXY_DOWNLOAD_LINK_DELIMITER + second; + + String rsaHexKey = systemConfigService.getRsaHexKey(); + byte[] key = HexUtil.decodeHex(rsaHexKey); + //构建 + SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES, key); + + //加密 + return aes.encryptHex(content); + } + + + public static boolean validSignatureExpired(Integer expectedStorageId, String expectedPathAndName, String signature) { + if (systemConfigService == null) { + systemConfigService = SpringUtil.getBean(SystemConfigService.class); + } + + String rsaHexKey = systemConfigService.getRsaHexKey(); + byte[] key = HexUtil.decodeHex(rsaHexKey); + SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES, key); + + try { + //解密 + String decryptStr = aes.decryptStr(signature); + List split = StrUtil.split(decryptStr, PROXY_DOWNLOAD_LINK_DELIMITER); + String storageId = split.get(0); + String pathAndName = split.get(1); + String expiredSecond = split.get(2); + // 校验存储源 ID 和文件路径及是否过期. + if (StrUtil.equals(storageId, Convert.toStr(expectedStorageId)) + && StrUtil.equals(StringUtils.concat(pathAndName), StringUtils.concat(expectedPathAndName)) + && new Date().getTime() < Convert.toLong(expiredSecond)) { + return true; + } + } catch (Exception e) { + return false; + } + + return false; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/util/RequestHolder.java b/src/main/java/im/zhaojun/zfile/common/util/RequestHolder.java new file mode 100644 index 0000000..765fd72 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/util/RequestHolder.java @@ -0,0 +1,77 @@ +package im.zhaojun.zfile.common.util; + +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.io.IoUtil; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; +import org.springframework.http.MediaTypeFactory; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.Objects; +import java.util.Optional; +import java.util.function.Function; + +/** + * 获取 Request 工具类 + * + * @author zhaojun + */ +public class RequestHolder { + + /** + * 获取 HttpServletRequest + * + * @return HttpServletRequest + */ + public static HttpServletRequest getRequest(){ + return ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); + } + + + /** + * 获取 HttpServletResponse + * + * @return HttpServletResponse + */ + public static HttpServletResponse getResponse(){ + return ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getResponse(); + } + + + /** + * 向 response 写入文件流. + * + * @param function + * 文件输入流获取函数 + * + * @param path + * 文件路径 + */ + public static void writeFile(Function function, String path){ + try (InputStream inputStream = function.apply(path)) { + HttpServletResponse response = RequestHolder.getResponse(); + String fileName = FileUtil.getName(path); + + Optional mediaTypeOptional = MediaTypeFactory.getMediaType(path); + MediaType mediaType = mediaTypeOptional.orElse(MediaType.APPLICATION_OCTET_STREAM); + + response.addHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + StringUtils.encodeAllIgnoreSlashes(fileName)); + response.setContentType(mediaType.getType()); + + OutputStream outputStream = response.getOutputStream(); + + IoUtil.copy(inputStream, outputStream); + response.flushBuffer(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/util/SizeToStrUtils.java b/src/main/java/im/zhaojun/zfile/common/util/SizeToStrUtils.java new file mode 100644 index 0000000..ec6f1f0 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/util/SizeToStrUtils.java @@ -0,0 +1,51 @@ +package im.zhaojun.zfile.common.util; + +import cn.hutool.core.util.NumberUtil; + +/** + * 文件大小或带宽大小转可读单位 + * + * @author zhaojun + */ +public class SizeToStrUtils { + + /** + * 将文件大小转换为可读单位 + * + * @param bytes + * 字节数 + * + * @return 文件大小可读单位 + */ + public static String bytesToSize(long bytes) { + if (bytes == 0) { + return "0"; + } + + double k = 1024; + String[] sizes = new String[]{"B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"}; + double i = Math.floor(Math.log(bytes) / Math.log(k)); + return NumberUtil.round(bytes / Math.pow(k, i), 3) + " " + sizes[(int) i]; + } + + + /** + * 将带宽大小转换为可读单位 + * + * @param bps + * 字节数 + * + * @return 带宽大小可读单位 + */ + public static String bpsToSize(long bps) { + if (bps == 0) { + return "0"; + } + + double k = 1000; + String[] sizes = new String[]{"B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"}; + double i = Math.floor(Math.log(bps) / Math.log(k)); + return NumberUtil.round(bps / Math.pow(k, i), 3) + " " + sizes[(int) i]; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/util/StringUtils.java b/src/main/java/im/zhaojun/zfile/common/util/StringUtils.java new file mode 100644 index 0000000..3a39799 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/util/StringUtils.java @@ -0,0 +1,405 @@ +package im.zhaojun.zfile.common.util; + +import cn.hutool.core.net.URLEncodeUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.core.util.URLUtil; +import cn.hutool.extra.spring.SpringUtil; +import im.zhaojun.zfile.admin.service.SystemConfigService; +import im.zhaojun.zfile.common.constant.ZFileConstant; +import im.zhaojun.zfile.home.model.dto.SystemConfigDTO; + +import java.net.MalformedURLException; +import java.net.URL; +import java.nio.charset.StandardCharsets; + +/** + * 字符串相关工具类 + * + * @author zhaojun + */ +public class StringUtils { + + public static final char DELIMITER = '/'; + + public static final String DELIMITER_STR = "/"; + + public static final String HTTP_PROTOCOL = "http://"; + + public static final String HTTPS_PROTOCOL = "https://"; + + + /** + * 移除 URL 中的前后的所有 '/' + * + * @param path + * 路径 + * + * @return 如 path = '/folder1/file1/', 返回 'folder1/file1' + * 如 path = '///folder1/file1//', 返回 'folder1/file1' + */ + public static String trimSlashes(String path) { + path = trimStartSlashes(path); + path = trimEndSlashes(path); + return path; + } + + + /** + * 移除 URL 中的第一个 '/' + * + * @param path + * 路径 + * + * @return 如 path = '/folder1/file1', 返回 'folder1/file1' + * 如 path = '/folder1/file1', 返回 'folder1/file1' + * + */ + public static String trimStartSlashes(String path) { + if (StrUtil.isEmpty(path)) { + return path; + } + + while (path.startsWith(DELIMITER_STR)) { + path = path.substring(1); + } + + return path; + } + + + /** + * 移除 URL 中的最后一个 '/' + * + * @param path + * 路径 + * + * @return 如 path = '/folder1/file1/', 返回 '/folder1/file1' + * 如 path = '/folder1/file1///', 返回 '/folder1/file1' + */ + public static String trimEndSlashes(String path) { + if (StrUtil.isEmpty(path)) { + return path; + } + + while (path.endsWith(DELIMITER_STR)) { + path = path.substring(0, path.length() - 1); + } + + return path; + } + + + /** + * 去除路径中所有重复的 '/' + * + * @param path + * 路径 + * + * @return 如 path = '/folder1//file1/', 返回 '/folder1/file1/' + * 如 path = '/folder1////file1///', 返回 '/folder1/file1/' + */ + public static String removeDuplicateSlashes(String path) { + if (StrUtil.isEmpty(path)) { + return path; + } + + StringBuilder sb = new StringBuilder(); + + // 是否包含 http 或 https 协议信息 + boolean containProtocol = StrUtil.containsAnyIgnoreCase(path, HTTP_PROTOCOL, HTTPS_PROTOCOL); + + if (containProtocol) { + path = trimStartSlashes(path); + } + + // 是否包含 http 协议信息 + boolean startWithHttpProtocol = StrUtil.startWithIgnoreCase(path, HTTP_PROTOCOL); + // 是否包含 https 协议信息 + boolean startWithHttpsProtocol = StrUtil.startWithIgnoreCase(path, HTTPS_PROTOCOL); + + if (startWithHttpProtocol) { + sb.append(HTTP_PROTOCOL); + } else if (startWithHttpsProtocol) { + sb.append(HTTPS_PROTOCOL); + } + + for (int i = sb.length(); i < path.length() - 1; i++) { + char current = path.charAt(i); + char next = path.charAt(i + 1); + if (!(current == DELIMITER && next == DELIMITER)) { + sb.append(current); + } + } + sb.append(path.charAt(path.length() - 1)); + return sb.toString(); + } + + + /** + * 去除路径中所有重复的 '/', 并且去除开头的 '/' + * + * @param path + * 路径 + * + * @return 如 path = '/folder1//file1/', 返回 'folder1/file1/' + * 如 path = '///folder1////file1///', 返回 'folder1/file1/' + */ + public static String removeDuplicateSlashesAndTrimStart(String path) { + path = removeDuplicateSlashes(path); + path = trimStartSlashes(path); + return path; + } + + + /** + * 去除路径中所有重复的 '/', 并且去除结尾的 '/' + * + * @param path + * 路径 + * + * @return 如 path = '/folder1//file1/', 返回 '/folder1/file1' + * 如 path = '///folder1////file1///', 返回 '/folder1/file1' + */ + public static String removeDuplicateSlashesAndTrimEnd(String path) { + path = removeDuplicateSlashes(path); + path = trimEndSlashes(path); + return path; + } + + + /** + * 拼接 URL,并去除重复的分隔符 '/',并去除开头的 '/', 但不会影响 http:// 和 https:// 这种头部. + * + * @param strs + * 拼接的字符数组 + * + * @return 拼接结果 + */ + public static String concatTrimStartSlashes(String... strs) { + return trimStartSlashes(concat(strs)); + } + + + /** + * 拼接 URL,并去除重复的分隔符 '/',并去除结尾的 '/', 但不会影响 http:// 和 https:// 这种头部. + * + * @param strs + * 拼接的字符数组 + * + * @return 拼接结果 + */ + public static String concatTrimEndSlashes(String... strs) { + return trimEndSlashes(concat(strs)); + } + + + /** + * 拼接 URL,并去除重复的分隔符 '/',并去除开头和结尾的 '/', 但不会影响 http:// 和 https:// 这种头部. + * + * @param strs + * 拼接的字符数组 + * + * @return 拼接结果 + */ + public static String concatTrimSlashes(String... strs) { + return trimSlashes(concat(strs)); + } + + + /** + * 拼接 URL,并去除重复的分隔符 '/',但不会影响 http:// 和 https:// 这种头部. + * + * @param strs + * 拼接的字符数组 + * + * @return 拼接结果 + */ + public static String concat(String... strs) { + StringBuilder sb = new StringBuilder(DELIMITER_STR); + for (int i = 0; i < strs.length; i++) { + String str = strs[i]; + if (StrUtil.isEmpty(str)) { + continue; + } + sb.append(str); + if (i != strs.length - 1) { + sb.append(DELIMITER); + } + } + return removeDuplicateSlashes(sb.toString()); + } + + + /** + * 拼接 URL,并去除重复的分隔符 '/',但不会影响 http:// 和 https:// 这种头部. + * + * @param encodeAllIgnoreSlashes + * 是否 encode 编码 (忽略 /) + * + * @param strs + * 拼接的字符数组 + * + * @return 拼接结果 + */ + public static String concat(boolean encodeAllIgnoreSlashes, String... strs) { + StringBuilder sb = new StringBuilder(DELIMITER_STR); + for (int i = 0; i < strs.length; i++) { + String str = strs[i]; + if (StrUtil.isEmpty(str)) { + continue; + } + sb.append(str); + if (i != strs.length - 1) { + sb.append(DELIMITER); + } + } + if (encodeAllIgnoreSlashes) { + return encodeAllIgnoreSlashes(removeDuplicateSlashes(sb.toString())); + } else { + return removeDuplicateSlashes(sb.toString()); + } + } + + + /** + * 拼接文件直链生成 URL + * + * @param storageKey + * 存储源 ID + * + * @param fullPath + * 文件全路径 + * + * @return 生成结果 + */ + public static String generatorLink(String storageKey, String fullPath) { + SystemConfigService systemConfigService = SpringUtil.getBean(SystemConfigService.class); + SystemConfigDTO systemConfig = systemConfigService.getSystemConfig(); + String domain = systemConfig.getDomain(); + String directLinkPrefix = systemConfig.getDirectLinkPrefix(); + return concat(domain, directLinkPrefix, storageKey, encodeAllIgnoreSlashes(fullPath)); + } + + + /** + * 替换 URL 中的 Host 部分,如替换 http://a.com/1.txt 为 https://abc.com/1.txt + * + * @param originUrl + * 原 URL + * + * @param replaceHost + * 替换的 HOST + * + * @return 替换后的 URL + */ + public static String replaceHost(String originUrl, String replaceHost) { + try { + String path = new URL(originUrl).getFile(); + return concat(replaceHost, path); + } catch (MalformedURLException e) { + e.printStackTrace(); + } + return null; + } + + + /** + * 编码 URL,默认使用 UTF-8 编码 + * URL 的 Fragment URLEncoder + * 默认的编码器针对Fragment,定义如下: + * + *
+     * fragment    = *( pchar / "/" / "?" )
+     * pchar       = unreserved / pct-encoded / sub-delims / ":" / "@"
+     * unreserved  = ALPHA / DIGIT / "-" / "." / "_" / "~"
+     * sub-delims  = "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "="
+     * 
+ * + * 具体见:https://datatracker.ietf.org/doc/html/rfc3986#section-3.5 + * + * @param url + * 被编码内容 + * + * @return 编码后的字符 + */ + public static String encode(String url) { + return URLEncodeUtil.encodeFragment(url); + } + + + /** + * 编码全部字符 + * + * @param str + * 被编码内容 + * + * @return 编码后的字符 + */ + public static String encodeAllIgnoreSlashes(String str) { + if (StrUtil.isEmpty(str)) { + return str; + } + + StringBuilder sb = new StringBuilder(); + + int prevIndex = -1; + for (int i = 0; i < str.length(); i++) { + char c = str.charAt(i); + if (c == ZFileConstant.PATH_SEPARATOR_CHAR) { + if (prevIndex < i) { + String substring = str.substring(prevIndex + 1, i); + sb.append(URLEncodeUtil.encodeAll(substring)); + prevIndex = i; + } + sb.append(c); + } + + if (i == str.length() - 1 && prevIndex < i) { + String substring = str.substring(prevIndex + 1, i + 1); + sb.append(URLEncodeUtil.encodeAll(substring)); + } + } + + // List list = StrUtil.split(str, ZFileConstant.PATH_SEPARATOR, true, true); + // + // for (int i = 0; i < list.size(); i++) { + // String item = list.get(i); + // list.set(i, URLEncodeUtil.encodeAll(item)); + // } + + return sb.toString(); + } + + + /** + * 解码 URL, 默认使用 UTF8 编码. 不会将 + 转为空格. + * + * @param url + * 被解码内容 + * + * @return 解码后的内容 + */ + public static String decode(String url) { + return URLUtil.decode(url, StandardCharsets.UTF_8, false); + } + + + /** + * 获取路径的上级目录, 如最后为 /, 则也会认为是一级目录 + * + * @param path + * 文件路径 + * + * @return 父级目录 + */ + public static String getParentPath(String path) { + int toIndex = StrUtil.lastIndexOfIgnoreCase(path, ZFileConstant.PATH_SEPARATOR); + if (toIndex <= 0) { + return "/"; + } else { + return StrUtil.sub(path, 0, toIndex); + } + } + + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/validation/StringListValue.java b/src/main/java/im/zhaojun/zfile/common/validation/StringListValue.java new file mode 100644 index 0000000..5561b88 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/validation/StringListValue.java @@ -0,0 +1,31 @@ +package im.zhaojun.zfile.common.validation; + +import javax.validation.Constraint; +import javax.validation.Payload; +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +/** + * 字符串列表值校验注解 + * + * @author zhaojun + */ +@Documented +@Constraint(validatedBy = { StringListValueConstraintValidator.class }) +@Target({ ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE }) +@Retention(RUNTIME) +public @interface StringListValue { + + String message() default ""; + + Class[] groups() default { }; + + Class[] payload() default { }; + + String[] vals() default { }; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/common/validation/StringListValueConstraintValidator.java b/src/main/java/im/zhaojun/zfile/common/validation/StringListValueConstraintValidator.java new file mode 100644 index 0000000..d1761cc --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/common/validation/StringListValueConstraintValidator.java @@ -0,0 +1,53 @@ +package im.zhaojun.zfile.common.validation; + +import cn.hutool.core.util.StrUtil; + +import javax.validation.ConstraintValidator; +import javax.validation.ConstraintValidatorContext; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** + * 字符串列表值校验器 + * + * @author zhaojun + */ +public class StringListValueConstraintValidator implements ConstraintValidator { + + private final Set set = new HashSet<>(); + + /** + * 初始化方法 + * + * @param constraintAnnotation + * 校验注解对象 + */ + @Override + public void initialize(StringListValue constraintAnnotation) { + String[] vals = constraintAnnotation.vals(); + set.addAll(Arrays.asList(vals)); + + } + + + /** + * 判断是否校验成功 + * + * @param value + * 需要校验的值 + * + * @param context + * 校验上下文 + * + * @return 是否校验成功 + */ + @Override + public boolean isValid(String value, ConstraintValidatorContext context) { + if (StrUtil.isEmpty(value)) { + return true; + } + return set.contains(value); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/config/ApplicationContextConfigure.java b/src/main/java/im/zhaojun/zfile/config/ApplicationContextConfigure.java deleted file mode 100644 index b60f65d..0000000 --- a/src/main/java/im/zhaojun/zfile/config/ApplicationContextConfigure.java +++ /dev/null @@ -1,36 +0,0 @@ -package im.zhaojun.zfile.config; - -import org.springframework.beans.BeansException; -import org.springframework.context.ApplicationContext; -import org.springframework.context.ApplicationContextAware; -import org.springframework.context.annotation.Configuration; - -/** - * 应用上下文配置 - * - * @author me - * @date 2022/4/9 - */ -@Configuration -public class ApplicationContextConfigure implements ApplicationContextAware { - private static ApplicationContext applicationContext; - - @Override - public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { - ApplicationContextConfigure.applicationContext = applicationContext; - } - - /** - * bean名称获取对象 - */ - public static Object getBean(String name) throws BeansException { - return applicationContext.getBean(name); - } - - /** - * bean类型获取对象 - */ - public static T getBean(Class clazz) throws BeansException { - return applicationContext.getBean(clazz); - } -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/config/OneDriveConfig.java b/src/main/java/im/zhaojun/zfile/config/OneDriveConfig.java deleted file mode 100644 index 86c2ef8..0000000 --- a/src/main/java/im/zhaojun/zfile/config/OneDriveConfig.java +++ /dev/null @@ -1,47 +0,0 @@ -package im.zhaojun.zfile.config; - -import im.zhaojun.zfile.model.constant.StorageConfigConstant; -import im.zhaojun.zfile.model.entity.StorageConfig; -import im.zhaojun.zfile.service.StorageConfigService; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.http.HttpHeaders; -import org.springframework.http.client.ClientHttpRequestInterceptor; -import org.springframework.web.client.RestTemplate; - -import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; - -/** - * @author zhaojun - */ -@Configuration -public class OneDriveConfig { - - @Resource - private StorageConfigService storageConfigService; - - /** - * OneDrive 请求 RestTemplate, 会在请求头中添加 Bearer: Authorization {token} 信息, 用于 API 认证. - */ - @Bean - public RestTemplate oneDriveRestTemplate() { - RestTemplate restTemplate = new RestTemplate(); - - ClientHttpRequestInterceptor interceptor = (httpRequest, bytes, clientHttpRequestExecution) -> { - HttpHeaders headers = httpRequest.getHeaders(); - Integer driveId = Integer.valueOf(((List)headers.get("driveId")).get(0).toString()); - - StorageConfig accessTokenConfig = - storageConfigService.findByDriveIdAndKey(driveId, StorageConfigConstant.ACCESS_TOKEN_KEY); - - String tokenValue = String.format("%s %s", "Bearer", accessTokenConfig.getValue()); - httpRequest.getHeaders().add("Authorization", tokenValue); - return clientHttpRequestExecution.execute(httpRequest, bytes); - }; - restTemplate.setInterceptors(Collections.singletonList(interceptor)); - return restTemplate; - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/config/SaTokenConfigure.java b/src/main/java/im/zhaojun/zfile/config/SaTokenConfigure.java deleted file mode 100644 index 1433713..0000000 --- a/src/main/java/im/zhaojun/zfile/config/SaTokenConfigure.java +++ /dev/null @@ -1 +0,0 @@ -package im.zhaojun.zfile.config; import cn.dev33.satoken.interceptor.SaRouteInterceptor; import cn.dev33.satoken.router.SaRouter; import cn.dev33.satoken.stp.StpUtil; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import org.springframework.web.servlet.resource.ResourceHttpRequestHandler; import java.util.Objects; @Configuration public class SaTokenConfigure implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new SaRouteInterceptor((req, res, handler)->{ SaRouter.match("/admin/**", "/admin", () -> { // 如果不是静态页面, 则校验是否登录 if (!Objects.equals(handler.getClass(), ResourceHttpRequestHandler.class)) { StpUtil.checkLogin(); } }); })).addPathPatterns("/**"); } } \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/config/WebMvcConfig.java b/src/main/java/im/zhaojun/zfile/config/WebMvcConfig.java deleted file mode 100644 index 38a7d04..0000000 --- a/src/main/java/im/zhaojun/zfile/config/WebMvcConfig.java +++ /dev/null @@ -1,53 +0,0 @@ -package im.zhaojun.zfile.config; - -import im.zhaojun.zfile.model.enums.StorageTypeEnumDeSerializerConvert; -import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; -import org.springframework.boot.web.server.ConfigurableWebServerFactory; -import org.springframework.boot.web.server.ErrorPage; -import org.springframework.boot.web.server.WebServerFactoryCustomizer; -import org.springframework.boot.web.servlet.server.ServletWebServerFactory; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.format.FormatterRegistry; -import org.springframework.http.HttpStatus; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; - -import java.util.HashSet; -import java.util.Set; - -/** - * @author zhaojun - */ -@Configuration -public class WebMvcConfig implements WebMvcConfigurer { - - @Override - public void addFormatters(FormatterRegistry registry) { - registry.addConverter(new StorageTypeEnumDeSerializerConvert()); - } - - @Bean - public ServletWebServerFactory webServerFactory() { - TomcatServletWebServerFactory webServerFactory = new TomcatServletWebServerFactory(); - - // 添加对 URL 中特殊符号的支持. - webServerFactory.addConnectorCustomizers(connector -> { - connector.setAttribute("relaxedPathChars", "<>[\\]^`{|}"); - connector.setAttribute("relaxedQueryChars", "<>[\\]^`{|}"); - }); - return webServerFactory; - } - - @Bean - public WebServerFactoryCustomizer webServerFactoryCustomizer(){ - return factory -> { - ErrorPage error404Page = new ErrorPage(HttpStatus.NOT_FOUND, "/index.html"); - ErrorPage error200Page = new ErrorPage(HttpStatus.OK, "/index.html"); - Set errorPages = new HashSet<>(); - errorPages.add(error404Page); - errorPages.add(error200Page); - factory.setErrorPages(errorPages); - }; - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/config/ZFileConfiguration.java b/src/main/java/im/zhaojun/zfile/config/ZFileConfiguration.java deleted file mode 100644 index ddca344..0000000 --- a/src/main/java/im/zhaojun/zfile/config/ZFileConfiguration.java +++ /dev/null @@ -1,42 +0,0 @@ -package im.zhaojun.zfile.config; - -import im.zhaojun.zfile.filter.CorsFilter; -import org.apache.http.client.HttpClient; -import org.apache.http.impl.client.HttpClientBuilder; -import org.springframework.boot.web.servlet.FilterRegistrationBean; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.http.HttpHeaders; -import org.springframework.http.client.ClientHttpResponse; -import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; -import org.springframework.http.converter.StringHttpMessageConverter; -import org.springframework.web.client.RestTemplate; - -import java.nio.charset.StandardCharsets; -import java.util.Collections; - -/** - * @author zhaojun - */ -@Configuration -public class ZFileConfiguration { - - @Bean - public RestTemplate restTemplate(){ - HttpComponentsClientHttpRequestFactory httpRequestFactory = new HttpComponentsClientHttpRequestFactory(); - HttpClient httpClient = HttpClientBuilder.create().build(); - httpRequestFactory.setHttpClient(httpClient); - RestTemplate restTemplate = new RestTemplate(httpRequestFactory); - restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8)); - - restTemplate.setInterceptors(Collections.singletonList((request, body, execution) -> { - ClientHttpResponse response = execution.execute(request, body); - HttpHeaders headers = response.getHeaders(); - headers.put("Content-Type", Collections.singletonList("application/text")); - return response; - })); - - return restTemplate; - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/config/webdav/MiltonConfiguration.java b/src/main/java/im/zhaojun/zfile/config/webdav/MiltonConfiguration.java deleted file mode 100644 index 309c670..0000000 --- a/src/main/java/im/zhaojun/zfile/config/webdav/MiltonConfiguration.java +++ /dev/null @@ -1,60 +0,0 @@ -package im.zhaojun.zfile.config.webdav; - -import im.zhaojun.zfile.config.webdav.adapter.WebDavUrlAdapterImpl; -import im.zhaojun.zfile.config.webdav.auth.SystemConfigSecurityManager; -import im.zhaojun.zfile.config.webdav.resolver.WebDavRedirectViewResolver; -import im.zhaojun.zfile.model.constant.ZFileConstant; -import im.zhaojun.zfile.model.dto.SystemConfigDTO; -import im.zhaojun.zfile.service.SystemConfigService; -import io.milton.http.ResourceFactory; -import io.milton.http.SecurityManager; -import io.milton.http.annotated.AnnotationResourceFactory; -import io.milton.http.fs.NullSecurityManager; -import io.milton.servlet.DefaultMiltonConfigurator; -import org.springframework.beans.factory.InitializingBean; -import org.springframework.context.annotation.Configuration; - -import javax.annotation.Resource; - -/** - * Milton(webDav)配置 - * - * @author me - * @date 2022/4/9 - */ -@Configuration -public class MiltonConfiguration extends DefaultMiltonConfigurator implements InitializingBean { - /** - * 安全管理器 - */ - private static SecurityManager securityManager = new NullSecurityManager(); - - @Resource - private SystemConfigService systemConfigService; - - /** - * 构建milton初始化配置 - */ - @Override - protected void build() { - builder.setSecurityManager(securityManager); - builder.setContextPath(ZFileConstant.WEB_DAV_PREFIX); - builder.setUrlAdapter(new WebDavUrlAdapterImpl()); - final ResourceFactory resourceFactory = builder.getResourceFactory(); - if (resourceFactory instanceof AnnotationResourceFactory) { - ((AnnotationResourceFactory) resourceFactory).setViewResolver(new WebDavRedirectViewResolver()); - } - super.build(); - } - - /** - * 属性初始化完成后,更新安全管理器,使用系统配置鉴权 - */ - @Override - public void afterPropertiesSet() throws Exception { - final SystemConfigDTO systemConfig = systemConfigService.getSystemConfig(); - if (systemConfig != null) { - securityManager = new SystemConfigSecurityManager(systemConfig); - } - } -} diff --git a/src/main/java/im/zhaojun/zfile/config/webdav/WebDavConfiguration.java b/src/main/java/im/zhaojun/zfile/config/webdav/WebDavConfiguration.java deleted file mode 100644 index 3887f23..0000000 --- a/src/main/java/im/zhaojun/zfile/config/webdav/WebDavConfiguration.java +++ /dev/null @@ -1,33 +0,0 @@ -package im.zhaojun.zfile.config.webdav; - -import im.zhaojun.zfile.model.constant.ZFileConstant; -import io.milton.http.annotated.AnnotationResourceFactory; -import io.milton.servlet.MiltonFilter; -import org.springframework.boot.web.servlet.FilterRegistrationBean; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -/** - * WebDav配置 - * - * @author me - * @date 2022/4/9 - */ -@Configuration -public class WebDavConfiguration { - - @Bean - public FilterRegistrationBean miltonFilter() { - FilterRegistrationBean registration = new FilterRegistrationBean(); - registration.setFilter(new MiltonFilter()); - registration.setName("miltonFilter"); - registration.addUrlPatterns(ZFileConstant.WEB_DAV_PREFIX + "/*"); - registration.addInitParameter("resource.factory.class", AnnotationResourceFactory.class.getName()); - registration.addInitParameter("milton.configurator", MiltonConfiguration.class.getName()); - registration.addInitParameter("controllerPackagesToScan", "im.zhaojun.zfile.controller.home"); - registration.setOrder(1); - return registration; - } - - -} diff --git a/src/main/java/im/zhaojun/zfile/config/webdav/adapter/WebDavUrlAdapterImpl.java b/src/main/java/im/zhaojun/zfile/config/webdav/adapter/WebDavUrlAdapterImpl.java deleted file mode 100644 index 99ab632..0000000 --- a/src/main/java/im/zhaojun/zfile/config/webdav/adapter/WebDavUrlAdapterImpl.java +++ /dev/null @@ -1,41 +0,0 @@ - -package im.zhaojun.zfile.config.webdav.adapter; - -import im.zhaojun.zfile.model.constant.ZFileConstant; -import im.zhaojun.zfile.util.RegexMatchUtils; -import io.milton.http.HttpManager; -import io.milton.http.Request; -import io.milton.http.UrlAdapter; - -import java.util.regex.Matcher; - -/** - * WebDav路径适配器实现 - * - * @author me - * @date 2022/4/10 - */ -public class WebDavUrlAdapterImpl implements UrlAdapter { - - /** - * 获取url - * eg: domain.com/{webdavPrefix}/{driveId}/{folders} - * - * @param request 请求 - * @return {@link String} - */ - @Override - public String getUrl(Request request) { - // 匹配url前缀和驱动器ID - Matcher matcher = RegexMatchUtils.match("^" + ZFileConstant.WEB_DAV_PREFIX + "/(\\d+)(.*)", - HttpManager.decodeUrl(request.getAbsolutePath())); - final String driveId = RegexMatchUtils.getIndexResult(matcher, 1); - if (driveId == null) { - return ""; - } - // 获取摘除前缀和驱动器ID后的文件路径 - final String realPath = RegexMatchUtils.getIndexResult(matcher, 2); - return realPath != null ? realPath : ""; - } - -} diff --git a/src/main/java/im/zhaojun/zfile/config/webdav/auth/SystemConfigSecurityManager.java b/src/main/java/im/zhaojun/zfile/config/webdav/auth/SystemConfigSecurityManager.java deleted file mode 100644 index 5e528fc..0000000 --- a/src/main/java/im/zhaojun/zfile/config/webdav/auth/SystemConfigSecurityManager.java +++ /dev/null @@ -1,130 +0,0 @@ - -package im.zhaojun.zfile.config.webdav.auth; - -import cn.hutool.core.map.MapUtil; -import cn.hutool.crypto.SecureUtil; -import im.zhaojun.zfile.model.dto.SystemConfigDTO; -import io.milton.http.Auth; -import io.milton.http.Request; -import io.milton.http.Request.Method; -import io.milton.http.http11.auth.DigestResponse; -import io.milton.resource.Resource; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.Map; - -/** - * 基于当前系统配置的WebDav鉴权管理器 - * - * @author me - * @date 2022/4/10 - * @see io.milton.http.fs.SimpleSecurityManager - */ -public class SystemConfigSecurityManager implements io.milton.http.SecurityManager { - - private static final Logger log = LoggerFactory.getLogger(SystemConfigSecurityManager.class); - - private String realm = "SystemConfig"; - private Map nameAndPasswords; - - /** - * 根据系统配置创建安全管理器 - * - * @param systemConfig 系统配置DTO - */ - public SystemConfigSecurityManager(SystemConfigDTO systemConfig) { - if (systemConfig != null) { - this.nameAndPasswords = MapUtil.of(systemConfig.getUsername(), systemConfig.getPassword()); - } - } - - public Object getUserByName(String name) { - String actualPassword = nameAndPasswords.get(name); - if (actualPassword != null) { - return name; - } - return null; - } - - /** - * 用户名+密码身份验证 - * - * @param user 用户 - * @param password 密码 - * @return {@link Object} - */ - @Override - public Object authenticate(String user, String password) { - if (user.contains("@")) { - user = user.substring(0, user.indexOf("@")); - } - String actualPassword = nameAndPasswords.get(user); - if (actualPassword == null) { - log.debug("user not found: " + user); - return null; - } else { - //比对密码MD5摘要 - return (actualPassword.equals(SecureUtil.md5(password))) ? user : null; - } - } - - /** - * 请求摘要身份验证(不进行换算) - * - * @param digestRequest 消化的请求 - * @return {@link Object} - */ - @Override - public Object authenticate(DigestResponse digestRequest) { - String serverResponse = nameAndPasswords.get(digestRequest.getUser()); - String clientResponse = digestRequest.getResponseDigest(); - //比对密码MD5摘要 - if (serverResponse.equals(SecureUtil.md5(clientResponse))) { - return "ok"; - } else { - return null; - } - } - - @Override - public boolean authorise(Request request, Method method, Auth auth, Resource resource) { - if (auth == null) { - log.trace("authorise: declining because there is no auth object"); - return false; - } else { - if (auth.getTag() == null) { - log.trace("authorise: declining because there is no auth.getTag() object"); - return false; - } else { - log.trace("authorise: permitting because there is an authenticated user associated with this request"); - return true; - } - } - } - - @Override - public String getRealm(String host) { - return realm; - } - - /** - * @param realm the realm to set - */ - public void setRealm(String realm) { - this.realm = realm; - } - - public void setNameAndPasswords(Map nameAndPasswords) { - this.nameAndPasswords = nameAndPasswords; - } - - - @Override - public boolean isDigestAllowed() { - // 关闭请求摘要换算,client端请求时若换算为摘要,则无法和系统设置中获取的密码MD5比对 - return false; - } - -} - diff --git a/src/main/java/im/zhaojun/zfile/config/webdav/resolver/WebDavRedirectViewResolver.java b/src/main/java/im/zhaojun/zfile/config/webdav/resolver/WebDavRedirectViewResolver.java deleted file mode 100644 index a849791..0000000 --- a/src/main/java/im/zhaojun/zfile/config/webdav/resolver/WebDavRedirectViewResolver.java +++ /dev/null @@ -1,62 +0,0 @@ - -package im.zhaojun.zfile.config.webdav.resolver; - -import cn.hutool.core.util.URLUtil; -import im.zhaojun.zfile.model.constant.ZFileConstant; -import im.zhaojun.zfile.model.entity.webdav.WebDavFile; -import io.milton.common.View; -import io.milton.http.template.TemplateProcessor; -import io.milton.http.template.ViewResolver; -import io.milton.servlet.OutputStreamWrappingHttpServletResponse; -import io.milton.servlet.ServletResponse; - -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.io.OutputStream; -import java.util.Map; - -/** - * WebDav重定向视图处理器 - * Get注解handler返回字符串时,将使用本ViewResolver处理 - * - * @author me - * @date 2022/4/9 - */ -public class WebDavRedirectViewResolver implements ViewResolver { - - @Override - public TemplateProcessor resolveView(View view) { - return new RedirectTemplateProcessor(); - } - - /** - * 重定向模板处理程序 - * - * @author me - * @date 2022/04/10 - */ - public static class RedirectTemplateProcessor implements TemplateProcessor { - - @Override - public void execute(Map model, OutputStream out) { - try { - // 获取要下载的资源文件 - final Object resource = model.get("resource"); - if (!(resource instanceof WebDavFile)) { - throw new RuntimeException("couldn't get direct url."); - } - final WebDavFile file = (WebDavFile) resource; - // 构造文件直链的路径 - final String redirectPath = String.format("/%s/%s%s", ZFileConstant.DIRECT_LINK_PREFIX, file.getDriveId(), file.getFullPath()); - // 重定向到直链 - HttpServletResponse resp = new OutputStreamWrappingHttpServletResponse(ServletResponse.getResponse(), out); - resp.setStatus(301); - resp.setHeader("Location", URLUtil.encode(redirectPath)); - resp.setHeader("Connection", "close"); - resp.flushBuffer(); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - } -} diff --git a/src/main/java/im/zhaojun/zfile/context/DriveContext.java b/src/main/java/im/zhaojun/zfile/context/DriveContext.java deleted file mode 100644 index 17d79db..0000000 --- a/src/main/java/im/zhaojun/zfile/context/DriveContext.java +++ /dev/null @@ -1,147 +0,0 @@ -package im.zhaojun.zfile.context; - -import com.alibaba.fastjson.JSON; -import im.zhaojun.zfile.exception.InvalidDriveException; -import im.zhaojun.zfile.model.entity.DriveConfig; -import im.zhaojun.zfile.model.enums.StorageTypeEnum; -import im.zhaojun.zfile.service.DriveConfigService; -import im.zhaojun.zfile.service.base.AbstractBaseFileService; -import im.zhaojun.zfile.util.SpringContextHolder; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.BeansException; -import org.springframework.context.ApplicationContext; -import org.springframework.context.ApplicationContextAware; -import org.springframework.context.annotation.DependsOn; -import org.springframework.stereotype.Component; - -import javax.annotation.Resource; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.concurrent.ConcurrentHashMap; - -/** - * 每个驱动器对应一个 Service, 其中初始化好了与对象存储的连接信息. - * 此驱动器上下文环境用户缓存每个 Service, 避免重复创建连接. - * @author zhaojun - */ -@Component -@DependsOn("springContextHolder") -@Slf4j -public class DriveContext implements ApplicationContextAware { - - /** - * Map - * Map<驱动器 ID, 驱动器连接 Service> - */ - private static Map drivesServiceMap = new ConcurrentHashMap<>(); - - @Resource - private DriveConfigService driveConfigService; - - - /** - * 项目启动时, 自动调用数据库已存储的所有驱动器进行初始化. - */ - @Override - public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { - List list = driveConfigService.list(); - for (DriveConfig driveConfig : list) { - try { - init(driveConfig.getId()); - log.info("启动时初始化驱动器成功, 驱动器信息: {}", JSON.toJSONString(driveConfig)); - } catch (Exception e) { - log.error("启动时初始化驱动器失败, 驱动器信息: {}", JSON.toJSONString(driveConfig), e); - } - } - } - - - /** - * 初始化指定驱动器的 Service, 添加到上下文环境中. - * - * @param driveId - * 驱动器 ID. - */ - public void init(Integer driveId) { - AbstractBaseFileService baseFileService = getBeanByDriveId(driveId); - if (baseFileService != null) { - if (log.isDebugEnabled()) { - log.debug("尝试初始化驱动器, driveId: {}", driveId); - } - baseFileService.init(driveId); - if (log.isDebugEnabled()) { - log.debug("初始化驱动器成功, driveId: {}", driveId); - } - drivesServiceMap.put(driveId, baseFileService); - } - } - - - /** - * 获取指定驱动器的 Service. - * - * @param driveId - * 驱动器 ID - * - * @return 驱动器对应的 Service - */ - public AbstractBaseFileService get(Integer driveId) { - AbstractBaseFileService abstractBaseFileService = drivesServiceMap.get(driveId); - if (abstractBaseFileService == null) { - throw new InvalidDriveException("此驱动器不存在或初始化失败, 请检查后台参数配置"); - } - return abstractBaseFileService; - } - - - /** - * 销毁指定驱动器的 Service. - * - * @param driveId - * 驱动器 ID - */ - public void destroy(Integer driveId) { - if (log.isDebugEnabled()) { - log.debug("清理驱动器上下文对象, driveId: {}", driveId); - } - drivesServiceMap.remove(driveId); - } - - - /** - * 获取指定驱动器对应的 Service, 状态为未初始化 - * - * @param driveId - * 驱动器 ID - * - * @return 驱动器对应未初始化的 Service - */ - private AbstractBaseFileService getBeanByDriveId(Integer driveId) { - StorageTypeEnum storageTypeEnum = driveConfigService.findStorageTypeById(driveId); - Map beansOfType = SpringContextHolder.getBeansOfType(AbstractBaseFileService.class); - for (AbstractBaseFileService value : beansOfType.values()) { - if (Objects.equals(value.getStorageTypeEnum(), storageTypeEnum)) { - return SpringContextHolder.getBean(value.getClass()); - } - } - return null; - } - - - /** - * 更新上下文环境中的驱动器 ID - * - * @param updateId - * 驱动器原 ID - * - * @param newId - * 驱动器新 ID - */ - public void updateDriveId(Integer updateId, Integer newId) { - AbstractBaseFileService fileService = drivesServiceMap.remove(updateId); - fileService.setDriveId(newId); - drivesServiceMap.put(newId, fileService); - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/context/StorageTypeContext.java b/src/main/java/im/zhaojun/zfile/context/StorageTypeContext.java deleted file mode 100644 index d8838fe..0000000 --- a/src/main/java/im/zhaojun/zfile/context/StorageTypeContext.java +++ /dev/null @@ -1,56 +0,0 @@ -package im.zhaojun.zfile.context; - -import im.zhaojun.zfile.model.enums.StorageTypeEnum; -import im.zhaojun.zfile.service.base.AbstractBaseFileService; -import org.springframework.beans.BeansException; -import org.springframework.context.ApplicationContext; -import org.springframework.context.ApplicationContextAware; -import org.springframework.stereotype.Component; - -import java.util.Map; - - -/** - * 存储类型工厂类 - * @author zhaojun - */ -@Component -public class StorageTypeContext implements ApplicationContextAware { - - private static Map storageTypeEnumFileServiceMap; - - private static ApplicationContext applicationContext; - - - /** - * 项目启动时执行 - */ - @Override - public void setApplicationContext(ApplicationContext act) throws BeansException { - applicationContext = act; - - // 获取 Spring 容器中所有 FileService 类型的类 - storageTypeEnumFileServiceMap = act.getBeansOfType(AbstractBaseFileService.class); - } - - - /** - * 获取指定存储类型 Service - */ - public static AbstractBaseFileService getStorageTypeService(StorageTypeEnum type) { - AbstractBaseFileService result = null; - for (AbstractBaseFileService fileService : storageTypeEnumFileServiceMap.values()) { - if (fileService.getStorageTypeEnum() == type) { - result = fileService; - break; - } - } - return result; - } - - - public static ApplicationContext getApplicationContext() { - return applicationContext; - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/controller/admin/AdminController.java b/src/main/java/im/zhaojun/zfile/controller/admin/AdminController.java deleted file mode 100644 index 1ecc0ab..0000000 --- a/src/main/java/im/zhaojun/zfile/controller/admin/AdminController.java +++ /dev/null @@ -1,54 +0,0 @@ -package im.zhaojun.zfile.controller.admin; - -import im.zhaojun.zfile.model.dto.SystemConfigDTO; -import im.zhaojun.zfile.model.support.ResultBean; -import im.zhaojun.zfile.service.SystemConfigService; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import javax.annotation.Resource; - -/** - * 管理后台接口 - * @author zhaojun - */ -@RestController -@RequestMapping("/admin") -public class AdminController { - - @Resource - private SystemConfigService systemConfigService; - - /** - * 获取系统配置 - */ - @GetMapping("/config") - public ResultBean getConfig() { - SystemConfigDTO systemConfigDTO = systemConfigService.getSystemConfig(); - return ResultBean.success(systemConfigDTO); - } - - - /** - * 更新系统配置 - */ - @PostMapping("/config") - public ResultBean updateConfig(SystemConfigDTO systemConfigDTO) { - systemConfigDTO.setId(1); - systemConfigService.updateSystemConfig(systemConfigDTO); - return ResultBean.success(); - } - - - /** - * 修改管理员登陆密码 - */ - @PostMapping("/update-pwd") - public ResultBean updatePwd(String username, String password) { - systemConfigService.updateUsernameAndPwd(username, password); - return ResultBean.success(); - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/controller/admin/CacheController.java b/src/main/java/im/zhaojun/zfile/controller/admin/CacheController.java deleted file mode 100644 index c91ba16..0000000 --- a/src/main/java/im/zhaojun/zfile/controller/admin/CacheController.java +++ /dev/null @@ -1,72 +0,0 @@ -package im.zhaojun.zfile.controller.admin; - -import im.zhaojun.zfile.model.dto.CacheInfoDTO; -import im.zhaojun.zfile.model.support.ResultBean; -import im.zhaojun.zfile.service.DriveConfigService; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import javax.annotation.Resource; - -/** - * 缓存 Controller - * - * @author zhaojun - */ -@RestController -@RequestMapping("/admin/cache") -public class CacheController { - - @Resource - private DriveConfigService driveConfigService; - - @PostMapping("/{driveId}/enable") - public ResultBean enableCache(@PathVariable("driveId") Integer driveId) { - driveConfigService.updateCacheStatus(driveId, true); - return ResultBean.success(); - } - - - @PostMapping("/{driveId}/disable") - public ResultBean disableCache(@PathVariable("driveId") Integer driveId) { - driveConfigService.updateCacheStatus(driveId, false); - return ResultBean.success(); - } - - - @GetMapping("/{driveId}/info") - public ResultBean cacheInfo(@PathVariable("driveId") Integer driveId) { - CacheInfoDTO cacheInfo = driveConfigService.findCacheInfo(driveId); - return ResultBean.success(cacheInfo); - } - - - @PostMapping("/{driveId}/refresh") - public ResultBean refreshCache(@PathVariable("driveId") Integer driveId, String key) throws Exception { - driveConfigService.refreshCache(driveId, key); - return ResultBean.success(); - } - - @PostMapping("/{driveId}/auto-refresh/start") - public ResultBean enableAutoRefresh(@PathVariable("driveId") Integer driveId) { - driveConfigService.startAutoCacheRefresh(driveId); - return ResultBean.success(); - } - - - @PostMapping("/{driveId}/auto-refresh/stop") - public ResultBean disableAutoRefresh(@PathVariable("driveId") Integer driveId) { - driveConfigService.stopAutoCacheRefresh(driveId); - return ResultBean.success(); - } - - @PostMapping("/{driveId}/clear") - public ResultBean clearCache(@PathVariable("driveId") Integer driveId) { - driveConfigService.clearCache(driveId); - return ResultBean.success(); - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/controller/admin/DebugController.java b/src/main/java/im/zhaojun/zfile/controller/admin/DebugController.java deleted file mode 100644 index 6379860..0000000 --- a/src/main/java/im/zhaojun/zfile/controller/admin/DebugController.java +++ /dev/null @@ -1,33 +0,0 @@ -package im.zhaojun.zfile.controller.admin; - - -import im.zhaojun.zfile.model.support.ResultBean; -import im.zhaojun.zfile.service.SystemConfigService; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.ResponseBody; - -import javax.annotation.Resource; - -@Controller -public class DebugController { - - @Value("${zfile.debug}") - private Boolean debug; - - @Resource - private SystemConfigService systemConfigService; - - @ResponseBody - @GetMapping("/debug/resetPwd") - public ResultBean resetPwd() { - if (debug) { - systemConfigService.updateUsernameAndPwd("admin", "123456"); - return ResultBean.success(); - } else { - return ResultBean.error("未开启 DEBUG 模式,不允许进行此操作。"); - } - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/controller/admin/DriveController.java b/src/main/java/im/zhaojun/zfile/controller/admin/DriveController.java deleted file mode 100644 index d3ac576..0000000 --- a/src/main/java/im/zhaojun/zfile/controller/admin/DriveController.java +++ /dev/null @@ -1,173 +0,0 @@ -package im.zhaojun.zfile.controller.admin; - -import com.alibaba.fastjson.JSONObject; -import im.zhaojun.zfile.model.dto.DriveConfigDTO; -import im.zhaojun.zfile.model.entity.DriveConfig; -import im.zhaojun.zfile.model.entity.FilterConfig; -import im.zhaojun.zfile.model.support.ResultBean; -import im.zhaojun.zfile.service.DriveConfigService; -import im.zhaojun.zfile.service.FilterConfigService; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import javax.annotation.Resource; -import java.util.List; - -/** - * 驱动器相关操作 Controller - * @author zhaojun - */ -@RestController -@RequestMapping("/admin") -public class DriveController { - - @Resource - private DriveConfigService driveConfigService; - - @Resource - private FilterConfigService filterConfigService; - - - /** - * 获取所有驱动器列表 - * - * @return 驱动器列表 - */ - @GetMapping("/drives") - public ResultBean driveList() { - List list = driveConfigService.list(); - return ResultBean.success(list); - } - - - /** - * 获取指定驱动器基本信息及其参数 - * - * @param driveId - * 驱动器 ID - * - * @return 驱动器基本信息 - */ - @GetMapping("/drive/{driveId}") - public ResultBean driveItem(@PathVariable Integer driveId) { - DriveConfigDTO driveConfig = driveConfigService.findDriveConfigDTOById(driveId); - return ResultBean.success(driveConfig); - } - - - /** - * 保存驱动器设置 - */ - @PostMapping("/drive") - public ResultBean saveDriveItem(@RequestBody DriveConfigDTO driveConfigDTO) { - driveConfigService.saveDriveConfigDTO(driveConfigDTO); - return ResultBean.success(); - } - - - /** - * 删除驱动器设置 - * - * @param driveId - * 驱动器 ID - */ - @DeleteMapping("/drive/{driveId}") - public ResultBean deleteDriveItem(@PathVariable Integer driveId) { - driveConfigService.deleteById(driveId); - return ResultBean.success(); - } - - - /** - * 启用驱动器 - * - * @param driveId - * 驱动器 ID - */ - @PostMapping("/drive/{driveId}/enable") - public ResultBean enable(@PathVariable Integer driveId) { - DriveConfig driveConfig = driveConfigService.findById(driveId); - driveConfig.setEnable(true); - driveConfigService.updateDriveConfig(driveConfig); - return ResultBean.success(); - } - - - /** - * 停止驱动器 - * - * @param driveId - * 驱动器 ID - */ - @PostMapping("/drive/{driveId}/disable") - public ResultBean disable(@PathVariable Integer driveId) { - DriveConfig driveConfig = driveConfigService.findById(driveId); - driveConfig.setEnable(false); - driveConfigService.updateDriveConfig(driveConfig); - return ResultBean.success(); - } - - - /** - * 根据驱动器 ID 获取过滤文件列表 - * - * @param driveId - * 驱动器 ID - */ - @GetMapping("/drive/{driveId}/filters") - public ResultBean getFilters(@PathVariable Integer driveId) { - return ResultBean.success(filterConfigService.findByDriveId(driveId)); - } - - - /** - * 停止驱动器 - * - * @param driveId - * 驱动器 ID - */ - @PostMapping("/drive/{driveId}/filters") - public ResultBean saveFilters(@RequestBody List filter, @PathVariable Integer driveId) { - filterConfigService.batchSave(filter, driveId); - return ResultBean.success(); - } - - - /** - * 保存拖拽排序信息 - * - * @param driveConfigs - * 拖拽排序信息 - */ - @PostMapping("/drive/drag") - public ResultBean saveDriveDrag(@RequestBody List driveConfigs) { - driveConfigService.saveDriveDrag(driveConfigs); - return ResultBean.success(); - } - - - /** - * 更新驱动器 ID - * - * @param updateId - * 驱动器原 ID - * - * @param newId - * 驱动器新 ID - */ - @PostMapping("/drive/updateId") - public ResultBean updateDriveId(Integer updateId, Integer newId) { - DriveConfig driveConfig = driveConfigService.findById(newId); - if (driveConfig != null) { - return ResultBean.error("已存在的 ID,请更换 ID 后重试。"); - } - driveConfigService.updateId(updateId, newId); - return ResultBean.success(); - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/controller/admin/LogController.java b/src/main/java/im/zhaojun/zfile/controller/admin/LogController.java deleted file mode 100644 index 04cc538..0000000 --- a/src/main/java/im/zhaojun/zfile/controller/admin/LogController.java +++ /dev/null @@ -1,38 +0,0 @@ -package im.zhaojun.zfile.controller.admin; - -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.ZipUtil; -import im.zhaojun.zfile.util.FileUtil; -import lombok.extern.slf4j.Slf4j; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.io.File; -import java.util.Date; - -/** - * 日志相关 Controller - * @author zhaojun - */ -@RestController -@RequestMapping("/admin") -@Slf4j -public class LogController { - - /** - * 系统日志下载 - */ - @GetMapping("/log") - public ResponseEntity downloadLog() { - if (log.isDebugEnabled()) { - log.debug("下载诊断日志"); - } - String userHome = System.getProperty("user.home"); - File fileZip = ZipUtil.zip(userHome + "/.zfile/logs"); - String currentDate = DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss"); - return FileUtil.exportSingleThread(fileZip, "ZFile 诊断日志 - " + currentDate + ".zip"); - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/controller/admin/LoginController.java b/src/main/java/im/zhaojun/zfile/controller/admin/LoginController.java deleted file mode 100644 index 9a61a78..0000000 --- a/src/main/java/im/zhaojun/zfile/controller/admin/LoginController.java +++ /dev/null @@ -1 +0,0 @@ -package im.zhaojun.zfile.controller.admin; import cn.dev33.satoken.stp.StpUtil; import cn.hutool.crypto.SecureUtil; import im.zhaojun.zfile.model.dto.SystemConfigDTO; import im.zhaojun.zfile.model.support.ResultBean; import im.zhaojun.zfile.service.SystemConfigService; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.Objects; @RestController public class LoginController { @Resource private SystemConfigService systemConfigService; @PostMapping("/doLogin") public ResultBean doLogin(String username, String password) { SystemConfigDTO systemConfig = systemConfigService.getSystemConfig(); if (Objects.equals(username, systemConfig.getUsername()) && Objects.equals(SecureUtil.md5(password), systemConfig.getPassword())) { StpUtil.login("admin"); return ResultBean.success("登录成功"); } return ResultBean.error("登录失败"); } @GetMapping("/logout") public ResultBean logout() { StpUtil.logout(); return ResultBean.success("注销成功"); } } \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/controller/admin/MateDataController.java b/src/main/java/im/zhaojun/zfile/controller/admin/MateDataController.java deleted file mode 100644 index e3e065f..0000000 --- a/src/main/java/im/zhaojun/zfile/controller/admin/MateDataController.java +++ /dev/null @@ -1,47 +0,0 @@ -package im.zhaojun.zfile.controller.admin; - -import im.zhaojun.zfile.context.StorageTypeContext; -import im.zhaojun.zfile.model.entity.StorageConfig; -import im.zhaojun.zfile.model.enums.StorageTypeEnum; -import im.zhaojun.zfile.model.support.ResultBean; -import im.zhaojun.zfile.service.base.AbstractBaseFileService; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.util.List; - -/** - * 系统元数据 Controller - * @author zhaojun - */ -@RestController -@RequestMapping("/admin") -public class MateDataController { - - /** - * 返回支持的存储引擎. - */ - @GetMapping("/support-strategy") - public ResultBean supportStrategy() { - StorageTypeEnum[] values = StorageTypeEnum.values(); - return ResultBean.successData(values); - } - - - /** - * 获取指定存储策略的表单域 - * - * @param storageType - * 存储策略 - * - * @return 所有表单域 - */ - @GetMapping("/strategy-form") - public ResultBean getFormByStorageType(StorageTypeEnum storageType) { - AbstractBaseFileService storageTypeService = StorageTypeContext.getStorageTypeService(storageType); - List storageConfigList = storageTypeService.storageStrategyConfigList(); - return ResultBean.success(storageConfigList); - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/controller/admin/ShortLinkManagerController.java b/src/main/java/im/zhaojun/zfile/controller/admin/ShortLinkManagerController.java deleted file mode 100644 index a5fb99d..0000000 --- a/src/main/java/im/zhaojun/zfile/controller/admin/ShortLinkManagerController.java +++ /dev/null @@ -1,45 +0,0 @@ -package im.zhaojun.zfile.controller.admin; - -import im.zhaojun.zfile.model.support.ResultBean; -import im.zhaojun.zfile.service.ShortLinkConfigService; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; - -import javax.annotation.Resource; - -/** - * 直链管理 Controller - * - * @author zhaojun - */ -@Controller -@RequestMapping("/admin") -public class ShortLinkManagerController { - - @Resource - private ShortLinkConfigService shortLinkConfigService; - - @GetMapping("/link/list") - @ResponseBody - public ResultBean list(String key, - String url, - String dateFrom, - String dateTo, - Integer page, - Integer limit, - @RequestParam(required = false, defaultValue = "createDate") String orderBy, - @RequestParam(required = false, defaultValue = "desc") String orderDirection) { - return ResultBean.success(shortLinkConfigService.find(key, url, dateFrom, dateTo, page, limit, orderBy, orderDirection)); - } - - @GetMapping("/link/delete/{id}") - @ResponseBody - public ResultBean deleteById(@PathVariable Integer id) { - shortLinkConfigService.deleteById(id); - return ResultBean.success(); - } -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/controller/home/DirectLinkController.java b/src/main/java/im/zhaojun/zfile/controller/home/DirectLinkController.java deleted file mode 100644 index 88829d8..0000000 --- a/src/main/java/im/zhaojun/zfile/controller/home/DirectLinkController.java +++ /dev/null @@ -1,102 +0,0 @@ -package im.zhaojun.zfile.controller.home; - -import cn.hutool.core.io.FileUtil; -import cn.hutool.core.util.StrUtil; -import cn.hutool.core.util.URLUtil; -import im.zhaojun.zfile.context.DriveContext; -import im.zhaojun.zfile.exception.NotEnabledDriveException; -import im.zhaojun.zfile.model.constant.ZFileConstant; -import im.zhaojun.zfile.model.dto.FileItemDTO; -import im.zhaojun.zfile.model.entity.DriveConfig; -import im.zhaojun.zfile.model.enums.FileTypeEnum; -import im.zhaojun.zfile.service.DriveConfigService; -import im.zhaojun.zfile.service.base.AbstractBaseFileService; -import im.zhaojun.zfile.util.HttpUtil; -import org.springframework.stereotype.Controller; -import org.springframework.util.AntPathMatcher; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.servlet.HandlerMapping; - -import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.io.PrintWriter; -import java.util.Objects; - -/** - * 直链 Controller - * @author Zhao Jun - */ -@Controller -public class DirectLinkController { - - @Resource - private DriveContext driveContext; - - @Resource - private DriveConfigService driveConfigService; - - /** - * 获取指定驱动器, 某个文件的直链, 然后重定向过去. - * @param driveId - * 驱动器 ID - * - * @return 重定向至文件直链 - */ - @GetMapping("/${zfile.directLinkPrefix}/{driveId}/**") - public String directlink(@PathVariable("driveId") Integer driveId, - final HttpServletRequest request, - final HttpServletResponse response) throws IOException { - DriveConfig driveConfig = driveConfigService.findById(driveId); - Boolean enable = driveConfig.getEnable(); - if (!enable) { - throw new NotEnabledDriveException(); - } - - String path = (String) request.getAttribute( - HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE); - String bestMatchPattern = (String) request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE); - AntPathMatcher apm = new AntPathMatcher(); - String filePath = apm.extractPathWithinPattern(bestMatchPattern, path); - - if (filePath.length() > 0 && filePath.charAt(0) != ZFileConstant.PATH_SEPARATOR_CHAR) { - filePath = "/" + filePath; - } - - AbstractBaseFileService fileService = driveContext.get(driveId); - FileItemDTO fileItem = fileService.getFileItem(filePath); - - String url = fileItem.getUrl(); - - if (StrUtil.equalsIgnoreCase(FileUtil.extName(fileItem.getName()), "m3u8")) { - String textContent = HttpUtil.getTextContent(url); - response.setContentType("application/vnd.apple.mpegurl;charset=utf-8"); - PrintWriter out = response.getWriter(); - out.write(textContent); - out.flush(); - out.close(); - return null; - } - - int queryIndex = url.indexOf('?'); - - if (queryIndex != -1) { - String origin = url.substring(0, queryIndex); - String queryString = url.substring(queryIndex + 1); - - url = URLUtil.encode(origin) + "?" + URLUtil.encode(queryString); - } else { - url = URLUtil.encode(url); - } - - - if (Objects.equals(fileItem.getType(), FileTypeEnum.FOLDER)) { - return "redirect:" + fileItem.getUrl(); - } else { - return "redirect:" + url; - } - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/controller/home/FileController.java b/src/main/java/im/zhaojun/zfile/controller/home/FileController.java deleted file mode 100644 index 55b4d47..0000000 --- a/src/main/java/im/zhaojun/zfile/controller/home/FileController.java +++ /dev/null @@ -1,243 +0,0 @@ -package im.zhaojun.zfile.controller.home; - -import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.JSON; -import im.zhaojun.zfile.context.DriveContext; -import im.zhaojun.zfile.exception.NotEnabledDriveException; -import im.zhaojun.zfile.exception.PasswordVerifyException; -import im.zhaojun.zfile.model.constant.ZFileConstant; -import im.zhaojun.zfile.model.dto.DriveListDTO; -import im.zhaojun.zfile.model.dto.FileItemDTO; -import im.zhaojun.zfile.model.dto.FileListDTO; -import im.zhaojun.zfile.model.dto.SystemFrontConfigDTO; -import im.zhaojun.zfile.model.entity.DriveConfig; -import im.zhaojun.zfile.model.enums.StorageTypeEnum; -import im.zhaojun.zfile.model.support.ResultBean; -import im.zhaojun.zfile.model.support.VerifyResult; -import im.zhaojun.zfile.service.DriveConfigService; -import im.zhaojun.zfile.service.FilterConfigService; -import im.zhaojun.zfile.service.SystemConfigService; -import im.zhaojun.zfile.service.base.AbstractBaseFileService; -import im.zhaojun.zfile.util.FileComparator; -import im.zhaojun.zfile.util.HttpUtil; -import im.zhaojun.zfile.util.StringUtils; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.client.HttpClientErrorException; - -import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; -import java.util.Optional; - -/** - * 前台文件管理 - * @author zhaojun - */ -@Slf4j -@RequestMapping("/api") -@RestController -public class FileController { - - @Value("${zfile.debug}") - private Boolean debug; - - @Resource - private SystemConfigService systemConfigService; - - @Resource - private DriveContext driveContext; - - @Resource - private DriveConfigService driveConfigService; - - @Resource - private FilterConfigService filterConfigService; - - - /** - * 获取所有已启用的驱动器 - * - * @return 所有已启用驱动器 - */ - @GetMapping("/drive/list") - public ResultBean drives() { - List driveList = driveConfigService.listOnlyEnable(); - boolean isInstall = systemConfigService.getIsInstall(); - DriveListDTO driveListDTO = new DriveListDTO(driveList, isInstall); - return ResultBean.success(driveListDTO); - } - - /** - * 获取某个驱动器下, 指定路径的数据 - * - * @param driveId - * 驱动器 ID - * - * @param path - * 路径 - * - * @param password - * 文件夹密码, 某些文件夹需要密码才能访问, 当不需要密码时, 此参数可以为空 - * - * @return 当前路径下所有文件及文件夹 - */ - @GetMapping("/list/{driveId}") - public ResultBean list(@PathVariable(name = "driveId") Integer driveId, - @RequestParam(defaultValue = "/") String path, - @RequestParam(required = false) String password, - @RequestParam(required = false) String orderBy, - @RequestParam(required = false, defaultValue = "asc") String orderDirection) throws Exception { - AbstractBaseFileService fileService = driveContext.get(driveId); - List fileItemList = fileService.fileList(StringUtils.removeDuplicateSeparator(ZFileConstant.PATH_SEPARATOR + path + ZFileConstant.PATH_SEPARATOR)); - - // 创建副本, 防止排序和过滤对原数据产生影响 - List copyList = new ArrayList<>(fileItemList); - - // 校验密码, 如果校验不通过, 则返回错误消息 - VerifyResult verifyResult = verifyPassword(copyList, driveId, path, password); - if (!verifyResult.isPassed()) { - return ResultBean.error(verifyResult.getMsg(), verifyResult.getCode()); - } - - // 过滤掉驱动器配置的表达式中要隐藏的数据 - filterFileList(copyList, driveId); - - // 按照自然排序 - copyList.sort(new FileComparator(orderBy, orderDirection)); - - - - // 开始获取参数信息 - SystemFrontConfigDTO systemConfig = systemConfigService.getSystemFrontConfig(driveId); - DriveConfig driveConfig = driveConfigService.findById(driveId); - Boolean enable = driveConfig.getEnable(); - if (!enable) { - throw new NotEnabledDriveException(); - } - - systemConfig.setDebugMode(debug); - systemConfig.setDefaultSwitchToImgMode(driveConfig.getDefaultSwitchToImgMode()); - systemConfig.setDirectLinkPrefix(ZFileConstant.DIRECT_LINK_PREFIX); - - // 如果不是 FTP 模式,则尝试获取当前文件夹中的 README 文件,有则读取,没有则停止 - if (!Objects.equals(driveConfig.getType(), StorageTypeEnum.FTP)) { - fileItemList.stream() - .filter(fileItemDTO -> Objects.equals(ZFileConstant.README_FILE_NAME, fileItemDTO.getName())) - .findFirst() - .ifPresent(fileItemDTO -> { - String readme = HttpUtil.getTextContent(fileItemDTO.getUrl()); - systemConfig.setReadme(readme); - }); - } - - return ResultBean.successData(new FileListDTO(copyList, systemConfig)); - } - - - /** - * 校验密码 - * @param fileItemList - * 文件列表 - * @param driveId - * 驱动器 ID - * @param path - * 请求路径 - * @param inputPassword - * 用户输入的密码 - * @return 是否校验通过 - */ - private VerifyResult verifyPassword(List fileItemList, Integer driveId, String path, String inputPassword) { - AbstractBaseFileService fileService = driveContext.get(driveId); - - for (FileItemDTO fileItemDTO : fileItemList) { - if (ZFileConstant.PASSWORD_FILE_NAME.equals(fileItemDTO.getName())) { - String expectedPasswordContent; - try { - expectedPasswordContent = HttpUtil.getTextContent(fileItemDTO.getUrl()); - } catch (HttpClientErrorException httpClientErrorException) { - log.trace("尝试重新获取密码文件缓存中链接后仍失败, driveId: {}, path: {}, inputPassword: {}, passwordFile:{} ", - driveId, path, inputPassword, JSON.toJSONString(fileItemDTO), httpClientErrorException); - try { - String pwdFileFullPath = StringUtils.removeDuplicateSeparator(fileItemDTO.getPath() + ZFileConstant.PATH_SEPARATOR + fileItemDTO.getName()); - FileItemDTO pwdFileItem = fileService.getFileItem(pwdFileFullPath); - expectedPasswordContent = HttpUtil.getTextContent(pwdFileItem.getUrl()); - } catch (Exception e) { - throw new PasswordVerifyException("此文件夹为加密文件夹, 但密码检查异常, 请联系管理员检查密码设置", e); - } - } catch (Exception e) { - throw new PasswordVerifyException("此文件夹为加密文件夹, 但密码检查异常, 请联系管理员检查密码设置", e); - } - - if (matchPassword(expectedPasswordContent, inputPassword)) { - break; - } - - if (StrUtil.isEmpty(inputPassword)) { - return VerifyResult.fail("此文件夹需要密码.", ResultBean.REQUIRED_PASSWORD); - } - return VerifyResult.fail("密码错误.", ResultBean.INVALID_PASSWORD); - } - } - - return VerifyResult.success(); - } - - - /** - * 校验两个密码是否相同, 忽略空白字符 - * - * @param expectedPasswordContent - * 预期密码 - * - * @param password - * 实际输入密码 - * - * @return 是否匹配 - */ - private boolean matchPassword(String expectedPasswordContent, String password) { - if (Objects.equals(expectedPasswordContent, password)) { - return true; - } - - if (expectedPasswordContent == null) { - return false; - } - - if (password == null) { - return false; - } - - expectedPasswordContent = expectedPasswordContent.replace("\n", "").trim(); - password = password.replace("\n", "").trim(); - return Objects.equals(expectedPasswordContent, password); - } - - - /** - * 过滤文件列表, 去除密码, 文档文件和此驱动器通过规则过滤的文件. - * - * @param fileItemList - * 文件列表 - * @param driveId - * 驱动器 ID - */ - private void filterFileList(List fileItemList, Integer driveId) { - if (fileItemList == null) { - return; - } - - fileItemList.removeIf( - fileItem -> ZFileConstant.PASSWORD_FILE_NAME.equals(fileItem.getName()) - || ZFileConstant.README_FILE_NAME.equals(fileItem.getName()) - || filterConfigService.filterResultIsHidden(driveId, StringUtils.concatUrl(fileItem.getPath(), fileItem.getName())) - ); - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/controller/home/FileParseController.java b/src/main/java/im/zhaojun/zfile/controller/home/FileParseController.java deleted file mode 100644 index 9bd2538..0000000 --- a/src/main/java/im/zhaojun/zfile/controller/home/FileParseController.java +++ /dev/null @@ -1,45 +0,0 @@ -package im.zhaojun.zfile.controller.home; - -import im.zhaojun.zfile.model.support.ResultBean; -import im.zhaojun.zfile.util.AudioUtil; -import im.zhaojun.zfile.util.HttpUtil; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * 文件解析 Controller - * @author zhaojun - */ -@RestController -@RequestMapping("/common") -public class FileParseController { - - /** - * 获取文件内容, 仅限用于 txt, md, ini 等普通文本文件. - * - * @param url - * 文件路径 - * - * @return 文件内容 - */ - @GetMapping("/content") - public ResultBean getContent(String url) { - return ResultBean.successData(HttpUtil.getTextContent(url)); - } - - - /** - * 获取音频文件信息 - * - * @param url - * 文件 URL - * - * @return 音频信息, 标题封面等信息 - */ - @GetMapping("/audio-info") - public ResultBean getAudioInfo(String url) throws Exception { - return ResultBean.success(AudioUtil.getAudioInfo(url)); - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/controller/home/LocalController.java b/src/main/java/im/zhaojun/zfile/controller/home/LocalController.java deleted file mode 100644 index b16baae..0000000 --- a/src/main/java/im/zhaojun/zfile/controller/home/LocalController.java +++ /dev/null @@ -1,52 +0,0 @@ -package im.zhaojun.zfile.controller.home; - -import im.zhaojun.zfile.context.DriveContext; -import im.zhaojun.zfile.model.constant.ZFileConstant; -import im.zhaojun.zfile.service.impl.LocalServiceImpl; -import im.zhaojun.zfile.util.FileUtil; -import im.zhaojun.zfile.util.StringUtils; -import org.springframework.stereotype.Controller; -import org.springframework.util.AntPathMatcher; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.servlet.HandlerMapping; - -import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.File; - -/** - * 本地存储 Controller - * @author zhaojun - */ -@Controller -public class LocalController { - - @Resource - private DriveContext driveContext; - - /** - * 本地存储下载指定文件 - * - * @param driveId - * 驱动器 ID - * @param type - * 附件预览类型: - * download:下载 - * default: 浏览器默认行为 - */ - @GetMapping("/file/{driveId}/**") - @ResponseBody - public void downAttachment(@PathVariable("driveId") Integer driveId, String type, final HttpServletRequest request, final HttpServletResponse response) { - String path = (String) request.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE); - String bestMatchPattern = (String) request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE); - AntPathMatcher apm = new AntPathMatcher(); - String filePath = apm.extractPathWithinPattern(bestMatchPattern, path); - LocalServiceImpl localService = (LocalServiceImpl) driveContext.get(driveId); - File file = new File(StringUtils.removeDuplicateSeparator(localService.getFilePath() + ZFileConstant.PATH_SEPARATOR + filePath)); - FileUtil.export(request, response, file, type); - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/controller/home/ShortLinkController.java b/src/main/java/im/zhaojun/zfile/controller/home/ShortLinkController.java deleted file mode 100644 index 0760939..0000000 --- a/src/main/java/im/zhaojun/zfile/controller/home/ShortLinkController.java +++ /dev/null @@ -1,107 +0,0 @@ -package im.zhaojun.zfile.controller.home; - -import cn.hutool.core.util.RandomUtil; -import cn.hutool.core.util.URLUtil; -import im.zhaojun.zfile.model.constant.ZFileConstant; -import im.zhaojun.zfile.model.dto.SystemConfigDTO; -import im.zhaojun.zfile.model.entity.ShortLinkConfig; -import im.zhaojun.zfile.model.support.ResultBean; -import im.zhaojun.zfile.service.ShortLinkConfigService; -import im.zhaojun.zfile.service.SystemConfigService; -import im.zhaojun.zfile.util.StringUtils; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; - -import javax.annotation.Resource; - -/** - * 短链 Controller - * @author zhao - */ -@Controller -public class ShortLinkController { - - @Resource - private SystemConfigService systemConfigService; - - @Resource - private ShortLinkConfigService shortLinkConfigService; - - @GetMapping("/api/short-link") - @ResponseBody - public ResultBean shortLink(String driveId, String path) { - SystemConfigDTO systemConfig = systemConfigService.getSystemConfig(); - String domain = systemConfig.getDomain(); - // 拼接直链地址. - String fullPath = StringUtils.concatUrl(StringUtils.DELIMITER_STR, ZFileConstant.DIRECT_LINK_PREFIX, driveId, path); - ShortLinkConfig shortLinkConfig = shortLinkConfigService.findByUrl(fullPath); - - if (shortLinkConfig == null) { - - String randomKey; - do { - // 获取短链 - randomKey = RandomUtil.randomString(6); - shortLinkConfig = shortLinkConfigService.findByKey(randomKey); - } while (shortLinkConfig != null); - - shortLinkConfig = new ShortLinkConfig(); - shortLinkConfig.setKey(randomKey); - shortLinkConfig.setUrl(fullPath); - shortLinkConfigService.save(shortLinkConfig); - } - - - String shortUrl = StringUtils.removeDuplicateSeparator(domain + "/s/" + shortLinkConfig.getKey()); - return ResultBean.successData(shortUrl); - } - - @GetMapping("/s/{key}") - public String parseShortKey(@PathVariable String key) { - ShortLinkConfig shortLinkConfig = shortLinkConfigService.findByKey(key); - if (shortLinkConfig == null) { - throw new RuntimeException("此直链不存在或已失效."); - } - - SystemConfigDTO systemConfig = systemConfigService.getSystemConfig(); - String domain = systemConfig.getDomain(); - - String url = URLUtil.encode(StringUtils.removeDuplicateSeparator(domain + shortLinkConfig.getUrl())); - return "redirect:" + url; - } - - - @GetMapping("admin/api/short-link/key") - @ResponseBody - public ResultBean updateShortKey(Integer id, String newKey) { - ShortLinkConfig newShortLinkConfig = shortLinkConfigService.findByKey(newKey); - if (newShortLinkConfig != null) { - throw new RuntimeException("您输入的 Key 已存在,请重新输入"); - } - - ShortLinkConfig shortLinkConfig = shortLinkConfigService.findById(id); - if (shortLinkConfig == null) { - throw new RuntimeException("此直链不存在或已失效."); - } - - shortLinkConfig.setKey(newKey); - shortLinkConfigService.save(shortLinkConfig); - return ResultBean.success(); - } - - /** - * 批量删除直链 - */ - @DeleteMapping("admin/api/short-link") - @ResponseBody - public ResultBean batchDelete(@RequestParam("id[]") Integer[] ids) { - for (Integer id : ids) { - shortLinkConfigService.deleteById(id); - } - return ResultBean.success(); - } -} diff --git a/src/main/java/im/zhaojun/zfile/controller/home/WebDavController.java b/src/main/java/im/zhaojun/zfile/controller/home/WebDavController.java deleted file mode 100644 index 1418c1b..0000000 --- a/src/main/java/im/zhaojun/zfile/controller/home/WebDavController.java +++ /dev/null @@ -1,159 +0,0 @@ -package im.zhaojun.zfile.controller.home; - -import com.alibaba.fastjson.JSON; -import im.zhaojun.zfile.config.ApplicationContextConfigure; -import im.zhaojun.zfile.context.DriveContext; -import im.zhaojun.zfile.model.constant.ZFileConstant; -import im.zhaojun.zfile.model.dto.FileItemDTO; -import im.zhaojun.zfile.model.entity.webdav.WebDavEntity; -import im.zhaojun.zfile.model.entity.webdav.WebDavFile; -import im.zhaojun.zfile.model.entity.webdav.WebDavFolder; -import im.zhaojun.zfile.service.base.AbstractBaseFileService; -import im.zhaojun.zfile.util.RegexMatchUtils; -import io.milton.annotations.*; -import io.milton.http.HttpManager; -import lombok.extern.slf4j.Slf4j; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; - -import java.util.Collections; -import java.util.Date; -import java.util.List; - -/** - * WebDav控制器 - * - * @author me - * @date 2022/4/9 - */ -@Slf4j -@ResourceController -@ConditionalOnProperty(value = "webdav.enable", havingValue = "true") -public class WebDavController { - private static final Logger LOGGER = LoggerFactory.getLogger(WebDavController.class); - - - /** - * 获取根目录文件夹 - * - * @return {@link WebDavFolder} WebDav文件夹 - */ - @Root - public WebDavFolder getRootFolder() { - return new WebDavFolder(ZFileConstant.PATH_SEPARATOR, getDriveId()); - } - - /** - * 获取根目录子文件/文件夹(控制器) - * - * @param rootFolder 根文件夹 - * @return {@link WebDavController} 根控制器 - */ - @ChildrenOf - public WebDavController getChildren(WebDavController rootFolder) { - return this; - } - - /** - * 获取子文件/文件夹 - * - * @param parent 父文件夹 - * @return {@link List}<{@link WebDavEntity}> WebDav实体 - */ - @ChildrenOf - public List getChildren(WebDavFolder parent) { - if (parent == null) { - return Collections.emptyList(); - } - try { - // 获取驱动器文件服务 - AbstractBaseFileService fileService = ApplicationContextConfigure.getBean(DriveContext.class).get(parent.getDriveId()); - if (fileService == null) { - return Collections.emptyList(); - } - // 获取文件列表 - List fileItemList = fileService.fileList(parent.getFullPath()); - // 转换FileItemDTO为WebDavEntity - return WebDavEntity.convertFromFileItemDTO(fileItemList, parent); - } catch (Exception e) { - LOGGER.warn("get webDav children failed,parent:{},msg:{}", JSON.toJSONString(parent), e.getMessage(), e); - return Collections.emptyList(); - } - } - - /** - * 获取子文件内容 - * - * @param webDavFile WebDav文件 - * @return {@link String} ViewResolver模板名称 - */ - @Get - public String getChild(WebDavFile webDavFile) { - return JSON.toJSONString(webDavFile); - } - - /** - * 获取WebDav实体文件名 - */ - @Name - public String getWebDavFile(WebDavEntity webDavEntity) { - return webDavEntity.getName(); - } - - /** - * 获取WebDav实体展示名称 - */ - @DisplayName - public String getDisplayName(WebDavEntity webDavEntity) { - return webDavEntity.getName(); - } - - /** - * 获取WebDav实体唯一id - */ - @UniqueId - public String getUniqueId(WebDavEntity entity) { - return entity.getId().toString(); - } - - /** - * 获取WebDav实体修改日期 - */ - @ModifiedDate - public Date getModifiedDate(WebDavEntity webDavEntity) { - return webDavEntity.getModifiedDate(); - } - - /** - * 获取WebDav实体创建日期 - */ - @CreatedDate - public Date getCreatedDate(WebDavEntity webDavEntity) { - return webDavEntity.getCreatedDate(); - } - - /** - * 获取WebDav实体大小 - */ - @ContentLength - public Long getContentLength(WebDavEntity entity) { - if (entity instanceof WebDavFile) { - return ((WebDavFile) entity).getSize(); - } - // 性能考虑,文件夹暂不进行大小统计 - return null; - } - - - /** - * 获取驱动器id - * - * @return {@link Integer} - */ - private Integer getDriveId() { - String requestUrl = HttpManager.decodeUrl(HttpManager.request().getAbsolutePath()); - final String driveId = RegexMatchUtils.matchByIndex("^" + ZFileConstant.WEB_DAV_PREFIX + "/(\\d+)(.*)", requestUrl, 1); - return driveId != null ? Integer.valueOf(driveId) : null; - } -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/controller/install/InstallController.java b/src/main/java/im/zhaojun/zfile/controller/install/InstallController.java deleted file mode 100644 index 257cbcc..0000000 --- a/src/main/java/im/zhaojun/zfile/controller/install/InstallController.java +++ /dev/null @@ -1,45 +0,0 @@ -package im.zhaojun.zfile.controller.install; - -import cn.hutool.crypto.SecureUtil; -import im.zhaojun.zfile.model.dto.SystemConfigDTO; -import im.zhaojun.zfile.model.support.ResultBean; -import im.zhaojun.zfile.service.SystemConfigService; -import org.springframework.util.StringUtils; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RestController; - -import javax.annotation.Resource; - -/** - * 系统安装初始化 - * @author zhaojun - */ -@RestController -public class InstallController { - - @Resource - private SystemConfigService systemConfigService; - - @GetMapping("/is-installed") - public ResultBean isInstall() { - if (!StringUtils.isEmpty(systemConfigService.getAdminUsername())) { - return ResultBean.error("请勿重复初始化"); - } - return ResultBean.success(); - } - - - @PostMapping("/doInstall") - public ResultBean install(SystemConfigDTO systemConfigDTO) { - if (!StringUtils.isEmpty(systemConfigService.getAdminUsername())) { - return ResultBean.error("请勿重复初始化."); - } - - systemConfigDTO.setPassword(SecureUtil.md5(systemConfigDTO.getPassword())); - systemConfigService.updateSystemConfig(systemConfigDTO); - - return ResultBean.success(); - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/controller/onedrive/SharePointHelperController.java b/src/main/java/im/zhaojun/zfile/controller/onedrive/SharePointHelperController.java deleted file mode 100644 index 4c9e955..0000000 --- a/src/main/java/im/zhaojun/zfile/controller/onedrive/SharePointHelperController.java +++ /dev/null @@ -1,134 +0,0 @@ -package im.zhaojun.zfile.controller.onedrive; - -import cn.hutool.core.util.StrUtil; -import cn.hutool.http.HttpRequest; -import cn.hutool.http.HttpResponse; -import cn.hutool.http.HttpUtil; -import com.alibaba.fastjson.JSONObject; -import im.zhaojun.zfile.model.dto.SharePointInfoVO; -import im.zhaojun.zfile.model.support.ResultBean; -import org.springframework.http.HttpStatus; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; - -import java.util.HashMap; -import java.util.Objects; - -/** - * @author zhaojun - * SharePoint 工具类 - */ -@Controller -@RequestMapping("/sharepoint") -public class SharePointHelperController { - - - /** - * 根据 AccessToken 获取域名前缀 - */ - @PostMapping("/getDomainPrefix") - @ResponseBody - public ResultBean getDomainPrefix(@RequestBody SharePointInfoVO sharePointInfoVO) { - - String host = ""; - - // 判断是标准版还是世纪互联版 - if (Objects.equals(sharePointInfoVO.getType(), "Standard")) { - host = "graph.microsoft.com"; - } else if (Objects.equals(sharePointInfoVO.getType(), "China")) { - host = "microsoftgraph.chinacloudapi.cn"; - } - - // 请求 URL - String requestUrl = StrUtil.format("https://{}/v1.0/sites/root", host); - - // 构建请求认证 Token 信息 - String tokenValue = String.format("%s %s", "Bearer", sharePointInfoVO.getAccessToken()); - HashMap headers = new HashMap<>(); - headers.put("Authorization", tokenValue); - - // 请求接口 - HttpRequest getRequest = HttpUtil.createGet(requestUrl); - HttpResponse execute = getRequest.addHeaders(headers).execute(); - String body = execute.body(); - if (execute.getStatus() != HttpStatus.OK.value()) { - return ResultBean.error(body); - } - - // 解析前缀 - JSONObject jsonObject = JSONObject.parseObject(body); - String hostname = jsonObject.getJSONObject("siteCollection").getString("hostname"); - String domainPrefix = StrUtil.subBefore(hostname, ".sharepoint", false); - return ResultBean.successData(domainPrefix); - } - - @PostMapping("/getSiteId") - @ResponseBody - public ResultBean getSiteId(@RequestBody SharePointInfoVO sharePointInfoVO) { - - // 判断必填参数 - if (sharePointInfoVO == null || sharePointInfoVO.getAccessToken() == null || sharePointInfoVO.getSiteName() == null) { - return ResultBean.error("参数不全"); - } - - String host = ""; - - // 判断是标准版还是世纪互联版 - if (Objects.equals(sharePointInfoVO.getType(), "Standard")) { - host = "graph.microsoft.com"; - sharePointInfoVO.setDomainType("com"); - } else if (Objects.equals(sharePointInfoVO.getType(), "China")) { - host = "microsoftgraph.chinacloudapi.cn"; - sharePointInfoVO.setDomainType("cn"); - } else { - return ResultBean.error("参数不全"); - } - - // 构建请求认证 Token 信息 - String tokenValue = String.format("%s %s", "Bearer", sharePointInfoVO.getAccessToken()); - HashMap authorizationHeaders = new HashMap<>(); - authorizationHeaders.put("Authorization", tokenValue); - - - // 如果没有域名前缀, 则先获取 - if (sharePointInfoVO.getDomainPrefix() == null || sharePointInfoVO.getDomainType() == null) { - String requestUrl = StrUtil.format("https://{}/v1.0/sites/root", host); - HttpRequest getRequest = HttpUtil.createGet(requestUrl); - HttpResponse execute = getRequest.addHeaders(authorizationHeaders).execute(); - String body = execute.body(); - if (execute.getStatus() != HttpStatus.OK.value()) { - return ResultBean.error(body); - } - JSONObject jsonObject = JSONObject.parseObject(body); - String hostname = jsonObject.getJSONObject("siteCollection").getString("hostname"); - String domainPrefix = StrUtil.subBefore(hostname, ".sharepoint", false); - sharePointInfoVO.setDomainPrefix(domainPrefix); - } - - - if (StrUtil.isEmpty(sharePointInfoVO.getSiteType())) { - sharePointInfoVO.setSiteType("/sites/"); - } - - // 请求接口 - String requestUrl = StrUtil.format("https://{}/v1.0/sites/{}.sharepoint.{}:/{}/{}", host, - sharePointInfoVO.getDomainPrefix(), - sharePointInfoVO.getDomainType(), - sharePointInfoVO.getSiteType(), - sharePointInfoVO.getSiteName()); - HttpRequest getRequest = HttpUtil.createGet(requestUrl); - HttpResponse execute = getRequest.addHeaders(authorizationHeaders).execute(); - String body = execute.body(); - - // 解析数据 - if (execute.getStatus() != HttpStatus.OK.value()) { - return ResultBean.error(body); - } - JSONObject jsonObject = JSONObject.parseObject(body); - return ResultBean.successData(jsonObject.getString("id")); - } - -} diff --git a/src/main/java/im/zhaojun/zfile/exception/GlobleExceptionHandler.java b/src/main/java/im/zhaojun/zfile/exception/GlobleExceptionHandler.java deleted file mode 100644 index 6596b42..0000000 --- a/src/main/java/im/zhaojun/zfile/exception/GlobleExceptionHandler.java +++ /dev/null @@ -1,135 +0,0 @@ -package im.zhaojun.zfile.exception; - -import cn.dev33.satoken.exception.NotLoginException; -import im.zhaojun.zfile.model.support.ResultBean; -import org.apache.catalina.connector.ClientAbortException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.web.HttpMediaTypeNotAcceptableException; -import org.springframework.web.bind.annotation.ControllerAdvice; -import org.springframework.web.bind.annotation.ExceptionHandler; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.ResponseStatus; - -import java.net.ConnectException; - -/** - * 全局异常处理器 - * @author zhaojun - */ -@ControllerAdvice -public class GlobleExceptionHandler { - - private static final Logger log = LoggerFactory.getLogger(GlobleExceptionHandler.class); - - - /** - * 不存在的文件异常 - */ - @ExceptionHandler({NotEnabledDriveException.class}) - @ResponseBody - public ResultBean notEnabledDrive() { - return ResultBean.error("驱动器已关闭"); - } - - /** - * 不存在的文件异常 - */ - @ExceptionHandler({NotExistFileException.class}) - @ResponseBody - public ResultBean notExistFile() { - return ResultBean.error("文件不存在"); - } - - - /** - * 捕获 ClientAbortException 异常, 不做任何处理, 防止出现大量堆栈日志输出, 此异常不影响功能. - */ - @ExceptionHandler({HttpMediaTypeNotAcceptableException.class, ClientAbortException.class}) - @ResponseBody - @ResponseStatus - public void clientAbortException() { - // if (log.isDebugEnabled()) { - // log.debug("出现了断开异常:", ex); - // } - } - - /** - * 文件预览异常 - */ - @ExceptionHandler({PasswordVerifyException.class}) - @ResponseBody - @ResponseStatus - public ResultBean passwordVerifyException(PasswordVerifyException ex) { - return ResultBean.error(ex.getMessage()); - } - - - /** - * 无效的驱动器异常 - */ - @ExceptionHandler({InvalidDriveException.class}) - @ResponseBody - @ResponseStatus - public ResultBean invalidDriveException(InvalidDriveException ex) { - return ResultBean.error(ex.getMessage()); - } - - - /** - * 文件预览异常 - */ - @ExceptionHandler({PreviewException.class}) - @ResponseBody - @ResponseStatus - public ResultBean previewException(PreviewException ex) { - return ResultBean.error(ex.getMessage()); - } - - - /** - * 初始化异常 - */ - @ExceptionHandler({InitializeDriveException.class}) - @ResponseBody - @ResponseStatus - public ResultBean initializeException(InitializeDriveException ex) { - return ResultBean.error(ex.getMessage()); - } - - /** - * 登录异常拦截器 - */ - @ExceptionHandler(NotLoginException.class) - @ResponseBody - @ResponseStatus - public ResultBean handlerNotLoginException(NotLoginException e) { - return ResultBean.error("未登录"); - } - - - /** - * 登录异常拦截器 - */ - @ExceptionHandler(ConnectException.class) - @ResponseBody - public ResultBean handlerConnectException(ConnectException e) { - return ResultBean.error("请求失败, 清稍后再试"); - } - - - - @ExceptionHandler - @ResponseBody - @ResponseStatus - public ResultBean extraExceptionHandler(Exception e) { - log.error(e.getMessage(), e); - - if (e.getClass() == Exception.class) { - return ResultBean.error("系统异常, 请联系管理员"); - } else { - return ResultBean.error(e.getMessage()); - } - } - -} diff --git a/src/main/java/im/zhaojun/zfile/exception/InitializeDriveException.java b/src/main/java/im/zhaojun/zfile/exception/InitializeDriveException.java deleted file mode 100644 index 07a62b0..0000000 --- a/src/main/java/im/zhaojun/zfile/exception/InitializeDriveException.java +++ /dev/null @@ -1,29 +0,0 @@ -package im.zhaojun.zfile.exception; - -/** - * 对象存储初始化异常 - * @author zhaojun - */ -public class InitializeDriveException extends RuntimeException { - - private static final long serialVersionUID = -1920550904063819880L; - - public InitializeDriveException() { - } - - public InitializeDriveException(String message) { - super(message); - } - - public InitializeDriveException(String message, Throwable cause) { - super(message, cause); - } - - public InitializeDriveException(Throwable cause) { - super(cause); - } - - public InitializeDriveException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { - super(message, cause, enableSuppression, writableStackTrace); - } -} diff --git a/src/main/java/im/zhaojun/zfile/exception/InvalidDriveException.java b/src/main/java/im/zhaojun/zfile/exception/InvalidDriveException.java deleted file mode 100644 index 125f821..0000000 --- a/src/main/java/im/zhaojun/zfile/exception/InvalidDriveException.java +++ /dev/null @@ -1,27 +0,0 @@ -package im.zhaojun.zfile.exception; - -/** - * 无效的驱动器异常 - * @author zhaojun - */ -public class InvalidDriveException extends RuntimeException { - - public InvalidDriveException() { - } - - public InvalidDriveException(String message) { - super(message); - } - - public InvalidDriveException(String message, Throwable cause) { - super(message, cause); - } - - public InvalidDriveException(Throwable cause) { - super(cause); - } - - public InvalidDriveException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { - super(message, cause, enableSuppression, writableStackTrace); - } -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/exception/InvalidShortLinkException.java b/src/main/java/im/zhaojun/zfile/exception/InvalidShortLinkException.java deleted file mode 100644 index 1569218..0000000 --- a/src/main/java/im/zhaojun/zfile/exception/InvalidShortLinkException.java +++ /dev/null @@ -1,26 +0,0 @@ -package im.zhaojun.zfile.exception; - -/** - * 无效的直链异常 - * @author zhaojun - */ -public class InvalidShortLinkException extends RuntimeException { - public InvalidShortLinkException() { - } - - public InvalidShortLinkException(String message) { - super(message); - } - - public InvalidShortLinkException(String message, Throwable cause) { - super(message, cause); - } - - public InvalidShortLinkException(Throwable cause) { - super(cause); - } - - public InvalidShortLinkException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { - super(message, cause, enableSuppression, writableStackTrace); - } -} diff --git a/src/main/java/im/zhaojun/zfile/exception/NotEnabledDriveException.java b/src/main/java/im/zhaojun/zfile/exception/NotEnabledDriveException.java deleted file mode 100644 index 5bd2439..0000000 --- a/src/main/java/im/zhaojun/zfile/exception/NotEnabledDriveException.java +++ /dev/null @@ -1,27 +0,0 @@ -package im.zhaojun.zfile.exception; - -/** - * 未启用的驱动器异常 - */ -public class NotEnabledDriveException extends RuntimeException { - - public NotEnabledDriveException() { - } - - public NotEnabledDriveException(String message) { - super(message); - } - - public NotEnabledDriveException(String message, Throwable cause) { - super(message, cause); - } - - public NotEnabledDriveException(Throwable cause) { - super(cause); - } - - public NotEnabledDriveException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { - super(message, cause, enableSuppression, writableStackTrace); - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/exception/PasswordVerifyException.java b/src/main/java/im/zhaojun/zfile/exception/PasswordVerifyException.java deleted file mode 100644 index 27d397c..0000000 --- a/src/main/java/im/zhaojun/zfile/exception/PasswordVerifyException.java +++ /dev/null @@ -1,27 +0,0 @@ -package im.zhaojun.zfile.exception; - -/** - * 密码校验失败异常 - * @author zhaojun - */ -public class PasswordVerifyException extends RuntimeException { - - public PasswordVerifyException() { - } - - public PasswordVerifyException(String message) { - super(message); - } - - public PasswordVerifyException(String message, Throwable cause) { - super(message, cause); - } - - public PasswordVerifyException(Throwable cause) { - super(cause); - } - - public PasswordVerifyException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { - super(message, cause, enableSuppression, writableStackTrace); - } -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/exception/StorageStrategyUninitializedException.java b/src/main/java/im/zhaojun/zfile/exception/StorageStrategyUninitializedException.java deleted file mode 100644 index 55eb89b..0000000 --- a/src/main/java/im/zhaojun/zfile/exception/StorageStrategyUninitializedException.java +++ /dev/null @@ -1,30 +0,0 @@ -package im.zhaojun.zfile.exception; - -/** - * 存储策略未初始化异常 - * @author zhaojun - */ -public class StorageStrategyUninitializedException extends RuntimeException { - - private static final long serialVersionUID = 5736940575583615661L; - - public StorageStrategyUninitializedException() { - } - - public StorageStrategyUninitializedException(String message) { - super(message); - } - - public StorageStrategyUninitializedException(String message, Throwable cause) { - super(message, cause); - } - - public StorageStrategyUninitializedException(Throwable cause) { - super(cause); - } - - public StorageStrategyUninitializedException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { - super(message, cause, enableSuppression, writableStackTrace); - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/filter/NotFoundFilter.java b/src/main/java/im/zhaojun/zfile/filter/NotFoundFilter.java deleted file mode 100644 index 0f47814..0000000 --- a/src/main/java/im/zhaojun/zfile/filter/NotFoundFilter.java +++ /dev/null @@ -1 +0,0 @@ -package im.zhaojun.zfile.filter; import cn.hutool.core.util.ReflectUtil; import org.apache.catalina.connector.Response; import org.springframework.core.annotation.Order; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Component; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.annotation.WebFilter; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Objects; /** * 对于因前端 vue history 路由模式下, 直接访问路径时, 出现的 404 响应码, 转化为 200 响应码. (404 下会将请求转发到首页) */ @Order(0) @WebFilter(value = "/*") @Component public class NotFoundFilter implements Filter { @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // 执行请求 chain.doFilter(request, response); // 拿到返回值, 如果是 404, 则转为 200 HttpServletResponse httpServletResponse = (HttpServletResponse) response; if (Objects.equals(httpServletResponse.getStatus(), HttpStatus.NOT_FOUND.value())) { Response res = (Response) ReflectUtil.getFieldValue(response, "response"); if (res != null) { // 修改状态,默认情况 放过调用链执行后 response.setStatus 失败 res.setAppCommitted(false); res.setSuspended(false); httpServletResponse.setStatus(200); } } } } \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/aspect/FileListCacheAspect.java b/src/main/java/im/zhaojun/zfile/home/aspect/FileListCacheAspect.java new file mode 100644 index 0000000..9321e2d --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/aspect/FileListCacheAspect.java @@ -0,0 +1,66 @@ +package im.zhaojun.zfile.home.aspect; + +import im.zhaojun.zfile.common.cache.ZFileCache; +import im.zhaojun.zfile.home.model.result.FileItemResult; +import im.zhaojun.zfile.admin.model.entity.StorageSource; +import im.zhaojun.zfile.admin.service.StorageSourceService; +import im.zhaojun.zfile.home.service.base.AbstractBaseFileService; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.List; + +/** + * 缓存切面类, 用于访问文件夹时, 缓存文件列表内容. + * + * @author zhaojun + */ +@Aspect +@Component +public class FileListCacheAspect { + + @Resource + private ZFileCache zFileCache; + + @Resource + private StorageSourceService storageSourceService; + + /** + * 缓存切面, 如果此存储源开启了缓存, 则从缓存中取数据, 没有开启, 则直接调用方法. + */ + @Around(value = "execution(public * im.zhaojun.zfile.home.service.base.AbstractBaseFileService.fileList(..))") + public Object around(ProceedingJoinPoint point) throws Throwable { + List result; + + // 获取请求路径 + Object[] args = point.getArgs(); + String path = String.valueOf(args[0]); + + // 获取当前存储源 + AbstractBaseFileService fileService = ((AbstractBaseFileService) point.getTarget()); + Integer storageId = fileService.storageId; + + // 判断存储源是否开启了缓存 + StorageSource storageSource = storageSourceService.findById(storageId); + boolean enableCache = storageSource.getEnableCache(); + + if (enableCache) { + List cacheFileList = zFileCache.get(storageId, path); + if (cacheFileList == null) { + result = Collections.unmodifiableList((List) point.proceed()); + zFileCache.put(storageId, path, result); + } else { + result = cacheFileList; + } + } else { + result = (List) point.proceed(); + } + + return result; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/aspect/FileOperatorCheckAspect.java b/src/main/java/im/zhaojun/zfile/home/aspect/FileOperatorCheckAspect.java new file mode 100644 index 0000000..be149c6 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/aspect/FileOperatorCheckAspect.java @@ -0,0 +1,122 @@ +package im.zhaojun.zfile.home.aspect; + +import cn.hutool.core.util.BooleanUtil; +import im.zhaojun.zfile.admin.exception.ForbidFileOperationException; +import im.zhaojun.zfile.admin.model.entity.StorageSource; +import im.zhaojun.zfile.admin.model.enums.FileOperatorTypeEnum; +import im.zhaojun.zfile.admin.service.StorageSourceService; +import im.zhaojun.zfile.home.service.base.AbstractBaseFileService; +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +/** + * 校验文件操作权限 + * + * @author zhaojun + */ +@Aspect +@Component +@Slf4j +public class FileOperatorCheckAspect { + + @Resource + private StorageSourceService storageSourceService; + + /** + * 新建文件/文件夹权限校验 + * + * @param point + * 连接点 + * + * @return 方法运行结果 + */ + @Around("execution(public * im.zhaojun.zfile.home.service.base.AbstractBaseFileService.newFolder(..))") + public Object newFolderAround(ProceedingJoinPoint point) throws Throwable { + return check(point, FileOperatorTypeEnum.NEW_FOLDER); + } + + /** + * 删除文件/文件夹权限校验 + * + * @param point + * 连接点 + * + * @return 方法运行结果 + */ + @Around("execution(public * im.zhaojun.zfile.home.service.base.AbstractBaseFileService.delete*(..))") + public Object deleteAround(ProceedingJoinPoint point) throws Throwable { + return check(point, FileOperatorTypeEnum.DELETE); + } + + /** + * 获取文件上传地址校验 + * + * @param point + * 连接点 + * + * @return 方法运行结果 + */ + @Around("execution(public * im.zhaojun.zfile.home.service.base.AbstractBaseFileService.getUploadUrl(..))") + public Object uploadAround(ProceedingJoinPoint point) throws Throwable { + return check(point, FileOperatorTypeEnum.UPLOAD); + } + + /** + * 重命名文件/文件夹权限校验 + * + * @param point + * 连接点 + * + * @return 方法运行结果 + */ + @Around("execution(public * im.zhaojun.zfile.home.service.base.AbstractBaseFileService.rename*(..))") + public Object renameAround(ProceedingJoinPoint point) throws Throwable { + return check(point, FileOperatorTypeEnum.RENAME); + } + + /** + * 搜索功能权限校验 + * + * @param point + * 连接点 + * + * @return 方法运行结果 + */ + @Around("execution(public * im.zhaojun.zfile.home.service.base.AbstractBaseFileService.search(..))") + public Object searchAround(ProceedingJoinPoint point) throws Throwable { + return check(point, FileOperatorTypeEnum.SEARCH); + } + + /** + * 校验是否有此文件操作的权限 + * + * @param point + * 连接点 + * + * @param fileOperatorType + * 文件操作类型 + * + * @return 方法运行结果 + */ + private Object check(ProceedingJoinPoint point, FileOperatorTypeEnum fileOperatorType) throws Throwable { + // 获取对应的存储源 service + AbstractBaseFileService targetService = (AbstractBaseFileService) point.getTarget(); + Integer storageId = targetService.storageId; + + // 判断是否允许文件操作. 如果不允许, 则抛出异常 + StorageSource storageSource = storageSourceService.findById(storageId); + boolean allowOperator = storageSource.allowOperator(); + + if (BooleanUtil.isFalse(allowOperator)) { + throw new ForbidFileOperationException(storageId, fileOperatorType.getName()); + } + + return point.proceed(); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/aspect/RefererCheckAspect.java b/src/main/java/im/zhaojun/zfile/home/aspect/RefererCheckAspect.java new file mode 100644 index 0000000..e2f7421 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/aspect/RefererCheckAspect.java @@ -0,0 +1,127 @@ +package im.zhaojun.zfile.home.aspect; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import im.zhaojun.zfile.admin.annoation.RefererCheck; +import im.zhaojun.zfile.admin.model.enums.RefererTypeEnum; +import im.zhaojun.zfile.admin.service.SystemConfigService; +import im.zhaojun.zfile.home.model.dto.SystemConfigDTO; +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.springframework.http.HttpHeaders; +import org.springframework.stereotype.Component; +import org.springframework.util.AntPathMatcher; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Collection; +import java.util.List; + +/** + * 校验 referer 防盗链. + * + * 校验所有标注了 {@link RefererCheck} 的注解 + * + * @author zhaojun + */ +@Aspect +@Component +@Slf4j +public class RefererCheckAspect { + + @Resource + private HttpServletRequest httpServletRequest; + + @Resource + private HttpServletResponse httpServletResponse; + + @Resource + private SystemConfigService systemConfigService; + + private final AntPathMatcher pathMatcher = new AntPathMatcher(); + + /** + * 校验 referer 防盗链. + * + * @param point + * 连接点 + * + * @return 方法运行结果 + */ + @Around(value = "@annotation(im.zhaojun.zfile.admin.annoation.RefererCheck)") + public Object around(ProceedingJoinPoint point) throws Throwable { + // 获取配置的 referer 类型 + SystemConfigDTO systemConfig = systemConfigService.getSystemConfig(); + RefererTypeEnum refererType = systemConfig.getRefererType(); + + // 如果未开启 referer 防盗链则跳过. + if (refererType == RefererTypeEnum.OFF) { + return point.proceed(); + } + + // 获取当前请求 referer + String referer = httpServletRequest.getHeader(HttpHeaders.REFERER); + String requestUrl = httpServletRequest.getRequestURI(); + + // 获取 Forbidden 页面地址 + String forbiddenUrl = systemConfigService.getForbiddenUrl(); + + // 如果 referer 不允许为空,且当前 referer 为空,则校验 + Boolean refererAllowEmpty = systemConfig.getRefererAllowEmpty(); + if (!refererAllowEmpty && StrUtil.isEmpty(referer)) { + log.warn("请求路径 {}, referer 不允许为空,当前请求 referer 为空,禁止访问.", requestUrl); + httpServletResponse.sendRedirect(forbiddenUrl); + return null; + } + + // 获取允许的 referer 地址 + String refererValue = systemConfig.getRefererValue(); + List refererValueList = StrUtil.split(refererValue, '\n'); + + // 如果是白名单模式,则校验当前 referer, 如果未在允许的列表中,则禁止访问. + if (refererType == RefererTypeEnum.WHITE_LIST && !containsPathMatcher(refererValueList, referer)) { + log.warn("请求路径 {}, referer 为白名单模式,当前请求 referer {} 未在白名单中,禁止访问.", requestUrl, referer); + httpServletResponse.sendRedirect(forbiddenUrl); + return null; + } + + // 如果是黑名单模式,则校验当前 referer 是否在列表中,则禁止访问. + if (refererType == RefererTypeEnum.BLACK_LIST && containsPathMatcher(refererValueList, referer)) { + log.warn("请求路径 {}, referer 为黑名单模式,当前请求 referer {} 在黑名单中,禁止访问.", requestUrl, referer); + + httpServletResponse.sendRedirect(forbiddenUrl); + return null; + } + + return point.proceed(); + } + + /** + * 校验 value 是否在 Ant 表达式列表中. + * + * @param patternList + * Ant 表达式列表 + * + * @param value + * 要校验的值 + * + * @return 如果集合为空 (null 或者空), 返回 false, 否则在表达式列表中找到匹配的返回 true, 找不到返回 false. + */ + public boolean containsPathMatcher(Collection patternList, String value) { + if (CollUtil.isEmpty(patternList)) { + return false; + } + + for (String pattern : patternList) { + if (pathMatcher.match(pattern, value)) { + return true; + } + } + + return false; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/chain/FileChain.java b/src/main/java/im/zhaojun/zfile/home/chain/FileChain.java new file mode 100644 index 0000000..ba83524 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/chain/FileChain.java @@ -0,0 +1,64 @@ +package im.zhaojun.zfile.home.chain; + +import im.zhaojun.zfile.home.chain.command.FileAccessPermissionVerifyCommand; +import im.zhaojun.zfile.home.chain.command.FileHiddenCommand; +import im.zhaojun.zfile.home.chain.command.FileSortCommand; +import im.zhaojun.zfile.home.chain.command.FileUrlAddVersionCommand; +import im.zhaojun.zfile.home.chain.command.FolderPasswordVerifyCommand; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.chain.impl.ChainBase; +import org.springframework.stereotype.Service; + +import javax.annotation.PostConstruct; +import javax.annotation.Resource; + +/** + * 文件处理责任链定义 + * + * @author zhaojun + */ +@Service +@Slf4j +public class FileChain extends ChainBase { + + @Resource + private FileAccessPermissionVerifyCommand fileAccessPermissionVerifyCommand; + + @Resource + private FolderPasswordVerifyCommand folderPasswordVerifyCommand; + + @Resource + private FileHiddenCommand fileHiddenCommand; + + @Resource + private FileSortCommand fileSortCommand; + + @Resource + private FileUrlAddVersionCommand fileUrlAddVersionCommand; + + /** + * 初始化责任链 + */ + @PostConstruct + public void init() { + this.addCommand(fileAccessPermissionVerifyCommand); + this.addCommand(folderPasswordVerifyCommand); + this.addCommand(fileHiddenCommand); + this.addCommand(fileSortCommand); + this.addCommand(fileUrlAddVersionCommand); + } + + /** + * 执行文件处理责任链 + * + * @param content + * 文件上下文 + * + * @return 是否执行成功 + */ + public FileContext execute(FileContext content) throws Exception { + super.execute(content); + return content; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/chain/FileContext.java b/src/main/java/im/zhaojun/zfile/home/chain/FileContext.java new file mode 100644 index 0000000..11e887a --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/chain/FileContext.java @@ -0,0 +1,44 @@ +package im.zhaojun.zfile.home.chain; + +import im.zhaojun.zfile.home.model.request.FileListRequest; +import im.zhaojun.zfile.home.model.result.FileItemResult; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.apache.commons.chain.impl.ContextBase; + +import java.util.List; + +/** + * 文件处理责任链上下文 + * + * @author zhaojun + */ +@EqualsAndHashCode(callSuper = true) +@Data +@AllArgsConstructor +@Builder +public class FileContext extends ContextBase { + + /** + * 存储源 id + */ + private Integer storageId; + + /** + * 存储源请求 + */ + private FileListRequest fileListRequest; + + /** + * 根据存储源请求获取到的文件列表 + */ + private List fileItemList; + + /** + * 当前目录密码路径表达式 + */ + private String passwordPattern; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/chain/command/FileAccessPermissionVerifyCommand.java b/src/main/java/im/zhaojun/zfile/home/chain/command/FileAccessPermissionVerifyCommand.java new file mode 100644 index 0000000..92d51ab --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/chain/command/FileAccessPermissionVerifyCommand.java @@ -0,0 +1,42 @@ +package im.zhaojun.zfile.home.chain.command; + +import im.zhaojun.zfile.home.chain.FileContext; +import im.zhaojun.zfile.home.model.request.FileListRequest; +import im.zhaojun.zfile.admin.service.FilterConfigService; +import org.apache.commons.chain.Command; +import org.apache.commons.chain.Context; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +/** + * 目录访问权限责任链 command 命令 + * 检查请求的目录是否有访问权限 + * + * @author zhaojun + */ +@Service +public class FileAccessPermissionVerifyCommand implements Command { + + @Resource + private FilterConfigService filterConfigService; + + /** + * 校验是否有权限访问此目录 + * + * @param context + * 文件处理责任链上下文 + * + * @return 是否停止执行责任链, true: 停止执行责任链, false: 继续执行责任链 + */ + @Override + public boolean execute(Context context) throws Exception { + FileContext fileContext = (FileContext) context; + Integer storageId = fileContext.getStorageId(); + FileListRequest fileListRequest = fileContext.getFileListRequest(); + + filterConfigService.checkPathPermission(storageId, fileListRequest.getPath()); + return false; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/chain/command/FileHiddenCommand.java b/src/main/java/im/zhaojun/zfile/home/chain/command/FileHiddenCommand.java new file mode 100644 index 0000000..8241568 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/chain/command/FileHiddenCommand.java @@ -0,0 +1,61 @@ +package im.zhaojun.zfile.home.chain.command; + +import im.zhaojun.zfile.home.chain.FileContext; +import im.zhaojun.zfile.admin.service.FilterConfigService; +import im.zhaojun.zfile.common.util.StringUtils; +import im.zhaojun.zfile.home.model.result.FileItemResult; +import org.apache.commons.chain.Command; +import org.apache.commons.chain.Context; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +/** + * 文件隐藏责任链 command 命令 + * 过滤此存储源通过规则隐藏的文件. + * + * @author zhaojun + */ +@Service +public class FileHiddenCommand implements Command { + + @Resource + private FilterConfigService filterConfigService; + + + /** + * 隐藏存储源规律规则匹配到的文件. + * + * @param context + * 文件处理责任链上下文 + * + * @return 是否停止执行责任链, true: 停止执行责任链, false: 继续执行责任链 + */ + @Override + public boolean execute(Context context) throws Exception { + FileContext fileContext = (FileContext) context; + Integer storageId = fileContext.getStorageId(); + List fileItemList = fileContext.getFileItemList(); + + if (fileItemList == null) { + return false; + } + + // 创建副本, 防止排序和过滤对原数据产生影响 + List result = new ArrayList<>(); + + fileItemList.forEach( + fileItem -> { + if (!filterConfigService.filterResultIsHidden(storageId, StringUtils.concat(fileItem.getPath(), fileItem.getName()))) { + result.add(fileItem); + } + } + ); + + fileContext.setFileItemList(result); + return false; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/chain/command/FileSortCommand.java b/src/main/java/im/zhaojun/zfile/home/chain/command/FileSortCommand.java new file mode 100644 index 0000000..085ee45 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/chain/command/FileSortCommand.java @@ -0,0 +1,47 @@ +package im.zhaojun.zfile.home.chain.command; + +import im.zhaojun.zfile.home.chain.FileContext; +import im.zhaojun.zfile.home.model.request.FileListRequest; +import im.zhaojun.zfile.home.model.result.FileItemResult; +import im.zhaojun.zfile.common.util.FileComparator; +import org.apache.commons.chain.Command; +import org.apache.commons.chain.Context; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +/** + * 文件排序责任链 command 命令 + * 根据请求类中的排序参数,进行文件排序. + * + * @author zhaojun + */ +@Service +public class FileSortCommand implements Command { + + /** + * 按照请求的排序字段和方向进行文件排序. + * + * @param context + * 文件处理责任链上下文 + * + * @return 是否停止执行责任链, true: 停止执行责任链, false: 继续执行责任链 + */ + @Override + public boolean execute(Context context) throws Exception { + FileContext fileContext = (FileContext) context; + + List fileItemList = fileContext.getFileItemList(); + FileListRequest fileListRequest = fileContext.getFileListRequest(); + + // 创建副本, 防止排序和过滤对原数据产生影响 + List copyList = new ArrayList<>(fileItemList); + + // 按照自然排序 + copyList.sort(new FileComparator(fileListRequest.getOrderBy(), fileListRequest.getOrderDirection())); + fileContext.setFileItemList(copyList); + return false; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/chain/command/FileUrlAddVersionCommand.java b/src/main/java/im/zhaojun/zfile/home/chain/command/FileUrlAddVersionCommand.java new file mode 100644 index 0000000..70beb0d --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/chain/command/FileUrlAddVersionCommand.java @@ -0,0 +1,45 @@ +package im.zhaojun.zfile.home.chain.command; + +import cn.hutool.core.date.DateUtil; +import im.zhaojun.zfile.home.chain.FileContext; +import im.zhaojun.zfile.home.model.result.FileItemResult; +import org.apache.commons.chain.Command; +import org.apache.commons.chain.Context; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 处理文件 url, 给直链增加版本号(原始链接不添加),防止浏览器缓存. + * + * @author zhaojun + */ +@Service +public class FileUrlAddVersionCommand implements Command { + + /** + * 处理文件 url, 给直链增加版本号,防止浏览器缓存. + * + * @param context + * 文件处理责任链上下文 + * + * @return 是否停止执行责任链, true: 停止执行责任链, false: 继续执行责任链 + */ + @Override + public boolean execute(Context context) throws Exception { + FileContext fileContext = (FileContext) context; + List fileItemList = fileContext.getFileItemList(); + + long version = DateUtil.currentSeconds(); + + // fileItemList.forEach((item) -> { + // // url 中不包含 ? 才添加此参数,否则可能会影响正常下载. + // if (!StrUtil.contains(item.getUrl(), '?')) { + // item.setUrl(item.getUrl() + "?v=" + version); + // } + // + // }); + return false; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/chain/command/FolderPasswordVerifyCommand.java b/src/main/java/im/zhaojun/zfile/home/chain/command/FolderPasswordVerifyCommand.java new file mode 100644 index 0000000..b6a3d72 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/chain/command/FolderPasswordVerifyCommand.java @@ -0,0 +1,54 @@ +package im.zhaojun.zfile.home.chain.command; + +import im.zhaojun.zfile.home.chain.FileContext; +import im.zhaojun.zfile.common.exception.PasswordVerifyException; +import im.zhaojun.zfile.home.model.request.FileListRequest; +import im.zhaojun.zfile.admin.model.verify.VerifyResult; +import im.zhaojun.zfile.admin.service.PasswordConfigService; +import org.apache.commons.chain.Command; +import org.apache.commons.chain.Context; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +/** + * 校验文件夹密码责任链 command 命令 + * 校验当前请求的文件夹是否需要密码校验,如果需求则校验密码,密码不正确则抛出异常 + * + * @author zhaojun + */ +@Service +public class FolderPasswordVerifyCommand implements Command { + + @Resource + private PasswordConfigService passwordConfigService; + + /** + * 校验当前文件是否需要密码. + * + * @param context + * 文件处理责任链上下文 + * + * @return 是否停止执行责任链, true: 停止执行责任链, false: 继续执行责任链 + */ + @Override + public boolean execute(Context context) throws Exception { + FileContext fileContext = (FileContext) context; + FileListRequest fileListRequest = fileContext.getFileListRequest(); + Integer storageId = fileContext.getStorageId(); + + String path = fileListRequest.getPath(); + String password = fileListRequest.getPassword(); + + // 校验密码, 如果校验不通过, 则返回错误消息 + VerifyResult verifyResult = passwordConfigService.verifyPassword(storageId, path, password); + if (!verifyResult.isPassed()) { + throw new PasswordVerifyException(verifyResult.getCode(), verifyResult.getMsg()); + } + + // 设置当前文件夹所对应的文件夹路径表达式. + fileContext.setPasswordPattern(verifyResult.getPattern());; + return false; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/controller/FileController.java b/src/main/java/im/zhaojun/zfile/home/controller/FileController.java new file mode 100644 index 0000000..2b47dfc --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/controller/FileController.java @@ -0,0 +1 @@ +package im.zhaojun.zfile.home.controller; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiSort; import im.zhaojun.zfile.admin.model.entity.StorageSource; import im.zhaojun.zfile.admin.service.StorageSourceService; import im.zhaojun.zfile.common.context.StorageSourceContext; import im.zhaojun.zfile.common.util.AjaxJson; import im.zhaojun.zfile.home.chain.FileChain; import im.zhaojun.zfile.home.chain.FileContext; import im.zhaojun.zfile.home.convert.StorageSourceConvert; import im.zhaojun.zfile.home.model.request.FileListRequest; import im.zhaojun.zfile.home.model.request.SearchStorageRequest; import im.zhaojun.zfile.home.model.result.FileInfoResult; import im.zhaojun.zfile.home.model.result.FileItemResult; import im.zhaojun.zfile.home.model.result.StorageSourceResult; import im.zhaojun.zfile.home.service.base.AbstractBaseFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.validation.Valid; import java.util.List; /** * 文件列表相关接口, 如展示存储源列表, 展示文件列表, 搜索文件列表等. * * @author zhaojun */ @Api(tags = "文件列表模块") @ApiSort(2) @Slf4j @RequestMapping("/api/storage") @RestController public class FileController { @Resource private StorageSourceContext storageSourceContext; @Resource private StorageSourceService storageSourceService; @Resource private FileChain fileChain; @Resource private StorageSourceConvert storageSourceConvert; @ApiOperationSupport(order = 1) @ApiOperation(value = "获取存储源列表", notes = "获取所有已启用的存储源, 并且按照后台顺序排序") @GetMapping("/list") public AjaxJson> storageList() { List storageList = storageSourceService.findListByEnableOrderByOrderNum(); List storageSourceResultList = storageSourceConvert.entityToResultList(storageList); return AjaxJson.getSuccessData(storageSourceResultList); } @ApiOperationSupport(order = 2) @ApiOperation(value = "获取文件列表", notes = "获取某个存储源下, 指定路径的文件&文件夹列表") @PostMapping("/files") public AjaxJson list(@Valid @RequestBody FileListRequest fileListRequest) throws Exception { StorageSource storageSource = storageSourceService.findByStorageKey(fileListRequest.getStorageKey()); Integer storageId = storageSource.getId(); // 处理请求参数默认值 fileListRequest.handleDefaultValue(); // 获取文件列表 AbstractBaseFileService fileService = storageSourceContext.get(storageId); List fileItemList = fileService.fileList(fileListRequest.getPath()); // 执行责任链 FileContext fileContext = FileContext.builder() .storageId(storageId) .fileListRequest(fileListRequest) .fileItemList(fileItemList).build(); fileChain.execute(fileContext); return AjaxJson.getSuccessData(new FileInfoResult(fileContext.getFileItemList(), fileContext.getPasswordPattern())); } @ApiOperationSupport(order = 3) @ApiOperation(value = "搜索文件", notes = "搜索指定存储源下的文件和文件夹") @PostMapping("/search") public AjaxJson> search(@Valid @RequestBody SearchStorageRequest searchStorageRequest) { AbstractBaseFileService fileService = storageSourceContext.getByKey(searchStorageRequest.getStorageKey()); List search = fileService.search(searchStorageRequest.getSearchVal()); return AjaxJson.getSuccessData(search); } } \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/controller/FileOperatorController.java b/src/main/java/im/zhaojun/zfile/home/controller/FileOperatorController.java new file mode 100644 index 0000000..b13cd98 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/controller/FileOperatorController.java @@ -0,0 +1,120 @@ +package im.zhaojun.zfile.home.controller; + +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.github.xiaoymin.knife4j.annotations.ApiSort; +import im.zhaojun.zfile.common.context.StorageSourceContext; +import im.zhaojun.zfile.home.model.request.operator.DeleteFileRequest; +import im.zhaojun.zfile.home.model.request.operator.DeleteFolderRequest; +import im.zhaojun.zfile.home.model.request.operator.NewFolderRequest; +import im.zhaojun.zfile.home.model.request.operator.RenameFileRequest; +import im.zhaojun.zfile.home.model.request.operator.RenameFolderRequest; +import im.zhaojun.zfile.home.model.request.operator.UploadFileRequest; +import im.zhaojun.zfile.home.service.base.AbstractBaseFileService; +import im.zhaojun.zfile.common.util.AjaxJson; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.validation.Valid; + +/** + * 文件操作相关接口, 如新建文件夹, 上传文件, 删除文件, 移动文件等. + * + * @author zhaojun + */ +@Api(tags = "文件操作模块") +@ApiSort(3) +@Slf4j +@RestController +@RequestMapping("/api/file/operator") +public class FileOperatorController { + + @Resource + private StorageSourceContext storageSourceContext; + + @ApiOperationSupport(order = 1) + @ApiOperation(value = "创建文件夹") + @PostMapping("/mkdir") + public AjaxJson mkdir(@Valid @RequestBody NewFolderRequest newFolderRequest) { + AbstractBaseFileService fileService = storageSourceContext.getByKey(newFolderRequest.getStorageKey()); + boolean flag = fileService.newFolder(newFolderRequest.getPath(), newFolderRequest.getName()); + if (flag) { + return AjaxJson.getSuccess("创建成功"); + } else { + return AjaxJson.getError("创建失败"); + } + } + + + @ApiOperationSupport(order = 2) + @ApiOperation(value = "删除文件") + @PostMapping("/delete/file") + public AjaxJson deleteFile(@Valid @RequestBody DeleteFileRequest deleteFileRequest) { + AbstractBaseFileService fileService = storageSourceContext.getByKey(deleteFileRequest.getStorageKey()); + boolean flag = fileService.deleteFile(deleteFileRequest.getPath(), deleteFileRequest.getName()); + if (flag) { + return AjaxJson.getSuccess("删除成功"); + } else { + return AjaxJson.getError("删除失败"); + } + } + + + @ApiOperationSupport(order = 3) + @ApiOperation(value = "删除文件夹") + @PostMapping("/delete/folder") + public AjaxJson deleteFolder(@Valid @RequestBody DeleteFolderRequest deleteFolderRequest) { + AbstractBaseFileService fileService = storageSourceContext.getByKey(deleteFolderRequest.getStorageKey()); + boolean flag = fileService.deleteFolder(deleteFolderRequest.getPath(), deleteFolderRequest.getName()); + if (flag) { + return AjaxJson.getSuccess("删除成功"); + } else { + return AjaxJson.getError("删除失败"); + } + } + + + @ApiOperationSupport(order = 4) + @ApiOperation(value = "重命名文件") + @PostMapping("/rename/file") + public AjaxJson rename(@Valid @RequestBody RenameFileRequest renameFileRequest) { + AbstractBaseFileService fileService = storageSourceContext.getByKey(renameFileRequest.getStorageKey()); + boolean flag = fileService.renameFile(renameFileRequest.getPath(), renameFileRequest.getName(), renameFileRequest.getNewName()); + if (flag) { + return AjaxJson.getSuccess("重命名成功"); + } else { + return AjaxJson.getError("重命名失败"); + } + } + + + @ApiOperationSupport(order = 5) + @ApiOperation(value = "重命名文件夹") + @PostMapping("/rename/folder") + public AjaxJson deleteFile(@Valid @RequestBody RenameFolderRequest renameFolderRequest) { + AbstractBaseFileService fileService = storageSourceContext.getByKey(renameFolderRequest.getStorageKey()); + boolean flag = fileService.renameFolder(renameFolderRequest.getPath(), renameFolderRequest.getName(), renameFolderRequest.getNewName()); + if (flag) { + return AjaxJson.getSuccess("重命名成功"); + } else { + return AjaxJson.getError("重命名失败"); + } + } + + + @ApiOperationSupport(order = 6) + @ApiOperation(value = "上传文件") + @PostMapping("/upload/file") + public AjaxJson uploadFile(@Valid @RequestBody UploadFileRequest uploadFileRequest) { + AbstractBaseFileService fileService = storageSourceContext.getByKey(uploadFileRequest.getStorageKey()); + String uploadUrl = fileService.getUploadUrl(uploadFileRequest.getPath(), + uploadFileRequest.getName(), uploadFileRequest.getSize()); + return AjaxJson.getSuccessData(uploadUrl); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/controller/FileParseController.java b/src/main/java/im/zhaojun/zfile/home/controller/FileParseController.java new file mode 100644 index 0000000..0a096a4 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/controller/FileParseController.java @@ -0,0 +1,40 @@ +package im.zhaojun.zfile.home.controller; + +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.github.xiaoymin.knife4j.annotations.ApiSort; +import com.github.xiaoymin.knife4j.annotations.DynamicParameter; +import com.github.xiaoymin.knife4j.annotations.DynamicResponseParameters; +import im.zhaojun.zfile.common.util.AjaxJson; +import im.zhaojun.zfile.common.util.HttpUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 文件解析接口 + * + * @author zhaojun + */ +@Api(tags = "文件解析模块") +@ApiSort(4) +@RestController +@RequestMapping("/api/parse") +public class FileParseController { + + @GetMapping("/content") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "获取文本内容", notes = "获取文本文件的文件内容,一般用于 txt, md, ini 等普通文本文件") + @ApiImplicitParam(paramType = "query", name = "url", value = "文本文件下载地址", required = true) + @DynamicResponseParameters(name = "AjaxJson",properties = { + @DynamicParameter(name = "msg", value = "响应消息", example = "ok"), + @DynamicParameter(name = "code", value = "业务状态码,0 为正常,其他值均为异常,异常情况下见响应消息", example = "0"), + @DynamicParameter(name = "data", value = "文本内容", example = "这是一段 txt 中的文字") + }) + public AjaxJson getContent(String url) { + return AjaxJson.getSuccessData(HttpUtil.getTextContent(url)); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/controller/ShortLinkController.java b/src/main/java/im/zhaojun/zfile/home/controller/ShortLinkController.java new file mode 100644 index 0000000..b0b32b7 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/controller/ShortLinkController.java @@ -0,0 +1,118 @@ +package im.zhaojun.zfile.home.controller; + +import cn.hutool.core.util.BooleanUtil; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.github.xiaoymin.knife4j.annotations.ApiSort; +import com.github.xiaoymin.knife4j.annotations.DynamicParameter; +import com.github.xiaoymin.knife4j.annotations.DynamicResponseParameters; +import im.zhaojun.zfile.admin.model.entity.ShortLink; +import im.zhaojun.zfile.admin.service.ShortLinkService; +import im.zhaojun.zfile.admin.service.StorageSourceService; +import im.zhaojun.zfile.admin.service.SystemConfigService; +import im.zhaojun.zfile.common.exception.IllegalDownloadLinkException; +import im.zhaojun.zfile.common.util.AjaxJson; +import im.zhaojun.zfile.common.util.StringUtils; +import im.zhaojun.zfile.home.model.dto.SystemConfigDTO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.ResponseStatus; + +import javax.annotation.Resource; + +/** + * 短链接口 + * + * @author zhaojun + */ +@Api(tags = "直短链模块") +@ApiSort(5) +@Controller +public class ShortLinkController { + + @Resource + private SystemConfigService systemConfigService; + + @Resource + private ShortLinkService shortLinkService; + + @Resource + private StorageSourceService storageSourceService; + + + @GetMapping("/api/short-link") + @ResponseBody + @ApiOperationSupport(order = 1) + @ApiOperation(value = "生成短链", notes = "对指定存储源的某文件路径生成短链") + @ApiImplicitParams({ + @ApiImplicitParam(paramType = "query", name = "storageKey", value = "存储源 id", required = true), + @ApiImplicitParam(paramType = "query", name = "path", value = "文件路径", required = true) + }) + @DynamicResponseParameters(name = "AjaxJson",properties = { + @DynamicParameter(name = "msg", value = "响应消息", example = "ok"), + @DynamicParameter(name = "code", value = "业务状态码,0 为正常,其他值均为异常,异常情况下见响应消息", example = "0"), + @DynamicParameter(name = "data", value = "短链地址", example = "https://zfile.vip/s/btz4tu") + }) + public AjaxJson generatorShortLink(String storageKey, String path) { + // 获取站点域名 + SystemConfigDTO systemConfig = systemConfigService.getSystemConfig(); + + // 是否允许使用短链和短链,如果都不允许,则提示禁止生成. + Boolean showShortLink = systemConfig.getShowShortLink(); + Boolean showPathLink = systemConfig.getShowPathLink(); + if ( BooleanUtil.isFalse(showShortLink) && BooleanUtil.isFalse(showPathLink)) { + throw new IllegalDownloadLinkException("当前系统不允许使用短链和短链."); + } + + String domain = systemConfig.getDomain(); + + // 拼接直链地址. + String fullPath = StringUtils.concat(path); + ShortLink shortLink = shortLinkService.findByStorageKeyAndUrl(storageKey, fullPath); + // 如果没有短链,则生成短链 + if (shortLink == null) { + Integer storageId = storageSourceService.findIdByKey(storageKey); + shortLink = shortLinkService.generatorShortLink(storageId, fullPath); + } + + String shortUrl = StringUtils.removeDuplicateSlashes(domain + "/s/" + shortLink.getShortKey()); + return AjaxJson.getSuccessData(shortUrl); + } + + + @GetMapping("/s/{key}") + @ResponseStatus(HttpStatus.FOUND) + @ApiOperationSupport(order = 2) + @ApiOperation(value = "跳转短链", notes = "根据短链 key 跳转(302 重定向)到对应的直链.") + @ApiImplicitParam(paramType = "path", name = "key", value = "短链 key", required = true) + public String parseShortKey(@PathVariable String key) { + ShortLink shortLink = shortLinkService.findByKey(key); + if (shortLink == null) { + throw new RuntimeException("此直链不存在或已失效."); + } + + SystemConfigDTO systemConfig = systemConfigService.getSystemConfig(); + String domain = systemConfig.getDomain(); + + // 是否允许生成短链. + Boolean showShortLink = systemConfig.getShowShortLink(); + if ( BooleanUtil.isFalse(showShortLink)) { + throw new IllegalDownloadLinkException("当前系统不允许使用短链."); + } + + String directLinkPrefix = systemConfig.getDirectLinkPrefix(); + Integer storageId = shortLink.getStorageId(); + String storageKey = storageSourceService.findKeyById(storageId); + String filePath = StringUtils.encodeAllIgnoreSlashes(shortLink.getUrl()); + + String url = StringUtils.concat(domain, directLinkPrefix, storageKey, filePath); + return "redirect:" + url; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/controller/SiteController.java b/src/main/java/im/zhaojun/zfile/home/controller/SiteController.java new file mode 100644 index 0000000..88ccef9 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/controller/SiteController.java @@ -0,0 +1,120 @@ +package im.zhaojun.zfile.home.controller; + +import cn.hutool.core.util.ObjectUtil; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.github.xiaoymin.knife4j.annotations.ApiSort; +import im.zhaojun.zfile.admin.model.entity.ReadmeConfig; +import im.zhaojun.zfile.admin.model.entity.StorageSource; +import im.zhaojun.zfile.admin.model.enums.ReadmeDisplayModeEnum; +import im.zhaojun.zfile.admin.service.ReadmeConfigService; +import im.zhaojun.zfile.admin.service.StorageSourceService; +import im.zhaojun.zfile.admin.service.SystemConfigService; +import im.zhaojun.zfile.common.config.ZFileProperties; +import im.zhaojun.zfile.common.util.AjaxJson; +import im.zhaojun.zfile.home.convert.StorageSourceConvert; +import im.zhaojun.zfile.home.model.dto.SystemConfigDTO; +import im.zhaojun.zfile.home.model.request.FileListConfigRequest; +import im.zhaojun.zfile.home.model.result.SiteConfigResult; +import im.zhaojun.zfile.home.model.result.StorageSourceConfigResult; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.validation.Valid; + +/** + * 站点基础模块接口 + * + * @author zhaojun + */ +@Api(tags = "站点基础模块") +@ApiSort(1) +@Slf4j +@RequestMapping("/api/site") +@RestController +public class SiteController { + + @Resource + private ZFileProperties zFileProperties; + + @Resource + private StorageSourceConvert storageSourceConvert; + + @Resource + private StorageSourceService storageSourceService; + + @Resource + private SystemConfigService systemConfigService; + + @Resource + private ReadmeConfigService readmeConfigService; + + + @ApiOperationSupport(order = 1) + @ApiOperation(value = "获取站点全局设置", notes = "获取站点全局设置, 包括是否页面布局、列表尺寸、公告、配置信息") + @GetMapping("/config/global") + public AjaxJson globalConfig() { + SystemConfigDTO systemConfig = systemConfigService.getSystemConfig(); + + SiteConfigResult siteConfigResult = new SiteConfigResult(); + BeanUtils.copyProperties(systemConfig, siteConfigResult); + + siteConfigResult.setDebugMode(zFileProperties.isDebug()); + return AjaxJson.getSuccessData(siteConfigResult); + } + + + @ApiOperationSupport(order = 2) + @ApiOperation(value = "获取存储源设置", notes = "获取某个存储源的设置信息, 包括是否启用, 名称, 存储源类型, 存储源配置信息") + @PostMapping("/config/storage") + public AjaxJson storageList(@Valid @RequestBody FileListConfigRequest fileListConfigRequest) { + + String storageKey = fileListConfigRequest.getStorageKey(); + String path = fileListConfigRequest.getPath(); + + StorageSource storageSource = storageSourceService.findByStorageKey(storageKey); + StorageSourceConfigResult storageSourceConfigResult = storageSourceConvert.entityToConfigResult(storageSource); + + // 获取是否允许文件操作 + storageSourceConfigResult.setEnableFileOperator(storageSource.allowOperator()); + + // 根据存储源 key 获取存储源 id + Integer storageId = storageSource.getId(); + + // 获取指定目录 readme 文件 + ReadmeConfig readmeByPath = readmeConfigService.findReadmeByPath(storageId, path); + + if (ObjectUtil.isNotNull(readmeByPath)) { + String readmeText = readmeByPath.getReadmeText(); + ReadmeDisplayModeEnum displayMode = readmeByPath.getDisplayMode(); + + storageSourceConfigResult.setReadmeText(readmeText); + storageSourceConfigResult.setReadmeDisplayMode(displayMode); + } + + return AjaxJson.getSuccessData(storageSourceConfigResult); + } + + + @ResponseBody + @ApiOperationSupport(order = 3) + @ApiOperation(value = "重置管理员密码", notes = "开启 debug 模式时,访问此接口会强制将管理员账户密码修改为 admin 123456, 并修改登录验证方式为图片验证码, 详见:https://docs.zfile.vip/#/question?id=reset-pwd") + @GetMapping("/reset-password") + public AjaxJson resetPwd() { + if (zFileProperties.isDebug()) { + systemConfigService.resetAdminLoginInfo(); + return AjaxJson.getSuccess(); + } else { + return AjaxJson.getError("未开启 DEBUG 模式,不允许进行此操作。"); + } + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/convert/StorageSourceConvert.java b/src/main/java/im/zhaojun/zfile/home/convert/StorageSourceConvert.java new file mode 100644 index 0000000..ec271c4 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/convert/StorageSourceConvert.java @@ -0,0 +1,55 @@ +package im.zhaojun.zfile.home.convert; + +import im.zhaojun.zfile.admin.model.result.storage.StorageSourceAdminResult; +import im.zhaojun.zfile.home.model.result.StorageSourceConfigResult; +import im.zhaojun.zfile.home.model.result.StorageSourceResult; +import im.zhaojun.zfile.admin.model.entity.StorageSource; +import org.mapstruct.Mapper; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * StorageSource 转换器 + * + * @author zhaojun + */ +@Component +@Mapper(componentModel = "spring") +public interface StorageSourceConvert { + + + /** + * 将 StorageSource 转换为 StorageSourceResult + * + * @param list + * StorageSource 列表 + * + * @return StorageSourceResult 列表 + */ + List entityToResultList(List list); + + + /** + * 将 StorageSource 转换为 StorageSourceConfigResult + * + * @param storageSource + * StorageSource 实体 + * + * @return StorageSourceConfigResult 实体 + */ + StorageSourceConfigResult entityToConfigResult(StorageSource storageSource); + + + /** + * 将 StorageSource 转换为 StorageSourceAdminResult + * + * @param list + * StorageSource 列表 + * + * @return StorageSourceAdminResult 列表 + */ + List entityToAdminResultList(List list); + + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/filter/DownloadLinkFilter.java b/src/main/java/im/zhaojun/zfile/home/filter/DownloadLinkFilter.java new file mode 100644 index 0000000..dc77a73 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/filter/DownloadLinkFilter.java @@ -0,0 +1,220 @@ +package im.zhaojun.zfile.home.filter; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.io.IoUtil; +import cn.hutool.core.util.BooleanUtil; +import cn.hutool.core.util.CharsetUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.extra.servlet.ServletUtil; +import cn.hutool.extra.spring.SpringUtil; +import im.zhaojun.zfile.admin.model.entity.DownloadLog; +import im.zhaojun.zfile.admin.model.entity.ShortLink; +import im.zhaojun.zfile.admin.model.entity.StorageSource; +import im.zhaojun.zfile.admin.service.DownloadLogService; +import im.zhaojun.zfile.admin.service.FilterConfigService; +import im.zhaojun.zfile.admin.service.ShortLinkService; +import im.zhaojun.zfile.admin.service.StorageSourceService; +import im.zhaojun.zfile.admin.service.SystemConfigService; +import im.zhaojun.zfile.common.constant.ZFileConstant; +import im.zhaojun.zfile.common.context.StorageSourceContext; +import im.zhaojun.zfile.common.exception.NotEnabledStorageSourceException; +import im.zhaojun.zfile.common.exception.file.operator.DownloadFileException; +import im.zhaojun.zfile.common.util.HttpUtil; +import im.zhaojun.zfile.common.util.StringUtils; +import im.zhaojun.zfile.home.model.dto.SystemConfigDTO; +import im.zhaojun.zfile.home.service.base.AbstractBaseFileService; +import lombok.extern.slf4j.Slf4j; +import org.apache.http.util.EncodingUtils; +import org.springframework.http.HttpHeaders; + +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.annotation.WebFilter; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.OutputStream; +import java.util.Date; +import java.util.List; + + +/** + * 下载链接过滤器,如前缀是设置的直链,则进行直链处理 + * + * @author zhaojun + */ +@WebFilter(urlPatterns = "/*") +@Slf4j +public class DownloadLinkFilter implements Filter { + + private SystemConfigService systemConfigService; + + private StorageSourceService storageSourceService; + + private StorageSourceContext storageSourceContext; + + private DownloadLogService downloadLogService; + + private ShortLinkService shortLinkService; + + private FilterConfigService filterConfigService; + + @Override + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { + if (systemConfigService == null) { + systemConfigService = SpringUtil.getBean(SystemConfigService.class); + } + + if (storageSourceService == null) { + storageSourceService = SpringUtil.getBean(StorageSourceService.class); + } + + if (storageSourceContext == null) { + storageSourceContext = SpringUtil.getBean(StorageSourceContext.class); + } + + if (downloadLogService == null) { + downloadLogService = SpringUtil.getBean(DownloadLogService.class); + } + + if (shortLinkService == null) { + shortLinkService = SpringUtil.getBean(ShortLinkService.class); + } + + if (filterConfigService == null) { + filterConfigService = SpringUtil.getBean(FilterConfigService.class); + } + + HttpServletRequest httpServletRequest = (HttpServletRequest) request; + HttpServletResponse httpServletResponse = (HttpServletResponse) response; + + String requestUrl = httpServletRequest.getRequestURI(); + + // 获取路径层级,少于 2 层的不可能是直链 + List list = StrUtil.split(requestUrl, '/', true, true); + if (CollUtil.size(list) > 2) { + // 获取当前请求 URL 的前缀 + String currentRequestPrefix = list.get(0); + // 获取存储源 key + String currentStorageKey = list.get(1); + + // 获取下载文件路径 + List pathList = CollUtil.sub(list, 2, list.size()); + String filePath = CollUtil.join(pathList, StringUtils.DELIMITER_STR); + + // 获取系统配置的直链前缀 + SystemConfigDTO systemConfig = systemConfigService.getSystemConfig(); + String directLinkPrefix = systemConfig.getDirectLinkPrefix(); + + if (StrUtil.equalsIgnoreCase(currentRequestPrefix, directLinkPrefix)) { + + if (BooleanUtil.isFalse(systemConfig.getShowPathLink())) { + httpServletResponse.setHeader(HttpHeaders.CONTENT_TYPE, "text/plain;charset=utf-8"); + httpServletResponse.getWriter().write("当前系统不允许使用直链."); + return; + } + + // 获取下载地址全路径, 不以 / 开头的要补 /, 进行了 url encode 编码的要进行解码 + String decodeFilePath = StringUtils.concat(ZFileConstant.PATH_SEPARATOR, StringUtils.decode(filePath)); + + // 根据存储源 key 获取存储源 id. + Integer storageId = storageSourceService.findIdByKey(currentStorageKey); + if (filterConfigService.filterResultIsDisableDownload(storageId, decodeFilePath)) { + // 获取 Forbidden 页面地址 + String forbiddenUrl = systemConfigService.getForbiddenUrl(); + httpServletResponse.sendRedirect(forbiddenUrl); + return; + } + + Boolean recordDownloadLog = systemConfig.getRecordDownloadLog(); + if (BooleanUtil.isTrue(recordDownloadLog)) { + DownloadLog downloadLog = new DownloadLog(); + downloadLog.setPath(decodeFilePath); + downloadLog.setStorageKey(currentStorageKey); + downloadLog.setCreateTime(new Date()); + downloadLog.setIp(ServletUtil.getClientIP(httpServletRequest)); + downloadLog.setReferer(httpServletRequest.getHeader(HttpHeaders.REFERER)); + downloadLog.setUserAgent(httpServletRequest.getHeader(HttpHeaders.USER_AGENT)); + + ShortLink shortLink = shortLinkService.findByStorageIdAndUrl(storageId, decodeFilePath); + // 如果没有短链,则生成短链 + if (shortLink == null) { + shortLink = shortLinkService.generatorShortLink(storageId, decodeFilePath); + } + downloadLog.setShortKey(shortLink.getShortKey()); + + downloadLogService.save(downloadLog); + } + handleDownloadLink(httpServletResponse, currentStorageKey, decodeFilePath); + return; + } + } + + chain.doFilter(httpServletRequest, httpServletResponse); + } + + + /** + * 进行文件下载, 跳转到指定下载地址 + * + * @param response + * HttpServletResponse + * + * @param storageKey + * 存储源 key + * + * @param filePath + * 文件路径 + */ + private void handleDownloadLink(HttpServletResponse response, String storageKey, String filePath) throws IOException { + StorageSource storageSource = storageSourceService.findByStorageKey(storageKey); + Boolean enable = storageSource.getEnable(); + if (!enable) { + throw new NotEnabledStorageSourceException(); + } + + if (filePath.length() > 0 && filePath.charAt(0) != ZFileConstant.PATH_SEPARATOR_CHAR) { + filePath = "/" + filePath; + } + + AbstractBaseFileService fileService = storageSourceContext.getByKey(storageKey); + + String downloadUrl; + try { + downloadUrl = fileService.getDownloadUrl(filePath); + } catch (DownloadFileException e) { + log.error("获取文件下载链接异常 {}. 存储源 ID: {}, 文件路径: {}", e.getMessage(), e.getStorageId(), e.getPathAndName()); + response.setHeader(HttpHeaders.CONTENT_TYPE, "text/plain;charset=utf-8"); + response.getWriter().write("获取下载链接异常,请联系管理员!"); + return; + } + + if (StrUtil.isEmpty(downloadUrl)) { + log.error("获取到文件下载链接为空,存储源 key {}, 文件路径 {}", storageKey, filePath); + response.setHeader(HttpHeaders.CONTENT_TYPE, "text/plain;charset=utf-8"); + response.getWriter().write("获取下载链接异常,请联系管理员![2]"); + return; + } + + if (StrUtil.equalsIgnoreCase(FileUtil.extName(filePath), "m3u8")) { + String textContent = HttpUtil.getTextContent(downloadUrl); + response.setContentType("application/vnd.apple.mpegurl;charset=utf-8"); + OutputStream outputStream = response.getOutputStream(); + byte[] textContentBytes = EncodingUtils.getBytes(textContent, CharsetUtil.CHARSET_UTF_8.displayName()); + IoUtil.write(outputStream, true, textContentBytes); + return; + } + + // 禁止直链被浏览器 302 缓存. + response.setHeader(HttpHeaders.CACHE_CONTROL, "no-cache, no-store, must-revalidate, private"); + response.setHeader(HttpHeaders.PRAGMA, "no-cache"); + response.setHeader(HttpHeaders.EXPIRES, "0"); + + response.sendRedirect(downloadUrl); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/install/InstallController.java b/src/main/java/im/zhaojun/zfile/home/install/InstallController.java new file mode 100644 index 0000000..cb82fa9 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/install/InstallController.java @@ -0,0 +1,62 @@ +package im.zhaojun.zfile.home.install; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.crypto.SecureUtil; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import im.zhaojun.zfile.common.exception.InstallSystemException; +import im.zhaojun.zfile.home.model.dto.SystemConfigDTO; +import im.zhaojun.zfile.home.model.request.InstallSystemRequest; +import im.zhaojun.zfile.admin.service.SystemConfigService; +import im.zhaojun.zfile.common.util.AjaxJson; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * 系统初始化接口 + * + * @author zhaojun + */ +@Api(tags = "初始化模块") +@RestController +@RequestMapping("/api") +public class InstallController { + + @Resource + private SystemConfigService systemConfigService; + + + @GetMapping("/install/status") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "获取系统初始化状态", notes = "根据管理员用户名是否存在判断系统已初始化, 已初始化返回 true, 未初始化返回 false") + public AjaxJson isInstall() { + return AjaxJson.getSuccessData(systemConfigService.getSystemIsInstalled()); + } + + + @ApiOperationSupport(order = 2) + @ApiOperation(value = "初始化系统", notes = "根据管理员用户名是否存在判断系统已初始化, 已初始化返回 true, 未初始化返回 false") + @PostMapping("/install") + public AjaxJson install(@RequestBody InstallSystemRequest installSystemRequest) { + if (StrUtil.isNotEmpty(systemConfigService.getAdminUsername())) { + throw new InstallSystemException("请勿重复初始化"); + } + + installSystemRequest.setPassword(SecureUtil.md5(installSystemRequest.getPassword())); + + SystemConfigDTO systemConfigDTO = new SystemConfigDTO(); + BeanUtil.copyProperties(installSystemRequest, systemConfigDTO); + systemConfigDTO.setInstalled(true); + systemConfigService.updateSystemConfig(systemConfigDTO); + + return AjaxJson.getSuccess(); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/model/dto/CacheInfoDTO.java b/src/main/java/im/zhaojun/zfile/home/model/dto/CacheInfoDTO.java new file mode 100644 index 0000000..4c68caf --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/model/dto/CacheInfoDTO.java @@ -0,0 +1,32 @@ +package im.zhaojun.zfile.home.model.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; + +import java.util.Set; + +/** + * 缓存信息 DTO + * + * @author zhaojun + */ +@Data +@AllArgsConstructor +@ApiModel(description = "缓存信息类") +public class CacheInfoDTO { + + @ApiModelProperty(value = "缓存的 key 个数", required = true, example = "100") + private Integer cacheCount; + + @ApiModelProperty(value = "缓存命中数", required = true, example = "70") + private Long hitCount; + + @ApiModelProperty(value = "缓存未命中数", required = true, example = "30") + private Long missCount; + + @ApiModelProperty(value = "缓存的路径", required = true) + private Set cacheKeys; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/model/dto/StorageSourceAllParam.java b/src/main/java/im/zhaojun/zfile/home/model/dto/StorageSourceAllParam.java new file mode 100644 index 0000000..6e5c587 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/model/dto/StorageSourceAllParam.java @@ -0,0 +1,106 @@ +package im.zhaojun.zfile.home.model.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 所有存储源的全部参数 + * + * @author zhaojun + */ +@Data +@ApiModel(description = "存储源所有拓展参数") +public class StorageSourceAllParam { + + @ApiModelProperty(value = "Endpoint 接入点", example = "oss-cn-beijing.aliyuncs.com") + private String endPoint; + + @ApiModelProperty(value = "路径风格", example = "path-style") + private String pathStyle; + + @ApiModelProperty(value = "是否是私有空间", example = "true") + private Boolean isPrivate; + + @ApiModelProperty(value = "accessKey", example = "LTAI4FjfXqXxQZQZ") + private String accessKey; + + @ApiModelProperty(value = "secretKey", example = "QJIO19ASJIKL10ZL") + private String secretKey; + + @ApiModelProperty(value = "bucket 名称", example = "zfile-test") + private String bucketName; + + @ApiModelProperty(value = "域名或 IP", example = "127.0.0.1") + private String host; + + @ApiModelProperty(value = "端口", example = "8080") + private String port; + + @ApiModelProperty(value = "访问令牌", example = "2.a6b7dbd428f731035f771b8d15063f61.86400.12929220") + private String accessToken; + + @ApiModelProperty(value = "刷新令牌", example = "15063f61.86400.1292922000-2346678-1243281asd-1asa") + private String refreshToken; + + @ApiModelProperty(value = "secretId", example = "LTAI4FjfXqXxQZQZ") + private String secretId; + + @ApiModelProperty(value = "文件路径", example = "/root/") + private String filePath; + + @ApiModelProperty(value = "用户名", example = "admin") + private String username; + + @ApiModelProperty(value = "密码", example = "123456") + private String password; + + @ApiModelProperty(value = "域名", example = "http://zfile-test.oss-cn-beijing.aliyuncs.com") + private String domain; + + @ApiModelProperty(value = "基路径", example = "/root/") + private String basePath; + + @ApiModelProperty(value = "token", example = "12e34awsde12") + private String token; + + @ApiModelProperty(value = "token 有效期", example = "1800") + private Integer tokenTime; + + @ApiModelProperty(value = "siteId", example = "ltzx124yu54z") + private String siteId; + + @ApiModelProperty(value = "listId", example = "nbmyuoya12sz") + private String listId; + + @ApiModelProperty(value = "站点名称", example = "test") + private String siteName; + + @ApiModelProperty(value = "站点类型", example = "sites") + private String siteType; + + @ApiModelProperty(value = "下载反代域名", example = "http://zfile-oroxy.zfile.vip") + private String proxyDomain; + + @ApiModelProperty(value = "下载链接类型", example = "basic") + private String downloadLinkType; + + @ApiModelProperty(value = "clientId", example = "4a72d927-1917-418d-9eb2-1b365c53c1c5") + private String clientId; + + @ApiModelProperty(value = "clientSecret", example = "l:zI-_yrW75lV8M61K@z.I2K@B/On6Q1a") + private String clientSecret; + + @ApiModelProperty(value = "区域", example = "cn-beijing") + private String region; + + @ApiModelProperty(value = "url", example = "url 链接") + private String url; + + @ApiModelProperty(value = "是否自动配置 cors 规则", example = "true") + private Boolean autoConfigCors; + + @ApiModelProperty(value = "编码格式", example = "UTF-8") + private String encoding; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/model/dto/StorageSourceDTO.java b/src/main/java/im/zhaojun/zfile/home/model/dto/StorageSourceDTO.java new file mode 100644 index 0000000..7bb9816 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/model/dto/StorageSourceDTO.java @@ -0,0 +1,66 @@ +package im.zhaojun.zfile.home.model.dto; + +import com.baomidou.mybatisplus.annotation.TableField; +import im.zhaojun.zfile.admin.model.enums.SearchModeEnum; +import im.zhaojun.zfile.home.model.enums.StorageTypeEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author zhaojun + */ +@Data +@ApiModel(description = "存储源基本参数") +public class StorageSourceDTO { + + @ApiModelProperty(value = "ID, 新增无需填写", example = "1") + private Integer id; + + @ApiModelProperty(value = "存储源名称", example = "阿里云 OSS 存储") + private String name; + + @ApiModelProperty(value = "存储源别名", example = "存储源别名,用于 URL 中展示, 如 http://ip:port/{存储源别名}") + private String key; + + @ApiModelProperty(value = "存储源备注", example = "这是一个备注信息, 用于管理员区分不同的存储源, 此字段仅管理员可见") + private String remark; + + @ApiModelProperty(value = "存储源类型", example = "ftp") + private StorageTypeEnum type; + + @ApiModelProperty(value = "是否启用", example = "true") + private boolean enable; + + @ApiModelProperty(value = "是否启用文件操作功能", example = "true", notes = "是否启用文件上传,编辑,删除等操作.") + private Boolean enableFileOperator; + + @ApiModelProperty(value = "是否允许匿名进行文件操作", example = "true", notes = "是否允许匿名进行文件上传,编辑,删除等操作.") + private Boolean enableFileAnnoOperator; + + @ApiModelProperty(value = "是否开启缓存", example = "true") + private boolean enableCache; + + @ApiModelProperty(value = "是否开启缓存自动刷新", example = "true") + private boolean autoRefreshCache; + + @ApiModelProperty(value = "是否开启搜索", example = "true") + private boolean searchEnable; + + @ApiModelProperty(value = "搜索是否忽略大小写", example = "true") + private boolean searchIgnoreCase; + + @TableField(value = "`search_mode`") + @ApiModelProperty(value = "搜索模式", example = "SEARCH_CACHE", notes = "仅从缓存中搜索或直接全量搜索") + private SearchModeEnum searchMode; + + @ApiModelProperty(value = "排序值", example = "1") + private Integer orderNum; + + @ApiModelProperty(value = "存储源拓展属性") + private StorageSourceAllParam storageSourceAllParam; + + @ApiModelProperty(value = "是否默认开启图片模式", example = "true") + private boolean defaultSwitchToImgMode; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/model/dto/SystemConfigDTO.java b/src/main/java/im/zhaojun/zfile/home/model/dto/SystemConfigDTO.java new file mode 100644 index 0000000..6739833 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/model/dto/SystemConfigDTO.java @@ -0,0 +1,119 @@ +package im.zhaojun.zfile.home.model.dto; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import im.zhaojun.zfile.admin.model.enums.LoginVerifyModeEnum; +import im.zhaojun.zfile.admin.model.enums.RefererTypeEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 系统设置传输类 + * + * @author zhaojun + */ +@Data +@ApiModel(description = "系统设置类") +public class SystemConfigDTO { + + @JsonIgnore + @ApiModelProperty(value = "ID", required = true, example = "1") + private Integer id; + + @ApiModelProperty(value = "站点名称", example = "ZFile Site Name") + private String siteName; + + @ApiModelProperty(value = "用户名", example = "admin") + private String username; + + @ApiModelProperty(value = "头像地址", example = "https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png") + private String avatar; + + @ApiModelProperty(value = "备案号", example = "冀ICP备12345678号-1") + private String icp; + + @JsonIgnore + private String password; + + @ApiModelProperty(value = "站点域名", example = "https://zfile.vip") + private String domain; + + @ApiModelProperty(value = "自定义 JS") + private String customJs; + + @ApiModelProperty(value = "自定义 CSS") + private String customCss; + + @ApiModelProperty(value = "列表尺寸", notes = "large:大,default:中,small:小", example = "default") + private String tableSize; + + @ApiModelProperty(value = "是否显示文档区", example = "true") + private Boolean showDocument; + + @ApiModelProperty(value = "网站公告", example = "ZFile 网站公告") + private String announcement; + + @ApiModelProperty(value = "是否显示网站公告", example = "true") + private Boolean showAnnouncement; + + @ApiModelProperty(value = "页面布局", notes = "full:全屏,center:居中", example = "full") + private String layout; + + @ApiModelProperty(value = "是否显示生成直链功能(含直链和路径短链)", example = "true") + private Boolean showLinkBtn; + + @ApiModelProperty(value = "是否显示生成短链功能", example = "true") + private Boolean showShortLink; + + @ApiModelProperty(value = "是否显示生成路径链接功能", example = "true") + private Boolean showPathLink; + + @ApiModelProperty(value = "是否已初始化", example = "true") + private Boolean installed; + + @ApiModelProperty(value = "自定义视频文件后缀格式") + private String customVideoSuffix; + + @ApiModelProperty(value = "自定义图像文件后缀格式") + private String customImageSuffix; + + @ApiModelProperty(value = "自定义音频文件后缀格式") + private String customAudioSuffix; + + @ApiModelProperty(value = "自定义文本文件后缀格式") + private String customTextSuffix; + + @ApiModelProperty(value = "直链地址前缀") + private String directLinkPrefix; + + @ApiModelProperty(value = "直链 Referer 防盗链类型") + private RefererTypeEnum refererType; + + @ApiModelProperty(value = "是否记录下载日志", example = "true") + private Boolean recordDownloadLog; + + @ApiModelProperty(value = "直链 Referer 是否允许为空") + private Boolean refererAllowEmpty; + + @ApiModelProperty(value = "直链 Referer 值") + private String refererValue; + + @ApiModelProperty(value = "登陆验证方式,支持验证码和 2FA 认证") + private LoginVerifyModeEnum loginVerifyMode; + + @ApiModelProperty(value = "登陆验证 Secret") + private String loginVerifySecret; + + @ApiModelProperty(value = "根目录是否显示所有存储源", notes = "根目录是否显示所有存储源, 如果为 true, 则根目录显示所有存储源列表, 如果为 false, 则会自动跳转到第一个存储源.", example = "true", required = true) + private Boolean rootShowStorage; + + @ApiModelProperty(value = "前端域名", notes = "前端域名,前后端分离情况下需要配置.", example = "http://xxx.example.com") + private String frontDomain; + + @ApiModelProperty(value = "是否在前台显示登陆按钮", example = "true") + private Boolean showLogin; + + @ApiModelProperty(value = "RAS Hex Key", example = "r2HKbzc1DfvOs5uHhLn7pA==") + private String rsaHexKey; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/model/enums/FileTypeEnum.java b/src/main/java/im/zhaojun/zfile/home/model/enums/FileTypeEnum.java new file mode 100644 index 0000000..ead59d4 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/model/enums/FileTypeEnum.java @@ -0,0 +1,31 @@ +package im.zhaojun.zfile.home.model.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.fasterxml.jackson.annotation.JsonValue; +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 文件类型枚举 + * + * @author zhaojun + */ +@Getter +@AllArgsConstructor +public enum FileTypeEnum { + + /** + * 文件 + */ + FILE("FILE"), + + /** + * 文件夹 + */ + FOLDER("FOLDER"); + + @EnumValue + @JsonValue + private final String value; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/model/enums/StorageTypeEnum.java b/src/main/java/im/zhaojun/zfile/home/model/enums/StorageTypeEnum.java similarity index 54% rename from src/main/java/im/zhaojun/zfile/model/enums/StorageTypeEnum.java rename to src/main/java/im/zhaojun/zfile/home/model/enums/StorageTypeEnum.java index d788ff5..3020a74 100644 --- a/src/main/java/im/zhaojun/zfile/model/enums/StorageTypeEnum.java +++ b/src/main/java/im/zhaojun/zfile/home/model/enums/StorageTypeEnum.java @@ -1,26 +1,33 @@ -package im.zhaojun.zfile.model.enums; +package im.zhaojun.zfile.home.model.enums; +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.baomidou.mybatisplus.annotation.IEnum; import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import io.swagger.annotations.ApiModelProperty; import java.util.HashMap; import java.util.Map; /** + * 存储源类型枚举 + * * @author zhaojun */ @JsonFormat(shape = JsonFormat.Shape.OBJECT) -public enum StorageTypeEnum { +public enum StorageTypeEnum implements IEnum { /** - * 当前系统支持的所有存储策略 + * 当前系统支持的所有存储源类型 */ LOCAL("local", "本地存储"), ALIYUN("aliyun", "阿里云 OSS"), + BAIDU("baidu", "百度云盘"), + WEBDAV("webdav", "WebDAV"), TENCENT("tencent", "腾讯云 COS"), - WebDAV("webdav", "WebDAV"), UPYUN("upyun", "又拍云 USS"), FTP("ftp", "FTP"), - UFILE("ufile", "UFile"), + SFTP("sftp", "SFTP"), HUAWEI("huawei", "华为云 OBS"), MINIO("minio", "MINIO"), S3("s3", "S3通用协议"), @@ -30,17 +37,21 @@ public enum StorageTypeEnum { SHAREPOINT_DRIVE_CHINA("sharepoint-china", "SharePoint 世纪互联"), QINIU("qiniu", "七牛云 KODO"); - private String key; - private String description; - - private static Map enumMap = new HashMap<>(); + private static final Map ENUM_MAP = new HashMap<>(); static { for (StorageTypeEnum type : StorageTypeEnum.values()) { - enumMap.put(type.getKey(), type); + ENUM_MAP.put(type.getKey(), type); } } + @ApiModelProperty(value = "存储源类型枚举 Key", example = "aliyun") + @EnumValue + private final String key; + + @ApiModelProperty(value = "存储源类型枚举描述", example = "阿里云 OSS") + private final String description; + StorageTypeEnum(String key, String description) { this.key = key; this.description = description; @@ -50,20 +61,12 @@ public enum StorageTypeEnum { return key; } - public void setKey(String key) { - this.key = key; - } - public String getDescription() { return description; } - public void setDescription(String description) { - this.description = description; + @JsonIgnore + public String getValue() { + return key; } - - public static StorageTypeEnum getEnum(String value) { - return enumMap.get(value.toLowerCase()); - } - } \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/model/request/FileListConfigRequest.java b/src/main/java/im/zhaojun/zfile/home/model/request/FileListConfigRequest.java new file mode 100644 index 0000000..602e6d2 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/model/request/FileListConfigRequest.java @@ -0,0 +1,25 @@ +package im.zhaojun.zfile.home.model.request; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * 获取文件夹参数请求参数 + * + * @author zhaojun + */ +@Data +@ApiModel(description = "获取文件夹参数请求类") +public class FileListConfigRequest { + + @ApiModelProperty(value = "存储源 key", required = true, example = "local") + @NotBlank(message = "存储源 key 不能为空") + private String storageKey; + + @ApiModelProperty(value = "请求路径", example = "/") + private String path; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/model/request/FileListRequest.java b/src/main/java/im/zhaojun/zfile/home/model/request/FileListRequest.java new file mode 100644 index 0000000..97aeb20 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/model/request/FileListRequest.java @@ -0,0 +1,52 @@ +package im.zhaojun.zfile.home.model.request; + +import cn.hutool.core.util.StrUtil; +import im.zhaojun.zfile.common.validation.StringListValue; +import im.zhaojun.zfile.common.util.StringUtils; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * 获取文件夹下文件列表请求参数 + * + * @author zhaojun + */ +@Data +@ApiModel(description = "获取文件夹下文件列表请求类") +public class FileListRequest { + + @ApiModelProperty(value = "存储源 key", required = true, example = "local") + @NotBlank(message = "存储源 key 不能为空") + private String storageKey; + + @ApiModelProperty(value = "请求路径", example = "/") + private String path; + + @ApiModelProperty(value = "文件夹密码, 如果文件夹需要密码才能访问,则支持请求密码", example = "123456") + private String password; + + @StringListValue(message = "排序字段参数异常,只能是 name、size、time", vals = {"name", "size", "time"}) + private String orderBy; + + @StringListValue(message = "排序顺序参数异常,只能是 asc 或 desc", vals = {"asc", "desc"}) + private String orderDirection; + + public void handleDefaultValue() { + if (StrUtil.isEmpty(path)) { + path = "/"; + } + if (StrUtil.isEmpty(orderBy)) { + orderBy = "name"; + } + if (StrUtil.isEmpty(orderDirection)) { + orderDirection = "asc"; + } + + // 自动补全路径, 如 a 补全为 /a/ + path = StringUtils.concat(path); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/model/request/InstallSystemRequest.java b/src/main/java/im/zhaojun/zfile/home/model/request/InstallSystemRequest.java new file mode 100644 index 0000000..94f7725 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/model/request/InstallSystemRequest.java @@ -0,0 +1,28 @@ +package im.zhaojun.zfile.home.model.request; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 系统初始化请求参数 + * + * @author zhaojun + */ +@Data +@ApiModel(description = "系统初始化请求类") +public class InstallSystemRequest { + + @ApiModelProperty(value = "站点名称", example = "ZFile Site Name") + private String siteName; + + @ApiModelProperty(value = "用户名", example = "admin") + private String username; + + @ApiModelProperty(value = "密码", example = "123456") + private String password; + + @ApiModelProperty(value = "站点域名", example = "https://zfile.vip") + private String domain; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/model/request/SearchStorageRequest.java b/src/main/java/im/zhaojun/zfile/home/model/request/SearchStorageRequest.java new file mode 100644 index 0000000..5065769 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/model/request/SearchStorageRequest.java @@ -0,0 +1,26 @@ +package im.zhaojun.zfile.home.model.request; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * 搜索存储源中文件请求参数 + * + * @author zhaojun + */ +@Data +@ApiModel(description = "搜索存储源中文件请求类") +public class SearchStorageRequest { + + @ApiModelProperty(value = "存储源 key", required = true, example = "local") + @NotBlank(message = "存储源 key 不能为空") + private String storageKey; + + @ApiModelProperty(value = "搜索 key", required = true, example = "png") + @NotBlank(message = "搜索 key 不能为空") + private String searchVal; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/model/request/SharePointInfoRequest.java b/src/main/java/im/zhaojun/zfile/home/model/request/SharePointInfoRequest.java new file mode 100644 index 0000000..187bac5 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/model/request/SharePointInfoRequest.java @@ -0,0 +1,35 @@ +package im.zhaojun.zfile.home.model.request; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +/** + * SharePoint 信息请求参数 + * + * @author zhaojun + */ +@Data +@ApiModel(description = "SharePoint 信息请求类") +public class SharePointInfoRequest { + + @ApiModelProperty(value = "SharePoint 类型", notes = "Standard(国际版、个人版等) 或 China(世纪互联)", required = true, example = "Standard") + private String type; + + @ApiModelProperty(value = "访问令牌 (accessToken)", required = true, example = "EwBoxxxxxxxxxxxxxxxbAI=") + private String accessToken; + + @ApiModelProperty(value = "域名前缀", required = true, example = "zfile") + private String domainPrefix; + + @ApiModelProperty(value = "站点类型", required = true, example = "/sites/") + private String siteType; + + @ApiModelProperty(value = "站点名称", required = true, example = "zfile") + private String siteName; + + @ApiModelProperty(value = "域名类型", notes = "com 或 cn", example = "com") + private String domainType; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/model/request/ShortLinkSearchRequest.java b/src/main/java/im/zhaojun/zfile/home/model/request/ShortLinkSearchRequest.java new file mode 100644 index 0000000..d6e8088 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/model/request/ShortLinkSearchRequest.java @@ -0,0 +1,46 @@ +package im.zhaojun.zfile.home.model.request; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * 短链接搜索请求参数 + * + * @author zhaojun + */ +@Data +@ApiModel(description = "搜索存储源中文件请求类") +public class ShortLinkSearchRequest { + + @ApiModelProperty(value = "存储源 id", required = true, example = "1") + @NotBlank(message = "存储源 id 不能为空") + private Integer storageId; + + @ApiModelProperty(value = "存储源 key", example = "local") + private String key; + + @ApiModelProperty(value = "文件 url/路径", example = "/a") + private String url; + + @ApiModelProperty(value = "开始时间", example = "2022-01-01 00:00:00") + private String dateFrom; + + @ApiModelProperty(value = "结束时间", example = "2022-12-31 23:59:59") + private String dateTo; + + @ApiModelProperty(value = "页码", example = "1") + private Integer page; + + @ApiModelProperty(value = "每页数量", example = "10") + private Integer limit; + + @ApiModelProperty(value = "排序字段", example = "id") + private String orderBy; + + @ApiModelProperty(value = "排序方式", example = "desc") + private String orderDirection; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/model/request/UpdateStorageIdRequest.java b/src/main/java/im/zhaojun/zfile/home/model/request/UpdateStorageIdRequest.java new file mode 100644 index 0000000..690cc93 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/model/request/UpdateStorageIdRequest.java @@ -0,0 +1,27 @@ +package im.zhaojun.zfile.home.model.request; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * 更新存储源参数请求参数 + * + * @author zhaojun + */ +@Data +@ApiModel(description = "更新存储源 id 请求类") +public class UpdateStorageIdRequest { + + @ApiModelProperty(value = "存储源原 ID", required = true, example = "1") + @NotBlank(message = "源 id 不能为空") + private Integer updateId; + + + @ApiModelProperty(value = "存储源新 ID", required = true, example = "2") + @NotBlank(message = "修改后的 id 不能为空") + private Integer newId; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/model/request/UpdateStorageSortRequest.java b/src/main/java/im/zhaojun/zfile/home/model/request/UpdateStorageSortRequest.java new file mode 100644 index 0000000..6a202ef --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/model/request/UpdateStorageSortRequest.java @@ -0,0 +1,27 @@ +package im.zhaojun.zfile.home.model.request; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * 更新存储源排序值请求参数 + * + * @author zhaojun + */ +@Data +@ApiModel(description = "更新存储源排序值请求类") +public class UpdateStorageSortRequest { + + @ApiModelProperty(value = "存储源 ID", required = true, example = "1") + @NotBlank(message = "存储源 id 不能为空") + private Integer id; + + + @ApiModelProperty(value = "排序值,值越小越靠前", required = true, example = "5") + @NotBlank(message = "排序值不能为空") + private Integer orderNum; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/model/request/UserLoginRequest.java b/src/main/java/im/zhaojun/zfile/home/model/request/UserLoginRequest.java new file mode 100644 index 0000000..1747e1c --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/model/request/UserLoginRequest.java @@ -0,0 +1 @@ +package im.zhaojun.zfile.home.model.request; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotBlank; /** * 用户登录请求参数参数 * * @author zhaojun */ @Data @ApiModel(description = "用户登录请求参数类") public class UserLoginRequest { @ApiModelProperty(value = "用户名", required = true, example = "admin") @NotBlank(message = "用户名不能为空") private String username; @ApiModelProperty(value = "密码", required = true, example = "123456") @NotBlank(message = "密码不能为空") private String password; @ApiModelProperty(value = "验证码", example = "123456") private String verifyCode; @ApiModelProperty(value = "验证码 UUID", notes = "用于图形验证码确认每个验证码图片请求的唯一值.", example = "c140a792-4ca2-4dac-8d4c-35750b78524f") private String verifyCodeUUID; } \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/model/request/operator/DeleteFileRequest.java b/src/main/java/im/zhaojun/zfile/home/model/request/operator/DeleteFileRequest.java new file mode 100644 index 0000000..1c0cfd6 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/model/request/operator/DeleteFileRequest.java @@ -0,0 +1,30 @@ +package im.zhaojun.zfile.home.model.request.operator; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * 删除文件请求参数 + * + * @author zhaojun + */ +@Data +@ApiModel(description = "删除文件请求类") +public class DeleteFileRequest { + + @ApiModelProperty(value = "存储源 key", required = true, example = "local") + @NotBlank(message = "存储源 key 不能为空") + private String storageKey; + + @ApiModelProperty(value = "请求路径", example = "/", notes = "表示在哪个文件夹下删除文件") + @NotBlank(message = "请求路径不能为空") + private String path; + + @ApiModelProperty(value = "删除的文件夹名称", example = "movie") + @NotBlank(message = "删除的文件名称不能为空") + private String name; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/model/request/operator/DeleteFolderRequest.java b/src/main/java/im/zhaojun/zfile/home/model/request/operator/DeleteFolderRequest.java new file mode 100644 index 0000000..479b7bf --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/model/request/operator/DeleteFolderRequest.java @@ -0,0 +1,30 @@ +package im.zhaojun.zfile.home.model.request.operator; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * 删除文件夹请求参数 + * + * @author zhaojun + */ +@Data +@ApiModel(description = "删除文件夹请求类") +public class DeleteFolderRequest { + + @ApiModelProperty(value = "存储源 key", required = true, example = "local") + @NotBlank(message = "存储源 key 不能为空") + private String storageKey; + + @ApiModelProperty(value = "请求路径", example = "/", notes = "表示在哪个文件夹下删除文件夹") + @NotBlank(message = "请求路径不能为空") + private String path; + + @ApiModelProperty(value = "删除的文件夹名称", example = "movie") + @NotBlank(message = "删除的文件夹名称不能为空") + private String name; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/model/request/operator/NewFolderRequest.java b/src/main/java/im/zhaojun/zfile/home/model/request/operator/NewFolderRequest.java new file mode 100644 index 0000000..79de8af --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/model/request/operator/NewFolderRequest.java @@ -0,0 +1,30 @@ +package im.zhaojun.zfile.home.model.request.operator; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * 新建文件夹请求参数 + * + * @author zhaojun + */ +@Data +@ApiModel(description = "新建文件夹请求类") +public class NewFolderRequest { + + @ApiModelProperty(value = "存储源 key", required = true, example = "local") + @NotBlank(message = "存储源 key 不能为空") + private String storageKey; + + @ApiModelProperty(value = "请求路径", example = "/", notes = "表示在哪个文件夹下创建文件夹") + @NotBlank(message = "请求路径不能为空") + private String path; + + @ApiModelProperty(value = "新建的文件夹名称", example = "/a/b/c", notes = "文件夹名称支持多级,如:/a/b/c") + @NotBlank(message = "新建的文件夹名称不能为空") + private String name; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/model/request/operator/RenameFileRequest.java b/src/main/java/im/zhaojun/zfile/home/model/request/operator/RenameFileRequest.java new file mode 100644 index 0000000..8c1b9ba --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/model/request/operator/RenameFileRequest.java @@ -0,0 +1,34 @@ +package im.zhaojun.zfile.home.model.request.operator; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * 重命名文件请求参数 + * + * @author zhaojun + */ +@Data +@ApiModel(description = "重命名文件请求类") +public class RenameFileRequest { + + @ApiModelProperty(value = "存储源 key", required = true, example = "local") + @NotBlank(message = "存储源 key 不能为空") + private String storageKey; + + @ApiModelProperty(value = "请求路径", example = "/", notes = "表示在哪个文件夹下重命名文件") + @NotBlank(message = "请求路径不能为空") + private String path; + + @ApiModelProperty(value = "重命名的原文件名称", example = "test.txt") + @NotBlank(message = "原文件名不能为空") + private String name; + + @ApiModelProperty(value = "重命名后的文件名称", example = "text-1.txt") + @NotBlank(message = "新文件名不能为空") + private String newName; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/model/request/operator/RenameFolderRequest.java b/src/main/java/im/zhaojun/zfile/home/model/request/operator/RenameFolderRequest.java new file mode 100644 index 0000000..d0a87cd --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/model/request/operator/RenameFolderRequest.java @@ -0,0 +1,34 @@ +package im.zhaojun.zfile.home.model.request.operator; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * 重命名文件夹请求参数 + * + * @author zhaojun + */ +@Data +@ApiModel(description = "重命名文件夹请求类") +public class RenameFolderRequest { + + @ApiModelProperty(value = "存储源 key", required = true, example = "local") + @NotBlank(message = "存储源 key 不能为空") + private String storageKey; + + @ApiModelProperty(value = "请求路径", example = "/", notes = "表示在哪个文件夹下重命名文件夹") + @NotBlank(message = "请求路径不能为空") + private String path; + + @ApiModelProperty(value = "重命名的原文件夹名称", example = "movie") + @NotBlank(message = "原文件夹名称不能为空") + private String name; + + @ApiModelProperty(value = "重命名后的文件名称", example = "music") + @NotBlank(message = "新文件夹名称不能为空") + private String newName; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/model/request/operator/UploadFileRequest.java b/src/main/java/im/zhaojun/zfile/home/model/request/operator/UploadFileRequest.java new file mode 100644 index 0000000..8e620bf --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/model/request/operator/UploadFileRequest.java @@ -0,0 +1,33 @@ +package im.zhaojun.zfile.home.model.request.operator; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * 上传文件请求参数 + * + * @author zhaojun + */ +@Data +@ApiModel(description = "上传文件请求类") +public class UploadFileRequest { + + @ApiModelProperty(value = "存储源 key", required = true, example = "local") + @NotBlank(message = "存储源 key 不能为空") + private String storageKey; + + @ApiModelProperty(value = "上传路径", example = "/movie", notes = "表示上传文件到哪个路径") + @NotBlank(message = "上传路径不能为空") + private String path; + + @ApiModelProperty(value = "上传的文件名", example = "test.mp4") + @NotBlank(message = "上传的文件名不能为空") + private String name; + + @ApiModelProperty(value = "文件大小", example = "129102") + private Long size; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/model/request/sharepoint/SharePointSearchSitesRequest.java b/src/main/java/im/zhaojun/zfile/home/model/request/sharepoint/SharePointSearchSitesRequest.java new file mode 100644 index 0000000..860d3dc --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/model/request/sharepoint/SharePointSearchSitesRequest.java @@ -0,0 +1,24 @@ +package im.zhaojun.zfile.home.model.request.sharepoint; + +import im.zhaojun.zfile.common.validation.StringListValue; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * SharePoint 搜索网站列表请求 + * + * @author zhaojun + */ +@Data +public class SharePointSearchSitesRequest { + + @StringListValue(message = "账号类型只能是 Standard(标准版、国际版)或 China(世纪互联)", vals = {"Standard", "China"}) + private String type; + + @ApiModelProperty(value = "访问令牌 (accessToken)", required = true, example = "EwBoxxxxxxxxxxxxxxxbAI=") + @NotBlank(message = "访问令牌不能为空") + private String accessToken; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/model/request/sharepoint/SharePointSiteListsRequest.java b/src/main/java/im/zhaojun/zfile/home/model/request/sharepoint/SharePointSiteListsRequest.java new file mode 100644 index 0000000..a86eafc --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/model/request/sharepoint/SharePointSiteListsRequest.java @@ -0,0 +1,28 @@ +package im.zhaojun.zfile.home.model.request.sharepoint; + +import im.zhaojun.zfile.common.validation.StringListValue; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * 获取 SharePoint 网站下目录请求 + * + * @author zhaojun + */ +@Data +public class SharePointSiteListsRequest { + + @StringListValue(message = "账号类型只能是 Standard(标准版、国际版)或 China(世纪互联)", vals = {"Standard", "China"}) + private String type; + + @ApiModelProperty(value = "访问令牌 (accessToken)", required = true, example = "EwBoxxxxxxxxxxxxxxxbAI=") + @NotBlank(message = "访问令牌不能为空") + private String accessToken; + + @ApiModelProperty(value = "站点 ID (siteId)", required = true, example = "a046ac3a-ea74-13c5-8b8f-233599507d96 或 xxx.sharepoint.cn,a046ac3a-ea74-13c5-8b8f-233599507d96,ec7e71ed-9065-4190-b471-b91c28c30bb1 如果是后者,则会自动截取中间那部分,结果和前者相同") + @NotBlank(message = "siteId 不能为空") + private String siteId; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/model/result/FileInfoResult.java b/src/main/java/im/zhaojun/zfile/home/model/result/FileInfoResult.java new file mode 100644 index 0000000..292fe0b --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/model/result/FileInfoResult.java @@ -0,0 +1,26 @@ +package im.zhaojun.zfile.home.model.result; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; + +import java.util.List; + +/** + * 文件列表信息结果类 + * + * @author zhaojun + */ +@Data +@ApiModel(value="文件列表信息结果类") +@AllArgsConstructor +public class FileInfoResult { + + @ApiModelProperty(value="文件列表") + private List files; + + @ApiModelProperty(value="当前目录密码路径表达式") + private String passwordPattern; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/model/result/FileItemResult.java b/src/main/java/im/zhaojun/zfile/home/model/result/FileItemResult.java new file mode 100644 index 0000000..03c836e --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/model/result/FileItemResult.java @@ -0,0 +1,38 @@ +package im.zhaojun.zfile.home.model.result; + +import im.zhaojun.zfile.home.model.enums.FileTypeEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 文件信息结果类 + * + * @author zhaojun + */ +@Data +@ApiModel(value="文件列表信息结果类") +public class FileItemResult implements Serializable { + + @ApiModelProperty(value = "文件名", example = "a.mp4") + private String name; + + @ApiModelProperty(value = "时间", example = "2020-01-01 15:22") + private Date time; + + @ApiModelProperty(value = "大小", example = "1024") + private Long size; + + @ApiModelProperty(value = "类型", example = "file") + private FileTypeEnum type; + + @ApiModelProperty(value = "所在路径", example = "/home/") + private String path; + + @ApiModelProperty(value = "下载地址", example = "http://www.example.com/a.mp4") + private String url; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/model/result/SiteConfigResult.java b/src/main/java/im/zhaojun/zfile/home/model/result/SiteConfigResult.java new file mode 100644 index 0000000..401e3e9 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/model/result/SiteConfigResult.java @@ -0,0 +1,85 @@ +package im.zhaojun.zfile.home.model.result; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 全局站点设置响应类 + * + * @author zhaojun + */ +@Data +@ApiModel(value="全局站点设置响应类") +public class SiteConfigResult { + + @ApiModelProperty(value = "是否已初始化", example = "true") + private Boolean installed; + + @ApiModelProperty(value = "Debug 模式", example = "true", notes = "开启 debug 模式后,可重置管理员密码") + private Boolean debugMode; + + @ApiModelProperty(value = "直链地址前缀", example = "true", notes = "直链地址前缀, 如 http(s)://ip:port/${直链前缀}/path/filename") + private String directLinkPrefix; + + @ApiModelProperty(value = "站点名称", example = "ZFile Site Name") + private String siteName; + + @ApiModelProperty(value = "备案号", example = "冀ICP备12345678号-1") + private String icp; + + @ApiModelProperty(value = "站点域名(后端)", example = "https://zfile.vip", notes = "该值需配置为后端的站点域名,生成直链等操作需要此参数.") + private String domain; + + @ApiModelProperty(value = "页面布局", notes = "full:全屏,center:居中", example = "full", required = true) + private String layout; + + @ApiModelProperty(value = "列表尺寸", notes = "large:大,default:中,small:小", example = "default", required = true) + private String tableSize; + + @ApiModelProperty(value = "是否显示生成直链功能(含直链和路径短链)", example = "true", required = true) + private Boolean showLinkBtn; + + @ApiModelProperty(value = "是否显示生成短链功能", example = "true", required = true) + private Boolean showShortLink; + + @ApiModelProperty(value = "是否显示生成路径链接功能", example = "true", required = true) + private Boolean showPathLink; + + @ApiModelProperty(value = "是否显示文档区", example = "true", required = true) + private Boolean showDocument; + + @ApiModelProperty(value = "是否显示网站公告", example = "true", required = true) + private Boolean showAnnouncement; + + @ApiModelProperty(value = "网站公告", example = "ZFile 网站公告") + private String announcement; + + @ApiModelProperty(value = "自定义 JS") + private String customJs; + + @ApiModelProperty(value = "自定义 CSS") + private String customCss; + + @ApiModelProperty(value = "自定义视频文件后缀格式") + private String customVideoSuffix; + + @ApiModelProperty(value = "自定义图像文件后缀格式") + private String customImageSuffix; + + @ApiModelProperty(value = "自定义音频文件后缀格式") + private String customAudioSuffix; + + @ApiModelProperty(value = "自定义文本文件后缀格式") + private String customTextSuffix; + + @ApiModelProperty(value = "根目录是否显示所有存储源", notes = "根目录是否显示所有存储源, 如果为 true, 则根目录显示所有存储源列表, 如果为 false, 则会自动跳转到第一个存储源.", example = "true", required = true) + private Boolean rootShowStorage; + + @ApiModelProperty(value = "前端域名", notes = "前端域名,前后端分离情况下需要配置.", example = "http://xxx.example.com") + private String frontDomain; + + @ApiModelProperty(value = "是否在前台显示登陆按钮", example = "true") + private Boolean showLogin; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/model/result/StorageSourceConfigResult.java b/src/main/java/im/zhaojun/zfile/home/model/result/StorageSourceConfigResult.java new file mode 100644 index 0000000..f989747 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/model/result/StorageSourceConfigResult.java @@ -0,0 +1,29 @@ +package im.zhaojun.zfile.home.model.result; + +import im.zhaojun.zfile.admin.model.enums.ReadmeDisplayModeEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 存储源设置响应类 + * + * @author zhaojun + */ +@ApiModel(value="存储源设置响应类") +@Data +public class StorageSourceConfigResult { + + @ApiModelProperty(value = "是否启用文件操作功能", example = "true", notes = "是否启用文件上传,编辑,删除等操作.") + private Boolean enableFileOperator; + + @ApiModelProperty(value="readme 文本内容, 支持 md 语法.") + private String readmeText; + + @ApiModelProperty(value = "显示模式", required = true, example = "readme 显示模式,支持顶部显示: top, 底部显示:bottom, 弹窗显示: dialog") + private ReadmeDisplayModeEnum readmeDisplayMode; + + @ApiModelProperty(value = "是否默认开启图片模式", example = "true") + private Boolean defaultSwitchToImgMode; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/model/result/StorageSourceResult.java b/src/main/java/im/zhaojun/zfile/home/model/result/StorageSourceResult.java new file mode 100644 index 0000000..90f6abf --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/model/result/StorageSourceResult.java @@ -0,0 +1,36 @@ +package im.zhaojun.zfile.home.model.result; + +import im.zhaojun.zfile.home.model.enums.StorageTypeEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * 存储源基本信息结果类 + * + * @author zhaojun + */ +@Data +@ApiModel(description = "存储源基本信息响应类") +public class StorageSourceResult implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "存储源名称", example = "阿里云 OSS 存储") + private String name; + + @ApiModelProperty(value = "存储源别名", example = "存储源别名,用于 URL 中展示, 如 http://ip:port/{存储源别名}") + private String key; + + @ApiModelProperty(value = "存储源类型") + private StorageTypeEnum type; + + @ApiModelProperty(value = "是否开启搜索", example = "true") + private Boolean searchEnable; + + @ApiModelProperty(value = "是否默认开启图片模式", example = "true") + private Boolean defaultSwitchToImgMode; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/model/upyun/AuthModel.java b/src/main/java/im/zhaojun/zfile/home/model/upyun/AuthModel.java new file mode 100644 index 0000000..e30bf60 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/model/upyun/AuthModel.java @@ -0,0 +1,31 @@ + +package im.zhaojun.zfile.home.model.upyun; + +import lombok.AllArgsConstructor; +import lombok.Data; + +/** + * 又拍云上传认证信息 model + * + * @author zhaojun + */ +@Data +@AllArgsConstructor +public class AuthModel { + + /** + * 上传 url + */ + private String url; + + /** + * 上传签名 + */ + private String signature; + + /** + * 上传策略 base64 + */ + private String policy; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/model/upyun/UploadSignParam.java b/src/main/java/im/zhaojun/zfile/home/model/upyun/UploadSignParam.java new file mode 100644 index 0000000..51238d1 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/model/upyun/UploadSignParam.java @@ -0,0 +1,28 @@ +package im.zhaojun.zfile.home.model.upyun; + +import lombok.Data; + +/** + * 又拍云上传参数 model + * + * @author zhaojun + */ +@Data +public class UploadSignParam { + + /** + * 上传路径 + */ + private String path; + + /** + * 文件大小 + */ + private Long size; + + /** + * 文件名 + */ + private String name; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/service/base/AbstractBaseFileService.java b/src/main/java/im/zhaojun/zfile/home/service/base/AbstractBaseFileService.java new file mode 100644 index 0000000..db6829b --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/service/base/AbstractBaseFileService.java @@ -0,0 +1,280 @@ +package im.zhaojun.zfile.home.service.base; + +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.ReflectUtil; +import cn.hutool.core.util.StrUtil; +import im.zhaojun.zfile.admin.annoation.StorageParamItem; +import im.zhaojun.zfile.admin.annoation.StorageParamSelect; +import im.zhaojun.zfile.admin.annoation.StorageParamSelectOption; +import im.zhaojun.zfile.admin.annoation.model.StorageSourceParamDef; +import im.zhaojun.zfile.admin.model.enums.StorageParamTypeEnum; +import im.zhaojun.zfile.admin.model.param.IStorageParam; +import im.zhaojun.zfile.admin.service.SystemConfigService; +import im.zhaojun.zfile.common.cache.ZFileCache; +import im.zhaojun.zfile.common.exception.InitializeStorageSourceException; +import im.zhaojun.zfile.common.util.ClassUtils; +import im.zhaojun.zfile.common.util.PlaceholderUtils; +import im.zhaojun.zfile.common.util.StringUtils; +import im.zhaojun.zfile.home.model.enums.StorageTypeEnum; +import im.zhaojun.zfile.home.model.result.FileItemResult; +import lombok.extern.slf4j.Slf4j; + +import javax.annotation.Resource; +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +/** + * @author zhaojun + */ +@Slf4j +public abstract class AbstractBaseFileService

implements BaseFileService { + + @Resource + private ZFileCache zFileCache; + + @Resource + private SystemConfigService systemConfigService; + + /** + * 存储源初始化配置 + */ + public P param; + + /** + * 是否初始化成功 + */ + protected boolean isInitialized = false; + + /** + * 存储源 ID + */ + public Integer storageId; + + + /** + * 初始化存储源, 在调用前要设置存储的 {@link #storageId} 属性. 和 {@link #param} 属性. + */ + public abstract void init(); + + + /** + * 获取指定路径下的文件及文件夹, 默认缓存 60 分钟,每隔 30 分钟刷新一次. + * + * @param folderPath + * 文件夹路径,如 /音乐/毛不易/ + * + * @return 文件及文件夹列表 + * + * @throws Exception 获取文件列表中出现的异常 + */ + @Override + public abstract List fileList(String folderPath) throws Exception; + + + /** + * 测试是否连接成功, 会尝试取调用获取根路径的文件, 如果没有抛出异常, 则认为连接成功. + */ + public void testConnection() { + try { + fileList("/"); + isInitialized = true; + } catch (Exception e) { + throw new InitializeStorageSourceException("初始化异常, 错误信息为: " + e.getMessage(), e); + } + } + + + private static final Map, List> STORAGE_SOURCE_PARAM_CACHE = new ConcurrentHashMap<>(); + + /** + * 获取初始化当前存储源, 所需要的参数信息 (用于表单填写) + * + * @return 初始化所需的参数列表 + */ + public List getStorageSourceParamList() { + // 如果缓存中有, 则直接返回 + Class thisClass = this.getClass(); + if (STORAGE_SOURCE_PARAM_CACHE.containsKey(thisClass)) { + return STORAGE_SOURCE_PARAM_CACHE.get(thisClass); + } + + ArrayList result = new ArrayList<>(); + + // 获取存储源实现类的泛型参数类型 + Class paramClass = ClassUtils.getClassFirstGenericsParam(this.getClass()); + Field[] fields = ReflectUtil.getFields(paramClass); + + // 已添加的字段列表. + List fieldNames = new ArrayList<>(); + + for (Field field : fields) { + // 获取字段上的注解 + StorageParamItem annotation = field.getAnnotation(StorageParamItem.class); + if (annotation != null) { + String key = annotation.key(); + String name = annotation.name(); + String description = annotation.description(); + boolean required = annotation.required(); + String defaultValue = annotation.defaultValue(); + defaultValue = PlaceholderUtils.resolvePlaceholdersBySpringProperties(defaultValue); + + String link = annotation.link(); + // 如果不为空,且不是 http 或 https 开头,则添加站点域名开头 + if (StrUtil.isNotEmpty(link) && !link.toLowerCase().startsWith("http")) { + String domain = systemConfigService.getDomain(); + link = StringUtils.concat(domain, link); + } + + String linkName = annotation.linkName(); + StorageParamTypeEnum type = annotation.type(); + + int order = annotation.order(); + + // 取注解上标注的字段名称, 如果为空, 则使用字段名称 + if (StrUtil.isEmpty(key)) { + key = field.getName(); + } + + // 如果字段已存在, 则跳过 + if (fieldNames.contains(field.getName())) { + continue; + } + + // 如果默认值不为空, 则该字段则不是必填的 + if (StrUtil.isNotEmpty(defaultValue)) { + required = false; + } + + // 如果 type 为 select, 则获取 options 下拉列表. + List optionsList = new ArrayList<>(); + // 从注解中获取 options + StorageParamSelectOption[] options = annotation.options(); + if (ArrayUtil.isNotEmpty(options)) { + for (StorageParamSelectOption storageParamSelectOption : options) { + StorageSourceParamDef.Options option = new StorageSourceParamDef.Options(storageParamSelectOption); + optionsList.add(option); + } + } + // 从实现类中通过反射获取 options + Class storageParamSelectClass = annotation.optionsClass(); + if (ObjectUtil.isNotEmpty(storageParamSelectClass) + && ObjectUtil.notEqual(storageParamSelectClass.getName(), "im.zhaojun.zfile.admin.annoation.StorageParamSelect")) { + StorageParamSelect storageParamSelect = ReflectUtil.newInstance(storageParamSelectClass); + List storageParamSelectOptions = storageParamSelect.getOptions(annotation, param); + optionsList.addAll(storageParamSelectOptions); + } + + StorageSourceParamDef storageSourceParamDef = StorageSourceParamDef.builder(). + key(key). + name(name). + description(description). + required(required). + defaultValue(defaultValue). + link(link). + linkName(linkName). + type(type). + options(optionsList). + order(order). + build(); + result.add(storageSourceParamDef); + fieldNames.add(field.getName()); + } + } + + // 按照顺序排序 + result.sort(Comparator.comparingInt(StorageSourceParamDef::getOrder)); + + // 写入到缓存中 + STORAGE_SOURCE_PARAM_CACHE.put(thisClass, result); + return result; + } + + + /** + * 搜索文件 + * + * @param name 文件名 + * @return 包含该文件名的所有文件或文件夹 + */ + public synchronized List search(String name) { + return zFileCache.find(storageId, name); + } + + + /** + * 获取单个文件信息 + * + * @param pathAndName + * 文件路径及文件名称 + * + * @return 单个文件的内容. + */ + public abstract FileItemResult getFileItem(String pathAndName); + + public abstract boolean newFolder(String path, String name); + + public abstract boolean deleteFile(String path, String name); + + public abstract boolean deleteFolder(String path, String name); + + public abstract boolean renameFile(String path, String name, String newName); + + public abstract boolean renameFolder(String path, String name, String newName); + + public abstract String getUploadUrl(String path, String name, Long size); + + public void setStorageId(Integer storageId) { + if (this.storageId != null) { + throw new RuntimeException("请勿重复初始化存储源"); + } + this.storageId = storageId; + } + + public void setParam(P param) { + if (this.param != null) { + throw new RuntimeException("请勿重复初始化存储源"); + } + this.param = param; + } + + /** + * 获取是否初始化成功 + * + * @return 初始化成功与否 + */ + public boolean getIsUnInitialized() { + return !isInitialized; + } + + + /** + * 获取是否初始化成功 + * + * @return 初始化成功与否 + */ + public boolean getIsInitialized() { + return isInitialized; + } + + + /** + * 获取当前实现类的存储源类型 + * + * @return 存储源类型枚举对象 + */ + public abstract StorageTypeEnum getStorageTypeEnum(); + + + public P getParam() { + return param; + } + + public Integer getStorageId() { + return storageId; + } +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/service/base/AbstractOneDriveServiceBase.java b/src/main/java/im/zhaojun/zfile/home/service/base/AbstractOneDriveServiceBase.java new file mode 100644 index 0000000..ab5e6de --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/service/base/AbstractOneDriveServiceBase.java @@ -0,0 +1,30 @@ +package im.zhaojun.zfile.home.service.base; + +import im.zhaojun.zfile.admin.model.param.OneDriveParam; +import lombok.extern.slf4j.Slf4j; + +/** + * -50 + * +70 + * -100 + * @author zhaojun + */ +@Slf4j +public abstract class AbstractOneDriveServiceBase

extends MicrosoftDriveServiceBase { + + @Override + public void init() { + refreshAccessToken(); + } + + @Override + public String getType() { + return "me"; + } + + @Override + public String getDownloadUrl(String pathAndName) { + return getFileItem(pathAndName).getUrl(); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/service/base/AbstractS3BaseFileService.java b/src/main/java/im/zhaojun/zfile/home/service/base/AbstractS3BaseFileService.java new file mode 100644 index 0000000..8cec66e --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/service/base/AbstractS3BaseFileService.java @@ -0,0 +1,250 @@ +package im.zhaojun.zfile.home.service.base; + +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.BooleanUtil; +import cn.hutool.core.util.StrUtil; +import com.amazonaws.HttpMethod; +import com.amazonaws.services.s3.AmazonS3; +import com.amazonaws.services.s3.model.BucketCrossOriginConfiguration; +import com.amazonaws.services.s3.model.CORSRule; +import com.amazonaws.services.s3.model.GeneratePresignedUrlRequest; +import com.amazonaws.services.s3.model.ListObjectsRequest; +import com.amazonaws.services.s3.model.ObjectListing; +import com.amazonaws.services.s3.model.ObjectMetadata; +import com.amazonaws.services.s3.model.PutObjectRequest; +import com.amazonaws.services.s3.model.PutObjectResult; +import com.amazonaws.services.s3.model.S3ObjectSummary; +import com.amazonaws.services.s3.model.SetBucketCrossOriginConfigurationRequest; +import im.zhaojun.zfile.admin.exception.StorageSourceAutoConfigCorsException; +import im.zhaojun.zfile.admin.model.param.S3BaseParam; +import im.zhaojun.zfile.common.constant.ZFileConstant; +import im.zhaojun.zfile.common.exception.file.operator.GetFileInfoException; +import im.zhaojun.zfile.common.util.StringUtils; +import im.zhaojun.zfile.home.model.enums.FileTypeEnum; +import im.zhaojun.zfile.home.model.result.FileItemResult; +import lombok.extern.slf4j.Slf4j; + +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.net.URL; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * @author zhaojun + */ +@Slf4j +public abstract class AbstractS3BaseFileService

extends AbstractBaseFileService

{ + + protected AmazonS3 s3Client; + + @Override + public List fileList(String folderPath) { + return s3FileList(folderPath); + } + + + /** + * 默认 S3 获取对象下载链接的方法, 如果指定了域名, 则替换为自定义域名. + * @return S3 对象访问地址 + */ + @Override + public String getDownloadUrl(String pathAndName) { + String bucketName = param.getBucketName(); + String domain = param.getDomain(); + + String fullPath = StringUtils.concatTrimStartSlashes(param.getBasePath() + pathAndName); + + // 如果不是私有空间, 且指定了加速域名, 则直接返回下载地址. + if (BooleanUtil.isFalse(param.isPrivate()) && StrUtil.isNotEmpty(domain)) { + return StringUtils.concat(domain, fullPath); + } + + Integer tokenTime = param.getTokenTime(); + if (param.getTokenTime() == null || param.getTokenTime() < 1) { + tokenTime = 1800; + } + + Date expirationDate = new Date(System.currentTimeMillis() + tokenTime * 1000); + + GeneratePresignedUrlRequest generatePresignedUrlRequest = new GeneratePresignedUrlRequest(bucketName, fullPath, HttpMethod.GET); + generatePresignedUrlRequest.setExpiration(expirationDate); + URL url = s3Client.generatePresignedUrl(generatePresignedUrlRequest); + + String defaultUrl = url.toExternalForm(); + if (StrUtil.isNotEmpty(domain)) { + defaultUrl = StringUtils.concat(domain, url.getFile()); + } + return defaultUrl; + } + + + /** + * 获取 S3 指定目录下的对象列表 + * @param path 路径 + * @return 指定目录下的对象列表 + */ + public List s3FileList(String path) { + String bucketName = param.getBucketName(); + path = StringUtils.trimStartSlashes(path); + String fullPath = StringUtils.trimStartSlashes(StringUtils.concat(param.getBasePath(), path, ZFileConstant.PATH_SEPARATOR)); + List fileItemList = new ArrayList<>(); + ObjectListing objectListing = s3Client.listObjects(new ListObjectsRequest(bucketName, fullPath, "", "/", 1000)); + + for (S3ObjectSummary s : objectListing.getObjectSummaries()) { + FileItemResult fileItemResult = new FileItemResult(); + if (s.getKey().equals(fullPath)) { + continue; + } + fileItemResult.setName(s.getKey().substring(fullPath.length())); + fileItemResult.setSize(s.getSize()); + fileItemResult.setTime(s.getLastModified()); + fileItemResult.setType(FileTypeEnum.FILE); + fileItemResult.setPath(path); + + String fullPathAndName = StringUtils.concat(path, fileItemResult.getName()); + fileItemResult.setUrl(getDownloadUrl(fullPathAndName)); + + fileItemList.add(fileItemResult); + } + + for (String commonPrefix : objectListing.getCommonPrefixes()) { + FileItemResult fileItemResult = new FileItemResult(); + fileItemResult.setName(commonPrefix.substring(fullPath.length(), commonPrefix.length() - 1)); + String name = fileItemResult.getName(); + if (StrUtil.isEmpty(name) || StrUtil.equals(name, StringUtils.DELIMITER_STR)) { + continue; + } + + fileItemResult.setType(FileTypeEnum.FOLDER); + fileItemResult.setPath(path); + fileItemList.add(fileItemResult); + } + + return fileItemList; + } + + @Override + public FileItemResult getFileItem(String pathAndName) { + try { + String fileName = FileUtil.getName(pathAndName); + String parentPath = StringUtils.getParentPath(pathAndName); + + String trimStartPath = StringUtils.concatTrimStartSlashes(param.getBasePath(), pathAndName); + ObjectMetadata objectMetadata = s3Client.getObjectMetadata(param.getBucketName(), trimStartPath); + + FileItemResult fileItemResult = new FileItemResult(); + fileItemResult.setName(fileName); + fileItemResult.setSize(objectMetadata.getInstanceLength()); + fileItemResult.setTime(objectMetadata.getLastModified()); + fileItemResult.setType(FileTypeEnum.FILE); + fileItemResult.setPath(parentPath); + fileItemResult.setUrl(getDownloadUrl(pathAndName)); + return fileItemResult; + } catch (Exception e) { + throw new GetFileInfoException(storageId, pathAndName, e); + } + } + + @Override + public boolean newFolder(String path, String name) { + String bucketName = param.getBucketName(); + name = StringUtils.trimSlashes(name); + String fullPath = StringUtils.concat(param.getBasePath(), path, name, ZFileConstant.PATH_SEPARATOR); + fullPath = StringUtils.trimStartSlashes(fullPath); + InputStream emptyContent = new ByteArrayInputStream(new byte[0]); + PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, fullPath, emptyContent, null); + PutObjectResult putObjectResult = s3Client.putObject(putObjectRequest); + return putObjectResult != null; + } + + @Override + public boolean deleteFile(String path, String name) { + String bucketName = param.getBucketName(); + String fullPath = StringUtils.concat(param.getBasePath(), path, name); + fullPath = StringUtils.trimStartSlashes(fullPath); + try { + s3Client.deleteObject(bucketName, fullPath); + return true; + } catch (Exception e) { + log.error("存储源 {} 删除文件 {} 失败", storageId, fullPath, e); + } + return false; + } + + @Override + public boolean deleteFolder(String path, String name) { + String bucketName = param.getBucketName(); + String fullPath = StringUtils.concat(param.getBasePath(), path, name); + fullPath = StringUtils.trimStartSlashes(fullPath); + try { + s3Client.deleteObject(bucketName, fullPath + '/'); + return true; + } catch (Exception e) { + log.error("存储源 {} 删除文件夹 {} 失败", storageId, fullPath, e); + } + return false; + } + + @Override + public boolean renameFile(String path, String name, String newName) { + String bucketName = param.getBucketName(); + String srcPath = StringUtils.concat(param.getBasePath(), path, name); + srcPath = StringUtils.trimStartSlashes(srcPath); + + String distPath = StringUtils.concat(param.getBasePath(), path, newName); + distPath = StringUtils.trimStartSlashes(distPath); + + try { + s3Client.copyObject(bucketName, srcPath, bucketName, distPath); + deleteFile(path, name); + return true; + } catch (Exception e) { + log.error("存储源 {} 重命名文件 {} 至 {} 失败", storageId, srcPath, distPath, e); + } + + return false; + } + + @Override + public boolean renameFolder(String path, String name, String newName) { + throw new UnsupportedOperationException("不支持重命名文件夹"); + } + + @Override + public String getUploadUrl(String path, String name, Long size) { + String bucketName = param.getBucketName(); + String uploadToPath = StringUtils.concat(param.getBasePath(), path, name); + uploadToPath = StringUtils.trimStartSlashes(uploadToPath); + + GeneratePresignedUrlRequest req = + new GeneratePresignedUrlRequest(bucketName, uploadToPath, HttpMethod.PUT); + URL url = s3Client.generatePresignedUrl(req); + + return url.toExternalForm(); + } + + protected void setUploadCors() { + if (param.isAutoConfigCors()) { + try { + BucketCrossOriginConfiguration bucketCrossOriginConfiguration = new BucketCrossOriginConfiguration(); + ArrayList rules = new ArrayList<>(); + + CORSRule corsRule = new CORSRule(); + corsRule.setAllowedMethods(CORSRule.AllowedMethods.PUT); + corsRule.setAllowedOrigins("*"); + + rules.add(corsRule); + + bucketCrossOriginConfiguration.setRules(rules); + SetBucketCrossOriginConfigurationRequest setBucketCrossOriginConfigurationRequest = + new SetBucketCrossOriginConfigurationRequest(param.getBucketName(), bucketCrossOriginConfiguration); + s3Client.setBucketCrossOriginConfiguration(setBucketCrossOriginConfigurationRequest); + } catch (Exception e) { + throw new StorageSourceAutoConfigCorsException("设置跨域失败,请检查 API 密钥是否有权限设置跨域", e, param); + } + } + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/service/base/AbstractSharePointServiceBase.java b/src/main/java/im/zhaojun/zfile/home/service/base/AbstractSharePointServiceBase.java new file mode 100644 index 0000000..25e0ad3 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/service/base/AbstractSharePointServiceBase.java @@ -0,0 +1,22 @@ +package im.zhaojun.zfile.home.service.base; + +import im.zhaojun.zfile.admin.model.param.SharePointParam; + +public abstract class AbstractSharePointServiceBase

extends MicrosoftDriveServiceBase { + + @Override + public void init() { + refreshAccessToken(); + } + + @Override + public String getType() { + return "sites/" + param.getSiteId(); + } + + @Override + public String getDownloadUrl(String pathAndName) { + return null; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/service/base/BaseFileService.java b/src/main/java/im/zhaojun/zfile/home/service/base/BaseFileService.java new file mode 100644 index 0000000..889e69c --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/service/base/BaseFileService.java @@ -0,0 +1,35 @@ +package im.zhaojun.zfile.home.service.base; + +import im.zhaojun.zfile.home.model.result.FileItemResult; + +import java.util.List; + +/** + * @author zhaojun + */ +public interface BaseFileService { + + /*** + * 获取指定路径下的文件及文件夹 + * + * @param folderPath + * 文件夹路径 + * + * @return 文件及文件夹列表 + * + * @throws Exception 获取文件列表中出现的异常 + */ + List fileList(String folderPath) throws Exception; + + + /** + * 获取文件下载地址 + * + * @param pathAndName + * 文件路径及文件名称 + * + * @return 文件下载地址 + */ + String getDownloadUrl(String pathAndName); + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/service/base/MicrosoftDriveServiceBase.java b/src/main/java/im/zhaojun/zfile/home/service/base/MicrosoftDriveServiceBase.java new file mode 100644 index 0000000..2bd64f6 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/service/base/MicrosoftDriveServiceBase.java @@ -0,0 +1,408 @@ +package im.zhaojun.zfile.home.service.base; + +import cn.hutool.core.util.StrUtil; +import cn.hutool.core.util.URLUtil; +import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpResponse; +import cn.hutool.http.HttpUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import im.zhaojun.zfile.admin.constant.StorageConfigConstant; +import im.zhaojun.zfile.admin.model.dto.OneDriveToken; +import im.zhaojun.zfile.admin.model.entity.StorageSourceConfig; +import im.zhaojun.zfile.admin.model.param.MicrosoftDriveParam; +import im.zhaojun.zfile.admin.service.StorageSourceConfigService; +import im.zhaojun.zfile.common.cache.RefreshTokenCache; +import im.zhaojun.zfile.common.constant.ZFileConstant; +import im.zhaojun.zfile.common.exception.StorageSourceRefreshTokenException; +import im.zhaojun.zfile.common.util.StringUtils; +import im.zhaojun.zfile.home.model.enums.FileTypeEnum; +import im.zhaojun.zfile.home.model.result.FileItemResult; +import lombok.extern.slf4j.Slf4j; +import org.springframework.context.annotation.Lazy; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.client.HttpClientErrorException; +import org.springframework.web.client.RestTemplate; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; + +@Slf4j +public abstract class MicrosoftDriveServiceBase

extends AbstractBaseFileService

implements RefreshTokenService { + + /** + * 获取根文件 API URI + */ + protected static final String DRIVER_ROOT_URL = "https://{graphEndPoint}/v1.0/{type}/drive/root/children?select=name,size,lastModifiedDateTime,file,@microsoft.graph.downloadUrl,@odata.nextLink,value"; + + /** + * 获取非根文件 API URI + */ + protected static final String DRIVER_ITEMS_URL = "https://{graphEndPoint}/v1.0/{type}/drive/root:{path}:/children?select=name,size,lastModifiedDateTime,file,@microsoft.graph.downloadUrl,@odata.nextLink,value"; + + /** + * 获取单文件 API URI + */ + protected static final String DRIVER_ITEM_URL = "https://{graphEndPoint}/v1.0/{type}/drive/root:{path}?select=name,size,lastModifiedDateTime,file,@microsoft.graph.downloadUrl"; + + /** + * 操作单文件 API URI + */ + protected static final String DRIVER_ITEM_OPERATOR_URL = "https://{graphEndPoint}/v1.0/{type}/drive/root:{path}"; + + /** + * 根据 RefreshToken 获取 AccessToken API URI + */ + protected static final String AUTHENTICATE_URL = "https://{authenticateEndPoint}/common/oauth2/v2.0/token"; + + /** + * 搜索文件 API URI + */ + protected static final String DRIVER_SEARCH_URL = "https://{graphEndPoint}/v1.0/{type}/drive/root/search(q='{path}')"; + + /** + * 创建上传文件回话 API + */ + protected static final String CREATE_UPLOAD_SESSION_URL = "https://{graphEndPoint}/v1.0/{type}/drive/root:{path}:/createUploadSession"; + + /** + * OneDrive 文件类型 + */ + private static final String ONE_DRIVE_FILE_FLAG = "file"; + + @Resource + @Lazy + private RestTemplate oneDriveRestTemplate; + + @Resource + private StorageSourceConfigService storageSourceConfigService; + + /** + * 根据 RefreshToken 刷新 AccessToken, 返回刷新后的 Token. + * + * @return 刷新后的 Token + */ + public OneDriveToken getRefreshToken() { + StorageSourceConfig refreshStorageSourceConfig = + storageSourceConfigService.findByStorageIdAndName(storageId, StorageConfigConstant.REFRESH_TOKEN_KEY); + + String param = "client_id=" + getClientId() + + "&redirect_uri=" + getRedirectUri() + + "&client_secret=" + getClientSecret() + + "&refresh_token=" + refreshStorageSourceConfig.getValue() + + "&grant_type=refresh_token"; + + String fullAuthenticateUrl = AUTHENTICATE_URL.replace("{authenticateEndPoint}", getAuthenticateEndPoint()); + HttpRequest post = HttpUtil.createPost(fullAuthenticateUrl); + + post.body(param, "application/x-www-form-urlencoded"); + HttpResponse response = post.execute(); + if (response.getStatus() != HttpStatus.OK.value()) { + throw new RuntimeException(response.body()); + } + return JSONObject.parseObject(response.body(), OneDriveToken.class); + } + + /** + * OAuth2 协议中, 根据 code 换取 access_token 和 refresh_token. + * + * @param code + * 代码 + * + * @return 获取的 Token 信息. + */ + public OneDriveToken getToken(String code) { + String param = "client_id=" + getClientId() + + "&redirect_uri=" + getRedirectUri() + + "&client_secret=" + getClientSecret() + + "&code=" + code + + "&scope=" + getScope() + + "&grant_type=authorization_code"; + + String fullAuthenticateUrl = AUTHENTICATE_URL.replace("{authenticateEndPoint}", getAuthenticateEndPoint()); + HttpRequest post = HttpUtil.createPost(fullAuthenticateUrl); + + post.body(param, "application/x-www-form-urlencoded"); + HttpResponse response = post.execute(); + return JSONObject.parseObject(response.body(), OneDriveToken.class); + } + + @Override + public List fileList(String folderPath) { + folderPath = StringUtils.trimStartSlashes(folderPath); + String fullPath = StringUtils.concat(param.getBasePath(), folderPath); + + List result = new ArrayList<>(); + String nextLink = null; + + do { + String requestUrl; + + if (nextLink != null) { + nextLink = nextLink.replace("+", "%2B"); + requestUrl = URLUtil.decode(nextLink); + }else if (ZFileConstant.PATH_SEPARATOR.equalsIgnoreCase(fullPath) || "".equalsIgnoreCase(fullPath)) { + requestUrl = DRIVER_ROOT_URL; + } else { + requestUrl = DRIVER_ITEMS_URL; + } + fullPath = StringUtils.trimEndSlashes(fullPath); + + JSONObject root; + + HttpHeaders headers = new HttpHeaders(); + headers.set("storageId", storageId.toString()); + HttpEntity entity = new HttpEntity<>(headers); + + try { + root = oneDriveRestTemplate.exchange(requestUrl, HttpMethod.GET, entity, JSONObject.class, getGraphEndPoint(), getType(), fullPath).getBody(); + } catch (HttpClientErrorException e) { + log.debug("调用 OneDrive 时出现了网络异常, 响应信息: {}, 已尝试重新刷新 token 后再试.", e.getResponseBodyAsString()); + refreshAccessToken(); + root = oneDriveRestTemplate.exchange(requestUrl, HttpMethod.GET, entity, JSONObject.class, getGraphEndPoint(), getType(), fullPath).getBody(); + } + + if (root == null) { + return Collections.emptyList(); + } + + nextLink = root.getString("@odata.nextLink"); + + JSONArray fileList = root.getJSONArray("value"); + + for (int i = 0; i < fileList.size(); i++) { + JSONObject fileItem = fileList.getJSONObject(i); + FileItemResult fileItemResult =jsonToFileItem(fileItem, folderPath); + result.add(fileItemResult); + } + } while (nextLink != null); + + return result; + } + + @Override + public FileItemResult getFileItem(String pathAndName) { + String fullPath = StringUtils.concat(param.getBasePath(), pathAndName); + + HttpHeaders headers = new HttpHeaders(); + headers.set("storageId", storageId.toString()); + HttpEntity entity = new HttpEntity<>(headers); + + JSONObject fileItem; + + try { + fileItem = oneDriveRestTemplate.exchange(DRIVER_ITEM_URL, HttpMethod.GET, entity, JSONObject.class, getGraphEndPoint(), getType(), fullPath).getBody(); + } catch (HttpClientErrorException e) { + log.debug("调用 OneDrive 时出现了网络异常, 响应信息: {}, 已尝试重新刷新 token 后再试.", e.getResponseBodyAsString()); + refreshAccessToken(); + fileItem = oneDriveRestTemplate.exchange(DRIVER_ITEM_URL, HttpMethod.GET, entity, JSONObject.class, getGraphEndPoint(), getType(), fullPath).getBody(); + } + + if (fileItem == null) { + return null; + } + + String folderPath = StringUtils.getParentPath(pathAndName); + return jsonToFileItem(fileItem, folderPath); + } + + + @Override + public boolean newFolder(String path, String name) { + path = StringUtils.trimStartSlashes(path); + String fullPath = StringUtils.concat(param.getBasePath(), path); + + String requestUrl; + + if (ZFileConstant.PATH_SEPARATOR.equalsIgnoreCase(fullPath) || "".equalsIgnoreCase(fullPath)) { + requestUrl = DRIVER_ROOT_URL; + } else { + requestUrl = DRIVER_ITEMS_URL; + } + + fullPath = StringUtils.trimEndSlashes(fullPath); + + JSONObject result = null; + + HttpHeaders headers = new HttpHeaders(); + headers.set("storageId", storageId.toString()); + HashMap data = new HashMap<>(); + data.put("name", name); + data.put("folder", new HashMap<>()); + data.put("@microsoft.graph.conflictBehavior", "replace"); + HttpEntity entity = new HttpEntity<>(data, headers); + + try { + result = oneDriveRestTemplate.exchange(requestUrl, HttpMethod.POST, entity, JSONObject.class, getGraphEndPoint(), getType(), fullPath).getBody(); + } catch (Exception e) { + log.error("存储源 {} 新建文件 {} 失败", storageId, fullPath, e); + } + + return result != null; + } + + @Override + public boolean deleteFolder(String path, String name) { + return deleteFile(path, name); + } + + @Override + public boolean deleteFile(String path, String name) { + String fullPath = StringUtils.concat(param.getBasePath(), path, name); + + HttpHeaders headers = new HttpHeaders(); + headers.set("storageId", storageId.toString()); + HttpEntity entity = new HttpEntity<>(headers); + + try { + oneDriveRestTemplate.exchange(DRIVER_ITEM_OPERATOR_URL, HttpMethod.DELETE, entity, JSONObject.class, getGraphEndPoint(), getType(), fullPath).getBody(); + } catch (Exception e) { + log.error("存储源 {} 删除文件 {} 失败", storageId, fullPath, e); + return false; + } + return true; + } + + @Override + public boolean renameFile(String path, String name, String newName) { + String fullPath = StringUtils.concat(param.getBasePath(), path, name); + + HttpHeaders headers = new HttpHeaders(); + headers.set("storageId", storageId.toString()); + JSONObject jsonObject = new JSONObject(); + jsonObject.put("name", newName); + HttpEntity entity = new HttpEntity<>(jsonObject, headers); + + try { + oneDriveRestTemplate.exchange(DRIVER_ITEM_OPERATOR_URL, HttpMethod.PATCH, entity, JSONObject.class, getGraphEndPoint(), getType(), fullPath).getBody(); + } catch (Exception e) { + log.error("存储源 {} 重命名文件 {} 至 {} 失败", storageId, fullPath, newName, e); + return false; + } + return true; + } + + @Override + public boolean renameFolder(String path, String name, String newName) { + return renameFile(path, name, newName); + } + + + @Override + public String getUploadUrl(String path, String name, Long size) { + String fullPath = StringUtils.concat(param.getBasePath(), path, name); + + HttpHeaders headers = new HttpHeaders(); + headers.set("storageId", storageId.toString()); + HttpEntity entity = new HttpEntity<>(headers); + + ResponseEntity responseEntity = oneDriveRestTemplate.exchange(CREATE_UPLOAD_SESSION_URL, + HttpMethod.POST, entity, JSONObject.class, + getGraphEndPoint(), getType(), fullPath); + JSONObject responseEntityBody = responseEntity.getBody(); + + return responseEntityBody.getString("uploadUrl"); + } + + /** + * 获取存储类型, 对于 OneDrive 或 SharePoint, 此地址会不同. + * @return Graph 连接点 + */ + public abstract String getType(); + + /** + * 获取 GraphEndPoint, 对于不同版本的 OneDrive, 此地址会不同. + * @return Graph 连接点 + */ + public abstract String getGraphEndPoint(); + + + /** + * 获取 AuthenticateEndPoint, 对于不同版本的 OneDrive, 此地址会不同. + * @return Authenticate 连接点 + */ + public abstract String getAuthenticateEndPoint(); + + /** + * 获取 Client ID. + * @return Client Id + */ + public abstract String getClientId(); + + /** + * 获取重定向地址. + * @return 重定向地址 + */ + public abstract String getRedirectUri(); + + /** + * 获取 Client Secret 密钥. + * @return Client Secret 密钥. + */ + public abstract String getClientSecret(); + + /** + * 获取 API Scope. + * @return Scope + */ + public abstract String getScope(); + + + /** + * 刷新当前存储源 AccessToken + */ + @Override + public void refreshAccessToken() { + try { + OneDriveToken refreshToken = getRefreshToken(); + + if (refreshToken.getAccessToken() == null || refreshToken.getRefreshToken() == null) { + return; + } + + StorageSourceConfig accessTokenConfig = + storageSourceConfigService.findByStorageIdAndName(storageId, StorageConfigConstant.ACCESS_TOKEN_KEY); + StorageSourceConfig refreshTokenConfig = + storageSourceConfigService.findByStorageIdAndName(storageId, StorageConfigConstant.REFRESH_TOKEN_KEY); + accessTokenConfig.setValue(refreshToken.getAccessToken()); + refreshTokenConfig.setValue(refreshToken.getRefreshToken()); + + storageSourceConfigService.updateStorageConfig(Arrays.asList(accessTokenConfig, refreshTokenConfig)); + RefreshTokenCache.putRefreshTokenInfo(storageId, RefreshTokenCache.RefreshTokenInfo.success()); + log.info("存储源 {} 刷新 AccessToken 成功", storageId); + } catch (Exception e) { + RefreshTokenCache.putRefreshTokenInfo(storageId, RefreshTokenCache.RefreshTokenInfo.fail(getStorageTypeEnum().getDescription() + " AccessToken 刷新失败: " + e.getMessage())); + throw new StorageSourceRefreshTokenException("存储源 ID: [{}] 刷新 AccessToken 失败", e, storageId); + } + } + + + private FileItemResult jsonToFileItem(JSONObject jsonObject, String folderPath) { + FileItemResult fileItemResult = new FileItemResult(); + fileItemResult.setName(jsonObject.getString("name")); + fileItemResult.setSize(jsonObject.getLong("size")); + fileItemResult.setTime(jsonObject.getDate("lastModifiedDateTime")); + + if (jsonObject.containsKey(ONE_DRIVE_FILE_FLAG)) { + String originUrl = jsonObject.getString("@microsoft.graph.downloadUrl"); + if (StrUtil.isNotEmpty(param.getProxyDomain())) { + originUrl = StringUtils.replaceHost(originUrl, param.getProxyDomain()); + } + fileItemResult.setUrl(originUrl); + fileItemResult.setType(FileTypeEnum.FILE); + } else { + fileItemResult.setType(FileTypeEnum.FOLDER); + } + fileItemResult.setPath(folderPath); + return fileItemResult; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/service/base/ProxyDownloadService.java b/src/main/java/im/zhaojun/zfile/home/service/base/ProxyDownloadService.java new file mode 100644 index 0000000..8972786 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/service/base/ProxyDownloadService.java @@ -0,0 +1,21 @@ +package im.zhaojun.zfile.home.service.base; + +import im.zhaojun.zfile.admin.model.param.ProxyDownloadParam; + +import java.io.InputStream; + +/** + * 代理下载 Service, 如果只需要代理下载, 则可实现此抽象类. + + * @author zhaojun + */ +public abstract class ProxyDownloadService

extends ProxyTransferService

{ + + /** + * 空实现. + */ + @Override + public void uploadFile(String path, InputStream inputStream) { + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/service/base/ProxyTransferService.java b/src/main/java/im/zhaojun/zfile/home/service/base/ProxyTransferService.java new file mode 100644 index 0000000..726055b --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/service/base/ProxyTransferService.java @@ -0,0 +1,111 @@ +package im.zhaojun.zfile.home.service.base; + +import cn.hutool.core.util.StrUtil; +import im.zhaojun.zfile.admin.model.param.ProxyTransferParam; +import im.zhaojun.zfile.admin.service.StorageSourceService; +import im.zhaojun.zfile.admin.service.SystemConfigService; +import im.zhaojun.zfile.common.util.ProxyDownloadUrlUtils; +import im.zhaojun.zfile.common.util.StringUtils; +import org.springframework.core.io.Resource; +import org.springframework.http.ResponseEntity; + +import java.io.InputStream; + +/** + * 代理传输数据(上传/下载) Service + * + * @author zhaojun + */ +public abstract class ProxyTransferService

extends AbstractBaseFileService

{ + + + /** + * 服务器代理下载 URL 前缀. + */ + public static final String PROXY_DOWNLOAD_LINK_PREFIX = "/pd"; + + + /** + * 服务器代理下载 URL 前缀. + */ + public static final String PROXY_UPLOAD_LINK_PREFIX = "/file/upload"; + + + @javax.annotation.Resource + private SystemConfigService systemConfigService; + + + @javax.annotation.Resource + private StorageSourceService storageSourceService; + + + /** + * 获取默认代理下载 URL. + * + * @param pathAndName + * 文件路径及文件名称 + * + * @return 默认的代理下载 URL + */ + @Override + public String getDownloadUrl(String pathAndName) { + String signature = ""; + if (param.isPrivate()) { + signature = "?signature=" + ProxyDownloadUrlUtils.generatorSignature(storageId, pathAndName, param.getTokenTime()); + } + // 如果未填写下载域名,则默认使用带来下载地址. + if (StrUtil.isEmpty(param.getDomain())) { + String domain = systemConfigService.getDomain(); + String storageKey = storageSourceService.findKeyById(storageId); + return StringUtils.concat(domain, PROXY_DOWNLOAD_LINK_PREFIX, storageKey, StringUtils.encodeAllIgnoreSlashes(pathAndName)) + signature; + } else { + return StringUtils.concat(param.getDomain(), StringUtils.encodeAllIgnoreSlashes(pathAndName)) + signature; + } + } + + + /** + * 获取默认代理上传 URL. + * + * @param path + * 文件路径 + * + * @param name + * 文件名称 + * + * @param size + * 文件大小 + * + * @return 默认的代理下上传 URL + */ + @Override + public String getUploadUrl(String path, String name, Long size) { + String domain = systemConfigService.getDomain(); + String storageKey = storageSourceService.findKeyById(storageId); + return StringUtils.concat(domain, PROXY_UPLOAD_LINK_PREFIX, storageKey, path, name); + } + + /** + * 上传文件 + * + * @param path + * 文件下载路径 + * + * @param inputStream + * 文件流 + * + */ + public abstract void uploadFile(String path, InputStream inputStream); + + + /** + * 代理下载指定文件 + * + * @param pathAndName + * 文件路径及文件名称 + * + * @return 文件响应. + */ + public abstract ResponseEntity downloadToStream(String pathAndName); + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/service/base/ProxyUploadService.java b/src/main/java/im/zhaojun/zfile/home/service/base/ProxyUploadService.java new file mode 100644 index 0000000..625064b --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/service/base/ProxyUploadService.java @@ -0,0 +1,22 @@ +package im.zhaojun.zfile.home.service.base; + +import im.zhaojun.zfile.admin.model.param.ProxyUploadParam; +import org.springframework.core.io.Resource; +import org.springframework.http.ResponseEntity; + +/** + * 代理上传 Service, 如果只需要代理上传, 则可实现此抽象类. + * + * @author zhaojun + */ +public abstract class ProxyUploadService

extends ProxyTransferService

{ + + /** + * 空实现. + */ + @Override + public ResponseEntity downloadToStream(String pathAndName) { + return null; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/service/base/RefreshTokenService.java b/src/main/java/im/zhaojun/zfile/home/service/base/RefreshTokenService.java new file mode 100644 index 0000000..73f6d83 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/service/base/RefreshTokenService.java @@ -0,0 +1,12 @@ +package im.zhaojun.zfile.home.service.base; + +/** + * 需要刷新 Token 服务的存储源 + * + * @author zhaojun + */ +public interface RefreshTokenService { + + void refreshAccessToken() throws Exception; + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/service/impl/AliyunServiceImpl.java b/src/main/java/im/zhaojun/zfile/home/service/impl/AliyunServiceImpl.java new file mode 100644 index 0000000..57568d8 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/service/impl/AliyunServiceImpl.java @@ -0,0 +1,39 @@ +package im.zhaojun.zfile.home.service.impl; + +import com.amazonaws.auth.AWSStaticCredentialsProvider; +import com.amazonaws.auth.BasicAWSCredentials; +import com.amazonaws.client.builder.AwsClientBuilder; +import com.amazonaws.services.s3.AmazonS3ClientBuilder; +import im.zhaojun.zfile.admin.model.param.AliyunParam; +import im.zhaojun.zfile.home.model.enums.StorageTypeEnum; +import im.zhaojun.zfile.home.service.base.AbstractS3BaseFileService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.config.ConfigurableBeanFactory; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Service; + +/** + * @author zhaojun + */ +@Service +@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) +@Slf4j +public class AliyunServiceImpl extends AbstractS3BaseFileService { + + @Override + public void init() { + BasicAWSCredentials credentials = new BasicAWSCredentials(param.getAccessKey(), param.getSecretKey()); + + s3Client = AmazonS3ClientBuilder.standard() + .withCredentials(new AWSStaticCredentialsProvider(credentials)) + .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(param.getEndPoint(), "oss")).build(); + + setUploadCors(); + } + + @Override + public StorageTypeEnum getStorageTypeEnum() { + return StorageTypeEnum.ALIYUN; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/service/impl/FtpServiceImpl.java b/src/main/java/im/zhaojun/zfile/home/service/impl/FtpServiceImpl.java new file mode 100644 index 0000000..68b497a --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/service/impl/FtpServiceImpl.java @@ -0,0 +1,198 @@ +package im.zhaojun.zfile.home.service.impl; + +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.extra.ftp.Ftp; +import cn.hutool.extra.ftp.FtpMode; +import im.zhaojun.zfile.admin.model.param.FtpParam; +import im.zhaojun.zfile.common.exception.DisableProxyDownloadException; +import im.zhaojun.zfile.common.exception.file.operator.DownloadFileException; +import im.zhaojun.zfile.common.exception.file.operator.GetFileInfoException; +import im.zhaojun.zfile.common.util.RequestHolder; +import im.zhaojun.zfile.common.util.StringUtils; +import im.zhaojun.zfile.home.model.enums.FileTypeEnum; +import im.zhaojun.zfile.home.model.enums.StorageTypeEnum; +import im.zhaojun.zfile.home.model.result.FileItemResult; +import im.zhaojun.zfile.home.service.base.ProxyTransferService; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.net.ftp.FTP; +import org.apache.commons.net.ftp.FTPFile; +import org.springframework.beans.factory.config.ConfigurableBeanFactory; +import org.springframework.context.annotation.Scope; +import org.springframework.core.io.Resource; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.nio.charset.Charset; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +/** + * @author zhaojun + */ +@Service +@Slf4j +@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) +public class FtpServiceImpl extends ProxyTransferService { + + private Ftp ftp; + + @SneakyThrows(IOException.class) + @Override + public void init() { + Charset charset = Charset.forName(param.getEncoding()); + ftp = new Ftp(param.getHost(), param.getPort(), param.getUsername(), + param.getPassword(), charset); + ftp.getClient().type(FTP.BINARY_FILE_TYPE); + ftp.setMode(FtpMode.Passive); + } + + + @Override + public synchronized List fileList(String folderPath) { + ftp.reconnectIfTimeout(); + String fullPath = StringUtils.concat(param.getBasePath(), folderPath); + ftp.cd(fullPath); + FTPFile[] ftpFiles = new FTPFile[]{}; + try { + ftp.getClient().changeWorkingDirectory("/"); + ftpFiles = ftp.getClient().listFiles(fullPath); + } catch (Exception e) { + e.printStackTrace(); + } + + List fileItemList = new ArrayList<>(); + + for (FTPFile ftpFile : ftpFiles) { + // 跳过 ftp 的本目录和上级目录 + if (Arrays.asList(".", "..").contains(ftpFile.getName())) { + continue; + } + FileItemResult fileItemResult = ftpFileToFileItem(ftpFile, folderPath); + fileItemList.add(fileItemResult); + } + return fileItemList; + } + + + @Override + public StorageTypeEnum getStorageTypeEnum() { + return StorageTypeEnum.FTP; + } + + + @Override + public FileItemResult getFileItem(String pathAndName) { + FTPFile[] ftpFiles; + try { + ftpFiles = ftp.getClient().listFiles(pathAndName); + } catch (IOException e) { + throw new GetFileInfoException(storageId, pathAndName, e); + } + + if (ArrayUtil.isEmpty(ftpFiles)) { + throw new GetFileInfoException(storageId, pathAndName); + } + + FTPFile ftpFile = ftpFiles[0]; + + String folderPath = StringUtils.getParentPath(pathAndName); + return ftpFileToFileItem(ftpFile, folderPath); + } + + + @Override + public synchronized boolean newFolder(String path, String name) { + String fullPath = StringUtils.concat(param.getBasePath(), path, name); + return ftp.mkdir(fullPath); + } + + + @Override + public synchronized boolean deleteFile(String path, String name) { + String fullPath = StringUtils.concat(param.getBasePath(), path, name); + return ftp.delFile(fullPath); + } + + + @Override + public synchronized boolean deleteFolder(String path, String name) { + String fullPath = StringUtils.concat(param.getBasePath(), path, name); + return ftp.delDir(fullPath); + } + + + @Override + public synchronized boolean renameFile(String path, String name, String newName) { + ftp.reconnectIfTimeout(); + String srcPath = StringUtils.concat(param.getBasePath(), path, name); + String distPath = StringUtils.concat(param.getBasePath(), path, newName); + try { + return ftp.getClient().rename(srcPath, distPath); + } catch (IOException e) { + log.error("存储源 {} 重命名文件 {} 至 {} 失败", storageId, srcPath, distPath, e); + } + + return false; + } + + + @Override + public boolean renameFolder(String path, String name, String newName) { + return renameFile(path, name, newName); + } + + + @Override + public synchronized ResponseEntity downloadToStream(String pathAndName) { + // 如果配置了域名,还访问代理下载 URL, 则抛出异常进行提示. + if (StrUtil.isNotEmpty(param.getDomain())) { + throw new DisableProxyDownloadException(); + } + + ftp.reconnectIfTimeout(); + HttpServletResponse response = RequestHolder.getResponse(); + try { + pathAndName = StringUtils.concat(param.getBasePath(), pathAndName); + OutputStream outputStream = response.getOutputStream(); + String fileName = FileUtil.getName(pathAndName); + String folderName = FileUtil.getParent(pathAndName, 1); + ftp.download(folderName, fileName, outputStream); + } catch (Exception e) { + throw new DownloadFileException(storageId, "下载文件失败", e); + } + return null; + } + + + @Override + public synchronized void uploadFile(String path, InputStream inputStream) { + String fullPath = StringUtils.concat(param.getBasePath(), path); + String fileName = FileUtil.getName(path); + String folderName = FileUtil.getParent(fullPath, 1); + ftp.upload(folderName, fileName, inputStream); + } + + + private FileItemResult ftpFileToFileItem(FTPFile ftpFile, String folderPath) { + FileItemResult fileItemResult = new FileItemResult(); + fileItemResult.setName(ftpFile.getName()); + fileItemResult.setSize(ftpFile.getSize()); + fileItemResult.setTime(ftpFile.getTimestamp().getTime()); + fileItemResult.setType(ftpFile.isDirectory() ? FileTypeEnum.FOLDER : FileTypeEnum.FILE); + fileItemResult.setPath(folderPath); + + if (fileItemResult.getType() == FileTypeEnum.FILE) { + fileItemResult.setUrl(getDownloadUrl(StringUtils.concat(folderPath, fileItemResult.getName()))); + } + return fileItemResult; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/service/impl/HuaweiServiceImpl.java b/src/main/java/im/zhaojun/zfile/home/service/impl/HuaweiServiceImpl.java new file mode 100644 index 0000000..25760f3 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/service/impl/HuaweiServiceImpl.java @@ -0,0 +1,38 @@ +package im.zhaojun.zfile.home.service.impl; + +import com.amazonaws.auth.AWSStaticCredentialsProvider; +import com.amazonaws.auth.BasicAWSCredentials; +import com.amazonaws.client.builder.AwsClientBuilder; +import com.amazonaws.services.s3.AmazonS3ClientBuilder; +import im.zhaojun.zfile.home.model.enums.StorageTypeEnum; +import im.zhaojun.zfile.admin.model.param.HuaweiParam; +import im.zhaojun.zfile.home.service.base.AbstractS3BaseFileService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.config.ConfigurableBeanFactory; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Service; + +/** + * @author zhaojun + */ +@Service +@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) +@Slf4j +public class HuaweiServiceImpl extends AbstractS3BaseFileService { + + @Override + public void init() { + BasicAWSCredentials credentials = new BasicAWSCredentials(param.getAccessKey(), param.getSecretKey()); + s3Client = AmazonS3ClientBuilder.standard() + .withCredentials(new AWSStaticCredentialsProvider(credentials)) + .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(param.getEndPoint(), "obs")).build(); + + setUploadCors(); + } + + @Override + public StorageTypeEnum getStorageTypeEnum() { + return StorageTypeEnum.HUAWEI; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/service/impl/LocalServiceImpl.java b/src/main/java/im/zhaojun/zfile/home/service/impl/LocalServiceImpl.java new file mode 100644 index 0000000..9015323 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/service/impl/LocalServiceImpl.java @@ -0,0 +1,201 @@ +package im.zhaojun.zfile.home.service.impl; + +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.io.IoUtil; +import cn.hutool.core.util.StrUtil; +import im.zhaojun.zfile.admin.model.param.LocalParam; +import im.zhaojun.zfile.common.constant.ZFileConstant; +import im.zhaojun.zfile.common.exception.InitializeStorageSourceException; +import im.zhaojun.zfile.common.exception.NotExistFileException; +import im.zhaojun.zfile.common.exception.file.operator.GetFileInfoException; +import im.zhaojun.zfile.common.util.StringUtils; +import im.zhaojun.zfile.home.model.enums.FileTypeEnum; +import im.zhaojun.zfile.home.model.enums.StorageTypeEnum; +import im.zhaojun.zfile.home.model.result.FileItemResult; +import im.zhaojun.zfile.home.service.base.ProxyTransferService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.config.ConfigurableBeanFactory; +import org.springframework.context.annotation.Scope; +import org.springframework.core.io.ByteArrayResource; +import org.springframework.core.io.FileSystemResource; +import org.springframework.core.io.Resource; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; + +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.InputStream; +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Date; +import java.util.List; + +/** + * @author zhaojun + */ +@Service +@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) +@Slf4j +public class LocalServiceImpl extends ProxyTransferService { + + @Override + public void init() { + // 初始化存储源 + File file = new File(param.getFilePath()); + // 校验文件夹是否存在 + if (!file.exists()) { + throw new InitializeStorageSourceException("文件路径: \"" + file.getAbsolutePath() + "\"不存在, 请检查是否填写正确."); + } + } + + + @Override + public List fileList(String folderPath) throws FileNotFoundException { + // 安全检查,以 .. 或 /.. 开头的需拦截, 否则可能会获取到上层文件夹内容. + if (StrUtil.startWith(folderPath, "..") || StrUtil.startWith(folderPath, "/..")) { + return Collections.emptyList(); + } + + List fileItemList = new ArrayList<>(); + + String fullPath = StringUtils.concat(param.getFilePath() + folderPath); + + File file = new File(fullPath); + + if (!file.exists()) { + throw new FileNotFoundException("文件不存在"); + } + + File[] files = file.listFiles(); + + if (files == null) { + return fileItemList; + } + for (File f : files) { + fileItemList.add(fileToFileItem(f, folderPath)); + } + + return fileItemList; + } + + + @Override + public FileItemResult getFileItem(String pathAndName) { + String fullPath = StringUtils.concat(param.getFilePath(), pathAndName); + + File file = new File(fullPath); + + if (!file.exists()) { + throw new GetFileInfoException(storageId, pathAndName, new NotExistFileException("文件不存在.")); + } + + String folderPath = StringUtils.getParentPath(pathAndName); + return fileToFileItem(file, folderPath); + } + + + @Override + public boolean newFolder(String path, String name) { + String fullPath = StringUtils.concat(param.getFilePath(), path, name); + return FileUtil.mkdir(fullPath) != null; + } + + + @Override + public boolean deleteFile(String path, String name) { + String fullPath = StringUtils.concat(param.getFilePath(), path, name); + return FileUtil.del(fullPath); + } + + + @Override + public boolean deleteFolder(String path, String name) { + return deleteFile(path, name); + } + + + @Override + public boolean renameFile(String path, String name, String newName) { + String srcPath = StringUtils.concat(param.getFilePath(), path, name); + File file = new File(srcPath); + try { + FileUtil.rename(file, newName, true); + return true; + } catch (Exception e) { + log.error("存储源 {} 重命名文件 {} 至 {} 失败", storageId, srcPath, newName, e); + } + return false; + } + + + @Override + public boolean renameFolder(String path, String name, String newName) { + return renameFile(path, name, newName); + } + + + @Override + public StorageTypeEnum getStorageTypeEnum() { + return StorageTypeEnum.LOCAL; + } + + + @Override + public void uploadFile(String path, InputStream inputStream) { + String baseFilePath = param.getFilePath(); + String uploadPath = StringUtils.removeDuplicateSlashes(baseFilePath + ZFileConstant.PATH_SEPARATOR + path); + // 如果目录不存在则创建 + String parentPath = FileUtil.getParent(uploadPath, 1); + if (!FileUtil.exist(parentPath)) { + FileUtil.mkdir(parentPath); + } + + File uploadToFileObj = new File(uploadPath); + BufferedOutputStream outputStream = FileUtil.getOutputStream(uploadToFileObj); + IoUtil.copy(inputStream, outputStream); + } + + + @Override + public ResponseEntity downloadToStream(String pathAndName) { + File file = new File(StringUtils.removeDuplicateSlashes(param.getFilePath() + ZFileConstant.PATH_SEPARATOR + pathAndName)); + if (!file.exists()) { + ByteArrayResource byteArrayResource = new ByteArrayResource("文件不存在或异常,请联系管理员.".getBytes(StandardCharsets.UTF_8)); + return ResponseEntity.status(HttpStatus.NOT_FOUND) + .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE) + .body(byteArrayResource); + } + + HttpHeaders headers = new HttpHeaders(); + + String fileName = file.getName(); + headers.setContentDispositionFormData("attachment", StringUtils.encodeAllIgnoreSlashes(fileName)); + + return ResponseEntity + .ok() + .headers(headers) + .contentLength(file.length()) + .body(new FileSystemResource(file)); + } + + + private FileItemResult fileToFileItem(File file, String folderPath) { + FileItemResult fileItemResult = new FileItemResult(); + fileItemResult.setType(file.isDirectory() ? FileTypeEnum.FOLDER : FileTypeEnum.FILE); + fileItemResult.setTime(new Date(file.lastModified())); + fileItemResult.setSize(file.length()); + fileItemResult.setName(file.getName()); + fileItemResult.setPath(folderPath); + + if (fileItemResult.getType() == FileTypeEnum.FILE) { + fileItemResult.setUrl(getDownloadUrl(StringUtils.concat(folderPath, file.getName()))); + } + return fileItemResult; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/service/impl/MinIOServiceImpl.java b/src/main/java/im/zhaojun/zfile/home/service/impl/MinIOServiceImpl.java new file mode 100644 index 0000000..bb30cdb --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/service/impl/MinIOServiceImpl.java @@ -0,0 +1,39 @@ +package im.zhaojun.zfile.home.service.impl; + +import com.amazonaws.auth.AWSStaticCredentialsProvider; +import com.amazonaws.auth.BasicAWSCredentials; +import com.amazonaws.client.builder.AwsClientBuilder; +import com.amazonaws.services.s3.AmazonS3ClientBuilder; +import im.zhaojun.zfile.home.model.enums.StorageTypeEnum; +import im.zhaojun.zfile.admin.model.param.MinIOParam; +import im.zhaojun.zfile.home.service.base.AbstractS3BaseFileService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.config.ConfigurableBeanFactory; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Service; + +/** + * @author zhaojun + */ +@Service +@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) +@Slf4j +public class MinIOServiceImpl extends AbstractS3BaseFileService { + + @Override + public void init() { + BasicAWSCredentials credentials = new BasicAWSCredentials(param.getAccessKey(), param.getSecretKey()); + s3Client = AmazonS3ClientBuilder.standard() + .withPathStyleAccessEnabled(true) + .withCredentials(new AWSStaticCredentialsProvider(credentials)) + .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(param.getEndPoint(), "minio")).build(); + + setUploadCors(); + } + + @Override + public StorageTypeEnum getStorageTypeEnum() { + return StorageTypeEnum.MINIO; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/service/impl/OneDriveChinaServiceImpl.java b/src/main/java/im/zhaojun/zfile/home/service/impl/OneDriveChinaServiceImpl.java new file mode 100644 index 0000000..cdbb00b --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/service/impl/OneDriveChinaServiceImpl.java @@ -0,0 +1,67 @@ +package im.zhaojun.zfile.home.service.impl; + +import im.zhaojun.zfile.home.model.enums.StorageTypeEnum; +import im.zhaojun.zfile.admin.model.param.OneDriveChinaParam; +import im.zhaojun.zfile.home.service.base.AbstractOneDriveServiceBase; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.beans.factory.config.ConfigurableBeanFactory; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Service; + +/** + * @author zhaojun + */ +@Service +@Slf4j +@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) +public class OneDriveChinaServiceImpl extends AbstractOneDriveServiceBase { + + @Value("${zfile.onedrive-china.clientId}") + private String clientId; + + @Value("${zfile.onedrive-china.redirectUri}") + private String redirectUri; + + @Value("${zfile.onedrive-china.clientSecret}") + private String clientSecret; + + @Value("${zfile.onedrive-china.scope}") + private String scope; + + @Override + public StorageTypeEnum getStorageTypeEnum() { + return StorageTypeEnum.ONE_DRIVE_CHINA; + } + + @Override + public String getGraphEndPoint() { + return "microsoftgraph.chinacloudapi.cn"; + } + + @Override + public String getAuthenticateEndPoint() { + return "login.partner.microsoftonline.cn"; + } + + @Override + public String getClientId() { + return clientId; + } + + @Override + public String getRedirectUri() { + return redirectUri; + } + + @Override + public String getClientSecret() { + return clientSecret; + } + + @Override + public String getScope() { + return scope; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/service/impl/OneDriveServiceImpl.java b/src/main/java/im/zhaojun/zfile/home/service/impl/OneDriveServiceImpl.java new file mode 100644 index 0000000..3233a7c --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/service/impl/OneDriveServiceImpl.java @@ -0,0 +1,67 @@ +package im.zhaojun.zfile.home.service.impl; + +import im.zhaojun.zfile.home.model.enums.StorageTypeEnum; +import im.zhaojun.zfile.admin.model.param.OneDriveParam; +import im.zhaojun.zfile.home.service.base.AbstractOneDriveServiceBase; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.beans.factory.config.ConfigurableBeanFactory; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Service; + +/** + * @author zhaojun + */ +@Service +@Slf4j +@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) +public class OneDriveServiceImpl extends AbstractOneDriveServiceBase { + + @Value("${zfile.onedrive.clientId}") + protected String clientId; + + @Value("${zfile.onedrive.redirectUri}") + protected String redirectUri; + + @Value("${zfile.onedrive.clientSecret}") + protected String clientSecret; + + @Value("${zfile.onedrive.scope}") + protected String scope; + + @Override + public StorageTypeEnum getStorageTypeEnum() { + return StorageTypeEnum.ONE_DRIVE; + } + + @Override + public String getGraphEndPoint() { + return "graph.microsoft.com"; + } + + @Override + public String getAuthenticateEndPoint() { + return "login.microsoftonline.com"; + } + + @Override + public String getClientId() { + return clientId; + } + + @Override + public String getRedirectUri() { + return redirectUri; + } + + @Override + public String getClientSecret() { + return clientSecret; + } + + @Override + public String getScope() { + return scope; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/service/impl/QiniuServiceImpl.java b/src/main/java/im/zhaojun/zfile/home/service/impl/QiniuServiceImpl.java new file mode 100644 index 0000000..3619314 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/service/impl/QiniuServiceImpl.java @@ -0,0 +1,71 @@ +package im.zhaojun.zfile.home.service.impl; + +import com.amazonaws.auth.AWSStaticCredentialsProvider; +import com.amazonaws.auth.BasicAWSCredentials; +import com.amazonaws.client.builder.AwsClientBuilder; +import com.amazonaws.services.s3.AmazonS3ClientBuilder; +import com.qiniu.common.QiniuException; +import com.qiniu.storage.BucketManager; +import com.qiniu.storage.Configuration; +import com.qiniu.storage.Region; +import com.qiniu.util.Auth; +import im.zhaojun.zfile.home.model.enums.StorageTypeEnum; +import im.zhaojun.zfile.admin.model.param.QiniuParam; +import im.zhaojun.zfile.home.service.base.AbstractS3BaseFileService; +import im.zhaojun.zfile.common.util.StringUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.config.ConfigurableBeanFactory; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Service; + +/** + * @author zhaojun + */ +@Service +@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) +@Slf4j +public class QiniuServiceImpl extends AbstractS3BaseFileService { + + private BucketManager bucketManager; + + @Override + public void init() { + BasicAWSCredentials credentials = new BasicAWSCredentials(param.getAccessKey(), param.getSecretKey()); + s3Client = AmazonS3ClientBuilder.standard() + .withCredentials(new AWSStaticCredentialsProvider(credentials)) + .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(param.getEndPoint(), "kodo")).build(); + + Configuration cfg = new Configuration(Region.autoRegion()); + Auth auth = Auth.create(param.getAccessKey(), param.getSecretKey()); + bucketManager = new BucketManager(auth, cfg); + + setUploadCors(); + } + + @Override + public StorageTypeEnum getStorageTypeEnum() { + return StorageTypeEnum.QINIU; + } + + @Override + public boolean renameFile(String path, String name, String newName) { + String bucketName = param.getBucketName(); + String basePath = param.getBasePath(); + + String srcPath = StringUtils.concat(basePath, path, name); + srcPath = StringUtils.trimStartSlashes(srcPath); + + String distPath = StringUtils.concat(basePath, path, newName); + distPath = StringUtils.trimStartSlashes(distPath); + + try { + bucketManager.move(bucketName, srcPath, bucketName, distPath); + return true; + } catch (QiniuException e) { + log.error("存储源 {} 重命名文件 {} 至 {} 失败", storageId, srcPath, distPath, e); + } + + return false; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/service/impl/S3ServiceImpl.java b/src/main/java/im/zhaojun/zfile/home/service/impl/S3ServiceImpl.java new file mode 100644 index 0000000..dbd1967 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/service/impl/S3ServiceImpl.java @@ -0,0 +1,47 @@ +package im.zhaojun.zfile.home.service.impl; + +import cn.hutool.core.util.StrUtil; +import com.amazonaws.auth.AWSStaticCredentialsProvider; +import com.amazonaws.auth.BasicAWSCredentials; +import com.amazonaws.client.builder.AwsClientBuilder; +import com.amazonaws.services.s3.AmazonS3ClientBuilder; +import im.zhaojun.zfile.home.model.enums.StorageTypeEnum; +import im.zhaojun.zfile.admin.model.param.S3Param; +import im.zhaojun.zfile.home.service.base.AbstractS3BaseFileService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.config.ConfigurableBeanFactory; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Service; + +/** + * @author zhaojun + */ +@Service +@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) +@Slf4j +public class S3ServiceImpl extends AbstractS3BaseFileService { + + @Override + public void init() { + boolean isPathStyle = "path-style".equals(param.getPathStyle()); + String region = param.getRegion(); + if (StrUtil.isNotEmpty(param.getEndPoint())) { + region = param.getEndPoint().split("\\.")[1]; + } + BasicAWSCredentials credentials = new BasicAWSCredentials(param.getAccessKey(), param.getSecretKey()); + s3Client = AmazonS3ClientBuilder.standard() + .withPathStyleAccessEnabled(isPathStyle) + .withCredentials(new AWSStaticCredentialsProvider(credentials)) + .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(param.getEndPoint(), region)).build(); + + if (param.isAutoConfigCors()) { + setUploadCors(); + } + } + + @Override + public StorageTypeEnum getStorageTypeEnum() { + return StorageTypeEnum.S3; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/service/impl/SftpServiceImpl.java b/src/main/java/im/zhaojun/zfile/home/service/impl/SftpServiceImpl.java new file mode 100644 index 0000000..4569e03 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/service/impl/SftpServiceImpl.java @@ -0,0 +1,171 @@ +package im.zhaojun.zfile.home.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.extra.ssh.Sftp; +import com.jcraft.jsch.ChannelSftp; +import com.jcraft.jsch.SftpException; +import im.zhaojun.zfile.admin.model.param.SftpParam; +import im.zhaojun.zfile.common.exception.DisableProxyDownloadException; +import im.zhaojun.zfile.common.exception.NotExistFileException; +import im.zhaojun.zfile.common.exception.file.operator.GetFileInfoException; +import im.zhaojun.zfile.common.util.RequestHolder; +import im.zhaojun.zfile.common.util.StringUtils; +import im.zhaojun.zfile.home.model.enums.FileTypeEnum; +import im.zhaojun.zfile.home.model.enums.StorageTypeEnum; +import im.zhaojun.zfile.home.model.result.FileItemResult; +import im.zhaojun.zfile.home.service.base.ProxyTransferService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.config.ConfigurableBeanFactory; +import org.springframework.context.annotation.Scope; +import org.springframework.core.io.Resource; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.List; + +/** + * @author zhaojun + */ +@Service +@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) +@Slf4j +public class SftpServiceImpl extends ProxyTransferService { + + private Sftp sftp; + + @Override + public void init() { + sftp = new Sftp(param.getHost(), param.getPort(), param.getUsername(), param.getPassword(), StandardCharsets.UTF_8); + testConnection(); + isInitialized = true; + } + + @Override + public List fileList(String folderPath) throws Exception { + sftp.reconnectIfTimeout(); + List result = new ArrayList<>(); + + String fullPath = StringUtils.concat(param.getBasePath(), folderPath); + List entryList = sftp.lsEntries(fullPath); + for (ChannelSftp.LsEntry sftpEntry : entryList) { + FileItemResult fileItemResult = sftpEntryToFileItem(sftpEntry, folderPath); + result.add(fileItemResult); + } + return result; + } + + + @Override + public StorageTypeEnum getStorageTypeEnum() { + return StorageTypeEnum.SFTP; + } + + + @Override + public FileItemResult getFileItem(String pathAndName) { + sftp.reconnectIfTimeout(); + + String fullPath = StringUtils.concat(param.getBasePath(), pathAndName); + List entryList = sftp.lsEntries(fullPath); + + if (CollUtil.isEmpty(entryList)) { + throw new GetFileInfoException(storageId, pathAndName, new NotExistFileException("文件不存在.")); + } + + ChannelSftp.LsEntry sftpEntry = CollUtil.getFirst(entryList); + String folderName = StringUtils.getParentPath(pathAndName); + return sftpEntryToFileItem(sftpEntry, folderName); + } + + + @Override + public boolean newFolder(String path, String name) { + sftp.mkdir(StringUtils.concat(param.getBasePath(), path, name)); + return true; + } + + + @Override + public synchronized boolean deleteFile(String path, String name) { + return sftp.delFile(StringUtils.concat(param.getBasePath(), path, name)); + } + + + @Override + public synchronized boolean deleteFolder(String path, String name) { + return sftp.delDir(StringUtils.concat(param.getBasePath(), path, name)); + } + + + @Override + public boolean renameFile(String path, String name, String newName) { + sftp.reconnectIfTimeout(); + String srcPath = StringUtils.concat(param.getBasePath(), path, name); + String distPath = StringUtils.concat(param.getBasePath(), path, newName); + try { + sftp.getClient().rename(srcPath, distPath); + return true; + } catch (SftpException e) { + log.error("存储源 {} 重命名文件 {} 至 {} 失败", storageId, srcPath, distPath, e); + } + + return false; + } + + + @Override + public boolean renameFolder(String path, String name, String newName) { + return renameFile(path, name, newName); + } + + + @Override + public synchronized ResponseEntity downloadToStream(String pathAndName) { + // 如果配置了域名,还访问代理下载 URL, 则抛出异常进行提示. + if (StrUtil.isNotEmpty(param.getDomain())) { + throw new DisableProxyDownloadException(); + } + + HttpServletResponse response = RequestHolder.getResponse(); + try { + OutputStream outputStream = response.getOutputStream(); + sftp.download(StringUtils.concat(param.getBasePath(), pathAndName), outputStream); + return null; + } catch (IOException e) { + throw new RuntimeException("下载文件失败", e); + } + } + + + @Override + public synchronized void uploadFile(String path, InputStream inputStream) { + String fullPath = StringUtils.concat(param.getBasePath(), path); + String fileName = FileUtil.getName(path); + String folderName = FileUtil.getParent(fullPath, 1); + sftp.upload(folderName, fileName, inputStream); + } + + + public FileItemResult sftpEntryToFileItem(ChannelSftp.LsEntry sftpEntry, String folderPath) { + FileItemResult fileItemResult = new FileItemResult(); + fileItemResult.setName(sftpEntry.getFilename()); + fileItemResult.setTime(DateUtil.date(sftpEntry.getAttrs().getMTime() * 1000L)); + fileItemResult.setSize(sftpEntry.getAttrs().getSize()); + fileItemResult.setType(sftpEntry.getAttrs().isDir() ? FileTypeEnum.FOLDER : FileTypeEnum.FILE); + fileItemResult.setPath(folderPath); + if (fileItemResult.getType() == FileTypeEnum.FILE) { + fileItemResult.setUrl(getDownloadUrl(StringUtils.concat(folderPath, fileItemResult.getName()))); + } + return fileItemResult; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/service/impl/SharePointChinaServiceImpl.java b/src/main/java/im/zhaojun/zfile/home/service/impl/SharePointChinaServiceImpl.java new file mode 100644 index 0000000..0c21886 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/service/impl/SharePointChinaServiceImpl.java @@ -0,0 +1,67 @@ +package im.zhaojun.zfile.home.service.impl; + +import im.zhaojun.zfile.home.model.enums.StorageTypeEnum; +import im.zhaojun.zfile.admin.model.param.SharePointChinaParam; +import im.zhaojun.zfile.home.service.base.AbstractSharePointServiceBase; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.beans.factory.config.ConfigurableBeanFactory; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Service; + +/** + * @author zhaojun + */ +@Service +@Slf4j +@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) +public class SharePointChinaServiceImpl extends AbstractSharePointServiceBase { + + @Value("${zfile.onedrive-china.clientId}") + private String clientId; + + @Value("${zfile.onedrive-china.redirectUri}") + private String redirectUri; + + @Value("${zfile.onedrive-china.clientSecret}") + private String clientSecret; + + @Value("${zfile.onedrive-china.scope}") + private String scope; + + @Override + public StorageTypeEnum getStorageTypeEnum() { + return StorageTypeEnum.SHAREPOINT_DRIVE_CHINA; + } + + @Override + public String getGraphEndPoint() { + return "microsoftgraph.chinacloudapi.cn"; + } + + @Override + public String getAuthenticateEndPoint() { + return "login.partner.microsoftonline.cn"; + } + + @Override + public String getClientId() { + return clientId; + } + + @Override + public String getRedirectUri() { + return redirectUri; + } + + @Override + public String getClientSecret() { + return clientSecret; + } + + @Override + public String getScope() { + return scope; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/service/impl/SharePointServiceImpl.java b/src/main/java/im/zhaojun/zfile/home/service/impl/SharePointServiceImpl.java new file mode 100644 index 0000000..deb23ba --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/service/impl/SharePointServiceImpl.java @@ -0,0 +1,67 @@ +package im.zhaojun.zfile.home.service.impl; + +import im.zhaojun.zfile.home.model.enums.StorageTypeEnum; +import im.zhaojun.zfile.admin.model.param.SharePointParam; +import im.zhaojun.zfile.home.service.base.AbstractSharePointServiceBase; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.beans.factory.config.ConfigurableBeanFactory; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Service; + +/** + * @author zhaojun + */ +@Service +@Slf4j +@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) +public class SharePointServiceImpl extends AbstractSharePointServiceBase { + + @Value("${zfile.onedrive.clientId}") + protected String clientId; + + @Value("${zfile.onedrive.redirectUri}") + protected String redirectUri; + + @Value("${zfile.onedrive.clientSecret}") + protected String clientSecret; + + @Value("${zfile.onedrive.scope}") + protected String scope; + + @Override + public StorageTypeEnum getStorageTypeEnum() { + return StorageTypeEnum.SHAREPOINT_DRIVE; + } + + @Override + public String getGraphEndPoint() { + return "graph.microsoft.com"; + } + + @Override + public String getAuthenticateEndPoint() { + return "login.microsoftonline.com"; + } + + @Override + public String getClientId() { + return clientId; + } + + @Override + public String getRedirectUri() { + return redirectUri; + } + + @Override + public String getClientSecret() { + return clientSecret; + } + + @Override + public String getScope() { + return scope; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/service/impl/TencentServiceImpl.java b/src/main/java/im/zhaojun/zfile/home/service/impl/TencentServiceImpl.java new file mode 100644 index 0000000..d4ef91f --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/service/impl/TencentServiceImpl.java @@ -0,0 +1,37 @@ +package im.zhaojun.zfile.home.service.impl; + +import com.amazonaws.auth.AWSStaticCredentialsProvider; +import com.amazonaws.auth.BasicAWSCredentials; +import com.amazonaws.client.builder.AwsClientBuilder; +import com.amazonaws.services.s3.AmazonS3ClientBuilder; +import im.zhaojun.zfile.admin.model.param.TencentParam; +import im.zhaojun.zfile.home.model.enums.StorageTypeEnum; +import im.zhaojun.zfile.home.service.base.AbstractS3BaseFileService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.config.ConfigurableBeanFactory; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Service; + +/** + * @author zhaojun + */ +@Service +@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) +@Slf4j +public class TencentServiceImpl extends AbstractS3BaseFileService { + + @Override + public void init() { + BasicAWSCredentials credentials = new BasicAWSCredentials(param.getAccessKey(), param.getSecretKey()); + s3Client = AmazonS3ClientBuilder.standard() + .withCredentials(new AWSStaticCredentialsProvider(credentials)) + .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(param.getEndPoint(), "cos")).build(); + setUploadCors(); + } + + @Override + public StorageTypeEnum getStorageTypeEnum() { + return StorageTypeEnum.TENCENT; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/service/impl/UpYunServiceImpl.java b/src/main/java/im/zhaojun/zfile/home/service/impl/UpYunServiceImpl.java new file mode 100644 index 0000000..bd246b7 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/service/impl/UpYunServiceImpl.java @@ -0,0 +1,245 @@ +package im.zhaojun.zfile.home.service.impl; + +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.crypto.SecureUtil; +import com.UpYun; +import com.alibaba.fastjson.JSON; +import com.upyun.Params; +import com.upyun.UpException; +import com.upyun.UpYunUtils; +import im.zhaojun.zfile.admin.model.param.UpYunParam; +import im.zhaojun.zfile.common.exception.NotExistFileException; +import im.zhaojun.zfile.common.exception.UnSupportedOperation; +import im.zhaojun.zfile.common.util.StringUtils; +import im.zhaojun.zfile.home.model.enums.FileTypeEnum; +import im.zhaojun.zfile.home.model.enums.StorageTypeEnum; +import im.zhaojun.zfile.home.model.result.FileItemResult; +import im.zhaojun.zfile.home.model.upyun.AuthModel; +import im.zhaojun.zfile.home.model.upyun.UploadSignParam; +import im.zhaojun.zfile.home.service.base.AbstractBaseFileService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.config.ConfigurableBeanFactory; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Service; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Base64; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +/** + * @author zhaojun + */ +@Service +@Slf4j +@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) +public class UpYunServiceImpl extends AbstractBaseFileService { + + private static final String DELETE_NO_EMPTY_FOLDERS_MESSAGE = "directory not empty"; + + private static final String END_MARK = "g2gCZAAEbmV4dGQAA2VvZg"; + + private UpYun upYun; + + @Override + public void init() { + upYun = new UpYun(param.getBucketName(), param.getUsername(), param.getPassword()); + } + + @Override + public List fileList(String folderPath) throws Exception { + ArrayList fileItemList = new ArrayList<>(); + String nextMark = null; + + do { + HashMap hashMap = new HashMap<>(24); + hashMap.put("x-list-iter", nextMark); + hashMap.put("x-list-limit", "100"); + UpYun.FolderItemIter folderItemIter = upYun.readDirIter(StringUtils.concat(true, param.getBasePath(), folderPath), hashMap); + nextMark = folderItemIter.iter; + ArrayList folderItems = folderItemIter.files; + if (folderItems != null) { + for (UpYun.FolderItem folderItem : folderItems) { + FileItemResult fileItemResult = new FileItemResult(); + fileItemResult.setName(folderItem.name); + fileItemResult.setSize(folderItem.size); + fileItemResult.setTime(folderItem.date); + fileItemResult.setPath(folderPath); + fileItemResult.setType("folder".equals(folderItem.type) ? FileTypeEnum.FOLDER : FileTypeEnum.FILE); + if (fileItemResult.getType() == FileTypeEnum.FILE) { + fileItemResult.setUrl(getDownloadUrl(StringUtils.concat(folderPath, fileItemResult.getName()))); + } + fileItemList.add(fileItemResult); + } + } + } while (!END_MARK.equals(nextMark)); + return fileItemList; + } + + @Override + public String getDownloadUrl(String pathAndName) { + String fullPath = StringUtils.concat(param.getBasePath(), pathAndName); + + String baseDownloadUrl = StringUtils.concat(param.getDomain(), StringUtils.encodeAllIgnoreSlashes(fullPath)); + // 判断是否配置了 token 防盗链. + if (StrUtil.isNotEmpty(param.getToken())) { + // 如果前面没有补 /, 则自动补 /, 不然生成的防盗链是无效的. + long etime = System.currentTimeMillis() / 1000 + TimeUnit.MINUTES.toSeconds(param.getTokenTime()); + String downloadToken = SecureUtil.md5(param.getToken() + "&" + etime + "&" + fullPath).substring(12, 20); + baseDownloadUrl += "?_upt=" + downloadToken + etime; + } + + return baseDownloadUrl; + } + + @Override + public StorageTypeEnum getStorageTypeEnum() { + return StorageTypeEnum.UPYUN; + } + + @Override + public FileItemResult getFileItem(String pathAndName) { + try { + String encodeFullUrl = StringUtils.concat(true, param.getBasePath() + pathAndName); + Map fileInfo = upYun.getFileInfo(encodeFullUrl); + + if (fileInfo == null) { + throw new NotExistFileException(); + } + + String name = FileUtil.getName(pathAndName); + String folderPath = StringUtils.getParentPath(pathAndName); + FileItemResult fileItemResult = new FileItemResult(); + fileItemResult.setName(name); + fileItemResult.setSize(Long.valueOf(fileInfo.get("size"))); + fileItemResult.setTime(new Date(Long.parseLong(fileInfo.get("date")) * 1000)); + fileItemResult.setPath(folderPath); + + if ("folder".equals(fileInfo.get("type"))) { + fileItemResult.setType(FileTypeEnum.FOLDER); + } else { + fileItemResult.setType(FileTypeEnum.FILE); + fileItemResult.setUrl(getDownloadUrl(pathAndName)); + } + return fileItemResult; + } catch (IOException | UpException e) { + e.printStackTrace(); + } + + throw new NotExistFileException(); + } + + @Override + public boolean newFolder(String path, String name) { + String fullPath = StringUtils.concat(true, param.getBasePath(), path, name); + try { + return upYun.mkDir(fullPath, true); + } catch (IOException | UpException e) { + log.error("存储源 {} 创建文件夹 {} 失败.", storageId, fullPath, e); + } + return false; + } + + @Override + public boolean deleteFile(String path, String name) { + String fullPath = StringUtils.concat(true, param.getBasePath(), path, name); + try { + return upYun.deleteFile(fullPath, null); + } catch (IOException | UpException e) { + if (e instanceof UpException) { + String message = e.getMessage(); + if (StrUtil.contains(message, DELETE_NO_EMPTY_FOLDERS_MESSAGE)) { + throw new RuntimeException("非空文件夹不允许删除"); + } + } + log.error("存储源 {} 删除文件 {} 异常.", storageId, fullPath, e); + } + return false; + } + + @Override + public boolean deleteFolder(String path, String name) { + return deleteFile(path, name); + } + + @Override + public boolean renameFile(String path, String name, String newName) { + String srcPath = StringUtils.concat(true, param.getBucketName(), param.getBasePath(), path, name); + String distPath = StringUtils.concat(true, param.getBasePath(), path, newName); + + try { + return upYun.moveFile(distPath, srcPath); + } catch (IOException | UpException e) { + log.error("存储源 {} 重命名文件 {} 至 {} 失败", storageId, srcPath, distPath, e); + } + + return false; + } + + @Override + public boolean renameFolder(String path, String name, String newName) { + throw new UnSupportedOperation("该存储类型不支持此操作"); + } + + @Override + public String getUploadUrl(String path, String name, Long size) { + UploadSignParam uploadSignParam = new UploadSignParam(); + uploadSignParam.setPath(StringUtils.concat(param.getBasePath(), path)); + uploadSignParam.setSize(size); + uploadSignParam.setName(name); + AuthModel authModel = generatorAuthModel(uploadSignParam); + return JSON.toJSONString(authModel); + } + + private static final int UPLOAD_SESSION_EXPIRATION = 1800; + + // 计算签名 + private String sign(String key, String secret, String method, String uri, String policy) { + String value = method + "&" + uri; + if (StrUtil.isNotEmpty(policy)) { + value = value + "&" + policy; + } + byte[] hmac = SecureUtil.hmacSha1(secret).digest(value); + String sign = Base64.getEncoder().encodeToString(hmac); + return "UPYUN " + key + ":" + sign; + } + + // 计算上传签名 + public AuthModel generatorAuthModel(UploadSignParam uploadSignParam) { + String policy = getPolicy(uploadSignParam); + + String method = "POST"; + String uri = "/" + param.getBucketName(); + + // 上传,处理,内容识别有存储 + String signature = sign(param.getUsername(), SecureUtil.md5(param.getPassword()), method, uri, policy); + + return new AuthModel("https://v0.api.upyun.com/" + param.getBucketName(), signature, policy); + } + + /** + * 获取上传 policy + * + * @param uploadSignParam + * 上传签名参数 + * + * @return 上传 policy + */ + private String getPolicy(UploadSignParam uploadSignParam) { + String bucketName = param.getBucketName(); + HashMap params = new HashMap<>(); + params.put(Params.BUCKET, bucketName); + // params.put(Params.SAVE_KEY, "/{filename}{.suffix}"); + params.put(Params.SAVE_KEY, StringUtils.concat(uploadSignParam.getPath(), uploadSignParam.getName())); + params.put(Params.EXPIRATION, System.currentTimeMillis() / 1000 + UPLOAD_SESSION_EXPIRATION); + params.put("content-length", uploadSignParam.getSize()); + params.put(Params.CONTENT_LENGTH_RANGE, "0," + uploadSignParam.getSize()); + return UpYunUtils.getPolicy(params); + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/home/service/impl/WebdavServiceImpl.java b/src/main/java/im/zhaojun/zfile/home/service/impl/WebdavServiceImpl.java new file mode 100644 index 0000000..2eccdf5 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/home/service/impl/WebdavServiceImpl.java @@ -0,0 +1,183 @@ +package im.zhaojun.zfile.home.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.core.util.URLUtil; +import com.github.sardine.DavResource; +import com.github.sardine.Sardine; +import com.github.sardine.SardineFactory; +import im.zhaojun.zfile.admin.model.param.WebdavParam; +import im.zhaojun.zfile.common.constant.ZFileConstant; +import im.zhaojun.zfile.common.exception.FileUploadException; +import im.zhaojun.zfile.common.exception.file.operator.GetFileInfoException; +import im.zhaojun.zfile.common.util.RequestHolder; +import im.zhaojun.zfile.common.util.StringUtils; +import im.zhaojun.zfile.home.model.enums.FileTypeEnum; +import im.zhaojun.zfile.home.model.enums.StorageTypeEnum; +import im.zhaojun.zfile.home.model.result.FileItemResult; +import im.zhaojun.zfile.home.service.base.ProxyTransferService; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.config.ConfigurableBeanFactory; +import org.springframework.context.annotation.Scope; +import org.springframework.core.io.Resource; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; + +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +/** + * @author zhaojun + */ +@Service +@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) +@Slf4j +public class WebdavServiceImpl extends ProxyTransferService { + + private Sardine sardine; + + private String getRequestPath(String... strs) { + return StringUtils.concat(param.getUrl(), StringUtils.encodeAllIgnoreSlashes(StringUtils.concat(strs))); + } + + @SneakyThrows + @Override + public void init() { + if (StrUtil.isAllNotEmpty(param.getUsername(), param.getPassword())) { + sardine = SardineFactory.begin(param.getUsername(), param.getPassword()); + } else { + sardine = SardineFactory.begin(); + } + + // 设置每次发请求都设置请求头,防止身份验证导致的无法上传成功. + String host = new URL(param.getUrl()).getHost(); + sardine.enablePreemptiveAuthentication(host); + + testConnection(); + isInitialized = true; + } + + @Override + public List fileList(String folderPath) throws Exception { + List resultList = new ArrayList<>(); + + String requestUrl = getRequestPath(folderPath); + String requestPath = URLUtil.getPath(requestUrl); + + List resources = sardine.list(requestUrl); + for (DavResource davResource : resources) { + if (Objects.equals(StringUtils.concat(requestPath, ZFileConstant.PATH_SEPARATOR), + StringUtils.concat(davResource.getPath(), ZFileConstant.PATH_SEPARATOR))) { + continue; + } + + FileItemResult fileItemResult = davResourceToFileItem(davResource, folderPath); + resultList.add(fileItemResult); + } + return resultList; + } + + + @Override + public StorageTypeEnum getStorageTypeEnum() { + return StorageTypeEnum.WEBDAV; + } + + + @Override + public FileItemResult getFileItem(String pathAndName) { + try { + String requestUrl = getRequestPath(pathAndName); + List resources = sardine.list(requestUrl); + String folderPath = StringUtils.getParentPath(pathAndName); + + DavResource davResource = CollUtil.getLast(resources); + return davResourceToFileItem(davResource, folderPath); + } catch (Exception e) { + throw new GetFileInfoException(storageId, pathAndName, e); + } + } + + @Override + public boolean newFolder(String path, String name) { + try { + sardine.createDirectory(getRequestPath(path, name)); + } catch (Exception e) { + log.error("webdav newFolder error, path: {}, name: {}", path, name, e); + return false; + } + return true; + } + + @Override + public boolean deleteFile(String path, String name) { + try { + sardine.delete(getRequestPath(path, name)); + return true; + } catch (IOException e) { + log.error("webdav deleteFile error, path: {}, name: {}", path, name, e); + return false; + } + } + + @Override + public boolean deleteFolder(String path, String name) { + return deleteFile(path, name); + } + + @Override + public boolean renameFolder(String path, String name, String newName) { + return renameFile(path, name, newName); + } + + @Override + public boolean renameFile(String path, String name, String newName) { + try { + sardine.move(getRequestPath(path, name), getRequestPath(path, newName)); + } catch (IOException e) { + log.error("webdav renameFile error, path: {}, name: {}, newName: {}", path, name, newName, e); + return false; + } + return true; + } + + @Override + public ResponseEntity downloadToStream(String pathAndName) { + RequestHolder.writeFile(s -> { + try { + return sardine.get(getRequestPath(pathAndName)); + } catch (IOException e) { + throw new RuntimeException(e); + } + }, pathAndName); + return null; + } + + public void uploadFile(String path, InputStream inputStream) { + try { + path = getRequestPath(path); + sardine.put(path, inputStream); + } catch (IOException e) { + throw new FileUploadException(getStorageTypeEnum(), storageId, path, e); + } + } + + private FileItemResult davResourceToFileItem(DavResource davResource, String folderPath) { + FileItemResult fileItemResult = new FileItemResult(); + fileItemResult.setName(davResource.getName()); + fileItemResult.setTime(davResource.getModified()); + fileItemResult.setSize(davResource.getContentLength()); + fileItemResult.setType(davResource.isDirectory() ? FileTypeEnum.FOLDER : FileTypeEnum.FILE); + fileItemResult.setPath(folderPath); + if (fileItemResult.getType() == FileTypeEnum.FILE) { + fileItemResult.setUrl(getDownloadUrl(StringUtils.concat(folderPath, fileItemResult.getName()))); + } + return fileItemResult; + } + +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/model/constant/LocalFileResponseTypeConstant.java b/src/main/java/im/zhaojun/zfile/model/constant/LocalFileResponseTypeConstant.java deleted file mode 100644 index 1f9c387..0000000 --- a/src/main/java/im/zhaojun/zfile/model/constant/LocalFileResponseTypeConstant.java +++ /dev/null @@ -1 +0,0 @@ -package im.zhaojun.zfile.model.constant; /** * 本地文件响应类型 - 常量 */ public class LocalFileResponseTypeConstant { /** * 不论什么格式的文件都进行下载操作 */ public static final String DOWNLOAD = "download"; /** * 使用浏览器默认处理,浏览器支持预览的格式,则进行预览,不支持的则进行下载 */ public static final String DEFAULT = "default"; } \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/model/constant/StorageConfigConstant.java b/src/main/java/im/zhaojun/zfile/model/constant/StorageConfigConstant.java deleted file mode 100644 index 3931a11..0000000 --- a/src/main/java/im/zhaojun/zfile/model/constant/StorageConfigConstant.java +++ /dev/null @@ -1,54 +0,0 @@ -package im.zhaojun.zfile.model.constant; - -/** - * @author zhaojun - */ -public class StorageConfigConstant { - - public static final String BUCKET_NAME_KEY = "bucketName"; - - public static final String SECRET_ID_KEY = "secretId"; - - public static final String ACCESS_KEY = "accessKey"; - - public static final String SECRET_KEY = "secretKey"; - - public static final String ENDPOINT_KEY = "endPoint"; - - public static final String BASE_PATH = "basePath"; - - public static final String DOMAIN_KEY = "domain"; - - public static final String USERNAME_KEY = "username"; - - public static final String PASSWORD_KEY = "password"; - - public static final String WEBDAV_USERNAME = "webdavUsername"; - - public static final String WEBDAV_PASSWORD = "webdavPassword"; - - public static final String WEBDAV_URL = "webdavUrl"; - - public static final String HOST_KEY = "host"; - - public static final String PORT_KEY = "port"; - - public static final String FILE_PATH_KEY = "filePath"; - - public static final String ACCESS_TOKEN_KEY = "accessToken"; - - public static final String REFRESH_TOKEN_KEY = "refreshToken"; - - public static final String SHAREPOINT_SITE_ID = "siteId"; - - public static final String SHAREPOINT_SITE_NAME = "siteName"; - - public static final String PATH_STYLE = "pathStyle"; - - public static final String IS_PRIVATE = "isPrivate"; - - public static final String PROXY_DOMAIN = "proxyDomain"; - - public static final String REGION_KEY = "region"; - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/model/constant/SystemConfigConstant.java b/src/main/java/im/zhaojun/zfile/model/constant/SystemConfigConstant.java deleted file mode 100644 index 2f6c87d..0000000 --- a/src/main/java/im/zhaojun/zfile/model/constant/SystemConfigConstant.java +++ /dev/null @@ -1,24 +0,0 @@ -package im.zhaojun.zfile.model.constant; - -/** - * @author zhaojun - */ -public class SystemConfigConstant { - - public static final String SITE_NAME = "siteName"; - - public static final String SEARCH_ENABLE = "searchEnable"; - - public static final String SEARCH_IGNORE_CASE = "searchIgnoreCase"; - - public static final String ENABLE_CACHE = "enableCache"; - - public static final String STORAGE_STRATEGY = "storageStrategy"; - - public static final String USERNAME = "username"; - - public static final String PASSWORD = "password"; - - public static final String DOMAIN = "domain"; - -} diff --git a/src/main/java/im/zhaojun/zfile/model/constant/ZFileConstant.java b/src/main/java/im/zhaojun/zfile/model/constant/ZFileConstant.java deleted file mode 100644 index 6f63446..0000000 --- a/src/main/java/im/zhaojun/zfile/model/constant/ZFileConstant.java +++ /dev/null @@ -1,85 +0,0 @@ -package im.zhaojun.zfile.model.constant; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; - -/** - * @author zhaojun - */ -@Configuration -public class ZFileConstant { - - public final static String USER_HOME = System.getProperty("user.home"); - - public static final Character PATH_SEPARATOR_CHAR = '/'; - - public static final String PATH_SEPARATOR = "/"; - - /** - * 直链前缀名称 - */ - public static String DIRECT_LINK_PREFIX = "directlink"; - - /** - * WebDav前缀 - */ - public static String WEB_DAV_PREFIX = "/webdav"; - - /** - * 系统产生的临时文件路径 - */ - public static String TMP_FILE_PATH = "/.zfile/tmp2/"; - - /** - * 页面文档文件 - */ - public static String README_FILE_NAME = "readme.md"; - - /** - * 密码文件 - */ - public static String PASSWORD_FILE_NAME = "password.txt"; - - /** - * 最大支持文件大小为 ? MB 的音乐文件解析封面, 歌手等信息. - */ - public static Long AUDIO_MAX_FILE_SIZE_MB = 1L; - - /** - * 最大支持文本文件大小为 ? KB 的文件内容. - */ - public static Long TEXT_MAX_FILE_SIZE_KB = 100L; - - @Autowired(required = false) - public void setTmpFilePath(@Value("${zfile.tmp.path}") String tmpFilePath) { - ZFileConstant.TMP_FILE_PATH = tmpFilePath; - } - - - @Autowired(required = false) - public void setHeaderFileName(@Value("${zfile.constant.readme}") String headerFileName) { - ZFileConstant.README_FILE_NAME = headerFileName; - } - - @Autowired(required = false) - public void setPasswordFileName(@Value("${zfile.constant.password}") String passwordFileName) { - ZFileConstant.PASSWORD_FILE_NAME = passwordFileName; - } - - @Autowired(required = false) - public void setAudioMaxFileSizeMb(@Value("${zfile.preview.audio.maxFileSizeMb}") Long maxFileSizeMb) { - ZFileConstant.AUDIO_MAX_FILE_SIZE_MB = maxFileSizeMb; - } - - @Autowired(required = false) - public void setTextMaxFileSizeMb(@Value("${zfile.preview.text.maxFileSizeKb}") Long maxFileSizeKb) { - ZFileConstant.TEXT_MAX_FILE_SIZE_KB = maxFileSizeKb; - } - - @Autowired(required = false) - public void setDirectLinkPrefix(@Value("${zfile.directLinkPrefix}") String directLinkPrefix) { - ZFileConstant.DIRECT_LINK_PREFIX = directLinkPrefix; - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/model/dto/AudioInfoDTO.java b/src/main/java/im/zhaojun/zfile/model/dto/AudioInfoDTO.java deleted file mode 100644 index dcf8577..0000000 --- a/src/main/java/im/zhaojun/zfile/model/dto/AudioInfoDTO.java +++ /dev/null @@ -1,27 +0,0 @@ -package im.zhaojun.zfile.model.dto; - -import lombok.Data; - -/** - * @author zhaojun - */ -@Data -public class AudioInfoDTO { - - private String title; - - private String artist; - - private String cover; - - private String src; - - public static AudioInfoDTO buildDefaultAudioInfoDTO() { - AudioInfoDTO audioInfoDTO = new AudioInfoDTO(); - audioInfoDTO.setTitle("未知歌曲"); - audioInfoDTO.setArtist("未知"); - audioInfoDTO.setCover("http://c.jun6.net/audio.png"); - return audioInfoDTO; - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/model/dto/CacheInfoDTO.java b/src/main/java/im/zhaojun/zfile/model/dto/CacheInfoDTO.java deleted file mode 100644 index 437c956..0000000 --- a/src/main/java/im/zhaojun/zfile/model/dto/CacheInfoDTO.java +++ /dev/null @@ -1,23 +0,0 @@ -package im.zhaojun.zfile.model.dto; - -import lombok.AllArgsConstructor; -import lombok.Data; - -import java.util.Set; - -/** - * @author zhaojun - */ -@Data -@AllArgsConstructor -public class CacheInfoDTO { - - private Integer cacheCount; - - private Integer hitCount; - - private Integer missCount; - - private Set cacheKeys; - -} diff --git a/src/main/java/im/zhaojun/zfile/model/dto/DriveConfigDTO.java b/src/main/java/im/zhaojun/zfile/model/dto/DriveConfigDTO.java deleted file mode 100644 index 127f813..0000000 --- a/src/main/java/im/zhaojun/zfile/model/dto/DriveConfigDTO.java +++ /dev/null @@ -1,39 +0,0 @@ -package im.zhaojun.zfile.model.dto; - -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import im.zhaojun.zfile.model.enums.StorageTypeEnum; -import im.zhaojun.zfile.model.enums.StorageTypeEnumJsonDeSerializerConvert; -import lombok.Data; - -/** - * @author zhaojun - */ -@Data -public class DriveConfigDTO { - - private Integer id; - - private String name; - - @JsonDeserialize(using = StorageTypeEnumJsonDeSerializerConvert.class) - private StorageTypeEnum type; - - private Boolean enable; - - private boolean enableCache; - - private boolean autoRefreshCache; - - private boolean searchEnable; - - private boolean searchIgnoreCase; - - private boolean searchContainEncryptedFile; - - private Integer orderNum; - - private StorageStrategyConfig storageStrategyConfig; - - private boolean defaultSwitchToImgMode; - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/model/dto/DriveListDTO.java b/src/main/java/im/zhaojun/zfile/model/dto/DriveListDTO.java deleted file mode 100644 index 9bac8b5..0000000 --- a/src/main/java/im/zhaojun/zfile/model/dto/DriveListDTO.java +++ /dev/null @@ -1,21 +0,0 @@ -package im.zhaojun.zfile.model.dto; - -import im.zhaojun.zfile.model.entity.DriveConfig; -import lombok.AllArgsConstructor; -import lombok.Data; - -import java.util.List; - -/** - * @author Zhao Jun - * 2021/5/26 15:17 - */ -@Data -@AllArgsConstructor -public class DriveListDTO { - - private List driveList; - - private Boolean isInstall; - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/model/dto/FileItemDTO.java b/src/main/java/im/zhaojun/zfile/model/dto/FileItemDTO.java deleted file mode 100644 index 52c9230..0000000 --- a/src/main/java/im/zhaojun/zfile/model/dto/FileItemDTO.java +++ /dev/null @@ -1,79 +0,0 @@ -package im.zhaojun.zfile.model.dto; - -import im.zhaojun.zfile.model.enums.FileTypeEnum; - -import java.io.Serializable; -import java.util.Date; - -/** - * @author zhaojun - */ -public class FileItemDTO implements Serializable { - - private String name; - private Date time; - private Long size; - private FileTypeEnum type; - private String path; - private String url; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public Date getTime() { - return time; - } - - public void setTime(Date time) { - this.time = time; - } - - public Long getSize() { - return size; - } - - public void setSize(Long size) { - this.size = size; - } - - public FileTypeEnum getType() { - return type; - } - - public void setType(FileTypeEnum type) { - this.type = type; - } - - public String getPath() { - return path; - } - - public void setPath(String path) { - this.path = path; - } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - @Override - public String toString() { - return "FileItemDTO{" + - "name='" + name + '\'' + - ", time=" + time + - ", size=" + size + - ", type=" + type + - ", path='" + path + '\'' + - ", url='" + url + '\'' + - '}'; - } -} diff --git a/src/main/java/im/zhaojun/zfile/model/dto/FileListDTO.java b/src/main/java/im/zhaojun/zfile/model/dto/FileListDTO.java deleted file mode 100644 index fae6d81..0000000 --- a/src/main/java/im/zhaojun/zfile/model/dto/FileListDTO.java +++ /dev/null @@ -1,18 +0,0 @@ -package im.zhaojun.zfile.model.dto; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.util.List; - -@Data -@NoArgsConstructor -@AllArgsConstructor -public class FileListDTO { - - private List files; - - private SystemFrontConfigDTO config; - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/model/dto/SharePointInfoVO.java b/src/main/java/im/zhaojun/zfile/model/dto/SharePointInfoVO.java deleted file mode 100644 index 5df3463..0000000 --- a/src/main/java/im/zhaojun/zfile/model/dto/SharePointInfoVO.java +++ /dev/null @@ -1,20 +0,0 @@ -package im.zhaojun.zfile.model.dto; - -import lombok.Data; - -@Data -public class SharePointInfoVO { - - private String type; - - private String accessToken; - - private String domainPrefix; - - private String siteType; - - private String siteName; - - private String domainType; - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/model/dto/StorageStrategyConfig.java b/src/main/java/im/zhaojun/zfile/model/dto/StorageStrategyConfig.java deleted file mode 100644 index 6abf134..0000000 --- a/src/main/java/im/zhaojun/zfile/model/dto/StorageStrategyConfig.java +++ /dev/null @@ -1,59 +0,0 @@ -package im.zhaojun.zfile.model.dto; - -import lombok.Data; - -/** - * @author zhaojun - */ -@Data -public class StorageStrategyConfig { - - private String endPoint; - - private String pathStyle; - - private Boolean isPrivate; - - private String accessKey; - - private String secretKey; - - private String bucketName; - - private String host; - - private String port; - - private String accessToken; - - private String refreshToken; - - private String secretId; - - private String filePath; - - private String username; - - private String password; - - private String domain; - - private String basePath; - - private String siteId; - - private String siteName; - - private String siteType; - - private String proxyDomain; - - private String region; - - private String webdavUsername; - - private String webdavPassword; - - private String webdavUrl; - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/model/dto/StorageStrategyDTO.java b/src/main/java/im/zhaojun/zfile/model/dto/StorageStrategyDTO.java deleted file mode 100644 index 548fa57..0000000 --- a/src/main/java/im/zhaojun/zfile/model/dto/StorageStrategyDTO.java +++ /dev/null @@ -1,23 +0,0 @@ -package im.zhaojun.zfile.model.dto; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * @author Zhao Jun - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class StorageStrategyDTO { - - private String key; - - private String description; - - @JsonProperty(defaultValue = "false") - private Boolean available; - -} diff --git a/src/main/java/im/zhaojun/zfile/model/dto/SystemConfigDTO.java b/src/main/java/im/zhaojun/zfile/model/dto/SystemConfigDTO.java deleted file mode 100644 index 650635c..0000000 --- a/src/main/java/im/zhaojun/zfile/model/dto/SystemConfigDTO.java +++ /dev/null @@ -1,55 +0,0 @@ -package im.zhaojun.zfile.model.dto; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import im.zhaojun.zfile.model.enums.StorageTypeEnum; -import im.zhaojun.zfile.model.enums.StorageTypeEnumSerializerConvert; -import lombok.Data; -import lombok.ToString; - -/** - * 系统设置传输类 - * - * @author zhaojun - */ -@ToString -@Data -public class SystemConfigDTO { - - @JsonIgnore - private Integer id; - - private String siteName; - - private String username; - - @JsonSerialize(using = StorageTypeEnumSerializerConvert.class) - private StorageTypeEnum storageStrategy; - - @JsonIgnore - private String password; - - private String domain; - - private String customJs; - - private String customCss; - - private String tableSize; - - private Boolean showOperator; - - private Boolean showDocument; - - private String announcement; - - private Boolean showAnnouncement; - - private String layout; - - private Boolean showLinkBtn; - - private Boolean showShortLink; - - private Boolean showPathLink; -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/model/dto/SystemFrontConfigDTO.java b/src/main/java/im/zhaojun/zfile/model/dto/SystemFrontConfigDTO.java deleted file mode 100644 index 6bd40a3..0000000 --- a/src/main/java/im/zhaojun/zfile/model/dto/SystemFrontConfigDTO.java +++ /dev/null @@ -1,56 +0,0 @@ -package im.zhaojun.zfile.model.dto; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import lombok.Data; -import lombok.ToString; - -/** - * 系统设置传输类 - * @author zhaojun - */ -@ToString -@Data -public class SystemFrontConfigDTO { - - @JsonIgnore - private Integer id; - - private String siteName; - - private Boolean searchEnable; - - private String username; - - private String domain; - - private String customJs; - - private String customCss; - - private String tableSize; - - private Boolean showOperator; - - private Boolean showDocument; - - private String announcement; - - private Boolean showAnnouncement; - - private String layout; - - private String readme; - - private Boolean debugMode; - - private Boolean defaultSwitchToImgMode; - - private Boolean showLinkBtn; - - private Boolean showShortLink; - - private Boolean showPathLink; - - private String directLinkPrefix; - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/model/entity/DriveConfig.java b/src/main/java/im/zhaojun/zfile/model/entity/DriveConfig.java deleted file mode 100644 index 43b2b20..0000000 --- a/src/main/java/im/zhaojun/zfile/model/entity/DriveConfig.java +++ /dev/null @@ -1,41 +0,0 @@ -package im.zhaojun.zfile.model.entity; - -import im.zhaojun.zfile.model.enums.StorageTypeEnum; -import lombok.Data; - -import javax.persistence.Entity; -import javax.persistence.Id; - -/** - * 驱动器 - * - * @author zhaojun - */ -@Entity(name = "DRIVER_CONFIG") -@Data -public class DriveConfig { - - @Id - private Integer id; - - private Boolean enable; - - private String name; - - private Boolean enableCache; - - private Boolean autoRefreshCache; - - private StorageTypeEnum type; - - private Boolean searchEnable; - - private Boolean searchIgnoreCase; - - private Boolean searchContainEncryptedFile; - - private Integer orderNum; - - private Boolean defaultSwitchToImgMode; - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/model/entity/FilterConfig.java b/src/main/java/im/zhaojun/zfile/model/entity/FilterConfig.java deleted file mode 100644 index 42fca8a..0000000 --- a/src/main/java/im/zhaojun/zfile/model/entity/FilterConfig.java +++ /dev/null @@ -1,25 +0,0 @@ -package im.zhaojun.zfile.model.entity; - -import lombok.Data; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; - -/** - * @author zhaojun - */ -@Entity(name = "FILTER_CONFIG") -@Data -public class FilterConfig { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Integer id; - - private Integer driveId; - - private String expression; - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/model/entity/ShortLinkConfig.java b/src/main/java/im/zhaojun/zfile/model/entity/ShortLinkConfig.java deleted file mode 100644 index 08b98fc..0000000 --- a/src/main/java/im/zhaojun/zfile/model/entity/ShortLinkConfig.java +++ /dev/null @@ -1,22 +0,0 @@ -package im.zhaojun.zfile.model.entity; - -import lombok.Data; - -import javax.persistence.*; -import java.util.Date; - -@Entity(name = "SHORT_LINK") -@Data -public class ShortLinkConfig { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Integer id; - - private String key; - - private String url; - - private Date createDate; - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/model/entity/StorageConfig.java b/src/main/java/im/zhaojun/zfile/model/entity/StorageConfig.java deleted file mode 100644 index 0021095..0000000 --- a/src/main/java/im/zhaojun/zfile/model/entity/StorageConfig.java +++ /dev/null @@ -1,43 +0,0 @@ -package im.zhaojun.zfile.model.entity; - -import im.zhaojun.zfile.model.enums.StorageTypeEnum; -import lombok.Data; -import lombok.NoArgsConstructor; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Lob; - -/** - * @author zhaojun - */ -@Entity(name = "STORAGE_CONFIG") -@Data -@NoArgsConstructor -public class StorageConfig { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Integer id; - - private StorageTypeEnum type; - - @Column(name = "k") - private String key; - - private String title; - - @Lob - private String value; - - private Integer driveId; - - public StorageConfig(String key, String title) { - this.key = key; - this.title = title; - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/model/entity/SystemConfig.java b/src/main/java/im/zhaojun/zfile/model/entity/SystemConfig.java deleted file mode 100644 index 8287080..0000000 --- a/src/main/java/im/zhaojun/zfile/model/entity/SystemConfig.java +++ /dev/null @@ -1,31 +0,0 @@ -package im.zhaojun.zfile.model.entity; - -import lombok.Data; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Lob; - -/** - * @author zhaojun - */ -@Entity(name = "SYSTEM_CONFIG") -@Data -public class SystemConfig { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Integer id; - - @Column(name = "k") - private String key; - - @Lob - private String value; - - private String remark; - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/model/entity/webdav/WebDavEntity.java b/src/main/java/im/zhaojun/zfile/model/entity/webdav/WebDavEntity.java deleted file mode 100644 index 94491a1..0000000 --- a/src/main/java/im/zhaojun/zfile/model/entity/webdav/WebDavEntity.java +++ /dev/null @@ -1,112 +0,0 @@ -package im.zhaojun.zfile.model.entity.webdav; - -import im.zhaojun.zfile.model.constant.ZFileConstant; -import im.zhaojun.zfile.model.dto.FileItemDTO; -import im.zhaojun.zfile.model.enums.FileTypeEnum; -import im.zhaojun.zfile.util.StringUtils; -import lombok.Data; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.UUID; - -/** - * WebDav实体 - * - * @author me - * @date 2022/4/9 - */ -@Data -public class WebDavEntity { - /** - * 唯一ID - */ - private UUID id; - /** - * 驱动器ID - */ - private Integer driveId; - /** - * 名称 - */ - private String name; - /** - * 创建时间 - */ - private Date createdDate; - /** - * 修改时间 - */ - private Date modifiedDate; - /** - * 是否是目录 - */ - private boolean isDirectory; - /** - * 父文件夹 - */ - private WebDavFolder parent; - - public WebDavEntity() { - } - - public WebDavEntity(String name, WebDavFolder parent) { - this.id = UUID.randomUUID(); - this.name = name; - this.parent = parent; - this.createdDate = new Date(); - this.modifiedDate = new Date(); - this.isDirectory = true; - } - - public WebDavEntity(UUID id, String name, Date createdDate, Date modifiedDate, - WebDavFolder parent) { - this.id = id; - this.name = name; - this.parent = parent; - this.createdDate = createdDate; - this.modifiedDate = modifiedDate; - this.isDirectory = true; - } - - /** - * 获取全路径 - */ - public String getFullPath() { - if (this.getParent() != null) { - final String parentFullPath = this.getParent().getFullPath(); - return StringUtils.removeDuplicateSeparator(parentFullPath + ZFileConstant.PATH_SEPARATOR + this.getName()); - } else { - return ZFileConstant.PATH_SEPARATOR; - } - } - - public static List convertFromFileItemDTO(List fileItemList, WebDavFolder parent) { - List result = new ArrayList<>(); - if (fileItemList == null || fileItemList.size() == 0) { - return result; - } - for (FileItemDTO each : fileItemList) { - WebDavEntity entity = convertFromFileItemDTO(each, parent); - result.add(entity); - } - return result; - } - - public static WebDavEntity convertFromFileItemDTO(FileItemDTO fileItemDTO, WebDavFolder parent) { - if (fileItemDTO == null) { - return null; - } - WebDavEntity entity; - if (fileItemDTO.getType() == FileTypeEnum.FOLDER) { - entity = new WebDavFolder(fileItemDTO.getName(), parent); - } else { - entity = new WebDavFile(fileItemDTO.getName(), fileItemDTO.getSize(), parent); - } - entity.setModifiedDate(fileItemDTO.getTime()); - entity.setDriveId(parent.getDriveId()); - return entity; - } - -} diff --git a/src/main/java/im/zhaojun/zfile/model/entity/webdav/WebDavFile.java b/src/main/java/im/zhaojun/zfile/model/entity/webdav/WebDavFile.java deleted file mode 100644 index dcaba60..0000000 --- a/src/main/java/im/zhaojun/zfile/model/entity/webdav/WebDavFile.java +++ /dev/null @@ -1,37 +0,0 @@ -package im.zhaojun.zfile.model.entity.webdav; - -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.util.Date; -import java.util.UUID; - -/** - * WebDav文件实体 - * - * @author me - * @date 2022/4/9 - */ -@EqualsAndHashCode(callSuper = true) -@Data -public class WebDavFile extends WebDavEntity { - /** - * 大小 - */ - private Long size; - /** - * 内容类型 - */ - private String contentType; - - public WebDavFile(String fileName, Long size, WebDavFolder parent) { - super(fileName, parent); - this.setSize(size); - this.setDirectory(false); - } - - public WebDavFile(UUID id, String name, Date createdDate, Date modifiedDate, WebDavFolder parent) { - super(id, name, createdDate, modifiedDate, parent); - this.setDirectory(false); - } -} diff --git a/src/main/java/im/zhaojun/zfile/model/entity/webdav/WebDavFolder.java b/src/main/java/im/zhaojun/zfile/model/entity/webdav/WebDavFolder.java deleted file mode 100644 index 5513216..0000000 --- a/src/main/java/im/zhaojun/zfile/model/entity/webdav/WebDavFolder.java +++ /dev/null @@ -1,41 +0,0 @@ -package im.zhaojun.zfile.model.entity.webdav; - -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.util.Date; -import java.util.UUID; - -/** - * WebDav文件夹实体 - * - * @author me - * @date 2022/4/9 - */ -@EqualsAndHashCode(callSuper = true) -@Data -public class WebDavFolder extends WebDavEntity { - public WebDavFolder(String folderName, WebDavFolder parent) { - super(folderName, parent); - } - - public WebDavFolder(String folderName, Integer driveId) { - super(folderName, null); - setDriveId(driveId); - } - - public WebDavFolder(UUID id, String name, Date createdDate, Date modifiedDate, WebDavFolder parent) { - super(id, name, createdDate, modifiedDate, parent); - } - - public WebDavFile addFile(String fileName, Long size) { - WebDavFile file = new WebDavFile(fileName, size, this); - file.setDirectory(false); - return file; - } - - public WebDavFolder addFolder(String folderName) { - return new WebDavFolder(folderName, this); - } - -} diff --git a/src/main/java/im/zhaojun/zfile/model/enums/FileTypeEnum.java b/src/main/java/im/zhaojun/zfile/model/enums/FileTypeEnum.java deleted file mode 100644 index 4f66a55..0000000 --- a/src/main/java/im/zhaojun/zfile/model/enums/FileTypeEnum.java +++ /dev/null @@ -1,32 +0,0 @@ -package im.zhaojun.zfile.model.enums; - -/** - * @author zhaojun - */ -public enum FileTypeEnum { - - /** - * 文件 - */ - FILE("File"), - - /** - * 文件夹 - */ - FOLDER("Folder"); - - private String value; - - FileTypeEnum(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/model/enums/StorageTypeEnumConvert.java b/src/main/java/im/zhaojun/zfile/model/enums/StorageTypeEnumConvert.java deleted file mode 100644 index cd65b75..0000000 --- a/src/main/java/im/zhaojun/zfile/model/enums/StorageTypeEnumConvert.java +++ /dev/null @@ -1,22 +0,0 @@ -package im.zhaojun.zfile.model.enums; - -import javax.persistence.AttributeConverter; -import javax.persistence.Converter; - -/** - * @author zhaojun - */ -@Converter(autoApply = true) -public class StorageTypeEnumConvert implements AttributeConverter { - - @Override - public String convertToDatabaseColumn(StorageTypeEnum attribute) { - return attribute.getKey(); - } - - @Override - public StorageTypeEnum convertToEntityAttribute(String dbData) { - return StorageTypeEnum.getEnum(dbData); - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/model/enums/StorageTypeEnumDeSerializerConvert.java b/src/main/java/im/zhaojun/zfile/model/enums/StorageTypeEnumDeSerializerConvert.java deleted file mode 100644 index 8f45250..0000000 --- a/src/main/java/im/zhaojun/zfile/model/enums/StorageTypeEnumDeSerializerConvert.java +++ /dev/null @@ -1,16 +0,0 @@ -package im.zhaojun.zfile.model.enums; - -import org.springframework.core.convert.converter.Converter; -import org.springframework.lang.NonNull; - -/** - * @author zhaojun - */ -public class StorageTypeEnumDeSerializerConvert implements Converter { - - @Override - public StorageTypeEnum convert(@NonNull String s) { - return StorageTypeEnum.getEnum(s); - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/model/enums/StorageTypeEnumJsonDeSerializerConvert.java b/src/main/java/im/zhaojun/zfile/model/enums/StorageTypeEnumJsonDeSerializerConvert.java deleted file mode 100644 index 84ae12a..0000000 --- a/src/main/java/im/zhaojun/zfile/model/enums/StorageTypeEnumJsonDeSerializerConvert.java +++ /dev/null @@ -1,18 +0,0 @@ -package im.zhaojun.zfile.model.enums; - -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; - -import java.io.IOException; - -/** - * @author zhaojun - */ -public class StorageTypeEnumJsonDeSerializerConvert extends JsonDeserializer { - - @Override - public StorageTypeEnum deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException { - return StorageTypeEnum.getEnum(jsonParser.getText()); - } -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/model/enums/StorageTypeEnumSerializerConvert.java b/src/main/java/im/zhaojun/zfile/model/enums/StorageTypeEnumSerializerConvert.java deleted file mode 100644 index 35da6fc..0000000 --- a/src/main/java/im/zhaojun/zfile/model/enums/StorageTypeEnumSerializerConvert.java +++ /dev/null @@ -1,18 +0,0 @@ -package im.zhaojun.zfile.model.enums; - -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -/** - * @author zhaojun - */ -public class StorageTypeEnumSerializerConvert extends JsonSerializer { - - @Override - public void serialize(StorageTypeEnum storageTypeEnum, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException { - jsonGenerator.writeString(storageTypeEnum.getKey()); - } -} diff --git a/src/main/java/im/zhaojun/zfile/model/support/FilePageModel.java b/src/main/java/im/zhaojun/zfile/model/support/FilePageModel.java deleted file mode 100644 index 395f508..0000000 --- a/src/main/java/im/zhaojun/zfile/model/support/FilePageModel.java +++ /dev/null @@ -1,20 +0,0 @@ -package im.zhaojun.zfile.model.support; - -import im.zhaojun.zfile.model.dto.FileItemDTO; -import lombok.AllArgsConstructor; -import lombok.Data; - -import java.util.List; - -/** - * @author zhaojun - */ -@Data -@AllArgsConstructor -public class FilePageModel { - - private int totalPage; - - private List fileList; - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/model/support/ResultBean.java b/src/main/java/im/zhaojun/zfile/model/support/ResultBean.java deleted file mode 100644 index bf66380..0000000 --- a/src/main/java/im/zhaojun/zfile/model/support/ResultBean.java +++ /dev/null @@ -1,97 +0,0 @@ -package im.zhaojun.zfile.model.support; - -import java.io.Serializable; - -/** - * @author zhaojun - */ -public class ResultBean implements Serializable { - - private static final long serialVersionUID = -8276264968757808344L; - - public static final int SUCCESS = 0; - - public static final int FAIL = -1; - - public static final int REQUIRED_PASSWORD = -2; - - public static final int INVALID_PASSWORD = -3; - - private String msg = "操作成功"; - - private int code = SUCCESS; - - private Object data; - - private ResultBean() { - super(); - } - - private ResultBean(String msg, Object data, int code) { - this.msg = msg; - this.data = data; - this.code = code; - } - - public static ResultBean success() { - return success("操作成功"); - } - - public static ResultBean success(String msg) { - return success(msg, null); - } - - public static ResultBean successData(Object data) { - return success("操作成功", data); - } - - public static ResultBean successPage(Object data, Long total) { - return success("操作成功", data); - } - - public static ResultBean success(Object data) { - return success("操作成功", data); - } - - public static ResultBean success(String msg, Object data) { - return new ResultBean(msg, data, SUCCESS); - } - - public static ResultBean error(String msg) { - ResultBean resultBean = new ResultBean(); - resultBean.setCode(FAIL); - resultBean.setMsg(msg); - return resultBean; - } - - public static ResultBean error(String msg, Integer code) { - ResultBean resultBean = new ResultBean(); - resultBean.setCode(code); - resultBean.setMsg(msg); - return resultBean; - } - - public String getMsg() { - return msg; - } - - public void setMsg(String msg) { - this.msg = msg; - } - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public Object getData() { - return data; - } - - public void setData(Object data) { - this.data = data; - } -} diff --git a/src/main/java/im/zhaojun/zfile/repository/DriverConfigRepository.java b/src/main/java/im/zhaojun/zfile/repository/DriverConfigRepository.java deleted file mode 100644 index 1bbc874..0000000 --- a/src/main/java/im/zhaojun/zfile/repository/DriverConfigRepository.java +++ /dev/null @@ -1,65 +0,0 @@ -package im.zhaojun.zfile.repository; - -import im.zhaojun.zfile.model.entity.DriveConfig; -import im.zhaojun.zfile.model.enums.StorageTypeEnum; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Modifying; -import org.springframework.data.jpa.repository.Query; -import org.springframework.stereotype.Repository; - -import java.util.List; - -/** - * @author zhaojun - */ -@Repository -public interface DriverConfigRepository extends JpaRepository { - - /** - * 根据存储策略类型获取所有驱动器 - * - * @param type - * 存储类型 - * - * @return 指定存储类型的驱动器 - */ - List findByType(StorageTypeEnum type); - - - /** - * 更新驱动器 ID 的排序值 - * - * @param orderNum - * 排序值 - * - * @param id - * 驱动器 ID - */ - @Modifying - @Query(value="update DRIVER_CONFIG set orderNum = :orderNum where id = :id") - void updateSetOrderNumById(Integer orderNum, Integer id); - - - /** - * 查询驱动器最大的 ID - * - * @return 驱动器最大 ID - */ - @Query(nativeQuery = true, value = "select max(id) max from DRIVER_CONFIG") - Integer selectMaxId(); - - - /** - * 更新驱动器 ID - * - * @param updateId - * 驱动器原 ID - * - * @param newId - * 驱动器新 ID - */ - @Modifying - @Query(value="update DRIVER_CONFIG set id = :newId where id = :updateId") - void updateId(Integer updateId, Integer newId); - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/repository/FilterConfigRepository.java b/src/main/java/im/zhaojun/zfile/repository/FilterConfigRepository.java deleted file mode 100644 index e8fc7bc..0000000 --- a/src/main/java/im/zhaojun/zfile/repository/FilterConfigRepository.java +++ /dev/null @@ -1,44 +0,0 @@ -package im.zhaojun.zfile.repository; - -import im.zhaojun.zfile.model.entity.FilterConfig; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Modifying; -import org.springframework.data.jpa.repository.Query; -import org.springframework.stereotype.Repository; - -import java.util.List; - -/** - * @author zhaojun - */ -@Repository -public interface FilterConfigRepository extends JpaRepository { - - /** - * 获取驱动器下的所有规则 - * @param driveId - * 驱动器 ID - */ - List findByDriveId(Integer driveId); - - /** - * 根据驱动器 ID 删除其所有的规则 - * @param driveId - * 驱动器 ID - */ - void deleteByDriveId(Integer driveId); - - - /** - * 更新驱动器 ID 对应的参数设置为新的驱动器 ID - * - * @param updateId - * 驱动器原 ID - * - * @param newId - * 驱动器新 ID - */ - @Modifying - @Query(value="update FILTER_CONFIG set driveId = :newId where driveId = :updateId") - void updateDriveId(Integer updateId, Integer newId); -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/repository/ShortLinkConfigRepository.java b/src/main/java/im/zhaojun/zfile/repository/ShortLinkConfigRepository.java deleted file mode 100644 index 4cf3357..0000000 --- a/src/main/java/im/zhaojun/zfile/repository/ShortLinkConfigRepository.java +++ /dev/null @@ -1,75 +0,0 @@ -package im.zhaojun.zfile.repository; - -import im.zhaojun.zfile.model.entity.ShortLinkConfig; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.data.jpa.repository.Modifying; -import org.springframework.data.jpa.repository.Query; -import org.springframework.stereotype.Repository; - -import java.util.Date; - -/** - * @author zhaojun - */ -@Repository -public interface ShortLinkConfigRepository extends JpaRepository, JpaSpecificationExecutor { - - /** - * 获取驱动器下的所有规则 - * - * @param key - * 短链 Key - */ - ShortLinkConfig findFirstByKey(String key); - - @Query(nativeQuery = true, - value = " select * from SHORT_LINK where " + - " key like concat('%', :key,'%') " + - " and url like concat('%', :url,'%') " + - " and (:dateFrom is null or create_date >= :dateFrom" + - " and (:dateTo is null or create_date <= :dateTo) ", - countQuery = " select count(1) from SHORT_LINK where " + - " key like concat('%', :key,'%') " + - " and url like concat('%', :url,'%') " + - " and (:dateFrom is null or create_date >= :dateFrom" + - " and (:dateTo is null or create_date <= :dateTo) " - ) - // @Query(nativeQuery = true, - // value = " select * from SHORT_LINK where " + - // " key like concat('%', :key,'%') " + - // " and url like concat('%', :url,'%') " + - // " and (:dateFrom is null or date_format(create_date, '%Y-%m-%d') >= date_format(:dateFrom, '%Y-%m-%d'))" + - // " and (:dateTo is null or date_format(create_date, '%Y-%m-%d') <= date_format(:dateTo, '%Y-%m-%d')) ) ", - // countQuery = " select count(1) from SHORT_LINK where " + - // " key like concat('%', :key,'%') " + - // " and url like concat('%', :url,'%') " + - // " and (:dateFrom is null or date_format(create_date, '%Y-%m-%d') >= date_format(:dateFrom, '%Y-%m-%d'))" + - // " and (:dateTo is null or date_format(create_date, '%Y-%m-%d') <= date_format(:dateTo, '%Y-%m-%d')) ) " - // ) - Page findByPage(String key, String url, Date dateFrom, Date dateTo, Pageable pageable); - - /** - * 获取驱动器下的所有规则 - * - * @param url - * 短链 URL - */ - ShortLinkConfig findFirstByUrl(String url); - - - /** - * 更新驱动器 ID - * - * @param updateSubPath - * 原路径部分名称 - * - * @param newSubPath - * 修改后路径部分名称 - */ - @Modifying - @Query(value="update SHORT_LINK set url = replace(url, :updateSubPath, :newSubPath)") - void updateUrlDriveId(String updateSubPath, String newSubPath); -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/repository/StorageConfigRepository.java b/src/main/java/im/zhaojun/zfile/repository/StorageConfigRepository.java deleted file mode 100644 index 834ae50..0000000 --- a/src/main/java/im/zhaojun/zfile/repository/StorageConfigRepository.java +++ /dev/null @@ -1,87 +0,0 @@ -package im.zhaojun.zfile.repository; - -import im.zhaojun.zfile.model.entity.StorageConfig; -import im.zhaojun.zfile.model.enums.StorageTypeEnum; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Modifying; -import org.springframework.data.jpa.repository.Query; -import org.springframework.stereotype.Repository; - -import java.util.List; - -/** - * @author zhaojun - */ -@Repository -public interface StorageConfigRepository extends JpaRepository { - - /** - * 根据存储类型找对应的配置信息 - * - * @param type - * 存储类型 - * - * @return 此类型所有的配置信息 - */ - List findByTypeOrderById(StorageTypeEnum type); - - - /** - * 根据存储类型找对应的配置信息 - * - * @param driveId - * 驱动器 ID - * - * @return 此驱动器所有的配置信息 - */ - List findByDriveIdOrderById(Integer driveId); - - - /** - * 根据驱动器找到对应的配置信息 - * - * @param driveId - * 驱动器 ID - * - * @return 此驱动器所有的配置信息 - */ - List findByDriveId(Integer driveId); - - - /** - * 删除指定驱动器对应的配置信息 - * - * @param driveId - * 驱动器 ID - */ - void deleteByDriveId(Integer driveId); - - - /** - * 查找某个驱动器的某个 KEY 的值 - * - * @param driveId - * 驱动器 - * - * @param key - * KEY 值 - * - * @return KEY 对应的对象 - */ - StorageConfig findByDriveIdAndKey(Integer driveId, String key); - - - /** - * 更新驱动器 ID 对应的参数设置为新的驱动器 ID - * - * @param updateId - * 驱动器原 ID - * - * @param newId - * 驱动器新 ID - */ - @Modifying - @Query(value="update STORAGE_CONFIG set driveId = :newId where driveId = :updateId") - void updateDriveId(Integer updateId, Integer newId); - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/repository/SystemConfigRepository.java b/src/main/java/im/zhaojun/zfile/repository/SystemConfigRepository.java deleted file mode 100644 index 6343722..0000000 --- a/src/main/java/im/zhaojun/zfile/repository/SystemConfigRepository.java +++ /dev/null @@ -1,23 +0,0 @@ -package im.zhaojun.zfile.repository; - -import im.zhaojun.zfile.model.entity.SystemConfig; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -/** - * @author zhaojun - */ -@Repository -public interface SystemConfigRepository extends JpaRepository { - - /** - * 查找系统设置中, 某个设置项对应的值 - * - * @param key - * 设置项 - * - * @return 设置值 - */ - SystemConfig findByKey(String key); - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/schedule/OneDriveTokenRefreshSchedule.java b/src/main/java/im/zhaojun/zfile/schedule/OneDriveTokenRefreshSchedule.java deleted file mode 100644 index 105b2d0..0000000 --- a/src/main/java/im/zhaojun/zfile/schedule/OneDriveTokenRefreshSchedule.java +++ /dev/null @@ -1,63 +0,0 @@ -package im.zhaojun.zfile.schedule; - -import com.alibaba.fastjson.JSON; -import im.zhaojun.zfile.context.DriveContext; -import im.zhaojun.zfile.model.entity.DriveConfig; -import im.zhaojun.zfile.model.enums.StorageTypeEnum; -import im.zhaojun.zfile.service.DriveConfigService; -import im.zhaojun.zfile.service.base.AbstractOneDriveServiceBase; -import lombok.extern.slf4j.Slf4j; -import org.springframework.context.annotation.Configuration; -import org.springframework.scheduling.annotation.EnableScheduling; -import org.springframework.scheduling.annotation.Scheduled; - -import javax.annotation.Resource; -import java.util.List; - -/** - * 计划任务工具类 - * @author zhaojun - */ -@Configuration -@EnableScheduling -@Slf4j -public class OneDriveTokenRefreshSchedule { - - @Resource - private DriveConfigService driveConfigService; - - @Resource - private DriveContext driveContext; - - /** - * 项目启动 30 秒后, 每 15 分钟执行一次刷新 OneDrive Token 的定时任务. - */ - @Scheduled(fixedRate = 1000 * 60 * 10, initialDelay = 1000 * 30) - public void autoRefreshOneDriveToken() { - - try { - log.debug("尝试调用 OneDrive 自动刷新 AccessToken 定时任务"); - - List driveConfigList = driveConfigService.findByType(StorageTypeEnum.ONE_DRIVE); - driveConfigList.addAll(driveConfigService.findByType(StorageTypeEnum.ONE_DRIVE_CHINA)); - driveConfigList.addAll(driveConfigService.findByType(StorageTypeEnum.SHAREPOINT_DRIVE)); - driveConfigList.addAll(driveConfigService.findByType(StorageTypeEnum.SHAREPOINT_DRIVE_CHINA)); - - - driveConfigList.forEach(driveConfig -> { - try { - AbstractOneDriveServiceBase driveService = (AbstractOneDriveServiceBase) driveContext.get(driveConfig.getId()); - driveService.refreshOneDriveToken(); - log.info("尝试刷新 OneDrive Token, DriveInfo: {}", JSON.toJSONString(driveConfig)); - } catch (Exception e) { - log.error("刷新 OneDrive Token 失败, DriveInfo: {}", JSON.toJSONString(driveConfig), e); - } - }); - - } catch (Throwable e) { - log.error("尝试调用 OneDrive 自动刷新 AccessToken 定时任务出现未知异常", e); - } - - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/service/DriveConfigService.java b/src/main/java/im/zhaojun/zfile/service/DriveConfigService.java deleted file mode 100644 index 72fe8c7..0000000 --- a/src/main/java/im/zhaojun/zfile/service/DriveConfigService.java +++ /dev/null @@ -1,414 +0,0 @@ -package im.zhaojun.zfile.service; - -import com.alibaba.fastjson.JSONObject; -import im.zhaojun.zfile.cache.ZFileCache; -import im.zhaojun.zfile.context.DriveContext; -import im.zhaojun.zfile.context.StorageTypeContext; -import im.zhaojun.zfile.exception.InitializeDriveException; -import im.zhaojun.zfile.model.constant.StorageConfigConstant; -import im.zhaojun.zfile.model.constant.ZFileConstant; -import im.zhaojun.zfile.model.dto.CacheInfoDTO; -import im.zhaojun.zfile.model.dto.DriveConfigDTO; -import im.zhaojun.zfile.model.dto.StorageStrategyConfig; -import im.zhaojun.zfile.model.entity.DriveConfig; -import im.zhaojun.zfile.model.entity.StorageConfig; -import im.zhaojun.zfile.model.enums.StorageTypeEnum; -import im.zhaojun.zfile.repository.DriverConfigRepository; -import im.zhaojun.zfile.repository.FilterConfigRepository; -import im.zhaojun.zfile.repository.ShortLinkConfigRepository; -import im.zhaojun.zfile.repository.StorageConfigRepository; -import im.zhaojun.zfile.service.base.AbstractBaseFileService; -import im.zhaojun.zfile.util.StringUtils; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.BeanUtils; -import org.springframework.data.domain.Example; -import org.springframework.data.domain.Sort; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import javax.annotation.Resource; -import java.lang.reflect.Field; -import java.util.List; -import java.util.Objects; -import java.util.Set; - -/** - * 驱动器 Service 类 - * @author zhaojun - */ -@Slf4j -@Service -public class DriveConfigService { - - @Resource - private DriverConfigRepository driverConfigRepository; - - @Resource - private StorageConfigRepository storageConfigRepository; - - @Resource - private FilterConfigRepository filterConfigRepository; - - @Resource - private ShortLinkConfigRepository shortLinkConfigRepository; - - @Resource - private DriveContext driveContext; - - @Resource - private ZFileCache zFileCache; - - public static final Class STORAGE_STRATEGY_CONFIG_CLASS = StorageStrategyConfig.class; - - - /** - * 获取所有驱动器列表 - * - * @return 驱动器列表 - */ - public List list() { - Sort sort = Sort.by(Sort.Direction.ASC,"orderNum"); - return driverConfigRepository.findAll(sort); - } - - - /** - * 获取所有已启用的驱动器列表 - * - * @return 已启用的驱动器列表 - */ - public List listOnlyEnable() { - DriveConfig driveConfig = new DriveConfig(); - driveConfig.setEnable(true); - Example example = Example.of(driveConfig); - Sort sort = Sort.by(Sort.Direction.ASC,"orderNum"); - return driverConfigRepository.findAll(example, sort); - } - - - /** - * 获取指定驱动器设置 - * - * @param id - * 驱动器 ID - * - * @return 驱动器设置 - */ - public DriveConfig findById(Integer id) { - return driverConfigRepository.findById(id).orElse(null); - } - - - /** - * 获取指定驱动器 DTO 对象, 此对象包含详细的参数设置. - * - * @param id - * 驱动器 ID - * - * @return 驱动器 DTO - */ - public DriveConfigDTO findDriveConfigDTOById(Integer id) { - DriveConfig driveConfig = driverConfigRepository.getOne(id); - - DriveConfigDTO driveConfigDTO = new DriveConfigDTO(); - - List storageConfigList = storageConfigRepository.findByDriveId(driveConfig.getId()); - Boolean defaultSwitchToImgMode = driveConfig.getDefaultSwitchToImgMode(); - if (defaultSwitchToImgMode == null) { - driveConfig.setDefaultSwitchToImgMode(false); - } - BeanUtils.copyProperties(driveConfig, driveConfigDTO); - - StorageStrategyConfig storageStrategyConfig = new StorageStrategyConfig(); - for (StorageConfig storageConfig : storageConfigList) { - String key = storageConfig.getKey(); - String value = storageConfig.getValue(); - - Field declaredField; - try { - declaredField = STORAGE_STRATEGY_CONFIG_CLASS.getDeclaredField(key); - declaredField.setAccessible(true); - if (Objects.equals(StorageConfigConstant.IS_PRIVATE, key)) { - declaredField.set(storageStrategyConfig, Boolean.valueOf(value)); - } else { - declaredField.set(storageStrategyConfig, value); - } - } catch (NoSuchFieldException | IllegalAccessException e) { - log.error("通过反射, 将字段 {} 注入 DriveConfigDTO 时出现异常:", key, e); - } - - } - - driveConfigDTO.setStorageStrategyConfig(storageStrategyConfig); - return driveConfigDTO; - } - - - /** - * 获取指定驱动器的存储策略. - * - * @param id - * 驱动器 ID - * - * @return 驱动器对应的存储策略. - */ - public StorageTypeEnum findStorageTypeById(Integer id) { - return driverConfigRepository.findById(id).get().getType(); - } - - - /** - * 更新驱动器设置 - * @param driveConfig 驱动器设置 - */ - public void updateDriveConfig(DriveConfig driveConfig) { - driverConfigRepository.save(driveConfig); - } - - - /** - * 保存驱动器基本信息及其对应的参数设置 - * - * @param driveConfigDTO 驱动器 DTO 对象 - */ - @Transactional(rollbackFor = Exception.class) - public void saveDriveConfigDTO(DriveConfigDTO driveConfigDTO) { - - // 判断是新增还是修改 - boolean updateFlag = driveConfigDTO.getId() != null; - - // 保存基本信息 - DriveConfig driveConfig = new DriveConfig(); - StorageTypeEnum storageType = driveConfigDTO.getType(); - BeanUtils.copyProperties(driveConfigDTO, driveConfig); - - if (driveConfig.getId() == null) { - Integer nextId = selectNextId(); - driveConfig.setId(nextId); - } - driverConfigRepository.save(driveConfig); - - // 保存存储策略设置. - StorageStrategyConfig storageStrategyConfig = driveConfigDTO.getStorageStrategyConfig(); - - AbstractBaseFileService storageTypeService = StorageTypeContext.getStorageTypeService(storageType); - - List storageConfigList = storageTypeService.storageStrategyConfigList(); - storageConfigRepository.deleteByDriveId(driveConfigDTO.getId()); - - for (StorageConfig storageConfig : storageConfigList) { - String key = storageConfig.getKey(); - - try { - Field field = STORAGE_STRATEGY_CONFIG_CLASS.getDeclaredField(key); - field.setAccessible(true); - Object o = field.get(storageStrategyConfig); - String value = o == null ? null : o.toString(); - storageConfig.setValue(value); - storageConfig.setType(storageType); - storageConfig.setDriveId(driveConfig.getId()); - } catch (IllegalAccessException | NoSuchFieldException e) { - log.error("通过反射, 从 StorageStrategyConfig 中获取字段 {} 时出现异常:", key, e); - } - - } - storageConfigRepository.saveAll(storageConfigList); - - driveContext.init(driveConfig.getId()); - - AbstractBaseFileService driveService = driveContext.get(driveConfig.getId()); - if (driveService.getIsUnInitialized()) { - throw new InitializeDriveException("初始化异常, 请检查配置是否正确."); - } - - if (driveConfig.getAutoRefreshCache()) { - startAutoCacheRefresh(driveConfig.getId()); - } else if (updateFlag){ - stopAutoCacheRefresh(driveConfig.getId()); - } - - } - - - /** - * 查询驱动器最大的 ID - * - * @return 驱动器最大 ID - */ - public Integer selectNextId() { - Integer maxId = driverConfigRepository.selectMaxId(); - if (maxId == null) { - return 1; - } else { - return maxId + 1; - } - } - - - /** - * 更新驱动器 ID - * - * @param updateId - * 驱动器原 ID - * - * @param newId - * 驱动器新 ID - */ - @Transactional - public void updateId(Integer updateId, Integer newId) { - zFileCache.clear(updateId); - driverConfigRepository.updateId(updateId, newId); - storageConfigRepository.updateDriveId(updateId, newId); - filterConfigRepository.updateDriveId(updateId, newId); - - - String updateSubPath = StringUtils.concatUrl(StringUtils.DELIMITER_STR, ZFileConstant.DIRECT_LINK_PREFIX, String.valueOf(updateId)); - String newSubPath = StringUtils.concatUrl(StringUtils.DELIMITER_STR, ZFileConstant.DIRECT_LINK_PREFIX, String.valueOf(newId)); - - shortLinkConfigRepository.updateUrlDriveId(updateSubPath, newSubPath); - driveContext.updateDriveId(updateId, newId); - } - - - /** - * 删除指定驱动器设置, 会级联删除其参数设置 - * - * @param id - * 驱动器 ID - */ - @Transactional(rollbackFor = Exception.class) - public void deleteById(Integer id) { - if (log.isDebugEnabled()) { - log.debug("尝试删除驱动器, driveId: {}", id); - } - DriveConfig driveConfig = driverConfigRepository.getOne(id); - driverConfigRepository.deleteById(id); - storageConfigRepository.deleteByDriveId(id); - if (driveConfig.getEnableCache()) { - zFileCache.stopAutoCacheRefresh(id); - zFileCache.clear(id); - } - driveContext.destroy(id); - if (log.isDebugEnabled()) { - log.debug("尝试删除驱动器成功, 已清理相关数据, driveId: {}", id); - } - } - - - /** - * 根据存储策略类型获取所有驱动器 - * - * @param type - * 存储类型 - * - * @return 指定存储类型的驱动器 - */ - public List findByType(StorageTypeEnum type) { - return driverConfigRepository.findByType(type); - } - - - /** - * 更新指定驱动器的缓存启用状态 - * - * @param driveId - * 驱动器 ID - * - * @param cacheEnable - * 是否启用缓存 - */ - public void updateCacheStatus(Integer driveId, Boolean cacheEnable) { - DriveConfig driveConfig = findById(driveId); - if (driveConfig != null) { - driveConfig.setEnableCache(cacheEnable); - driverConfigRepository.save(driveConfig); - } - } - - - /** - * 获取指定驱动器的缓存信息 - * @param driveId - * 驱动器 ID - * @return 缓存信息 - */ - public CacheInfoDTO findCacheInfo(Integer driveId) { - int hitCount = zFileCache.getHitCount(driveId); - int missCount = zFileCache.getMissCount(driveId); - Set keys = zFileCache.keySet(driveId); - int cacheCount = keys.size(); - return new CacheInfoDTO(cacheCount, hitCount, missCount, keys); - } - - - /** - * 刷新指定 key 的缓存: - * 1. 清空此 key 的缓存. - * 2. 重新调用方法写入缓存. - * - * @param driveId - * 驱动器 ID - * - * @param key - * 缓存 key (文件夹名称) - */ - public void refreshCache(Integer driveId, String key) throws Exception { - if (log.isDebugEnabled()) { - log.debug("手动刷新缓存 driveId: {}, key: {}", driveId, key); - } - zFileCache.remove(driveId, key); - AbstractBaseFileService baseFileService = driveContext.get(driveId); - baseFileService.fileList(key); - } - - - /** - * 开启缓存自动刷新 - * - * @param driveId - * 驱动器 ID - */ - public void startAutoCacheRefresh(Integer driveId) { - DriveConfig driveConfig = findById(driveId); - driveConfig.setAutoRefreshCache(true); - driverConfigRepository.save(driveConfig); - zFileCache.startAutoCacheRefresh(driveId); - } - - - /** - * 停止缓存自动刷新 - * - * @param driveId - * 驱动器 ID - */ - public void stopAutoCacheRefresh(Integer driveId) { - DriveConfig driveConfig = findById(driveId); - driveConfig.setAutoRefreshCache(false); - driverConfigRepository.save(driveConfig); - zFileCache.stopAutoCacheRefresh(driveId); - } - - /** - * 清理缓存 - * - * @param driveId - * 驱动器 ID - */ - public void clearCache(Integer driveId) { - zFileCache.clear(driveId); - } - - - /** - * 交换驱动器排序 - */ - @Transactional(rollbackFor = Exception.class) - public void saveDriveDrag(List driveConfigs) { - for (int i = 0; i < driveConfigs.size(); i++) { - JSONObject item = driveConfigs.get(i); - driverConfigRepository.updateSetOrderNumById(i, item.getInteger("id")); - } - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/service/FilterConfigService.java b/src/main/java/im/zhaojun/zfile/service/FilterConfigService.java deleted file mode 100644 index 4252adf..0000000 --- a/src/main/java/im/zhaojun/zfile/service/FilterConfigService.java +++ /dev/null @@ -1,68 +0,0 @@ -package im.zhaojun.zfile.service; - -import cn.hutool.core.util.StrUtil; -import im.zhaojun.zfile.model.entity.FilterConfig; -import im.zhaojun.zfile.repository.FilterConfigRepository; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import javax.annotation.Resource; -import java.nio.file.FileSystems; -import java.nio.file.PathMatcher; -import java.nio.file.Paths; -import java.util.List; - -/** - * @author zhaojun - */ -@Slf4j -@Service -public class FilterConfigService { - - @Resource - private FilterConfigRepository filterConfigRepository; - - public List findByDriveId(Integer driveId) { - return filterConfigRepository.findByDriveId(driveId); - } - - @Transactional(rollbackFor = Exception.class) - public void batchSave(List filterConfigList, Integer driveId) { - filterConfigRepository.deleteByDriveId(driveId); - filterConfigRepository.saveAll(filterConfigList); - } - - /** - * 指定驱动器下的文件名称, 根据过滤表达式判断是否会显示, 如果符合任意一条表达式, 则不显示, 反之则显示. - * @param driveId - * 驱动器 ID - * @param fileName - * 文件名 - * @return 是否显示 - */ - public boolean filterResultIsHidden(Integer driveId, String fileName) { - List filterConfigList = findByDriveId(driveId); - - for (FilterConfig filterConfig : filterConfigList) { - String expression = filterConfig.getExpression(); - if (StrUtil.isEmpty(expression)) { - return false; - } - - try { - PathMatcher pathMatcher = FileSystems.getDefault().getPathMatcher("glob:" + expression); - boolean match = pathMatcher.matches(Paths.get(fileName)); - if (match) { - return true; - } - log.debug("regex: {}, name {}, contains: {}", expression, fileName, match); - } catch (Exception e) { - log.debug("regex: {}, name {}, parse error, skip expression", expression, fileName); - } - } - - return false; - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/service/ShortLinkConfigService.java b/src/main/java/im/zhaojun/zfile/service/ShortLinkConfigService.java deleted file mode 100644 index eed06b9..0000000 --- a/src/main/java/im/zhaojun/zfile/service/ShortLinkConfigService.java +++ /dev/null @@ -1,84 +0,0 @@ -package im.zhaojun.zfile.service; - -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.StrUtil; -import im.zhaojun.zfile.model.entity.ShortLinkConfig; -import im.zhaojun.zfile.repository.ShortLinkConfigRepository; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -import org.springframework.data.domain.Pageable; -import org.springframework.data.domain.Sort; -import org.springframework.data.jpa.domain.Specification; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; -import javax.persistence.criteria.Predicate; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Optional; - -@Service -public class ShortLinkConfigService { - - @Resource - private ShortLinkConfigRepository shortLinkConfigRepository; - - public ShortLinkConfig findByKey(String key) { - return shortLinkConfigRepository.findFirstByKey(key); - } - - public ShortLinkConfig findById(Integer id) { - Optional shortLinkConfigOptional = shortLinkConfigRepository.findById(id); - return shortLinkConfigOptional.orElse(null); - } - - public ShortLinkConfig findByUrl(String url) { - return shortLinkConfigRepository.findFirstByUrl(url); - } - - public void save(ShortLinkConfig shortLinkConfig) { - shortLinkConfig.setCreateDate(new Date()); - shortLinkConfigRepository.save(shortLinkConfig); - } - - public Page find(String key, - String url, - String dateFrom, - String dateTo, - Integer page, - Integer limit, - String orderBy, - String orderDirection) { - - Sort sort = Sort.by("desc".equals(orderDirection) ? Sort.Direction.DESC : Sort.Direction.ASC, orderBy); - Pageable pageable = PageRequest.of(page - 1, limit, sort); - - Specification specification = (root, criteriaQuery, criteriaBuilder) -> { - List predicates = new ArrayList<>(); - - if (StrUtil.isNotEmpty(dateFrom) && StrUtil.isNotEmpty(dateTo)) { - predicates.add(criteriaBuilder.between(root.get("createDate"), - DateUtil.parseDateTime(dateFrom + " 00:00:00"), - DateUtil.parseDateTime(dateTo + " 23:59:59"))); - } - - if (StrUtil.isNotEmpty(key)) { - predicates.add(criteriaBuilder.like(root.get("key"), "%" + key + '%')); - } - - if (StrUtil.isNotEmpty(url)) { - predicates.add(criteriaBuilder.like(root.get("url"), "%" + url + '%')); - } - - return criteriaBuilder.and(predicates.toArray(new Predicate[predicates.size()])); - }; - return shortLinkConfigRepository.findAll(specification, pageable); - } - - public void deleteById(Integer id) { - shortLinkConfigRepository.deleteById(id); - } - - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/service/StorageConfigService.java b/src/main/java/im/zhaojun/zfile/service/StorageConfigService.java deleted file mode 100644 index 950b1e5..0000000 --- a/src/main/java/im/zhaojun/zfile/service/StorageConfigService.java +++ /dev/null @@ -1,60 +0,0 @@ -package im.zhaojun.zfile.service; - -import im.zhaojun.zfile.model.entity.StorageConfig; -import im.zhaojun.zfile.model.enums.StorageTypeEnum; -import im.zhaojun.zfile.repository.StorageConfigRepository; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * @author zhaojun - */ -@Service -public class StorageConfigService { - - @Resource - private StorageConfigRepository storageConfigRepository; - - - public List selectStorageConfigByType(StorageTypeEnum storageTypeEnum) { - return storageConfigRepository.findByTypeOrderById(storageTypeEnum); - } - - - public List selectStorageConfigByDriveId(Integer driveId) { - return storageConfigRepository.findByDriveIdOrderById(driveId); - } - - - public StorageConfig findByDriveIdAndKey(Integer driveId, String key) { - return storageConfigRepository.findByDriveIdAndKey(driveId, key); - } - - - public Map selectStorageConfigMapByKey(StorageTypeEnum storageTypeEnum) { - Map map = new HashMap<>(24); - for (StorageConfig storageConfig : selectStorageConfigByType(storageTypeEnum)) { - map.put(storageConfig.getKey(), storageConfig); - } - return map; - } - - - public Map selectStorageConfigMapByDriveId(Integer driveId) { - Map map = new HashMap<>(24); - for (StorageConfig storageConfig : selectStorageConfigByDriveId(driveId)) { - map.put(storageConfig.getKey(), storageConfig); - } - return map; - } - - - public void updateStorageConfig(List storageConfigList) { - storageConfigRepository.saveAll(storageConfigList); - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/service/SystemConfigService.java b/src/main/java/im/zhaojun/zfile/service/SystemConfigService.java deleted file mode 100644 index bbd0d65..0000000 --- a/src/main/java/im/zhaojun/zfile/service/SystemConfigService.java +++ /dev/null @@ -1,187 +0,0 @@ -package im.zhaojun.zfile.service; - -import cn.hutool.core.convert.Convert; -import cn.hutool.core.util.StrUtil; -import cn.hutool.crypto.SecureUtil; -import im.zhaojun.zfile.cache.ZFileCache; -import im.zhaojun.zfile.exception.InvalidDriveException; -import im.zhaojun.zfile.model.constant.SystemConfigConstant; -import im.zhaojun.zfile.model.dto.SystemConfigDTO; -import im.zhaojun.zfile.model.dto.SystemFrontConfigDTO; -import im.zhaojun.zfile.model.entity.DriveConfig; -import im.zhaojun.zfile.model.entity.SystemConfig; -import im.zhaojun.zfile.repository.SystemConfigRepository; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.BeanUtils; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.List; - -/** - * @author zhaojun - */ -@Slf4j -@Service -public class SystemConfigService { - - @Resource - private ZFileCache zFileCache; - - @Resource - private SystemConfigRepository systemConfigRepository; - - @Resource - private DriveConfigService driveConfigService; - - private Class systemConfigClazz = SystemConfigDTO.class; - - - /** - * 获取系统设置, 如果缓存中有, 则去缓存取, 没有则查询数据库并写入到缓存中. - * - * @return 系统设置 - */ - public SystemConfigDTO getSystemConfig() { - SystemConfigDTO cacheConfig = zFileCache.getConfig(); - if (cacheConfig != null) { - return cacheConfig; - } - - SystemConfigDTO systemConfigDTO = new SystemConfigDTO(); - List systemConfigList = systemConfigRepository.findAll(); - - for (SystemConfig systemConfig : systemConfigList) { - String key = systemConfig.getKey(); - - try { - Field field = systemConfigClazz.getDeclaredField(key); - field.setAccessible(true); - String strVal = systemConfig.getValue(); - Object convertVal = Convert.convert(field.getType(), strVal); - field.set(systemConfigDTO, convertVal); - } catch (NoSuchFieldException | IllegalAccessException e) { - log.error("通过反射, 将字段 {} 注入 SystemConfigDTO 时出现异常:", key, e); - } - } - - zFileCache.updateConfig(systemConfigDTO); - return systemConfigDTO; - } - - - /** - * 更新系统设置, 并清空缓存中的内容. - * - * @param systemConfigDTO - * 系统 - * - */ - public void updateSystemConfig(SystemConfigDTO systemConfigDTO) { - List systemConfigList = new ArrayList<>(); - - Field[] fields = systemConfigClazz.getDeclaredFields(); - for (Field field : fields) { - String key = field.getName(); - SystemConfig systemConfig = systemConfigRepository.findByKey(key); - if (systemConfig != null) { - field.setAccessible(true); - Object val = null; - - try { - val = field.get(systemConfigDTO); - } catch (IllegalAccessException e) { - log.error("通过反射, 从 SystemConfigDTO 获取字段 {} 时出现异常:", key, e); - } - - if (val != null) { - systemConfig.setValue(val.toString()); - systemConfigList.add(systemConfig); - } - } - } - - zFileCache.removeConfig(); - systemConfigRepository.saveAll(systemConfigList); - } - - - /** - * 根据驱动器 ID, 获取对于前台页面的系统设置. - * - * @param driveId - * 驱动器 ID - * - * @return 前台系统设置 - */ - public SystemFrontConfigDTO getSystemFrontConfig(Integer driveId) { - SystemConfigDTO systemConfig = getSystemConfig(); - SystemFrontConfigDTO systemFrontConfigDTO = new SystemFrontConfigDTO(); - BeanUtils.copyProperties(systemConfig, systemFrontConfigDTO); - - DriveConfig driveConfig = driveConfigService.findById(driveId); - if (driveConfig == null) { - throw new InvalidDriveException("此驱动器不存在或初始化失败, 请检查后台参数配置"); - } - systemFrontConfigDTO.setSearchEnable(driveConfig.getSearchEnable()); - return systemFrontConfigDTO; - } - - - /** - * 更新后台账号密码 - * - * @param username - * 用户名 - * - * @param password - * 密码 - */ - public void updateUsernameAndPwd(String username, String password) { - SystemConfig usernameConfig = systemConfigRepository.findByKey(SystemConfigConstant.USERNAME); - usernameConfig.setValue(username); - systemConfigRepository.save(usernameConfig); - - String encryptionPassword = SecureUtil.md5(password); - SystemConfig systemConfig = systemConfigRepository.findByKey(SystemConfigConstant.PASSWORD); - systemConfig.setValue(encryptionPassword); - - zFileCache.removeConfig(); - - systemConfigRepository.save(systemConfig); - } - - - /** - * 获取管理员名称 - * - * @return 管理员名称 - */ - public String getAdminUsername() { - SystemConfigDTO systemConfigDTO = getSystemConfig(); - return systemConfigDTO.getUsername(); - } - - /** - * 获取站点域名 - * - * @return 站点域名 - */ - public String getDomain() { - SystemConfigDTO systemConfigDTO = getSystemConfig(); - return systemConfigDTO.getDomain(); - } - - - /** - * 获取是否已安装初始化 - * - * @return 是否已安装初始化 - */ - public boolean getIsInstall() { - SystemConfigDTO systemConfigDTO = getSystemConfig(); - return StrUtil.isNotEmpty(systemConfigDTO.getUsername()); - } -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/service/base/AbstractBaseFileService.java b/src/main/java/im/zhaojun/zfile/service/base/AbstractBaseFileService.java deleted file mode 100644 index f88e5ce..0000000 --- a/src/main/java/im/zhaojun/zfile/service/base/AbstractBaseFileService.java +++ /dev/null @@ -1,181 +0,0 @@ -package im.zhaojun.zfile.service.base; - -import im.zhaojun.zfile.cache.ZFileCache; -import im.zhaojun.zfile.exception.InitializeDriveException; -import im.zhaojun.zfile.model.dto.FileItemDTO; -import im.zhaojun.zfile.model.entity.StorageConfig; -import im.zhaojun.zfile.model.enums.StorageTypeEnum; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Value; - -import javax.annotation.Resource; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.stream.Collectors; - -/** - * @author zhaojun - */ -@Slf4j -public abstract class AbstractBaseFileService implements BaseFileService { - - - @Resource - private ZFileCache zFileCache; - - /** - * 下载链接过期时间, 目前只在兼容 S3 协议的存储策略中使用到. - */ - @Value("${zfile.cache.timeout}") - protected Long timeout; - - /** - * 是否初始化成功 - */ - protected boolean isInitialized = false; - - /** - * 基路径 - */ - protected String basePath; - - /** - * 驱动器 ID - */ - public Integer driveId; - - /*** - * 获取指定路径下的文件及文件夹, 默认缓存 60 分钟,每隔 30 分钟刷新一次. - * - * @param path - * 文件路径 - * - * @return 文件及文件夹列表 - * - * @throws Exception 获取文件列表中出现的异常 - */ - @Override - public abstract List fileList(String path) throws Exception; - - - /** - * 清理当前存储策略的缓存 - */ - public void clearFileCache() { - zFileCache.clear(driveId); - } - - - /** - * 初始化方法, 启动时自动调用实现类的此方法进行初始化. - * - * @param driveId - * 驱动器 ID - */ - public abstract void init(Integer driveId); - - - /** - * 测试是否连接成功, 会尝试取调用获取根路径的文件, 如果没有抛出异常, 则认为连接成功, 某些存储策略需要复写此方法. - */ - protected void testConnection() { - try { - fileList("/"); - } catch (Exception e) { - throw new InitializeDriveException("初始化异常, 错误信息为: " + e.getMessage(), e); - } - } - - - /** - * 获取是否初始化成功 - * - * @return 初始化成功与否 - */ - public boolean getIsUnInitialized() { - return !isInitialized; - } - - - /** - * 获取是否初始化成功 - * - * @return 初始化成功与否 - */ - public boolean getIsInitialized() { - return isInitialized; - } - - - /** - * 获取当前实现类的存储策略类型 - * - * @return 存储策略类型枚举对象 - */ - public abstract StorageTypeEnum getStorageTypeEnum(); - - - /** - * 获取初始化当前存储策略, 所需要的参数信息 (用于表单填写) - * - * @return 初始化所需的参数列表 - */ - public abstract List storageStrategyConfigList(); - - - /** - * 合并数据库查询到的驱动器参数和驱动器本身支持的参数列表, 防止获取新增参数字段时出现空指针异常 - * - * @param dbStorageConfigList - * 数据库查询到的存储列表 - */ - public void mergeStrategyConfig(Map dbStorageConfigList) { - // 获取驱动器支持的参数列表 - List storageConfigs = this.storageStrategyConfigList(); - - // 比对数据库已存储的参数列表和驱动器支持的参数列表, 找出新增的支持项 - Set dbConfigKeySet = dbStorageConfigList.keySet(); - Set allKeySet = storageConfigs.stream().map(StorageConfig::getKey).collect(Collectors.toSet()); - - allKeySet.removeAll(dbConfigKeySet); - - // 对于新增的参数, put 到数据库查询的 Map 中, 防止程序获取时出现 NPE. - for (String key : allKeySet) { - StorageConfig storageConfig = new StorageConfig(); - storageConfig.setValue(""); - dbStorageConfigList.put(key, storageConfig); - } - } - - /** - * 搜索文件 - * - * @param name - * 文件名 - * - * @return 包含该文件名的所有文件或文件夹 - */ - public List search(String name) { - return zFileCache.find(driveId, name); - } - - - /** - * 获取单个文件信息 - * - * @param path - * 文件路径 - * - * @return 单个文件的内容. - */ - public abstract FileItemDTO getFileItem(String path); - - public Integer getDriveId() { - return driveId; - } - - public void setDriveId(Integer driveId) { - this.driveId = driveId; - } -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/service/base/AbstractOneDriveServiceBase.java b/src/main/java/im/zhaojun/zfile/service/base/AbstractOneDriveServiceBase.java deleted file mode 100644 index 542b9b1..0000000 --- a/src/main/java/im/zhaojun/zfile/service/base/AbstractOneDriveServiceBase.java +++ /dev/null @@ -1,35 +0,0 @@ -package im.zhaojun.zfile.service.base; - -import im.zhaojun.zfile.model.entity.StorageConfig; -import lombok.extern.slf4j.Slf4j; - -import java.util.ArrayList; -import java.util.List; - -/** - * @author Zhao Jun - */ -@Slf4j -public abstract class AbstractOneDriveServiceBase extends MicrosoftDriveServiceBase { - - @Override - public String getType() { - return "me"; - } - - - @Override - public String getDownloadUrl(String path) { - return null; - } - - @Override - public List storageStrategyConfigList() { - return new ArrayList() {{ - add(new StorageConfig("accessToken", "访问令牌")); - add(new StorageConfig("refreshToken", "刷新令牌")); - add(new StorageConfig("basePath", "基路径")); - add(new StorageConfig("proxyDomain", "反代域名")); - }}; - } -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/service/base/AbstractS3BaseFileService.java b/src/main/java/im/zhaojun/zfile/service/base/AbstractS3BaseFileService.java deleted file mode 100644 index d28c9fb..0000000 --- a/src/main/java/im/zhaojun/zfile/service/base/AbstractS3BaseFileService.java +++ /dev/null @@ -1,144 +0,0 @@ -package im.zhaojun.zfile.service.base; - -import cn.hutool.core.util.BooleanUtil; -import cn.hutool.core.util.URLUtil; -import com.amazonaws.services.s3.AmazonS3; -import com.amazonaws.services.s3.model.ListObjectsRequest; -import com.amazonaws.services.s3.model.ObjectListing; -import com.amazonaws.services.s3.model.S3ObjectSummary; -import im.zhaojun.zfile.exception.NotExistFileException; -import im.zhaojun.zfile.model.constant.ZFileConstant; -import im.zhaojun.zfile.model.dto.FileItemDTO; -import im.zhaojun.zfile.model.enums.FileTypeEnum; -import im.zhaojun.zfile.service.StorageConfigService; -import im.zhaojun.zfile.util.StringUtils; - -import javax.annotation.Resource; -import java.net.URL; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Objects; - -/** - * @author zhaojun - */ -public abstract class AbstractS3BaseFileService extends AbstractBaseFileService { - - @Resource - protected StorageConfigService storageConfigService; - - protected String path; - - protected String bucketName; - - protected String domain; - - protected AmazonS3 s3Client; - - protected boolean isPrivate; - - @Override - public List fileList(String path) { - this.path = path; - return s3FileList(path); - } - - - @Override - public String getDownloadUrl(String path) { - this.path = path; - return s3ObjectUrl(path); - } - - - /** - * 获取 S3 指定目录下的对象列表 - * @param path 路径 - * @return 指定目录下的对象列表 - */ - public List s3FileList(String path) { - path = StringUtils.removeFirstSeparator(path); - String fullPath = StringUtils.removeFirstSeparator(StringUtils.getFullPath(basePath, path)); - List fileItemList = new ArrayList<>(); - ObjectListing objectListing = s3Client.listObjects(new ListObjectsRequest(bucketName, fullPath, "", "/", 1000)); - - for (S3ObjectSummary s : objectListing.getObjectSummaries()) { - FileItemDTO fileItemDTO = new FileItemDTO(); - if (s.getKey().equals(fullPath)) { - continue; - } - fileItemDTO.setName(s.getKey().substring(fullPath.length())); - fileItemDTO.setSize(s.getSize()); - fileItemDTO.setTime(s.getLastModified()); - fileItemDTO.setType(FileTypeEnum.FILE); - fileItemDTO.setPath(path); - - String fullPathAndName = StringUtils.concatUrl(path, fileItemDTO.getName()); - String directlink = StringUtils.generatorLink(driveId, fullPathAndName); - fileItemDTO.setUrl(directlink); - - fileItemList.add(fileItemDTO); - } - - for (String commonPrefix : objectListing.getCommonPrefixes()) { - FileItemDTO fileItemDTO = new FileItemDTO(); - if (Objects.equals(commonPrefix, "/")) { - continue; - } - fileItemDTO.setName(commonPrefix.substring(fullPath.length(), commonPrefix.length() - 1)); - fileItemDTO.setType(FileTypeEnum.FOLDER); - fileItemDTO.setPath(path); - fileItemList.add(fileItemDTO); - } - - return fileItemList; - } - - - /** - * 获取对象的访问链接, 如果指定了域名, 则替换为自定义域名. - * @return S3 对象访问地址 - */ - public String s3ObjectUrl(String path) { - basePath = basePath == null ? "" : basePath; - String fullPath = StringUtils.removeFirstSeparator(StringUtils.removeDuplicateSeparator(basePath + ZFileConstant.PATH_SEPARATOR + path)); - - // 如果不是私有空间, 且指定了加速域名, 则直接返回下载地址. - if (BooleanUtil.isFalse(isPrivate) && StringUtils.isNotNullOrEmpty(domain)) { - return StringUtils.concatPath(domain, fullPath); - } - - Date expirationDate = new Date(System.currentTimeMillis() + timeout * 1000); - URL url = s3Client.generatePresignedUrl(bucketName, fullPath, expirationDate); - - String defaultUrl = url.toExternalForm(); - if (StringUtils.isNotNullOrEmpty(domain)) { - defaultUrl = URLUtil.complateUrl(domain, url.getFile()); - } - return URLUtil.decode(defaultUrl); - } - - - @Override - public FileItemDTO getFileItem(String path) { - List list; - try { - int end = path.lastIndexOf("/"); - list = fileList(path.substring(0, end + 1)); - } catch (Exception e) { - throw new NotExistFileException(); - } - - for (FileItemDTO fileItemDTO : list) { - String fullPath = StringUtils.concatUrl(fileItemDTO.getPath(), fileItemDTO.getName()); - if (Objects.equals(fullPath, path)) { - fileItemDTO.setUrl(getDownloadUrl(path)); - return fileItemDTO; - } - } - - throw new NotExistFileException(); - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/service/base/AbstractSharePointServiceBase.java b/src/main/java/im/zhaojun/zfile/service/base/AbstractSharePointServiceBase.java deleted file mode 100644 index ba435b9..0000000 --- a/src/main/java/im/zhaojun/zfile/service/base/AbstractSharePointServiceBase.java +++ /dev/null @@ -1,34 +0,0 @@ -package im.zhaojun.zfile.service.base; - -import im.zhaojun.zfile.model.entity.StorageConfig; - -import java.util.ArrayList; -import java.util.List; - -public abstract class AbstractSharePointServiceBase extends MicrosoftDriveServiceBase { - - protected String siteId; - - @Override - public String getType() { - return "sites/" + siteId; - } - - @Override - public String getDownloadUrl(String path) { - return null; - } - - @Override - public List storageStrategyConfigList() { - return new ArrayList() {{ - add(new StorageConfig("accessToken", "访问令牌")); - add(new StorageConfig("refreshToken", "刷新令牌")); - add(new StorageConfig("proxyDomain", "反代域名")); - add(new StorageConfig("basePath", "基路径")); - add(new StorageConfig("siteName", "站点名称")); - add(new StorageConfig("siteId", "SiteId")); - add(new StorageConfig("siteType", "siteType")); - }}; - } -} diff --git a/src/main/java/im/zhaojun/zfile/service/base/BaseFileService.java b/src/main/java/im/zhaojun/zfile/service/base/BaseFileService.java deleted file mode 100644 index b623f6b..0000000 --- a/src/main/java/im/zhaojun/zfile/service/base/BaseFileService.java +++ /dev/null @@ -1,28 +0,0 @@ -package im.zhaojun.zfile.service.base; - -import im.zhaojun.zfile.model.dto.FileItemDTO; - -import java.util.List; - -/** - * @author zhaojun - */ -public interface BaseFileService { - - /*** - * 获取指定路径下的文件及文件夹 - * @param path 文件路径 - * @return 文件及文件夹列表 - * @throws Exception 获取文件列表中出现的异常 - */ - List fileList(String path) throws Exception; - - - /** - * 获取文件下载地址 - * @param path 文件路径 - * @return 文件下载地址 - */ - String getDownloadUrl(String path); - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/service/base/MicrosoftDriveServiceBase.java b/src/main/java/im/zhaojun/zfile/service/base/MicrosoftDriveServiceBase.java deleted file mode 100644 index 4e22cf1..0000000 --- a/src/main/java/im/zhaojun/zfile/service/base/MicrosoftDriveServiceBase.java +++ /dev/null @@ -1,298 +0,0 @@ -package im.zhaojun.zfile.service.base; - -import cn.hutool.core.util.URLUtil; -import cn.hutool.http.HttpRequest; -import cn.hutool.http.HttpResponse; -import cn.hutool.http.HttpUtil; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import im.zhaojun.zfile.model.constant.StorageConfigConstant; -import im.zhaojun.zfile.model.constant.ZFileConstant; -import im.zhaojun.zfile.model.dto.FileItemDTO; -import im.zhaojun.zfile.model.entity.StorageConfig; -import im.zhaojun.zfile.model.enums.FileTypeEnum; -import im.zhaojun.zfile.model.support.OneDriveToken; -import im.zhaojun.zfile.repository.StorageConfigRepository; -import im.zhaojun.zfile.service.StorageConfigService; -import im.zhaojun.zfile.util.StringUtils; -import lombok.extern.slf4j.Slf4j; -import org.springframework.context.annotation.Lazy; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; -import org.springframework.web.client.HttpClientErrorException; -import org.springframework.web.client.RestTemplate; - -import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; - -@Slf4j -public abstract class MicrosoftDriveServiceBase extends AbstractBaseFileService { - - /** - * 获取根文件 API URI - */ - protected static final String DRIVER_ROOT_URL = "https://{graphEndPoint}/v1.0/{type}/drive/root/children"; - - /** - * 获取非根文件 API URI - */ - protected static final String DRIVER_ITEMS_URL = "https://{graphEndPoint}/v1.0/{type}/drive/root:{path}:/children"; - - /** - * 获取单文件 API URI - */ - protected static final String DRIVER_ITEM_URL = "https://{graphEndPoint}/v1.0/{type}/drive/root:{path}"; - - /** - * 根据 RefreshToken 获取 AccessToken API URI - */ - protected static final String AUTHENTICATE_URL = "https://{authenticateEndPoint}/common/oauth2/v2.0/token"; - - /** - * OneDrive 文件类型 - */ - private static final String ONE_DRIVE_FILE_FLAG = "file"; - - protected String proxyDomain; - - @Resource - @Lazy - private RestTemplate oneDriveRestTemplate; - - @Resource - private StorageConfigRepository storageConfigRepository; - - @Resource - private StorageConfigService storageConfigService; - - /** - * 根据 RefreshToken 刷新 AccessToken, 返回刷新后的 Token. - * - * @return 刷新后的 Token - */ - public OneDriveToken getRefreshToken() { - StorageConfig refreshStorageConfig = - storageConfigRepository.findByDriveIdAndKey(driveId, StorageConfigConstant.REFRESH_TOKEN_KEY); - - String param = "client_id=" + getClientId() + - "&redirect_uri=" + getRedirectUri() + - "&client_secret=" + getClientSecret() + - "&refresh_token=" + refreshStorageConfig.getValue() + - "&grant_type=refresh_token"; - - String fullAuthenticateUrl = AUTHENTICATE_URL.replace("{authenticateEndPoint}", getAuthenticateEndPoint()); - HttpRequest post = HttpUtil.createPost(fullAuthenticateUrl); - - post.body(param, "application/x-www-form-urlencoded"); - HttpResponse response = post.execute(); - return JSONObject.parseObject(response.body(), OneDriveToken.class); - } - - /** - * OAuth2 协议中, 根据 code 换取 access_token 和 refresh_token. - * - * @param code - * 代码 - * - * @return 获取的 Token 信息. - */ - public OneDriveToken getToken(String code) { - String param = "client_id=" + getClientId() + - "&redirect_uri=" + getRedirectUri() + - "&client_secret=" + getClientSecret() + - "&code=" + code + - "&scope=" + getScope() + - "&grant_type=authorization_code"; - - String fullAuthenticateUrl = AUTHENTICATE_URL.replace("{authenticateEndPoint}", getAuthenticateEndPoint()); - HttpRequest post = HttpUtil.createPost(fullAuthenticateUrl); - - post.body(param, "application/x-www-form-urlencoded"); - HttpResponse response = post.execute(); - return JSONObject.parseObject(response.body(), OneDriveToken.class); - } - - @Override - public List fileList(String path) { - path = StringUtils.removeFirstSeparator(path); - String fullPath = StringUtils.getFullPath(basePath, path); - - List result = new ArrayList<>(); - String nextLink = null; - - do { - - String requestUrl; - - if (nextLink != null) { - nextLink = nextLink.replace("+", "%2B"); - requestUrl = URLUtil.decode(nextLink); - }else if (ZFileConstant.PATH_SEPARATOR.equalsIgnoreCase(fullPath) || "".equalsIgnoreCase(fullPath)) { - requestUrl = DRIVER_ROOT_URL; - } else { - requestUrl = DRIVER_ITEMS_URL; - } - fullPath = StringUtils.removeLastSeparator(fullPath); - - JSONObject root; - - HttpHeaders headers = new HttpHeaders(); - headers.set("driveId", driveId.toString()); - HttpEntity entity = new HttpEntity<>(headers); - - try { - root = oneDriveRestTemplate.exchange(requestUrl, HttpMethod.GET, entity, JSONObject.class, getGraphEndPoint(), getType(), fullPath).getBody(); - } catch (HttpClientErrorException e) { - log.debug("调用 OneDrive 时出现了网络异常, 响应信息: {}, 已尝试重新刷新 token 后再试.", e.getResponseBodyAsString()); - refreshOneDriveToken(); - root = oneDriveRestTemplate.exchange(requestUrl, HttpMethod.GET, entity, JSONObject.class, getGraphEndPoint(), getType(), fullPath).getBody(); - } - - if (root == null) { - return Collections.emptyList(); - } - - nextLink = root.getString("@odata.nextLink"); - - JSONArray fileList = root.getJSONArray("value"); - - for (int i = 0; i < fileList.size(); i++) { - - FileItemDTO fileItemDTO = new FileItemDTO(); - JSONObject fileItem = fileList.getJSONObject(i); - fileItemDTO.setName(fileItem.getString("name")); - fileItemDTO.setSize(fileItem.getLong("size")); - fileItemDTO.setTime(fileItem.getDate("lastModifiedDateTime")); - - if (fileItem.containsKey("file")) { - String originUrl = fileItem.getString("@microsoft.graph.downloadUrl"); - if (StringUtils.isNotNullOrEmpty(proxyDomain)) { - originUrl = StringUtils.replaceHost(originUrl, proxyDomain); - } - fileItemDTO.setUrl(originUrl); - fileItemDTO.setType(FileTypeEnum.FILE); - } else { - fileItemDTO.setType(FileTypeEnum.FOLDER); - } - - fileItemDTO.setPath(path); - result.add(fileItemDTO); - } - } while (nextLink != null); - - return result; - } - - @Override - public FileItemDTO getFileItem(String path) { - - String fullPath = StringUtils.getFullPath(basePath, path); - - HttpHeaders headers = new HttpHeaders(); - headers.set("driveId", driveId.toString()); - HttpEntity entity = new HttpEntity<>(headers); - - JSONObject fileItem; - - try { - fileItem = oneDriveRestTemplate.exchange(DRIVER_ITEM_URL, HttpMethod.GET, entity, JSONObject.class, getGraphEndPoint(), getType(), fullPath).getBody(); - } catch (HttpClientErrorException e) { - log.debug("调用 OneDrive 时出现了网络异常, 响应信息: {}, 已尝试重新刷新 token 后再试.", e.getResponseBodyAsString()); - refreshOneDriveToken(); - fileItem = oneDriveRestTemplate.exchange(DRIVER_ITEM_URL, HttpMethod.GET, entity, JSONObject.class, getGraphEndPoint(), getType(), fullPath).getBody(); - } - - if (fileItem == null) { - return null; - } - - FileItemDTO fileItemDTO = new FileItemDTO(); - fileItemDTO.setName(fileItem.getString("name")); - fileItemDTO.setSize(fileItem.getLong("size")); - fileItemDTO.setTime(fileItem.getDate("lastModifiedDateTime")); - - if (fileItem.containsKey(ONE_DRIVE_FILE_FLAG)) { - String originUrl = fileItem.getString("@microsoft.graph.downloadUrl"); - if (StringUtils.isNotNullOrEmpty(proxyDomain)) { - originUrl = StringUtils.replaceHost(originUrl, proxyDomain); - } - fileItemDTO.setUrl(originUrl); - fileItemDTO.setType(FileTypeEnum.FILE); - } else { - fileItemDTO.setType(FileTypeEnum.FOLDER); - } - - fileItemDTO.setPath(path); - return fileItemDTO; - } - - - /** - * 获取存储类型, 对于 OneDrive 或 SharePoint, 此地址会不同. - * @return Graph 连接点 - */ - public abstract String getType(); - - /** - * 获取 GraphEndPoint, 对于不同版本的 OneDrive, 此地址会不同. - * @return Graph 连接点 - */ - public abstract String getGraphEndPoint(); - - - /** - * 获取 AuthenticateEndPoint, 对于不同版本的 OneDrive, 此地址会不同. - * @return Authenticate 连接点 - */ - public abstract String getAuthenticateEndPoint(); - - /** - * 获取 Client ID. - * @return Client Id - */ - public abstract String getClientId(); - - /** - * 获取重定向地址. - * @return 重定向地址 - */ - public abstract String getRedirectUri(); - - /** - * 获取 Client Secret 密钥. - * @return Client Secret 密钥. - */ - public abstract String getClientSecret(); - - /** - * 获取 API Scope. - * @return Scope - */ - public abstract String getScope(); - - - /** - * 刷新当前驱动器 AccessToken - */ - public void refreshOneDriveToken() { - OneDriveToken refreshToken = getRefreshToken(); - - if (refreshToken.getAccessToken() == null || refreshToken.getRefreshToken() == null) { - return; - } - - StorageConfig accessTokenConfig = - storageConfigService.findByDriveIdAndKey(driveId, StorageConfigConstant.ACCESS_TOKEN_KEY); - StorageConfig refreshTokenConfig = - storageConfigService.findByDriveIdAndKey(driveId, StorageConfigConstant.REFRESH_TOKEN_KEY); - accessTokenConfig.setValue(refreshToken.getAccessToken()); - refreshTokenConfig.setValue(refreshToken.getRefreshToken()); - - storageConfigService.updateStorageConfig(Arrays.asList(accessTokenConfig, refreshTokenConfig)); - } - -} diff --git a/src/main/java/im/zhaojun/zfile/service/impl/AliyunServiceImpl.java b/src/main/java/im/zhaojun/zfile/service/impl/AliyunServiceImpl.java deleted file mode 100644 index 07c881d..0000000 --- a/src/main/java/im/zhaojun/zfile/service/impl/AliyunServiceImpl.java +++ /dev/null @@ -1,79 +0,0 @@ -package im.zhaojun.zfile.service.impl; - -import cn.hutool.core.convert.Convert; -import com.amazonaws.auth.AWSStaticCredentialsProvider; -import com.amazonaws.auth.BasicAWSCredentials; -import com.amazonaws.client.builder.AwsClientBuilder; -import com.amazonaws.services.s3.AmazonS3ClientBuilder; -import im.zhaojun.zfile.model.constant.StorageConfigConstant; -import im.zhaojun.zfile.model.entity.StorageConfig; -import im.zhaojun.zfile.model.enums.StorageTypeEnum; -import im.zhaojun.zfile.service.base.AbstractS3BaseFileService; -import im.zhaojun.zfile.service.base.BaseFileService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.config.ConfigurableBeanFactory; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Service; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Objects; - -/** - * @author zhaojun - */ -@Service -@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) -public class AliyunServiceImpl extends AbstractS3BaseFileService implements BaseFileService { - - private static final Logger log = LoggerFactory.getLogger(AliyunServiceImpl.class); - - @Override - public void init(Integer driveId) { - this.driveId = driveId; - Map stringStorageConfigMap = - storageConfigService.selectStorageConfigMapByDriveId(driveId); - this.mergeStrategyConfig(stringStorageConfigMap); - String accessKey = stringStorageConfigMap.get(StorageConfigConstant.ACCESS_KEY).getValue(); - String secretKey = stringStorageConfigMap.get(StorageConfigConstant.SECRET_KEY).getValue(); - String endPoint = stringStorageConfigMap.get(StorageConfigConstant.ENDPOINT_KEY).getValue(); - - super.domain = stringStorageConfigMap.get(StorageConfigConstant.DOMAIN_KEY).getValue(); - super.basePath = stringStorageConfigMap.get(StorageConfigConstant.BASE_PATH).getValue(); - super.bucketName = stringStorageConfigMap.get(StorageConfigConstant.BUCKET_NAME_KEY).getValue(); - super.isPrivate = Convert.toBool(stringStorageConfigMap.get(StorageConfigConstant.IS_PRIVATE).getValue(), true); - - if (Objects.isNull(accessKey) || Objects.isNull(secretKey) || Objects.isNull(endPoint) || Objects.isNull(bucketName)) { - log.debug("初始化存储策略 [{}] 失败: 参数不完整", getStorageTypeEnum().getDescription()); - isInitialized = false; - } else { - BasicAWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey); - - super.s3Client = AmazonS3ClientBuilder.standard() - .withCredentials(new AWSStaticCredentialsProvider(credentials)) - .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(endPoint, "oss")).build(); - testConnection(); - isInitialized = true; - } - } - - @Override - public StorageTypeEnum getStorageTypeEnum() { - return StorageTypeEnum.ALIYUN; - } - - @Override - public List storageStrategyConfigList() { - return new ArrayList() {{ - add(new StorageConfig("accessKey", "AccessKey")); - add(new StorageConfig("secretKey", "SecretKey")); - add(new StorageConfig("bucketName", "Bucket 名称")); - add(new StorageConfig("domain", "Bucket 域名 / CDN 加速域名")); - add(new StorageConfig("endPoint", "区域")); - add(new StorageConfig("basePath", "基路径")); - add(new StorageConfig("isPrivate", "是否是私有空间")); - }}; - } -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/service/impl/FtpServiceImpl.java b/src/main/java/im/zhaojun/zfile/service/impl/FtpServiceImpl.java deleted file mode 100644 index b6f20c1..0000000 --- a/src/main/java/im/zhaojun/zfile/service/impl/FtpServiceImpl.java +++ /dev/null @@ -1,150 +0,0 @@ -package im.zhaojun.zfile.service.impl; - -import cn.hutool.core.util.URLUtil; -import cn.hutool.extra.ftp.Ftp; -import cn.hutool.extra.ftp.FtpMode; -import im.zhaojun.zfile.model.constant.StorageConfigConstant; -import im.zhaojun.zfile.model.dto.FileItemDTO; -import im.zhaojun.zfile.model.entity.StorageConfig; -import im.zhaojun.zfile.model.enums.FileTypeEnum; -import im.zhaojun.zfile.model.enums.StorageTypeEnum; -import im.zhaojun.zfile.service.StorageConfigService; -import im.zhaojun.zfile.service.base.AbstractBaseFileService; -import im.zhaojun.zfile.service.base.BaseFileService; -import im.zhaojun.zfile.util.StringUtils; -import lombok.SneakyThrows; -import org.apache.commons.net.ftp.FTP; -import org.apache.commons.net.ftp.FTPFile; -import org.springframework.beans.factory.config.ConfigurableBeanFactory; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; -import java.io.IOException; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; -import java.util.Objects; - -/** - * @author zhaojun - */ -@Service -@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) -public class FtpServiceImpl extends AbstractBaseFileService implements BaseFileService { - - @Resource - private StorageConfigService storageConfigService; - - private Ftp ftp; - - private String domain; - - private String host; - - private String port; - - private String username; - - private String password; - - @SneakyThrows(IOException.class) - @Override - public void init(Integer driveId) { - this.driveId = driveId; - Map stringStorageConfigMap = - storageConfigService.selectStorageConfigMapByDriveId(driveId); - this.mergeStrategyConfig(stringStorageConfigMap); - host = stringStorageConfigMap.get(StorageConfigConstant.HOST_KEY).getValue(); - port = stringStorageConfigMap.get(StorageConfigConstant.PORT_KEY).getValue(); - username = stringStorageConfigMap.get(StorageConfigConstant.USERNAME_KEY).getValue(); - password = stringStorageConfigMap.get(StorageConfigConstant.PASSWORD_KEY).getValue(); - domain = stringStorageConfigMap.get(StorageConfigConstant.DOMAIN_KEY).getValue(); - super.basePath = stringStorageConfigMap.get(StorageConfigConstant.BASE_PATH).getValue(); - if (Objects.isNull(host) || Objects.isNull(port)) { - isInitialized = false; - } else { - ftp = new Ftp(host, Integer.parseInt(port), username, password, StandardCharsets.UTF_8); - ftp.getClient().type(FTP.BINARY_FILE_TYPE); - ftp.setMode(FtpMode.Passive); - testConnection(); - isInitialized = true; - } - } - - @Override - public List fileList(String path) { - ftp.reconnectIfTimeout(); - String fullPath = StringUtils.getFullPath(basePath, path); - ftp.cd(fullPath); - FTPFile[] ftpFiles = new FTPFile[]{}; - try { - ftp.getClient().changeWorkingDirectory("/"); - ftpFiles = ftp.getClient().listFiles(fullPath); - } catch (Exception e) { - e.printStackTrace(); - } - - List fileItemList = new ArrayList<>(); - - for (FTPFile ftpFile : ftpFiles) { - FileItemDTO fileItemDTO = new FileItemDTO(); - // 跳过 ftp 的本目录和上级目录 - if (Arrays.asList(".", "..").contains(ftpFile.getName())) { - continue; - } - fileItemDTO.setName(ftpFile.getName()); - fileItemDTO.setSize(ftpFile.getSize()); - fileItemDTO.setTime(ftpFile.getTimestamp().getTime()); - fileItemDTO.setType(ftpFile.isDirectory() ? FileTypeEnum.FOLDER : FileTypeEnum.FILE); - fileItemDTO.setPath(path); - if (ftpFile.isFile()) { - fileItemDTO.setUrl(getDownloadUrl(StringUtils.concatUrl(path, fileItemDTO.getName()))); - } - fileItemList.add(fileItemDTO); - } - return fileItemList; - } - - @Override - public String getDownloadUrl(String path) { - String fullPath = StringUtils.getFullPath(basePath, path); - if (StringUtils.isNullOrEmpty(domain)) { - return "ftp://" - + URLUtil.encodeQuery(username) - + ":" - + URLUtil.encodeQuery(password) - + "@" - + host + ":" + port + fullPath; - } - - return URLUtil.complateUrl(domain, fullPath); - } - - @Override - public StorageTypeEnum getStorageTypeEnum() { - return StorageTypeEnum.FTP; - } - - @Override - public FileItemDTO getFileItem(String path) { - FileItemDTO fileItemDTO = new FileItemDTO(); - fileItemDTO.setUrl(getDownloadUrl(path)); - return fileItemDTO; - } - - @Override - public List storageStrategyConfigList() { - return new ArrayList() {{ - add(new StorageConfig("host", "域名或IP")); - add(new StorageConfig("port", "端口")); - add(new StorageConfig("username", "用户名")); - add(new StorageConfig("password", "密码")); - add(new StorageConfig("domain", "加速域名")); - add(new StorageConfig("basePath", "基路径")); - }}; - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/service/impl/HuaweiServiceImpl.java b/src/main/java/im/zhaojun/zfile/service/impl/HuaweiServiceImpl.java deleted file mode 100644 index b2a79b6..0000000 --- a/src/main/java/im/zhaojun/zfile/service/impl/HuaweiServiceImpl.java +++ /dev/null @@ -1,80 +0,0 @@ -package im.zhaojun.zfile.service.impl; - -import cn.hutool.core.convert.Convert; -import com.amazonaws.auth.AWSStaticCredentialsProvider; -import com.amazonaws.auth.BasicAWSCredentials; -import com.amazonaws.client.builder.AwsClientBuilder; -import com.amazonaws.services.s3.AmazonS3ClientBuilder; -import im.zhaojun.zfile.model.constant.StorageConfigConstant; -import im.zhaojun.zfile.model.entity.StorageConfig; -import im.zhaojun.zfile.model.enums.StorageTypeEnum; -import im.zhaojun.zfile.service.base.AbstractS3BaseFileService; -import im.zhaojun.zfile.service.base.BaseFileService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.config.ConfigurableBeanFactory; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Service; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Objects; - -/** - * @author zhaojun - */ -@Service -@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) -public class HuaweiServiceImpl extends AbstractS3BaseFileService implements BaseFileService { - - private static final Logger log = LoggerFactory.getLogger(HuaweiServiceImpl.class); - - @Override - public void init(Integer driveId) { - this.driveId = driveId; - Map stringStorageConfigMap = - storageConfigService.selectStorageConfigMapByDriveId(driveId); - this.mergeStrategyConfig(stringStorageConfigMap); - String accessKey = stringStorageConfigMap.get(StorageConfigConstant.ACCESS_KEY).getValue(); - String secretKey = stringStorageConfigMap.get(StorageConfigConstant.SECRET_KEY).getValue(); - String endPoint = stringStorageConfigMap.get(StorageConfigConstant.ENDPOINT_KEY).getValue(); - - bucketName = stringStorageConfigMap.get(StorageConfigConstant.BUCKET_NAME_KEY).getValue(); - domain = stringStorageConfigMap.get(StorageConfigConstant.DOMAIN_KEY).getValue(); - basePath = stringStorageConfigMap.get(StorageConfigConstant.BASE_PATH).getValue(); - isPrivate = Convert.toBool(stringStorageConfigMap.get(StorageConfigConstant.IS_PRIVATE).getValue(), true); - - if (Objects.isNull(accessKey) || Objects.isNull(secretKey) || Objects.isNull(endPoint) || Objects.isNull(bucketName)) { - log.debug("初始化存储策略 [{}] 失败: 参数不完整", getStorageTypeEnum().getDescription()); - isInitialized = false; - } else { - BasicAWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey); - s3Client = AmazonS3ClientBuilder.standard() - .withCredentials(new AWSStaticCredentialsProvider(credentials)) - .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(endPoint, "obs")).build(); - - testConnection(); - isInitialized = true; - } - } - - @Override - public StorageTypeEnum getStorageTypeEnum() { - return StorageTypeEnum.HUAWEI; - } - - @Override - public List storageStrategyConfigList() { - return new ArrayList() {{ - add(new StorageConfig("accessKey", "AccessKey")); - add(new StorageConfig("secretKey", "SecretKey")); - add(new StorageConfig("bucketName", "云存储服务名称")); - add(new StorageConfig("domain", "加速域名")); - add(new StorageConfig("endPoint", "区域")); - add(new StorageConfig("basePath", "基路径")); - add(new StorageConfig("isPrivate", "是否是私有空间")); - }}; - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/service/impl/LocalServiceImpl.java b/src/main/java/im/zhaojun/zfile/service/impl/LocalServiceImpl.java deleted file mode 100644 index e426889..0000000 --- a/src/main/java/im/zhaojun/zfile/service/impl/LocalServiceImpl.java +++ /dev/null @@ -1,160 +0,0 @@ -package im.zhaojun.zfile.service.impl; - -import cn.hutool.core.util.StrUtil; -import im.zhaojun.zfile.exception.InitializeDriveException; -import im.zhaojun.zfile.exception.NotExistFileException; -import im.zhaojun.zfile.model.constant.StorageConfigConstant; -import im.zhaojun.zfile.model.constant.SystemConfigConstant; -import im.zhaojun.zfile.model.constant.ZFileConstant; -import im.zhaojun.zfile.model.dto.FileItemDTO; -import im.zhaojun.zfile.model.entity.StorageConfig; -import im.zhaojun.zfile.model.entity.SystemConfig; -import im.zhaojun.zfile.model.enums.FileTypeEnum; -import im.zhaojun.zfile.model.enums.StorageTypeEnum; -import im.zhaojun.zfile.repository.SystemConfigRepository; -import im.zhaojun.zfile.service.StorageConfigService; -import im.zhaojun.zfile.service.base.AbstractBaseFileService; -import im.zhaojun.zfile.service.base.BaseFileService; -import im.zhaojun.zfile.util.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.config.ConfigurableBeanFactory; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; -import java.io.File; -import java.io.FileNotFoundException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.Objects; - -/** - * @author zhaojun - */ -@Service -@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) -public class LocalServiceImpl extends AbstractBaseFileService implements BaseFileService { - - private static final Logger log = LoggerFactory.getLogger(LocalServiceImpl.class); - - @Resource - private StorageConfigService storageConfigService; - - @Resource - private SystemConfigRepository systemConfigRepository; - - private String filePath; - - @Override - public void init(Integer driveId) { - this.driveId = driveId; - Map stringStorageConfigMap = - storageConfigService.selectStorageConfigMapByDriveId(driveId); - this.mergeStrategyConfig(stringStorageConfigMap); - filePath = stringStorageConfigMap.get(StorageConfigConstant.FILE_PATH_KEY).getValue(); - if (Objects.isNull(filePath)) { - log.debug("初始化存储策略 [{}] 失败: 参数不完整", getStorageTypeEnum().getDescription()); - isInitialized = false; - return; - } - - File file = new File(filePath); - if (!file.exists()) { - throw new InitializeDriveException("文件路径: \"" + file.getAbsolutePath() + "\"不存在, 请检查是否填写正确."); - } else { - testConnection(); - isInitialized = true; - } - } - - - @Override - public List fileList(String path) throws FileNotFoundException { - if (StrUtil.startWith(path, "..") || StrUtil.startWith(path, "/..")) { - return Collections.emptyList(); - } - List fileItemList = new ArrayList<>(); - - String fullPath = StringUtils.removeDuplicateSeparator(filePath + path); - - File file = new File(fullPath); - - if (!file.exists()) { - throw new FileNotFoundException("文件不存在"); - } - - File[] files = file.listFiles(); - - if (files == null) { - return fileItemList; - } - for (File f : files) { - FileItemDTO fileItemDTO = new FileItemDTO(); - fileItemDTO.setType(f.isDirectory() ? FileTypeEnum.FOLDER : FileTypeEnum.FILE); - fileItemDTO.setTime(new Date(f.lastModified())); - fileItemDTO.setSize(f.length()); - fileItemDTO.setName(f.getName()); - fileItemDTO.setPath(path); - if (f.isFile()) { - fileItemDTO.setUrl(getDownloadUrl(StringUtils.concatUrl(path, f.getName()))); - } - fileItemList.add(fileItemDTO); - } - - return fileItemList; - } - - @Override - public String getDownloadUrl(String path) { - SystemConfig usernameConfig = systemConfigRepository.findByKey(SystemConfigConstant.DOMAIN); - return StringUtils.removeDuplicateSeparator(usernameConfig.getValue() + "/file/" + driveId + ZFileConstant.PATH_SEPARATOR + path); - } - - public String getFilePath() { - return filePath; - } - - public void setFilePath(String filePath) { - this.filePath = filePath; - } - - @Override - public StorageTypeEnum getStorageTypeEnum() { - return StorageTypeEnum.LOCAL; - } - - @Override - public FileItemDTO getFileItem(String path) { - String fullPath = filePath + path; - - File file = new File(fullPath); - - if (!file.exists()) { - throw new NotExistFileException(); - } - - FileItemDTO fileItemDTO = new FileItemDTO(); - fileItemDTO.setType(file.isDirectory() ? FileTypeEnum.FOLDER : FileTypeEnum.FILE); - fileItemDTO.setTime(new Date(file.lastModified())); - fileItemDTO.setSize(file.length()); - fileItemDTO.setName(file.getName()); - fileItemDTO.setPath(filePath); - if (file.isFile()) { - fileItemDTO.setUrl(getDownloadUrl(path)); - } - - return fileItemDTO; - } - - @Override - public List storageStrategyConfigList() { - return new ArrayList() {{ - add(new StorageConfig("filePath", "文件路径")); - }}; - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/service/impl/MinIOServiceImpl.java b/src/main/java/im/zhaojun/zfile/service/impl/MinIOServiceImpl.java deleted file mode 100644 index 556215b..0000000 --- a/src/main/java/im/zhaojun/zfile/service/impl/MinIOServiceImpl.java +++ /dev/null @@ -1,83 +0,0 @@ -package im.zhaojun.zfile.service.impl; - -import cn.hutool.core.convert.Convert; -import com.amazonaws.auth.AWSStaticCredentialsProvider; -import com.amazonaws.auth.BasicAWSCredentials; -import com.amazonaws.client.builder.AwsClientBuilder; -import com.amazonaws.services.s3.AmazonS3ClientBuilder; -import im.zhaojun.zfile.model.constant.StorageConfigConstant; -import im.zhaojun.zfile.model.entity.StorageConfig; -import im.zhaojun.zfile.model.enums.StorageTypeEnum; -import im.zhaojun.zfile.service.base.AbstractS3BaseFileService; -import im.zhaojun.zfile.service.base.BaseFileService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.config.ConfigurableBeanFactory; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Service; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Objects; - -/** - * @author zhaojun - */ -@Service -@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) -public class MinIOServiceImpl extends AbstractS3BaseFileService implements BaseFileService { - - private static final Logger log = LoggerFactory.getLogger(MinIOServiceImpl.class); - - @Override - public void init(Integer driveId) { - this.driveId = driveId; - Map stringStorageConfigMap = - storageConfigService.selectStorageConfigMapByDriveId(driveId); - this.mergeStrategyConfig(stringStorageConfigMap); - String accessKey = stringStorageConfigMap.get(StorageConfigConstant.ACCESS_KEY).getValue(); - String secretKey = stringStorageConfigMap.get(StorageConfigConstant.SECRET_KEY).getValue(); - String endPoint = stringStorageConfigMap.get(StorageConfigConstant.ENDPOINT_KEY).getValue(); - String region = stringStorageConfigMap.get(StorageConfigConstant.REGION_KEY).getValue(); - - bucketName = stringStorageConfigMap.get(StorageConfigConstant.BUCKET_NAME_KEY).getValue(); - basePath = stringStorageConfigMap.get(StorageConfigConstant.BASE_PATH).getValue(); - isPrivate = Convert.toBool(stringStorageConfigMap.get(StorageConfigConstant.IS_PRIVATE).getValue(), true); - - if (Objects.isNull(accessKey) || Objects.isNull(secretKey) || Objects.isNull(endPoint) || Objects.isNull(bucketName)) { - log.debug("初始化存储策略 [{}] 失败: 参数不完整", getStorageTypeEnum().getDescription()); - isInitialized = false; - } else { - BasicAWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey); - s3Client = AmazonS3ClientBuilder.standard() - .withPathStyleAccessEnabled(true) - .withCredentials(new AWSStaticCredentialsProvider(credentials)) - .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(endPoint, region)).build(); - - testConnection(); - isInitialized = true; - } - } - - - - @Override - public StorageTypeEnum getStorageTypeEnum() { - return StorageTypeEnum.MINIO; - } - - @Override - public List storageStrategyConfigList() { - return new ArrayList() {{ - add(new StorageConfig("accessKey", "AccessKey")); - add(new StorageConfig("secretKey", "SecretKey")); - add(new StorageConfig("endPoint", "服务地址")); - add(new StorageConfig("bucketName", "存储空间名称")); - add(new StorageConfig("region", "地域")); - add(new StorageConfig("basePath", "基路径")); - add(new StorageConfig("isPrivate", "是否是私有空间")); - }}; - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/service/impl/OneDriveChinaServiceImpl.java b/src/main/java/im/zhaojun/zfile/service/impl/OneDriveChinaServiceImpl.java deleted file mode 100644 index 65d409a..0000000 --- a/src/main/java/im/zhaojun/zfile/service/impl/OneDriveChinaServiceImpl.java +++ /dev/null @@ -1,102 +0,0 @@ -package im.zhaojun.zfile.service.impl; - -import im.zhaojun.zfile.model.constant.StorageConfigConstant; -import im.zhaojun.zfile.model.entity.StorageConfig; -import im.zhaojun.zfile.model.enums.StorageTypeEnum; -import im.zhaojun.zfile.service.StorageConfigService; -import im.zhaojun.zfile.service.base.AbstractOneDriveServiceBase; -import im.zhaojun.zfile.service.base.BaseFileService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.beans.factory.config.ConfigurableBeanFactory; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Service; -import org.springframework.util.StringUtils; - -import javax.annotation.Resource; -import java.util.Map; - -/** - * @author zhaojun - */ -@Service -@Slf4j -@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) -public class OneDriveChinaServiceImpl extends AbstractOneDriveServiceBase implements BaseFileService { - - @Resource - private StorageConfigService storageConfigService; - - @Value("${zfile.onedrive-china.clientId}") - private String clientId; - - @Value("${zfile.onedrive-china.redirectUri}") - private String redirectUri; - - @Value("${zfile.onedrive-china.clientSecret}") - private String clientSecret; - - @Value("${zfile.onedrive-china.scope}") - private String scope; - - @Override - public void init(Integer driveId) { - this.driveId = driveId; - Map stringStorageConfigMap = - storageConfigService.selectStorageConfigMapByDriveId(driveId); - this.mergeStrategyConfig(stringStorageConfigMap); - String accessToken = stringStorageConfigMap.get(StorageConfigConstant.ACCESS_TOKEN_KEY).getValue(); - String refreshToken = stringStorageConfigMap.get(StorageConfigConstant.REFRESH_TOKEN_KEY).getValue(); - super.basePath = stringStorageConfigMap.get(StorageConfigConstant.BASE_PATH).getValue(); - StorageConfig proxyDomainStorageConfig = stringStorageConfigMap.get(StorageConfigConstant.PROXY_DOMAIN); - if (proxyDomainStorageConfig != null) { - super.proxyDomain = proxyDomainStorageConfig.getValue(); - } - - - if (StringUtils.isEmpty(accessToken) || StringUtils.isEmpty(refreshToken)) { - log.debug("初始化存储策略 [{}] 失败: 参数不完整", getStorageTypeEnum().getDescription()); - isInitialized = false; - } else { - refreshOneDriveToken(); - testConnection(); - isInitialized = true; - } - } - - @Override - public StorageTypeEnum getStorageTypeEnum() { - return StorageTypeEnum.ONE_DRIVE_CHINA; - } - - @Override - public String getGraphEndPoint() { - return "microsoftgraph.chinacloudapi.cn"; - } - - @Override - public String getAuthenticateEndPoint() { - return "login.partner.microsoftonline.cn"; - } - - @Override - public String getClientId() { - return clientId; - } - - @Override - public String getRedirectUri() { - return redirectUri; - } - - @Override - public String getClientSecret() { - return clientSecret; - } - - @Override - public String getScope() { - return scope; - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/service/impl/OneDriveServiceImpl.java b/src/main/java/im/zhaojun/zfile/service/impl/OneDriveServiceImpl.java deleted file mode 100644 index 81a9451..0000000 --- a/src/main/java/im/zhaojun/zfile/service/impl/OneDriveServiceImpl.java +++ /dev/null @@ -1,101 +0,0 @@ -package im.zhaojun.zfile.service.impl; - -import im.zhaojun.zfile.model.constant.StorageConfigConstant; -import im.zhaojun.zfile.model.entity.StorageConfig; -import im.zhaojun.zfile.model.enums.StorageTypeEnum; -import im.zhaojun.zfile.service.StorageConfigService; -import im.zhaojun.zfile.service.base.AbstractOneDriveServiceBase; -import im.zhaojun.zfile.service.base.BaseFileService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.beans.factory.config.ConfigurableBeanFactory; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Service; -import org.springframework.util.StringUtils; - -import javax.annotation.Resource; -import java.util.Map; - -/** - * @author zhaojun - */ -@Service -@Slf4j -@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) -public class OneDriveServiceImpl extends AbstractOneDriveServiceBase implements BaseFileService { - - @Resource - private StorageConfigService storageConfigService; - - @Value("${zfile.onedrive.clientId}") - protected String clientId; - - @Value("${zfile.onedrive.redirectUri}") - protected String redirectUri; - - @Value("${zfile.onedrive.clientSecret}") - protected String clientSecret; - - @Value("${zfile.onedrive.scope}") - protected String scope; - - @Override - public void init(Integer driveId) { - this.driveId = driveId; - Map stringStorageConfigMap = - storageConfigService.selectStorageConfigMapByDriveId(driveId); - this.mergeStrategyConfig(stringStorageConfigMap); - String accessToken = stringStorageConfigMap.get(StorageConfigConstant.ACCESS_TOKEN_KEY).getValue(); - String refreshToken = stringStorageConfigMap.get(StorageConfigConstant.REFRESH_TOKEN_KEY).getValue(); - super.basePath = stringStorageConfigMap.get(StorageConfigConstant.BASE_PATH).getValue(); - StorageConfig proxyDomainStorageConfig = stringStorageConfigMap.get(StorageConfigConstant.PROXY_DOMAIN); - if (proxyDomainStorageConfig != null) { - super.proxyDomain = proxyDomainStorageConfig.getValue(); - } - - if (StringUtils.isEmpty(accessToken) || StringUtils.isEmpty(refreshToken)) { - log.debug("初始化存储策略 [{}] 失败: 参数不完整", getStorageTypeEnum().getDescription()); - isInitialized = false; - } else { - refreshOneDriveToken(); - testConnection(); - isInitialized = true; - } - } - - @Override - public StorageTypeEnum getStorageTypeEnum() { - return StorageTypeEnum.ONE_DRIVE; - } - - @Override - public String getGraphEndPoint() { - return "graph.microsoft.com"; - } - - @Override - public String getAuthenticateEndPoint() { - return "login.microsoftonline.com"; - } - - @Override - public String getClientId() { - return clientId; - } - - @Override - public String getRedirectUri() { - return redirectUri; - } - - @Override - public String getClientSecret() { - return clientSecret; - } - - @Override - public String getScope() { - return scope; - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/service/impl/QiniuServiceImpl.java b/src/main/java/im/zhaojun/zfile/service/impl/QiniuServiceImpl.java deleted file mode 100644 index b320959..0000000 --- a/src/main/java/im/zhaojun/zfile/service/impl/QiniuServiceImpl.java +++ /dev/null @@ -1,80 +0,0 @@ -package im.zhaojun.zfile.service.impl; - -import cn.hutool.core.convert.Convert; -import com.amazonaws.auth.AWSStaticCredentialsProvider; -import com.amazonaws.auth.BasicAWSCredentials; -import com.amazonaws.client.builder.AwsClientBuilder; -import com.amazonaws.services.s3.AmazonS3ClientBuilder; -import im.zhaojun.zfile.model.constant.StorageConfigConstant; -import im.zhaojun.zfile.model.entity.StorageConfig; -import im.zhaojun.zfile.model.enums.StorageTypeEnum; -import im.zhaojun.zfile.service.base.AbstractS3BaseFileService; -import im.zhaojun.zfile.service.base.BaseFileService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.config.ConfigurableBeanFactory; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Service; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Objects; - -/** - * @author zhaojun - */ -@Service -@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) -public class QiniuServiceImpl extends AbstractS3BaseFileService implements BaseFileService { - - private static final Logger log = LoggerFactory.getLogger(QiniuServiceImpl.class); - - @Override - public void init(Integer driveId) { - this.driveId = driveId; - Map stringStorageConfigMap = - storageConfigService.selectStorageConfigMapByDriveId(driveId); - this.mergeStrategyConfig(stringStorageConfigMap); - String accessKey = stringStorageConfigMap.get(StorageConfigConstant.ACCESS_KEY).getValue(); - String secretKey = stringStorageConfigMap.get(StorageConfigConstant.SECRET_KEY).getValue(); - String endPoint = stringStorageConfigMap.get(StorageConfigConstant.ENDPOINT_KEY).getValue(); - - bucketName = stringStorageConfigMap.get(StorageConfigConstant.BUCKET_NAME_KEY).getValue(); - domain = stringStorageConfigMap.get(StorageConfigConstant.DOMAIN_KEY).getValue(); - basePath = stringStorageConfigMap.get(StorageConfigConstant.BASE_PATH).getValue(); - isPrivate = Convert.toBool(stringStorageConfigMap.get(StorageConfigConstant.IS_PRIVATE).getValue(), true); - - if (Objects.isNull(accessKey) || Objects.isNull(secretKey) || Objects.isNull(endPoint) || Objects.isNull(bucketName)) { - log.debug("初始化存储策略 [{}] 失败: 参数不完整", getStorageTypeEnum().getDescription()); - isInitialized = false; - } else { - BasicAWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey); - s3Client = AmazonS3ClientBuilder.standard() - .withCredentials(new AWSStaticCredentialsProvider(credentials)) - .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(endPoint, "kodo")).build(); - - testConnection(); - isInitialized = true; - } - } - - @Override - public StorageTypeEnum getStorageTypeEnum() { - return StorageTypeEnum.QINIU; - } - - @Override - public List storageStrategyConfigList() { - return new ArrayList() {{ - add(new StorageConfig("accessKey", "AccessKey")); - add(new StorageConfig("secretKey", "SecretKey")); - add(new StorageConfig("bucketName", "存储空间名称")); - add(new StorageConfig("domain", "加速域名")); - add(new StorageConfig("endPoint", "区域")); - add(new StorageConfig("basePath", "基路径")); - add(new StorageConfig("isPrivate", "是否是私有空间")); - }}; - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/service/impl/S3ServiceImpl.java b/src/main/java/im/zhaojun/zfile/service/impl/S3ServiceImpl.java deleted file mode 100644 index 1c30bdb..0000000 --- a/src/main/java/im/zhaojun/zfile/service/impl/S3ServiceImpl.java +++ /dev/null @@ -1,92 +0,0 @@ -package im.zhaojun.zfile.service.impl; - -import cn.hutool.core.convert.Convert; -import cn.hutool.core.util.StrUtil; -import com.amazonaws.auth.AWSStaticCredentialsProvider; -import com.amazonaws.auth.BasicAWSCredentials; -import com.amazonaws.client.builder.AwsClientBuilder; -import com.amazonaws.services.s3.AmazonS3ClientBuilder; -import im.zhaojun.zfile.model.constant.StorageConfigConstant; -import im.zhaojun.zfile.model.entity.StorageConfig; -import im.zhaojun.zfile.model.enums.StorageTypeEnum; -import im.zhaojun.zfile.service.base.AbstractS3BaseFileService; -import im.zhaojun.zfile.service.base.BaseFileService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.config.ConfigurableBeanFactory; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Service; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Objects; - -/** - * @author zhaojun - */ -@Service -@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) -public class S3ServiceImpl extends AbstractS3BaseFileService implements BaseFileService { - - private static final Logger log = LoggerFactory.getLogger(S3ServiceImpl.class); - - @Override - public void init(Integer driveId) { - this.driveId = driveId; - Map stringStorageConfigMap = - storageConfigService.selectStorageConfigMapByDriveId(driveId); - this.mergeStrategyConfig(stringStorageConfigMap); - String accessKey = stringStorageConfigMap.get(StorageConfigConstant.ACCESS_KEY).getValue(); - String secretKey = stringStorageConfigMap.get(StorageConfigConstant.SECRET_KEY).getValue(); - String endPoint = stringStorageConfigMap.get(StorageConfigConstant.ENDPOINT_KEY).getValue(); - String region = stringStorageConfigMap.get(StorageConfigConstant.REGION_KEY).getValue(); - - super.domain = stringStorageConfigMap.get(StorageConfigConstant.DOMAIN_KEY).getValue(); - super.basePath = stringStorageConfigMap.get(StorageConfigConstant.BASE_PATH).getValue(); - super.bucketName = stringStorageConfigMap.get(StorageConfigConstant.BUCKET_NAME_KEY).getValue(); - super.isPrivate = Convert.toBool(stringStorageConfigMap.get(StorageConfigConstant.IS_PRIVATE).getValue(), true); - - String pathStyle = stringStorageConfigMap.get(StorageConfigConstant.PATH_STYLE).getValue(); - - boolean isPathStyle = "path-style".equals(pathStyle); - - if (Objects.isNull(accessKey) || Objects.isNull(secretKey) || Objects.isNull(endPoint) || Objects.isNull(bucketName)) { - log.debug("初始化存储策略 [{}] 失败: 参数不完整", getStorageTypeEnum().getDescription()); - isInitialized = false; - } else { - if (StrUtil.isNotEmpty(endPoint) && StrUtil.isEmpty(region)) { - region = endPoint.split("\\.")[1]; - } - BasicAWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey); - s3Client = AmazonS3ClientBuilder.standard() - .withPathStyleAccessEnabled(isPathStyle) - .withCredentials(new AWSStaticCredentialsProvider(credentials)) - .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(endPoint, region)).build(); - - testConnection(); - isInitialized = true; - } - } - - @Override - public StorageTypeEnum getStorageTypeEnum() { - return StorageTypeEnum.S3; - } - - @Override - public List storageStrategyConfigList() { - return new ArrayList() {{ - add(new StorageConfig("accessKey", "AccessKey")); - add(new StorageConfig("secretKey", "SecretKey")); - add(new StorageConfig("endPoint", "服务地址(EndPoint)")); - add(new StorageConfig("bucketName", "存储空间名称")); - add(new StorageConfig("region", "地域")); - add(new StorageConfig("basePath", "基路径")); - add(new StorageConfig("domain", "加速域名")); - add(new StorageConfig("pathStyle", "域名风格")); - add(new StorageConfig("isPrivate", "是否是私有空间")); - }}; - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/service/impl/SharePointChinaServiceImpl.java b/src/main/java/im/zhaojun/zfile/service/impl/SharePointChinaServiceImpl.java deleted file mode 100644 index 0af4c07..0000000 --- a/src/main/java/im/zhaojun/zfile/service/impl/SharePointChinaServiceImpl.java +++ /dev/null @@ -1,102 +0,0 @@ -package im.zhaojun.zfile.service.impl; - -import im.zhaojun.zfile.model.constant.StorageConfigConstant; -import im.zhaojun.zfile.model.entity.StorageConfig; -import im.zhaojun.zfile.model.enums.StorageTypeEnum; -import im.zhaojun.zfile.service.StorageConfigService; -import im.zhaojun.zfile.service.base.AbstractSharePointServiceBase; -import im.zhaojun.zfile.service.base.BaseFileService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.beans.factory.config.ConfigurableBeanFactory; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Service; -import org.springframework.util.StringUtils; - -import javax.annotation.Resource; -import java.util.Map; - -/** - * @author zhaojun - */ -@Service -@Slf4j -@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) -public class SharePointChinaServiceImpl extends AbstractSharePointServiceBase implements BaseFileService { - - @Resource - private StorageConfigService storageConfigService; - - @Value("${zfile.onedrive-china.clientId}") - private String clientId; - - @Value("${zfile.onedrive-china.redirectUri}") - private String redirectUri; - - @Value("${zfile.onedrive-china.clientSecret}") - private String clientSecret; - - @Value("${zfile.onedrive-china.scope}") - private String scope; - - @Override - public void init(Integer driveId) { - this.driveId = driveId; - Map stringStorageConfigMap = - storageConfigService.selectStorageConfigMapByDriveId(driveId); - this.mergeStrategyConfig(stringStorageConfigMap); - String accessToken = stringStorageConfigMap.get(StorageConfigConstant.ACCESS_TOKEN_KEY).getValue(); - String refreshToken = stringStorageConfigMap.get(StorageConfigConstant.REFRESH_TOKEN_KEY).getValue(); - super.siteId = stringStorageConfigMap.get(StorageConfigConstant.SHAREPOINT_SITE_ID).getValue(); - super.basePath = stringStorageConfigMap.get(StorageConfigConstant.BASE_PATH).getValue(); - StorageConfig proxyDomainStorageConfig = stringStorageConfigMap.get(StorageConfigConstant.PROXY_DOMAIN); - if (proxyDomainStorageConfig != null) { - super.proxyDomain = proxyDomainStorageConfig.getValue(); - } - - if (StringUtils.isEmpty(accessToken) || StringUtils.isEmpty(refreshToken)) { - log.debug("初始化存储策略 [{}] 失败: 参数不完整", getStorageTypeEnum().getDescription()); - isInitialized = false; - } else { - refreshOneDriveToken(); - testConnection(); - isInitialized = true; - } - } - - @Override - public StorageTypeEnum getStorageTypeEnum() { - return StorageTypeEnum.SHAREPOINT_DRIVE_CHINA; - } - - @Override - public String getGraphEndPoint() { - return "microsoftgraph.chinacloudapi.cn"; - } - - @Override - public String getAuthenticateEndPoint() { - return "login.partner.microsoftonline.cn"; - } - - @Override - public String getClientId() { - return clientId; - } - - @Override - public String getRedirectUri() { - return redirectUri; - } - - @Override - public String getClientSecret() { - return clientSecret; - } - - @Override - public String getScope() { - return scope; - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/service/impl/SharePointServiceImpl.java b/src/main/java/im/zhaojun/zfile/service/impl/SharePointServiceImpl.java deleted file mode 100644 index e5dfd81..0000000 --- a/src/main/java/im/zhaojun/zfile/service/impl/SharePointServiceImpl.java +++ /dev/null @@ -1,102 +0,0 @@ -package im.zhaojun.zfile.service.impl; - -import im.zhaojun.zfile.model.constant.StorageConfigConstant; -import im.zhaojun.zfile.model.entity.StorageConfig; -import im.zhaojun.zfile.model.enums.StorageTypeEnum; -import im.zhaojun.zfile.service.StorageConfigService; -import im.zhaojun.zfile.service.base.AbstractSharePointServiceBase; -import im.zhaojun.zfile.service.base.BaseFileService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.beans.factory.config.ConfigurableBeanFactory; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Service; -import org.springframework.util.StringUtils; - -import javax.annotation.Resource; -import java.util.Map; - -/** - * @author zhaojun - */ -@Service -@Slf4j -@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) -public class SharePointServiceImpl extends AbstractSharePointServiceBase implements BaseFileService { - - @Resource - private StorageConfigService storageConfigService; - - @Value("${zfile.onedrive.clientId}") - protected String clientId; - - @Value("${zfile.onedrive.redirectUri}") - protected String redirectUri; - - @Value("${zfile.onedrive.clientSecret}") - protected String clientSecret; - - @Value("${zfile.onedrive.scope}") - protected String scope; - - @Override - public void init(Integer driveId) { - this.driveId = driveId; - Map stringStorageConfigMap = - storageConfigService.selectStorageConfigMapByDriveId(driveId); - this.mergeStrategyConfig(stringStorageConfigMap); - String accessToken = stringStorageConfigMap.get(StorageConfigConstant.ACCESS_TOKEN_KEY).getValue(); - String refreshToken = stringStorageConfigMap.get(StorageConfigConstant.REFRESH_TOKEN_KEY).getValue(); - super.siteId = stringStorageConfigMap.get(StorageConfigConstant.SHAREPOINT_SITE_ID).getValue(); - super.basePath = stringStorageConfigMap.get(StorageConfigConstant.BASE_PATH).getValue(); - StorageConfig proxyDomainStorageConfig = stringStorageConfigMap.get(StorageConfigConstant.PROXY_DOMAIN); - if (proxyDomainStorageConfig != null) { - super.proxyDomain = proxyDomainStorageConfig.getValue(); - } - - if (StringUtils.isEmpty(accessToken) || StringUtils.isEmpty(refreshToken)) { - log.debug("初始化存储策略 [{}] 失败: 参数不完整", getStorageTypeEnum().getDescription()); - isInitialized = false; - } else { - refreshOneDriveToken(); - testConnection(); - isInitialized = true; - } - } - - @Override - public StorageTypeEnum getStorageTypeEnum() { - return StorageTypeEnum.SHAREPOINT_DRIVE; - } - - @Override - public String getGraphEndPoint() { - return "graph.microsoft.com"; - } - - @Override - public String getAuthenticateEndPoint() { - return "login.microsoftonline.com"; - } - - @Override - public String getClientId() { - return clientId; - } - - @Override - public String getRedirectUri() { - return redirectUri; - } - - @Override - public String getClientSecret() { - return clientSecret; - } - - @Override - public String getScope() { - return scope; - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/service/impl/TencentServiceImpl.java b/src/main/java/im/zhaojun/zfile/service/impl/TencentServiceImpl.java deleted file mode 100644 index 5f1409b..0000000 --- a/src/main/java/im/zhaojun/zfile/service/impl/TencentServiceImpl.java +++ /dev/null @@ -1,80 +0,0 @@ -package im.zhaojun.zfile.service.impl; - -import cn.hutool.core.convert.Convert; -import com.amazonaws.auth.AWSStaticCredentialsProvider; -import com.amazonaws.auth.BasicAWSCredentials; -import com.amazonaws.client.builder.AwsClientBuilder; -import com.amazonaws.services.s3.AmazonS3ClientBuilder; -import im.zhaojun.zfile.model.constant.StorageConfigConstant; -import im.zhaojun.zfile.model.entity.StorageConfig; -import im.zhaojun.zfile.model.enums.StorageTypeEnum; -import im.zhaojun.zfile.service.base.AbstractS3BaseFileService; -import im.zhaojun.zfile.service.base.BaseFileService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.config.ConfigurableBeanFactory; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Service; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Objects; - -/** - * @author zhaojun - */ -@Service -@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) -public class TencentServiceImpl extends AbstractS3BaseFileService implements BaseFileService { - - private static final Logger log = LoggerFactory.getLogger(TencentServiceImpl.class); - - @Override - public void init(Integer driveId) { - this.driveId = driveId; - Map stringStorageConfigMap = - storageConfigService.selectStorageConfigMapByDriveId(driveId); - this.mergeStrategyConfig(stringStorageConfigMap); - String secretId = stringStorageConfigMap.get(StorageConfigConstant.SECRET_ID_KEY).getValue(); - String secretKey = stringStorageConfigMap.get(StorageConfigConstant.SECRET_KEY).getValue(); - String endPoint = stringStorageConfigMap.get(StorageConfigConstant.ENDPOINT_KEY).getValue(); - bucketName = stringStorageConfigMap.get(StorageConfigConstant.BUCKET_NAME_KEY).getValue(); - domain = stringStorageConfigMap.get(StorageConfigConstant.DOMAIN_KEY).getValue(); - basePath = stringStorageConfigMap.get(StorageConfigConstant.BASE_PATH).getValue(); - isPrivate = Convert.toBool(stringStorageConfigMap.get(StorageConfigConstant.IS_PRIVATE).getValue(), true); - - if (Objects.isNull(secretId) || Objects.isNull(secretKey) || Objects.isNull(endPoint) || Objects.isNull(bucketName)) { - log.debug("初始化存储策略 [{}] 失败: 参数不完整", getStorageTypeEnum().getDescription()); - isInitialized = false; - } else { - BasicAWSCredentials credentials = new BasicAWSCredentials(secretId, secretKey); - s3Client = AmazonS3ClientBuilder.standard() - .withCredentials(new AWSStaticCredentialsProvider(credentials)) - .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(endPoint, "cos")).build(); - - testConnection(); - isInitialized = true; - } - } - - - @Override - public StorageTypeEnum getStorageTypeEnum() { - return StorageTypeEnum.TENCENT; - } - - @Override - public List storageStrategyConfigList() { - return new ArrayList() {{ - add(new StorageConfig("secretId", "SecretId")); - add(new StorageConfig("secretKey", "SecretKey")); - add(new StorageConfig("bucketName", "云存储服务名称")); - add(new StorageConfig("domain", "加速域名")); - add(new StorageConfig("endPoint", "区域")); - add(new StorageConfig("basePath", "基路径")); - add(new StorageConfig("isPrivate", "是否是私有空间")); - }}; - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/service/impl/UFileServiceImpl.java b/src/main/java/im/zhaojun/zfile/service/impl/UFileServiceImpl.java deleted file mode 100644 index cbc7802..0000000 --- a/src/main/java/im/zhaojun/zfile/service/impl/UFileServiceImpl.java +++ /dev/null @@ -1,20 +0,0 @@ -package im.zhaojun.zfile.service.impl; - -import im.zhaojun.zfile.model.enums.StorageTypeEnum; -import org.springframework.beans.factory.config.ConfigurableBeanFactory; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Service; - -/** - * @author zhaojun - */ -@Service -@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) -public class UFileServiceImpl extends UpYunServiceImpl { - - @Override - public StorageTypeEnum getStorageTypeEnum() { - return StorageTypeEnum.UFILE; - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/service/impl/UpYunServiceImpl.java b/src/main/java/im/zhaojun/zfile/service/impl/UpYunServiceImpl.java deleted file mode 100644 index 7aa8a6e..0000000 --- a/src/main/java/im/zhaojun/zfile/service/impl/UpYunServiceImpl.java +++ /dev/null @@ -1,162 +0,0 @@ -package im.zhaojun.zfile.service.impl; - -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.URLUtil; -import com.UpYun; -import com.upyun.UpException; -import im.zhaojun.zfile.exception.NotExistFileException; -import im.zhaojun.zfile.model.constant.StorageConfigConstant; -import im.zhaojun.zfile.model.constant.ZFileConstant; -import im.zhaojun.zfile.model.dto.FileItemDTO; -import im.zhaojun.zfile.model.entity.StorageConfig; -import im.zhaojun.zfile.model.enums.FileTypeEnum; -import im.zhaojun.zfile.model.enums.StorageTypeEnum; -import im.zhaojun.zfile.service.StorageConfigService; -import im.zhaojun.zfile.service.base.AbstractBaseFileService; -import im.zhaojun.zfile.service.base.BaseFileService; -import im.zhaojun.zfile.util.StringUtils; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.config.ConfigurableBeanFactory; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; -import java.io.IOException; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; - -/** - * @author zhaojun - */ -@Service -@Slf4j -@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) -public class UpYunServiceImpl extends AbstractBaseFileService implements BaseFileService { - - private static final String END_MARK = "g2gCZAAEbmV4dGQAA2VvZg"; - - @Resource - private StorageConfigService storageConfigService; - - private String domain; - - private UpYun upYun; - - private String basePath; - - @Override - public void init(Integer driveId) { - this.driveId = driveId; - Map stringStorageConfigMap = - storageConfigService.selectStorageConfigMapByDriveId(driveId); - this.mergeStrategyConfig(stringStorageConfigMap); - String bucketName = stringStorageConfigMap.get(StorageConfigConstant.BUCKET_NAME_KEY).getValue(); - String username = stringStorageConfigMap.get(StorageConfigConstant.USERNAME_KEY).getValue(); - String password = stringStorageConfigMap.get(StorageConfigConstant.PASSWORD_KEY).getValue(); - domain = stringStorageConfigMap.get(StorageConfigConstant.DOMAIN_KEY).getValue(); - basePath = stringStorageConfigMap.get(StorageConfigConstant.BASE_PATH).getValue(); - basePath = ObjectUtil.defaultIfNull(basePath, ""); - - if (Objects.isNull(bucketName) || Objects.isNull(username) || Objects.isNull(password)) { - log.debug("初始化存储策略 [{}] 失败: 参数不完整", getStorageTypeEnum().getDescription()); - isInitialized = false; - } else { - upYun = new UpYun(bucketName, username, password); - testConnection(); - isInitialized = true; - } - } - - @Override - public List fileList(String path) throws Exception { - ArrayList fileItemList = new ArrayList<>(); - String nextMark = null; - - do { - HashMap hashMap = new HashMap<>(24); - hashMap.put("x-list-iter", nextMark); - hashMap.put("x-list-limit", "100"); - UpYun.FolderItemIter folderItemIter = upYun.readDirIter(URLUtil.encode(basePath + path), hashMap); - nextMark = folderItemIter.iter; - ArrayList folderItems = folderItemIter.files; - if (folderItems != null) { - for (UpYun.FolderItem folderItem : folderItems) { - FileItemDTO fileItemDTO = new FileItemDTO(); - fileItemDTO.setName(folderItem.name); - fileItemDTO.setSize(folderItem.size); - fileItemDTO.setTime(folderItem.date); - fileItemDTO.setPath(path); - - if ("folder".equals(folderItem.type)) { - fileItemDTO.setType(FileTypeEnum.FOLDER); - } else { - fileItemDTO.setType(FileTypeEnum.FILE); - fileItemDTO.setUrl(getDownloadUrl(StringUtils.concatUrl(basePath + path, fileItemDTO.getName()))); - } - fileItemList.add(fileItemDTO); - } - } - } while (!END_MARK.equals(nextMark)); - return fileItemList; - - } - - @Override - public String getDownloadUrl(String path) { - return URLUtil.complateUrl(domain, path); - } - - @Override - public StorageTypeEnum getStorageTypeEnum() { - return StorageTypeEnum.UPYUN; - } - - @Override - public FileItemDTO getFileItem(String path) { - try { - int lastDelimiterIndex = path.lastIndexOf("/"); - String name = path.substring(lastDelimiterIndex + 1); - - Map fileInfo = upYun.getFileInfo(URLUtil.encode(StringUtils.removeDuplicateSeparator(basePath + ZFileConstant.PATH_SEPARATOR + path), StandardCharsets.UTF_8)); - - if (fileInfo == null) { - throw new NotExistFileException(); - } - - FileItemDTO fileItemDTO = new FileItemDTO(); - fileItemDTO.setName(name); - fileItemDTO.setSize(Long.valueOf(fileInfo.get("size"))); - fileItemDTO.setTime(new Date(Long.parseLong(fileInfo.get("date")) * 1000)); - fileItemDTO.setPath(path); - - if ("folder".equals(fileInfo.get("type"))) { - fileItemDTO.setType(FileTypeEnum.FOLDER); - } else { - fileItemDTO.setType(FileTypeEnum.FILE); - fileItemDTO.setUrl(getDownloadUrl(StringUtils.removeDuplicateSeparator(basePath + ZFileConstant.PATH_SEPARATOR + path))); - } - return fileItemDTO; - } catch (IOException | UpException e) { - e.printStackTrace(); - } - - throw new NotExistFileException(); - } - - @Override - public List storageStrategyConfigList() { - return new ArrayList() {{ - add(new StorageConfig("bucketName", "云存储服务名称")); - add(new StorageConfig("username", "操作员名称")); - add(new StorageConfig("password", "操作员密码")); - add(new StorageConfig("domain", "加速域名")); - add(new StorageConfig("basePath", "基路径")); - }}; - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/service/impl/WebdavServiceImpl.java b/src/main/java/im/zhaojun/zfile/service/impl/WebdavServiceImpl.java deleted file mode 100644 index e5f05d8..0000000 --- a/src/main/java/im/zhaojun/zfile/service/impl/WebdavServiceImpl.java +++ /dev/null @@ -1,133 +0,0 @@ -package im.zhaojun.zfile.service.impl; - -import cn.hutool.core.util.StrUtil; -import com.github.sardine.DavResource; -import com.github.sardine.Sardine; -import com.github.sardine.SardineFactory; -import im.zhaojun.zfile.exception.NotExistFileException; -import im.zhaojun.zfile.model.constant.StorageConfigConstant; -import im.zhaojun.zfile.model.dto.FileItemDTO; -import im.zhaojun.zfile.model.entity.StorageConfig; -import im.zhaojun.zfile.model.enums.FileTypeEnum; -import im.zhaojun.zfile.model.enums.StorageTypeEnum; -import im.zhaojun.zfile.service.StorageConfigService; -import im.zhaojun.zfile.service.base.AbstractBaseFileService; -import im.zhaojun.zfile.util.StringUtils; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.config.ConfigurableBeanFactory; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Objects; - -/** - * @author zhaojun - */ -@Service -@Slf4j -@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) -public class WebdavServiceImpl extends AbstractBaseFileService { - - private Sardine sardine; - - private String url; - - @Resource - private StorageConfigService storageConfigService; - - @Override - public void init(Integer driveId) { - this.driveId = driveId; - Map stringStorageConfigMap = - storageConfigService.selectStorageConfigMapByDriveId(driveId); - this.mergeStrategyConfig(stringStorageConfigMap); - String username = stringStorageConfigMap.get(StorageConfigConstant.WEBDAV_USERNAME).getValue(); - String password = stringStorageConfigMap.get(StorageConfigConstant.WEBDAV_PASSWORD).getValue(); - url = stringStorageConfigMap.get(StorageConfigConstant.WEBDAV_URL).getValue(); - - if (Objects.isNull(url)) { - log.debug("初始化存储策略 [{}] 失败: 参数不完整", getStorageTypeEnum().getDescription()); - isInitialized = false; - } else { - // 如果用户名和密码为空,则使用默认用户名和密码 - if (StrUtil.isNotEmpty(username) && StrUtil.isNotEmpty(password)) { - sardine = SardineFactory.begin(username, password); - } else { - sardine = SardineFactory.begin(); - } - testConnection(); - isInitialized = true; - } - } - - @Override - public List fileList(String path) throws Exception { - List resultList = new ArrayList<>(); - - String requestPath = StringUtils.removeDuplicateSeparator(url + "/" + path); - - List resources = sardine.list(requestPath); - - Integer index = 0; - - for (DavResource res : resources) { - // 如果不是根目录, 则跳过第一个, 因为第一个是当前目录 - if (!StrUtil.equals(path, "/") && index++ == 0) { - continue; - } - - FileItemDTO fileItemResult = new FileItemDTO(); - fileItemResult.setName(res.getName()); - fileItemResult.setTime(res.getModified()); - fileItemResult.setSize(res.getContentLength()); - fileItemResult.setType(res.isDirectory() ? FileTypeEnum.FOLDER : FileTypeEnum.FILE); - fileItemResult.setPath(path); - fileItemResult.setUrl(getDownloadUrl(path + res.getName())); - resultList.add(fileItemResult); - } - return resultList; - } - - @Override - public String getDownloadUrl(String path) { - return StringUtils.concatPath(url, path); - } - - @Override - public StorageTypeEnum getStorageTypeEnum() { - return StorageTypeEnum.WebDAV; - } - - @Override - public List storageStrategyConfigList() { - return new ArrayList() {{ - add(new StorageConfig("webdavUsername", "用户名")); - add(new StorageConfig("webdavPassword", "密码")); - add(new StorageConfig("webdavUrl", "WebDav 链接")); - }}; - } - - @Override - public FileItemDTO getFileItem(String path) { - List list; - try { - int end = path.lastIndexOf("/"); - list = fileList(path.substring(0, end + 1)); - } catch (Exception e) { - throw new NotExistFileException(); - } - - for (FileItemDTO fileItemDTO : list) { - String fullPath = StringUtils.concatUrl(fileItemDTO.getPath(), fileItemDTO.getName()); - if (Objects.equals(fullPath, path)) { - return fileItemDTO; - } - } - - throw new NotExistFileException(); - } -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/util/AudioUtil.java b/src/main/java/im/zhaojun/zfile/util/AudioUtil.java deleted file mode 100644 index 48c9bce..0000000 --- a/src/main/java/im/zhaojun/zfile/util/AudioUtil.java +++ /dev/null @@ -1,104 +0,0 @@ -package im.zhaojun.zfile.util; - -import cn.hutool.core.codec.Base64; -import cn.hutool.core.convert.Convert; -import cn.hutool.core.io.FileUtil; -import cn.hutool.core.lang.UUID; -import cn.hutool.core.util.NumberUtil; -import cn.hutool.core.util.URLUtil; -import cn.hutool.http.HttpRequest; -import cn.hutool.http.HttpResponse; -import cn.hutool.http.HttpUtil; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import com.mpatric.mp3agic.ID3v1; -import com.mpatric.mp3agic.ID3v2; -import com.mpatric.mp3agic.InvalidDataException; -import com.mpatric.mp3agic.Mp3File; -import com.mpatric.mp3agic.UnsupportedTagException; -import im.zhaojun.zfile.model.constant.ZFileConstant; -import im.zhaojun.zfile.model.dto.AudioInfoDTO; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.File; -import java.io.IOException; -import java.net.URL; - - -/** - * 音频解析工具类 - * @author zhaojun - */ -public class AudioUtil { - - private static final Logger log = LoggerFactory.getLogger(AudioUtil.class); - - public static AudioInfoDTO getAudioInfo(String url) throws Exception { - AudioInfoDTO audioInfoDTO; - try { - String query = new URL(URLUtil.decode(url)).getQuery(); - - if (query != null) { - url = url.replace(query, URLUtil.encode(query)); - } - - // 如果音乐文件大小超出 5M, 则不解析此音乐 - if (im.zhaojun.zfile.util.HttpUtil.getRemoteFileSize(url) - > (1024 * 1024 * ZFileConstant.AUDIO_MAX_FILE_SIZE_MB)) { - return AudioInfoDTO.buildDefaultAudioInfoDTO(); - } - - String fullFilePath = StringUtils.removeDuplicateSeparator(ZFileConstant.TMP_FILE_PATH + ZFileConstant.PATH_SEPARATOR + UUID.fastUUID()); - - File file = new File(fullFilePath); - FileUtil.mkParentDirs(file); - - final HttpResponse response = HttpRequest.get(url).setFollowRedirects(true).timeout(-1).executeAsync(); - response.writeBody(file); - - audioInfoDTO = parseAudioInfo(file); - audioInfoDTO.setSrc(url); - file.deleteOnExit(); - return audioInfoDTO; - } catch (Exception e) { - log.error("获取音频文件信息失败.", e); - } - return AudioInfoDTO.buildDefaultAudioInfoDTO(); - } - - private static AudioInfoDTO parseAudioInfo(File file) throws IOException, UnsupportedTagException { - AudioInfoDTO audioInfoDTO = AudioInfoDTO.buildDefaultAudioInfoDTO(); - - Mp3File mp3File = null; - try { - mp3File = new Mp3File(file); - } catch (InvalidDataException e) { - if (log.isDebugEnabled()) { - log.debug("无法解析的音频文件."); - } - } - - if (mp3File == null) { - return audioInfoDTO; - } - - ID3v1 audioTag = null; - - if (mp3File.hasId3v2Tag()) { - ID3v2 id3v2Tag = mp3File.getId3v2Tag(); - byte[] albumImage = id3v2Tag.getAlbumImage(); - if (albumImage != null) { - audioInfoDTO.setCover("data:" + id3v2Tag.getAlbumImageMimeType() + ";base64," + Base64.encode(albumImage)); - } - audioTag = id3v2Tag; - } - - if (audioTag != null) { - audioInfoDTO.setTitle(audioTag.getTitle()); - audioInfoDTO.setArtist(audioTag.getArtist()); - } - - return audioInfoDTO; - } -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/util/FileUtil.java b/src/main/java/im/zhaojun/zfile/util/FileUtil.java deleted file mode 100644 index 7e7d324..0000000 --- a/src/main/java/im/zhaojun/zfile/util/FileUtil.java +++ /dev/null @@ -1,198 +0,0 @@ -package im.zhaojun.zfile.util; - -import cn.hutool.core.util.StrUtil; -import cn.hutool.core.util.URLUtil; -import im.zhaojun.zfile.model.constant.LocalFileResponseTypeConstant; -import lombok.extern.slf4j.Slf4j; -import org.apache.catalina.connector.ClientAbortException; -import org.springframework.core.io.FileSystemResource; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.BufferedOutputStream; -import java.io.File; -import java.io.IOException; -import java.io.RandomAccessFile; -import java.util.Date; -import java.util.Objects; - -/** - * @author zhaojun - */ -@Slf4j -public class FileUtil { - - /** - * 文件下载,单线程,直接传 - * @param file 文件对象 - * @param fileName 要保存为的文件名 - * @return 文件下载对象 - */ - public static ResponseEntity exportSingleThread(File file, String fileName) { - if (!file.exists()) { - return ResponseEntity.status(HttpStatus.NOT_FOUND).body("404 FILE NOT FOUND"); - } - - MediaType mediaType = MediaType.APPLICATION_OCTET_STREAM; - - HttpHeaders headers = new HttpHeaders(); - headers.add(HttpHeaders.CACHE_CONTROL, "no-cache, no-store, must-revalidate"); - - if (StringUtils.isNullOrEmpty(fileName)) { - fileName = file.getName(); - } - - headers.setContentDispositionFormData("attachment", URLUtil.encode(fileName)); - - headers.add(HttpHeaders.PRAGMA, "no-cache"); - headers.add(HttpHeaders.EXPIRES, "0"); - headers.add(HttpHeaders.LAST_MODIFIED, new Date().toString()); - headers.add(HttpHeaders.ETAG, String.valueOf(System.currentTimeMillis())); - return ResponseEntity - .ok() - .headers(headers) - .contentLength(file.length()) - .contentType(mediaType) - .body(new FileSystemResource(file)); - } - - /** - * 返回文件给 response,支持断点续传和多线程下载 - * @param request 请求对象 - * @param response 响应对象 - * @param file 下载的文件 - */ - public static void export(HttpServletRequest request, HttpServletResponse response, File file, String type) { - export(request, response, file, file.getName(), type); - } - - /** - * 返回文件给 response,支持断点续传和多线程下载 (动态变化的文件不支持) - * @param request 请求对象 - * @param response 响应对象 - * @param file 下载的文件 - * @param fileName 下载的文件名,为空则默认读取文件名称 - */ - public static void export(HttpServletRequest request, HttpServletResponse response, File file, String fileName, String type) { - if (!file.exists()) { - try { - response.getWriter().write("404 FILE NOT FOUND"); - } catch (IOException e) { - e.printStackTrace(); - } - } - - if (StringUtils.isNullOrEmpty(fileName)) { - //文件名 - fileName = file.getName(); - } - - String range = request.getHeader(HttpHeaders.RANGE); - - String rangeSeparator = "-"; - // 开始下载位置 - long startByte = 0; - // 结束下载位置 - long endByte = file.length() - 1; - - // 如果是断点续传 - if (range != null && range.contains("bytes=") && range.contains(rangeSeparator)) { - // 设置响应状态码为 206 - response.setStatus(HttpServletResponse.SC_PARTIAL_CONTENT); - - range = range.substring(range.lastIndexOf("=") + 1).trim(); - String[] ranges = range.split(rangeSeparator); - try { - // 判断 range 的类型 - if (ranges.length == 1) { - // 类型一:bytes=-2343 - if (range.startsWith(rangeSeparator)) { - endByte = Long.parseLong(ranges[0]); - } - // 类型二:bytes=2343- - else if (range.endsWith(rangeSeparator)) { - startByte = Long.parseLong(ranges[0]); - } - } - // 类型三:bytes=22-2343 - else if (ranges.length == 2) { - startByte = Long.parseLong(ranges[0]); - endByte = Long.parseLong(ranges[1]); - } - } catch (NumberFormatException e) { - // 传参不规范,则直接返回所有内容 - startByte = 0; - endByte = file.length() - 1; - } - } else { - // 没有 ranges 即全部一次性传输,需要用 200 状态码,这一行应该可以省掉,因为默认返回是 200 状态码 - response.setStatus(HttpServletResponse.SC_OK); - } - - //要下载的长度(endByte 为总长度 -1,这时候要加回去) - long contentLength = endByte - startByte + 1; - //文件类型 - String contentType = request.getServletContext().getMimeType(fileName); - if (StrUtil.isEmpty(contentType)) { - contentType = "application/octet-stream"; - } - - response.setHeader(HttpHeaders.ACCEPT_RANGES, "bytes"); - response.setHeader(HttpHeaders.CONTENT_TYPE, contentType); - // 这里文件名换你想要的,inline 表示浏览器可以直接使用 - // 参考资料:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Content-Disposition - if (Objects.equals(type, LocalFileResponseTypeConstant.DOWNLOAD) || StrUtil.isEmpty(contentType)) { - String contentDisposition = "attachment;filename=" + URLUtil.encode(fileName); - response.setHeader(HttpHeaders.CONTENT_DISPOSITION, contentDisposition); - } - response.setHeader(HttpHeaders.CONTENT_LENGTH, String.valueOf(contentLength)); - // [要下载的开始位置]-[结束位置]/[文件总大小] - response.setHeader(HttpHeaders.CONTENT_RANGE, "bytes " + startByte + rangeSeparator + endByte + "/" + file.length()); - - BufferedOutputStream outputStream; - RandomAccessFile randomAccessFile = null; - //已传送数据大小 - long transmitted = 0; - try { - randomAccessFile = new RandomAccessFile(file, "r"); - outputStream = new BufferedOutputStream(response.getOutputStream()); - byte[] buff = new byte[4096]; - int len = 0; - randomAccessFile.seek(startByte); - while ((transmitted + len) <= contentLength && (len = randomAccessFile.read(buff)) != -1) { - outputStream.write(buff, 0, len); - transmitted += len; - // 本地测试, 防止下载速度过快 - // Thread.sleep(1); - } - // 处理不足 buff.length 部分 - if (transmitted < contentLength) { - len = randomAccessFile.read(buff, 0, (int) (contentLength - transmitted)); - outputStream.write(buff, 0, len); - transmitted += len; - } - - outputStream.flush(); - response.flushBuffer(); - randomAccessFile.close(); - // log.trace("下载完毕: {}-{}, 已传输 {}", startByte, endByte, transmitted); - } catch (ClientAbortException e) { - // ignore 用户停止下载 - // log.trace("用户停止下载: {}-{}, 已传输 {}", startByte, endByte, transmitted); - } catch (IOException e) { - e.printStackTrace(); - } finally { - try { - if (randomAccessFile != null) { - randomAccessFile.close(); - } - } catch (IOException e) { - e.printStackTrace(); - } - } - } -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/util/RegexMatchUtils.java b/src/main/java/im/zhaojun/zfile/util/RegexMatchUtils.java deleted file mode 100644 index 6e3b79f..0000000 --- a/src/main/java/im/zhaojun/zfile/util/RegexMatchUtils.java +++ /dev/null @@ -1,61 +0,0 @@ -package im.zhaojun.zfile.util; - -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -/** - * 正则匹配工具类 - * - * @author me - * @date 2022/4/9 - */ -public class RegexMatchUtils { - - /** - * 正则匹配分组序号值 - * - * @param regex 正则表达式 - * @param str 待匹配字符串 - * @param index 分组序号,从1开始 - * @return {@link String} 不存在/匹配失败返回null - */ - public static String matchByIndex(String regex, String str, Integer index) { - Matcher matcher = match(regex, str); - if (matcher == null) { - return null; - } - return getIndexResult(matcher, index); - } - - /** - * 匹配字符串 - * - * @param regex 正则表达式 - * @param str 待匹配字符串 - * @return {@link Matcher} - */ - public static Matcher match(String regex, String str) { - if (str == null || "".equals(str)) { - return null; - } - Matcher matcher = Pattern.compile(regex).matcher(str); - if (!matcher.lookingAt()) { - return null; - } - return matcher; - } - - /** - * 获取指定分组序号的匹配结果 - * - * @param matcher {@link Matcher} - * @param index 分组序号,从1开始 - * @return {@link String} 不存在/匹配失败返回null - */ - public static String getIndexResult(Matcher matcher, Integer index) { - if (matcher == null || index == null || index < 0 || index > matcher.groupCount()) { - return null; - } - return matcher.group(index); - } -} diff --git a/src/main/java/im/zhaojun/zfile/util/SpringContextHolder.java b/src/main/java/im/zhaojun/zfile/util/SpringContextHolder.java deleted file mode 100644 index 37d7daa..0000000 --- a/src/main/java/im/zhaojun/zfile/util/SpringContextHolder.java +++ /dev/null @@ -1,74 +0,0 @@ -package im.zhaojun.zfile.util; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.BeansException; -import org.springframework.beans.factory.DisposableBean; -import org.springframework.context.ApplicationContext; -import org.springframework.context.ApplicationContextAware; -import org.springframework.lang.NonNull; -import org.springframework.stereotype.Service; - -import java.util.Map; - -/** - * @author zhaojun - */ -@Service -public class SpringContextHolder implements ApplicationContextAware, DisposableBean { - - private static ApplicationContext applicationContext = null; - - private static Logger logger = LoggerFactory.getLogger(SpringContextHolder.class); - - /** - * 取得存储在静态变量中的 ApplicationContext. - */ - public static ApplicationContext getApplicationContext() { - return applicationContext; - } - - /** - * 从静态变量 applicationContext 中取得 Bean, 自动转型为所赋值对象的类型. - */ - @SuppressWarnings("unchecked") - public static T getBean(String name) { - return (T) applicationContext.getBean(name); - } - - /** - * 从静态变量 applicationContext 中取得 Bean, 自动转型为所赋值对象的类型. - */ - public static T getBean(Class requiredType) { - return applicationContext.getBean(requiredType); - } - - /** - * 清除 SpringContextHolder 中的 ApplicationContext 为 Null. - */ - public static void clearHolder() { - if (logger.isDebugEnabled()) { - logger.debug("清除SpringContextHolder中的ApplicationContext:" + applicationContext); - } - logger.info("清除SpringContextHolder中的ApplicationContext:" + applicationContext); - applicationContext = null; - } - - /** - * 实现 DisposableBean 接口, 在 Context 关闭时清理静态变量. - */ - @Override - public void destroy() { - SpringContextHolder.clearHolder(); - } - - @Override - public void setApplicationContext(@NonNull ApplicationContext applicationContext) throws BeansException { - SpringContextHolder.applicationContext = applicationContext; - } - - public static Map getBeansOfType(Class classz) { - return applicationContext.getBeansOfType(classz); - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/util/StartupListener.java b/src/main/java/im/zhaojun/zfile/util/StartupListener.java deleted file mode 100644 index 83e7771..0000000 --- a/src/main/java/im/zhaojun/zfile/util/StartupListener.java +++ /dev/null @@ -1,53 +0,0 @@ -package im.zhaojun.zfile.util; - -import cn.hutool.core.net.NetUtil; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.context.event.ApplicationStartedEvent; -import org.springframework.context.ApplicationListener; -import org.springframework.core.env.Environment; -import org.springframework.lang.NonNull; -import org.springframework.stereotype.Component; - -import javax.annotation.Resource; -import java.util.LinkedHashSet; - -/** - * 项目启动监听器, 当项目启动时, 遍历当前对象存储的所有内容, 添加到缓存中. - * @author zhaojun - */ -@Component -@Slf4j -public class StartupListener implements ApplicationListener { - - @Resource - private Environment environment; - - @Override - public void onApplicationEvent(@NonNull ApplicationStartedEvent event) { - printStartInfo(); - } - - - private void printStartInfo() { - String serverPort = environment.getProperty("server.port", "8080"); - - LinkedHashSet localIps = NetUtil.localIps(); - StringBuilder indexAddr = new StringBuilder(); - StringBuilder indexAdminAddr = new StringBuilder(); - for (String localIp : localIps) { - String addr = String.format("http://%s:%s", localIp, serverPort); - indexAddr.append(addr).append("\t"); - indexAdminAddr.append(addr).append("/admin").append("\t"); - } - log.info("ZFile started at " + indexAddr); - log.info("ZFile Admin started at " + indexAdminAddr); - } - - // private void cacheAllFile() { - // try { - // fileAsyncCacheService.cacheGlobalFile(); - // } catch (Exception e) { - // throw new InitializeException("初始化缓存异常.", e); - // } - // } -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/util/StringUtils.java b/src/main/java/im/zhaojun/zfile/util/StringUtils.java deleted file mode 100644 index 34f3577..0000000 --- a/src/main/java/im/zhaojun/zfile/util/StringUtils.java +++ /dev/null @@ -1,157 +0,0 @@ -package im.zhaojun.zfile.util; - -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.URLUtil; -import im.zhaojun.zfile.model.constant.ZFileConstant; -import im.zhaojun.zfile.service.SystemConfigService; - -import java.net.MalformedURLException; -import java.net.URL; - -/** - * @author zhaojun - */ -public class StringUtils { - - - public static final char DELIMITER = '/'; - - public static final String DELIMITER_STR = "/"; - - public static final String HTTP_PROTOCAL = "http://"; - - public static final String HTTPS_PROTOCAL = "https://"; - - /** - * 移除 URL 中的第一个 '/' - * @return 如 path = '/folder1/file1', 返回 'folder1/file1' - */ - public static String removeFirstSeparator(String path) { - if (!"".equals(path) && path.charAt(0) == DELIMITER) { - path = path.substring(1); - } - return path; - } - - /** - * 移除 URL 中的最后一个 '/' - * @return 如 path = '/folder1/file1/', 返回 '/folder1/file1' - */ - public static String removeLastSeparator(String path) { - if (!"".equals(path) && path.charAt(path.length() - 1) == DELIMITER) { - path = path.substring(0, path.length() - 1); - } - return path; - } - - public static String concatUrl(String path, String name) { - return removeDuplicateSeparator(DELIMITER + path + DELIMITER + name); - } - - - /** - * 将域名和路径组装成 URL, 主要用来处理分隔符 '/' - * @param domain 域名 - * @param path 路径 - * @return URL - */ - public static String concatPath(String domain, String path) { - if (path != null && path.length() > 1 && path.charAt(0) != DELIMITER) { - path = DELIMITER + path; - } - - if (domain != null && domain.charAt(domain.length() - 1) == DELIMITER) { - domain = domain.substring(0, domain.length() - 2); - } - - return domain + path; - } - - public static String removeDuplicateSeparator(String path) { - if (path == null || path.length() < 2) { - return path; - } - - StringBuilder sb = new StringBuilder(); - - if (path.indexOf(HTTP_PROTOCAL) == 0) { - sb.append(HTTP_PROTOCAL); - } else if (path.indexOf(HTTPS_PROTOCAL) == 0) { - sb.append(HTTPS_PROTOCAL); - } - - for (int i = sb.length(); i < path.length() - 1; i++) { - char current = path.charAt(i); - char next = path.charAt(i + 1); - if (!(current == DELIMITER && next == DELIMITER)) { - sb.append(current); - } - } - sb.append(path.charAt(path.length() - 1)); - return sb.toString(); - } - - public static boolean isNullOrEmpty(String s) { - return s == null || "".equals(s); - } - - public static boolean isNotNullOrEmpty(String s) { - return !isNullOrEmpty(s); - } - - /** - * 获取 basePath + path 的全路径地址. - * @return basePath + path 的全路径地址. - */ - public static String getFullPath(String basePath, String path) { - basePath = ObjectUtil.defaultIfNull(basePath, ""); - path = ObjectUtil.defaultIfNull(path, ""); - return StringUtils.removeDuplicateSeparator(basePath + ZFileConstant.PATH_SEPARATOR + path); - } - - /** - * 替换 URL 中的 Host 部分,如替换 http://a.com/1.txt 为 https://abc.com/1.txt - * @param originUrl - * 原 URL - * @param replaceHost - * 替换的 HOST - * @return 替换后的 URL - */ - public static String replaceHost(String originUrl, String replaceHost) { - try { - String path = new URL(originUrl).getFile(); - return concatPath(replaceHost, path); - } catch (MalformedURLException e) { - e.printStackTrace(); - } - return null; - } - - /** - * 拼接 URL,并去除重复的分隔符 '/',但不会影响 http:// 和 https:// 这种头部 - * @param strs 拼接的字符数组 - * @return 拼接结果 - */ - public static String concatUrl(String... strs) { - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < strs.length; i++) { - sb.append(strs[i]); - if (i != strs.length - 1) { - sb.append(DELIMITER); - } - } - return removeDuplicateSeparator(sb.toString()); - } - - /** - * 拼接文件直链生成 URL - * @param driveId 驱动器 ID - * @param fullPath 文件全路径 - * @return 生成结果 - */ - public static String generatorLink(Integer driveId, String fullPath) { - SystemConfigService systemConfigService = SpringContextHolder.getBean(SystemConfigService.class); - String domain = systemConfigService.getDomain(); - return concatUrl(domain, ZFileConstant.DIRECT_LINK_PREFIX, String.valueOf(driveId), fullPath); - } -} diff --git a/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/src/main/resources/META-INF/additional-spring-configuration-metadata.json index 6e3604d..1dece3f 100644 --- a/src/main/resources/META-INF/additional-spring-configuration-metadata.json +++ b/src/main/resources/META-INF/additional-spring-configuration-metadata.json @@ -97,11 +97,6 @@ "type": "java.lang.String", "defaultValue": "directlink", "description": "直链前缀名称, 默认为 directlink" - }, - { - "name": "zfile.webdav", - "type": "java.lang.Boolean", - "description": "是否开启 webdav 文件管理." } ] } \ No newline at end of file diff --git a/src/main/resources/application-default.properties b/src/main/resources/application-default.properties new file mode 100644 index 0000000..bd67f32 --- /dev/null +++ b/src/main/resources/application-default.properties @@ -0,0 +1 @@ +# onedrive config zfile.onedrive.clientId=09939809-c617-43c8-a220-a93c1513c5d4 zfile.onedrive.clientSecret=_l:zI-_yrW75lV8M61K@z.I2K@B/On6Q zfile.onedrive.redirectUri=https://zfile.jun6.net/onedrive/callback zfile.onedrive.scope=offline_access User.Read Files.ReadWrite.All Sites.Read.All Sites.ReadWrite.All # onedrive china config zfile.onedrive-china.clientId=4a72d927-1907-488d-9eb2-1b465c53c1c5 zfile.onedrive-china.clientSecret=Y9CEA=82da5n-y_]KAWAgLH3?R9xf7Uw zfile.onedrive-china.redirectUri=https://zfile.jun6.net/onedrive/china-callback zfile.onedrive-china.scope=offline_access User.Read Files.ReadWrite.All Sites.Read.All Sites.ReadWrite.All # result config spring.jackson.date-format=yyyy-MM-dd HH:mm spring.jackson.time-zone=GMT+8 spring.web.resources.chain.compressed=true ## mybatis config mybatis-plus.configuration.map-underscore-to-camel-case=true mybatis-plus.mapper-locations=classpath*:mapper/*.xml,classpath*:com/gitee/sunchenbin/mybatis/actable/mapping/*/*.xml ## flyway config spring.flyway.clean-disabled=true spring.flyway.enabled=false # knife4j config knife4j.enable=true knife4j.setting.enableSwaggerModels=true # sa-token config sa-token.is-print=false sa-token.token-name=zfile-token spring.main.allow-circular-references=true spring.servlet.multipart.max-request-size=-1 spring.servlet.multipart.max-file-size=-1 mybatis-plus.configuration.default-enum-type-handler=im.zhaojun.zfile.common.config.MybatisEnumTypeHandler spring.mvc.pathmatch.matching-strategy=ant_path_matcher server.compression.enabled=true \ No newline at end of file diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties new file mode 100644 index 0000000..5ac89d9 --- /dev/null +++ b/src/main/resources/application.properties @@ -0,0 +1,30 @@ +spring.config.import=classpath:application-default.properties + +zfile.debug=false + +zfile.log.path=${user.home}/.zfile-beta/logs +zfile.db.path=${user.home}/.zfile-beta/db/zfile +zfile.temp.path=${user.home}/.zfile-beta/temp + +zfile.cache.auto-refresh.interval=1 +zfile.cache.timeout=1800 +zfile.preview.audio.maxFileSizeMb=5 +zfile.preview.text.maxFileSizeKb=512 + +server.port=8080 + +# -------------- database config start -------------- + +## sqlite +spring.datasource.driver-class-name=org.sqlite.JDBC +spring.datasource.url=jdbc:sqlite:${zfile.db.path} + +## mysql +#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver +#spring.datasource.url=jdbc:mysql://127.0.0.1:3306/zfile?characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true +#spring.datasource.username=root +#spring.datasource.password=password + +spring.profiles.active=prod + +# -------------- database config end -------------- \ No newline at end of file diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml deleted file mode 100644 index 8c7b272..0000000 --- a/src/main/resources/application.yml +++ /dev/null @@ -1,84 +0,0 @@ -zfile: - debug: false - webdav: false - directLinkPrefix: directlink - log: - path: ${user.home}/.zfile/logs - db: - path: ${user.home}/.zfile/db/zfile - tmp: - path: ${user.home}/.zfile/tmp - cache: - auto-refresh: - interval: 1 - timeout: 1800 - constant: - readme: readme.md - password: password.txt - preview: - audio: - maxFileSizeMb: 5 - text: - maxFileSizeKb: 512 - onedrive: - clientId: 09939809-c617-43c8-a220-a93c1513c5d4 - clientSecret: _l:zI-_yrW75lV8M61K@z.I2K@B/On6Q - redirectUri: https://zfile.jun6.net/onedrive/callback - scope: offline_access User.Read Files.ReadWrite.All - onedrive-china: - clientId: 4a72d927-1907-488d-9eb2-1b465c53c1c5 - clientSecret: Y9CEA=82da5n-y_]KAWAgLH3?R9xf7Uw - redirectUri: https://zfile.jun6.net/onedrive/china-callback - scope: offline_access User.Read Files.ReadWrite.All - -server: - port: 8080 - servlet: - context-path: '' - tomcat: - threads: - max: 20 - compression: - enabled: true - -spring: - h2: - console: - settings: - web-allow-others: true - path: /h2-console - enabled: ${zfile.debug} - datasource: - # h2 内存数据库 配置 - driver-class-name: org.h2.Driver - url: jdbc:h2:${zfile.db.path} - username: zfile - password: 123456 - - # MySQL 配置 - # driver-class-name: com.mysql.jdbc.Driver - # url: jdbc:mysql://127.0.0.1:3306/zfile?characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false - # username: root - # password: 123456 - jackson: - date-format: yyyy-MM-dd HH:mm - time-zone: GMT+8 - jpa: - hibernate: - ddl-auto: update - properties: - hibernate: - format_sql: false - show-sql: false - generate-ddl: true - defer-datasource-initialization: true - profiles: - active: prod - - # 初始化数据导入 - sql: - init: - continue-on-error: true - mode: always - data-locations: classpath*:db/data.sql - encoding: utf-8 \ No newline at end of file diff --git a/src/main/resources/db/data.sql b/src/main/resources/db/data.sql deleted file mode 100644 index 30e9cf2..0000000 --- a/src/main/resources/db/data.sql +++ /dev/null @@ -1,17 +0,0 @@ -INSERT INTO SYSTEM_CONFIG (`ID`, `k`, `REMARK`) VALUES (1, 'siteName', '站点名称'); -INSERT INTO SYSTEM_CONFIG (`ID`, `k`, `REMARK`) VALUES (5, 'storageStrategy', '当前启用存储引擎'); -INSERT INTO SYSTEM_CONFIG (`ID`, `k`, `REMARK`) VALUES (6, 'username', '管理员账号'); -INSERT INTO SYSTEM_CONFIG (`ID`, `k`, `REMARK`) VALUES (7, 'password', '管理员密码'); -INSERT INTO SYSTEM_CONFIG (`ID`, `k`, `REMARK`) VALUES (8, 'domain', '站点域名'); -INSERT INTO SYSTEM_CONFIG (`ID`, `k`, `REMARK`) VALUES (11, 'customCss', '自定义 CSS'); -INSERT INTO SYSTEM_CONFIG (`ID`, `k`, `REMARK`) VALUES (12, 'customJs', '自定义 JS (可用于统计代码)'); -INSERT INTO SYSTEM_CONFIG (`ID`, `k`, `REMARK`, `value`) VALUES (13, 'tableSize', '表格大小', 'mini'); -INSERT INTO SYSTEM_CONFIG (`ID`, `k`, `REMARK`, `value`) VALUES (14, 'showOperator', '是否显示操作按钮', 'true'); -INSERT INTO SYSTEM_CONFIG (`ID`, `k`, `REMARK`, `value`) VALUES (15, 'showDocument', '是否显示文档', 'true'); -INSERT INTO SYSTEM_CONFIG (`ID`, `k`, `REMARK`) VALUES (16, 'announcement', '网站公告'); -INSERT INTO SYSTEM_CONFIG (`ID`, `k`, `REMARK`, `value`) VALUES (17, 'showAnnouncement', '是否显示网站公告', 'true'); -INSERT INTO SYSTEM_CONFIG (`ID`, `k`, `REMARK`, `value`) VALUES (18, 'layout', '页面布局', 'full'); -INSERT INTO SYSTEM_CONFIG (`ID`, `k`, `REMARK`, `value`) VALUES (19, 'showLinkBtn', '是否显示生成直链按钮', 'true'); -INSERT INTO SYSTEM_CONFIG (`ID`, `k`, `REMARK`, `value`) VALUES (20, 'showShortLink', '是否显示短链', 'true'); -INSERT INTO SYSTEM_CONFIG (`ID`, `k`, `REMARK`, `value`) VALUES (21, 'showPathLink', '是否显示路径直链', 'true'); -alter table short_link change "key" key varchar(255) null; \ No newline at end of file diff --git a/src/main/resources/db/migration-mysql/R__data.sql b/src/main/resources/db/migration-mysql/R__data.sql new file mode 100644 index 0000000..adb62f8 --- /dev/null +++ b/src/main/resources/db/migration-mysql/R__data.sql @@ -0,0 +1 @@ +INSERT INTO system_config (`name`, `title`) VALUES ('siteName', '站点名称'); INSERT INTO system_config (`name`, `title`) VALUES ('username', '管理员账号'); INSERT INTO system_config (`name`, `title`) VALUES ('password', '管理员密码'); INSERT INTO system_config (`name`, `title`) VALUES ('domain', '站点域名'); INSERT INTO system_config (`name`, `title`) VALUES ('customCss', '自定义 CSS'); INSERT INTO system_config (`name`, `title`) VALUES ('customJs', '自定义 JS (可用于统计代码)'); INSERT INTO system_config (`name`, `title`, `value`) VALUES ('tableSize', '表格大小', 'small'); INSERT INTO system_config (`name`, `title`, `value`) VALUES ('showDocument', '是否显示文档', 'true'); INSERT INTO system_config (`name`, `title`) VALUES ('announcement', '网站公告'); INSERT INTO system_config (`name`, `title`, `value`) VALUES ('showAnnouncement', '是否显示网站公告', 'true'); INSERT INTO system_config (`name`, `title`, `value`) VALUES ('layout', '页面布局', 'full'); INSERT INTO system_config (`name`, `title`, `value`) VALUES ('showLinkBtn', '是否显示生成直链按钮', 'true'); INSERT INTO system_config (`name`, `title`, `value`) VALUES ('showShortLink', '是否显示短链', 'true'); INSERT INTO system_config (`name`, `title`, `value`) VALUES ('showPathLink', '是否显示路径直链', 'true'); INSERT INTO system_config (`name`, `title`, `value`) VALUES ('installed', '是否已初始化安装', 'false'); INSERT INTO system_config (`name`, `title`) VALUES ('avatar', '头像地址'); INSERT INTO system_config (`name`, `title`) VALUES ('icp', 'ICP 备案号'); INSERT INTO system_config (`name`, `title`) VALUES ('customVideoSuffix', '自定义视频文件后缀格式'); INSERT INTO system_config (`name`, `title`) VALUES ('customImageSuffix', '自定义图像文件后缀格式'); INSERT INTO system_config (`name`, `title`) VALUES ('customAudioSuffix', '自定义音频文件后缀格式'); INSERT INTO system_config (`name`, `title`) VALUES ('customTextSuffix', '自定义文本文件后缀格式'); INSERT INTO system_config (`name`, `title`, `value`) VALUES ('directLinkPrefix', '直链前缀地址', 'directlink'); INSERT INTO system_config (`name`, `title`, `value`) VALUES ('refererType', '直链 Referer 防盗链类型', 'off'); INSERT INTO system_config (`name`, `title`, `value`) VALUES ('refererAllowEmpty', '直链 Referer 是否允许为空', 'true'); INSERT INTO system_config (`name`, `title`) VALUES ('refererValue', '直链 Referer 值'); INSERT INTO system_config (`name`, `title`, `value`) VALUES ('loginVerifyMode', '登陆验证方式,支持验证码和 2FA 认证', 'off'); INSERT INTO system_config (`name`, `title`) VALUES ('loginVerifySecret', '登陆验证 Secret'); INSERT INTO system_config (`name`, `title`, `value`) VALUES ('rootShowStorage', '根目录是否显示所有存储源', 'true'); INSERT INTO system_config (`name`, `title`) VALUES ('frontDomain', '前端域名,前后端分离情况下需要配置'); INSERT INTO system_config (`name`, `title`, `value`) VALUES ('recordDownloadLog', '是否记录下载日志', 'true'); INSERT INTO system_config (`name`, `title`, `value`) VALUES ('showLogin', '是否在前台显示登陆按钮', 'true'); INSERT INTO system_config (`name`, `title`) VALUES ('rsaHexKey', 'RSA 算法 HEX 格式密钥'); \ No newline at end of file diff --git a/src/main/resources/db/migration-mysql/V1__Base_version.sql b/src/main/resources/db/migration-mysql/V1__Base_version.sql new file mode 100644 index 0000000..b2094c0 --- /dev/null +++ b/src/main/resources/db/migration-mysql/V1__Base_version.sql @@ -0,0 +1 @@ +create table if not exists storage_source ( id int auto_increment primary key, enable bit null comment '使用启用', enable_cache bit null comment '是否开启缓存', name varchar(255) null comment '存储源名称', auto_refresh_cache bit null comment '是否开启缓存自动刷新', type varchar(64) null comment '存储源类型', search_enable bit null comment '是否开启搜索', search_ignore_case bit null comment '搜索是否忽略大小写', order_num int null comment '排序', default_switch_to_img_mode bit null comment '是否默认开启图片模式', remark text null comment '备注', `key` varchar(64) null comment '存储源别名', enable_file_operator bit null comment '是否启用文件操作', search_mode varchar(32) null comment '搜索模式, 仅从缓存中搜索还是直接搜索', enable_file_anno_operator bit null comment '是否允许匿名进行文件操作' ) comment '存储源设置'; create table if not exists filter_config ( id int auto_increment primary key, storage_id int null comment '存储源 ID', expression varchar(255) null comment '路径表达式', description varchar(255) null comment '表达式描述', mode varchar(255) null ) comment '过滤设置'; create table if not exists short_link ( id int auto_increment primary key, short_key varchar(255) null comment '短链 key', url text null comment '链接 url', create_date datetime null comment '创建时间', storage_id int null comment '存储源 ID' ) comment '短链设置'; create table if not exists storage_source_config ( id int auto_increment primary key, name varchar(255) null comment '存储源属性 name', type text null comment '存储源类型', title varchar(255) null comment '存储源属性名称', storage_id int null comment '存储源 ID', value text null comment '存储源属性 value' ) comment '存储源属性设置'; create table if not exists system_config ( id int auto_increment primary key, name varchar(255) null comment '系统设置属性 name', value varchar(255) null comment '系统设置属性 value', title varchar(255) null comment '系统设置属性标题' ) comment '系统设置'; create table if not exists password_config ( id int auto_increment primary key, storage_id int null comment '存储源 ID', expression varchar(255) null comment '路径表达式', password varchar(255) null comment '密码', description varchar(255) null comment '表达式描述' ) comment '密码文件夹设置'; create table if not exists readme_config ( id int auto_increment primary key, storage_id int null comment '存储源 ID', expression varchar(255) null comment '路径表达式', description varchar(255) null comment '表达式描述', readme_text text null comment 'readme 文本内容, 支持 md 语法.', display_mode varchar(32) null comment '显示模式,支持顶部显示: top, 底部显示:bottom, 弹窗显示: dialog' ) comment 'readme 文档配置'; create table if not exists download_log ( id int auto_increment primary key, path varchar(2048) null comment '文件路径', storage_key varchar(8) null comment '存储源 key', create_time datetime null comment '访问时间', ip varchar(20) null comment '访问 ip', user_agent varchar(2048) null comment '访问 user_agent', referer varchar(2048) null comment '访问 referer', short_key varchar(255) null comment '短链 key' ) comment '文件下载日志'; \ No newline at end of file diff --git a/src/main/resources/db/migration-sqlite/R__data.sql b/src/main/resources/db/migration-sqlite/R__data.sql new file mode 100644 index 0000000..adb62f8 --- /dev/null +++ b/src/main/resources/db/migration-sqlite/R__data.sql @@ -0,0 +1 @@ +INSERT INTO system_config (`name`, `title`) VALUES ('siteName', '站点名称'); INSERT INTO system_config (`name`, `title`) VALUES ('username', '管理员账号'); INSERT INTO system_config (`name`, `title`) VALUES ('password', '管理员密码'); INSERT INTO system_config (`name`, `title`) VALUES ('domain', '站点域名'); INSERT INTO system_config (`name`, `title`) VALUES ('customCss', '自定义 CSS'); INSERT INTO system_config (`name`, `title`) VALUES ('customJs', '自定义 JS (可用于统计代码)'); INSERT INTO system_config (`name`, `title`, `value`) VALUES ('tableSize', '表格大小', 'small'); INSERT INTO system_config (`name`, `title`, `value`) VALUES ('showDocument', '是否显示文档', 'true'); INSERT INTO system_config (`name`, `title`) VALUES ('announcement', '网站公告'); INSERT INTO system_config (`name`, `title`, `value`) VALUES ('showAnnouncement', '是否显示网站公告', 'true'); INSERT INTO system_config (`name`, `title`, `value`) VALUES ('layout', '页面布局', 'full'); INSERT INTO system_config (`name`, `title`, `value`) VALUES ('showLinkBtn', '是否显示生成直链按钮', 'true'); INSERT INTO system_config (`name`, `title`, `value`) VALUES ('showShortLink', '是否显示短链', 'true'); INSERT INTO system_config (`name`, `title`, `value`) VALUES ('showPathLink', '是否显示路径直链', 'true'); INSERT INTO system_config (`name`, `title`, `value`) VALUES ('installed', '是否已初始化安装', 'false'); INSERT INTO system_config (`name`, `title`) VALUES ('avatar', '头像地址'); INSERT INTO system_config (`name`, `title`) VALUES ('icp', 'ICP 备案号'); INSERT INTO system_config (`name`, `title`) VALUES ('customVideoSuffix', '自定义视频文件后缀格式'); INSERT INTO system_config (`name`, `title`) VALUES ('customImageSuffix', '自定义图像文件后缀格式'); INSERT INTO system_config (`name`, `title`) VALUES ('customAudioSuffix', '自定义音频文件后缀格式'); INSERT INTO system_config (`name`, `title`) VALUES ('customTextSuffix', '自定义文本文件后缀格式'); INSERT INTO system_config (`name`, `title`, `value`) VALUES ('directLinkPrefix', '直链前缀地址', 'directlink'); INSERT INTO system_config (`name`, `title`, `value`) VALUES ('refererType', '直链 Referer 防盗链类型', 'off'); INSERT INTO system_config (`name`, `title`, `value`) VALUES ('refererAllowEmpty', '直链 Referer 是否允许为空', 'true'); INSERT INTO system_config (`name`, `title`) VALUES ('refererValue', '直链 Referer 值'); INSERT INTO system_config (`name`, `title`, `value`) VALUES ('loginVerifyMode', '登陆验证方式,支持验证码和 2FA 认证', 'off'); INSERT INTO system_config (`name`, `title`) VALUES ('loginVerifySecret', '登陆验证 Secret'); INSERT INTO system_config (`name`, `title`, `value`) VALUES ('rootShowStorage', '根目录是否显示所有存储源', 'true'); INSERT INTO system_config (`name`, `title`) VALUES ('frontDomain', '前端域名,前后端分离情况下需要配置'); INSERT INTO system_config (`name`, `title`, `value`) VALUES ('recordDownloadLog', '是否记录下载日志', 'true'); INSERT INTO system_config (`name`, `title`, `value`) VALUES ('showLogin', '是否在前台显示登陆按钮', 'true'); INSERT INTO system_config (`name`, `title`) VALUES ('rsaHexKey', 'RSA 算法 HEX 格式密钥'); \ No newline at end of file diff --git a/src/main/resources/db/migration-sqlite/V1__Base_version.sql b/src/main/resources/db/migration-sqlite/V1__Base_version.sql new file mode 100644 index 0000000..891150d --- /dev/null +++ b/src/main/resources/db/migration-sqlite/V1__Base_version.sql @@ -0,0 +1 @@ +create table if not exists storage_source ( id integer primary key autoincrement, enable bit null, enable_cache bit null, name varchar(255) null, auto_refresh_cache bit null, type varchar(64) null, search_enable bit null, search_ignore_case bit null, order_num int null, default_switch_to_img_mode bit null, remark text null, `key` varchar(64) null, enable_file_operator bit null, search_mode varchar(32) null, enable_file_anno_operator bit null ); create table if not exists filter_config ( id integer primary key autoincrement, storage_id int null, expression varchar(255) null, description varchar(255) null, mode varchar(255) null ); create table if not exists short_link ( id integer primary key autoincrement, short_key varchar(255) null, url text null, create_date datetime null, storage_id int null ); create table if not exists storage_source_config ( id integer primary key autoincrement, name varchar(255) null, type text null, title varchar(255) null, storage_id int null, value text null ); create table if not exists system_config ( id integer primary key autoincrement, name varchar(255) null, value varchar(255) null, title varchar(255) null ); create table if not exists password_config ( id integer primary key autoincrement, storage_id integer null, expression varchar(255) null, password varchar(255) null, description varchar(255) null ); create table if not exists readme_config ( id integer primary key autoincrement, storage_id integer null, expression varchar(255) null, description varchar(255) null, readme_text text null, display_mode varchar(32) null ); create table if not exists download_log ( id integer primary key autoincrement, path text null , storage_key varchar(32) null, create_time datetime null, ip varchar(20) null, user_agent varchar(2048) null, referer varchar(2048) null, short_key varchar(255) null ); \ No newline at end of file diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml index 0c2bb00..4dda046 100644 --- a/src/main/resources/logback-spring.xml +++ b/src/main/resources/logback-spring.xml @@ -14,7 +14,7 @@ converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/> - + @@ -47,18 +47,18 @@ 滚动时产生的文件的存放位置及文件名称 %d{yyyy-MM-dd}:按天进行日志滚动 %i:当文件大小超过maxFileSize时,按照i进行文件滚动 --> - ${LOG_HOME}/${appName}-%d{yyyy-MM-dd}-%i.log + ${LOG_HOME}/${appName}-%d{yyyy-MM-dd}-%i.gz - 365 + 30 - 5MB + 10MB @@ -76,9 +76,6 @@ true: 表示当前logger的appender-ref和rootLogger的appender-ref都有效 --> - - - @@ -86,7 +83,10 @@ - + + + + diff --git a/src/main/resources/mapper/DownloadLogMapper.xml b/src/main/resources/mapper/DownloadLogMapper.xml new file mode 100644 index 0000000..01099e3 --- /dev/null +++ b/src/main/resources/mapper/DownloadLogMapper.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + `id`, `path`, `storage_key`, `create_time`, `ip`, `user_agent`, `referer`, `short_key` + + + \ No newline at end of file diff --git a/src/main/resources/mapper/FilterConfigMapper.xml b/src/main/resources/mapper/FilterConfigMapper.xml new file mode 100644 index 0000000..caa1e4f --- /dev/null +++ b/src/main/resources/mapper/FilterConfigMapper.xml @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + id, storage_id, expression, mode, description + + + + + + + + delete from filter_config + where storage_id=#{storageId,jdbcType=INTEGER} + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/PasswordConfigMapper.xml b/src/main/resources/mapper/PasswordConfigMapper.xml new file mode 100644 index 0000000..0b3a562 --- /dev/null +++ b/src/main/resources/mapper/PasswordConfigMapper.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + `id`, `storage_id`, `expression`, `password`, `description` + + + + + + + + delete from password_config + where storage_id=#{storageId,jdbcType=INTEGER} + + + \ No newline at end of file diff --git a/src/main/resources/mapper/ReadmeConfigMapper.xml b/src/main/resources/mapper/ReadmeConfigMapper.xml new file mode 100644 index 0000000..5088fe8 --- /dev/null +++ b/src/main/resources/mapper/ReadmeConfigMapper.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + `id`, `storage_id`, `expression`, `readme_text`, `description`, `display_mode` + + + + + + + + delete from readme_config + where storage_id=#{storageId,jdbcType=INTEGER} + + + \ No newline at end of file diff --git a/src/main/resources/mapper/ShortLinkMapper.xml b/src/main/resources/mapper/ShortLinkMapper.xml new file mode 100644 index 0000000..de78b49 --- /dev/null +++ b/src/main/resources/mapper/ShortLinkMapper.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + id, short_key, url, create_date, storage_id + + + + update short_link set url = replace(url, #{updateSubPath}, #{newSubPath}) + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/StorageConfigMapper.xml b/src/main/resources/mapper/StorageConfigMapper.xml new file mode 100644 index 0000000..8f98092 --- /dev/null +++ b/src/main/resources/mapper/StorageConfigMapper.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + id, `name`, `type`, title, storage_id, `value` + + + + + + + + + + + + + + delete from storage_source_config + where storage_id=#{storageId,jdbcType=INTEGER} + + + + + INSERT INTO storage_source_config( + name, + type, + title, + storage_id, + value + )VALUES + + ( + #{element.name,jdbcType=VARCHAR}, + #{element.type,jdbcType=LONGVARCHAR}, + #{element.title,jdbcType=VARCHAR}, + #{element.storageId,jdbcType=INTEGER}, + #{element.value,jdbcType=LONGVARCHAR} + ) + + + \ No newline at end of file diff --git a/src/main/resources/mapper/StorageSourceMapper.xml b/src/main/resources/mapper/StorageSourceMapper.xml new file mode 100644 index 0000000..d8e53b0 --- /dev/null +++ b/src/main/resources/mapper/StorageSourceMapper.xml @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + `id`, `enable`, `enable_cache`, `name`, `auto_refresh_cache`, `type`, `search_enable`, + `search_ignore_case`, `order_num`, `default_switch_to_img_mode`, + `remark`, `key`, `enable_file_operator` + + + + + + + + + + + + + + update storage_source set order_num = #{orderNum} where id = #{id} + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/SystemConfigMapper.xml b/src/main/resources/mapper/SystemConfigMapper.xml new file mode 100644 index 0000000..39361d6 --- /dev/null +++ b/src/main/resources/mapper/SystemConfigMapper.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + id, `name`, `value`, title + + + + + + + + + + INSERT INTO system_config( + name, + value, + title + )VALUES + + ( + #{element.name,jdbcType=VARCHAR}, + #{element.value,jdbcType=VARCHAR}, + #{element.title,jdbcType=VARCHAR} + ) + + + \ No newline at end of file diff --git a/src/main/resources/rebel.xml b/src/main/resources/rebel.xml deleted file mode 100644 index 8eda257..0000000 --- a/src/main/resources/rebel.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - diff --git a/src/main/resources/static/assets/401.23b72021.js b/src/main/resources/static/assets/401.23b72021.js new file mode 100644 index 0000000..cc57672 --- /dev/null +++ b/src/main/resources/static/assets/401.23b72021.js @@ -0,0 +1 @@ +import{d as n,r,o as c,O as i,a as u,f as d,p as t}from"./index.bbf7818f.js";import{_ as p}from"./401.3f3777af.js";import{i as l}from"./index.2f5dd8a9.js";import{b as e}from"./route-block.9b0645f8.js";const x={class:"flex flex-wrap h-screen text-center justify-around items-center"},_={class:"font-blod desc"},f=t("div",{class:"text-7xl code"},"401",-1),h=t("img",{src:p,class:"cover",alt:"page not found"},null,-1),m=n({__name:"401",setup(w){const o=r(null);c(()=>{l(o.value,{showCursor:!1,disableBackTyping:!0,strings:["\u6CA1\u6743\u9650\u8BBF\u95EE\u6B64\u9875\u9762!"]})});const s=i(),a=()=>s.push("/");return(g,v)=>(u(),d("div",x,[t("div",_,[f,t("div",{ref_key:"content",ref:o,class:"text-3xl content"},"\u60A8",512),t("button",{active:"scale-90 transform",class:"rounded-lg transition btn",onClick:a}," \u{1F449} \u8FD4\u56DE\u9996\u9875 ")]),h]))}});typeof e=="function"&&e(m);export{m as default}; diff --git a/src/main/resources/static/assets/401.3f3777af.js b/src/main/resources/static/assets/401.3f3777af.js new file mode 100644 index 0000000..7ec4b93 --- /dev/null +++ b/src/main/resources/static/assets/401.3f3777af.js @@ -0,0 +1 @@ +var e="/assets/401.f56d4c2a.svg",_=Object.freeze(Object.defineProperty({__proto__:null,default:e},Symbol.toStringTag,{value:"Module"}));export{e as _,_ as a}; diff --git a/src/main/resources/static/assets/401.f56d4c2a.svg b/src/main/resources/static/assets/401.f56d4c2a.svg new file mode 100644 index 0000000..ba92c23 --- /dev/null +++ b/src/main/resources/static/assets/401.f56d4c2a.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/403.07bdf36d.svg b/src/main/resources/static/assets/403.07bdf36d.svg new file mode 100644 index 0000000..6e1f6a3 --- /dev/null +++ b/src/main/resources/static/assets/403.07bdf36d.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/assets/403.179bde5f.js b/src/main/resources/static/assets/403.179bde5f.js new file mode 100644 index 0000000..9f7e54b --- /dev/null +++ b/src/main/resources/static/assets/403.179bde5f.js @@ -0,0 +1 @@ +import{d as n,r,o as c,O as i,a as u,f as d,p as t}from"./index.bbf7818f.js";import{_ as l}from"./401.3f3777af.js";import{i as p}from"./index.2f5dd8a9.js";import{b as e}from"./route-block.9b0645f8.js";const x={class:"flex flex-wrap h-screen text-center justify-around items-center"},_={class:"font-blod desc"},f=t("div",{class:"text-7xl code"},"403",-1),h=t("img",{src:l,class:"cover",alt:"page not found"},null,-1),m=n({__name:"403",setup(w){const o=r(null);c(()=>{p(o.value,{showCursor:!1,disableBackTyping:!0,strings:["\u7981\u6B62\u8BBF\u95EE\u6B64\u9875\u9762!"]})});const s=i(),a=()=>s.push("/");return(g,v)=>(u(),d("div",x,[t("div",_,[f,t("div",{ref_key:"content",ref:o,class:"text-3xl content"},null,512),t("button",{active:"scale-90 transform",class:"rounded-lg transition btn",onClick:a}," \u{1F449} \u8FD4\u56DE\u9996\u9875 ")]),h]))}});typeof e=="function"&&e(m);export{m as default}; diff --git a/src/main/resources/static/assets/403.65996b09.css b/src/main/resources/static/assets/403.65996b09.css new file mode 100644 index 0000000..2910635 --- /dev/null +++ b/src/main/resources/static/assets/403.65996b09.css @@ -0,0 +1 @@ +.code{margin-bottom:20px}.content{height:40px}.cover{height:auto;width:600px;margin:0 100px;max-width:100%;max-height:100%}.desc{flex:1;width:300px}.btn{font-size:20px;margin-top:30px;padding:12px 20px;--tw-shadow-color: 8, 145, 178;--tw-shadow: 0 4px 6px -1px rgba(var(--tw-shadow-color), .1), 0 2px 4px -1px rgba(var(--tw-shadow-color), .06);box-shadow:0 0 #0000,0 0 #0000,0 0 #0000,var(--tw-shadow)} diff --git a/src/main/resources/static/assets/404.46de94fc.svg b/src/main/resources/static/assets/404.46de94fc.svg new file mode 100644 index 0000000..59f311a --- /dev/null +++ b/src/main/resources/static/assets/404.46de94fc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/404.b443a636.css b/src/main/resources/static/assets/404.b443a636.css new file mode 100644 index 0000000..bd7cbe0 --- /dev/null +++ b/src/main/resources/static/assets/404.b443a636.css @@ -0,0 +1 @@ +.code{margin-bottom:20px}.content{height:40px}.cover{height:auto;width:700px;margin:0 5px;max-width:100%;max-height:100%}.desc{flex:1;width:300px}.btn{font-size:20px;margin-top:30px;padding:12px 20px;--tw-shadow-color: 8, 145, 178;--tw-shadow: 0 4px 6px -1px rgba(var(--tw-shadow-color), .1), 0 2px 4px -1px rgba(var(--tw-shadow-color), .06);box-shadow:0 0 #0000,0 0 #0000,0 0 #0000,var(--tw-shadow)} diff --git a/src/main/resources/static/assets/404.b81b6fc2.js b/src/main/resources/static/assets/404.b81b6fc2.js new file mode 100644 index 0000000..9e5389c --- /dev/null +++ b/src/main/resources/static/assets/404.b81b6fc2.js @@ -0,0 +1 @@ +import{d as n,r,o as c,O as i,a as u,f as d,p as t}from"./index.bbf7818f.js";import{i as p}from"./index.2f5dd8a9.js";import{b as e}from"./route-block.9b0645f8.js";var l="/assets/notFound.345f1754.svg";const x={class:"flex flex-wrap h-screen text-center justify-around items-center"},_={class:"font-blod desc"},f=t("div",{class:"text-7xl code"},"404",-1),h=t("img",{src:l,class:"cover",alt:"page not found"},null,-1),m=n({__name:"404",setup(g){const o=r(null);c(()=>{p(o.value,{showCursor:!1,disableBackTyping:!0,strings:["\u6CA1\u6709\u6570\u636E\u7684\u8352\u91CE!"]})});const s=i(),a=()=>s.push("/");return(v,w)=>(u(),d("div",x,[t("div",_,[f,t("div",{ref_key:"content",ref:o,class:"text-3xl content"},"\u6765\u5230\u4E86",512),t("button",{active:"scale-90 transform",class:"rounded-lg transition btn",onClick:a}," \u{1F449} \u8FD4\u56DE\u9996\u9875 ")]),h]))}});typeof e=="function"&&e(m);export{m as default}; diff --git a/src/main/resources/static/assets/BadgeCheckIcon.fc085fd1.js b/src/main/resources/static/assets/BadgeCheckIcon.fc085fd1.js new file mode 100644 index 0000000..a9745cf --- /dev/null +++ b/src/main/resources/static/assets/BadgeCheckIcon.fc085fd1.js @@ -0,0 +1 @@ +import{a as e,b as r,h as a}from"./index.bbf7818f.js";function c(o,l){return e(),r("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true"},[a("path",{"fill-rule":"evenodd",d:"M6.267 3.455a3.066 3.066 0 001.745-.723 3.066 3.066 0 013.976 0 3.066 3.066 0 001.745.723 3.066 3.066 0 012.812 2.812c.051.643.304 1.254.723 1.745a3.066 3.066 0 010 3.976 3.066 3.066 0 00-.723 1.745 3.066 3.066 0 01-2.812 2.812 3.066 3.066 0 00-1.745.723 3.066 3.066 0 01-3.976 0 3.066 3.066 0 00-1.745-.723 3.066 3.066 0 01-2.812-2.812 3.066 3.066 0 00-.723-1.745 3.066 3.066 0 010-3.976 3.066 3.066 0 00.723-1.745 3.066 3.066 0 012.812-2.812zm7.44 5.252a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z","clip-rule":"evenodd"})])}export{c as r}; diff --git a/src/main/resources/static/assets/FileGallery.34e81982.css b/src/main/resources/static/assets/FileGallery.34e81982.css new file mode 100644 index 0000000..4f7bbdc --- /dev/null +++ b/src/main/resources/static/assets/FileGallery.34e81982.css @@ -0,0 +1 @@ +.el-empty{--el-empty-padding: 40px 0;--el-empty-image-width: 160px;--el-empty-description-margin-top: 20px;--el-empty-bottom-margin-top: 20px;--el-empty-fill-color-0: var(--el-color-white);--el-empty-fill-color-1: #fcfcfd;--el-empty-fill-color-2: #f8f9fb;--el-empty-fill-color-3: #f7f8fc;--el-empty-fill-color-4: #eeeff3;--el-empty-fill-color-5: #edeef2;--el-empty-fill-color-6: #e9ebef;--el-empty-fill-color-7: #e5e7e9;--el-empty-fill-color-8: #e0e3e9;--el-empty-fill-color-9: #d5d7de;display:flex;justify-content:center;align-items:center;flex-direction:column;text-align:center;box-sizing:border-box;padding:var(--el-empty-padding)}.el-empty__image{width:var(--el-empty-image-width)}.el-empty__image img{-webkit-user-select:none;user-select:none;width:100%;height:100%;vertical-align:top;object-fit:contain}.el-empty__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;width:100%;height:100%;vertical-align:top}.el-empty__description{margin-top:var(--el-empty-description-margin-top)}.el-empty__description p{margin:0;font-size:var(--el-font-size-base);color:var(--el-text-color-secondary)}.el-empty__bottom{margin-top:var(--el-empty-bottom-margin-top)}#nprogress{pointer-events:none}#nprogress .bar{background:#29d;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0px;width:100px;height:100%;box-shadow:0 0 10px #29d,0 0 5px #29d;opacity:1;transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:solid 2px transparent;border-top-color:#29d;border-left-color:#29d;border-radius:50%;-webkit-animation:nprogress-spinner .4s linear infinite;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .spinner,.nprogress-custom-parent #nprogress .bar{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.zfile-gallery-body .zfile-gallery-item[data-v-22cbd527]{display:flex;overflow:hidden;text-align:center;width:var(--72f1547f);margin-bottom:var(--4c134c18)}.zfile-gallery-body .zfile-gallery-item .zfile-gallery-img[data-v-22cbd527]{border-width:1px}.zfile-gallery-body .zfile-gallery-item .zfile-gallery-img-rounded[data-v-22cbd527]{border-radius:.5rem}.zfile-gallery-body .zfile-gallery-item .zfile-gallery-img-text[data-v-22cbd527]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;line-height:1.25rem;opacity:.7}.zfile-gallery-body .zfile-gallery-item .zfile-gallery-img-hover-info[data-v-22cbd527]{position:absolute;top:0px;left:0px;right:0px;display:flex;height:50%;justify-content:space-between}.zfile-gallery-body .zfile-gallery-item .zfile-gallery-img-hover-info[data-v-22cbd527]>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(2.5rem * var(--tw-space-x-reverse));margin-left:calc(2.5rem * calc(1 - var(--tw-space-x-reverse)))}.zfile-gallery-body .zfile-gallery-item .zfile-gallery-img-hover-info[data-v-22cbd527]{padding:.5rem;font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity));opacity:0;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s;background:linear-gradient(180deg,rgba(0,0,0,.6),transparent 120px)}.zfile-gallery-body .zfile-gallery-item .zfile-gallery-img-hover-info .zfile-gallery-img-text[data-v-22cbd527]:last-child{min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content;text-align:right}.zfile-gallery-body .zfile-gallery-item:hover .zfile-gallery-img-hover-info[data-v-22cbd527]{opacity:1}.zfile-gallery-body[data-v-22cbd527] .el-empty{margin-top:10%} diff --git a/src/main/resources/static/assets/FileGallery.4ff55311.js b/src/main/resources/static/assets/FileGallery.4ff55311.js new file mode 100644 index 0000000..c097940 --- /dev/null +++ b/src/main/resources/static/assets/FileGallery.4ff55311.js @@ -0,0 +1 @@ +import{u as B,_ as I,w as M}from"./base.197bc1e5.js";import{E as L}from"./image-viewer.9e2d72eb.js";import{d as N,a as i,f as r,p as e,c as u,g as $,h as S,n as h,u as t,i as V,t as v,k as b,_ as P,$ as D,F as T,y as j,bJ as O,r as W,V as q,bO as C,w as J,Q,R as Y,bP as Z}from"./index.bbf7818f.js";import{c as A}from"./common.d0a2bd7a.js";import{u as H}from"./useFileUpload.ba32a7f8.js";import{u as K}from"./index.eeb08216.js";import"./request.19cbe8c5.js";import"./debounce.a03a8484.js";import"./index.9aca9b8e.js";import"./event.776e7e11.js";import"./scroll.4cf9bb37.js";import"./index.6dd6d04c.js";import"./index.c66de53e.js";import"./event.3ec63147.js";import"./focus-trap.fe4b8179.js";import"./validator.998eeed0.js";import"./directive.b8a17520.js";let U=0;const X=N({name:"ImgEmpty",setup(){return{ns:B("empty"),id:++U}}}),ee={viewBox:"0 0 79 86",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"},le=["id"],te=["stop-color"],oe=["stop-color"],ie=["id"],re=["stop-color"],ae=["stop-color"],ne=["id"],se={id:"Illustrations",stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},pe={id:"B-type",transform:"translate(-1268.000000, -535.000000)"},ce={id:"Group-2",transform:"translate(1268.000000, 535.000000)"},de=["fill"],ge=["fill"],fe={id:"Group-Copy",transform:"translate(34.500000, 31.500000) scale(-1, 1) rotate(-25.000000) translate(-34.500000, -31.500000) translate(7.000000, 10.000000)"},me=["fill"],ye=["fill"],he=["fill"],ue=["fill"],_e=["fill"],ve={id:"Rectangle-Copy-17",transform:"translate(53.000000, 45.000000)"},be=["fill","xlink:href"],ze=["fill","mask"],we=["fill"];function xe(l,o,s,c,f,_){return i(),r("svg",ee,[e("defs",null,[e("linearGradient",{id:`linearGradient-1-${l.id}`,x1:"38.8503086%",y1:"0%",x2:"61.1496914%",y2:"100%"},[e("stop",{"stop-color":`var(${l.ns.cssVarBlockName("fill-color-1")})`,offset:"0%"},null,8,te),e("stop",{"stop-color":`var(${l.ns.cssVarBlockName("fill-color-4")})`,offset:"100%"},null,8,oe)],8,le),e("linearGradient",{id:`linearGradient-2-${l.id}`,x1:"0%",y1:"9.5%",x2:"100%",y2:"90.5%"},[e("stop",{"stop-color":`var(${l.ns.cssVarBlockName("fill-color-1")})`,offset:"0%"},null,8,re),e("stop",{"stop-color":`var(${l.ns.cssVarBlockName("fill-color-6")})`,offset:"100%"},null,8,ae)],8,ie),e("rect",{id:`path-3-${l.id}`,x:"0",y:"0",width:"17",height:"36"},null,8,ne)]),e("g",se,[e("g",pe,[e("g",ce,[e("path",{id:"Oval-Copy-2",d:"M39.5,86 C61.3152476,86 79,83.9106622 79,81.3333333 C79,78.7560045 57.3152476,78 35.5,78 C13.6847524,78 0,78.7560045 0,81.3333333 C0,83.9106622 17.6847524,86 39.5,86 Z",fill:`var(${l.ns.cssVarBlockName("fill-color-3")})`},null,8,de),e("polygon",{id:"Rectangle-Copy-14",fill:`var(${l.ns.cssVarBlockName("fill-color-7")})`,transform:"translate(27.500000, 51.500000) scale(1, -1) translate(-27.500000, -51.500000) ",points:"13 58 53 58 42 45 2 45"},null,8,ge),e("g",fe,[e("polygon",{id:"Rectangle-Copy-10",fill:`var(${l.ns.cssVarBlockName("fill-color-7")})`,transform:"translate(11.500000, 5.000000) scale(1, -1) translate(-11.500000, -5.000000) ",points:"2.84078316e-14 3 18 3 23 7 5 7"},null,8,me),e("polygon",{id:"Rectangle-Copy-11",fill:`var(${l.ns.cssVarBlockName("fill-color-5")})`,points:"-3.69149156e-15 7 38 7 38 43 -3.69149156e-15 43"},null,8,ye),e("rect",{id:"Rectangle-Copy-12",fill:`url(#linearGradient-1-${l.id})`,transform:"translate(46.500000, 25.000000) scale(-1, 1) translate(-46.500000, -25.000000) ",x:"38",y:"7",width:"17",height:"36"},null,8,he),e("polygon",{id:"Rectangle-Copy-13",fill:`var(${l.ns.cssVarBlockName("fill-color-2")})`,transform:"translate(39.500000, 3.500000) scale(-1, 1) translate(-39.500000, -3.500000) ",points:"24 7 41 7 55 -3.63806207e-12 38 -3.63806207e-12"},null,8,ue)]),e("rect",{id:"Rectangle-Copy-15",fill:`url(#linearGradient-2-${l.id})`,x:"13",y:"45",width:"40",height:"36"},null,8,_e),e("g",ve,[e("use",{id:"Mask",fill:`var(${l.ns.cssVarBlockName("fill-color-8")})`,transform:"translate(8.500000, 18.000000) scale(-1, 1) translate(-8.500000, -18.000000) ","xlink:href":`#path-3-${l.id}`},null,8,be),e("polygon",{id:"Rectangle-Copy",fill:`var(${l.ns.cssVarBlockName("fill-color-9")})`,mask:`url(#mask-4-${l.id})`,transform:"translate(12.000000, 9.000000) scale(-1, 1) translate(-12.000000, -9.000000) ",points:"7 0 24 0 20 18 7 16.5"},null,8,ze)]),e("polygon",{id:"Rectangle-Copy-18",fill:`var(${l.ns.cssVarBlockName("fill-color-2")})`,transform:"translate(66.000000, 51.500000) scale(-1, 1) translate(-66.000000, -51.500000) ",points:"62 45 79 45 70 58 53 58"},null,8,we)])])])])}var ke=I(X,[["render",xe],["__file","/home/runner/work/element-plus/element-plus/packages/components/empty/src/img-empty.vue"]]);const $e={image:{type:String,default:""},imageSize:Number,description:{type:String,default:""}},Ce=["src"],Se={key:1},Be={name:"ElEmpty"},Ie=N({...Be,props:$e,setup(l){const o=l,{t:s}=K(),c=B("empty"),f=u(()=>o.description||s("el.table.emptyText")),_=u(()=>({width:o.imageSize?`${o.imageSize}px`:""}));return(a,E)=>(i(),r("div",{class:h(t(c).b())},[e("div",{class:h(t(c).e("image")),style:V(t(_))},[a.image?(i(),r("img",{key:0,src:a.image,ondragstart:"return false"},null,8,Ce)):$(a.$slots,"image",{key:1},()=>[S(ke)])],6),e("div",{class:h(t(c).e("description"))},[a.$slots.description?$(a.$slots,"description",{key:0}):(i(),r("p",Se,v(t(f)),1))],2),a.$slots.default?(i(),r("div",{key:0,class:h(t(c).e("bottom"))},[$(a.$slots,"default")],2)):b("v-if",!0)],2))}});var Ne=I(Ie,[["__file","/home/runner/work/element-plus/element-plus/packages/components/empty/src/empty.vue"]]);const Ve=M(Ne);const Ee={class:"zfile-gallery-body"},Ge={key:0},Re={key:0},Fe={key:0,class:"zfile-gallery-img-hover-info"},Me={class:"zfile-gallery-img-text"},Le={class:"zfile-gallery-img-text"},Pe={key:1},De={class:"zfile-gallery-img-text"},Te={key:1},je={__name:"FileGallery",setup(l){O(m=>({"72f1547f":t(_),"4c134c18":t(G)}));let o=D(),s=H();const c=()=>{let m=W(!1),y=q([]),g=o.zfileConfig.gallery.column,z=u(()=>o.zfileConfig.gallery.columnSpacing+"px"),n=u(()=>o.zfileConfig.gallery.rowSpacing+"px"),R=u(()=>{let p=o.zfileConfig.gallery.columnSpacing;return`calc(${100/g}% - ${(g-1)*p/g}px)`}),w,x;const k=()=>{if(m.value)return w;let p=document.querySelector(".zfile-gallery-body");return w=new Z(p,{itemSelector:".zfile-gallery-item",percentPosition:!0,gutter:o.zfileConfig.gallery.columnSpacing}),x=s.filterFileByType("image").length,m.value=!0,d=0,w};let d=0;const F=p=>{d>=x&&(d=0),d===0&&(C.start(),k()),p.type,y.push(p.path[0].alt),d+=1,d%g===0&&k().layout(),d===x&&(C.done(!0),k().layout())};return J(()=>s.imgMode,p=>{p?(y.splice(0,y.length-1),m.value=!1):C.done(!0)}),{onImageLoad:F,galleryWidth:R,loadedList:y,galleryColumnSpacingPx:z,galleryRowSpacingPx:n}},{onImageLoad:f,galleryWidth:_,loadedList:a,galleryColumnSpacingPx:E,galleryRowSpacingPx:G}=c();return(m,y)=>{const g=L,z=Ve;return i(),r("div",Ee,[t(s).imgMode?(i(),r("div",Ge,[t(s).filterFileByType("image").length>0?(i(),r("div",Re,[(i(!0),r(T,null,j(t(s).filterFileByType("image"),n=>(i(),r("div",{class:"zfile-gallery-item",style:V({display:t(o).zfileConfig.gallery.showInfoMode==="hover"?"flex":"block"}),key:n.name},[S(g,{class:h(["zfile-gallery-img",t(o).zfileConfig.gallery.roundedBorder?"zfile-gallery-img-rounded":""]),src:n.url,alt:n.name,loading:"lazy",lazy:"","scroll-container":".zfile-gallery-body",onError:t(f),onLoad:t(f)},null,8,["class","src","alt","onError","onLoad"]),t(o).zfileConfig.gallery.showInfo&&t(o).zfileConfig.gallery.showInfoMode==="hover"?(i(),r("div",Fe,[e("span",Me,v(n.name),1),e("span",Le,v(t(A).fileSizeFormat(n.size)),1)])):b("",!0),t(o).zfileConfig.gallery.showInfo&&t(o).zfileConfig.gallery.showInfoMode==="bottom"?Q((i(),r("div",Pe,[e("span",De,v(n.name),1)],512)),[[Y,t(a).includes(n.name)]]):b("",!0)],4))),128))])):(i(),r("div",Te,[S(z,{description:"\u5F53\u524D\u6587\u4EF6\u5939\u65E0\u56FE\u7247"})]))])):b("",!0)])}}};var rl=P(je,[["__scopeId","data-v-22cbd527"]]);export{rl as default}; diff --git a/src/main/resources/static/assets/MarkdownViewer.6a8257c9.js b/src/main/resources/static/assets/MarkdownViewer.6a8257c9.js new file mode 100644 index 0000000..d44c67d --- /dev/null +++ b/src/main/resources/static/assets/MarkdownViewer.6a8257c9.js @@ -0,0 +1,48 @@ +import{g as J,a as K}from"./common.6565cdd3.js";import{_ as Y,r as ee,o as te,c as ne,a as oe,f as re,p as ie,u as ae}from"./index.bbf7818f.js";import"./request.19cbe8c5.js";import"./base.197bc1e5.js";function P(){return{baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}let A=P();function le(a){A=a}const se=/[&<>"']/,de=/[&<>"']/g,ce=/[<>"']|&(?!#?\w+;)/,pe=/[<>"']|&(?!#?\w+;)/g,he={"&":"&","<":"<",">":">",'"':""","'":"'"},j=a=>he[a];function k(a,e){if(e){if(se.test(a))return a.replace(de,j)}else if(ce.test(a))return a.replace(pe,j);return a}const ge=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;function V(a){return a.replace(ge,(e,n)=>(n=n.toLowerCase(),n==="colon"?":":n.charAt(0)==="#"?n.charAt(1)==="x"?String.fromCharCode(parseInt(n.substring(2),16)):String.fromCharCode(+n.substring(1)):""))}const me=/(^|[^\[])\^/g;function u(a,e){a=typeof a=="string"?a:a.source,e=e||"";const n={replace:(t,o)=>(o=o.source||o,o=o.replace(me,"$1"),a=a.replace(t,o),n),getRegex:()=>new RegExp(a,e)};return n}const ue=/[^\w:]/g,fe=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function D(a,e,n){if(a){let t;try{t=decodeURIComponent(V(n)).replace(ue,"").toLowerCase()}catch{return null}if(t.indexOf("javascript:")===0||t.indexOf("vbscript:")===0||t.indexOf("data:")===0)return null}e&&!fe.test(n)&&(n=we(e,n));try{n=encodeURI(n).replace(/%25/g,"%")}catch{return null}return n}const L={},be=/^[^:]+:\/*[^/]*$/,ke=/^([^:]+:)[\s\S]*$/,ye=/^([^:]+:\/*[^/]*)[\s\S]*$/;function we(a,e){L[" "+a]||(be.test(a)?L[" "+a]=a+"/":L[" "+a]=B(a,"/",!0)),a=L[" "+a];const n=a.indexOf(":")===-1;return e.substring(0,2)==="//"?n?e:a.replace(ke,"$1")+e:e.charAt(0)==="/"?n?e:a.replace(ye,"$1")+e:a+e}const q={exec:function(){}};function v(a){let e=1,n,t;for(;e{let d=!1,g=i;for(;--g>=0&&l[g]==="\\";)d=!d;return d?"|":" |"}),t=n.split(/ \|/);let o=0;if(t[0].trim()||t.shift(),t.length>0&&!t[t.length-1].trim()&&t.pop(),t.length>e)t.splice(e);else for(;t.length1;)e&1&&(n+=a),e>>=1,a+=a;return n+a}function Q(a,e,n,t){const o=e.href,r=e.title?k(e.title):null,i=a[1].replace(/\\([\[\]])/g,"$1");if(a[0].charAt(0)!=="!"){t.state.inLink=!0;const l={type:"link",raw:n,href:o,title:r,text:i,tokens:t.inlineTokens(i,[])};return t.state.inLink=!1,l}return{type:"image",raw:n,href:o,title:r,text:k(i)}}function ve(a,e){const n=a.match(/^(\s+)(?:```)/);if(n===null)return e;const t=n[1];return e.split(` +`).map(o=>{const r=o.match(/^\s+/);if(r===null)return o;const[i]=r;return i.length>=t.length?o.slice(t.length):o}).join(` +`)}class Z{constructor(e){this.options=e||A}space(e){const n=this.rules.block.newline.exec(e);if(n&&n[0].length>0)return{type:"space",raw:n[0]}}code(e){const n=this.rules.block.code.exec(e);if(n){const t=n[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:n[0],codeBlockStyle:"indented",text:this.options.pedantic?t:B(t,` +`)}}}fences(e){const n=this.rules.block.fences.exec(e);if(n){const t=n[0],o=ve(t,n[3]||"");return{type:"code",raw:t,lang:n[2]?n[2].trim():n[2],text:o}}}heading(e){const n=this.rules.block.heading.exec(e);if(n){let t=n[2].trim();if(/#$/.test(t)){const r=B(t,"#");(this.options.pedantic||!r||/ $/.test(r))&&(t=r.trim())}const o={type:"heading",raw:n[0],depth:n[1].length,text:t,tokens:[]};return this.lexer.inline(o.text,o.tokens),o}}hr(e){const n=this.rules.block.hr.exec(e);if(n)return{type:"hr",raw:n[0]}}blockquote(e){const n=this.rules.block.blockquote.exec(e);if(n){const t=n[0].replace(/^ *>[ \t]?/gm,"");return{type:"blockquote",raw:n[0],tokens:this.lexer.blockTokens(t,[]),text:t}}}list(e){let n=this.rules.block.list.exec(e);if(n){let t,o,r,i,l,d,g,m,w,f,p,I,x=n[1].trim();const R=x.length>1,b={type:"list",raw:"",ordered:R,start:R?+x.slice(0,-1):"",loose:!1,items:[]};x=R?`\\d{1,9}\\${x.slice(-1)}`:`\\${x}`,this.options.pedantic&&(x=R?x:"[*+-]");const y=new RegExp(`^( {0,3}${x})((?:[ ][^\\n]*)?(?:\\n|$))`);for(;e&&(I=!1,!(!(n=y.exec(e))||this.rules.block.hr.test(e)));){if(t=n[0],e=e.substring(t.length),m=n[2].split(` +`,1)[0],w=e.split(` +`,1)[0],this.options.pedantic?(i=2,p=m.trimLeft()):(i=n[2].search(/[^ ]/),i=i>4?1:i,p=m.slice(i),i+=n[1].length),d=!1,!m&&/^ *$/.test(w)&&(t+=w+` +`,e=e.substring(w.length+1),I=!0),!I){const T=new RegExp(`^ {0,${Math.min(3,i-1)}}(?:[*+-]|\\d{1,9}[.)])((?: [^\\n]*)?(?:\\n|$))`),_=new RegExp(`^ {0,${Math.min(3,i-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),z=new RegExp(`^( {0,${Math.min(3,i-1)}})(\`\`\`|~~~)`);for(;e&&(f=e.split(` +`,1)[0],m=f,this.options.pedantic&&(m=m.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),!(z.test(m)||this.rules.block.heading.test(m)||T.test(m)||_.test(e)));){if(m.search(/[^ ]/)>=i||!m.trim())p+=` +`+m.slice(i);else if(!d)p+=` +`+m;else break;!d&&!m.trim()&&(d=!0),t+=f+` +`,e=e.substring(f.length+1)}}b.loose||(g?b.loose=!0:/\n *\n *$/.test(t)&&(g=!0)),this.options.gfm&&(o=/^\[[ xX]\] /.exec(p),o&&(r=o[0]!=="[ ] ",p=p.replace(/^\[[ xX]\] +/,""))),b.items.push({type:"list_item",raw:t,task:!!o,checked:r,loose:!1,text:p}),b.raw+=t}b.items[b.items.length-1].raw=t.trimRight(),b.items[b.items.length-1].text=p.trimRight(),b.raw=b.raw.trimRight();const C=b.items.length;for(l=0;lz.type==="space"),_=T.every(z=>{const M=z.raw.split("");let E=0;for(const G of M)if(G===` +`&&(E+=1),E>1)return!0;return!1});!b.loose&&T.length&&_&&(b.loose=!0,b.items[l].loose=!0)}return b}}html(e){const n=this.rules.block.html.exec(e);if(n){const t={type:"html",raw:n[0],pre:!this.options.sanitizer&&(n[1]==="pre"||n[1]==="script"||n[1]==="style"),text:n[0]};return this.options.sanitize&&(t.type="paragraph",t.text=this.options.sanitizer?this.options.sanitizer(n[0]):k(n[0]),t.tokens=[],this.lexer.inline(t.text,t.tokens)),t}}def(e){const n=this.rules.block.def.exec(e);if(n){n[3]&&(n[3]=n[3].substring(1,n[3].length-1));const t=n[1].toLowerCase().replace(/\s+/g," ");return{type:"def",tag:t,raw:n[0],href:n[2],title:n[3]}}}table(e){const n=this.rules.block.table.exec(e);if(n){const t={type:"table",header:O(n[1]).map(o=>({text:o})),align:n[2].replace(/^ *|\| *$/g,"").split(/ *\| */),rows:n[3]&&n[3].trim()?n[3].replace(/\n[ \t]*$/,"").split(` +`):[]};if(t.header.length===t.align.length){t.raw=n[0];let o=t.align.length,r,i,l,d;for(r=0;r({text:g}));for(o=t.header.length,i=0;i/i.test(n[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(n[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(n[0])&&(this.lexer.state.inRawBlock=!1),{type:this.options.sanitize?"text":"html",raw:n[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(n[0]):k(n[0]):n[0]}}link(e){const n=this.rules.inline.link.exec(e);if(n){const t=n[2].trim();if(!this.options.pedantic&&/^$/.test(t))return;const i=B(t.slice(0,-1),"\\");if((t.length-i.length)%2===0)return}else{const i=xe(n[2],"()");if(i>-1){const d=(n[0].indexOf("!")===0?5:4)+n[1].length+i;n[2]=n[2].substring(0,i),n[0]=n[0].substring(0,d).trim(),n[3]=""}}let o=n[2],r="";if(this.options.pedantic){const i=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(o);i&&(o=i[1],r=i[3])}else r=n[3]?n[3].slice(1,-1):"";return o=o.trim(),/^$/.test(t)?o=o.slice(1):o=o.slice(1,-1)),Q(n,{href:o&&o.replace(this.rules.inline._escapes,"$1"),title:r&&r.replace(this.rules.inline._escapes,"$1")},n[0],this.lexer)}}reflink(e,n){let t;if((t=this.rules.inline.reflink.exec(e))||(t=this.rules.inline.nolink.exec(e))){let o=(t[2]||t[1]).replace(/\s+/g," ");if(o=n[o.toLowerCase()],!o||!o.href){const r=t[0].charAt(0);return{type:"text",raw:r,text:r}}return Q(t,o,t[0],this.lexer)}}emStrong(e,n,t=""){let o=this.rules.inline.emStrong.lDelim.exec(e);if(!o||o[3]&&t.match(/[\p{L}\p{N}]/u))return;const r=o[1]||o[2]||"";if(!r||r&&(t===""||this.rules.inline.punctuation.exec(t))){const i=o[0].length-1;let l,d,g=i,m=0;const w=o[0][0]==="*"?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(w.lastIndex=0,n=n.slice(-1*e.length+i);(o=w.exec(n))!=null;){if(l=o[1]||o[2]||o[3]||o[4]||o[5]||o[6],!l)continue;if(d=l.length,o[3]||o[4]){g+=d;continue}else if((o[5]||o[6])&&i%3&&!((i+d)%3)){m+=d;continue}if(g-=d,g>0)continue;if(d=Math.min(d,d+g+m),Math.min(i,d)%2){const p=e.slice(1,i+o.index+d);return{type:"em",raw:e.slice(0,i+o.index+d+1),text:p,tokens:this.lexer.inlineTokens(p,[])}}const f=e.slice(2,i+o.index+d-1);return{type:"strong",raw:e.slice(0,i+o.index+d+1),text:f,tokens:this.lexer.inlineTokens(f,[])}}}}codespan(e){const n=this.rules.inline.code.exec(e);if(n){let t=n[2].replace(/\n/g," ");const o=/[^ ]/.test(t),r=/^ /.test(t)&&/ $/.test(t);return o&&r&&(t=t.substring(1,t.length-1)),t=k(t,!0),{type:"codespan",raw:n[0],text:t}}}br(e){const n=this.rules.inline.br.exec(e);if(n)return{type:"br",raw:n[0]}}del(e){const n=this.rules.inline.del.exec(e);if(n)return{type:"del",raw:n[0],text:n[2],tokens:this.lexer.inlineTokens(n[2],[])}}autolink(e,n){const t=this.rules.inline.autolink.exec(e);if(t){let o,r;return t[2]==="@"?(o=k(this.options.mangle?n(t[1]):t[1]),r="mailto:"+o):(o=k(t[1]),r=o),{type:"link",raw:t[0],text:o,href:r,tokens:[{type:"text",raw:o,text:o}]}}}url(e,n){let t;if(t=this.rules.inline.url.exec(e)){let o,r;if(t[2]==="@")o=k(this.options.mangle?n(t[0]):t[0]),r="mailto:"+o;else{let i;do i=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])[0];while(i!==t[0]);o=k(t[0]),t[1]==="www."?r="http://"+o:r=o}return{type:"link",raw:t[0],text:o,href:r,tokens:[{type:"text",raw:o,text:o}]}}}inlineText(e,n){const t=this.rules.inline.text.exec(e);if(t){let o;return this.lexer.state.inRawBlock?o=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(t[0]):k(t[0]):t[0]:o=k(this.options.smartypants?n(t[0]):t[0]),{type:"text",raw:t[0],text:o}}}}const c={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/,html:"^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))",def:/^ {0,3}\[(label)\]: *(?:\n *)?]+)>?(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:q,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/};c._label=/(?!\s*\])(?:\\.|[^\[\]\\])+/;c._title=/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/;c.def=u(c.def).replace("label",c._label).replace("title",c._title).getRegex();c.bullet=/(?:[*+-]|\d{1,9}[.)])/;c.listItemStart=u(/^( *)(bull) */).replace("bull",c.bullet).getRegex();c.list=u(c.list).replace(/bull/g,c.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+c.def.source+")").getRegex();c._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul";c._comment=/|$)/;c.html=u(c.html,"i").replace("comment",c._comment).replace("tag",c._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex();c.paragraph=u(c._paragraph).replace("hr",c.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",c._tag).getRegex();c.blockquote=u(c.blockquote).replace("paragraph",c.paragraph).getRegex();c.normal=v({},c);c.gfm=v({},c.normal,{table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"});c.gfm.table=u(c.gfm.table).replace("hr",c.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",c._tag).getRegex();c.gfm.paragraph=u(c._paragraph).replace("hr",c.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",c.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",c._tag).getRegex();c.pedantic=v({},c.normal,{html:u(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",c._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:q,paragraph:u(c.normal._paragraph).replace("hr",c.hr).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",c.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});const s={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:q,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^[^_*]*?\_\_[^_*]*?\*[^_*]*?(?=\_\_)|[^*]+(?=[^*])|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,rDelimUnd:/^[^_*]*?\*\*[^_*]*?\_[^_*]*?(?=\*\*)|[^_]+(?=[^_])|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:q,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\?@\\[\\]`^{|}~";s.punctuation=u(s.punctuation).replace(/punctuation/g,s._punctuation).getRegex();s.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g;s.escapedEmSt=/\\\*|\\_/g;s._comment=u(c._comment).replace("(?:-->|$)","-->").getRegex();s.emStrong.lDelim=u(s.emStrong.lDelim).replace(/punct/g,s._punctuation).getRegex();s.emStrong.rDelimAst=u(s.emStrong.rDelimAst,"g").replace(/punct/g,s._punctuation).getRegex();s.emStrong.rDelimUnd=u(s.emStrong.rDelimUnd,"g").replace(/punct/g,s._punctuation).getRegex();s._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g;s._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;s._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;s.autolink=u(s.autolink).replace("scheme",s._scheme).replace("email",s._email).getRegex();s._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/;s.tag=u(s.tag).replace("comment",s._comment).replace("attribute",s._attribute).getRegex();s._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/;s._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/;s._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/;s.link=u(s.link).replace("label",s._label).replace("href",s._href).replace("title",s._title).getRegex();s.reflink=u(s.reflink).replace("label",s._label).replace("ref",c._label).getRegex();s.nolink=u(s.nolink).replace("ref",c._label).getRegex();s.reflinkSearch=u(s.reflinkSearch,"g").replace("reflink",s.reflink).replace("nolink",s.nolink).getRegex();s.normal=v({},s);s.pedantic=v({},s.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:u(/^!?\[(label)\]\((.*?)\)/).replace("label",s._label).getRegex(),reflink:u(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",s._label).getRegex()});s.gfm=v({},s.normal,{escape:u(s.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\.5&&(t="x"+t.toString(16)),e+="&#"+t+";";return e}class ${constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||A,this.options.tokenizer=this.options.tokenizer||new Z,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};const n={block:c.normal,inline:s.normal};this.options.pedantic?(n.block=c.pedantic,n.inline=s.pedantic):this.options.gfm&&(n.block=c.gfm,this.options.breaks?n.inline=s.breaks:n.inline=s.gfm),this.tokenizer.rules=n}static get rules(){return{block:c,inline:s}}static lex(e,n){return new $(n).lex(e)}static lexInline(e,n){return new $(n).inlineTokens(e)}lex(e){e=e.replace(/\r\n|\r/g,` +`),this.blockTokens(e,this.tokens);let n;for(;n=this.inlineQueue.shift();)this.inlineTokens(n.src,n.tokens);return this.tokens}blockTokens(e,n=[]){this.options.pedantic?e=e.replace(/\t/g," ").replace(/^ +$/gm,""):e=e.replace(/^( *)(\t+)/gm,(l,d,g)=>d+" ".repeat(g.length));let t,o,r,i;for(;e;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(l=>(t=l.call({lexer:this},e,n))?(e=e.substring(t.raw.length),n.push(t),!0):!1))){if(t=this.tokenizer.space(e)){e=e.substring(t.raw.length),t.raw.length===1&&n.length>0?n[n.length-1].raw+=` +`:n.push(t);continue}if(t=this.tokenizer.code(e)){e=e.substring(t.raw.length),o=n[n.length-1],o&&(o.type==="paragraph"||o.type==="text")?(o.raw+=` +`+t.raw,o.text+=` +`+t.text,this.inlineQueue[this.inlineQueue.length-1].src=o.text):n.push(t);continue}if(t=this.tokenizer.fences(e)){e=e.substring(t.raw.length),n.push(t);continue}if(t=this.tokenizer.heading(e)){e=e.substring(t.raw.length),n.push(t);continue}if(t=this.tokenizer.hr(e)){e=e.substring(t.raw.length),n.push(t);continue}if(t=this.tokenizer.blockquote(e)){e=e.substring(t.raw.length),n.push(t);continue}if(t=this.tokenizer.list(e)){e=e.substring(t.raw.length),n.push(t);continue}if(t=this.tokenizer.html(e)){e=e.substring(t.raw.length),n.push(t);continue}if(t=this.tokenizer.def(e)){e=e.substring(t.raw.length),o=n[n.length-1],o&&(o.type==="paragraph"||o.type==="text")?(o.raw+=` +`+t.raw,o.text+=` +`+t.raw,this.inlineQueue[this.inlineQueue.length-1].src=o.text):this.tokens.links[t.tag]||(this.tokens.links[t.tag]={href:t.href,title:t.title});continue}if(t=this.tokenizer.table(e)){e=e.substring(t.raw.length),n.push(t);continue}if(t=this.tokenizer.lheading(e)){e=e.substring(t.raw.length),n.push(t);continue}if(r=e,this.options.extensions&&this.options.extensions.startBlock){let l=1/0;const d=e.slice(1);let g;this.options.extensions.startBlock.forEach(function(m){g=m.call({lexer:this},d),typeof g=="number"&&g>=0&&(l=Math.min(l,g))}),l<1/0&&l>=0&&(r=e.substring(0,l+1))}if(this.state.top&&(t=this.tokenizer.paragraph(r))){o=n[n.length-1],i&&o.type==="paragraph"?(o.raw+=` +`+t.raw,o.text+=` +`+t.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=o.text):n.push(t),i=r.length!==e.length,e=e.substring(t.raw.length);continue}if(t=this.tokenizer.text(e)){e=e.substring(t.raw.length),o=n[n.length-1],o&&o.type==="text"?(o.raw+=` +`+t.raw,o.text+=` +`+t.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=o.text):n.push(t);continue}if(e){const l="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(l);break}else throw new Error(l)}}return this.state.top=!0,n}inline(e,n){this.inlineQueue.push({src:e,tokens:n})}inlineTokens(e,n=[]){let t,o,r,i=e,l,d,g;if(this.tokens.links){const m=Object.keys(this.tokens.links);if(m.length>0)for(;(l=this.tokenizer.rules.inline.reflinkSearch.exec(i))!=null;)m.includes(l[0].slice(l[0].lastIndexOf("[")+1,-1))&&(i=i.slice(0,l.index)+"["+F("a",l[0].length-2)+"]"+i.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(l=this.tokenizer.rules.inline.blockSkip.exec(i))!=null;)i=i.slice(0,l.index)+"["+F("a",l[0].length-2)+"]"+i.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(l=this.tokenizer.rules.inline.escapedEmSt.exec(i))!=null;)i=i.slice(0,l.index)+"++"+i.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);for(;e;)if(d||(g=""),d=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(m=>(t=m.call({lexer:this},e,n))?(e=e.substring(t.raw.length),n.push(t),!0):!1))){if(t=this.tokenizer.escape(e)){e=e.substring(t.raw.length),n.push(t);continue}if(t=this.tokenizer.tag(e)){e=e.substring(t.raw.length),o=n[n.length-1],o&&t.type==="text"&&o.type==="text"?(o.raw+=t.raw,o.text+=t.text):n.push(t);continue}if(t=this.tokenizer.link(e)){e=e.substring(t.raw.length),n.push(t);continue}if(t=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(t.raw.length),o=n[n.length-1],o&&t.type==="text"&&o.type==="text"?(o.raw+=t.raw,o.text+=t.text):n.push(t);continue}if(t=this.tokenizer.emStrong(e,i,g)){e=e.substring(t.raw.length),n.push(t);continue}if(t=this.tokenizer.codespan(e)){e=e.substring(t.raw.length),n.push(t);continue}if(t=this.tokenizer.br(e)){e=e.substring(t.raw.length),n.push(t);continue}if(t=this.tokenizer.del(e)){e=e.substring(t.raw.length),n.push(t);continue}if(t=this.tokenizer.autolink(e,N)){e=e.substring(t.raw.length),n.push(t);continue}if(!this.state.inLink&&(t=this.tokenizer.url(e,N))){e=e.substring(t.raw.length),n.push(t);continue}if(r=e,this.options.extensions&&this.options.extensions.startInline){let m=1/0;const w=e.slice(1);let f;this.options.extensions.startInline.forEach(function(p){f=p.call({lexer:this},w),typeof f=="number"&&f>=0&&(m=Math.min(m,f))}),m<1/0&&m>=0&&(r=e.substring(0,m+1))}if(t=this.tokenizer.inlineText(r,_e)){e=e.substring(t.raw.length),t.raw.slice(-1)!=="_"&&(g=t.raw.slice(-1)),d=!0,o=n[n.length-1],o&&o.type==="text"?(o.raw+=t.raw,o.text+=t.text):n.push(t);continue}if(e){const m="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(m);break}else throw new Error(m)}}return n}}class U{constructor(e){this.options=e||A}code(e,n,t){const o=(n||"").match(/\S*/)[0];if(this.options.highlight){const r=this.options.highlight(e,o);r!=null&&r!==e&&(t=!0,e=r)}return e=e.replace(/\n$/,"")+` +`,o?'
'+(t?e:k(e,!0))+`
+`:"
"+(t?e:k(e,!0))+`
+`}blockquote(e){return`
+${e}
+`}html(e){return e}heading(e,n,t,o){if(this.options.headerIds){const r=this.options.headerPrefix+o.slug(t);return`${e} +`}return`${e} +`}hr(){return this.options.xhtml?`
+`:`
+`}list(e,n,t){const o=n?"ol":"ul",r=n&&t!==1?' start="'+t+'"':"";return"<"+o+r+`> +`+e+" +`}listitem(e){return`
  • ${e}
  • +`}checkbox(e){return" "}paragraph(e){return`

    ${e}

    +`}table(e,n){return n&&(n=`${n}`),` + +`+e+` +`+n+`
    +`}tablerow(e){return` +${e} +`}tablecell(e,n){const t=n.header?"th":"td";return(n.align?`<${t} align="${n.align}">`:`<${t}>`)+e+` +`}strong(e){return`${e}`}em(e){return`${e}`}codespan(e){return`${e}`}br(){return this.options.xhtml?"
    ":"
    "}del(e){return`${e}`}link(e,n,t){if(e=D(this.options.sanitize,this.options.baseUrl,e),e===null)return t;let o='",o}image(e,n,t){if(e=D(this.options.sanitize,this.options.baseUrl,e),e===null)return t;let o=`${t}":">",o}text(e){return e}}class W{strong(e){return e}em(e){return e}codespan(e){return e}del(e){return e}html(e){return e}text(e){return e}link(e,n,t){return""+t}image(e,n,t){return""+t}br(){return""}}class X{constructor(){this.seen={}}serialize(e){return e.toLowerCase().trim().replace(/<[!\/a-z].*?>/ig,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")}getNextSafeSlug(e,n){let t=e,o=0;if(this.seen.hasOwnProperty(t)){o=this.seen[e];do o++,t=e+"-"+o;while(this.seen.hasOwnProperty(t))}return n||(this.seen[e]=o,this.seen[t]=0),t}slug(e,n={}){const t=this.serialize(e);return this.getNextSafeSlug(t,n.dryrun)}}class S{constructor(e){this.options=e||A,this.options.renderer=this.options.renderer||new U,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new W,this.slugger=new X}static parse(e,n){return new S(n).parse(e)}static parseInline(e,n){return new S(n).parseInline(e)}parse(e,n=!0){let t="",o,r,i,l,d,g,m,w,f,p,I,x,R,b,y,C,T,_,z;const M=e.length;for(o=0;o0&&y.tokens[0].type==="paragraph"?(y.tokens[0].text=_+" "+y.tokens[0].text,y.tokens[0].tokens&&y.tokens[0].tokens.length>0&&y.tokens[0].tokens[0].type==="text"&&(y.tokens[0].tokens[0].text=_+" "+y.tokens[0].tokens[0].text)):y.tokens.unshift({type:"text",text:_}):b+=_),b+=this.parse(y.tokens,R),f+=this.renderer.listitem(b,T,C);t+=this.renderer.list(f,I,x);continue}case"html":{t+=this.renderer.html(p.text);continue}case"paragraph":{t+=this.renderer.paragraph(this.parseInline(p.tokens));continue}case"text":{for(f=p.tokens?this.parseInline(p.tokens):p.text;o+1{t(l.text,l.lang,function(d,g){if(d)return r(d);g!=null&&g!==l.text&&(l.text=g,l.escaped=!0),i--,i===0&&r()})},0))}),i===0&&r();return}try{const t=$.lex(a,e);return e.walkTokens&&h.walkTokens(t,e.walkTokens),S.parse(t,e)}catch(t){if(t.message+=` +Please report this to https://github.com/markedjs/marked.`,e.silent)return"

    An error occurred:

    "+k(t.message+"",!0)+"
    ";throw t}}h.options=h.setOptions=function(a){return v(h.defaults,a),le(h.defaults),h};h.getDefaults=P;h.defaults=A;h.use=function(...a){const e=v({},...a),n=h.defaults.extensions||{renderers:{},childTokens:{}};let t;a.forEach(o=>{if(o.extensions&&(t=!0,o.extensions.forEach(r=>{if(!r.name)throw new Error("extension name required");if(r.renderer){const i=n.renderers?n.renderers[r.name]:null;i?n.renderers[r.name]=function(...l){let d=r.renderer.apply(this,l);return d===!1&&(d=i.apply(this,l)),d}:n.renderers[r.name]=r.renderer}if(r.tokenizer){if(!r.level||r.level!=="block"&&r.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");n[r.level]?n[r.level].unshift(r.tokenizer):n[r.level]=[r.tokenizer],r.start&&(r.level==="block"?n.startBlock?n.startBlock.push(r.start):n.startBlock=[r.start]:r.level==="inline"&&(n.startInline?n.startInline.push(r.start):n.startInline=[r.start]))}r.childTokens&&(n.childTokens[r.name]=r.childTokens)})),o.renderer){const r=h.defaults.renderer||new U;for(const i in o.renderer){const l=r[i];r[i]=(...d)=>{let g=o.renderer[i].apply(r,d);return g===!1&&(g=l.apply(r,d)),g}}e.renderer=r}if(o.tokenizer){const r=h.defaults.tokenizer||new Z;for(const i in o.tokenizer){const l=r[i];r[i]=(...d)=>{let g=o.tokenizer[i].apply(r,d);return g===!1&&(g=l.apply(r,d)),g}}e.tokenizer=r}if(o.walkTokens){const r=h.defaults.walkTokens;e.walkTokens=function(i){o.walkTokens.call(this,i),r&&r.call(this,i)}}t&&(e.extensions=n),h.setOptions(e)})};h.walkTokens=function(a,e){for(const n of a)switch(e.call(h,n),n.type){case"table":{for(const t of n.header)h.walkTokens(t.tokens,e);for(const t of n.rows)for(const o of t)h.walkTokens(o.tokens,e);break}case"list":{h.walkTokens(n.items,e);break}default:h.defaults.extensions&&h.defaults.extensions.childTokens&&h.defaults.extensions.childTokens[n.type]?h.defaults.extensions.childTokens[n.type].forEach(function(t){h.walkTokens(n[t],e)}):n.tokens&&h.walkTokens(n.tokens,e)}};h.parseInline=function(a,e){if(typeof a=="undefined"||a===null)throw new Error("marked.parseInline(): input parameter is undefined or null");if(typeof a!="string")throw new Error("marked.parseInline(): input parameter is of type "+Object.prototype.toString.call(a)+", string expected");e=v({},h.defaults,e||{}),H(e);try{const n=$.lexInline(a,e);return e.walkTokens&&h.walkTokens(n,e.walkTokens),S.parseInline(n,e)}catch(n){if(n.message+=` +Please report this to https://github.com/markedjs/marked.`,e.silent)return"

    An error occurred:

    "+k(n.message+"",!0)+"
    ";throw n}};h.Parser=S;h.parser=S.parse;h.Renderer=U;h.TextRenderer=W;h.Lexer=$;h.lexer=$.lex;h.Tokenizer=Z;h.Slugger=X;h.parse=h;S.parse;$.lex;const ze={class:"content"},$e=["innerHTML"],Se={__name:"MarkdownViewer",props:{fileUrl:String,fileName:String},setup(a){const e=a,n=ee("");te(()=>{let o=e.fileUrl;J(o).then(r=>{n.value=r.data}).catch(r=>{K({url:o}).then(i=>{n.value=i.data}).catch(i=>{alert("\u52A0\u8F7D\u6587\u4EF6\u9884\u89C8\u5668\u5931\u8D25\uFF0C\u8BF7\u68C0\u6D4B\u6587\u4EF6\u4E0B\u8F7D\u94FE\u63A5\u662F\u5426\u6B63\u5E38")})})});let t=ne(()=>{let o=new h.Renderer;return o.link=function(){return h.Renderer.prototype.link.apply(this,arguments).replace("(oe(),re("div",ze,[ie("div",{class:"dialog-scroll markdown-body",innerHTML:ae(t)},null,8,$e)]))}};var Ce=Y(Se,[["__scopeId","data-v-cffd4bf2"]]);export{Ce as default}; diff --git a/src/main/resources/static/assets/MarkdownViewer.d4ddbd4f.css b/src/main/resources/static/assets/MarkdownViewer.d4ddbd4f.css new file mode 100644 index 0000000..ac44276 --- /dev/null +++ b/src/main/resources/static/assets/MarkdownViewer.d4ddbd4f.css @@ -0,0 +1 @@ +@media (prefers-color-scheme: dark){.markdown-body{color-scheme:dark;--color-prettylights-syntax-comment: #8b949e;--color-prettylights-syntax-constant: #79c0ff;--color-prettylights-syntax-entity: #d2a8ff;--color-prettylights-syntax-storage-modifier-import: #c9d1d9;--color-prettylights-syntax-entity-tag: #7ee787;--color-prettylights-syntax-keyword: #ff7b72;--color-prettylights-syntax-string: #a5d6ff;--color-prettylights-syntax-variable: #ffa657;--color-prettylights-syntax-brackethighlighter-unmatched: #f85149;--color-prettylights-syntax-invalid-illegal-text: #f0f6fc;--color-prettylights-syntax-invalid-illegal-bg: #8e1519;--color-prettylights-syntax-carriage-return-text: #f0f6fc;--color-prettylights-syntax-carriage-return-bg: #b62324;--color-prettylights-syntax-string-regexp: #7ee787;--color-prettylights-syntax-markup-list: #f2cc60;--color-prettylights-syntax-markup-heading: #1f6feb;--color-prettylights-syntax-markup-italic: #c9d1d9;--color-prettylights-syntax-markup-bold: #c9d1d9;--color-prettylights-syntax-markup-deleted-text: #ffdcd7;--color-prettylights-syntax-markup-deleted-bg: #67060c;--color-prettylights-syntax-markup-inserted-text: #aff5b4;--color-prettylights-syntax-markup-inserted-bg: #033a16;--color-prettylights-syntax-markup-changed-text: #ffdfb6;--color-prettylights-syntax-markup-changed-bg: #5a1e02;--color-prettylights-syntax-markup-ignored-text: #c9d1d9;--color-prettylights-syntax-markup-ignored-bg: #1158c7;--color-prettylights-syntax-meta-diff-range: #d2a8ff;--color-prettylights-syntax-brackethighlighter-angle: #8b949e;--color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;--color-prettylights-syntax-constant-other-reference-link: #a5d6ff;--color-fg-default: #c9d1d9;--color-fg-muted: #8b949e;--color-fg-subtle: #484f58;--color-canvas-default: #0d1117;--color-canvas-subtle: #161b22;--color-border-default: #30363d;--color-border-muted: #21262d;--color-neutral-muted: rgba(110,118,129,.4);--color-accent-fg: #58a6ff;--color-accent-emphasis: #1f6feb;--color-attention-subtle: rgba(187,128,9,.15);--color-danger-fg: #f85149}}@media (prefers-color-scheme: light){.markdown-body{color-scheme:light;--color-prettylights-syntax-comment: #6e7781;--color-prettylights-syntax-constant: #0550ae;--color-prettylights-syntax-entity: #8250df;--color-prettylights-syntax-storage-modifier-import: #24292f;--color-prettylights-syntax-entity-tag: #116329;--color-prettylights-syntax-keyword: #cf222e;--color-prettylights-syntax-string: #0a3069;--color-prettylights-syntax-variable: #953800;--color-prettylights-syntax-brackethighlighter-unmatched: #82071e;--color-prettylights-syntax-invalid-illegal-text: #f6f8fa;--color-prettylights-syntax-invalid-illegal-bg: #82071e;--color-prettylights-syntax-carriage-return-text: #f6f8fa;--color-prettylights-syntax-carriage-return-bg: #cf222e;--color-prettylights-syntax-string-regexp: #116329;--color-prettylights-syntax-markup-list: #3b2300;--color-prettylights-syntax-markup-heading: #0550ae;--color-prettylights-syntax-markup-italic: #24292f;--color-prettylights-syntax-markup-bold: #24292f;--color-prettylights-syntax-markup-deleted-text: #82071e;--color-prettylights-syntax-markup-deleted-bg: #FFEBE9;--color-prettylights-syntax-markup-inserted-text: #116329;--color-prettylights-syntax-markup-inserted-bg: #dafbe1;--color-prettylights-syntax-markup-changed-text: #953800;--color-prettylights-syntax-markup-changed-bg: #ffd8b5;--color-prettylights-syntax-markup-ignored-text: #eaeef2;--color-prettylights-syntax-markup-ignored-bg: #0550ae;--color-prettylights-syntax-meta-diff-range: #8250df;--color-prettylights-syntax-brackethighlighter-angle: #57606a;--color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;--color-prettylights-syntax-constant-other-reference-link: #0a3069;--color-fg-default: #24292f;--color-fg-muted: #57606a;--color-fg-subtle: #6e7781;--color-canvas-default: #ffffff;--color-canvas-subtle: #f6f8fa;--color-border-default: #d0d7de;--color-border-muted: hsla(210,18%,87%,1);--color-neutral-muted: rgba(175,184,193,.2);--color-accent-fg: #0969da;--color-accent-emphasis: #0969da;--color-attention-subtle: #fff8c5;--color-danger-fg: #cf222e}}.markdown-body{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;margin:0;color:var(--color-fg-default);background-color:var(--color-canvas-default);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:16px;line-height:1.5;word-wrap:break-word}.markdown-body .octicon{display:inline-block;fill:currentColor;vertical-align:text-bottom}.markdown-body h1:hover .anchor .octicon-link:before,.markdown-body h2:hover .anchor .octicon-link:before,.markdown-body h3:hover .anchor .octicon-link:before,.markdown-body h4:hover .anchor .octicon-link:before,.markdown-body h5:hover .anchor .octicon-link:before,.markdown-body h6:hover .anchor .octicon-link:before{width:16px;height:16px;content:" ";display:inline-block;background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml,");mask-image:url("data:image/svg+xml,")}.markdown-body details,.markdown-body figcaption,.markdown-body figure{display:block}.markdown-body summary{display:list-item}.markdown-body [hidden]{display:none!important}.markdown-body a{background-color:transparent;color:var(--color-accent-fg);text-decoration:none}.markdown-body a:active,.markdown-body a:hover{outline-width:0}.markdown-body abbr[title]{border-bottom:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.markdown-body b,.markdown-body strong{font-weight:600}.markdown-body dfn{font-style:italic}.markdown-body h1{margin:.67em 0;font-weight:600;padding-bottom:.3em;font-size:2em;border-bottom:1px solid var(--color-border-muted)}.markdown-body mark{background-color:var(--color-attention-subtle);color:var(--color-text-primary)}.markdown-body small{font-size:90%}.markdown-body sub,.markdown-body sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.markdown-body sub{bottom:-.25em}.markdown-body sup{top:-.5em}.markdown-body img{border-style:none;max-width:100%;box-sizing:content-box;background-color:var(--color-canvas-default)}.markdown-body code,.markdown-body kbd,.markdown-body pre,.markdown-body samp{font-family:monospace,monospace;font-size:1em}.markdown-body figure{margin:1em 40px}.markdown-body hr{box-sizing:content-box;overflow:hidden;background:transparent;border-bottom:1px solid var(--color-border-muted);height:.25em;padding:0;margin:24px 0;background-color:var(--color-border-default);border:0}.markdown-body input{font:inherit;margin:0;overflow:visible;font-family:inherit;font-size:inherit;line-height:inherit}.markdown-body [type=button],.markdown-body [type=reset],.markdown-body [type=submit]{-webkit-appearance:button}.markdown-body [type=button]::-moz-focus-inner,.markdown-body [type=reset]::-moz-focus-inner,.markdown-body [type=submit]::-moz-focus-inner{border-style:none;padding:0}.markdown-body [type=button]:-moz-focusring,.markdown-body [type=reset]:-moz-focusring,.markdown-body [type=submit]:-moz-focusring{outline:1px dotted ButtonText}.markdown-body [type=checkbox],.markdown-body [type=radio]{box-sizing:border-box;padding:0}.markdown-body [type=number]::-webkit-inner-spin-button,.markdown-body [type=number]::-webkit-outer-spin-button{height:auto}.markdown-body [type=search]{-webkit-appearance:textfield;outline-offset:-2px}.markdown-body [type=search]::-webkit-search-cancel-button,.markdown-body [type=search]::-webkit-search-decoration{-webkit-appearance:none}.markdown-body ::-webkit-input-placeholder{color:inherit;opacity:.54}.markdown-body ::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}.markdown-body a:hover{text-decoration:underline}.markdown-body hr:before{display:table;content:""}.markdown-body hr:after{display:table;clear:both;content:""}.markdown-body table{border-spacing:0;border-collapse:collapse;display:block;width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;overflow:auto}.markdown-body td,.markdown-body th{padding:0}.markdown-body details summary{cursor:pointer}.markdown-body details:not([open])>*:not(summary){display:none!important}.markdown-body kbd{display:inline-block;padding:3px 5px;font:11px ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;line-height:10px;color:var(--color-fg-default);vertical-align:middle;background-color:var(--color-canvas-subtle);border:solid 1px var(--color-neutral-muted);border-bottom-color:var(--color-neutral-muted);border-radius:6px;box-shadow:inset 0 -1px 0 var(--color-neutral-muted)}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}.markdown-body h2{font-weight:600;padding-bottom:.3em;font-size:1.5em;border-bottom:1px solid var(--color-border-muted)}.markdown-body h3{font-weight:600;font-size:1.25em}.markdown-body h4{font-weight:600;font-size:1em}.markdown-body h5{font-weight:600;font-size:.875em}.markdown-body h6{font-weight:600;font-size:.85em;color:var(--color-fg-muted)}.markdown-body p{margin-top:0;margin-bottom:10px}.markdown-body blockquote{margin:0;padding:0 1em;color:var(--color-fg-muted);border-left:.25em solid var(--color-border-default)}.markdown-body ul,.markdown-body ol{margin-top:0;margin-bottom:0;padding-left:2em}.markdown-body ol ol,.markdown-body ul ol{list-style-type:lower-roman}.markdown-body ul ul ol,.markdown-body ul ol ol,.markdown-body ol ul ol,.markdown-body ol ol ol{list-style-type:lower-alpha}.markdown-body dd{margin-left:0}.markdown-body tt,.markdown-body code{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12px}.markdown-body pre{margin-top:0;margin-bottom:0;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12px;word-wrap:normal}.markdown-body .octicon{display:inline-block;overflow:visible!important;vertical-align:text-bottom;fill:currentColor}.markdown-body ::-moz-placeholder{color:var(--color-fg-subtle);opacity:1}.markdown-body ::placeholder{color:var(--color-fg-subtle);opacity:1}.markdown-body input::-webkit-outer-spin-button,.markdown-body input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none;appearance:none}.markdown-body .pl-c{color:var(--color-prettylights-syntax-comment)}.markdown-body .pl-c1,.markdown-body .pl-s .pl-v{color:var(--color-prettylights-syntax-constant)}.markdown-body .pl-e,.markdown-body .pl-en{color:var(--color-prettylights-syntax-entity)}.markdown-body .pl-smi,.markdown-body .pl-s .pl-s1{color:var(--color-prettylights-syntax-storage-modifier-import)}.markdown-body .pl-ent{color:var(--color-prettylights-syntax-entity-tag)}.markdown-body .pl-k{color:var(--color-prettylights-syntax-keyword)}.markdown-body .pl-s,.markdown-body .pl-pds,.markdown-body .pl-s .pl-pse .pl-s1,.markdown-body .pl-sr,.markdown-body .pl-sr .pl-cce,.markdown-body .pl-sr .pl-sre,.markdown-body .pl-sr .pl-sra{color:var(--color-prettylights-syntax-string)}.markdown-body .pl-v,.markdown-body .pl-smw{color:var(--color-prettylights-syntax-variable)}.markdown-body .pl-bu{color:var(--color-prettylights-syntax-brackethighlighter-unmatched)}.markdown-body .pl-ii{color:var(--color-prettylights-syntax-invalid-illegal-text);background-color:var(--color-prettylights-syntax-invalid-illegal-bg)}.markdown-body .pl-c2{color:var(--color-prettylights-syntax-carriage-return-text);background-color:var(--color-prettylights-syntax-carriage-return-bg)}.markdown-body .pl-sr .pl-cce{font-weight:700;color:var(--color-prettylights-syntax-string-regexp)}.markdown-body .pl-ml{color:var(--color-prettylights-syntax-markup-list)}.markdown-body .pl-mh,.markdown-body .pl-mh .pl-en,.markdown-body .pl-ms{font-weight:700;color:var(--color-prettylights-syntax-markup-heading)}.markdown-body .pl-mi{font-style:italic;color:var(--color-prettylights-syntax-markup-italic)}.markdown-body .pl-mb{font-weight:700;color:var(--color-prettylights-syntax-markup-bold)}.markdown-body .pl-md{color:var(--color-prettylights-syntax-markup-deleted-text);background-color:var(--color-prettylights-syntax-markup-deleted-bg)}.markdown-body .pl-mi1{color:var(--color-prettylights-syntax-markup-inserted-text);background-color:var(--color-prettylights-syntax-markup-inserted-bg)}.markdown-body .pl-mc{color:var(--color-prettylights-syntax-markup-changed-text);background-color:var(--color-prettylights-syntax-markup-changed-bg)}.markdown-body .pl-mi2{color:var(--color-prettylights-syntax-markup-ignored-text);background-color:var(--color-prettylights-syntax-markup-ignored-bg)}.markdown-body .pl-mdr{font-weight:700;color:var(--color-prettylights-syntax-meta-diff-range)}.markdown-body .pl-ba{color:var(--color-prettylights-syntax-brackethighlighter-angle)}.markdown-body .pl-sg{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}.markdown-body .pl-corl{text-decoration:underline;color:var(--color-prettylights-syntax-constant-other-reference-link)}.markdown-body [data-catalyst]{display:block}.markdown-body g-emoji{font-family:"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol;font-size:1em;font-style:normal!important;font-weight:400;line-height:1;vertical-align:-.075em}.markdown-body g-emoji img{width:1em;height:1em}.markdown-body:before{display:table;content:""}.markdown-body:after{display:table;clear:both;content:""}.markdown-body>*:first-child{margin-top:0!important}.markdown-body>*:last-child{margin-bottom:0!important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body .absent{color:var(--color-danger-fg)}.markdown-body .anchor{float:left;padding-right:4px;margin-left:-20px;line-height:1}.markdown-body .anchor:focus{outline:none}.markdown-body p,.markdown-body blockquote,.markdown-body ul,.markdown-body ol,.markdown-body dl,.markdown-body table,.markdown-body pre,.markdown-body details{margin-top:0;margin-bottom:16px}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body sup>a:before{content:"["}.markdown-body sup>a:after{content:"]"}.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{color:var(--color-fg-default);vertical-align:middle;visibility:hidden}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.markdown-body h1:hover .anchor .octicon-link,.markdown-body h2:hover .anchor .octicon-link,.markdown-body h3:hover .anchor .octicon-link,.markdown-body h4:hover .anchor .octicon-link,.markdown-body h5:hover .anchor .octicon-link,.markdown-body h6:hover .anchor .octicon-link{visibility:visible}.markdown-body h1 tt,.markdown-body h1 code,.markdown-body h2 tt,.markdown-body h2 code,.markdown-body h3 tt,.markdown-body h3 code,.markdown-body h4 tt,.markdown-body h4 code,.markdown-body h5 tt,.markdown-body h5 code,.markdown-body h6 tt,.markdown-body h6 code{padding:0 .2em;font-size:inherit}.markdown-body ul.no-list,.markdown-body ol.no-list{padding:0;list-style-type:none}.markdown-body ol[type="1"]{list-style-type:decimal}.markdown-body ol[type=a]{list-style-type:lower-alpha}.markdown-body ol[type=i]{list-style-type:lower-roman}.markdown-body div>ol:not([type]){list-style-type:decimal}.markdown-body ul ul,.markdown-body ul ol,.markdown-body ol ol,.markdown-body ol ul{margin-top:0;margin-bottom:0}.markdown-body li>p{margin-top:16px}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:600}.markdown-body dl dd{padding:0 16px;margin-bottom:16px}.markdown-body table th{font-weight:600}.markdown-body table th,.markdown-body table td{padding:6px 13px;border:1px solid var(--color-border-default)}.markdown-body table tr{background-color:var(--color-canvas-default);border-top:1px solid var(--color-border-muted)}.markdown-body table tr:nth-child(2n){background-color:var(--color-canvas-subtle)}.markdown-body table img{background-color:transparent}.markdown-body img[align=right]{padding-left:20px}.markdown-body img[align=left]{padding-right:20px}.markdown-body .emoji{max-width:none;vertical-align:text-top;background-color:transparent}.markdown-body span.frame{display:block;overflow:hidden}.markdown-body span.frame>span{display:block;float:left;width:auto;padding:7px;margin:13px 0 0;overflow:hidden;border:1px solid var(--color-border-default)}.markdown-body span.frame span img{display:block;float:left}.markdown-body span.frame span span{display:block;padding:5px 0 0;clear:both;color:var(--color-fg-default)}.markdown-body span.align-center{display:block;overflow:hidden;clear:both}.markdown-body span.align-center>span{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.markdown-body span.align-center span img{margin:0 auto;text-align:center}.markdown-body span.align-right{display:block;overflow:hidden;clear:both}.markdown-body span.align-right>span{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.markdown-body span.align-right span img{margin:0;text-align:right}.markdown-body span.float-left{display:block;float:left;margin-right:13px;overflow:hidden}.markdown-body span.float-left span{margin:13px 0 0}.markdown-body span.float-right{display:block;float:right;margin-left:13px;overflow:hidden}.markdown-body span.float-right>span{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.markdown-body code,.markdown-body tt{padding:.2em .4em;margin:0;font-size:85%;background-color:var(--color-neutral-muted);border-radius:6px}.markdown-body code br,.markdown-body tt br{display:none}.markdown-body del code{text-decoration:inherit}.markdown-body pre code{font-size:100%}.markdown-body pre>code{padding:0;margin:0;word-break:normal;white-space:pre;background:transparent;border:0}.markdown-body .highlight{margin-bottom:16px}.markdown-body .highlight pre{margin-bottom:0;word-break:normal}.markdown-body .highlight pre,.markdown-body pre{padding:16px;overflow:auto;font-size:85%;line-height:1.45;background-color:var(--color-canvas-subtle);border-radius:6px}.markdown-body pre code,.markdown-body pre tt{display:inline;max-width:auto;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}.markdown-body .csv-data td,.markdown-body .csv-data th{padding:5px;overflow:hidden;font-size:12px;line-height:1;text-align:left;white-space:nowrap}.markdown-body .csv-data .blob-num{padding:10px 8px 9px;text-align:right;background:var(--color-canvas-default);border:0}.markdown-body .csv-data tr{border-top:0}.markdown-body .csv-data th{font-weight:600;background:var(--color-canvas-subtle);border-top:0}.markdown-body .footnotes{font-size:12px;color:var(--color-fg-muted);border-top:1px solid var(--color-border-default)}.markdown-body .footnotes ol{padding-left:16px}.markdown-body .footnotes li{position:relative}.markdown-body .footnotes li:target:before{position:absolute;top:-8px;right:-8px;bottom:-8px;left:-24px;pointer-events:none;content:"";border:2px solid var(--color-accent-emphasis);border-radius:6px}.markdown-body .footnotes li:target{color:var(--color-fg-default)}.markdown-body .footnotes .data-footnote-backref g-emoji{font-family:monospace}.markdown-body .task-list-item{list-style-type:none}.markdown-body .task-list-item label{font-weight:400}.markdown-body .task-list-item.enabled label{cursor:pointer}.markdown-body .task-list-item+.task-list-item{margin-top:3px}.markdown-body .task-list-item .handle{display:none}.markdown-body .task-list-item-checkbox{margin:0 .2em .25em -1.6em;vertical-align:middle}.markdown-body .contains-task-list:dir(rtl) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}.markdown-body ::-webkit-calendar-picker-indicator{filter:invert(50%)}.content[data-v-cffd4bf2] img{max-height:150vh;max-width:150vh;vertical-align:middle}.content .markdown-body[data-v-cffd4bf2] pre{margin-right:20px}.dialog-scroll[data-v-cffd4bf2]{height:80vh;overflow-y:auto;overflow-x:hidden;margin:0} diff --git a/src/main/resources/static/assets/SvgIcon.e3258df0.js b/src/main/resources/static/assets/SvgIcon.e3258df0.js new file mode 100644 index 0000000..9c826ea --- /dev/null +++ b/src/main/resources/static/assets/SvgIcon.e3258df0.js @@ -0,0 +1 @@ +import{d as r,c as n,_ as t,a as s,f as a,p as c}from"./index.bbf7818f.js";const l=r({name:"SvgIcon",props:{prefix:{type:String,default:"icon"},name:{type:String,required:!0},color:{type:String,default:"#333"}},setup(e){return{symbolId:n(()=>`#${e.prefix}-${e.name}`)}}}),i=["color"],d=["xlink:href","fill"];function p(e,o,f,u,m,_){return s(),a("svg",{class:"icon","aria-hidden":"true",color:e.color},[c("use",{"xlink:href":e.symbolId,fill:e.color},null,8,d)],8,i)}var h=t(l,[["render",p]]);export{h as S}; diff --git a/src/main/resources/static/assets/TextViewer.a3d21d3c.js b/src/main/resources/static/assets/TextViewer.a3d21d3c.js new file mode 100644 index 0000000..92a86b8 --- /dev/null +++ b/src/main/resources/static/assets/TextViewer.a3d21d3c.js @@ -0,0 +1,625 @@ +var Ax=Object.defineProperty;var Ox=(s,e,t)=>e in s?Ax(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;var $r=(s,e,t)=>(Ox(s,typeof e!="symbol"?e+"":e,t),t);import{a2 as bt,_ as Px,r as Fx,o as Bx,a9 as Vx,a as Wx,f as Hx}from"./index.bbf7818f.js";import{g as zx,a as Ux}from"./common.6565cdd3.js";import{c as $x}from"./useFileUpload.ba32a7f8.js";function jx(s,e){let t;return e.length===0?t=s:t=s.replace(/\{(\d+)\}/g,function(i,n){const o=n[0];return typeof e[o]!="undefined"?e[o]:i}),t}function p(s,e,...t){return jx(e,t)}var wg;const Dd="en";let tu=!1,iu=!1,Nd=!1,ZS=!1,H1=!1,z1=!1,Bh,vg=Dd,Kx,js;const Ge=typeof self=="object"?self:typeof global=="object"?global:{};let jt;typeof Ge.vscode!="undefined"&&typeof Ge.vscode.process!="undefined"?jt=Ge.vscode.process:typeof process!="undefined"&&(jt=process);const qx=typeof((wg=jt==null?void 0:jt.versions)===null||wg===void 0?void 0:wg.electron)=="string",Gx=qx&&(jt==null?void 0:jt.type)==="renderer";if(typeof navigator=="object"&&!Gx)js=navigator.userAgent,tu=js.indexOf("Windows")>=0,iu=js.indexOf("Macintosh")>=0,z1=(js.indexOf("Macintosh")>=0||js.indexOf("iPad")>=0||js.indexOf("iPhone")>=0)&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,Nd=js.indexOf("Linux")>=0,H1=!0,Bh=navigator.language,vg=Bh;else if(typeof jt=="object"){tu=jt.platform==="win32",iu=jt.platform==="darwin",Nd=jt.platform==="linux",Nd&&!!jt.env.SNAP&&jt.env.SNAP_REVISION,jt.env.CI||jt.env.BUILD_ARTIFACTSTAGINGDIRECTORY,Bh=Dd,vg=Dd;const s=jt.env.VSCODE_NLS_CONFIG;if(s)try{const e=JSON.parse(s),t=e.availableLanguages["*"];Bh=e.locale,vg=t||Dd,Kx=e._translationsConfigFile}catch{}ZS=!0}else console.error("Unable to resolve platform.");const li=tu,me=iu,qt=Nd,va=ZS,fl=H1,Zx=H1&&typeof Ge.importScripts=="function",pr=z1,Xn=js,YS=(()=>{if(typeof Ge.postMessage=="function"&&!Ge.importScripts){let s=[];Ge.addEventListener("message",t=>{if(t.data&&t.data.vscodeScheduleAsyncWork)for(let i=0,n=s.length;i{const i=++e;s.push({id:i,callback:t}),Ge.postMessage({vscodeScheduleAsyncWork:i},"*")}}return s=>setTimeout(s)})(),qi=iu||z1?2:tu?1:3;let Ub=!0,$b=!1;function XS(){if(!$b){$b=!0;const s=new Uint8Array(2);s[0]=1,s[1]=2,Ub=new Uint16Array(s.buffer)[0]===(2<<8)+1}return Ub}const QS=!!(Xn&&Xn.indexOf("Chrome")>=0),Yx=!!(Xn&&Xn.indexOf("Firefox")>=0),Xx=!!(!QS&&Xn&&Xn.indexOf("Safari")>=0),Qx=!!(Xn&&Xn.indexOf("Edg/")>=0);Xn&&Xn.indexOf("Android")>=0;const JS="`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?";function Jx(s=""){let e="(-?\\d*\\.\\d\\w*)|([^";for(const t of JS)s.indexOf(t)>=0||(e+="\\"+t);return e+="\\s]+)",new RegExp(e,"g")}const U1=Jx();function ey(s){let e=U1;if(s&&s instanceof RegExp)if(s.global)e=s;else{let t="g";s.ignoreCase&&(t+="i"),s.multiline&&(t+="m"),s.unicode&&(t+="u"),e=new RegExp(s.source,t)}return e.lastIndex=0,e}const eI={maxLen:1e3,windowSize:15,timeBudget:150};function Ic(s,e,t,i,n=eI){if(t.length>n.maxLen){let c=s-n.maxLen/2;return c<0?c=0:i+=c,t=t.substring(c,s+n.maxLen/2),Ic(s,e,t,i,n)}const o=Date.now(),r=s-1-i;let a=-1,l=null;for(let c=1;!(Date.now()-o>=n.timeBudget);c++){const h=r-n.windowSize*c;e.lastIndex=Math.max(0,h);const d=tI(e,t,r,a);if(!d&&l||(l=d,h<=0))break;a=h}if(l){const c={word:l[0],startColumn:i+1+l.index,endColumn:i+1+l.index+l[0].length};return e.lastIndex=0,c}return null}function tI(s,e,t,i){let n;for(;n=s.exec(e);){const o=n.index||0;if(o<=t&&s.lastIndex>=t)return n;if(i>0&&o>i)return null}return null}function ki(s,e=0){return s[s.length-(1+e)]}function iI(s){if(s.length===0)throw new Error("Invalid tail call");return[s.slice(0,s.length-1),s[s.length-1]]}function Kn(s,e,t=(i,n)=>i===n){if(s===e)return!0;if(!s||!e||s.length!==e.length)return!1;for(let i=0,n=s.length;i0)n=o-1;else return o}return-(i+1)}function sI(s,e){let t=0,i=s.length;if(i===0)return 0;for(;t!!e)}function oI(s){return!Array.isArray(s)||s.length===0}function $1(s){return Array.isArray(s)&&s.length>0}function wo(s,e=t=>t){const t=new Set;return s.filter(i=>{const n=e(i);return t.has(n)?!1:(t.add(n),!0)})}function rI(s,e){const t=aI(s,e);if(t!==-1)return s[t]}function aI(s,e){for(let t=s.length-1;t>=0;t--){const i=s[t];if(e(i))return t}return-1}function iy(s,e){return s.length>0?s[0]:e}function lI(s){return[].concat(...s)}function $t(s,e){let t=typeof e=="number"?s:0;typeof e=="number"?t=s:(t=0,e=s);const i=[];if(t<=e)for(let n=t;ne;n--)i.push(n);return i}function pf(s,e,t){const i=s.slice(0,e),n=s.slice(e);return i.concat(t,n)}function Sg(s,e){const t=s.indexOf(e);t>-1&&(s.splice(t,1),s.unshift(e))}function Vh(s,e){const t=s.indexOf(e);t>-1&&(s.splice(t,1),s.push(e))}function cI(s,e,t){const i=ny(s,e),n=s.length,o=t.length;s.length=n+o;for(let r=n-1;r>=i;r--)s[r+o]=s[r];for(let r=0;re(s(t),s(i))}function hI(s,e){if(s.length===0)return;let t=s[0];for(let i=1;i0&&(t=n)}return t}function dI(s,e){if(s.length===0)return;let t=s[0];for(let i=1;i=0&&(t=n)}return t}function uI(s,e){return hI(s,(t,i)=>-e(t,i))}class za{constructor(e){this.items=e,this.firstIdx=0,this.lastIdx=this.items.length-1}takeWhile(e){let t=this.firstIdx;for(;t=0&&e(this.items[t]);)t--;const i=t===this.lastIdx?null:this.items.slice(t+1,this.lastIdx+1);return this.lastIdx=t,i}peek(){return this.items[this.firstIdx]}dequeue(){const e=this.items[this.firstIdx];return this.firstIdx++,e}takeCount(e){const t=this.items.slice(this.firstIdx,this.firstIdx+e);return this.firstIdx+=e,t}}function Ln(s){return typeof s=="string"}function Ti(s){return typeof s=="object"&&s!==null&&!Array.isArray(s)&&!(s instanceof RegExp)&&!(s instanceof Date)}function mh(s){return typeof s=="number"&&!isNaN(s)}function Kb(s){return!!s&&typeof s[Symbol.iterator]=="function"}function sy(s){return s===!0||s===!1}function vn(s){return typeof s=="undefined"}function fI(s){return!Gi(s)}function Gi(s){return vn(s)||s===null}function Sn(s,e){if(!s)throw new Error(e?`Unexpected type, expected '${e}'`:"Unexpected type")}function nu(s){return typeof s=="function"}function gI(s,e){const t=Math.min(s.length,e.length);for(let i=0;ifunction(){const o=Array.prototype.slice.call(arguments,0);return e(n,o)};let i={};for(const n of s)i[n]=t(n);return i}function Qo(s){return s===null?void 0:s}function K1(s,e="Unreachable"){throw new Error(e)}function Ys(s){if(!s||typeof s!="object"||s instanceof RegExp)return s;const e=Array.isArray(s)?[]:{};return Object.keys(s).forEach(t=>{s[t]&&typeof s[t]=="object"?e[t]=Ys(s[t]):e[t]=s[t]}),e}function bI(s){if(!s||typeof s!="object")return s;const e=[s];for(;e.length>0;){const t=e.shift();Object.freeze(t);for(const i in t)if(CI.call(t,i)){const n=t[i];typeof n=="object"&&!Object.isFrozen(n)&&e.push(n)}}return s}const CI=Object.prototype.hasOwnProperty;function Nr(s,e,t=!0){return Ti(s)?(Ti(e)&&Object.keys(e).forEach(i=>{i in s?t&&(Ti(s[i])&&Ti(e[i])?Nr(s[i],e[i],t):s[i]=e[i]):s[i]=e[i]}),s):e}function Ri(s,e){if(s===e)return!0;if(s==null||e===null||e===void 0||typeof s!=typeof e||typeof s!="object"||Array.isArray(s)!==Array.isArray(e))return!1;let t,i;if(Array.isArray(s)){if(s.length!==e.length)return!1;for(t=0;ti?i:e}static float(e,t){if(typeof e=="number")return e;if(typeof e=="undefined")return t;const i=parseFloat(e);return isNaN(i)?t:i}validate(e){return this.validationFn(jn.float(e,this.defaultValue))}}class ri extends Tr{static string(e,t){return typeof e!="string"?t:e}constructor(e,t,i,n=void 0){typeof n!="undefined"&&(n.type="string",n.default=i),super(e,t,i,n)}validate(e){return ri.string(e,this.defaultValue)}}function Jt(s,e,t){return typeof s!="string"||t.indexOf(s)===-1?e:s}class st extends Tr{constructor(e,t,i,n,o=void 0){typeof o!="undefined"&&(o.type="string",o.enum=n,o.default=i),super(e,t,i,o),this._allowedValues=n}validate(e){return Jt(e,this.defaultValue,this._allowedValues)}}class Nl extends lt{constructor(e,t,i,n,o,r,a=void 0){typeof a!="undefined"&&(a.type="string",a.enum=o,a.default=n),super(e,t,i,a),this._allowedValues=o,this._convert=r}validate(e){return typeof e!="string"?this.defaultValue:this._allowedValues.indexOf(e)===-1?this.defaultValue:this._convert(e)}}function wI(s){switch(s){case"none":return 0;case"keep":return 1;case"brackets":return 2;case"advanced":return 3;case"full":return 4}}class vI extends lt{constructor(){super(2,"accessibilitySupport",0,{type:"string",enum:["auto","on","off"],enumDescriptions:[p("accessibilitySupport.auto","The editor will use platform APIs to detect when a Screen Reader is attached."),p("accessibilitySupport.on","The editor will be permanently optimized for usage with a Screen Reader. Word wrapping will be disabled."),p("accessibilitySupport.off","The editor will never be optimized for usage with a Screen Reader.")],default:"auto",description:p("accessibilitySupport","Controls whether the editor should run in a mode where it is optimized for screen readers. Setting to on will disable word wrapping.")})}validate(e){switch(e){case"auto":return 0;case"off":return 1;case"on":return 2}return this.defaultValue}compute(e,t,i){return i===0?e.accessibilitySupport:i}}class SI extends lt{constructor(){const e={insertSpace:!0,ignoreEmptyLines:!0};super(19,"comments",e,{"editor.comments.insertSpace":{type:"boolean",default:e.insertSpace,description:p("comments.insertSpace","Controls whether a space character is inserted when commenting.")},"editor.comments.ignoreEmptyLines":{type:"boolean",default:e.ignoreEmptyLines,description:p("comments.ignoreEmptyLines","Controls if empty lines should be ignored with toggle, add or remove actions for line comments.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{insertSpace:$(t.insertSpace,this.defaultValue.insertSpace),ignoreEmptyLines:$(t.ignoreEmptyLines,this.defaultValue.ignoreEmptyLines)}}}function yI(s){switch(s){case"blink":return 1;case"smooth":return 2;case"phase":return 3;case"expand":return 4;case"solid":return 5}}var _t;(function(s){s[s.Line=1]="Line",s[s.Block=2]="Block",s[s.Underline=3]="Underline",s[s.LineThin=4]="LineThin",s[s.BlockOutline=5]="BlockOutline",s[s.UnderlineThin=6]="UnderlineThin"})(_t||(_t={}));function LI(s){switch(s){case"line":return _t.Line;case"block":return _t.Block;case"underline":return _t.Underline;case"line-thin":return _t.LineThin;case"block-outline":return _t.BlockOutline;case"underline-thin":return _t.UnderlineThin}}class kI extends gl{constructor(){super(128)}compute(e,t,i){const n=["monaco-editor"];return t.get(33)&&n.push(t.get(33)),e.extraEditorClassName&&n.push(e.extraEditorClassName),t.get(66)==="default"?n.push("mouse-default"):t.get(66)==="copy"&&n.push("mouse-copy"),t.get(100)&&n.push("showUnused"),t.get(126)&&n.push("showDeprecated"),n.join(" ")}}class xI extends le{constructor(){super(32,"emptySelectionClipboard",!0,{description:p("emptySelectionClipboard","Controls whether copying without a selection copies the current line.")})}compute(e,t,i){return i&&e.emptySelectionClipboard}}class II extends lt{constructor(){const e={cursorMoveOnType:!0,seedSearchStringFromSelection:"always",autoFindInSelection:"never",globalFindClipboard:!1,addExtraSpaceOnTop:!0,loop:!0};super(35,"find",e,{"editor.find.cursorMoveOnType":{type:"boolean",default:e.cursorMoveOnType,description:p("find.cursorMoveOnType","Controls whether the cursor should jump to find matches while typing.")},"editor.find.seedSearchStringFromSelection":{type:"string",enum:["never","always","selection"],default:e.seedSearchStringFromSelection,enumDescriptions:[p("editor.find.seedSearchStringFromSelection.never","Never seed search string from the editor selection."),p("editor.find.seedSearchStringFromSelection.always","Always seed search string from the editor selection, including word at cursor position."),p("editor.find.seedSearchStringFromSelection.selection","Only seed search string from the editor selection.")],description:p("find.seedSearchStringFromSelection","Controls whether the search string in the Find Widget is seeded from the editor selection.")},"editor.find.autoFindInSelection":{type:"string",enum:["never","always","multiline"],default:e.autoFindInSelection,enumDescriptions:[p("editor.find.autoFindInSelection.never","Never turn on Find in Selection automatically (default)."),p("editor.find.autoFindInSelection.always","Always turn on Find in Selection automatically."),p("editor.find.autoFindInSelection.multiline","Turn on Find in Selection automatically when multiple lines of content are selected.")],description:p("find.autoFindInSelection","Controls the condition for turning on Find in Selection automatically.")},"editor.find.globalFindClipboard":{type:"boolean",default:e.globalFindClipboard,description:p("find.globalFindClipboard","Controls whether the Find Widget should read or modify the shared find clipboard on macOS."),included:me},"editor.find.addExtraSpaceOnTop":{type:"boolean",default:e.addExtraSpaceOnTop,description:p("find.addExtraSpaceOnTop","Controls whether the Find Widget should add extra lines on top of the editor. When true, you can scroll beyond the first line when the Find Widget is visible.")},"editor.find.loop":{type:"boolean",default:e.loop,description:p("find.loop","Controls whether the search automatically restarts from the beginning (or the end) when no further matches can be found.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{cursorMoveOnType:$(t.cursorMoveOnType,this.defaultValue.cursorMoveOnType),seedSearchStringFromSelection:typeof e.seedSearchStringFromSelection=="boolean"?e.seedSearchStringFromSelection?"always":"never":Jt(t.seedSearchStringFromSelection,this.defaultValue.seedSearchStringFromSelection,["never","always","selection"]),autoFindInSelection:typeof e.autoFindInSelection=="boolean"?e.autoFindInSelection?"always":"never":Jt(t.autoFindInSelection,this.defaultValue.autoFindInSelection,["never","always","multiline"]),globalFindClipboard:$(t.globalFindClipboard,this.defaultValue.globalFindClipboard),addExtraSpaceOnTop:$(t.addExtraSpaceOnTop,this.defaultValue.addExtraSpaceOnTop),loop:$(t.loop,this.defaultValue.loop)}}}class Ii extends lt{constructor(){super(45,"fontLigatures",Ii.OFF,{anyOf:[{type:"boolean",description:p("fontLigatures","Enables/Disables font ligatures ('calt' and 'liga' font features). Change this to a string for fine-grained control of the 'font-feature-settings' CSS property.")},{type:"string",description:p("fontFeatureSettings","Explicit 'font-feature-settings' CSS property. A boolean can be passed instead if one only needs to turn on/off ligatures.")}],description:p("fontLigaturesGeneral","Configures font ligatures or font features. Can be either a boolean to enable/disable ligatures or a string for the value of the CSS 'font-feature-settings' property."),default:!1})}validate(e){return typeof e=="undefined"?this.defaultValue:typeof e=="string"?e==="false"?Ii.OFF:e==="true"?Ii.ON:e:Boolean(e)?Ii.ON:Ii.OFF}}Ii.OFF='"liga" off, "calt" off';Ii.ON='"liga" on, "calt" on';class EI extends gl{constructor(){super(44)}compute(e,t,i){return e.fontInfo}}class DI extends Tr{constructor(){super(46,"fontSize",bi.fontSize,{type:"number",minimum:6,maximum:100,default:bi.fontSize,description:p("fontSize","Controls the font size in pixels.")})}validate(e){const t=jn.float(e,this.defaultValue);return t===0?bi.fontSize:jn.clamp(t,6,100)}compute(e,t,i){return e.fontInfo.fontSize}}class zn extends lt{constructor(){super(47,"fontWeight",bi.fontWeight,{anyOf:[{type:"number",minimum:zn.MINIMUM_VALUE,maximum:zn.MAXIMUM_VALUE,errorMessage:p("fontWeightErrorMessage",'Only "normal" and "bold" keywords or numbers between 1 and 1000 are allowed.')},{type:"string",pattern:"^(normal|bold|1000|[1-9][0-9]{0,2})$"},{enum:zn.SUGGESTION_VALUES}],default:bi.fontWeight,description:p("fontWeight",'Controls the font weight. Accepts "normal" and "bold" keywords or numbers between 1 and 1000.')})}validate(e){return e==="normal"||e==="bold"?e:String(Ee.clampedInt(e,bi.fontWeight,zn.MINIMUM_VALUE,zn.MAXIMUM_VALUE))}}zn.SUGGESTION_VALUES=["normal","bold","100","200","300","400","500","600","700","800","900"];zn.MINIMUM_VALUE=1;zn.MAXIMUM_VALUE=1e3;class NI extends lt{constructor(){const e={multiple:"peek",multipleDefinitions:"peek",multipleTypeDefinitions:"peek",multipleDeclarations:"peek",multipleImplementations:"peek",multipleReferences:"peek",alternativeDefinitionCommand:"editor.action.goToReferences",alternativeTypeDefinitionCommand:"editor.action.goToReferences",alternativeDeclarationCommand:"editor.action.goToReferences",alternativeImplementationCommand:"",alternativeReferenceCommand:""},t={type:"string",enum:["peek","gotoAndPeek","goto"],default:e.multiple,enumDescriptions:[p("editor.gotoLocation.multiple.peek","Show peek view of the results (default)"),p("editor.gotoLocation.multiple.gotoAndPeek","Go to the primary result and show a peek view"),p("editor.gotoLocation.multiple.goto","Go to the primary result and enable peek-less navigation to others")]},i=["","editor.action.referenceSearch.trigger","editor.action.goToReferences","editor.action.peekImplementation","editor.action.goToImplementation","editor.action.peekTypeDefinition","editor.action.goToTypeDefinition","editor.action.peekDeclaration","editor.action.revealDeclaration","editor.action.peekDefinition","editor.action.revealDefinitionAside","editor.action.revealDefinition"];super(51,"gotoLocation",e,{"editor.gotoLocation.multiple":{deprecationMessage:p("editor.gotoLocation.multiple.deprecated","This setting is deprecated, please use separate settings like 'editor.editor.gotoLocation.multipleDefinitions' or 'editor.editor.gotoLocation.multipleImplementations' instead.")},"editor.gotoLocation.multipleDefinitions":Object.assign({description:p("editor.editor.gotoLocation.multipleDefinitions","Controls the behavior the 'Go to Definition'-command when multiple target locations exist.")},t),"editor.gotoLocation.multipleTypeDefinitions":Object.assign({description:p("editor.editor.gotoLocation.multipleTypeDefinitions","Controls the behavior the 'Go to Type Definition'-command when multiple target locations exist.")},t),"editor.gotoLocation.multipleDeclarations":Object.assign({description:p("editor.editor.gotoLocation.multipleDeclarations","Controls the behavior the 'Go to Declaration'-command when multiple target locations exist.")},t),"editor.gotoLocation.multipleImplementations":Object.assign({description:p("editor.editor.gotoLocation.multipleImplemenattions","Controls the behavior the 'Go to Implementations'-command when multiple target locations exist.")},t),"editor.gotoLocation.multipleReferences":Object.assign({description:p("editor.editor.gotoLocation.multipleReferences","Controls the behavior the 'Go to References'-command when multiple target locations exist.")},t),"editor.gotoLocation.alternativeDefinitionCommand":{type:"string",default:e.alternativeDefinitionCommand,enum:i,description:p("alternativeDefinitionCommand","Alternative command id that is being executed when the result of 'Go to Definition' is the current location.")},"editor.gotoLocation.alternativeTypeDefinitionCommand":{type:"string",default:e.alternativeTypeDefinitionCommand,enum:i,description:p("alternativeTypeDefinitionCommand","Alternative command id that is being executed when the result of 'Go to Type Definition' is the current location.")},"editor.gotoLocation.alternativeDeclarationCommand":{type:"string",default:e.alternativeDeclarationCommand,enum:i,description:p("alternativeDeclarationCommand","Alternative command id that is being executed when the result of 'Go to Declaration' is the current location.")},"editor.gotoLocation.alternativeImplementationCommand":{type:"string",default:e.alternativeImplementationCommand,enum:i,description:p("alternativeImplementationCommand","Alternative command id that is being executed when the result of 'Go to Implementation' is the current location.")},"editor.gotoLocation.alternativeReferenceCommand":{type:"string",default:e.alternativeReferenceCommand,enum:i,description:p("alternativeReferenceCommand","Alternative command id that is being executed when the result of 'Go to Reference' is the current location.")}})}validate(e){var t,i,n,o,r;if(!e||typeof e!="object")return this.defaultValue;const a=e;return{multiple:Jt(a.multiple,this.defaultValue.multiple,["peek","gotoAndPeek","goto"]),multipleDefinitions:(t=a.multipleDefinitions)!==null&&t!==void 0?t:Jt(a.multipleDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleTypeDefinitions:(i=a.multipleTypeDefinitions)!==null&&i!==void 0?i:Jt(a.multipleTypeDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleDeclarations:(n=a.multipleDeclarations)!==null&&n!==void 0?n:Jt(a.multipleDeclarations,"peek",["peek","gotoAndPeek","goto"]),multipleImplementations:(o=a.multipleImplementations)!==null&&o!==void 0?o:Jt(a.multipleImplementations,"peek",["peek","gotoAndPeek","goto"]),multipleReferences:(r=a.multipleReferences)!==null&&r!==void 0?r:Jt(a.multipleReferences,"peek",["peek","gotoAndPeek","goto"]),alternativeDefinitionCommand:ri.string(a.alternativeDefinitionCommand,this.defaultValue.alternativeDefinitionCommand),alternativeTypeDefinitionCommand:ri.string(a.alternativeTypeDefinitionCommand,this.defaultValue.alternativeTypeDefinitionCommand),alternativeDeclarationCommand:ri.string(a.alternativeDeclarationCommand,this.defaultValue.alternativeDeclarationCommand),alternativeImplementationCommand:ri.string(a.alternativeImplementationCommand,this.defaultValue.alternativeImplementationCommand),alternativeReferenceCommand:ri.string(a.alternativeReferenceCommand,this.defaultValue.alternativeReferenceCommand)}}}class TI extends lt{constructor(){const e={enabled:!0,delay:300,sticky:!0,above:!0};super(53,"hover",e,{"editor.hover.enabled":{type:"boolean",default:e.enabled,description:p("hover.enabled","Controls whether the hover is shown.")},"editor.hover.delay":{type:"number",default:e.delay,minimum:0,maximum:1e4,description:p("hover.delay","Controls the delay in milliseconds after which the hover is shown.")},"editor.hover.sticky":{type:"boolean",default:e.sticky,description:p("hover.sticky","Controls whether the hover should remain visible when mouse is moved over it.")},"editor.hover.above":{type:"boolean",default:e.above,description:p("hover.above","Prefer showing hovers above the line, if there's space.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:$(t.enabled,this.defaultValue.enabled),delay:Ee.clampedInt(t.delay,this.defaultValue.delay,0,1e4),sticky:$(t.sticky,this.defaultValue.sticky),above:$(t.above,this.defaultValue.above)}}}class Sa extends gl{constructor(){super(131)}compute(e,t,i){return Sa.computeLayout(t,{memory:e.memory,outerWidth:e.outerWidth,outerHeight:e.outerHeight,isDominatedByLongLines:e.isDominatedByLongLines,lineHeight:e.fontInfo.lineHeight,viewLineCount:e.viewLineCount,lineNumbersDigitCount:e.lineNumbersDigitCount,typicalHalfwidthCharacterWidth:e.fontInfo.typicalHalfwidthCharacterWidth,maxDigitWidth:e.fontInfo.maxDigitWidth,pixelRatio:e.pixelRatio})}static computeContainedMinimapLineCount(e){const t=e.height/e.lineHeight,i=e.scrollBeyondLastLine?t-1:0,n=(e.viewLineCount+i)/(e.pixelRatio*e.height),o=Math.floor(e.viewLineCount/n);return{typicalViewportLineCount:t,extraLinesBeyondLastLine:i,desiredRatio:n,minimapLineCount:o}}static _computeMinimapLayout(e,t){const i=e.outerWidth,n=e.outerHeight,o=e.pixelRatio;if(!e.minimap.enabled)return{renderMinimap:0,minimapLeft:0,minimapWidth:0,minimapHeightIsEditorHeight:!1,minimapIsSampling:!1,minimapScale:1,minimapLineHeight:1,minimapCanvasInnerWidth:0,minimapCanvasInnerHeight:Math.floor(o*n),minimapCanvasOuterWidth:0,minimapCanvasOuterHeight:n};const r=t.stableMinimapLayoutInput,a=r&&e.outerHeight===r.outerHeight&&e.lineHeight===r.lineHeight&&e.typicalHalfwidthCharacterWidth===r.typicalHalfwidthCharacterWidth&&e.pixelRatio===r.pixelRatio&&e.scrollBeyondLastLine===r.scrollBeyondLastLine&&e.minimap.enabled===r.minimap.enabled&&e.minimap.side===r.minimap.side&&e.minimap.size===r.minimap.size&&e.minimap.showSlider===r.minimap.showSlider&&e.minimap.renderCharacters===r.minimap.renderCharacters&&e.minimap.maxColumn===r.minimap.maxColumn&&e.minimap.scale===r.minimap.scale&&e.verticalScrollbarWidth===r.verticalScrollbarWidth&&e.isViewportWrapping===r.isViewportWrapping,l=e.lineHeight,c=e.typicalHalfwidthCharacterWidth,h=e.scrollBeyondLastLine,d=e.minimap.renderCharacters;let u=o>=2?Math.round(e.minimap.scale*2):e.minimap.scale;const f=e.minimap.maxColumn,m=e.minimap.size,_=e.minimap.side,b=e.verticalScrollbarWidth,w=e.viewLineCount,C=e.remainingWidth,v=e.isViewportWrapping,S=d?2:3;let k=Math.floor(o*n);const x=k/o;let L=!1,y=!1,I=S*u,R=u/o,T=1;if(m==="fill"||m==="fit"){const{typicalViewportLineCount:ee,extraLinesBeyondLastLine:ae,desiredRatio:nt,minimapLineCount:Xe}=Sa.computeContainedMinimapLineCount({viewLineCount:w,scrollBeyondLastLine:h,height:n,lineHeight:l,pixelRatio:o});if(w/Xe>1)L=!0,y=!0,u=1,I=1,R=u/o;else{let Hi=!1,zt=u+1;if(m==="fit"){const cs=Math.ceil((w+ae)*I);v&&a&&C<=t.stableFitRemainingWidth?(Hi=!0,zt=t.stableFitMaxMinimapScale):Hi=cs>k}if(m==="fill"||Hi){L=!0;const cs=u;I=Math.min(l*o,Math.max(1,Math.floor(1/nt))),v&&a&&C<=t.stableFitRemainingWidth&&(zt=t.stableFitMaxMinimapScale),u=Math.min(zt,Math.max(1,Math.floor(I/S))),u>cs&&(T=Math.min(2,u/cs)),R=u/o/T,k=Math.ceil(Math.max(ee,w+ae)*I),v?(t.stableMinimapLayoutInput=e,t.stableFitRemainingWidth=C,t.stableFitMaxMinimapScale=u):(t.stableMinimapLayoutInput=null,t.stableFitRemainingWidth=0)}}}const P=Math.floor(f*R),F=Math.min(P,Math.max(0,Math.floor((C-b-2)*R/(c+R)))+Ks);let j=Math.floor(o*F);const z=j/o;j=Math.floor(j*T);const Q=d?1:2,ie=_==="left"?0:i-F-b;return{renderMinimap:Q,minimapLeft:ie,minimapWidth:F,minimapHeightIsEditorHeight:L,minimapIsSampling:y,minimapScale:u,minimapLineHeight:I,minimapCanvasInnerWidth:j,minimapCanvasInnerHeight:k,minimapCanvasOuterWidth:z,minimapCanvasOuterHeight:x}}static computeLayout(e,t){const i=t.outerWidth|0,n=t.outerHeight|0,o=t.lineHeight|0,r=t.lineNumbersDigitCount|0,a=t.typicalHalfwidthCharacterWidth,l=t.maxDigitWidth,c=t.pixelRatio,h=t.viewLineCount,d=e.get(123),u=d==="inherit"?e.get(122):d,f=u==="inherit"?e.get(118):u,m=e.get(121),_=e.get(2),b=t.isDominatedByLongLines,w=e.get(50),C=e.get(60).renderType!==0,v=e.get(61),S=e.get(94),k=e.get(65),x=e.get(92),L=x.verticalScrollbarSize,y=x.verticalHasArrows,I=x.arrowSize,R=x.horizontalScrollbarSize,T=e.get(58),P=e.get(37);let F;if(typeof T=="string"&&/^\d+(\.\d+)?ch$/.test(T)){const Cg=parseFloat(T.substr(0,T.length-2));F=Ee.clampedInt(Cg*a,0,0,1e3)}else F=Ee.clampedInt(T,0,0,1e3);P&&(F+=16);let j=0;if(C){const Cg=Math.max(r,v);j=Math.round(Cg*l)}let z=0;w&&(z=o);let Q=0,ie=Q+z,ee=ie+j,ae=ee+F;const nt=i-z-j-F;let Xe=!1,ln=!1,Hi=-1;_!==2&&(u==="inherit"&&b?(Xe=!0,ln=!0):f==="on"||f==="bounded"?ln=!0:f==="wordWrapColumn"&&(Hi=m));const zt=Sa._computeMinimapLayout({outerWidth:i,outerHeight:n,lineHeight:o,typicalHalfwidthCharacterWidth:a,pixelRatio:c,scrollBeyondLastLine:S,minimap:k,verticalScrollbarWidth:L,viewLineCount:h,remainingWidth:nt,isViewportWrapping:ln},t.memory||new ry);zt.renderMinimap!==0&&zt.minimapLeft===0&&(Q+=zt.minimapWidth,ie+=zt.minimapWidth,ee+=zt.minimapWidth,ae+=zt.minimapWidth);const cs=nt-zt.minimapWidth,Fh=Math.max(1,Math.floor((cs-L-2)/a)),zb=y?I:0;return ln&&(Hi=Math.max(1,Fh),f==="bounded"&&(Hi=Math.min(Hi,m))),{width:i,height:n,glyphMarginLeft:Q,glyphMarginWidth:z,lineNumbersLeft:ie,lineNumbersWidth:j,decorationsLeft:ee,decorationsWidth:F,contentLeft:ae,contentWidth:cs,minimap:zt,viewportColumn:Fh,isWordWrapMinified:Xe,isViewportWrapping:ln,wrappingColumn:Hi,verticalScrollbarWidth:L,horizontalScrollbarHeight:R,overviewRuler:{top:zb,width:L,height:n-2*zb,right:0}}}}class MI extends lt{constructor(){const e={enabled:!0};super(57,"lightbulb",e,{"editor.lightbulb.enabled":{type:"boolean",default:e.enabled,description:p("codeActions","Enables the code action lightbulb in the editor.")}})}validate(e){return!e||typeof e!="object"?this.defaultValue:{enabled:$(e.enabled,this.defaultValue.enabled)}}}class RI extends lt{constructor(){const e={enabled:!0,fontSize:0,fontFamily:""};super(127,"inlayHints",e,{"editor.inlayHints.enabled":{type:"boolean",default:e.enabled,description:p("inlayHints.enable","Enables the inlay hints in the editor.")},"editor.inlayHints.fontSize":{type:"number",default:e.fontSize,markdownDescription:p("inlayHints.fontSize","Controls font size of inlay hints in the editor. A default of 90% of `#editor.fontSize#` is used when the configured value is less than `5` or greater than the editor font size.")},"editor.inlayHints.fontFamily":{type:"string",default:e.fontFamily,markdownDescription:p("inlayHints.fontFamily","Controls font family of inlay hints in the editor. When set to empty, the `#editor.fontFamily#` is used.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:$(t.enabled,this.defaultValue.enabled),fontSize:Ee.clampedInt(t.fontSize,this.defaultValue.fontSize,0,100),fontFamily:ri.string(t.fontFamily,this.defaultValue.fontFamily)}}}class AI extends jn{constructor(){super(59,"lineHeight",bi.lineHeight,e=>jn.clamp(e,0,150),{markdownDescription:p("lineHeight",`Controls the line height. + - Use 0 to automatically compute the line height from the font size. + - Values between 0 and 8 will be used as a multiplier with the font size. + - Values greater than or equal to 8 will be used as effective values.`)})}compute(e,t,i){return e.fontInfo.lineHeight}}class OI extends lt{constructor(){const e={enabled:!0,size:"proportional",side:"right",showSlider:"mouseover",renderCharacters:!0,maxColumn:120,scale:1};super(65,"minimap",e,{"editor.minimap.enabled":{type:"boolean",default:e.enabled,description:p("minimap.enabled","Controls whether the minimap is shown.")},"editor.minimap.size":{type:"string",enum:["proportional","fill","fit"],enumDescriptions:[p("minimap.size.proportional","The minimap has the same size as the editor contents (and might scroll)."),p("minimap.size.fill","The minimap will stretch or shrink as necessary to fill the height of the editor (no scrolling)."),p("minimap.size.fit","The minimap will shrink as necessary to never be larger than the editor (no scrolling).")],default:e.size,description:p("minimap.size","Controls the size of the minimap.")},"editor.minimap.side":{type:"string",enum:["left","right"],default:e.side,description:p("minimap.side","Controls the side where to render the minimap.")},"editor.minimap.showSlider":{type:"string",enum:["always","mouseover"],default:e.showSlider,description:p("minimap.showSlider","Controls when the minimap slider is shown.")},"editor.minimap.scale":{type:"number",default:e.scale,minimum:1,maximum:3,enum:[1,2,3],description:p("minimap.scale","Scale of content drawn in the minimap: 1, 2 or 3.")},"editor.minimap.renderCharacters":{type:"boolean",default:e.renderCharacters,description:p("minimap.renderCharacters","Render the actual characters on a line as opposed to color blocks.")},"editor.minimap.maxColumn":{type:"number",default:e.maxColumn,description:p("minimap.maxColumn","Limit the width of the minimap to render at most a certain number of columns.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:$(t.enabled,this.defaultValue.enabled),size:Jt(t.size,this.defaultValue.size,["proportional","fill","fit"]),side:Jt(t.side,this.defaultValue.side,["right","left"]),showSlider:Jt(t.showSlider,this.defaultValue.showSlider,["always","mouseover"]),renderCharacters:$(t.renderCharacters,this.defaultValue.renderCharacters),scale:Ee.clampedInt(t.scale,1,1,3),maxColumn:Ee.clampedInt(t.maxColumn,this.defaultValue.maxColumn,1,1e4)}}}function PI(s){return s==="ctrlCmd"?me?"metaKey":"ctrlKey":"altKey"}class FI extends lt{constructor(){super(75,"padding",{top:0,bottom:0},{"editor.padding.top":{type:"number",default:0,minimum:0,maximum:1e3,description:p("padding.top","Controls the amount of space between the top edge of the editor and the first line.")},"editor.padding.bottom":{type:"number",default:0,minimum:0,maximum:1e3,description:p("padding.bottom","Controls the amount of space between the bottom edge of the editor and the last line.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{top:Ee.clampedInt(t.top,0,0,1e3),bottom:Ee.clampedInt(t.bottom,0,0,1e3)}}}class BI extends lt{constructor(){const e={enabled:!0,cycle:!1};super(76,"parameterHints",e,{"editor.parameterHints.enabled":{type:"boolean",default:e.enabled,description:p("parameterHints.enabled","Enables a pop-up that shows parameter documentation and type information as you type.")},"editor.parameterHints.cycle":{type:"boolean",default:e.cycle,description:p("parameterHints.cycle","Controls whether the parameter hints menu cycles or closes when reaching the end of the list.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:$(t.enabled,this.defaultValue.enabled),cycle:$(t.cycle,this.defaultValue.cycle)}}}class VI extends gl{constructor(){super(129)}compute(e,t,i){return e.pixelRatio}}class WI extends lt{constructor(){const e={other:!0,comments:!1,strings:!1};super(79,"quickSuggestions",e,{anyOf:[{type:"boolean"},{type:"object",properties:{strings:{type:"boolean",default:e.strings,description:p("quickSuggestions.strings","Enable quick suggestions inside strings.")},comments:{type:"boolean",default:e.comments,description:p("quickSuggestions.comments","Enable quick suggestions inside comments.")},other:{type:"boolean",default:e.other,description:p("quickSuggestions.other","Enable quick suggestions outside of strings and comments.")}}}],default:e,description:p("quickSuggestions","Controls whether suggestions should automatically show up while typing.")}),this.defaultValue=e}validate(e){if(typeof e=="boolean")return e;if(e&&typeof e=="object"){const t=e,i={other:$(t.other,this.defaultValue.other),comments:$(t.comments,this.defaultValue.comments),strings:$(t.strings,this.defaultValue.strings)};return i.other&&i.comments&&i.strings?!0:!i.other&&!i.comments&&!i.strings?!1:i}return this.defaultValue}}class HI extends lt{constructor(){super(60,"lineNumbers",{renderType:1,renderFn:null},{type:"string",enum:["off","on","relative","interval"],enumDescriptions:[p("lineNumbers.off","Line numbers are not rendered."),p("lineNumbers.on","Line numbers are rendered as absolute number."),p("lineNumbers.relative","Line numbers are rendered as distance in lines to cursor position."),p("lineNumbers.interval","Line numbers are rendered every 10 lines.")],default:"on",description:p("lineNumbers","Controls the display of line numbers.")})}validate(e){let t=this.defaultValue.renderType,i=this.defaultValue.renderFn;return typeof e!="undefined"&&(typeof e=="function"?(t=4,i=e):e==="interval"?t=3:e==="relative"?t=2:e==="on"?t=1:t=0),{renderType:t,renderFn:i}}}function su(s){const e=s.get(87);return e==="editable"?s.get(81):e!=="on"}class zI extends lt{constructor(){const e=[],t={type:"number",description:p("rulers.size","Number of monospace characters at which this editor ruler will render.")};super(91,"rulers",e,{type:"array",items:{anyOf:[t,{type:["object"],properties:{column:t,color:{type:"string",description:p("rulers.color","Color of this editor ruler."),format:"color-hex"}}}]},default:e,description:p("rulers","Render vertical rulers after a certain number of monospace characters. Use multiple values for multiple rulers. No rulers are drawn if array is empty.")})}validate(e){if(Array.isArray(e)){const t=[];for(let i of e)if(typeof i=="number")t.push({column:Ee.clampedInt(i,0,0,1e4),color:null});else if(i&&typeof i=="object"){const n=i;t.push({column:Ee.clampedInt(n.column,0,0,1e4),color:n.color})}return t.sort((i,n)=>i.column-n.column),t}return this.defaultValue}}function qb(s,e){if(typeof s!="string")return e;switch(s){case"hidden":return 2;case"visible":return 3;default:return 1}}class UI extends lt{constructor(){const e={vertical:1,horizontal:1,arrowSize:11,useShadows:!0,verticalHasArrows:!1,horizontalHasArrows:!1,horizontalScrollbarSize:12,horizontalSliderSize:12,verticalScrollbarSize:14,verticalSliderSize:14,handleMouseWheel:!0,alwaysConsumeMouseWheel:!0,scrollByPage:!1};super(92,"scrollbar",e,{"editor.scrollbar.vertical":{type:"string",enum:["auto","visible","hidden"],enumDescriptions:[p("scrollbar.vertical.auto","The vertical scrollbar will be visible only when necessary."),p("scrollbar.vertical.visible","The vertical scrollbar will always be visible."),p("scrollbar.vertical.fit","The vertical scrollbar will always be hidden.")],default:"auto",description:p("scrollbar.vertical","Controls the visibility of the vertical scrollbar.")},"editor.scrollbar.horizontal":{type:"string",enum:["auto","visible","hidden"],enumDescriptions:[p("scrollbar.horizontal.auto","The horizontal scrollbar will be visible only when necessary."),p("scrollbar.horizontal.visible","The horizontal scrollbar will always be visible."),p("scrollbar.horizontal.fit","The horizontal scrollbar will always be hidden.")],default:"auto",description:p("scrollbar.horizontal","Controls the visibility of the horizontal scrollbar.")},"editor.scrollbar.verticalScrollbarSize":{type:"number",default:e.verticalScrollbarSize,description:p("scrollbar.verticalScrollbarSize","The width of the vertical scrollbar.")},"editor.scrollbar.horizontalScrollbarSize":{type:"number",default:e.horizontalScrollbarSize,description:p("scrollbar.horizontalScrollbarSize","The height of the horizontal scrollbar.")},"editor.scrollbar.scrollByPage":{type:"boolean",default:e.scrollByPage,description:p("scrollbar.scrollByPage","Controls whether clicks scroll by page or jump to click position.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e,i=Ee.clampedInt(t.horizontalScrollbarSize,this.defaultValue.horizontalScrollbarSize,0,1e3),n=Ee.clampedInt(t.verticalScrollbarSize,this.defaultValue.verticalScrollbarSize,0,1e3);return{arrowSize:Ee.clampedInt(t.arrowSize,this.defaultValue.arrowSize,0,1e3),vertical:qb(t.vertical,this.defaultValue.vertical),horizontal:qb(t.horizontal,this.defaultValue.horizontal),useShadows:$(t.useShadows,this.defaultValue.useShadows),verticalHasArrows:$(t.verticalHasArrows,this.defaultValue.verticalHasArrows),horizontalHasArrows:$(t.horizontalHasArrows,this.defaultValue.horizontalHasArrows),handleMouseWheel:$(t.handleMouseWheel,this.defaultValue.handleMouseWheel),alwaysConsumeMouseWheel:$(t.alwaysConsumeMouseWheel,this.defaultValue.alwaysConsumeMouseWheel),horizontalScrollbarSize:i,horizontalSliderSize:Ee.clampedInt(t.horizontalSliderSize,i,0,1e3),verticalScrollbarSize:n,verticalSliderSize:Ee.clampedInt(t.verticalSliderSize,n,0,1e3),scrollByPage:$(t.scrollByPage,this.defaultValue.scrollByPage)}}}const cn="inUntrustedWorkspace",Ro={allowedCharacters:"editor.unicodeHighlight.allowedCharacters",invisibleCharacters:"editor.unicodeHighlight.invisibleCharacters",nonBasicASCII:"editor.unicodeHighlight.nonBasicASCII",ambiguousCharacters:"editor.unicodeHighlight.ambiguousCharacters",includeComments:"editor.unicodeHighlight.includeComments",includeStrings:"editor.unicodeHighlight.includeStrings",allowedLocales:"editor.unicodeHighlight.allowedLocales"};class $I extends lt{constructor(){const e={nonBasicASCII:cn,invisibleCharacters:!0,ambiguousCharacters:!0,includeComments:cn,includeStrings:!0,allowedCharacters:{},allowedLocales:{_os:!0,_vscode:!0}};super(113,"unicodeHighlight",e,{[Ro.nonBasicASCII]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,cn],default:e.nonBasicASCII,description:p("unicodeHighlight.nonBasicASCII","Controls whether all non-basic ASCII characters are highlighted. Only characters between U+0020 and U+007E, tab, line-feed and carriage-return are considered basic ASCII.")},[Ro.invisibleCharacters]:{restricted:!0,type:"boolean",default:e.invisibleCharacters,description:p("unicodeHighlight.invisibleCharacters","Controls whether characters that just reserve space or have no width at all are highlighted.")},[Ro.ambiguousCharacters]:{restricted:!0,type:"boolean",default:e.ambiguousCharacters,description:p("unicodeHighlight.ambiguousCharacters","Controls whether characters are highlighted that can be confused with basic ASCII characters, except those that are common in the current user locale.")},[Ro.includeComments]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,cn],default:e.includeComments,description:p("unicodeHighlight.includeComments","Controls whether characters in comments should also be subject to unicode highlighting.")},[Ro.includeStrings]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,cn],default:e.includeStrings,description:p("unicodeHighlight.includeStrings","Controls whether characters in strings should also be subject to unicode highlighting.")},[Ro.allowedCharacters]:{restricted:!0,type:"object",default:e.allowedCharacters,description:p("unicodeHighlight.allowedCharacters","Defines allowed characters that are not being highlighted."),additionalProperties:{type:"boolean"}},[Ro.allowedLocales]:{restricted:!0,type:"object",additionalProperties:{type:"boolean"},default:e.allowedLocales,description:p("unicodeHighlight.allowedLocales","Unicode characters that are common in allowed locales are not being highlighted.")}})}applyUpdate(e,t){let i=!1;t.allowedCharacters&&(Ri(e.allowedCharacters,t.allowedCharacters)||(e=Object.assign(Object.assign({},e),{allowedCharacters:t.allowedCharacters}),i=!0)),t.allowedLocales&&(Ri(e.allowedLocales,t.allowedLocales)||(e=Object.assign(Object.assign({},e),{allowedLocales:t.allowedLocales}),i=!0));const n=super.applyUpdate(e,t);return i?new Jl(n.newValue,!0):n}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{nonBasicASCII:ec(t.nonBasicASCII,cn,[!0,!1,cn]),invisibleCharacters:$(t.invisibleCharacters,this.defaultValue.invisibleCharacters),ambiguousCharacters:$(t.ambiguousCharacters,this.defaultValue.ambiguousCharacters),includeComments:ec(t.includeComments,cn,[!0,!1,cn]),includeStrings:ec(t.includeStrings,cn,[!0,!1,cn]),allowedCharacters:this.validateBooleanMap(e.allowedCharacters,this.defaultValue.allowedCharacters),allowedLocales:this.validateBooleanMap(e.allowedLocales,this.defaultValue.allowedLocales)}}validateBooleanMap(e,t){if(typeof e!="object"||!e)return t;const i={};for(const[n,o]of Object.entries(e))o===!0&&(i[n]=!0);return i}}class jI extends lt{constructor(){const e={enabled:!0,mode:"subwordSmart"};super(55,"inlineSuggest",e,{"editor.inlineSuggest.enabled":{type:"boolean",default:e.enabled,description:p("inlineSuggest.enabled","Controls whether to automatically show inline suggestions in the editor.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:$(t.enabled,this.defaultValue.enabled),mode:Jt(t.mode,this.defaultValue.mode,["prefix","subword","subwordSmart"])}}}class KI extends lt{constructor(){const e={enabled:Bt.bracketPairColorizationOptions.enabled};super(12,"bracketPairColorization",e,{"editor.bracketPairColorization.enabled":{type:"boolean",default:e.enabled,description:p("bracketPairColorization.enabled","Controls whether bracket pair colorization is enabled or not. Use 'workbench.colorCustomizations' to override the bracket highlight colors.")}})}validate(e){return!e||typeof e!="object"?this.defaultValue:{enabled:$(e.enabled,this.defaultValue.enabled)}}}class qI extends lt{constructor(){const e={bracketPairs:!1,bracketPairsHorizontal:"active",highlightActiveBracketPair:!0,indentation:!0,highlightActiveIndentation:!0};super(13,"guides",e,{"editor.guides.bracketPairs":{type:["boolean","string"],enum:[!0,"active",!1],enumDescriptions:[p("editor.guides.bracketPairs.true","Enables bracket pair guides."),p("editor.guides.bracketPairs.active","Enables bracket pair guides only for the active bracket pair."),p("editor.guides.bracketPairs.false","Disables bracket pair guides.")],default:e.bracketPairs,description:p("editor.guides.bracketPairs","Controls whether bracket pair guides are enabled or not.")},"editor.guides.bracketPairsHorizontal":{type:["boolean","string"],enum:[!0,"active",!1],enumDescriptions:[p("editor.guides.bracketPairsHorizontal.true","Enables horizontal guides as addition to vertical bracket pair guides."),p("editor.guides.bracketPairsHorizontal.active","Enables horizontal guides only for the active bracket pair."),p("editor.guides.bracketPairsHorizontal.false","Disables horizontal bracket pair guides.")],default:e.bracketPairsHorizontal,description:p("editor.guides.bracketPairsHorizontal","Controls whether horizontal bracket pair guides are enabled or not.")},"editor.guides.highlightActiveBracketPair":{type:"boolean",default:e.highlightActiveBracketPair,description:p("editor.guides.highlightActiveBracketPair","Controls whether the editor should highlight the active bracket pair.")},"editor.guides.indentation":{type:"boolean",default:e.indentation,description:p("editor.guides.indentation","Controls whether the editor should render indent guides.")},"editor.guides.highlightActiveIndentation":{type:"boolean",default:e.highlightActiveIndentation,description:p("editor.guides.highlightActiveIndentation","Controls whether the editor should highlight the active indent guide.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{bracketPairs:ec(t.bracketPairs,this.defaultValue.bracketPairs,[!0,!1,"active"]),bracketPairsHorizontal:ec(t.bracketPairsHorizontal,this.defaultValue.bracketPairsHorizontal,[!0,!1,"active"]),highlightActiveBracketPair:$(t.highlightActiveBracketPair,this.defaultValue.highlightActiveBracketPair),indentation:$(t.indentation,this.defaultValue.indentation),highlightActiveIndentation:$(t.highlightActiveIndentation,this.defaultValue.highlightActiveIndentation)}}}function ec(s,e,t){const i=t.indexOf(s);return i===-1?e:t[i]}class GI extends lt{constructor(){const e={insertMode:"insert",filterGraceful:!0,snippetsPreventQuickSuggestions:!0,localityBonus:!1,shareSuggestSelections:!1,showIcons:!0,showStatusBar:!1,preview:!1,previewMode:"subwordSmart",showInlineDetails:!0,showMethods:!0,showFunctions:!0,showConstructors:!0,showDeprecated:!0,showFields:!0,showVariables:!0,showClasses:!0,showStructs:!0,showInterfaces:!0,showModules:!0,showProperties:!0,showEvents:!0,showOperators:!0,showUnits:!0,showValues:!0,showConstants:!0,showEnums:!0,showEnumMembers:!0,showKeywords:!0,showWords:!0,showColors:!0,showFiles:!0,showReferences:!0,showFolders:!0,showTypeParameters:!0,showSnippets:!0,showUsers:!0,showIssues:!0};super(106,"suggest",e,{"editor.suggest.insertMode":{type:"string",enum:["insert","replace"],enumDescriptions:[p("suggest.insertMode.insert","Insert suggestion without overwriting text right of the cursor."),p("suggest.insertMode.replace","Insert suggestion and overwrite text right of the cursor.")],default:e.insertMode,description:p("suggest.insertMode","Controls whether words are overwritten when accepting completions. Note that this depends on extensions opting into this feature.")},"editor.suggest.filterGraceful":{type:"boolean",default:e.filterGraceful,description:p("suggest.filterGraceful","Controls whether filtering and sorting suggestions accounts for small typos.")},"editor.suggest.localityBonus":{type:"boolean",default:e.localityBonus,description:p("suggest.localityBonus","Controls whether sorting favors words that appear close to the cursor.")},"editor.suggest.shareSuggestSelections":{type:"boolean",default:e.shareSuggestSelections,markdownDescription:p("suggest.shareSuggestSelections","Controls whether remembered suggestion selections are shared between multiple workspaces and windows (needs `#editor.suggestSelection#`).")},"editor.suggest.snippetsPreventQuickSuggestions":{type:"boolean",default:e.snippetsPreventQuickSuggestions,description:p("suggest.snippetsPreventQuickSuggestions","Controls whether an active snippet prevents quick suggestions.")},"editor.suggest.showIcons":{type:"boolean",default:e.showIcons,description:p("suggest.showIcons","Controls whether to show or hide icons in suggestions.")},"editor.suggest.showStatusBar":{type:"boolean",default:e.showStatusBar,description:p("suggest.showStatusBar","Controls the visibility of the status bar at the bottom of the suggest widget.")},"editor.suggest.preview":{type:"boolean",default:e.preview,description:p("suggest.preview","Controls whether to preview the suggestion outcome in the editor.")},"editor.suggest.showInlineDetails":{type:"boolean",default:e.showInlineDetails,description:p("suggest.showInlineDetails","Controls whether suggest details show inline with the label or only in the details widget")},"editor.suggest.maxVisibleSuggestions":{type:"number",deprecationMessage:p("suggest.maxVisibleSuggestions.dep","This setting is deprecated. The suggest widget can now be resized.")},"editor.suggest.filteredTypes":{type:"object",deprecationMessage:p("deprecated","This setting is deprecated, please use separate settings like 'editor.suggest.showKeywords' or 'editor.suggest.showSnippets' instead.")},"editor.suggest.showMethods":{type:"boolean",default:!0,markdownDescription:p("editor.suggest.showMethods","When enabled IntelliSense shows `method`-suggestions.")},"editor.suggest.showFunctions":{type:"boolean",default:!0,markdownDescription:p("editor.suggest.showFunctions","When enabled IntelliSense shows `function`-suggestions.")},"editor.suggest.showConstructors":{type:"boolean",default:!0,markdownDescription:p("editor.suggest.showConstructors","When enabled IntelliSense shows `constructor`-suggestions.")},"editor.suggest.showDeprecated":{type:"boolean",default:!0,markdownDescription:p("editor.suggest.showDeprecated","When enabled IntelliSense shows `deprecated`-suggestions.")},"editor.suggest.showFields":{type:"boolean",default:!0,markdownDescription:p("editor.suggest.showFields","When enabled IntelliSense shows `field`-suggestions.")},"editor.suggest.showVariables":{type:"boolean",default:!0,markdownDescription:p("editor.suggest.showVariables","When enabled IntelliSense shows `variable`-suggestions.")},"editor.suggest.showClasses":{type:"boolean",default:!0,markdownDescription:p("editor.suggest.showClasss","When enabled IntelliSense shows `class`-suggestions.")},"editor.suggest.showStructs":{type:"boolean",default:!0,markdownDescription:p("editor.suggest.showStructs","When enabled IntelliSense shows `struct`-suggestions.")},"editor.suggest.showInterfaces":{type:"boolean",default:!0,markdownDescription:p("editor.suggest.showInterfaces","When enabled IntelliSense shows `interface`-suggestions.")},"editor.suggest.showModules":{type:"boolean",default:!0,markdownDescription:p("editor.suggest.showModules","When enabled IntelliSense shows `module`-suggestions.")},"editor.suggest.showProperties":{type:"boolean",default:!0,markdownDescription:p("editor.suggest.showPropertys","When enabled IntelliSense shows `property`-suggestions.")},"editor.suggest.showEvents":{type:"boolean",default:!0,markdownDescription:p("editor.suggest.showEvents","When enabled IntelliSense shows `event`-suggestions.")},"editor.suggest.showOperators":{type:"boolean",default:!0,markdownDescription:p("editor.suggest.showOperators","When enabled IntelliSense shows `operator`-suggestions.")},"editor.suggest.showUnits":{type:"boolean",default:!0,markdownDescription:p("editor.suggest.showUnits","When enabled IntelliSense shows `unit`-suggestions.")},"editor.suggest.showValues":{type:"boolean",default:!0,markdownDescription:p("editor.suggest.showValues","When enabled IntelliSense shows `value`-suggestions.")},"editor.suggest.showConstants":{type:"boolean",default:!0,markdownDescription:p("editor.suggest.showConstants","When enabled IntelliSense shows `constant`-suggestions.")},"editor.suggest.showEnums":{type:"boolean",default:!0,markdownDescription:p("editor.suggest.showEnums","When enabled IntelliSense shows `enum`-suggestions.")},"editor.suggest.showEnumMembers":{type:"boolean",default:!0,markdownDescription:p("editor.suggest.showEnumMembers","When enabled IntelliSense shows `enumMember`-suggestions.")},"editor.suggest.showKeywords":{type:"boolean",default:!0,markdownDescription:p("editor.suggest.showKeywords","When enabled IntelliSense shows `keyword`-suggestions.")},"editor.suggest.showWords":{type:"boolean",default:!0,markdownDescription:p("editor.suggest.showTexts","When enabled IntelliSense shows `text`-suggestions.")},"editor.suggest.showColors":{type:"boolean",default:!0,markdownDescription:p("editor.suggest.showColors","When enabled IntelliSense shows `color`-suggestions.")},"editor.suggest.showFiles":{type:"boolean",default:!0,markdownDescription:p("editor.suggest.showFiles","When enabled IntelliSense shows `file`-suggestions.")},"editor.suggest.showReferences":{type:"boolean",default:!0,markdownDescription:p("editor.suggest.showReferences","When enabled IntelliSense shows `reference`-suggestions.")},"editor.suggest.showCustomcolors":{type:"boolean",default:!0,markdownDescription:p("editor.suggest.showCustomcolors","When enabled IntelliSense shows `customcolor`-suggestions.")},"editor.suggest.showFolders":{type:"boolean",default:!0,markdownDescription:p("editor.suggest.showFolders","When enabled IntelliSense shows `folder`-suggestions.")},"editor.suggest.showTypeParameters":{type:"boolean",default:!0,markdownDescription:p("editor.suggest.showTypeParameters","When enabled IntelliSense shows `typeParameter`-suggestions.")},"editor.suggest.showSnippets":{type:"boolean",default:!0,markdownDescription:p("editor.suggest.showSnippets","When enabled IntelliSense shows `snippet`-suggestions.")},"editor.suggest.showUsers":{type:"boolean",default:!0,markdownDescription:p("editor.suggest.showUsers","When enabled IntelliSense shows `user`-suggestions.")},"editor.suggest.showIssues":{type:"boolean",default:!0,markdownDescription:p("editor.suggest.showIssues","When enabled IntelliSense shows `issues`-suggestions.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{insertMode:Jt(t.insertMode,this.defaultValue.insertMode,["insert","replace"]),filterGraceful:$(t.filterGraceful,this.defaultValue.filterGraceful),snippetsPreventQuickSuggestions:$(t.snippetsPreventQuickSuggestions,this.defaultValue.filterGraceful),localityBonus:$(t.localityBonus,this.defaultValue.localityBonus),shareSuggestSelections:$(t.shareSuggestSelections,this.defaultValue.shareSuggestSelections),showIcons:$(t.showIcons,this.defaultValue.showIcons),showStatusBar:$(t.showStatusBar,this.defaultValue.showStatusBar),preview:$(t.preview,this.defaultValue.preview),previewMode:Jt(t.previewMode,this.defaultValue.previewMode,["prefix","subword","subwordSmart"]),showInlineDetails:$(t.showInlineDetails,this.defaultValue.showInlineDetails),showMethods:$(t.showMethods,this.defaultValue.showMethods),showFunctions:$(t.showFunctions,this.defaultValue.showFunctions),showConstructors:$(t.showConstructors,this.defaultValue.showConstructors),showDeprecated:$(t.showDeprecated,this.defaultValue.showDeprecated),showFields:$(t.showFields,this.defaultValue.showFields),showVariables:$(t.showVariables,this.defaultValue.showVariables),showClasses:$(t.showClasses,this.defaultValue.showClasses),showStructs:$(t.showStructs,this.defaultValue.showStructs),showInterfaces:$(t.showInterfaces,this.defaultValue.showInterfaces),showModules:$(t.showModules,this.defaultValue.showModules),showProperties:$(t.showProperties,this.defaultValue.showProperties),showEvents:$(t.showEvents,this.defaultValue.showEvents),showOperators:$(t.showOperators,this.defaultValue.showOperators),showUnits:$(t.showUnits,this.defaultValue.showUnits),showValues:$(t.showValues,this.defaultValue.showValues),showConstants:$(t.showConstants,this.defaultValue.showConstants),showEnums:$(t.showEnums,this.defaultValue.showEnums),showEnumMembers:$(t.showEnumMembers,this.defaultValue.showEnumMembers),showKeywords:$(t.showKeywords,this.defaultValue.showKeywords),showWords:$(t.showWords,this.defaultValue.showWords),showColors:$(t.showColors,this.defaultValue.showColors),showFiles:$(t.showFiles,this.defaultValue.showFiles),showReferences:$(t.showReferences,this.defaultValue.showReferences),showFolders:$(t.showFolders,this.defaultValue.showFolders),showTypeParameters:$(t.showTypeParameters,this.defaultValue.showTypeParameters),showSnippets:$(t.showSnippets,this.defaultValue.showSnippets),showUsers:$(t.showUsers,this.defaultValue.showUsers),showIssues:$(t.showIssues,this.defaultValue.showIssues)}}}class ZI extends lt{constructor(){super(102,"smartSelect",{selectLeadingAndTrailingWhitespace:!0},{"editor.smartSelect.selectLeadingAndTrailingWhitespace":{description:p("selectLeadingAndTrailingWhitespace","Whether leading and trailing whitespace should always be selected."),default:!0,type:"boolean"}})}validate(e){return!e||typeof e!="object"?this.defaultValue:{selectLeadingAndTrailingWhitespace:$(e.selectLeadingAndTrailingWhitespace,this.defaultValue.selectLeadingAndTrailingWhitespace)}}}class YI extends gl{constructor(){super(130)}compute(e,t,i){return t.get(81)?!0:e.tabFocusMode}}function XI(s){switch(s){case"none":return 0;case"same":return 1;case"indent":return 2;case"deepIndent":return 3}}class QI extends gl{constructor(){super(132)}compute(e,t,i){const n=t.get(131);return{isDominatedByLongLines:e.isDominatedByLongLines,isWordWrapMinified:n.isWordWrapMinified,isViewportWrapping:n.isViewportWrapping,wrappingColumn:n.wrappingColumn}}}const JI="Consolas, 'Courier New', monospace",eE="Menlo, Monaco, 'Courier New', monospace",tE="'Droid Sans Mono', 'monospace', monospace",bi={fontFamily:me?eE:qt?tE:JI,fontWeight:"normal",fontSize:me?12:14,lineHeight:0,letterSpacing:0},oa=[];function B(s){return oa[s.id]=s,s}const Mr={acceptSuggestionOnCommitCharacter:B(new le(0,"acceptSuggestionOnCommitCharacter",!0,{markdownDescription:p("acceptSuggestionOnCommitCharacter","Controls whether suggestions should be accepted on commit characters. For example, in JavaScript, the semi-colon (`;`) can be a commit character that accepts a suggestion and types that character.")})),acceptSuggestionOnEnter:B(new st(1,"acceptSuggestionOnEnter","on",["on","smart","off"],{markdownEnumDescriptions:["",p("acceptSuggestionOnEnterSmart","Only accept a suggestion with `Enter` when it makes a textual change."),""],markdownDescription:p("acceptSuggestionOnEnter","Controls whether suggestions should be accepted on `Enter`, in addition to `Tab`. Helps to avoid ambiguity between inserting new lines or accepting suggestions.")})),accessibilitySupport:B(new vI),accessibilityPageSize:B(new Ee(3,"accessibilityPageSize",10,1,1073741824,{description:p("accessibilityPageSize","Controls the number of lines in the editor that can be read out by a screen reader at once. When we detect a screen reader we automatically set the default to be 500. Warning: this has a performance implication for numbers larger than the default.")})),ariaLabel:B(new ri(4,"ariaLabel",p("editorViewAccessibleLabel","Editor content"))),autoClosingBrackets:B(new st(5,"autoClosingBrackets","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",p("editor.autoClosingBrackets.languageDefined","Use language configurations to determine when to autoclose brackets."),p("editor.autoClosingBrackets.beforeWhitespace","Autoclose brackets only when the cursor is to the left of whitespace."),""],description:p("autoClosingBrackets","Controls whether the editor should automatically close brackets after the user adds an opening bracket.")})),autoClosingDelete:B(new st(6,"autoClosingDelete","auto",["always","auto","never"],{enumDescriptions:["",p("editor.autoClosingDelete.auto","Remove adjacent closing quotes or brackets only if they were automatically inserted."),""],description:p("autoClosingDelete","Controls whether the editor should remove adjacent closing quotes or brackets when deleting.")})),autoClosingOvertype:B(new st(7,"autoClosingOvertype","auto",["always","auto","never"],{enumDescriptions:["",p("editor.autoClosingOvertype.auto","Type over closing quotes or brackets only if they were automatically inserted."),""],description:p("autoClosingOvertype","Controls whether the editor should type over closing quotes or brackets.")})),autoClosingQuotes:B(new st(8,"autoClosingQuotes","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",p("editor.autoClosingQuotes.languageDefined","Use language configurations to determine when to autoclose quotes."),p("editor.autoClosingQuotes.beforeWhitespace","Autoclose quotes only when the cursor is to the left of whitespace."),""],description:p("autoClosingQuotes","Controls whether the editor should automatically close quotes after the user adds an opening quote.")})),autoIndent:B(new Nl(9,"autoIndent",4,"full",["none","keep","brackets","advanced","full"],wI,{enumDescriptions:[p("editor.autoIndent.none","The editor will not insert indentation automatically."),p("editor.autoIndent.keep","The editor will keep the current line's indentation."),p("editor.autoIndent.brackets","The editor will keep the current line's indentation and honor language defined brackets."),p("editor.autoIndent.advanced","The editor will keep the current line's indentation, honor language defined brackets and invoke special onEnterRules defined by languages."),p("editor.autoIndent.full","The editor will keep the current line's indentation, honor language defined brackets, invoke special onEnterRules defined by languages, and honor indentationRules defined by languages.")],description:p("autoIndent","Controls whether the editor should automatically adjust the indentation when users type, paste, move or indent lines.")})),automaticLayout:B(new le(10,"automaticLayout",!1)),autoSurround:B(new st(11,"autoSurround","languageDefined",["languageDefined","quotes","brackets","never"],{enumDescriptions:[p("editor.autoSurround.languageDefined","Use language configurations to determine when to automatically surround selections."),p("editor.autoSurround.quotes","Surround with quotes but not brackets."),p("editor.autoSurround.brackets","Surround with brackets but not quotes."),""],description:p("autoSurround","Controls whether the editor should automatically surround selections when typing quotes or brackets.")})),bracketPairColorization:B(new KI),bracketPairGuides:B(new qI),stickyTabStops:B(new le(104,"stickyTabStops",!1,{description:p("stickyTabStops","Emulate selection behavior of tab characters when using spaces for indentation. Selection will stick to tab stops.")})),codeLens:B(new le(14,"codeLens",!0,{description:p("codeLens","Controls whether the editor shows CodeLens.")})),codeLensFontFamily:B(new ri(15,"codeLensFontFamily","",{description:p("codeLensFontFamily","Controls the font family for CodeLens.")})),codeLensFontSize:B(new Ee(16,"codeLensFontSize",0,0,100,{type:"number",default:0,minimum:0,maximum:100,markdownDescription:p("codeLensFontSize","Controls the font size in pixels for CodeLens. When set to `0`, 90% of `#editor.fontSize#` is used.")})),colorDecorators:B(new le(17,"colorDecorators",!0,{description:p("colorDecorators","Controls whether the editor should render the inline color decorators and color picker.")})),columnSelection:B(new le(18,"columnSelection",!1,{description:p("columnSelection","Enable that the selection with the mouse and keys is doing column selection.")})),comments:B(new SI),contextmenu:B(new le(20,"contextmenu",!0)),copyWithSyntaxHighlighting:B(new le(21,"copyWithSyntaxHighlighting",!0,{description:p("copyWithSyntaxHighlighting","Controls whether syntax highlighting should be copied into the clipboard.")})),cursorBlinking:B(new Nl(22,"cursorBlinking",1,"blink",["blink","smooth","phase","expand","solid"],yI,{description:p("cursorBlinking","Control the cursor animation style.")})),cursorSmoothCaretAnimation:B(new le(23,"cursorSmoothCaretAnimation",!1,{description:p("cursorSmoothCaretAnimation","Controls whether the smooth caret animation should be enabled.")})),cursorStyle:B(new Nl(24,"cursorStyle",_t.Line,"line",["line","block","underline","line-thin","block-outline","underline-thin"],LI,{description:p("cursorStyle","Controls the cursor style.")})),cursorSurroundingLines:B(new Ee(25,"cursorSurroundingLines",0,0,1073741824,{description:p("cursorSurroundingLines","Controls the minimal number of visible leading and trailing lines surrounding the cursor. Known as 'scrollOff' or 'scrollOffset' in some other editors.")})),cursorSurroundingLinesStyle:B(new st(26,"cursorSurroundingLinesStyle","default",["default","all"],{enumDescriptions:[p("cursorSurroundingLinesStyle.default","`cursorSurroundingLines` is enforced only when triggered via the keyboard or API."),p("cursorSurroundingLinesStyle.all","`cursorSurroundingLines` is enforced always.")],description:p("cursorSurroundingLinesStyle","Controls when `cursorSurroundingLines` should be enforced.")})),cursorWidth:B(new Ee(27,"cursorWidth",0,0,1073741824,{markdownDescription:p("cursorWidth","Controls the width of the cursor when `#editor.cursorStyle#` is set to `line`.")})),disableLayerHinting:B(new le(28,"disableLayerHinting",!1)),disableMonospaceOptimizations:B(new le(29,"disableMonospaceOptimizations",!1)),domReadOnly:B(new le(30,"domReadOnly",!1)),dragAndDrop:B(new le(31,"dragAndDrop",!0,{description:p("dragAndDrop","Controls whether the editor should allow moving selections via drag and drop.")})),emptySelectionClipboard:B(new xI),extraEditorClassName:B(new ri(33,"extraEditorClassName","")),fastScrollSensitivity:B(new jn(34,"fastScrollSensitivity",5,s=>s<=0?5:s,{markdownDescription:p("fastScrollSensitivity","Scrolling speed multiplier when pressing `Alt`.")})),find:B(new II),fixedOverflowWidgets:B(new le(36,"fixedOverflowWidgets",!1)),folding:B(new le(37,"folding",!0,{description:p("folding","Controls whether the editor has code folding enabled.")})),foldingStrategy:B(new st(38,"foldingStrategy","auto",["auto","indentation"],{enumDescriptions:[p("foldingStrategy.auto","Use a language-specific folding strategy if available, else the indentation-based one."),p("foldingStrategy.indentation","Use the indentation-based folding strategy.")],description:p("foldingStrategy","Controls the strategy for computing folding ranges.")})),foldingHighlight:B(new le(39,"foldingHighlight",!0,{description:p("foldingHighlight","Controls whether the editor should highlight folded ranges.")})),foldingImportsByDefault:B(new le(40,"foldingImportsByDefault",!1,{description:p("foldingImportsByDefault","Controls whether the editor automatically collapses import ranges.")})),foldingMaximumRegions:B(new Ee(41,"foldingMaximumRegions",5e3,10,65e3,{description:p("foldingMaximumRegions","The maximum number of foldable regions. Increasing this value may result in the editor becoming less responsive when the current source has a large number of foldable regions.")})),unfoldOnClickAfterEndOfLine:B(new le(42,"unfoldOnClickAfterEndOfLine",!1,{description:p("unfoldOnClickAfterEndOfLine","Controls whether clicking on the empty content after a folded line will unfold the line.")})),fontFamily:B(new ri(43,"fontFamily",bi.fontFamily,{description:p("fontFamily","Controls the font family.")})),fontInfo:B(new EI),fontLigatures2:B(new Ii),fontSize:B(new DI),fontWeight:B(new zn),formatOnPaste:B(new le(48,"formatOnPaste",!1,{description:p("formatOnPaste","Controls whether the editor should automatically format the pasted content. A formatter must be available and the formatter should be able to format a range in a document.")})),formatOnType:B(new le(49,"formatOnType",!1,{description:p("formatOnType","Controls whether the editor should automatically format the line after typing.")})),glyphMargin:B(new le(50,"glyphMargin",!0,{description:p("glyphMargin","Controls whether the editor should render the vertical glyph margin. Glyph margin is mostly used for debugging.")})),gotoLocation:B(new NI),hideCursorInOverviewRuler:B(new le(52,"hideCursorInOverviewRuler",!1,{description:p("hideCursorInOverviewRuler","Controls whether the cursor should be hidden in the overview ruler.")})),hover:B(new TI),inDiffEditor:B(new le(54,"inDiffEditor",!1)),letterSpacing:B(new jn(56,"letterSpacing",bi.letterSpacing,s=>jn.clamp(s,-5,20),{description:p("letterSpacing","Controls the letter spacing in pixels.")})),lightbulb:B(new MI),lineDecorationsWidth:B(new Tr(58,"lineDecorationsWidth",10)),lineHeight:B(new AI),lineNumbers:B(new HI),lineNumbersMinChars:B(new Ee(61,"lineNumbersMinChars",5,1,300)),linkedEditing:B(new le(62,"linkedEditing",!1,{description:p("linkedEditing","Controls whether the editor has linked editing enabled. Depending on the language, related symbols, e.g. HTML tags, are updated while editing.")})),links:B(new le(63,"links",!0,{description:p("links","Controls whether the editor should detect links and make them clickable.")})),matchBrackets:B(new st(64,"matchBrackets","always",["always","near","never"],{description:p("matchBrackets","Highlight matching brackets.")})),minimap:B(new OI),mouseStyle:B(new st(66,"mouseStyle","text",["text","default","copy"])),mouseWheelScrollSensitivity:B(new jn(67,"mouseWheelScrollSensitivity",1,s=>s===0?1:s,{markdownDescription:p("mouseWheelScrollSensitivity","A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.")})),mouseWheelZoom:B(new le(68,"mouseWheelZoom",!1,{markdownDescription:p("mouseWheelZoom","Zoom the font of the editor when using mouse wheel and holding `Ctrl`.")})),multiCursorMergeOverlapping:B(new le(69,"multiCursorMergeOverlapping",!0,{description:p("multiCursorMergeOverlapping","Merge multiple cursors when they are overlapping.")})),multiCursorModifier:B(new Nl(70,"multiCursorModifier","altKey","alt",["ctrlCmd","alt"],PI,{markdownEnumDescriptions:[p("multiCursorModifier.ctrlCmd","Maps to `Control` on Windows and Linux and to `Command` on macOS."),p("multiCursorModifier.alt","Maps to `Alt` on Windows and Linux and to `Option` on macOS.")],markdownDescription:p({key:"multiCursorModifier",comment:["- `ctrlCmd` refers to a value the setting can take and should not be localized.","- `Control` and `Command` refer to the modifier keys Ctrl or Cmd on the keyboard and can be localized."]},"The modifier to be used to add multiple cursors with the mouse. The Go to Definition and Open Link mouse gestures will adapt such that they do not conflict with the multicursor modifier. [Read more](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).")})),multiCursorPaste:B(new st(71,"multiCursorPaste","spread",["spread","full"],{markdownEnumDescriptions:[p("multiCursorPaste.spread","Each cursor pastes a single line of the text."),p("multiCursorPaste.full","Each cursor pastes the full text.")],markdownDescription:p("multiCursorPaste","Controls pasting when the line count of the pasted text matches the cursor count.")})),occurrencesHighlight:B(new le(72,"occurrencesHighlight",!0,{description:p("occurrencesHighlight","Controls whether the editor should highlight semantic symbol occurrences.")})),overviewRulerBorder:B(new le(73,"overviewRulerBorder",!0,{description:p("overviewRulerBorder","Controls whether a border should be drawn around the overview ruler.")})),overviewRulerLanes:B(new Ee(74,"overviewRulerLanes",3,0,3)),padding:B(new FI),parameterHints:B(new BI),peekWidgetDefaultFocus:B(new st(77,"peekWidgetDefaultFocus","tree",["tree","editor"],{enumDescriptions:[p("peekWidgetDefaultFocus.tree","Focus the tree when opening peek"),p("peekWidgetDefaultFocus.editor","Focus the editor when opening peek")],description:p("peekWidgetDefaultFocus","Controls whether to focus the inline editor or the tree in the peek widget.")})),definitionLinkOpensInPeek:B(new le(78,"definitionLinkOpensInPeek",!1,{description:p("definitionLinkOpensInPeek","Controls whether the Go to Definition mouse gesture always opens the peek widget.")})),quickSuggestions:B(new WI),quickSuggestionsDelay:B(new Ee(80,"quickSuggestionsDelay",10,0,1073741824,{description:p("quickSuggestionsDelay","Controls the delay in milliseconds after which quick suggestions will show up.")})),readOnly:B(new le(81,"readOnly",!1)),renameOnType:B(new le(82,"renameOnType",!1,{description:p("renameOnType","Controls whether the editor auto renames on type."),markdownDeprecationMessage:p("renameOnTypeDeprecate","Deprecated, use `editor.linkedEditing` instead.")})),renderControlCharacters:B(new le(83,"renderControlCharacters",!0,{description:p("renderControlCharacters","Controls whether the editor should render control characters."),restricted:!0})),renderFinalNewline:B(new le(84,"renderFinalNewline",!0,{description:p("renderFinalNewline","Render last line number when the file ends with a newline.")})),renderLineHighlight:B(new st(85,"renderLineHighlight","line",["none","gutter","line","all"],{enumDescriptions:["","","",p("renderLineHighlight.all","Highlights both the gutter and the current line.")],description:p("renderLineHighlight","Controls how the editor should render the current line highlight.")})),renderLineHighlightOnlyWhenFocus:B(new le(86,"renderLineHighlightOnlyWhenFocus",!1,{description:p("renderLineHighlightOnlyWhenFocus","Controls if the editor should render the current line highlight only when the editor is focused.")})),renderValidationDecorations:B(new st(87,"renderValidationDecorations","editable",["editable","on","off"])),renderWhitespace:B(new st(88,"renderWhitespace","selection",["none","boundary","selection","trailing","all"],{enumDescriptions:["",p("renderWhitespace.boundary","Render whitespace characters except for single spaces between words."),p("renderWhitespace.selection","Render whitespace characters only on selected text."),p("renderWhitespace.trailing","Render only trailing whitespace characters."),""],description:p("renderWhitespace","Controls how the editor should render whitespace characters.")})),revealHorizontalRightPadding:B(new Ee(89,"revealHorizontalRightPadding",30,0,1e3)),roundedSelection:B(new le(90,"roundedSelection",!0,{description:p("roundedSelection","Controls whether selections should have rounded corners.")})),rulers:B(new zI),scrollbar:B(new UI),scrollBeyondLastColumn:B(new Ee(93,"scrollBeyondLastColumn",5,0,1073741824,{description:p("scrollBeyondLastColumn","Controls the number of extra characters beyond which the editor will scroll horizontally.")})),scrollBeyondLastLine:B(new le(94,"scrollBeyondLastLine",!0,{description:p("scrollBeyondLastLine","Controls whether the editor will scroll beyond the last line.")})),scrollPredominantAxis:B(new le(95,"scrollPredominantAxis",!0,{description:p("scrollPredominantAxis","Scroll only along the predominant axis when scrolling both vertically and horizontally at the same time. Prevents horizontal drift when scrolling vertically on a trackpad.")})),selectionClipboard:B(new le(96,"selectionClipboard",!0,{description:p("selectionClipboard","Controls whether the Linux primary clipboard should be supported."),included:qt})),selectionHighlight:B(new le(97,"selectionHighlight",!0,{description:p("selectionHighlight","Controls whether the editor should highlight matches similar to the selection.")})),selectOnLineNumbers:B(new le(98,"selectOnLineNumbers",!0)),showFoldingControls:B(new st(99,"showFoldingControls","mouseover",["always","mouseover"],{enumDescriptions:[p("showFoldingControls.always","Always show the folding controls."),p("showFoldingControls.mouseover","Only show the folding controls when the mouse is over the gutter.")],description:p("showFoldingControls","Controls when the folding controls on the gutter are shown.")})),showUnused:B(new le(100,"showUnused",!0,{description:p("showUnused","Controls fading out of unused code.")})),showDeprecated:B(new le(126,"showDeprecated",!0,{description:p("showDeprecated","Controls strikethrough deprecated variables.")})),inlayHints:B(new RI),snippetSuggestions:B(new st(101,"snippetSuggestions","inline",["top","bottom","inline","none"],{enumDescriptions:[p("snippetSuggestions.top","Show snippet suggestions on top of other suggestions."),p("snippetSuggestions.bottom","Show snippet suggestions below other suggestions."),p("snippetSuggestions.inline","Show snippets suggestions with other suggestions."),p("snippetSuggestions.none","Do not show snippet suggestions.")],description:p("snippetSuggestions","Controls whether snippets are shown with other suggestions and how they are sorted.")})),smartSelect:B(new ZI),smoothScrolling:B(new le(103,"smoothScrolling",!1,{description:p("smoothScrolling","Controls whether the editor will scroll using an animation.")})),stopRenderingLineAfter:B(new Ee(105,"stopRenderingLineAfter",1e4,-1,1073741824)),suggest:B(new GI),inlineSuggest:B(new jI),suggestFontSize:B(new Ee(107,"suggestFontSize",0,0,1e3,{markdownDescription:p("suggestFontSize","Font size for the suggest widget. When set to `0`, the value of `#editor.fontSize#` is used.")})),suggestLineHeight:B(new Ee(108,"suggestLineHeight",0,0,1e3,{markdownDescription:p("suggestLineHeight","Line height for the suggest widget. When set to `0`, the value of `#editor.lineHeight#` is used. The minimum value is 8.")})),suggestOnTriggerCharacters:B(new le(109,"suggestOnTriggerCharacters",!0,{description:p("suggestOnTriggerCharacters","Controls whether suggestions should automatically show up when typing trigger characters.")})),suggestSelection:B(new st(110,"suggestSelection","first",["first","recentlyUsed","recentlyUsedByPrefix"],{markdownEnumDescriptions:[p("suggestSelection.first","Always select the first suggestion."),p("suggestSelection.recentlyUsed","Select recent suggestions unless further typing selects one, e.g. `console.| -> console.log` because `log` has been completed recently."),p("suggestSelection.recentlyUsedByPrefix","Select suggestions based on previous prefixes that have completed those suggestions, e.g. `co -> console` and `con -> const`.")],description:p("suggestSelection","Controls how suggestions are pre-selected when showing the suggest list.")})),tabCompletion:B(new st(111,"tabCompletion","off",["on","off","onlySnippets"],{enumDescriptions:[p("tabCompletion.on","Tab complete will insert the best matching suggestion when pressing tab."),p("tabCompletion.off","Disable tab completions."),p("tabCompletion.onlySnippets","Tab complete snippets when their prefix match. Works best when 'quickSuggestions' aren't enabled.")],description:p("tabCompletion","Enables tab completions.")})),tabIndex:B(new Ee(112,"tabIndex",0,-1,1073741824)),unicodeHighlight:B(new $I),unusualLineTerminators:B(new st(114,"unusualLineTerminators","prompt",["auto","off","prompt"],{enumDescriptions:[p("unusualLineTerminators.auto","Unusual line terminators are automatically removed."),p("unusualLineTerminators.off","Unusual line terminators are ignored."),p("unusualLineTerminators.prompt","Unusual line terminators prompt to be removed.")],description:p("unusualLineTerminators","Remove unusual line terminators that might cause problems.")})),useShadowDOM:B(new le(115,"useShadowDOM",!0)),useTabStops:B(new le(116,"useTabStops",!0,{description:p("useTabStops","Inserting and deleting whitespace follows tab stops.")})),wordSeparators:B(new ri(117,"wordSeparators",JS,{description:p("wordSeparators","Characters that will be used as word separators when doing word related navigations or operations.")})),wordWrap:B(new st(118,"wordWrap","off",["off","on","wordWrapColumn","bounded"],{markdownEnumDescriptions:[p("wordWrap.off","Lines will never wrap."),p("wordWrap.on","Lines will wrap at the viewport width."),p({key:"wordWrap.wordWrapColumn",comment:["- `editor.wordWrapColumn` refers to a different setting and should not be localized."]},"Lines will wrap at `#editor.wordWrapColumn#`."),p({key:"wordWrap.bounded",comment:["- viewport means the edge of the visible window size.","- `editor.wordWrapColumn` refers to a different setting and should not be localized."]},"Lines will wrap at the minimum of viewport and `#editor.wordWrapColumn#`.")],description:p({key:"wordWrap",comment:["- 'off', 'on', 'wordWrapColumn' and 'bounded' refer to values the setting can take and should not be localized.","- `editor.wordWrapColumn` refers to a different setting and should not be localized."]},"Controls how lines should wrap.")})),wordWrapBreakAfterCharacters:B(new ri(119,"wordWrapBreakAfterCharacters"," })]?|/&.,;\xA2\xB0\u2032\u2033\u2030\u2103\u3001\u3002\uFF61\uFF64\uFFE0\uFF0C\uFF0E\uFF1A\uFF1B\uFF1F\uFF01\uFF05\u30FB\uFF65\u309D\u309E\u30FD\u30FE\u30FC\u30A1\u30A3\u30A5\u30A7\u30A9\u30C3\u30E3\u30E5\u30E7\u30EE\u30F5\u30F6\u3041\u3043\u3045\u3047\u3049\u3063\u3083\u3085\u3087\u308E\u3095\u3096\u31F0\u31F1\u31F2\u31F3\u31F4\u31F5\u31F6\u31F7\u31F8\u31F9\u31FA\u31FB\u31FC\u31FD\u31FE\u31FF\u3005\u303B\uFF67\uFF68\uFF69\uFF6A\uFF6B\uFF6C\uFF6D\uFF6E\uFF6F\uFF70\u201D\u3009\u300B\u300D\u300F\u3011\u3015\uFF09\uFF3D\uFF5D\uFF63")),wordWrapBreakBeforeCharacters:B(new ri(120,"wordWrapBreakBeforeCharacters","([{\u2018\u201C\u3008\u300A\u300C\u300E\u3010\u3014\uFF08\uFF3B\uFF5B\uFF62\xA3\xA5\uFF04\uFFE1\uFFE5+\uFF0B")),wordWrapColumn:B(new Ee(121,"wordWrapColumn",80,1,1073741824,{markdownDescription:p({key:"wordWrapColumn",comment:["- `editor.wordWrap` refers to a different setting and should not be localized.","- 'wordWrapColumn' and 'bounded' refer to values the different setting can take and should not be localized."]},"Controls the wrapping column of the editor when `#editor.wordWrap#` is `wordWrapColumn` or `bounded`.")})),wordWrapOverride1:B(new st(122,"wordWrapOverride1","inherit",["off","on","inherit"])),wordWrapOverride2:B(new st(123,"wordWrapOverride2","inherit",["off","on","inherit"])),wrappingIndent:B(new Nl(124,"wrappingIndent",1,"same",["none","same","indent","deepIndent"],XI,{enumDescriptions:[p("wrappingIndent.none","No indentation. Wrapped lines begin at column 1."),p("wrappingIndent.same","Wrapped lines get the same indentation as the parent."),p("wrappingIndent.indent","Wrapped lines get +1 indentation toward the parent."),p("wrappingIndent.deepIndent","Wrapped lines get +2 indentation toward the parent.")],description:p("wrappingIndent","Controls the indentation of wrapped lines.")})),wrappingStrategy:B(new st(125,"wrappingStrategy","simple",["simple","advanced"],{enumDescriptions:[p("wrappingStrategy.simple","Assumes that all characters are of the same width. This is a fast algorithm that works correctly for monospace fonts and certain scripts (like Latin characters) where glyphs are of equal width."),p("wrappingStrategy.advanced","Delegates wrapping points computation to the browser. This is a slow algorithm, that might cause freezes for large files, but it works correctly in all cases.")],description:p("wrappingStrategy","Controls the algorithm that computes wrapping points.")})),editorClassName:B(new kI),pixelRatio:B(new VI),tabFocusMode:B(new YI),layoutInfo:B(new Sa),wrappingInfo:B(new QI)};class iE{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?new Error(e.message+` + +`+e.stack):e},0)}}emit(e){this.listeners.forEach(t=>{t(e)})}onUnexpectedError(e){this.unexpectedErrorHandler(e),this.emit(e)}onUnexpectedExternalError(e){this.unexpectedErrorHandler(e)}}const ay=new iE;function Ze(s){ph(s)||ay.onUnexpectedError(s)}function bf(s){ph(s)||ay.onUnexpectedExternalError(s)}function Gb(s){if(s instanceof Error){let{name:e,message:t}=s;const i=s.stacktrace||s.stack;return{$isError:!0,name:e,message:t,stack:i}}return s}const ou="Canceled";function ph(s){return s instanceof _h?!0:s instanceof Error&&s.name===ou&&s.message===ou}class _h extends Error{constructor(){super(ou),this.name=this.message}}function nE(){const s=new Error(ou);return s.name=s.message,s}function q1(s){return s?new Error(`Illegal argument: ${s}`):new Error("Illegal argument")}function sE(s){return s?new Error(`Illegal state: ${s}`):new Error("Illegal state")}class oE extends Error{constructor(e){super("NotSupported"),e&&(this.message=e)}}function _r(s){const e=this;let t=!1,i;return function(){return t||(t=!0,i=s.apply(e,arguments)),i}}var he;(function(s){function e(C){return C&&typeof C=="object"&&typeof C[Symbol.iterator]=="function"}s.is=e;const t=Object.freeze([]);function i(){return t}s.empty=i;function*n(C){yield C}s.single=n;function o(C){return C||t}s.from=o;function r(C){return!C||C[Symbol.iterator]().next().done===!0}s.isEmpty=r;function a(C){return C[Symbol.iterator]().next().value}s.first=a;function l(C,v){for(const S of C)if(v(S))return!0;return!1}s.some=l;function c(C,v){for(const S of C)if(v(S))return S}s.find=c;function*h(C,v){for(const S of C)v(S)&&(yield S)}s.filter=h;function*d(C,v){let S=0;for(const k of C)yield v(k,S++)}s.map=d;function*u(...C){for(const v of C)for(const S of v)yield S}s.concat=u;function*f(C){for(const v of C)for(const S of v)yield S}s.concatNested=f;function m(C,v,S){let k=S;for(const x of C)k=v(k,x);return k}s.reduce=m;function*_(C,v,S=C.length){for(v<0&&(v+=C.length),S<0?S+=C.length:S>C.length&&(S=C.length);vk===x){const k=C[Symbol.iterator](),x=v[Symbol.iterator]();for(;;){const L=k.next(),y=x.next();if(L.done!==y.done)return!1;if(L.done)return!0;if(!S(L.value,y.value))return!1}}s.equals=w})(he||(he={}));class rE extends Error{constructor(e){super(`Encountered errors while disposing of store. Errors: [${e.join(", ")}]`),this.errors=e}}function aE(s){return typeof s.dispose=="function"&&s.dispose.length===0}function Me(s){if(he.is(s)){let e=[];for(const t of s)if(t)try{t.dispose()}catch(i){e.push(i)}if(e.length===1)throw e[0];if(e.length>1)throw new rE(e);return Array.isArray(s)?[]:s}else if(s)return s.dispose(),s}function or(...s){return Pe(()=>Me(s))}function Pe(s){return{dispose:_r(()=>{s()})}}class se{constructor(){this._toDispose=new Set,this._isDisposed=!1}dispose(){this._isDisposed||(this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){try{Me(this._toDispose.values())}finally{this._toDispose.clear()}}add(e){if(!e)return e;if(e===this)throw new Error("Cannot register a disposable on itself!");return this._isDisposed?se.DISABLE_DISPOSED_WARNING||console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(e),e}}se.DISABLE_DISPOSED_WARNING=!1;class W{constructor(){this._store=new se,this._store}dispose(){this._store.dispose()}_register(e){if(e===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(e)}}W.None=Object.freeze({dispose(){}});class ly{constructor(){this._isDisposed=!1}get value(){return this._isDisposed?void 0:this._value}set value(e){var t;this._isDisposed||e===this._value||((t=this._value)===null||t===void 0||t.dispose(),this._value=e)}clear(){this.value=void 0}dispose(){var e;this._isDisposed=!0,(e=this._value)===null||e===void 0||e.dispose(),this._value=void 0}clearAndLeak(){const e=this._value;return this._value=void 0,e}}class lE{constructor(){this.dispose=()=>{},this.unset=()=>{},this.isset=()=>!1}set(e){let t=e;return this.unset=()=>t=void 0,this.isset=()=>t!==void 0,this.dispose=()=>{t&&(t(),t=void 0)},this}}class cE{constructor(e){this.object=e}dispose(){}}class Be{constructor(e){this.element=e,this.next=Be.Undefined,this.prev=Be.Undefined}}Be.Undefined=new Be(void 0);class Xi{constructor(){this._first=Be.Undefined,this._last=Be.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===Be.Undefined}clear(){let e=this._first;for(;e!==Be.Undefined;){const t=e.next;e.prev=Be.Undefined,e.next=Be.Undefined,e=t}this._first=Be.Undefined,this._last=Be.Undefined,this._size=0}unshift(e){return this._insert(e,!1)}push(e){return this._insert(e,!0)}_insert(e,t){const i=new Be(e);if(this._first===Be.Undefined)this._first=i,this._last=i;else if(t){const o=this._last;this._last=i,i.prev=o,o.next=i}else{const o=this._first;this._first=i,i.next=o,o.prev=i}this._size+=1;let n=!1;return()=>{n||(n=!0,this._remove(i))}}shift(){if(this._first!==Be.Undefined){const e=this._first.element;return this._remove(this._first),e}}pop(){if(this._last!==Be.Undefined){const e=this._last.element;return this._remove(this._last),e}}_remove(e){if(e.prev!==Be.Undefined&&e.next!==Be.Undefined){const t=e.prev;t.next=e.next,e.next.prev=t}else e.prev===Be.Undefined&&e.next===Be.Undefined?(this._first=Be.Undefined,this._last=Be.Undefined):e.next===Be.Undefined?(this._last=this._last.prev,this._last.next=Be.Undefined):e.prev===Be.Undefined&&(this._first=this._first.next,this._first.prev=Be.Undefined);this._size-=1}*[Symbol.iterator](){let e=this._first;for(;e!==Be.Undefined;)yield e.element,e=e.next}}const hE=Ge.performance&&typeof Ge.performance.now=="function";class Rr{constructor(e){this._highResolution=hE&&e,this._startTime=this._now(),this._stopTime=-1}static create(e=!0){return new Rr(e)}stop(){this._stopTime=this._now()}elapsed(){return this._stopTime!==-1?this._stopTime-this._startTime:this._now()-this._startTime}_now(){return this._highResolution?Ge.performance.now():Date.now()}}var K;(function(s){s.None=()=>W.None;function e(S){return(k,x=null,L)=>{let y=!1,I;return I=S(R=>{if(!y)return I?I.dispose():y=!0,k.call(x,R)},null,L),y&&I.dispose(),I}}s.once=e;function t(S,k,x){return l((L,y=null,I)=>S(R=>L.call(y,k(R)),null,I),x)}s.map=t;function i(S,k,x){return l((L,y=null,I)=>S(R=>{k(R),L.call(y,R)},null,I),x)}s.forEach=i;function n(S,k,x){return l((L,y=null,I)=>S(R=>k(R)&&L.call(y,R),null,I),x)}s.filter=n;function o(S){return S}s.signal=o;function r(...S){return(k,x=null,L)=>or(...S.map(y=>y(I=>k.call(x,I),null,L)))}s.any=r;function a(S,k,x,L){let y=x;return t(S,I=>(y=k(y,I),y),L)}s.reduce=a;function l(S,k){let x;const L={onFirstListenerAdd(){x=S(y.fire,y)},onLastListenerRemove(){x.dispose()}},y=new M(L);return k&&k.add(y),y.event}function c(S,k,x=100,L=!1,y,I){let R,T,P,F=0;const j={leakWarningThreshold:y,onFirstListenerAdd(){R=S(Q=>{F++,T=k(T,Q),L&&!P&&(z.fire(T),T=void 0),clearTimeout(P),P=setTimeout(()=>{const ie=T;T=void 0,P=void 0,(!L||F>1)&&z.fire(ie),F=0},x)})},onLastListenerRemove(){R.dispose()}},z=new M(j);return I&&I.add(z),z.event}s.debounce=c;function h(S,k=(L,y)=>L===y,x){let L=!0,y;return n(S,I=>{const R=L||!k(I,y);return L=!1,y=I,R},x)}s.latch=h;function d(S,k,x){return[s.filter(S,k,x),s.filter(S,L=>!k(L),x)]}s.split=d;function u(S,k=!1,x=[]){let L=x.slice(),y=S(T=>{L?L.push(T):R.fire(T)});const I=()=>{L&&L.forEach(T=>R.fire(T)),L=null},R=new M({onFirstListenerAdd(){y||(y=S(T=>R.fire(T)))},onFirstListenerDidAdd(){L&&(k?setTimeout(I):I())},onLastListenerRemove(){y&&y.dispose(),y=null}});return R.event}s.buffer=u;class f{constructor(k){this.event=k}map(k){return new f(t(this.event,k))}forEach(k){return new f(i(this.event,k))}filter(k){return new f(n(this.event,k))}reduce(k,x){return new f(a(this.event,k,x))}latch(){return new f(h(this.event))}debounce(k,x=100,L=!1,y){return new f(c(this.event,k,x,L,y))}on(k,x,L){return this.event(k,x,L)}once(k,x,L){return e(this.event)(k,x,L)}}function m(S){return new f(S)}s.chain=m;function _(S,k,x=L=>L){const L=(...T)=>R.fire(x(...T)),y=()=>S.on(k,L),I=()=>S.removeListener(k,L),R=new M({onFirstListenerAdd:y,onLastListenerRemove:I});return R.event}s.fromNodeEventEmitter=_;function b(S,k,x=L=>L){const L=(...T)=>R.fire(x(...T)),y=()=>S.addEventListener(k,L),I=()=>S.removeEventListener(k,L),R=new M({onFirstListenerAdd:y,onLastListenerRemove:I});return R.event}s.fromDOMEventEmitter=b;function w(S){return new Promise(k=>e(S)(k))}s.toPromise=w;function C(S,k){return k(void 0),S(x=>k(x))}s.runAndSubscribe=C;function v(S,k){let x=null;function L(I){x==null||x.dispose(),x=new se,k(I,x)}L(void 0);const y=S(I=>L(I));return Pe(()=>{y.dispose(),x==null||x.dispose()})}s.runAndSubscribeWithStore=v})(K||(K={}));class Cf{constructor(e){this._listenerCount=0,this._invocationCount=0,this._elapsedOverall=0,this._name=`${e}_${Cf._idPool++}`}start(e){this._stopWatch=new Rr(!0),this._listenerCount=e}stop(){if(this._stopWatch){const e=this._stopWatch.elapsed();this._elapsedOverall+=e,this._invocationCount+=1,console.info(`did FIRE ${this._name}: elapsed_ms: ${e.toFixed(5)}, listener: ${this._listenerCount} (elapsed_overall: ${this._elapsedOverall.toFixed(2)}, invocations: ${this._invocationCount})`),this._stopWatch=void 0}}}Cf._idPool=0;class G1{constructor(e){this.value=e}static create(){var e;return new G1((e=new Error().stack)!==null&&e!==void 0?e:"")}print(){console.warn(this.value.split(` +`).slice(2).join(` +`))}}class dE{constructor(e,t,i){this.callback=e,this.callbackThis=t,this.stack=i,this.subscription=new lE}invoke(e){this.callback.call(this.callbackThis,e)}}class M{constructor(e){var t;this._disposed=!1,this._options=e,this._leakageMon=void 0,this._perfMon=!((t=this._options)===null||t===void 0)&&t._profName?new Cf(this._options._profName):void 0}dispose(){var e,t,i,n;this._disposed||(this._disposed=!0,this._listeners&&this._listeners.clear(),(e=this._deliveryQueue)===null||e===void 0||e.clear(),(i=(t=this._options)===null||t===void 0?void 0:t.onLastListenerRemove)===null||i===void 0||i.call(t),(n=this._leakageMon)===null||n===void 0||n.dispose())}get event(){return this._event||(this._event=(e,t,i)=>{var n,o,r;this._listeners||(this._listeners=new Xi);const a=this._listeners.isEmpty();a&&((n=this._options)===null||n===void 0?void 0:n.onFirstListenerAdd)&&this._options.onFirstListenerAdd(this);let l,c;this._leakageMon&&this._listeners.size>=30&&(c=G1.create(),l=this._leakageMon.check(c,this._listeners.size+1));const h=new dE(e,t,c),d=this._listeners.push(h);a&&((o=this._options)===null||o===void 0?void 0:o.onFirstListenerDidAdd)&&this._options.onFirstListenerDidAdd(this),!((r=this._options)===null||r===void 0)&&r.onListenerDidAdd&&this._options.onListenerDidAdd(this,e,t);const u=h.subscription.set(()=>{l&&l(),this._disposed||(d(),this._options&&this._options.onLastListenerRemove&&(this._listeners&&!this._listeners.isEmpty()||this._options.onLastListenerRemove(this)))});return i instanceof se?i.add(u):Array.isArray(i)&&i.push(u),u}),this._event}fire(e){var t,i;if(this._listeners){this._deliveryQueue||(this._deliveryQueue=new Xi);for(let n of this._listeners)this._deliveryQueue.push([n,e]);for((t=this._perfMon)===null||t===void 0||t.start(this._deliveryQueue.size);this._deliveryQueue.size>0;){const[n,o]=this._deliveryQueue.shift();try{n.invoke(o)}catch(r){Ze(r)}}(i=this._perfMon)===null||i===void 0||i.stop()}}}class ru extends M{constructor(e){super(e),this._isPaused=0,this._eventQueue=new Xi,this._mergeFn=e==null?void 0:e.merge}pause(){this._isPaused++}resume(){if(this._isPaused!==0&&--this._isPaused===0)if(this._mergeFn){const e=Array.from(this._eventQueue);this._eventQueue.clear(),super.fire(this._mergeFn(e))}else for(;!this._isPaused&&this._eventQueue.size!==0;)super.fire(this._eventQueue.shift())}fire(e){this._listeners&&(this._isPaused!==0?this._eventQueue.push(e):super.fire(e))}}class uE extends ru{constructor(e){var t;super(e),this._delay=(t=e.delay)!==null&&t!==void 0?t:100}fire(e){this._handle||(this.pause(),this._handle=setTimeout(()=>{this._handle=void 0,this.resume()},this._delay)),super.fire(e)}}class Z1{constructor(){this.buffers=[]}wrapEvent(e){return(t,i,n)=>e(o=>{const r=this.buffers[this.buffers.length-1];r?r.push(()=>t.call(i,o)):t.call(i,o)},void 0,n)}bufferEvents(e){const t=[];this.buffers.push(t);const i=e();return this.buffers.pop(),t.forEach(n=>n()),i}}class Zb{constructor(){this.listening=!1,this.inputEvent=K.None,this.inputEventListener=W.None,this.emitter=new M({onFirstListenerDidAdd:()=>{this.listening=!0,this.inputEventListener=this.inputEvent(this.emitter.fire,this.emitter)},onLastListenerRemove:()=>{this.listening=!1,this.inputEventListener.dispose()}}),this.event=this.emitter.event}set input(e){this.inputEvent=e,this.listening&&(this.inputEventListener.dispose(),this.inputEventListener=e(this.emitter.fire,this.emitter))}dispose(){this.inputEventListener.dispose(),this.emitter.dispose()}}const cy=Object.freeze(function(s,e){const t=setTimeout(s.bind(e),0);return{dispose(){clearTimeout(t)}}});var ci;(function(s){function e(t){return t===s.None||t===s.Cancelled||t instanceof Td?!0:!t||typeof t!="object"?!1:typeof t.isCancellationRequested=="boolean"&&typeof t.onCancellationRequested=="function"}s.isCancellationToken=e,s.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:K.None}),s.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:cy})})(ci||(ci={}));class Td{constructor(){this._isCancelled=!1,this._emitter=null}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?cy:(this._emitter||(this._emitter=new M),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}}class ml{constructor(e){this._token=void 0,this._parentListener=void 0,this._parentListener=e&&e.onCancellationRequested(this.cancel,this)}get token(){return this._token||(this._token=new Td),this._token}cancel(){this._token?this._token instanceof Td&&this._token.cancel():this._token=ci.Cancelled}dispose(e=!1){e&&this.cancel(),this._parentListener&&this._parentListener.dispose(),this._token?this._token instanceof Td&&this._token.dispose():this._token=ci.None}}class Y1{constructor(){this._keyCodeToStr=[],this._strToKeyCode=Object.create(null)}define(e,t){this._keyCodeToStr[e]=t,this._strToKeyCode[t.toLowerCase()]=e}keyCodeToStr(e){return this._keyCodeToStr[e]}strToKeyCode(e){return this._strToKeyCode[e.toLowerCase()]||0}}const Md=new Y1,Ym=new Y1,Xm=new Y1,hy=new Array(230),fE={},gE=[],mE=Object.create(null),pE=Object.create(null),X1=[],Qm=[];for(let s=0;s<=193;s++)X1[s]=-1;for(let s=0;s<=127;s++)Qm[s]=-1;(function(){const s="",e=[[0,1,0,"None",0,"unknown",0,"VK_UNKNOWN",s,s],[0,1,1,"Hyper",0,s,0,s,s,s],[0,1,2,"Super",0,s,0,s,s,s],[0,1,3,"Fn",0,s,0,s,s,s],[0,1,4,"FnLock",0,s,0,s,s,s],[0,1,5,"Suspend",0,s,0,s,s,s],[0,1,6,"Resume",0,s,0,s,s,s],[0,1,7,"Turbo",0,s,0,s,s,s],[0,1,8,"Sleep",0,s,0,"VK_SLEEP",s,s],[0,1,9,"WakeUp",0,s,0,s,s,s],[31,0,10,"KeyA",31,"A",65,"VK_A",s,s],[32,0,11,"KeyB",32,"B",66,"VK_B",s,s],[33,0,12,"KeyC",33,"C",67,"VK_C",s,s],[34,0,13,"KeyD",34,"D",68,"VK_D",s,s],[35,0,14,"KeyE",35,"E",69,"VK_E",s,s],[36,0,15,"KeyF",36,"F",70,"VK_F",s,s],[37,0,16,"KeyG",37,"G",71,"VK_G",s,s],[38,0,17,"KeyH",38,"H",72,"VK_H",s,s],[39,0,18,"KeyI",39,"I",73,"VK_I",s,s],[40,0,19,"KeyJ",40,"J",74,"VK_J",s,s],[41,0,20,"KeyK",41,"K",75,"VK_K",s,s],[42,0,21,"KeyL",42,"L",76,"VK_L",s,s],[43,0,22,"KeyM",43,"M",77,"VK_M",s,s],[44,0,23,"KeyN",44,"N",78,"VK_N",s,s],[45,0,24,"KeyO",45,"O",79,"VK_O",s,s],[46,0,25,"KeyP",46,"P",80,"VK_P",s,s],[47,0,26,"KeyQ",47,"Q",81,"VK_Q",s,s],[48,0,27,"KeyR",48,"R",82,"VK_R",s,s],[49,0,28,"KeyS",49,"S",83,"VK_S",s,s],[50,0,29,"KeyT",50,"T",84,"VK_T",s,s],[51,0,30,"KeyU",51,"U",85,"VK_U",s,s],[52,0,31,"KeyV",52,"V",86,"VK_V",s,s],[53,0,32,"KeyW",53,"W",87,"VK_W",s,s],[54,0,33,"KeyX",54,"X",88,"VK_X",s,s],[55,0,34,"KeyY",55,"Y",89,"VK_Y",s,s],[56,0,35,"KeyZ",56,"Z",90,"VK_Z",s,s],[22,0,36,"Digit1",22,"1",49,"VK_1",s,s],[23,0,37,"Digit2",23,"2",50,"VK_2",s,s],[24,0,38,"Digit3",24,"3",51,"VK_3",s,s],[25,0,39,"Digit4",25,"4",52,"VK_4",s,s],[26,0,40,"Digit5",26,"5",53,"VK_5",s,s],[27,0,41,"Digit6",27,"6",54,"VK_6",s,s],[28,0,42,"Digit7",28,"7",55,"VK_7",s,s],[29,0,43,"Digit8",29,"8",56,"VK_8",s,s],[30,0,44,"Digit9",30,"9",57,"VK_9",s,s],[21,0,45,"Digit0",21,"0",48,"VK_0",s,s],[3,1,46,"Enter",3,"Enter",13,"VK_RETURN",s,s],[9,1,47,"Escape",9,"Escape",27,"VK_ESCAPE",s,s],[1,1,48,"Backspace",1,"Backspace",8,"VK_BACK",s,s],[2,1,49,"Tab",2,"Tab",9,"VK_TAB",s,s],[10,1,50,"Space",10,"Space",32,"VK_SPACE",s,s],[83,0,51,"Minus",83,"-",189,"VK_OEM_MINUS","-","OEM_MINUS"],[81,0,52,"Equal",81,"=",187,"VK_OEM_PLUS","=","OEM_PLUS"],[87,0,53,"BracketLeft",87,"[",219,"VK_OEM_4","[","OEM_4"],[89,0,54,"BracketRight",89,"]",221,"VK_OEM_6","]","OEM_6"],[88,0,55,"Backslash",88,"\\",220,"VK_OEM_5","\\","OEM_5"],[0,0,56,"IntlHash",0,s,0,s,s,s],[80,0,57,"Semicolon",80,";",186,"VK_OEM_1",";","OEM_1"],[90,0,58,"Quote",90,"'",222,"VK_OEM_7","'","OEM_7"],[86,0,59,"Backquote",86,"`",192,"VK_OEM_3","`","OEM_3"],[82,0,60,"Comma",82,",",188,"VK_OEM_COMMA",",","OEM_COMMA"],[84,0,61,"Period",84,".",190,"VK_OEM_PERIOD",".","OEM_PERIOD"],[85,0,62,"Slash",85,"/",191,"VK_OEM_2","/","OEM_2"],[8,1,63,"CapsLock",8,"CapsLock",20,"VK_CAPITAL",s,s],[59,1,64,"F1",59,"F1",112,"VK_F1",s,s],[60,1,65,"F2",60,"F2",113,"VK_F2",s,s],[61,1,66,"F3",61,"F3",114,"VK_F3",s,s],[62,1,67,"F4",62,"F4",115,"VK_F4",s,s],[63,1,68,"F5",63,"F5",116,"VK_F5",s,s],[64,1,69,"F6",64,"F6",117,"VK_F6",s,s],[65,1,70,"F7",65,"F7",118,"VK_F7",s,s],[66,1,71,"F8",66,"F8",119,"VK_F8",s,s],[67,1,72,"F9",67,"F9",120,"VK_F9",s,s],[68,1,73,"F10",68,"F10",121,"VK_F10",s,s],[69,1,74,"F11",69,"F11",122,"VK_F11",s,s],[70,1,75,"F12",70,"F12",123,"VK_F12",s,s],[0,1,76,"PrintScreen",0,s,0,s,s,s],[79,1,77,"ScrollLock",79,"ScrollLock",145,"VK_SCROLL",s,s],[7,1,78,"Pause",7,"PauseBreak",19,"VK_PAUSE",s,s],[19,1,79,"Insert",19,"Insert",45,"VK_INSERT",s,s],[14,1,80,"Home",14,"Home",36,"VK_HOME",s,s],[11,1,81,"PageUp",11,"PageUp",33,"VK_PRIOR",s,s],[20,1,82,"Delete",20,"Delete",46,"VK_DELETE",s,s],[13,1,83,"End",13,"End",35,"VK_END",s,s],[12,1,84,"PageDown",12,"PageDown",34,"VK_NEXT",s,s],[17,1,85,"ArrowRight",17,"RightArrow",39,"VK_RIGHT","Right",s],[15,1,86,"ArrowLeft",15,"LeftArrow",37,"VK_LEFT","Left",s],[18,1,87,"ArrowDown",18,"DownArrow",40,"VK_DOWN","Down",s],[16,1,88,"ArrowUp",16,"UpArrow",38,"VK_UP","Up",s],[78,1,89,"NumLock",78,"NumLock",144,"VK_NUMLOCK",s,s],[108,1,90,"NumpadDivide",108,"NumPad_Divide",111,"VK_DIVIDE",s,s],[103,1,91,"NumpadMultiply",103,"NumPad_Multiply",106,"VK_MULTIPLY",s,s],[106,1,92,"NumpadSubtract",106,"NumPad_Subtract",109,"VK_SUBTRACT",s,s],[104,1,93,"NumpadAdd",104,"NumPad_Add",107,"VK_ADD",s,s],[3,1,94,"NumpadEnter",3,s,0,s,s,s],[94,1,95,"Numpad1",94,"NumPad1",97,"VK_NUMPAD1",s,s],[95,1,96,"Numpad2",95,"NumPad2",98,"VK_NUMPAD2",s,s],[96,1,97,"Numpad3",96,"NumPad3",99,"VK_NUMPAD3",s,s],[97,1,98,"Numpad4",97,"NumPad4",100,"VK_NUMPAD4",s,s],[98,1,99,"Numpad5",98,"NumPad5",101,"VK_NUMPAD5",s,s],[99,1,100,"Numpad6",99,"NumPad6",102,"VK_NUMPAD6",s,s],[100,1,101,"Numpad7",100,"NumPad7",103,"VK_NUMPAD7",s,s],[101,1,102,"Numpad8",101,"NumPad8",104,"VK_NUMPAD8",s,s],[102,1,103,"Numpad9",102,"NumPad9",105,"VK_NUMPAD9",s,s],[93,1,104,"Numpad0",93,"NumPad0",96,"VK_NUMPAD0",s,s],[107,1,105,"NumpadDecimal",107,"NumPad_Decimal",110,"VK_DECIMAL",s,s],[92,0,106,"IntlBackslash",92,"OEM_102",226,"VK_OEM_102",s,s],[58,1,107,"ContextMenu",58,"ContextMenu",93,s,s,s],[0,1,108,"Power",0,s,0,s,s,s],[0,1,109,"NumpadEqual",0,s,0,s,s,s],[71,1,110,"F13",71,"F13",124,"VK_F13",s,s],[72,1,111,"F14",72,"F14",125,"VK_F14",s,s],[73,1,112,"F15",73,"F15",126,"VK_F15",s,s],[74,1,113,"F16",74,"F16",127,"VK_F16",s,s],[75,1,114,"F17",75,"F17",128,"VK_F17",s,s],[76,1,115,"F18",76,"F18",129,"VK_F18",s,s],[77,1,116,"F19",77,"F19",130,"VK_F19",s,s],[0,1,117,"F20",0,s,0,"VK_F20",s,s],[0,1,118,"F21",0,s,0,"VK_F21",s,s],[0,1,119,"F22",0,s,0,"VK_F22",s,s],[0,1,120,"F23",0,s,0,"VK_F23",s,s],[0,1,121,"F24",0,s,0,"VK_F24",s,s],[0,1,122,"Open",0,s,0,s,s,s],[0,1,123,"Help",0,s,0,s,s,s],[0,1,124,"Select",0,s,0,s,s,s],[0,1,125,"Again",0,s,0,s,s,s],[0,1,126,"Undo",0,s,0,s,s,s],[0,1,127,"Cut",0,s,0,s,s,s],[0,1,128,"Copy",0,s,0,s,s,s],[0,1,129,"Paste",0,s,0,s,s,s],[0,1,130,"Find",0,s,0,s,s,s],[0,1,131,"AudioVolumeMute",112,"AudioVolumeMute",173,"VK_VOLUME_MUTE",s,s],[0,1,132,"AudioVolumeUp",113,"AudioVolumeUp",175,"VK_VOLUME_UP",s,s],[0,1,133,"AudioVolumeDown",114,"AudioVolumeDown",174,"VK_VOLUME_DOWN",s,s],[105,1,134,"NumpadComma",105,"NumPad_Separator",108,"VK_SEPARATOR",s,s],[110,0,135,"IntlRo",110,"ABNT_C1",193,"VK_ABNT_C1",s,s],[0,1,136,"KanaMode",0,s,0,s,s,s],[0,0,137,"IntlYen",0,s,0,s,s,s],[0,1,138,"Convert",0,s,0,s,s,s],[0,1,139,"NonConvert",0,s,0,s,s,s],[0,1,140,"Lang1",0,s,0,s,s,s],[0,1,141,"Lang2",0,s,0,s,s,s],[0,1,142,"Lang3",0,s,0,s,s,s],[0,1,143,"Lang4",0,s,0,s,s,s],[0,1,144,"Lang5",0,s,0,s,s,s],[0,1,145,"Abort",0,s,0,s,s,s],[0,1,146,"Props",0,s,0,s,s,s],[0,1,147,"NumpadParenLeft",0,s,0,s,s,s],[0,1,148,"NumpadParenRight",0,s,0,s,s,s],[0,1,149,"NumpadBackspace",0,s,0,s,s,s],[0,1,150,"NumpadMemoryStore",0,s,0,s,s,s],[0,1,151,"NumpadMemoryRecall",0,s,0,s,s,s],[0,1,152,"NumpadMemoryClear",0,s,0,s,s,s],[0,1,153,"NumpadMemoryAdd",0,s,0,s,s,s],[0,1,154,"NumpadMemorySubtract",0,s,0,s,s,s],[0,1,155,"NumpadClear",126,"Clear",12,"VK_CLEAR",s,s],[0,1,156,"NumpadClearEntry",0,s,0,s,s,s],[5,1,0,s,5,"Ctrl",17,"VK_CONTROL",s,s],[4,1,0,s,4,"Shift",16,"VK_SHIFT",s,s],[6,1,0,s,6,"Alt",18,"VK_MENU",s,s],[57,1,0,s,57,"Meta",0,"VK_COMMAND",s,s],[5,1,157,"ControlLeft",5,s,0,"VK_LCONTROL",s,s],[4,1,158,"ShiftLeft",4,s,0,"VK_LSHIFT",s,s],[6,1,159,"AltLeft",6,s,0,"VK_LMENU",s,s],[57,1,160,"MetaLeft",57,s,0,"VK_LWIN",s,s],[5,1,161,"ControlRight",5,s,0,"VK_RCONTROL",s,s],[4,1,162,"ShiftRight",4,s,0,"VK_RSHIFT",s,s],[6,1,163,"AltRight",6,s,0,"VK_RMENU",s,s],[57,1,164,"MetaRight",57,s,0,"VK_RWIN",s,s],[0,1,165,"BrightnessUp",0,s,0,s,s,s],[0,1,166,"BrightnessDown",0,s,0,s,s,s],[0,1,167,"MediaPlay",0,s,0,s,s,s],[0,1,168,"MediaRecord",0,s,0,s,s,s],[0,1,169,"MediaFastForward",0,s,0,s,s,s],[0,1,170,"MediaRewind",0,s,0,s,s,s],[114,1,171,"MediaTrackNext",119,"MediaTrackNext",176,"VK_MEDIA_NEXT_TRACK",s,s],[115,1,172,"MediaTrackPrevious",120,"MediaTrackPrevious",177,"VK_MEDIA_PREV_TRACK",s,s],[116,1,173,"MediaStop",121,"MediaStop",178,"VK_MEDIA_STOP",s,s],[0,1,174,"Eject",0,s,0,s,s,s],[117,1,175,"MediaPlayPause",122,"MediaPlayPause",179,"VK_MEDIA_PLAY_PAUSE",s,s],[0,1,176,"MediaSelect",123,"LaunchMediaPlayer",181,"VK_MEDIA_LAUNCH_MEDIA_SELECT",s,s],[0,1,177,"LaunchMail",124,"LaunchMail",180,"VK_MEDIA_LAUNCH_MAIL",s,s],[0,1,178,"LaunchApp2",125,"LaunchApp2",183,"VK_MEDIA_LAUNCH_APP2",s,s],[0,1,179,"LaunchApp1",0,s,0,"VK_MEDIA_LAUNCH_APP1",s,s],[0,1,180,"SelectTask",0,s,0,s,s,s],[0,1,181,"LaunchScreenSaver",0,s,0,s,s,s],[0,1,182,"BrowserSearch",115,"BrowserSearch",170,"VK_BROWSER_SEARCH",s,s],[0,1,183,"BrowserHome",116,"BrowserHome",172,"VK_BROWSER_HOME",s,s],[112,1,184,"BrowserBack",117,"BrowserBack",166,"VK_BROWSER_BACK",s,s],[113,1,185,"BrowserForward",118,"BrowserForward",167,"VK_BROWSER_FORWARD",s,s],[0,1,186,"BrowserStop",0,s,0,"VK_BROWSER_STOP",s,s],[0,1,187,"BrowserRefresh",0,s,0,"VK_BROWSER_REFRESH",s,s],[0,1,188,"BrowserFavorites",0,s,0,"VK_BROWSER_FAVORITES",s,s],[0,1,189,"ZoomToggle",0,s,0,s,s,s],[0,1,190,"MailReply",0,s,0,s,s,s],[0,1,191,"MailForward",0,s,0,s,s,s],[0,1,192,"MailSend",0,s,0,s,s,s],[109,1,0,s,109,"KeyInComposition",229,s,s,s],[111,1,0,s,111,"ABNT_C2",194,"VK_ABNT_C2",s,s],[91,1,0,s,91,"OEM_8",223,"VK_OEM_8",s,s],[0,1,0,s,0,s,0,"VK_KANA",s,s],[0,1,0,s,0,s,0,"VK_HANGUL",s,s],[0,1,0,s,0,s,0,"VK_JUNJA",s,s],[0,1,0,s,0,s,0,"VK_FINAL",s,s],[0,1,0,s,0,s,0,"VK_HANJA",s,s],[0,1,0,s,0,s,0,"VK_KANJI",s,s],[0,1,0,s,0,s,0,"VK_CONVERT",s,s],[0,1,0,s,0,s,0,"VK_NONCONVERT",s,s],[0,1,0,s,0,s,0,"VK_ACCEPT",s,s],[0,1,0,s,0,s,0,"VK_MODECHANGE",s,s],[0,1,0,s,0,s,0,"VK_SELECT",s,s],[0,1,0,s,0,s,0,"VK_PRINT",s,s],[0,1,0,s,0,s,0,"VK_EXECUTE",s,s],[0,1,0,s,0,s,0,"VK_SNAPSHOT",s,s],[0,1,0,s,0,s,0,"VK_HELP",s,s],[0,1,0,s,0,s,0,"VK_APPS",s,s],[0,1,0,s,0,s,0,"VK_PROCESSKEY",s,s],[0,1,0,s,0,s,0,"VK_PACKET",s,s],[0,1,0,s,0,s,0,"VK_DBE_SBCSCHAR",s,s],[0,1,0,s,0,s,0,"VK_DBE_DBCSCHAR",s,s],[0,1,0,s,0,s,0,"VK_ATTN",s,s],[0,1,0,s,0,s,0,"VK_CRSEL",s,s],[0,1,0,s,0,s,0,"VK_EXSEL",s,s],[0,1,0,s,0,s,0,"VK_EREOF",s,s],[0,1,0,s,0,s,0,"VK_PLAY",s,s],[0,1,0,s,0,s,0,"VK_ZOOM",s,s],[0,1,0,s,0,s,0,"VK_NONAME",s,s],[0,1,0,s,0,s,0,"VK_PA1",s,s],[0,1,0,s,0,s,0,"VK_OEM_CLEAR",s,s]];let t=[],i=[];for(const n of e){const[o,r,a,l,c,h,d,u,f,m]=n;if(i[a]||(i[a]=!0,gE[a]=l,mE[l]=a,pE[l.toLowerCase()]=a,r&&(X1[a]=c,c!==0&&c!==3&&c!==5&&c!==4&&c!==6&&c!==57&&(Qm[c]=a))),!t[c]){if(t[c]=!0,!h)throw new Error(`String representation missing for key code ${c} around scan code ${l}`);Md.define(c,h),Ym.define(c,f||h),Xm.define(c,m||f||h)}d&&(hy[d]=c),u&&(fE[u]=c)}Qm[3]=46})();var Jo;(function(s){function e(a){return Md.keyCodeToStr(a)}s.toString=e;function t(a){return Md.strToKeyCode(a)}s.fromString=t;function i(a){return Ym.keyCodeToStr(a)}s.toUserSettingsUS=i;function n(a){return Xm.keyCodeToStr(a)}s.toUserSettingsGeneral=n;function o(a){return Ym.strToKeyCode(a)||Xm.strToKeyCode(a)}s.fromUserSettings=o;function r(a){if(a>=93&&a<=108)return null;switch(a){case 16:return"Up";case 18:return"Down";case 15:return"Left";case 17:return"Right"}return Md.keyCodeToStr(a)}s.toElectronAccelerator=r})(Jo||(Jo={}));function _E(s,e){const t=(e&65535)<<16>>>0;return(s|t)>>>0}let ya;if(typeof Ge.vscode!="undefined"&&typeof Ge.vscode.process!="undefined"){const s=Ge.vscode.process;ya={get platform(){return s.platform},get arch(){return s.arch},get env(){return s.env},cwd(){return s.cwd()}}}else typeof process!="undefined"?ya={get platform(){return process.platform},get arch(){return process.arch},get env(){return process.env},cwd(){return process.env.VSCODE_CWD||process.cwd()}}:ya={get platform(){return li?"win32":me?"darwin":"linux"},get arch(){},get env(){return{}},cwd(){return"/"}};const Jm=ya.cwd,bE=ya.env,Ar=ya.platform,CE=65,wE=97,vE=90,SE=122,co=46,Pt=47,ui=92,Vs=58,yE=63;class dy extends Error{constructor(e,t,i){let n;typeof t=="string"&&t.indexOf("not ")===0?(n="must not be",t=t.replace(/^not /,"")):n="must be";const o=e.indexOf(".")!==-1?"property":"argument";let r=`The "${e}" ${o} ${n} of type ${t}`;r+=`. Received type ${typeof i}`,super(r),this.code="ERR_INVALID_ARG_TYPE"}}function ut(s,e){if(typeof s!="string")throw new dy(e,"string",s)}function ge(s){return s===Pt||s===ui}function ep(s){return s===Pt}function Ws(s){return s>=CE&&s<=vE||s>=wE&&s<=SE}function au(s,e,t,i){let n="",o=0,r=-1,a=0,l=0;for(let c=0;c<=s.length;++c){if(c2){const h=n.lastIndexOf(t);h===-1?(n="",o=0):(n=n.slice(0,h),o=n.length-1-n.lastIndexOf(t)),r=c,a=0;continue}else if(n.length!==0){n="",o=0,r=c,a=0;continue}}e&&(n+=n.length>0?`${t}..`:"..",o=2)}else n.length>0?n+=`${t}${s.slice(r+1,c)}`:n=s.slice(r+1,c),o=c-r-1;r=c,a=0}else l===co&&a!==-1?++a:a=-1}return n}function uy(s,e){if(e===null||typeof e!="object")throw new dy("pathObject","Object",e);const t=e.dir||e.root,i=e.base||`${e.name||""}${e.ext||""}`;return t?t===e.root?`${t}${i}`:`${t}${s}${i}`:i}const ai={resolve(...s){let e="",t="",i=!1;for(let n=s.length-1;n>=-1;n--){let o;if(n>=0){if(o=s[n],ut(o,"path"),o.length===0)continue}else e.length===0?o=Jm():(o=bE[`=${e}`]||Jm(),(o===void 0||o.slice(0,2).toLowerCase()!==e.toLowerCase()&&o.charCodeAt(2)===ui)&&(o=`${e}\\`));const r=o.length;let a=0,l="",c=!1;const h=o.charCodeAt(0);if(r===1)ge(h)&&(a=1,c=!0);else if(ge(h))if(c=!0,ge(o.charCodeAt(1))){let d=2,u=d;for(;d2&&ge(o.charCodeAt(2))&&(c=!0,a=3));if(l.length>0)if(e.length>0){if(l.toLowerCase()!==e.toLowerCase())continue}else e=l;if(i){if(e.length>0)break}else if(t=`${o.slice(a)}\\${t}`,i=c,c&&e.length>0)break}return t=au(t,!i,"\\",ge),i?`${e}\\${t}`:`${e}${t}`||"."},normalize(s){ut(s,"path");const e=s.length;if(e===0)return".";let t=0,i,n=!1;const o=s.charCodeAt(0);if(e===1)return ep(o)?"\\":s;if(ge(o))if(n=!0,ge(s.charCodeAt(1))){let a=2,l=a;for(;a2&&ge(s.charCodeAt(2))&&(n=!0,t=3));let r=t0&&ge(s.charCodeAt(e-1))&&(r+="\\"),i===void 0?n?`\\${r}`:r:n?`${i}\\${r}`:`${i}${r}`},isAbsolute(s){ut(s,"path");const e=s.length;if(e===0)return!1;const t=s.charCodeAt(0);return ge(t)||e>2&&Ws(t)&&s.charCodeAt(1)===Vs&&ge(s.charCodeAt(2))},join(...s){if(s.length===0)return".";let e,t;for(let o=0;o0&&(e===void 0?e=t=r:e+=`\\${r}`)}if(e===void 0)return".";let i=!0,n=0;if(typeof t=="string"&&ge(t.charCodeAt(0))){++n;const o=t.length;o>1&&ge(t.charCodeAt(1))&&(++n,o>2&&(ge(t.charCodeAt(2))?++n:i=!1))}if(i){for(;n=2&&(e=`\\${e.slice(n)}`)}return ai.normalize(e)},relative(s,e){if(ut(s,"from"),ut(e,"to"),s===e)return"";const t=ai.resolve(s),i=ai.resolve(e);if(t===i||(s=t.toLowerCase(),e=i.toLowerCase(),s===e))return"";let n=0;for(;nn&&s.charCodeAt(o-1)===ui;)o--;const r=o-n;let a=0;for(;aa&&e.charCodeAt(l-1)===ui;)l--;const c=l-a,h=rh){if(e.charCodeAt(a+u)===ui)return i.slice(a+u+1);if(u===2)return i.slice(a+u)}r>h&&(s.charCodeAt(n+u)===ui?d=u:u===2&&(d=3)),d===-1&&(d=0)}let f="";for(u=n+d+1;u<=o;++u)(u===o||s.charCodeAt(u)===ui)&&(f+=f.length===0?"..":"\\..");return a+=d,f.length>0?`${f}${i.slice(a,l)}`:(i.charCodeAt(a)===ui&&++a,i.slice(a,l))},toNamespacedPath(s){if(typeof s!="string")return s;if(s.length===0)return"";const e=ai.resolve(s);if(e.length<=2)return s;if(e.charCodeAt(0)===ui){if(e.charCodeAt(1)===ui){const t=e.charCodeAt(2);if(t!==yE&&t!==co)return`\\\\?\\UNC\\${e.slice(2)}`}}else if(Ws(e.charCodeAt(0))&&e.charCodeAt(1)===Vs&&e.charCodeAt(2)===ui)return`\\\\?\\${e}`;return s},dirname(s){ut(s,"path");const e=s.length;if(e===0)return".";let t=-1,i=0;const n=s.charCodeAt(0);if(e===1)return ge(n)?s:".";if(ge(n)){if(t=i=1,ge(s.charCodeAt(1))){let a=2,l=a;for(;a2&&ge(s.charCodeAt(2))?3:2,i=t);let o=-1,r=!0;for(let a=e-1;a>=i;--a)if(ge(s.charCodeAt(a))){if(!r){o=a;break}}else r=!1;if(o===-1){if(t===-1)return".";o=t}return s.slice(0,o)},basename(s,e){e!==void 0&&ut(e,"ext"),ut(s,"path");let t=0,i=-1,n=!0,o;if(s.length>=2&&Ws(s.charCodeAt(0))&&s.charCodeAt(1)===Vs&&(t=2),e!==void 0&&e.length>0&&e.length<=s.length){if(e===s)return"";let r=e.length-1,a=-1;for(o=s.length-1;o>=t;--o){const l=s.charCodeAt(o);if(ge(l)){if(!n){t=o+1;break}}else a===-1&&(n=!1,a=o+1),r>=0&&(l===e.charCodeAt(r)?--r===-1&&(i=o):(r=-1,i=a))}return t===i?i=a:i===-1&&(i=s.length),s.slice(t,i)}for(o=s.length-1;o>=t;--o)if(ge(s.charCodeAt(o))){if(!n){t=o+1;break}}else i===-1&&(n=!1,i=o+1);return i===-1?"":s.slice(t,i)},extname(s){ut(s,"path");let e=0,t=-1,i=0,n=-1,o=!0,r=0;s.length>=2&&s.charCodeAt(1)===Vs&&Ws(s.charCodeAt(0))&&(e=i=2);for(let a=s.length-1;a>=e;--a){const l=s.charCodeAt(a);if(ge(l)){if(!o){i=a+1;break}continue}n===-1&&(o=!1,n=a+1),l===co?t===-1?t=a:r!==1&&(r=1):t!==-1&&(r=-1)}return t===-1||n===-1||r===0||r===1&&t===n-1&&t===i+1?"":s.slice(t,n)},format:uy.bind(null,"\\"),parse(s){ut(s,"path");const e={root:"",dir:"",base:"",ext:"",name:""};if(s.length===0)return e;const t=s.length;let i=0,n=s.charCodeAt(0);if(t===1)return ge(n)?(e.root=e.dir=s,e):(e.base=e.name=s,e);if(ge(n)){if(i=1,ge(s.charCodeAt(1))){let d=2,u=d;for(;d0&&(e.root=s.slice(0,i));let o=-1,r=i,a=-1,l=!0,c=s.length-1,h=0;for(;c>=i;--c){if(n=s.charCodeAt(c),ge(n)){if(!l){r=c+1;break}continue}a===-1&&(l=!1,a=c+1),n===co?o===-1?o=c:h!==1&&(h=1):o!==-1&&(h=-1)}return a!==-1&&(o===-1||h===0||h===1&&o===a-1&&o===r+1?e.base=e.name=s.slice(r,a):(e.name=s.slice(r,o),e.base=s.slice(r,a),e.ext=s.slice(o,a))),r>0&&r!==i?e.dir=s.slice(0,r-1):e.dir=e.root,e},sep:"\\",delimiter:";",win32:null,posix:null},tt={resolve(...s){let e="",t=!1;for(let i=s.length-1;i>=-1&&!t;i--){const n=i>=0?s[i]:Jm();ut(n,"path"),n.length!==0&&(e=`${n}/${e}`,t=n.charCodeAt(0)===Pt)}return e=au(e,!t,"/",ep),t?`/${e}`:e.length>0?e:"."},normalize(s){if(ut(s,"path"),s.length===0)return".";const e=s.charCodeAt(0)===Pt,t=s.charCodeAt(s.length-1)===Pt;return s=au(s,!e,"/",ep),s.length===0?e?"/":t?"./":".":(t&&(s+="/"),e?`/${s}`:s)},isAbsolute(s){return ut(s,"path"),s.length>0&&s.charCodeAt(0)===Pt},join(...s){if(s.length===0)return".";let e;for(let t=0;t0&&(e===void 0?e=i:e+=`/${i}`)}return e===void 0?".":tt.normalize(e)},relative(s,e){if(ut(s,"from"),ut(e,"to"),s===e||(s=tt.resolve(s),e=tt.resolve(e),s===e))return"";const t=1,i=s.length,n=i-t,o=1,r=e.length-o,a=na){if(e.charCodeAt(o+c)===Pt)return e.slice(o+c+1);if(c===0)return e.slice(o+c)}else n>a&&(s.charCodeAt(t+c)===Pt?l=c:c===0&&(l=0));let h="";for(c=t+l+1;c<=i;++c)(c===i||s.charCodeAt(c)===Pt)&&(h+=h.length===0?"..":"/..");return`${h}${e.slice(o+l)}`},toNamespacedPath(s){return s},dirname(s){if(ut(s,"path"),s.length===0)return".";const e=s.charCodeAt(0)===Pt;let t=-1,i=!0;for(let n=s.length-1;n>=1;--n)if(s.charCodeAt(n)===Pt){if(!i){t=n;break}}else i=!1;return t===-1?e?"/":".":e&&t===1?"//":s.slice(0,t)},basename(s,e){e!==void 0&&ut(e,"ext"),ut(s,"path");let t=0,i=-1,n=!0,o;if(e!==void 0&&e.length>0&&e.length<=s.length){if(e===s)return"";let r=e.length-1,a=-1;for(o=s.length-1;o>=0;--o){const l=s.charCodeAt(o);if(l===Pt){if(!n){t=o+1;break}}else a===-1&&(n=!1,a=o+1),r>=0&&(l===e.charCodeAt(r)?--r===-1&&(i=o):(r=-1,i=a))}return t===i?i=a:i===-1&&(i=s.length),s.slice(t,i)}for(o=s.length-1;o>=0;--o)if(s.charCodeAt(o)===Pt){if(!n){t=o+1;break}}else i===-1&&(n=!1,i=o+1);return i===-1?"":s.slice(t,i)},extname(s){ut(s,"path");let e=-1,t=0,i=-1,n=!0,o=0;for(let r=s.length-1;r>=0;--r){const a=s.charCodeAt(r);if(a===Pt){if(!n){t=r+1;break}continue}i===-1&&(n=!1,i=r+1),a===co?e===-1?e=r:o!==1&&(o=1):e!==-1&&(o=-1)}return e===-1||i===-1||o===0||o===1&&e===i-1&&e===t+1?"":s.slice(e,i)},format:uy.bind(null,"/"),parse(s){ut(s,"path");const e={root:"",dir:"",base:"",ext:"",name:""};if(s.length===0)return e;const t=s.charCodeAt(0)===Pt;let i;t?(e.root="/",i=1):i=0;let n=-1,o=0,r=-1,a=!0,l=s.length-1,c=0;for(;l>=i;--l){const h=s.charCodeAt(l);if(h===Pt){if(!a){o=l+1;break}continue}r===-1&&(a=!1,r=l+1),h===co?n===-1?n=l:c!==1&&(c=1):n!==-1&&(c=-1)}if(r!==-1){const h=o===0&&t?1:o;n===-1||c===0||c===1&&n===r-1&&n===o+1?e.base=e.name=s.slice(h,r):(e.name=s.slice(h,n),e.base=s.slice(h,r),e.ext=s.slice(n,r))}return o>0?e.dir=s.slice(0,o-1):t&&(e.dir="/"),e},sep:"/",delimiter:":",win32:null,posix:null};tt.win32=ai.win32=ai;tt.posix=ai.posix=tt;const fy=Ar==="win32"?ai.normalize:tt.normalize,LE=Ar==="win32"?ai.resolve:tt.resolve,kE=Ar==="win32"?ai.relative:tt.relative,xE=Ar==="win32"?ai.dirname:tt.dirname,gy=Ar==="win32"?ai.basename:tt.basename,IE=Ar==="win32"?ai.extname:tt.extname,rr=Ar==="win32"?ai.sep:tt.sep,EE=/^\w[\w\d+.-]*$/,DE=/^\//,NE=/^\/\//;function Yb(s,e){if(!s.scheme&&e)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${s.authority}", path: "${s.path}", query: "${s.query}", fragment: "${s.fragment}"}`);if(s.scheme&&!EE.test(s.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(s.path){if(s.authority){if(!DE.test(s.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(NE.test(s.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}function TE(s,e){return!s&&!e?"file":s}function ME(s,e){switch(s){case"https":case"http":case"file":e?e[0]!==mn&&(e=mn+e):e=mn;break}return e}const ze="",mn="/",RE=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class we{constructor(e,t,i,n,o,r=!1){typeof e=="object"?(this.scheme=e.scheme||ze,this.authority=e.authority||ze,this.path=e.path||ze,this.query=e.query||ze,this.fragment=e.fragment||ze):(this.scheme=TE(e,r),this.authority=t||ze,this.path=ME(this.scheme,i||ze),this.query=n||ze,this.fragment=o||ze,Yb(this,r))}static isUri(e){return e instanceof we?!0:e?typeof e.authority=="string"&&typeof e.fragment=="string"&&typeof e.path=="string"&&typeof e.query=="string"&&typeof e.scheme=="string"&&typeof e.fsPath=="string"&&typeof e.with=="function"&&typeof e.toString=="function":!1}get fsPath(){return lu(this,!1)}with(e){if(!e)return this;let{scheme:t,authority:i,path:n,query:o,fragment:r}=e;return t===void 0?t=this.scheme:t===null&&(t=ze),i===void 0?i=this.authority:i===null&&(i=ze),n===void 0?n=this.path:n===null&&(n=ze),o===void 0?o=this.query:o===null&&(o=ze),r===void 0?r=this.fragment:r===null&&(r=ze),t===this.scheme&&i===this.authority&&n===this.path&&o===this.query&&r===this.fragment?this:new jr(t,i,n,o,r)}static parse(e,t=!1){const i=RE.exec(e);return i?new jr(i[2]||ze,Wh(i[4]||ze),Wh(i[5]||ze),Wh(i[7]||ze),Wh(i[9]||ze),t):new jr(ze,ze,ze,ze,ze)}static file(e){let t=ze;if(li&&(e=e.replace(/\\/g,mn)),e[0]===mn&&e[1]===mn){const i=e.indexOf(mn,2);i===-1?(t=e.substring(2),e=mn):(t=e.substring(2,i),e=e.substring(i)||mn)}return new jr("file",t,e,ze,ze)}static from(e){const t=new jr(e.scheme,e.authority,e.path,e.query,e.fragment);return Yb(t,!0),t}static joinPath(e,...t){if(!e.path)throw new Error("[UriError]: cannot call joinPath on URI without path");let i;return li&&e.scheme==="file"?i=we.file(ai.join(lu(e,!0),...t)).path:i=tt.join(e.path,...t),e.with({path:i})}toString(e=!1){return tp(this,e)}toJSON(){return this}static revive(e){if(e){if(e instanceof we)return e;{const t=new jr(e);return t._formatted=e.external,t._fsPath=e._sep===my?e.fsPath:null,t}}else return e}}const my=li?1:void 0;class jr extends we{constructor(){super(...arguments),this._formatted=null,this._fsPath=null}get fsPath(){return this._fsPath||(this._fsPath=lu(this,!1)),this._fsPath}toString(e=!1){return e?tp(this,!0):(this._formatted||(this._formatted=tp(this,!1)),this._formatted)}toJSON(){const e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=my),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e}}const py={[58]:"%3A",[47]:"%2F",[63]:"%3F",[35]:"%23",[91]:"%5B",[93]:"%5D",[64]:"%40",[33]:"%21",[36]:"%24",[38]:"%26",[39]:"%27",[40]:"%28",[41]:"%29",[42]:"%2A",[43]:"%2B",[44]:"%2C",[59]:"%3B",[61]:"%3D",[32]:"%20"};function Xb(s,e){let t,i=-1;for(let n=0;n=97&&o<=122||o>=65&&o<=90||o>=48&&o<=57||o===45||o===46||o===95||o===126||e&&o===47)i!==-1&&(t+=encodeURIComponent(s.substring(i,n)),i=-1),t!==void 0&&(t+=s.charAt(n));else{t===void 0&&(t=s.substr(0,n));const r=py[o];r!==void 0?(i!==-1&&(t+=encodeURIComponent(s.substring(i,n)),i=-1),t+=r):i===-1&&(i=n)}}return i!==-1&&(t+=encodeURIComponent(s.substring(i))),t!==void 0?t:s}function AE(s){let e;for(let t=0;t1&&s.scheme==="file"?t=`//${s.authority}${s.path}`:s.path.charCodeAt(0)===47&&(s.path.charCodeAt(1)>=65&&s.path.charCodeAt(1)<=90||s.path.charCodeAt(1)>=97&&s.path.charCodeAt(1)<=122)&&s.path.charCodeAt(2)===58?e?t=s.path.substr(1):t=s.path[1].toLowerCase()+s.path.substr(2):t=s.path,li&&(t=t.replace(/\//g,"\\")),t}function tp(s,e){const t=e?AE:Xb;let i="",{scheme:n,authority:o,path:r,query:a,fragment:l}=s;if(n&&(i+=n,i+=":"),(o||n==="file")&&(i+=mn,i+=mn),o){let c=o.indexOf("@");if(c!==-1){const h=o.substr(0,c);o=o.substr(c+1),c=h.indexOf(":"),c===-1?i+=t(h,!1):(i+=t(h.substr(0,c),!1),i+=":",i+=t(h.substr(c+1),!1)),i+="@"}o=o.toLowerCase(),c=o.indexOf(":"),c===-1?i+=t(o,!1):(i+=t(o.substr(0,c),!1),i+=o.substr(c))}if(r){if(r.length>=3&&r.charCodeAt(0)===47&&r.charCodeAt(2)===58){const c=r.charCodeAt(1);c>=65&&c<=90&&(r=`/${String.fromCharCode(c+32)}:${r.substr(3)}`)}else if(r.length>=2&&r.charCodeAt(1)===58){const c=r.charCodeAt(0);c>=65&&c<=90&&(r=`${String.fromCharCode(c+32)}:${r.substr(2)}`)}i+=t(r,!0)}return a&&(i+="?",i+=t(a,!1)),l&&(i+="#",i+=e?l:Xb(l,!1)),i}function _y(s){try{return decodeURIComponent(s)}catch{return s.length>3?s.substr(0,3)+_y(s.substr(3)):s}}const Qb=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function Wh(s){return s.match(Qb)?s.replace(Qb,e=>_y(e)):s}class A{constructor(e,t){this.lineNumber=e,this.column=t}with(e=this.lineNumber,t=this.column){return e===this.lineNumber&&t===this.column?this:new A(e,t)}delta(e=0,t=0){return this.with(this.lineNumber+e,this.column+t)}equals(e){return A.equals(this,e)}static equals(e,t){return!e&&!t?!0:!!e&&!!t&&e.lineNumber===t.lineNumber&&e.column===t.column}isBefore(e){return A.isBefore(this,e)}static isBefore(e,t){return e.lineNumberi||e===i&&t>n?(this.startLineNumber=i,this.startColumn=n,this.endLineNumber=e,this.endColumn=t):(this.startLineNumber=e,this.startColumn=t,this.endLineNumber=i,this.endColumn=n)}isEmpty(){return D.isEmpty(this)}static isEmpty(e){return e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn}containsPosition(e){return D.containsPosition(this,e)}static containsPosition(e,t){return!(t.lineNumbere.endLineNumber||t.lineNumber===e.startLineNumber&&t.columne.endColumn)}static strictContainsPosition(e,t){return!(t.lineNumbere.endLineNumber||t.lineNumber===e.startLineNumber&&t.column<=e.startColumn||t.lineNumber===e.endLineNumber&&t.column>=e.endColumn)}containsRange(e){return D.containsRange(this,e)}static containsRange(e,t){return!(t.startLineNumbere.endLineNumber||t.endLineNumber>e.endLineNumber||t.startLineNumber===e.startLineNumber&&t.startColumne.endColumn)}strictContainsRange(e){return D.strictContainsRange(this,e)}static strictContainsRange(e,t){return!(t.startLineNumbere.endLineNumber||t.endLineNumber>e.endLineNumber||t.startLineNumber===e.startLineNumber&&t.startColumn<=e.startColumn||t.endLineNumber===e.endLineNumber&&t.endColumn>=e.endColumn)}plusRange(e){return D.plusRange(this,e)}static plusRange(e,t){let i,n,o,r;return t.startLineNumbere.endLineNumber?(o=t.endLineNumber,r=t.endColumn):t.endLineNumber===e.endLineNumber?(o=t.endLineNumber,r=Math.max(t.endColumn,e.endColumn)):(o=e.endLineNumber,r=e.endColumn),new D(i,n,o,r)}intersectRanges(e){return D.intersectRanges(this,e)}static intersectRanges(e,t){let i=e.startLineNumber,n=e.startColumn,o=e.endLineNumber,r=e.endColumn,a=t.startLineNumber,l=t.startColumn,c=t.endLineNumber,h=t.endColumn;return ic?(o=c,r=h):o===c&&(r=Math.min(r,h)),i>o||i===o&&n>r?null:new D(i,n,o,r)}equalsRange(e){return D.equalsRange(this,e)}static equalsRange(e,t){return!!e&&!!t&&e.startLineNumber===t.startLineNumber&&e.startColumn===t.startColumn&&e.endLineNumber===t.endLineNumber&&e.endColumn===t.endColumn}getEndPosition(){return D.getEndPosition(this)}static getEndPosition(e){return new A(e.endLineNumber,e.endColumn)}getStartPosition(){return D.getStartPosition(this)}static getStartPosition(e){return new A(e.startLineNumber,e.startColumn)}toString(){return"["+this.startLineNumber+","+this.startColumn+" -> "+this.endLineNumber+","+this.endColumn+"]"}setEndPosition(e,t){return new D(this.startLineNumber,this.startColumn,e,t)}setStartPosition(e,t){return new D(e,t,this.endLineNumber,this.endColumn)}collapseToStart(){return D.collapseToStart(this)}static collapseToStart(e){return new D(e.startLineNumber,e.startColumn,e.startLineNumber,e.startColumn)}static fromPositions(e,t=e){return new D(e.lineNumber,e.column,t.lineNumber,t.column)}static lift(e){return e?new D(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn):null}static isIRange(e){return e&&typeof e.startLineNumber=="number"&&typeof e.startColumn=="number"&&typeof e.endLineNumber=="number"&&typeof e.endColumn=="number"}static areIntersectingOrTouching(e,t){return!(e.endLineNumbere.startLineNumber}toJSON(){return this}}class ce extends D{constructor(e,t,i,n){super(e,t,i,n),this.selectionStartLineNumber=e,this.selectionStartColumn=t,this.positionLineNumber=i,this.positionColumn=n}toString(){return"["+this.selectionStartLineNumber+","+this.selectionStartColumn+" -> "+this.positionLineNumber+","+this.positionColumn+"]"}equalsSelection(e){return ce.selectionsEqual(this,e)}static selectionsEqual(e,t){return e.selectionStartLineNumber===t.selectionStartLineNumber&&e.selectionStartColumn===t.selectionStartColumn&&e.positionLineNumber===t.positionLineNumber&&e.positionColumn===t.positionColumn}getDirection(){return this.selectionStartLineNumber===this.startLineNumber&&this.selectionStartColumn===this.startColumn?0:1}setEndPosition(e,t){return this.getDirection()===0?new ce(this.startLineNumber,this.startColumn,e,t):new ce(e,t,this.startLineNumber,this.startColumn)}getPosition(){return new A(this.positionLineNumber,this.positionColumn)}getSelectionStart(){return new A(this.selectionStartLineNumber,this.selectionStartColumn)}setStartPosition(e,t){return this.getDirection()===0?new ce(e,t,this.endLineNumber,this.endColumn):new ce(this.endLineNumber,this.endColumn,e,t)}static fromPositions(e,t=e){return new ce(e.lineNumber,e.column,t.lineNumber,t.column)}static fromRange(e,t){return t===0?new ce(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn):new ce(e.endLineNumber,e.endColumn,e.startLineNumber,e.startColumn)}static liftSelection(e){return new ce(e.selectionStartLineNumber,e.selectionStartColumn,e.positionLineNumber,e.positionColumn)}static selectionsArrEqual(e,t){if(e&&!t||!e&&t)return!1;if(!e&&!t)return!0;if(e.length!==t.length)return!1;for(let i=0,n=e.length;i{this._map.get(e)===t&&(this._map.delete(e),this.fire([e]))})}registerFactory(e,t){var i;(i=this._factories.get(e))===null||i===void 0||i.dispose();const n=new PE(this,e,t);return this._factories.set(e,n),Pe(()=>{const o=this._factories.get(e);!o||o!==n||(this._factories.delete(e),o.dispose())})}getOrCreate(e){return ip(this,void 0,void 0,function*(){const t=this.get(e);if(t)return t;const i=this._factories.get(e);return!i||i.isResolved?null:(yield i.resolve(),this.get(e))})}get(e){return this._map.get(e)||null}isResolved(e){if(this.get(e))return!0;const i=this._factories.get(e);return!!(!i||i.isResolved)}setColorMap(e){this._colorMap=e,this._onDidChange.fire({changedLanguages:Array.from(this._map.keys()),changedColorMap:!0})}getColorMap(){return this._colorMap}getDefaultBackground(){return this._colorMap&&this._colorMap.length>2?this._colorMap[2]:null}}class PE extends W{constructor(e,t,i){super(),this._registry=e,this._languageId=t,this._factory=i,this._isDisposed=!1,this._resolvePromise=null,this._isResolved=!1}get isResolved(){return this._isResolved}dispose(){this._isDisposed=!0,super.dispose()}resolve(){return ip(this,void 0,void 0,function*(){return this._resolvePromise||(this._resolvePromise=this._create()),this._resolvePromise})}_create(){return ip(this,void 0,void 0,function*(){const e=yield Promise.resolve(this._factory.createTokenizationSupport());this._isResolved=!0,e&&!this._isDisposed&&this._register(this._registry.register(this._languageId,e))})}}function FE(s){return s?s.replace(/\$\((.*?)\)/g,(e,t)=>` ${t} `).trim():""}class g{constructor(e,t,i){this.id=e,this.definition=t,this.description=i,g._allCodicons.push(this)}get classNames(){return"codicon codicon-"+this.id}get classNamesArray(){return["codicon","codicon-"+this.id]}get cssSelector(){return".codicon.codicon-"+this.id}static getAll(){return g._allCodicons}}g._allCodicons=[];g.add=new g("add",{fontCharacter:"\\ea60"});g.plus=new g("plus",g.add.definition);g.gistNew=new g("gist-new",g.add.definition);g.repoCreate=new g("repo-create",g.add.definition);g.lightbulb=new g("lightbulb",{fontCharacter:"\\ea61"});g.lightBulb=new g("light-bulb",{fontCharacter:"\\ea61"});g.repo=new g("repo",{fontCharacter:"\\ea62"});g.repoDelete=new g("repo-delete",{fontCharacter:"\\ea62"});g.gistFork=new g("gist-fork",{fontCharacter:"\\ea63"});g.repoForked=new g("repo-forked",{fontCharacter:"\\ea63"});g.gitPullRequest=new g("git-pull-request",{fontCharacter:"\\ea64"});g.gitPullRequestAbandoned=new g("git-pull-request-abandoned",{fontCharacter:"\\ea64"});g.recordKeys=new g("record-keys",{fontCharacter:"\\ea65"});g.keyboard=new g("keyboard",{fontCharacter:"\\ea65"});g.tag=new g("tag",{fontCharacter:"\\ea66"});g.tagAdd=new g("tag-add",{fontCharacter:"\\ea66"});g.tagRemove=new g("tag-remove",{fontCharacter:"\\ea66"});g.person=new g("person",{fontCharacter:"\\ea67"});g.personFollow=new g("person-follow",{fontCharacter:"\\ea67"});g.personOutline=new g("person-outline",{fontCharacter:"\\ea67"});g.personFilled=new g("person-filled",{fontCharacter:"\\ea67"});g.gitBranch=new g("git-branch",{fontCharacter:"\\ea68"});g.gitBranchCreate=new g("git-branch-create",{fontCharacter:"\\ea68"});g.gitBranchDelete=new g("git-branch-delete",{fontCharacter:"\\ea68"});g.sourceControl=new g("source-control",{fontCharacter:"\\ea68"});g.mirror=new g("mirror",{fontCharacter:"\\ea69"});g.mirrorPublic=new g("mirror-public",{fontCharacter:"\\ea69"});g.star=new g("star",{fontCharacter:"\\ea6a"});g.starAdd=new g("star-add",{fontCharacter:"\\ea6a"});g.starDelete=new g("star-delete",{fontCharacter:"\\ea6a"});g.starEmpty=new g("star-empty",{fontCharacter:"\\ea6a"});g.comment=new g("comment",{fontCharacter:"\\ea6b"});g.commentAdd=new g("comment-add",{fontCharacter:"\\ea6b"});g.alert=new g("alert",{fontCharacter:"\\ea6c"});g.warning=new g("warning",{fontCharacter:"\\ea6c"});g.search=new g("search",{fontCharacter:"\\ea6d"});g.searchSave=new g("search-save",{fontCharacter:"\\ea6d"});g.logOut=new g("log-out",{fontCharacter:"\\ea6e"});g.signOut=new g("sign-out",{fontCharacter:"\\ea6e"});g.logIn=new g("log-in",{fontCharacter:"\\ea6f"});g.signIn=new g("sign-in",{fontCharacter:"\\ea6f"});g.eye=new g("eye",{fontCharacter:"\\ea70"});g.eyeUnwatch=new g("eye-unwatch",{fontCharacter:"\\ea70"});g.eyeWatch=new g("eye-watch",{fontCharacter:"\\ea70"});g.circleFilled=new g("circle-filled",{fontCharacter:"\\ea71"});g.primitiveDot=new g("primitive-dot",{fontCharacter:"\\ea71"});g.closeDirty=new g("close-dirty",{fontCharacter:"\\ea71"});g.debugBreakpoint=new g("debug-breakpoint",{fontCharacter:"\\ea71"});g.debugBreakpointDisabled=new g("debug-breakpoint-disabled",{fontCharacter:"\\ea71"});g.debugHint=new g("debug-hint",{fontCharacter:"\\ea71"});g.primitiveSquare=new g("primitive-square",{fontCharacter:"\\ea72"});g.edit=new g("edit",{fontCharacter:"\\ea73"});g.pencil=new g("pencil",{fontCharacter:"\\ea73"});g.info=new g("info",{fontCharacter:"\\ea74"});g.issueOpened=new g("issue-opened",{fontCharacter:"\\ea74"});g.gistPrivate=new g("gist-private",{fontCharacter:"\\ea75"});g.gitForkPrivate=new g("git-fork-private",{fontCharacter:"\\ea75"});g.lock=new g("lock",{fontCharacter:"\\ea75"});g.mirrorPrivate=new g("mirror-private",{fontCharacter:"\\ea75"});g.close=new g("close",{fontCharacter:"\\ea76"});g.removeClose=new g("remove-close",{fontCharacter:"\\ea76"});g.x=new g("x",{fontCharacter:"\\ea76"});g.repoSync=new g("repo-sync",{fontCharacter:"\\ea77"});g.sync=new g("sync",{fontCharacter:"\\ea77"});g.clone=new g("clone",{fontCharacter:"\\ea78"});g.desktopDownload=new g("desktop-download",{fontCharacter:"\\ea78"});g.beaker=new g("beaker",{fontCharacter:"\\ea79"});g.microscope=new g("microscope",{fontCharacter:"\\ea79"});g.vm=new g("vm",{fontCharacter:"\\ea7a"});g.deviceDesktop=new g("device-desktop",{fontCharacter:"\\ea7a"});g.file=new g("file",{fontCharacter:"\\ea7b"});g.fileText=new g("file-text",{fontCharacter:"\\ea7b"});g.more=new g("more",{fontCharacter:"\\ea7c"});g.ellipsis=new g("ellipsis",{fontCharacter:"\\ea7c"});g.kebabHorizontal=new g("kebab-horizontal",{fontCharacter:"\\ea7c"});g.mailReply=new g("mail-reply",{fontCharacter:"\\ea7d"});g.reply=new g("reply",{fontCharacter:"\\ea7d"});g.organization=new g("organization",{fontCharacter:"\\ea7e"});g.organizationFilled=new g("organization-filled",{fontCharacter:"\\ea7e"});g.organizationOutline=new g("organization-outline",{fontCharacter:"\\ea7e"});g.newFile=new g("new-file",{fontCharacter:"\\ea7f"});g.fileAdd=new g("file-add",{fontCharacter:"\\ea7f"});g.newFolder=new g("new-folder",{fontCharacter:"\\ea80"});g.fileDirectoryCreate=new g("file-directory-create",{fontCharacter:"\\ea80"});g.trash=new g("trash",{fontCharacter:"\\ea81"});g.trashcan=new g("trashcan",{fontCharacter:"\\ea81"});g.history=new g("history",{fontCharacter:"\\ea82"});g.clock=new g("clock",{fontCharacter:"\\ea82"});g.folder=new g("folder",{fontCharacter:"\\ea83"});g.fileDirectory=new g("file-directory",{fontCharacter:"\\ea83"});g.symbolFolder=new g("symbol-folder",{fontCharacter:"\\ea83"});g.logoGithub=new g("logo-github",{fontCharacter:"\\ea84"});g.markGithub=new g("mark-github",{fontCharacter:"\\ea84"});g.github=new g("github",{fontCharacter:"\\ea84"});g.terminal=new g("terminal",{fontCharacter:"\\ea85"});g.console=new g("console",{fontCharacter:"\\ea85"});g.repl=new g("repl",{fontCharacter:"\\ea85"});g.zap=new g("zap",{fontCharacter:"\\ea86"});g.symbolEvent=new g("symbol-event",{fontCharacter:"\\ea86"});g.error=new g("error",{fontCharacter:"\\ea87"});g.stop=new g("stop",{fontCharacter:"\\ea87"});g.variable=new g("variable",{fontCharacter:"\\ea88"});g.symbolVariable=new g("symbol-variable",{fontCharacter:"\\ea88"});g.array=new g("array",{fontCharacter:"\\ea8a"});g.symbolArray=new g("symbol-array",{fontCharacter:"\\ea8a"});g.symbolModule=new g("symbol-module",{fontCharacter:"\\ea8b"});g.symbolPackage=new g("symbol-package",{fontCharacter:"\\ea8b"});g.symbolNamespace=new g("symbol-namespace",{fontCharacter:"\\ea8b"});g.symbolObject=new g("symbol-object",{fontCharacter:"\\ea8b"});g.symbolMethod=new g("symbol-method",{fontCharacter:"\\ea8c"});g.symbolFunction=new g("symbol-function",{fontCharacter:"\\ea8c"});g.symbolConstructor=new g("symbol-constructor",{fontCharacter:"\\ea8c"});g.symbolBoolean=new g("symbol-boolean",{fontCharacter:"\\ea8f"});g.symbolNull=new g("symbol-null",{fontCharacter:"\\ea8f"});g.symbolNumeric=new g("symbol-numeric",{fontCharacter:"\\ea90"});g.symbolNumber=new g("symbol-number",{fontCharacter:"\\ea90"});g.symbolStructure=new g("symbol-structure",{fontCharacter:"\\ea91"});g.symbolStruct=new g("symbol-struct",{fontCharacter:"\\ea91"});g.symbolParameter=new g("symbol-parameter",{fontCharacter:"\\ea92"});g.symbolTypeParameter=new g("symbol-type-parameter",{fontCharacter:"\\ea92"});g.symbolKey=new g("symbol-key",{fontCharacter:"\\ea93"});g.symbolText=new g("symbol-text",{fontCharacter:"\\ea93"});g.symbolReference=new g("symbol-reference",{fontCharacter:"\\ea94"});g.goToFile=new g("go-to-file",{fontCharacter:"\\ea94"});g.symbolEnum=new g("symbol-enum",{fontCharacter:"\\ea95"});g.symbolValue=new g("symbol-value",{fontCharacter:"\\ea95"});g.symbolRuler=new g("symbol-ruler",{fontCharacter:"\\ea96"});g.symbolUnit=new g("symbol-unit",{fontCharacter:"\\ea96"});g.activateBreakpoints=new g("activate-breakpoints",{fontCharacter:"\\ea97"});g.archive=new g("archive",{fontCharacter:"\\ea98"});g.arrowBoth=new g("arrow-both",{fontCharacter:"\\ea99"});g.arrowDown=new g("arrow-down",{fontCharacter:"\\ea9a"});g.arrowLeft=new g("arrow-left",{fontCharacter:"\\ea9b"});g.arrowRight=new g("arrow-right",{fontCharacter:"\\ea9c"});g.arrowSmallDown=new g("arrow-small-down",{fontCharacter:"\\ea9d"});g.arrowSmallLeft=new g("arrow-small-left",{fontCharacter:"\\ea9e"});g.arrowSmallRight=new g("arrow-small-right",{fontCharacter:"\\ea9f"});g.arrowSmallUp=new g("arrow-small-up",{fontCharacter:"\\eaa0"});g.arrowUp=new g("arrow-up",{fontCharacter:"\\eaa1"});g.bell=new g("bell",{fontCharacter:"\\eaa2"});g.bold=new g("bold",{fontCharacter:"\\eaa3"});g.book=new g("book",{fontCharacter:"\\eaa4"});g.bookmark=new g("bookmark",{fontCharacter:"\\eaa5"});g.debugBreakpointConditionalUnverified=new g("debug-breakpoint-conditional-unverified",{fontCharacter:"\\eaa6"});g.debugBreakpointConditional=new g("debug-breakpoint-conditional",{fontCharacter:"\\eaa7"});g.debugBreakpointConditionalDisabled=new g("debug-breakpoint-conditional-disabled",{fontCharacter:"\\eaa7"});g.debugBreakpointDataUnverified=new g("debug-breakpoint-data-unverified",{fontCharacter:"\\eaa8"});g.debugBreakpointData=new g("debug-breakpoint-data",{fontCharacter:"\\eaa9"});g.debugBreakpointDataDisabled=new g("debug-breakpoint-data-disabled",{fontCharacter:"\\eaa9"});g.debugBreakpointLogUnverified=new g("debug-breakpoint-log-unverified",{fontCharacter:"\\eaaa"});g.debugBreakpointLog=new g("debug-breakpoint-log",{fontCharacter:"\\eaab"});g.debugBreakpointLogDisabled=new g("debug-breakpoint-log-disabled",{fontCharacter:"\\eaab"});g.briefcase=new g("briefcase",{fontCharacter:"\\eaac"});g.broadcast=new g("broadcast",{fontCharacter:"\\eaad"});g.browser=new g("browser",{fontCharacter:"\\eaae"});g.bug=new g("bug",{fontCharacter:"\\eaaf"});g.calendar=new g("calendar",{fontCharacter:"\\eab0"});g.caseSensitive=new g("case-sensitive",{fontCharacter:"\\eab1"});g.check=new g("check",{fontCharacter:"\\eab2"});g.checklist=new g("checklist",{fontCharacter:"\\eab3"});g.chevronDown=new g("chevron-down",{fontCharacter:"\\eab4"});g.dropDownButton=new g("drop-down-button",g.chevronDown.definition);g.chevronLeft=new g("chevron-left",{fontCharacter:"\\eab5"});g.chevronRight=new g("chevron-right",{fontCharacter:"\\eab6"});g.chevronUp=new g("chevron-up",{fontCharacter:"\\eab7"});g.chromeClose=new g("chrome-close",{fontCharacter:"\\eab8"});g.chromeMaximize=new g("chrome-maximize",{fontCharacter:"\\eab9"});g.chromeMinimize=new g("chrome-minimize",{fontCharacter:"\\eaba"});g.chromeRestore=new g("chrome-restore",{fontCharacter:"\\eabb"});g.circleOutline=new g("circle-outline",{fontCharacter:"\\eabc"});g.debugBreakpointUnverified=new g("debug-breakpoint-unverified",{fontCharacter:"\\eabc"});g.circleSlash=new g("circle-slash",{fontCharacter:"\\eabd"});g.circuitBoard=new g("circuit-board",{fontCharacter:"\\eabe"});g.clearAll=new g("clear-all",{fontCharacter:"\\eabf"});g.clippy=new g("clippy",{fontCharacter:"\\eac0"});g.closeAll=new g("close-all",{fontCharacter:"\\eac1"});g.cloudDownload=new g("cloud-download",{fontCharacter:"\\eac2"});g.cloudUpload=new g("cloud-upload",{fontCharacter:"\\eac3"});g.code=new g("code",{fontCharacter:"\\eac4"});g.collapseAll=new g("collapse-all",{fontCharacter:"\\eac5"});g.colorMode=new g("color-mode",{fontCharacter:"\\eac6"});g.commentDiscussion=new g("comment-discussion",{fontCharacter:"\\eac7"});g.compareChanges=new g("compare-changes",{fontCharacter:"\\eafd"});g.creditCard=new g("credit-card",{fontCharacter:"\\eac9"});g.dash=new g("dash",{fontCharacter:"\\eacc"});g.dashboard=new g("dashboard",{fontCharacter:"\\eacd"});g.database=new g("database",{fontCharacter:"\\eace"});g.debugContinue=new g("debug-continue",{fontCharacter:"\\eacf"});g.debugDisconnect=new g("debug-disconnect",{fontCharacter:"\\ead0"});g.debugPause=new g("debug-pause",{fontCharacter:"\\ead1"});g.debugRestart=new g("debug-restart",{fontCharacter:"\\ead2"});g.debugStart=new g("debug-start",{fontCharacter:"\\ead3"});g.debugStepInto=new g("debug-step-into",{fontCharacter:"\\ead4"});g.debugStepOut=new g("debug-step-out",{fontCharacter:"\\ead5"});g.debugStepOver=new g("debug-step-over",{fontCharacter:"\\ead6"});g.debugStop=new g("debug-stop",{fontCharacter:"\\ead7"});g.debug=new g("debug",{fontCharacter:"\\ead8"});g.deviceCameraVideo=new g("device-camera-video",{fontCharacter:"\\ead9"});g.deviceCamera=new g("device-camera",{fontCharacter:"\\eada"});g.deviceMobile=new g("device-mobile",{fontCharacter:"\\eadb"});g.diffAdded=new g("diff-added",{fontCharacter:"\\eadc"});g.diffIgnored=new g("diff-ignored",{fontCharacter:"\\eadd"});g.diffModified=new g("diff-modified",{fontCharacter:"\\eade"});g.diffRemoved=new g("diff-removed",{fontCharacter:"\\eadf"});g.diffRenamed=new g("diff-renamed",{fontCharacter:"\\eae0"});g.diff=new g("diff",{fontCharacter:"\\eae1"});g.discard=new g("discard",{fontCharacter:"\\eae2"});g.editorLayout=new g("editor-layout",{fontCharacter:"\\eae3"});g.emptyWindow=new g("empty-window",{fontCharacter:"\\eae4"});g.exclude=new g("exclude",{fontCharacter:"\\eae5"});g.extensions=new g("extensions",{fontCharacter:"\\eae6"});g.eyeClosed=new g("eye-closed",{fontCharacter:"\\eae7"});g.fileBinary=new g("file-binary",{fontCharacter:"\\eae8"});g.fileCode=new g("file-code",{fontCharacter:"\\eae9"});g.fileMedia=new g("file-media",{fontCharacter:"\\eaea"});g.filePdf=new g("file-pdf",{fontCharacter:"\\eaeb"});g.fileSubmodule=new g("file-submodule",{fontCharacter:"\\eaec"});g.fileSymlinkDirectory=new g("file-symlink-directory",{fontCharacter:"\\eaed"});g.fileSymlinkFile=new g("file-symlink-file",{fontCharacter:"\\eaee"});g.fileZip=new g("file-zip",{fontCharacter:"\\eaef"});g.files=new g("files",{fontCharacter:"\\eaf0"});g.filter=new g("filter",{fontCharacter:"\\eaf1"});g.flame=new g("flame",{fontCharacter:"\\eaf2"});g.foldDown=new g("fold-down",{fontCharacter:"\\eaf3"});g.foldUp=new g("fold-up",{fontCharacter:"\\eaf4"});g.fold=new g("fold",{fontCharacter:"\\eaf5"});g.folderActive=new g("folder-active",{fontCharacter:"\\eaf6"});g.folderOpened=new g("folder-opened",{fontCharacter:"\\eaf7"});g.gear=new g("gear",{fontCharacter:"\\eaf8"});g.gift=new g("gift",{fontCharacter:"\\eaf9"});g.gistSecret=new g("gist-secret",{fontCharacter:"\\eafa"});g.gist=new g("gist",{fontCharacter:"\\eafb"});g.gitCommit=new g("git-commit",{fontCharacter:"\\eafc"});g.gitCompare=new g("git-compare",{fontCharacter:"\\eafd"});g.gitMerge=new g("git-merge",{fontCharacter:"\\eafe"});g.githubAction=new g("github-action",{fontCharacter:"\\eaff"});g.githubAlt=new g("github-alt",{fontCharacter:"\\eb00"});g.globe=new g("globe",{fontCharacter:"\\eb01"});g.grabber=new g("grabber",{fontCharacter:"\\eb02"});g.graph=new g("graph",{fontCharacter:"\\eb03"});g.gripper=new g("gripper",{fontCharacter:"\\eb04"});g.heart=new g("heart",{fontCharacter:"\\eb05"});g.home=new g("home",{fontCharacter:"\\eb06"});g.horizontalRule=new g("horizontal-rule",{fontCharacter:"\\eb07"});g.hubot=new g("hubot",{fontCharacter:"\\eb08"});g.inbox=new g("inbox",{fontCharacter:"\\eb09"});g.issueClosed=new g("issue-closed",{fontCharacter:"\\eba4"});g.issueReopened=new g("issue-reopened",{fontCharacter:"\\eb0b"});g.issues=new g("issues",{fontCharacter:"\\eb0c"});g.italic=new g("italic",{fontCharacter:"\\eb0d"});g.jersey=new g("jersey",{fontCharacter:"\\eb0e"});g.json=new g("json",{fontCharacter:"\\eb0f"});g.kebabVertical=new g("kebab-vertical",{fontCharacter:"\\eb10"});g.key=new g("key",{fontCharacter:"\\eb11"});g.law=new g("law",{fontCharacter:"\\eb12"});g.lightbulbAutofix=new g("lightbulb-autofix",{fontCharacter:"\\eb13"});g.linkExternal=new g("link-external",{fontCharacter:"\\eb14"});g.link=new g("link",{fontCharacter:"\\eb15"});g.listOrdered=new g("list-ordered",{fontCharacter:"\\eb16"});g.listUnordered=new g("list-unordered",{fontCharacter:"\\eb17"});g.liveShare=new g("live-share",{fontCharacter:"\\eb18"});g.loading=new g("loading",{fontCharacter:"\\eb19"});g.location=new g("location",{fontCharacter:"\\eb1a"});g.mailRead=new g("mail-read",{fontCharacter:"\\eb1b"});g.mail=new g("mail",{fontCharacter:"\\eb1c"});g.markdown=new g("markdown",{fontCharacter:"\\eb1d"});g.megaphone=new g("megaphone",{fontCharacter:"\\eb1e"});g.mention=new g("mention",{fontCharacter:"\\eb1f"});g.milestone=new g("milestone",{fontCharacter:"\\eb20"});g.mortarBoard=new g("mortar-board",{fontCharacter:"\\eb21"});g.move=new g("move",{fontCharacter:"\\eb22"});g.multipleWindows=new g("multiple-windows",{fontCharacter:"\\eb23"});g.mute=new g("mute",{fontCharacter:"\\eb24"});g.noNewline=new g("no-newline",{fontCharacter:"\\eb25"});g.note=new g("note",{fontCharacter:"\\eb26"});g.octoface=new g("octoface",{fontCharacter:"\\eb27"});g.openPreview=new g("open-preview",{fontCharacter:"\\eb28"});g.package_=new g("package",{fontCharacter:"\\eb29"});g.paintcan=new g("paintcan",{fontCharacter:"\\eb2a"});g.pin=new g("pin",{fontCharacter:"\\eb2b"});g.play=new g("play",{fontCharacter:"\\eb2c"});g.run=new g("run",{fontCharacter:"\\eb2c"});g.plug=new g("plug",{fontCharacter:"\\eb2d"});g.preserveCase=new g("preserve-case",{fontCharacter:"\\eb2e"});g.preview=new g("preview",{fontCharacter:"\\eb2f"});g.project=new g("project",{fontCharacter:"\\eb30"});g.pulse=new g("pulse",{fontCharacter:"\\eb31"});g.question=new g("question",{fontCharacter:"\\eb32"});g.quote=new g("quote",{fontCharacter:"\\eb33"});g.radioTower=new g("radio-tower",{fontCharacter:"\\eb34"});g.reactions=new g("reactions",{fontCharacter:"\\eb35"});g.references=new g("references",{fontCharacter:"\\eb36"});g.refresh=new g("refresh",{fontCharacter:"\\eb37"});g.regex=new g("regex",{fontCharacter:"\\eb38"});g.remoteExplorer=new g("remote-explorer",{fontCharacter:"\\eb39"});g.remote=new g("remote",{fontCharacter:"\\eb3a"});g.remove=new g("remove",{fontCharacter:"\\eb3b"});g.replaceAll=new g("replace-all",{fontCharacter:"\\eb3c"});g.replace=new g("replace",{fontCharacter:"\\eb3d"});g.repoClone=new g("repo-clone",{fontCharacter:"\\eb3e"});g.repoForcePush=new g("repo-force-push",{fontCharacter:"\\eb3f"});g.repoPull=new g("repo-pull",{fontCharacter:"\\eb40"});g.repoPush=new g("repo-push",{fontCharacter:"\\eb41"});g.report=new g("report",{fontCharacter:"\\eb42"});g.requestChanges=new g("request-changes",{fontCharacter:"\\eb43"});g.rocket=new g("rocket",{fontCharacter:"\\eb44"});g.rootFolderOpened=new g("root-folder-opened",{fontCharacter:"\\eb45"});g.rootFolder=new g("root-folder",{fontCharacter:"\\eb46"});g.rss=new g("rss",{fontCharacter:"\\eb47"});g.ruby=new g("ruby",{fontCharacter:"\\eb48"});g.saveAll=new g("save-all",{fontCharacter:"\\eb49"});g.saveAs=new g("save-as",{fontCharacter:"\\eb4a"});g.save=new g("save",{fontCharacter:"\\eb4b"});g.screenFull=new g("screen-full",{fontCharacter:"\\eb4c"});g.screenNormal=new g("screen-normal",{fontCharacter:"\\eb4d"});g.searchStop=new g("search-stop",{fontCharacter:"\\eb4e"});g.server=new g("server",{fontCharacter:"\\eb50"});g.settingsGear=new g("settings-gear",{fontCharacter:"\\eb51"});g.settings=new g("settings",{fontCharacter:"\\eb52"});g.shield=new g("shield",{fontCharacter:"\\eb53"});g.smiley=new g("smiley",{fontCharacter:"\\eb54"});g.sortPrecedence=new g("sort-precedence",{fontCharacter:"\\eb55"});g.splitHorizontal=new g("split-horizontal",{fontCharacter:"\\eb56"});g.splitVertical=new g("split-vertical",{fontCharacter:"\\eb57"});g.squirrel=new g("squirrel",{fontCharacter:"\\eb58"});g.starFull=new g("star-full",{fontCharacter:"\\eb59"});g.starHalf=new g("star-half",{fontCharacter:"\\eb5a"});g.symbolClass=new g("symbol-class",{fontCharacter:"\\eb5b"});g.symbolColor=new g("symbol-color",{fontCharacter:"\\eb5c"});g.symbolCustomColor=new g("symbol-customcolor",{fontCharacter:"\\eb5c"});g.symbolConstant=new g("symbol-constant",{fontCharacter:"\\eb5d"});g.symbolEnumMember=new g("symbol-enum-member",{fontCharacter:"\\eb5e"});g.symbolField=new g("symbol-field",{fontCharacter:"\\eb5f"});g.symbolFile=new g("symbol-file",{fontCharacter:"\\eb60"});g.symbolInterface=new g("symbol-interface",{fontCharacter:"\\eb61"});g.symbolKeyword=new g("symbol-keyword",{fontCharacter:"\\eb62"});g.symbolMisc=new g("symbol-misc",{fontCharacter:"\\eb63"});g.symbolOperator=new g("symbol-operator",{fontCharacter:"\\eb64"});g.symbolProperty=new g("symbol-property",{fontCharacter:"\\eb65"});g.wrench=new g("wrench",{fontCharacter:"\\eb65"});g.wrenchSubaction=new g("wrench-subaction",{fontCharacter:"\\eb65"});g.symbolSnippet=new g("symbol-snippet",{fontCharacter:"\\eb66"});g.tasklist=new g("tasklist",{fontCharacter:"\\eb67"});g.telescope=new g("telescope",{fontCharacter:"\\eb68"});g.textSize=new g("text-size",{fontCharacter:"\\eb69"});g.threeBars=new g("three-bars",{fontCharacter:"\\eb6a"});g.thumbsdown=new g("thumbsdown",{fontCharacter:"\\eb6b"});g.thumbsup=new g("thumbsup",{fontCharacter:"\\eb6c"});g.tools=new g("tools",{fontCharacter:"\\eb6d"});g.triangleDown=new g("triangle-down",{fontCharacter:"\\eb6e"});g.triangleLeft=new g("triangle-left",{fontCharacter:"\\eb6f"});g.triangleRight=new g("triangle-right",{fontCharacter:"\\eb70"});g.triangleUp=new g("triangle-up",{fontCharacter:"\\eb71"});g.twitter=new g("twitter",{fontCharacter:"\\eb72"});g.unfold=new g("unfold",{fontCharacter:"\\eb73"});g.unlock=new g("unlock",{fontCharacter:"\\eb74"});g.unmute=new g("unmute",{fontCharacter:"\\eb75"});g.unverified=new g("unverified",{fontCharacter:"\\eb76"});g.verified=new g("verified",{fontCharacter:"\\eb77"});g.versions=new g("versions",{fontCharacter:"\\eb78"});g.vmActive=new g("vm-active",{fontCharacter:"\\eb79"});g.vmOutline=new g("vm-outline",{fontCharacter:"\\eb7a"});g.vmRunning=new g("vm-running",{fontCharacter:"\\eb7b"});g.watch=new g("watch",{fontCharacter:"\\eb7c"});g.whitespace=new g("whitespace",{fontCharacter:"\\eb7d"});g.wholeWord=new g("whole-word",{fontCharacter:"\\eb7e"});g.window=new g("window",{fontCharacter:"\\eb7f"});g.wordWrap=new g("word-wrap",{fontCharacter:"\\eb80"});g.zoomIn=new g("zoom-in",{fontCharacter:"\\eb81"});g.zoomOut=new g("zoom-out",{fontCharacter:"\\eb82"});g.listFilter=new g("list-filter",{fontCharacter:"\\eb83"});g.listFlat=new g("list-flat",{fontCharacter:"\\eb84"});g.listSelection=new g("list-selection",{fontCharacter:"\\eb85"});g.selection=new g("selection",{fontCharacter:"\\eb85"});g.listTree=new g("list-tree",{fontCharacter:"\\eb86"});g.debugBreakpointFunctionUnverified=new g("debug-breakpoint-function-unverified",{fontCharacter:"\\eb87"});g.debugBreakpointFunction=new g("debug-breakpoint-function",{fontCharacter:"\\eb88"});g.debugBreakpointFunctionDisabled=new g("debug-breakpoint-function-disabled",{fontCharacter:"\\eb88"});g.debugStackframeActive=new g("debug-stackframe-active",{fontCharacter:"\\eb89"});g.debugStackframeDot=new g("debug-stackframe-dot",{fontCharacter:"\\eb8a"});g.debugStackframe=new g("debug-stackframe",{fontCharacter:"\\eb8b"});g.debugStackframeFocused=new g("debug-stackframe-focused",{fontCharacter:"\\eb8b"});g.debugBreakpointUnsupported=new g("debug-breakpoint-unsupported",{fontCharacter:"\\eb8c"});g.symbolString=new g("symbol-string",{fontCharacter:"\\eb8d"});g.debugReverseContinue=new g("debug-reverse-continue",{fontCharacter:"\\eb8e"});g.debugStepBack=new g("debug-step-back",{fontCharacter:"\\eb8f"});g.debugRestartFrame=new g("debug-restart-frame",{fontCharacter:"\\eb90"});g.callIncoming=new g("call-incoming",{fontCharacter:"\\eb92"});g.callOutgoing=new g("call-outgoing",{fontCharacter:"\\eb93"});g.menu=new g("menu",{fontCharacter:"\\eb94"});g.expandAll=new g("expand-all",{fontCharacter:"\\eb95"});g.feedback=new g("feedback",{fontCharacter:"\\eb96"});g.groupByRefType=new g("group-by-ref-type",{fontCharacter:"\\eb97"});g.ungroupByRefType=new g("ungroup-by-ref-type",{fontCharacter:"\\eb98"});g.account=new g("account",{fontCharacter:"\\eb99"});g.bellDot=new g("bell-dot",{fontCharacter:"\\eb9a"});g.debugConsole=new g("debug-console",{fontCharacter:"\\eb9b"});g.library=new g("library",{fontCharacter:"\\eb9c"});g.output=new g("output",{fontCharacter:"\\eb9d"});g.runAll=new g("run-all",{fontCharacter:"\\eb9e"});g.syncIgnored=new g("sync-ignored",{fontCharacter:"\\eb9f"});g.pinned=new g("pinned",{fontCharacter:"\\eba0"});g.githubInverted=new g("github-inverted",{fontCharacter:"\\eba1"});g.debugAlt=new g("debug-alt",{fontCharacter:"\\eb91"});g.serverProcess=new g("server-process",{fontCharacter:"\\eba2"});g.serverEnvironment=new g("server-environment",{fontCharacter:"\\eba3"});g.pass=new g("pass",{fontCharacter:"\\eba4"});g.stopCircle=new g("stop-circle",{fontCharacter:"\\eba5"});g.playCircle=new g("play-circle",{fontCharacter:"\\eba6"});g.record=new g("record",{fontCharacter:"\\eba7"});g.debugAltSmall=new g("debug-alt-small",{fontCharacter:"\\eba8"});g.vmConnect=new g("vm-connect",{fontCharacter:"\\eba9"});g.cloud=new g("cloud",{fontCharacter:"\\ebaa"});g.merge=new g("merge",{fontCharacter:"\\ebab"});g.exportIcon=new g("export",{fontCharacter:"\\ebac"});g.graphLeft=new g("graph-left",{fontCharacter:"\\ebad"});g.magnet=new g("magnet",{fontCharacter:"\\ebae"});g.notebook=new g("notebook",{fontCharacter:"\\ebaf"});g.redo=new g("redo",{fontCharacter:"\\ebb0"});g.checkAll=new g("check-all",{fontCharacter:"\\ebb1"});g.pinnedDirty=new g("pinned-dirty",{fontCharacter:"\\ebb2"});g.passFilled=new g("pass-filled",{fontCharacter:"\\ebb3"});g.circleLargeFilled=new g("circle-large-filled",{fontCharacter:"\\ebb4"});g.circleLargeOutline=new g("circle-large-outline",{fontCharacter:"\\ebb5"});g.combine=new g("combine",{fontCharacter:"\\ebb6"});g.gather=new g("gather",{fontCharacter:"\\ebb6"});g.table=new g("table",{fontCharacter:"\\ebb7"});g.variableGroup=new g("variable-group",{fontCharacter:"\\ebb8"});g.typeHierarchy=new g("type-hierarchy",{fontCharacter:"\\ebb9"});g.typeHierarchySub=new g("type-hierarchy-sub",{fontCharacter:"\\ebba"});g.typeHierarchySuper=new g("type-hierarchy-super",{fontCharacter:"\\ebbb"});g.gitPullRequestCreate=new g("git-pull-request-create",{fontCharacter:"\\ebbc"});g.runAbove=new g("run-above",{fontCharacter:"\\ebbd"});g.runBelow=new g("run-below",{fontCharacter:"\\ebbe"});g.notebookTemplate=new g("notebook-template",{fontCharacter:"\\ebbf"});g.debugRerun=new g("debug-rerun",{fontCharacter:"\\ebc0"});g.workspaceTrusted=new g("workspace-trusted",{fontCharacter:"\\ebc1"});g.workspaceUntrusted=new g("workspace-untrusted",{fontCharacter:"\\ebc2"});g.workspaceUnspecified=new g("workspace-unspecified",{fontCharacter:"\\ebc3"});g.terminalCmd=new g("terminal-cmd",{fontCharacter:"\\ebc4"});g.terminalDebian=new g("terminal-debian",{fontCharacter:"\\ebc5"});g.terminalLinux=new g("terminal-linux",{fontCharacter:"\\ebc6"});g.terminalPowershell=new g("terminal-powershell",{fontCharacter:"\\ebc7"});g.terminalTmux=new g("terminal-tmux",{fontCharacter:"\\ebc8"});g.terminalUbuntu=new g("terminal-ubuntu",{fontCharacter:"\\ebc9"});g.terminalBash=new g("terminal-bash",{fontCharacter:"\\ebca"});g.arrowSwap=new g("arrow-swap",{fontCharacter:"\\ebcb"});g.copy=new g("copy",{fontCharacter:"\\ebcc"});g.personAdd=new g("person-add",{fontCharacter:"\\ebcd"});g.filterFilled=new g("filter-filled",{fontCharacter:"\\ebce"});g.wand=new g("wand",{fontCharacter:"\\ebcf"});g.debugLineByLine=new g("debug-line-by-line",{fontCharacter:"\\ebd0"});g.inspect=new g("inspect",{fontCharacter:"\\ebd1"});g.layers=new g("layers",{fontCharacter:"\\ebd2"});g.layersDot=new g("layers-dot",{fontCharacter:"\\ebd3"});g.layersActive=new g("layers-active",{fontCharacter:"\\ebd4"});g.compass=new g("compass",{fontCharacter:"\\ebd5"});g.compassDot=new g("compass-dot",{fontCharacter:"\\ebd6"});g.compassActive=new g("compass-active",{fontCharacter:"\\ebd7"});g.azure=new g("azure",{fontCharacter:"\\ebd8"});g.issueDraft=new g("issue-draft",{fontCharacter:"\\ebd9"});g.gitPullRequestClosed=new g("git-pull-request-closed",{fontCharacter:"\\ebda"});g.gitPullRequestDraft=new g("git-pull-request-draft",{fontCharacter:"\\ebdb"});g.debugAll=new g("debug-all",{fontCharacter:"\\ebdc"});g.debugCoverage=new g("debug-coverage",{fontCharacter:"\\ebdd"});g.runErrors=new g("run-errors",{fontCharacter:"\\ebde"});g.folderLibrary=new g("folder-library",{fontCharacter:"\\ebdf"});g.debugContinueSmall=new g("debug-continue-small",{fontCharacter:"\\ebe0"});g.beakerStop=new g("beaker-stop",{fontCharacter:"\\ebe1"});g.graphLine=new g("graph-line",{fontCharacter:"\\ebe2"});g.graphScatter=new g("graph-scatter",{fontCharacter:"\\ebe3"});g.pieChart=new g("pie-chart",{fontCharacter:"\\ebe4"});g.bracket=new g("bracket",g.json.definition);g.bracketDot=new g("bracket-dot",{fontCharacter:"\\ebe5"});g.bracketError=new g("bracket-error",{fontCharacter:"\\ebe6"});g.lockSmall=new g("lock-small",{fontCharacter:"\\ebe7"});g.azureDevops=new g("azure-devops",{fontCharacter:"\\ebe8"});g.verifiedFilled=new g("verified-filled",{fontCharacter:"\\ebe9"});g.newLine=new g("newline",{fontCharacter:"\\ebea"});g.layout=new g("layout",{fontCharacter:"\\ebeb"});g.layoutActivitybarLeft=new g("layout-activitybar-left",{fontCharacter:"\\ebec"});g.layoutActivitybarRight=new g("layout-activitybar-right",{fontCharacter:"\\ebed"});g.layoutPanelLeft=new g("layout-panel-left",{fontCharacter:"\\ebee"});g.layoutPanelCenter=new g("layout-panel-center",{fontCharacter:"\\ebef"});g.layoutPanelJustify=new g("layout-panel-justify",{fontCharacter:"\\ebf0"});g.layoutPanelRight=new g("layout-panel-right",{fontCharacter:"\\ebf1"});g.layoutPanel=new g("layout-panel",{fontCharacter:"\\ebf2"});g.layoutSidebarLeft=new g("layout-sidebar-left",{fontCharacter:"\\ebf3"});g.layoutSidebarRight=new g("layout-sidebar-right",{fontCharacter:"\\ebf4"});g.layoutStatusbar=new g("layout-statusbar",{fontCharacter:"\\ebf5"});g.layoutMenubar=new g("layout-menubar",{fontCharacter:"\\ebf6"});g.layoutCentered=new g("layout-centered",{fontCharacter:"\\ebf7"});g.target=new g("target",{fontCharacter:"\\ebf8"});g.indent=new g("indent",{fontCharacter:"\\ebf9"});g.recordSmall=new g("record-small",{fontCharacter:"\\ebfa"});g.errorSmall=new g("error-small",{fontCharacter:"\\ebfb"});g.arrowCircleDown=new g("arrow-circle-down",{fontCharacter:"\\ebfc"});g.arrowCircleLeft=new g("arrow-circle-left",{fontCharacter:"\\ebfd"});g.arrowCircleRight=new g("arrow-circle-right",{fontCharacter:"\\ebfe"});g.arrowCircleUp=new g("arrow-circle-up",{fontCharacter:"\\ebff"});g.dialogError=new g("dialog-error",g.error.definition);g.dialogWarning=new g("dialog-warning",g.warning.definition);g.dialogInfo=new g("dialog-info",g.info.definition);g.dialogClose=new g("dialog-close",g.close.definition);g.treeItemExpanded=new g("tree-item-expanded",g.chevronDown.definition);g.treeFilterOnTypeOn=new g("tree-filter-on-type-on",g.listFilter.definition);g.treeFilterOnTypeOff=new g("tree-filter-on-type-off",g.listSelection.definition);g.treeFilterClear=new g("tree-filter-clear",g.close.definition);g.treeItemLoading=new g("tree-item-loading",g.loading.definition);g.menuSelection=new g("menu-selection",g.check.definition);g.menuSubmenu=new g("menu-submenu",g.chevronRight.definition);g.menuBarMore=new g("menubar-more",g.more.definition);g.scrollbarButtonLeft=new g("scrollbar-button-left",g.triangleLeft.definition);g.scrollbarButtonRight=new g("scrollbar-button-right",g.triangleRight.definition);g.scrollbarButtonUp=new g("scrollbar-button-up",g.triangleUp.definition);g.scrollbarButtonDown=new g("scrollbar-button-down",g.triangleDown.definition);g.toolBarMore=new g("toolbar-more",g.more.definition);g.quickInputBack=new g("quick-input-back",g.arrowLeft.definition);var ei;(function(s){s.iconNameSegment="[A-Za-z0-9]+",s.iconNameExpression="[A-Za-z0-9-]+",s.iconModifierExpression="~[A-Za-z]+",s.iconNameCharacter="[A-Za-z0-9~-]";const e=new RegExp(`^(${s.iconNameExpression})(${s.iconModifierExpression})?$`);function t(o){if(o instanceof g)return["codicon","codicon-"+o.id];const r=e.exec(o.id);if(!r)return t(g.error);let[,a,l]=r;const c=["codicon","codicon-"+a];return l&&c.push("codicon-modifier-"+l.substr(1)),c}s.asClassNameArray=t;function i(o){return t(o).join(" ")}s.asClassName=i;function n(o){return"."+t(o).join(".")}s.asCSSSelector=n})(ei||(ei={}));class pi{static getLanguageId(e){return(e&255)>>>0}static getTokenType(e){return(e&768)>>>8}static getFontStyle(e){return(e&15360)>>>10}static getForeground(e){return(e&8372224)>>>14}static getBackground(e){return(e&4286578688)>>>23}static getClassNameFromMetadata(e){const t=this.getForeground(e);let i="mtk"+t;const n=this.getFontStyle(e);return n&1&&(i+=" mtki"),n&2&&(i+=" mtkb"),n&4&&(i+=" mtku"),n&8&&(i+=" mtks"),i}static getInlineStyleFromMetadata(e,t){const i=this.getForeground(e),n=this.getFontStyle(e);let o=`color: ${t[i]};`;n&1&&(o+="font-style: italic;"),n&2&&(o+="font-weight: bold;");let r="";return n&4&&(r+=" underline"),n&8&&(r+=" line-through"),r&&(o+=`text-decoration:${r};`),o}static getPresentationFromMetadata(e){const t=this.getForeground(e),i=this.getFontStyle(e);return{foreground:t,italic:Boolean(i&1),bold:Boolean(i&2),underline:Boolean(i&4),strikethrough:Boolean(i&8)}}}class Ec{constructor(e,t,i){this._tokenBrand=void 0,this.offset=e,this.type=t,this.language=i}toString(){return"("+this.offset+", "+this.type+")"}}class Q1{constructor(e,t){this._tokenizationResultBrand=void 0,this.tokens=e,this.endState=t}}class wf{constructor(e,t){this._encodedTokenizationResultBrand=void 0,this.tokens=e,this.endState=t}}var Jb;(function(s){const e=new Map;e.set(0,g.symbolMethod),e.set(1,g.symbolFunction),e.set(2,g.symbolConstructor),e.set(3,g.symbolField),e.set(4,g.symbolVariable),e.set(5,g.symbolClass),e.set(6,g.symbolStruct),e.set(7,g.symbolInterface),e.set(8,g.symbolModule),e.set(9,g.symbolProperty),e.set(10,g.symbolEvent),e.set(11,g.symbolOperator),e.set(12,g.symbolUnit),e.set(13,g.symbolValue),e.set(15,g.symbolEnum),e.set(14,g.symbolConstant),e.set(15,g.symbolEnum),e.set(16,g.symbolEnumMember),e.set(17,g.symbolKeyword),e.set(27,g.symbolSnippet),e.set(18,g.symbolText),e.set(19,g.symbolColor),e.set(20,g.symbolFile),e.set(21,g.symbolReference),e.set(22,g.symbolCustomColor),e.set(23,g.symbolFolder),e.set(24,g.symbolTypeParameter),e.set(25,g.account),e.set(26,g.issues);function t(o){let r=e.get(o);return r||(console.info("No codicon found for CompletionItemKind "+o),r=g.symbolProperty),r}s.toIcon=t;const i=new Map;i.set("method",0),i.set("function",1),i.set("constructor",2),i.set("field",3),i.set("variable",4),i.set("class",5),i.set("struct",6),i.set("interface",7),i.set("module",8),i.set("property",9),i.set("event",10),i.set("operator",11),i.set("unit",12),i.set("value",13),i.set("constant",14),i.set("enum",15),i.set("enum-member",16),i.set("enumMember",16),i.set("keyword",17),i.set("snippet",27),i.set("text",18),i.set("color",19),i.set("file",20),i.set("reference",21),i.set("customcolor",22),i.set("folder",23),i.set("type-parameter",24),i.set("typeParameter",24),i.set("account",25),i.set("issue",26);function n(o,r){let a=i.get(o);return typeof a=="undefined"&&!r&&(a=9),a}s.fromString=n})(Jb||(Jb={}));var eC;(function(s){s[s.Automatic=0]="Automatic",s[s.Explicit=1]="Explicit"})(eC||(eC={}));var tC;(function(s){s[s.Invoke=1]="Invoke",s[s.TriggerCharacter=2]="TriggerCharacter",s[s.ContentChange=3]="ContentChange"})(tC||(tC={}));var iC;(function(s){s[s.Text=0]="Text",s[s.Read=1]="Read",s[s.Write=2]="Write"})(iC||(iC={}));var nC;(function(s){const e=new Map;e.set(0,g.symbolFile),e.set(1,g.symbolModule),e.set(2,g.symbolNamespace),e.set(3,g.symbolPackage),e.set(4,g.symbolClass),e.set(5,g.symbolMethod),e.set(6,g.symbolProperty),e.set(7,g.symbolField),e.set(8,g.symbolConstructor),e.set(9,g.symbolEnum),e.set(10,g.symbolInterface),e.set(11,g.symbolFunction),e.set(12,g.symbolVariable),e.set(13,g.symbolConstant),e.set(14,g.symbolString),e.set(15,g.symbolNumber),e.set(16,g.symbolBoolean),e.set(17,g.symbolArray),e.set(18,g.symbolObject),e.set(19,g.symbolKey),e.set(20,g.symbolNull),e.set(21,g.symbolEnumMember),e.set(22,g.symbolStruct),e.set(23,g.symbolEvent),e.set(24,g.symbolOperator),e.set(25,g.symbolTypeParameter);function t(i){let n=e.get(i);return n||(console.info("No codicon found for SymbolKind "+i),n=g.symbolProperty),n}s.toIcon=t})(nC||(nC={}));class br{constructor(e){this.value=e}}br.Comment=new br("comment");br.Imports=new br("imports");br.Region=new br("region");var sC;(function(s){function e(t){return!t||typeof t!="object"?!1:typeof t.id=="string"&&typeof t.title=="string"}s.is=e})(sC||(sC={}));var oC;(function(s){s[s.Type=1]="Type",s[s.Parameter=2]="Parameter"})(oC||(oC={}));const et=new OE;var np;(function(s){s[s.Unknown=0]="Unknown",s[s.Disabled=1]="Disabled",s[s.Enabled=2]="Enabled"})(np||(np={}));var sp;(function(s){s[s.KeepWhitespace=1]="KeepWhitespace",s[s.InsertAsSnippet=4]="InsertAsSnippet"})(sp||(sp={}));var op;(function(s){s[s.Method=0]="Method",s[s.Function=1]="Function",s[s.Constructor=2]="Constructor",s[s.Field=3]="Field",s[s.Variable=4]="Variable",s[s.Class=5]="Class",s[s.Struct=6]="Struct",s[s.Interface=7]="Interface",s[s.Module=8]="Module",s[s.Property=9]="Property",s[s.Event=10]="Event",s[s.Operator=11]="Operator",s[s.Unit=12]="Unit",s[s.Value=13]="Value",s[s.Constant=14]="Constant",s[s.Enum=15]="Enum",s[s.EnumMember=16]="EnumMember",s[s.Keyword=17]="Keyword",s[s.Text=18]="Text",s[s.Color=19]="Color",s[s.File=20]="File",s[s.Reference=21]="Reference",s[s.Customcolor=22]="Customcolor",s[s.Folder=23]="Folder",s[s.TypeParameter=24]="TypeParameter",s[s.User=25]="User",s[s.Issue=26]="Issue",s[s.Snippet=27]="Snippet"})(op||(op={}));var rp;(function(s){s[s.Deprecated=1]="Deprecated"})(rp||(rp={}));var ap;(function(s){s[s.Invoke=0]="Invoke",s[s.TriggerCharacter=1]="TriggerCharacter",s[s.TriggerForIncompleteCompletions=2]="TriggerForIncompleteCompletions"})(ap||(ap={}));var lp;(function(s){s[s.EXACT=0]="EXACT",s[s.ABOVE=1]="ABOVE",s[s.BELOW=2]="BELOW"})(lp||(lp={}));var cp;(function(s){s[s.NotSet=0]="NotSet",s[s.ContentFlush=1]="ContentFlush",s[s.RecoverFromMarkers=2]="RecoverFromMarkers",s[s.Explicit=3]="Explicit",s[s.Paste=4]="Paste",s[s.Undo=5]="Undo",s[s.Redo=6]="Redo"})(cp||(cp={}));var hp;(function(s){s[s.LF=1]="LF",s[s.CRLF=2]="CRLF"})(hp||(hp={}));var dp;(function(s){s[s.Text=0]="Text",s[s.Read=1]="Read",s[s.Write=2]="Write"})(dp||(dp={}));var up;(function(s){s[s.None=0]="None",s[s.Keep=1]="Keep",s[s.Brackets=2]="Brackets",s[s.Advanced=3]="Advanced",s[s.Full=4]="Full"})(up||(up={}));var fp;(function(s){s[s.acceptSuggestionOnCommitCharacter=0]="acceptSuggestionOnCommitCharacter",s[s.acceptSuggestionOnEnter=1]="acceptSuggestionOnEnter",s[s.accessibilitySupport=2]="accessibilitySupport",s[s.accessibilityPageSize=3]="accessibilityPageSize",s[s.ariaLabel=4]="ariaLabel",s[s.autoClosingBrackets=5]="autoClosingBrackets",s[s.autoClosingDelete=6]="autoClosingDelete",s[s.autoClosingOvertype=7]="autoClosingOvertype",s[s.autoClosingQuotes=8]="autoClosingQuotes",s[s.autoIndent=9]="autoIndent",s[s.automaticLayout=10]="automaticLayout",s[s.autoSurround=11]="autoSurround",s[s.bracketPairColorization=12]="bracketPairColorization",s[s.guides=13]="guides",s[s.codeLens=14]="codeLens",s[s.codeLensFontFamily=15]="codeLensFontFamily",s[s.codeLensFontSize=16]="codeLensFontSize",s[s.colorDecorators=17]="colorDecorators",s[s.columnSelection=18]="columnSelection",s[s.comments=19]="comments",s[s.contextmenu=20]="contextmenu",s[s.copyWithSyntaxHighlighting=21]="copyWithSyntaxHighlighting",s[s.cursorBlinking=22]="cursorBlinking",s[s.cursorSmoothCaretAnimation=23]="cursorSmoothCaretAnimation",s[s.cursorStyle=24]="cursorStyle",s[s.cursorSurroundingLines=25]="cursorSurroundingLines",s[s.cursorSurroundingLinesStyle=26]="cursorSurroundingLinesStyle",s[s.cursorWidth=27]="cursorWidth",s[s.disableLayerHinting=28]="disableLayerHinting",s[s.disableMonospaceOptimizations=29]="disableMonospaceOptimizations",s[s.domReadOnly=30]="domReadOnly",s[s.dragAndDrop=31]="dragAndDrop",s[s.emptySelectionClipboard=32]="emptySelectionClipboard",s[s.extraEditorClassName=33]="extraEditorClassName",s[s.fastScrollSensitivity=34]="fastScrollSensitivity",s[s.find=35]="find",s[s.fixedOverflowWidgets=36]="fixedOverflowWidgets",s[s.folding=37]="folding",s[s.foldingStrategy=38]="foldingStrategy",s[s.foldingHighlight=39]="foldingHighlight",s[s.foldingImportsByDefault=40]="foldingImportsByDefault",s[s.foldingMaximumRegions=41]="foldingMaximumRegions",s[s.unfoldOnClickAfterEndOfLine=42]="unfoldOnClickAfterEndOfLine",s[s.fontFamily=43]="fontFamily",s[s.fontInfo=44]="fontInfo",s[s.fontLigatures=45]="fontLigatures",s[s.fontSize=46]="fontSize",s[s.fontWeight=47]="fontWeight",s[s.formatOnPaste=48]="formatOnPaste",s[s.formatOnType=49]="formatOnType",s[s.glyphMargin=50]="glyphMargin",s[s.gotoLocation=51]="gotoLocation",s[s.hideCursorInOverviewRuler=52]="hideCursorInOverviewRuler",s[s.hover=53]="hover",s[s.inDiffEditor=54]="inDiffEditor",s[s.inlineSuggest=55]="inlineSuggest",s[s.letterSpacing=56]="letterSpacing",s[s.lightbulb=57]="lightbulb",s[s.lineDecorationsWidth=58]="lineDecorationsWidth",s[s.lineHeight=59]="lineHeight",s[s.lineNumbers=60]="lineNumbers",s[s.lineNumbersMinChars=61]="lineNumbersMinChars",s[s.linkedEditing=62]="linkedEditing",s[s.links=63]="links",s[s.matchBrackets=64]="matchBrackets",s[s.minimap=65]="minimap",s[s.mouseStyle=66]="mouseStyle",s[s.mouseWheelScrollSensitivity=67]="mouseWheelScrollSensitivity",s[s.mouseWheelZoom=68]="mouseWheelZoom",s[s.multiCursorMergeOverlapping=69]="multiCursorMergeOverlapping",s[s.multiCursorModifier=70]="multiCursorModifier",s[s.multiCursorPaste=71]="multiCursorPaste",s[s.occurrencesHighlight=72]="occurrencesHighlight",s[s.overviewRulerBorder=73]="overviewRulerBorder",s[s.overviewRulerLanes=74]="overviewRulerLanes",s[s.padding=75]="padding",s[s.parameterHints=76]="parameterHints",s[s.peekWidgetDefaultFocus=77]="peekWidgetDefaultFocus",s[s.definitionLinkOpensInPeek=78]="definitionLinkOpensInPeek",s[s.quickSuggestions=79]="quickSuggestions",s[s.quickSuggestionsDelay=80]="quickSuggestionsDelay",s[s.readOnly=81]="readOnly",s[s.renameOnType=82]="renameOnType",s[s.renderControlCharacters=83]="renderControlCharacters",s[s.renderFinalNewline=84]="renderFinalNewline",s[s.renderLineHighlight=85]="renderLineHighlight",s[s.renderLineHighlightOnlyWhenFocus=86]="renderLineHighlightOnlyWhenFocus",s[s.renderValidationDecorations=87]="renderValidationDecorations",s[s.renderWhitespace=88]="renderWhitespace",s[s.revealHorizontalRightPadding=89]="revealHorizontalRightPadding",s[s.roundedSelection=90]="roundedSelection",s[s.rulers=91]="rulers",s[s.scrollbar=92]="scrollbar",s[s.scrollBeyondLastColumn=93]="scrollBeyondLastColumn",s[s.scrollBeyondLastLine=94]="scrollBeyondLastLine",s[s.scrollPredominantAxis=95]="scrollPredominantAxis",s[s.selectionClipboard=96]="selectionClipboard",s[s.selectionHighlight=97]="selectionHighlight",s[s.selectOnLineNumbers=98]="selectOnLineNumbers",s[s.showFoldingControls=99]="showFoldingControls",s[s.showUnused=100]="showUnused",s[s.snippetSuggestions=101]="snippetSuggestions",s[s.smartSelect=102]="smartSelect",s[s.smoothScrolling=103]="smoothScrolling",s[s.stickyTabStops=104]="stickyTabStops",s[s.stopRenderingLineAfter=105]="stopRenderingLineAfter",s[s.suggest=106]="suggest",s[s.suggestFontSize=107]="suggestFontSize",s[s.suggestLineHeight=108]="suggestLineHeight",s[s.suggestOnTriggerCharacters=109]="suggestOnTriggerCharacters",s[s.suggestSelection=110]="suggestSelection",s[s.tabCompletion=111]="tabCompletion",s[s.tabIndex=112]="tabIndex",s[s.unicodeHighlighting=113]="unicodeHighlighting",s[s.unusualLineTerminators=114]="unusualLineTerminators",s[s.useShadowDOM=115]="useShadowDOM",s[s.useTabStops=116]="useTabStops",s[s.wordSeparators=117]="wordSeparators",s[s.wordWrap=118]="wordWrap",s[s.wordWrapBreakAfterCharacters=119]="wordWrapBreakAfterCharacters",s[s.wordWrapBreakBeforeCharacters=120]="wordWrapBreakBeforeCharacters",s[s.wordWrapColumn=121]="wordWrapColumn",s[s.wordWrapOverride1=122]="wordWrapOverride1",s[s.wordWrapOverride2=123]="wordWrapOverride2",s[s.wrappingIndent=124]="wrappingIndent",s[s.wrappingStrategy=125]="wrappingStrategy",s[s.showDeprecated=126]="showDeprecated",s[s.inlayHints=127]="inlayHints",s[s.editorClassName=128]="editorClassName",s[s.pixelRatio=129]="pixelRatio",s[s.tabFocusMode=130]="tabFocusMode",s[s.layoutInfo=131]="layoutInfo",s[s.wrappingInfo=132]="wrappingInfo"})(fp||(fp={}));var gp;(function(s){s[s.TextDefined=0]="TextDefined",s[s.LF=1]="LF",s[s.CRLF=2]="CRLF"})(gp||(gp={}));var mp;(function(s){s[s.LF=0]="LF",s[s.CRLF=1]="CRLF"})(mp||(mp={}));var pp;(function(s){s[s.None=0]="None",s[s.Indent=1]="Indent",s[s.IndentOutdent=2]="IndentOutdent",s[s.Outdent=3]="Outdent"})(pp||(pp={}));var _p;(function(s){s[s.Both=0]="Both",s[s.Right=1]="Right",s[s.Left=2]="Left",s[s.None=3]="None"})(_p||(_p={}));var bp;(function(s){s[s.Type=1]="Type",s[s.Parameter=2]="Parameter"})(bp||(bp={}));var Cp;(function(s){s[s.Automatic=0]="Automatic",s[s.Explicit=1]="Explicit"})(Cp||(Cp={}));var wp;(function(s){s[s.DependsOnKbLayout=-1]="DependsOnKbLayout",s[s.Unknown=0]="Unknown",s[s.Backspace=1]="Backspace",s[s.Tab=2]="Tab",s[s.Enter=3]="Enter",s[s.Shift=4]="Shift",s[s.Ctrl=5]="Ctrl",s[s.Alt=6]="Alt",s[s.PauseBreak=7]="PauseBreak",s[s.CapsLock=8]="CapsLock",s[s.Escape=9]="Escape",s[s.Space=10]="Space",s[s.PageUp=11]="PageUp",s[s.PageDown=12]="PageDown",s[s.End=13]="End",s[s.Home=14]="Home",s[s.LeftArrow=15]="LeftArrow",s[s.UpArrow=16]="UpArrow",s[s.RightArrow=17]="RightArrow",s[s.DownArrow=18]="DownArrow",s[s.Insert=19]="Insert",s[s.Delete=20]="Delete",s[s.Digit0=21]="Digit0",s[s.Digit1=22]="Digit1",s[s.Digit2=23]="Digit2",s[s.Digit3=24]="Digit3",s[s.Digit4=25]="Digit4",s[s.Digit5=26]="Digit5",s[s.Digit6=27]="Digit6",s[s.Digit7=28]="Digit7",s[s.Digit8=29]="Digit8",s[s.Digit9=30]="Digit9",s[s.KeyA=31]="KeyA",s[s.KeyB=32]="KeyB",s[s.KeyC=33]="KeyC",s[s.KeyD=34]="KeyD",s[s.KeyE=35]="KeyE",s[s.KeyF=36]="KeyF",s[s.KeyG=37]="KeyG",s[s.KeyH=38]="KeyH",s[s.KeyI=39]="KeyI",s[s.KeyJ=40]="KeyJ",s[s.KeyK=41]="KeyK",s[s.KeyL=42]="KeyL",s[s.KeyM=43]="KeyM",s[s.KeyN=44]="KeyN",s[s.KeyO=45]="KeyO",s[s.KeyP=46]="KeyP",s[s.KeyQ=47]="KeyQ",s[s.KeyR=48]="KeyR",s[s.KeyS=49]="KeyS",s[s.KeyT=50]="KeyT",s[s.KeyU=51]="KeyU",s[s.KeyV=52]="KeyV",s[s.KeyW=53]="KeyW",s[s.KeyX=54]="KeyX",s[s.KeyY=55]="KeyY",s[s.KeyZ=56]="KeyZ",s[s.Meta=57]="Meta",s[s.ContextMenu=58]="ContextMenu",s[s.F1=59]="F1",s[s.F2=60]="F2",s[s.F3=61]="F3",s[s.F4=62]="F4",s[s.F5=63]="F5",s[s.F6=64]="F6",s[s.F7=65]="F7",s[s.F8=66]="F8",s[s.F9=67]="F9",s[s.F10=68]="F10",s[s.F11=69]="F11",s[s.F12=70]="F12",s[s.F13=71]="F13",s[s.F14=72]="F14",s[s.F15=73]="F15",s[s.F16=74]="F16",s[s.F17=75]="F17",s[s.F18=76]="F18",s[s.F19=77]="F19",s[s.NumLock=78]="NumLock",s[s.ScrollLock=79]="ScrollLock",s[s.Semicolon=80]="Semicolon",s[s.Equal=81]="Equal",s[s.Comma=82]="Comma",s[s.Minus=83]="Minus",s[s.Period=84]="Period",s[s.Slash=85]="Slash",s[s.Backquote=86]="Backquote",s[s.BracketLeft=87]="BracketLeft",s[s.Backslash=88]="Backslash",s[s.BracketRight=89]="BracketRight",s[s.Quote=90]="Quote",s[s.OEM_8=91]="OEM_8",s[s.IntlBackslash=92]="IntlBackslash",s[s.Numpad0=93]="Numpad0",s[s.Numpad1=94]="Numpad1",s[s.Numpad2=95]="Numpad2",s[s.Numpad3=96]="Numpad3",s[s.Numpad4=97]="Numpad4",s[s.Numpad5=98]="Numpad5",s[s.Numpad6=99]="Numpad6",s[s.Numpad7=100]="Numpad7",s[s.Numpad8=101]="Numpad8",s[s.Numpad9=102]="Numpad9",s[s.NumpadMultiply=103]="NumpadMultiply",s[s.NumpadAdd=104]="NumpadAdd",s[s.NUMPAD_SEPARATOR=105]="NUMPAD_SEPARATOR",s[s.NumpadSubtract=106]="NumpadSubtract",s[s.NumpadDecimal=107]="NumpadDecimal",s[s.NumpadDivide=108]="NumpadDivide",s[s.KEY_IN_COMPOSITION=109]="KEY_IN_COMPOSITION",s[s.ABNT_C1=110]="ABNT_C1",s[s.ABNT_C2=111]="ABNT_C2",s[s.AudioVolumeMute=112]="AudioVolumeMute",s[s.AudioVolumeUp=113]="AudioVolumeUp",s[s.AudioVolumeDown=114]="AudioVolumeDown",s[s.BrowserSearch=115]="BrowserSearch",s[s.BrowserHome=116]="BrowserHome",s[s.BrowserBack=117]="BrowserBack",s[s.BrowserForward=118]="BrowserForward",s[s.MediaTrackNext=119]="MediaTrackNext",s[s.MediaTrackPrevious=120]="MediaTrackPrevious",s[s.MediaStop=121]="MediaStop",s[s.MediaPlayPause=122]="MediaPlayPause",s[s.LaunchMediaPlayer=123]="LaunchMediaPlayer",s[s.LaunchMail=124]="LaunchMail",s[s.LaunchApp2=125]="LaunchApp2",s[s.Clear=126]="Clear",s[s.MAX_VALUE=127]="MAX_VALUE"})(wp||(wp={}));var vp;(function(s){s[s.Hint=1]="Hint",s[s.Info=2]="Info",s[s.Warning=4]="Warning",s[s.Error=8]="Error"})(vp||(vp={}));var Sp;(function(s){s[s.Unnecessary=1]="Unnecessary",s[s.Deprecated=2]="Deprecated"})(Sp||(Sp={}));var yp;(function(s){s[s.Inline=1]="Inline",s[s.Gutter=2]="Gutter"})(yp||(yp={}));var Lp;(function(s){s[s.UNKNOWN=0]="UNKNOWN",s[s.TEXTAREA=1]="TEXTAREA",s[s.GUTTER_GLYPH_MARGIN=2]="GUTTER_GLYPH_MARGIN",s[s.GUTTER_LINE_NUMBERS=3]="GUTTER_LINE_NUMBERS",s[s.GUTTER_LINE_DECORATIONS=4]="GUTTER_LINE_DECORATIONS",s[s.GUTTER_VIEW_ZONE=5]="GUTTER_VIEW_ZONE",s[s.CONTENT_TEXT=6]="CONTENT_TEXT",s[s.CONTENT_EMPTY=7]="CONTENT_EMPTY",s[s.CONTENT_VIEW_ZONE=8]="CONTENT_VIEW_ZONE",s[s.CONTENT_WIDGET=9]="CONTENT_WIDGET",s[s.OVERVIEW_RULER=10]="OVERVIEW_RULER",s[s.SCROLLBAR=11]="SCROLLBAR",s[s.OVERLAY_WIDGET=12]="OVERLAY_WIDGET",s[s.OUTSIDE_EDITOR=13]="OUTSIDE_EDITOR"})(Lp||(Lp={}));var kp;(function(s){s[s.TOP_RIGHT_CORNER=0]="TOP_RIGHT_CORNER",s[s.BOTTOM_RIGHT_CORNER=1]="BOTTOM_RIGHT_CORNER",s[s.TOP_CENTER=2]="TOP_CENTER"})(kp||(kp={}));var xp;(function(s){s[s.Left=1]="Left",s[s.Center=2]="Center",s[s.Right=4]="Right",s[s.Full=7]="Full"})(xp||(xp={}));var Ip;(function(s){s[s.Left=0]="Left",s[s.Right=1]="Right",s[s.None=2]="None"})(Ip||(Ip={}));var Ep;(function(s){s[s.Off=0]="Off",s[s.On=1]="On",s[s.Relative=2]="Relative",s[s.Interval=3]="Interval",s[s.Custom=4]="Custom"})(Ep||(Ep={}));var Dp;(function(s){s[s.None=0]="None",s[s.Text=1]="Text",s[s.Blocks=2]="Blocks"})(Dp||(Dp={}));var Np;(function(s){s[s.Smooth=0]="Smooth",s[s.Immediate=1]="Immediate"})(Np||(Np={}));var Tp;(function(s){s[s.Auto=1]="Auto",s[s.Hidden=2]="Hidden",s[s.Visible=3]="Visible"})(Tp||(Tp={}));var Mp;(function(s){s[s.LTR=0]="LTR",s[s.RTL=1]="RTL"})(Mp||(Mp={}));var Rp;(function(s){s[s.Invoke=1]="Invoke",s[s.TriggerCharacter=2]="TriggerCharacter",s[s.ContentChange=3]="ContentChange"})(Rp||(Rp={}));var Ap;(function(s){s[s.File=0]="File",s[s.Module=1]="Module",s[s.Namespace=2]="Namespace",s[s.Package=3]="Package",s[s.Class=4]="Class",s[s.Method=5]="Method",s[s.Property=6]="Property",s[s.Field=7]="Field",s[s.Constructor=8]="Constructor",s[s.Enum=9]="Enum",s[s.Interface=10]="Interface",s[s.Function=11]="Function",s[s.Variable=12]="Variable",s[s.Constant=13]="Constant",s[s.String=14]="String",s[s.Number=15]="Number",s[s.Boolean=16]="Boolean",s[s.Array=17]="Array",s[s.Object=18]="Object",s[s.Key=19]="Key",s[s.Null=20]="Null",s[s.EnumMember=21]="EnumMember",s[s.Struct=22]="Struct",s[s.Event=23]="Event",s[s.Operator=24]="Operator",s[s.TypeParameter=25]="TypeParameter"})(Ap||(Ap={}));var Op;(function(s){s[s.Deprecated=1]="Deprecated"})(Op||(Op={}));var Pp;(function(s){s[s.Hidden=0]="Hidden",s[s.Blink=1]="Blink",s[s.Smooth=2]="Smooth",s[s.Phase=3]="Phase",s[s.Expand=4]="Expand",s[s.Solid=5]="Solid"})(Pp||(Pp={}));var Fp;(function(s){s[s.Line=1]="Line",s[s.Block=2]="Block",s[s.Underline=3]="Underline",s[s.LineThin=4]="LineThin",s[s.BlockOutline=5]="BlockOutline",s[s.UnderlineThin=6]="UnderlineThin"})(Fp||(Fp={}));var Bp;(function(s){s[s.AlwaysGrowsWhenTypingAtEdges=0]="AlwaysGrowsWhenTypingAtEdges",s[s.NeverGrowsWhenTypingAtEdges=1]="NeverGrowsWhenTypingAtEdges",s[s.GrowsOnlyWhenTypingBefore=2]="GrowsOnlyWhenTypingBefore",s[s.GrowsOnlyWhenTypingAfter=3]="GrowsOnlyWhenTypingAfter"})(Bp||(Bp={}));var Vp;(function(s){s[s.None=0]="None",s[s.Same=1]="Same",s[s.Indent=2]="Indent",s[s.DeepIndent=3]="DeepIndent"})(Vp||(Vp={}));class bh{static chord(e,t){return _E(e,t)}}bh.CtrlCmd=2048;bh.Shift=1024;bh.Alt=512;bh.WinCtrl=256;function by(){return{editor:void 0,languages:void 0,CancellationTokenSource:ml,Emitter:M,KeyCode:wp,KeyMod:bh,Position:A,Range:D,Selection:ce,SelectionDirection:Mp,MarkerSeverity:vp,MarkerTag:Sp,Uri:we,Token:Ec}}class BE{constructor(e){this.computeFn=e,this.lastCache=void 0,this.lastArgKey=void 0}get(e){const t=JSON.stringify(e);return this.lastArgKey!==t&&(this.lastArgKey=t,this.lastCache=this.computeFn(e)),this.lastCache}}class Cy{constructor(e){this.executor=e,this._didRun=!1}getValue(){if(!this._didRun)try{this._value=this.executor()}catch(e){this._error=e}finally{this._didRun=!0}if(this._error)throw this._error;return this._value}get rawValue(){return this._value}}var wy;function VE(s){return!s||typeof s!="string"?!0:s.trim().length===0}const WE=/{(\d+)}/g;function cu(s,...e){return e.length===0?s:s.replace(WE,function(t,i){const n=parseInt(i,10);return isNaN(n)||n<0||n>=e.length?t:e[n]})}function HE(s){return s.replace(/[<>&]/g,function(e){switch(e){case"<":return"<";case">":return">";case"&":return"&";default:return e}})}function Qn(s){return s.replace(/[\\\{\}\*\+\?\|\^\$\.\[\]\(\)]/g,"\\$&")}function vy(s,e){if(!s||!e)return s;const t=e.length;if(t===0||s.length===0)return s;let i=0;for(;s.indexOf(e,i)===i;)i=i+t;return s.substring(i)}function zE(s,e){if(!s||!e)return s;const t=e.length,i=s.length;if(t===0||i===0)return s;let n=i,o=-1;for(;o=s.lastIndexOf(e,n-1),!(o===-1||o+t!==n);){if(o===0)return"";n=o}return s.substring(0,n)}function UE(s){return s.replace(/[\-\\\{\}\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&").replace(/[\*]/g,".*")}function Sy(s,e,t={}){if(!s)throw new Error("Cannot create regex from empty string");e||(s=Qn(s)),t.wholeWord&&(/\B/.test(s.charAt(0))||(s="\\b"+s),/\B/.test(s.charAt(s.length-1))||(s=s+"\\b"));let i="";return t.global&&(i+="g"),t.matchCase||(i+="i"),t.multiline&&(i+="m"),t.unicode&&(i+="u"),new RegExp(s,i)}function $E(s){return s.source==="^"||s.source==="^$"||s.source==="$"||s.source==="^\\s*$"?!1:!!(s.exec("")&&s.lastIndex===0)}function Lg(s){return(s.global?"g":"")+(s.ignoreCase?"i":"")+(s.multiline?"m":"")+(s.unicode?"u":"")}function Ch(s){return s.split(/\r\n|\r|\n/)}function Ci(s){for(let e=0,t=s.length;e=0;t--){const i=s.charCodeAt(t);if(i!==32&&i!==9)return t}return-1}function Wp(s,e){return se?1:0}function J1(s,e,t=0,i=s.length,n=0,o=e.length){for(;tc)return 1}const r=i-t,a=o-n;return ra?1:0}function rC(s,e){return wh(s,e,0,s.length,0,e.length)}function wh(s,e,t=0,i=s.length,n=0,o=e.length){for(;t=128||c>=128)return J1(s.toLowerCase(),e.toLowerCase(),t,i,n,o);ra(l)&&(l-=32),ra(c)&&(c-=32);const h=l-c;if(h!==0)return h}const r=i-t,a=o-n;return ra?1:0}function ra(s){return s>=97&&s<=122}function Xs(s){return s>=65&&s<=90}function aa(s,e){return s.length===e.length&&wh(s,e)===0}function e0(s,e){const t=e.length;return e.length>s.length?!1:wh(s,e,0,t)===0}function aC(s,e){let t,i=Math.min(s.length,e.length);for(t=0;t1){const i=s.charCodeAt(e-2);if(gt(i))return t0(i,t)}return t}class i0{constructor(e,t=0){this._str=e,this._len=e.length,this._offset=t}get offset(){return this._offset}setOffset(e){this._offset=e}prevCodePoint(){const e=jE(this._str,this._offset);return this._offset-=e>=65536?2:1,e}nextCodePoint(){const e=hu(this._str,this._len,this._offset);return this._offset+=e>=65536?2:1,e}eol(){return this._offset>=this._len}}class du{constructor(e,t=0){this._iterator=new i0(e,t)}get offset(){return this._iterator.offset}nextGraphemeLength(){const e=so.getInstance(),t=this._iterator,i=t.offset;let n=e.getGraphemeBreakType(t.nextCodePoint());for(;!t.eol();){const o=t.offset,r=e.getGraphemeBreakType(t.nextCodePoint());if(cC(n,r)){t.setOffset(o);break}n=r}return t.offset-i}prevGraphemeLength(){const e=so.getInstance(),t=this._iterator,i=t.offset;let n=e.getGraphemeBreakType(t.prevCodePoint());for(;t.offset>0;){const o=t.offset,r=e.getGraphemeBreakType(t.prevCodePoint());if(cC(r,n)){t.setOffset(o);break}n=r}return i-t.offset}eol(){return this._iterator.eol()}}function n0(s,e){return new du(s,e).nextGraphemeLength()}function yy(s,e){return new du(s,e).prevGraphemeLength()}function KE(s,e){e>0&&Ua(s.charCodeAt(e))&&e--;const t=e+n0(s,e);return[t-yy(s,t),t]}const qE=/(?:[\u05BE\u05C0\u05C3\u05C6\u05D0-\u05F4\u0608\u060B\u060D\u061B-\u064A\u066D-\u066F\u0671-\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u0710\u0712-\u072F\u074D-\u07A5\u07B1-\u07EA\u07F4\u07F5\u07FA\u07FE-\u0815\u081A\u0824\u0828\u0830-\u0858\u085E-\u088E\u08A0-\u08C9\u200F\uFB1D\uFB1F-\uFB28\uFB2A-\uFD3D\uFD50-\uFDC7\uFDF0-\uFDFC\uFE70-\uFEFC]|\uD802[\uDC00-\uDD1B\uDD20-\uDE00\uDE10-\uDE35\uDE40-\uDEE4\uDEEB-\uDF35\uDF40-\uDFFF]|\uD803[\uDC00-\uDD23\uDE80-\uDEA9\uDEAD-\uDF45\uDF51-\uDF81\uDF86-\uDFF6]|\uD83A[\uDC00-\uDCCF\uDD00-\uDD43\uDD4B-\uDFFF]|\uD83B[\uDC00-\uDEBB])/;function s0(s){return qE.test(s)}const GE=/^[\t\n\r\x20-\x7E]*$/;function o0(s){return GE.test(s)}const Ly=/[\u2028\u2029]/;function ky(s){return Ly.test(s)}function vo(s){return s>=11904&&s<=55215||s>=63744&&s<=64255||s>=65281&&s<=65374}function r0(s){return s>=127462&&s<=127487||s===8986||s===8987||s===9200||s===9203||s>=9728&&s<=10175||s===11088||s===11093||s>=127744&&s<=128591||s>=128640&&s<=128764||s>=128992&&s<=129008||s>=129280&&s<=129535||s>=129648&&s<=129782}const ZE=String.fromCharCode(65279);function a0(s){return!!(s&&s.length>0&&s.charCodeAt(0)===65279)}function YE(s,e=!1){return s?(e&&(s=s.replace(/\\./g,"")),s.toLowerCase()!==s):!1}function xy(s){return s=s%(2*26),s<26?String.fromCharCode(97+s):String.fromCharCode(65+s-26)}function cC(s,e){return s===0?e!==5&&e!==7:s===2&&e===3?!1:s===4||s===2||s===3||e===4||e===2||e===3?!0:!(s===8&&(e===8||e===9||e===11||e===12)||(s===11||s===9)&&(e===9||e===10)||(s===12||s===10)&&e===10||e===5||e===13||e===7||s===1||s===13&&e===14||s===6&&e===6)}class so{constructor(){this._data=XE()}static getInstance(){return so._INSTANCE||(so._INSTANCE=new so),so._INSTANCE}getGraphemeBreakType(e){if(e<32)return e===10?3:e===13?2:4;if(e<127)return 0;const t=this._data,i=t.length/3;let n=1;for(;n<=i;)if(et[3*n+1])n=2*n+1;else return t[3*n+2];return 0}}so._INSTANCE=null;function XE(){return JSON.parse("[0,0,0,51229,51255,12,44061,44087,12,127462,127487,6,7083,7085,5,47645,47671,12,54813,54839,12,128678,128678,14,3270,3270,5,9919,9923,14,45853,45879,12,49437,49463,12,53021,53047,12,71216,71218,7,128398,128399,14,129360,129374,14,2519,2519,5,4448,4519,9,9742,9742,14,12336,12336,14,44957,44983,12,46749,46775,12,48541,48567,12,50333,50359,12,52125,52151,12,53917,53943,12,69888,69890,5,73018,73018,5,127990,127990,14,128558,128559,14,128759,128760,14,129653,129655,14,2027,2035,5,2891,2892,7,3761,3761,5,6683,6683,5,8293,8293,4,9825,9826,14,9999,9999,14,43452,43453,5,44509,44535,12,45405,45431,12,46301,46327,12,47197,47223,12,48093,48119,12,48989,49015,12,49885,49911,12,50781,50807,12,51677,51703,12,52573,52599,12,53469,53495,12,54365,54391,12,65279,65279,4,70471,70472,7,72145,72147,7,119173,119179,5,127799,127818,14,128240,128244,14,128512,128512,14,128652,128652,14,128721,128722,14,129292,129292,14,129445,129450,14,129734,129743,14,1476,1477,5,2366,2368,7,2750,2752,7,3076,3076,5,3415,3415,5,4141,4144,5,6109,6109,5,6964,6964,5,7394,7400,5,9197,9198,14,9770,9770,14,9877,9877,14,9968,9969,14,10084,10084,14,43052,43052,5,43713,43713,5,44285,44311,12,44733,44759,12,45181,45207,12,45629,45655,12,46077,46103,12,46525,46551,12,46973,46999,12,47421,47447,12,47869,47895,12,48317,48343,12,48765,48791,12,49213,49239,12,49661,49687,12,50109,50135,12,50557,50583,12,51005,51031,12,51453,51479,12,51901,51927,12,52349,52375,12,52797,52823,12,53245,53271,12,53693,53719,12,54141,54167,12,54589,54615,12,55037,55063,12,69506,69509,5,70191,70193,5,70841,70841,7,71463,71467,5,72330,72342,5,94031,94031,5,123628,123631,5,127763,127765,14,127941,127941,14,128043,128062,14,128302,128317,14,128465,128467,14,128539,128539,14,128640,128640,14,128662,128662,14,128703,128703,14,128745,128745,14,129004,129007,14,129329,129330,14,129402,129402,14,129483,129483,14,129686,129704,14,130048,131069,14,173,173,4,1757,1757,1,2200,2207,5,2434,2435,7,2631,2632,5,2817,2817,5,3008,3008,5,3201,3201,5,3387,3388,5,3542,3542,5,3902,3903,7,4190,4192,5,6002,6003,5,6439,6440,5,6765,6770,7,7019,7027,5,7154,7155,7,8205,8205,13,8505,8505,14,9654,9654,14,9757,9757,14,9792,9792,14,9852,9853,14,9890,9894,14,9937,9937,14,9981,9981,14,10035,10036,14,11035,11036,14,42654,42655,5,43346,43347,7,43587,43587,5,44006,44007,7,44173,44199,12,44397,44423,12,44621,44647,12,44845,44871,12,45069,45095,12,45293,45319,12,45517,45543,12,45741,45767,12,45965,45991,12,46189,46215,12,46413,46439,12,46637,46663,12,46861,46887,12,47085,47111,12,47309,47335,12,47533,47559,12,47757,47783,12,47981,48007,12,48205,48231,12,48429,48455,12,48653,48679,12,48877,48903,12,49101,49127,12,49325,49351,12,49549,49575,12,49773,49799,12,49997,50023,12,50221,50247,12,50445,50471,12,50669,50695,12,50893,50919,12,51117,51143,12,51341,51367,12,51565,51591,12,51789,51815,12,52013,52039,12,52237,52263,12,52461,52487,12,52685,52711,12,52909,52935,12,53133,53159,12,53357,53383,12,53581,53607,12,53805,53831,12,54029,54055,12,54253,54279,12,54477,54503,12,54701,54727,12,54925,54951,12,55149,55175,12,68101,68102,5,69762,69762,7,70067,70069,7,70371,70378,5,70720,70721,7,71087,71087,5,71341,71341,5,71995,71996,5,72249,72249,7,72850,72871,5,73109,73109,5,118576,118598,5,121505,121519,5,127245,127247,14,127568,127569,14,127777,127777,14,127872,127891,14,127956,127967,14,128015,128016,14,128110,128172,14,128259,128259,14,128367,128368,14,128424,128424,14,128488,128488,14,128530,128532,14,128550,128551,14,128566,128566,14,128647,128647,14,128656,128656,14,128667,128673,14,128691,128693,14,128715,128715,14,128728,128732,14,128752,128752,14,128765,128767,14,129096,129103,14,129311,129311,14,129344,129349,14,129394,129394,14,129413,129425,14,129466,129471,14,129511,129535,14,129664,129666,14,129719,129722,14,129760,129767,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2307,2307,7,2382,2383,7,2497,2500,5,2563,2563,7,2677,2677,5,2763,2764,7,2879,2879,5,2914,2915,5,3021,3021,5,3142,3144,5,3263,3263,5,3285,3286,5,3398,3400,7,3530,3530,5,3633,3633,5,3864,3865,5,3974,3975,5,4155,4156,7,4229,4230,5,5909,5909,7,6078,6085,7,6277,6278,5,6451,6456,7,6744,6750,5,6846,6846,5,6972,6972,5,7074,7077,5,7146,7148,7,7222,7223,5,7416,7417,5,8234,8238,4,8417,8417,5,9000,9000,14,9203,9203,14,9730,9731,14,9748,9749,14,9762,9763,14,9776,9783,14,9800,9811,14,9831,9831,14,9872,9873,14,9882,9882,14,9900,9903,14,9929,9933,14,9941,9960,14,9974,9974,14,9989,9989,14,10006,10006,14,10062,10062,14,10160,10160,14,11647,11647,5,12953,12953,14,43019,43019,5,43232,43249,5,43443,43443,5,43567,43568,7,43696,43696,5,43765,43765,7,44013,44013,5,44117,44143,12,44229,44255,12,44341,44367,12,44453,44479,12,44565,44591,12,44677,44703,12,44789,44815,12,44901,44927,12,45013,45039,12,45125,45151,12,45237,45263,12,45349,45375,12,45461,45487,12,45573,45599,12,45685,45711,12,45797,45823,12,45909,45935,12,46021,46047,12,46133,46159,12,46245,46271,12,46357,46383,12,46469,46495,12,46581,46607,12,46693,46719,12,46805,46831,12,46917,46943,12,47029,47055,12,47141,47167,12,47253,47279,12,47365,47391,12,47477,47503,12,47589,47615,12,47701,47727,12,47813,47839,12,47925,47951,12,48037,48063,12,48149,48175,12,48261,48287,12,48373,48399,12,48485,48511,12,48597,48623,12,48709,48735,12,48821,48847,12,48933,48959,12,49045,49071,12,49157,49183,12,49269,49295,12,49381,49407,12,49493,49519,12,49605,49631,12,49717,49743,12,49829,49855,12,49941,49967,12,50053,50079,12,50165,50191,12,50277,50303,12,50389,50415,12,50501,50527,12,50613,50639,12,50725,50751,12,50837,50863,12,50949,50975,12,51061,51087,12,51173,51199,12,51285,51311,12,51397,51423,12,51509,51535,12,51621,51647,12,51733,51759,12,51845,51871,12,51957,51983,12,52069,52095,12,52181,52207,12,52293,52319,12,52405,52431,12,52517,52543,12,52629,52655,12,52741,52767,12,52853,52879,12,52965,52991,12,53077,53103,12,53189,53215,12,53301,53327,12,53413,53439,12,53525,53551,12,53637,53663,12,53749,53775,12,53861,53887,12,53973,53999,12,54085,54111,12,54197,54223,12,54309,54335,12,54421,54447,12,54533,54559,12,54645,54671,12,54757,54783,12,54869,54895,12,54981,55007,12,55093,55119,12,55243,55291,10,66045,66045,5,68325,68326,5,69688,69702,5,69817,69818,5,69957,69958,7,70089,70092,5,70198,70199,5,70462,70462,5,70502,70508,5,70750,70750,5,70846,70846,7,71100,71101,5,71230,71230,7,71351,71351,5,71737,71738,5,72000,72000,7,72160,72160,5,72273,72278,5,72752,72758,5,72882,72883,5,73031,73031,5,73461,73462,7,94192,94193,7,119149,119149,7,121403,121452,5,122915,122916,5,126980,126980,14,127358,127359,14,127535,127535,14,127759,127759,14,127771,127771,14,127792,127793,14,127825,127867,14,127897,127899,14,127945,127945,14,127985,127986,14,128000,128007,14,128021,128021,14,128066,128100,14,128184,128235,14,128249,128252,14,128266,128276,14,128335,128335,14,128379,128390,14,128407,128419,14,128444,128444,14,128481,128481,14,128499,128499,14,128526,128526,14,128536,128536,14,128543,128543,14,128556,128556,14,128564,128564,14,128577,128580,14,128643,128645,14,128649,128649,14,128654,128654,14,128660,128660,14,128664,128664,14,128675,128675,14,128686,128689,14,128695,128696,14,128705,128709,14,128717,128719,14,128725,128725,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129009,129023,14,129160,129167,14,129296,129304,14,129320,129327,14,129340,129342,14,129356,129356,14,129388,129392,14,129399,129400,14,129404,129407,14,129432,129442,14,129454,129455,14,129473,129474,14,129485,129487,14,129648,129651,14,129659,129660,14,129671,129679,14,129709,129711,14,129728,129730,14,129751,129753,14,129776,129782,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2274,2274,1,2363,2363,7,2377,2380,7,2402,2403,5,2494,2494,5,2507,2508,7,2558,2558,5,2622,2624,7,2641,2641,5,2691,2691,7,2759,2760,5,2786,2787,5,2876,2876,5,2881,2884,5,2901,2902,5,3006,3006,5,3014,3016,7,3072,3072,5,3134,3136,5,3157,3158,5,3260,3260,5,3266,3266,5,3274,3275,7,3328,3329,5,3391,3392,7,3405,3405,5,3457,3457,5,3536,3537,7,3551,3551,5,3636,3642,5,3764,3772,5,3895,3895,5,3967,3967,7,3993,4028,5,4146,4151,5,4182,4183,7,4226,4226,5,4253,4253,5,4957,4959,5,5940,5940,7,6070,6070,7,6087,6088,7,6158,6158,4,6432,6434,5,6448,6449,7,6679,6680,5,6742,6742,5,6754,6754,5,6783,6783,5,6912,6915,5,6966,6970,5,6978,6978,5,7042,7042,7,7080,7081,5,7143,7143,7,7150,7150,7,7212,7219,5,7380,7392,5,7412,7412,5,8203,8203,4,8232,8232,4,8265,8265,14,8400,8412,5,8421,8432,5,8617,8618,14,9167,9167,14,9200,9200,14,9410,9410,14,9723,9726,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9774,14,9786,9786,14,9794,9794,14,9823,9823,14,9828,9828,14,9833,9850,14,9855,9855,14,9875,9875,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9935,9935,14,9939,9939,14,9962,9962,14,9972,9972,14,9978,9978,14,9986,9986,14,9997,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10133,10135,14,10548,10549,14,11093,11093,14,12330,12333,5,12441,12442,5,42608,42610,5,43010,43010,5,43045,43046,5,43188,43203,7,43302,43309,5,43392,43394,5,43446,43449,5,43493,43493,5,43571,43572,7,43597,43597,7,43703,43704,5,43756,43757,5,44003,44004,7,44009,44010,7,44033,44059,12,44089,44115,12,44145,44171,12,44201,44227,12,44257,44283,12,44313,44339,12,44369,44395,12,44425,44451,12,44481,44507,12,44537,44563,12,44593,44619,12,44649,44675,12,44705,44731,12,44761,44787,12,44817,44843,12,44873,44899,12,44929,44955,12,44985,45011,12,45041,45067,12,45097,45123,12,45153,45179,12,45209,45235,12,45265,45291,12,45321,45347,12,45377,45403,12,45433,45459,12,45489,45515,12,45545,45571,12,45601,45627,12,45657,45683,12,45713,45739,12,45769,45795,12,45825,45851,12,45881,45907,12,45937,45963,12,45993,46019,12,46049,46075,12,46105,46131,12,46161,46187,12,46217,46243,12,46273,46299,12,46329,46355,12,46385,46411,12,46441,46467,12,46497,46523,12,46553,46579,12,46609,46635,12,46665,46691,12,46721,46747,12,46777,46803,12,46833,46859,12,46889,46915,12,46945,46971,12,47001,47027,12,47057,47083,12,47113,47139,12,47169,47195,12,47225,47251,12,47281,47307,12,47337,47363,12,47393,47419,12,47449,47475,12,47505,47531,12,47561,47587,12,47617,47643,12,47673,47699,12,47729,47755,12,47785,47811,12,47841,47867,12,47897,47923,12,47953,47979,12,48009,48035,12,48065,48091,12,48121,48147,12,48177,48203,12,48233,48259,12,48289,48315,12,48345,48371,12,48401,48427,12,48457,48483,12,48513,48539,12,48569,48595,12,48625,48651,12,48681,48707,12,48737,48763,12,48793,48819,12,48849,48875,12,48905,48931,12,48961,48987,12,49017,49043,12,49073,49099,12,49129,49155,12,49185,49211,12,49241,49267,12,49297,49323,12,49353,49379,12,49409,49435,12,49465,49491,12,49521,49547,12,49577,49603,12,49633,49659,12,49689,49715,12,49745,49771,12,49801,49827,12,49857,49883,12,49913,49939,12,49969,49995,12,50025,50051,12,50081,50107,12,50137,50163,12,50193,50219,12,50249,50275,12,50305,50331,12,50361,50387,12,50417,50443,12,50473,50499,12,50529,50555,12,50585,50611,12,50641,50667,12,50697,50723,12,50753,50779,12,50809,50835,12,50865,50891,12,50921,50947,12,50977,51003,12,51033,51059,12,51089,51115,12,51145,51171,12,51201,51227,12,51257,51283,12,51313,51339,12,51369,51395,12,51425,51451,12,51481,51507,12,51537,51563,12,51593,51619,12,51649,51675,12,51705,51731,12,51761,51787,12,51817,51843,12,51873,51899,12,51929,51955,12,51985,52011,12,52041,52067,12,52097,52123,12,52153,52179,12,52209,52235,12,52265,52291,12,52321,52347,12,52377,52403,12,52433,52459,12,52489,52515,12,52545,52571,12,52601,52627,12,52657,52683,12,52713,52739,12,52769,52795,12,52825,52851,12,52881,52907,12,52937,52963,12,52993,53019,12,53049,53075,12,53105,53131,12,53161,53187,12,53217,53243,12,53273,53299,12,53329,53355,12,53385,53411,12,53441,53467,12,53497,53523,12,53553,53579,12,53609,53635,12,53665,53691,12,53721,53747,12,53777,53803,12,53833,53859,12,53889,53915,12,53945,53971,12,54001,54027,12,54057,54083,12,54113,54139,12,54169,54195,12,54225,54251,12,54281,54307,12,54337,54363,12,54393,54419,12,54449,54475,12,54505,54531,12,54561,54587,12,54617,54643,12,54673,54699,12,54729,54755,12,54785,54811,12,54841,54867,12,54897,54923,12,54953,54979,12,55009,55035,12,55065,55091,12,55121,55147,12,55177,55203,12,65024,65039,5,65520,65528,4,66422,66426,5,68152,68154,5,69291,69292,5,69633,69633,5,69747,69748,5,69811,69814,5,69826,69826,5,69932,69932,7,70016,70017,5,70079,70080,7,70095,70095,5,70196,70196,5,70367,70367,5,70402,70403,7,70464,70464,5,70487,70487,5,70709,70711,7,70725,70725,7,70833,70834,7,70843,70844,7,70849,70849,7,71090,71093,5,71103,71104,5,71227,71228,7,71339,71339,5,71344,71349,5,71458,71461,5,71727,71735,5,71985,71989,7,71998,71998,5,72002,72002,7,72154,72155,5,72193,72202,5,72251,72254,5,72281,72283,5,72344,72345,5,72766,72766,7,72874,72880,5,72885,72886,5,73023,73029,5,73104,73105,5,73111,73111,5,92912,92916,5,94095,94098,5,113824,113827,4,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,125252,125258,5,127183,127183,14,127340,127343,14,127377,127386,14,127491,127503,14,127548,127551,14,127744,127756,14,127761,127761,14,127769,127769,14,127773,127774,14,127780,127788,14,127796,127797,14,127820,127823,14,127869,127869,14,127894,127895,14,127902,127903,14,127943,127943,14,127947,127950,14,127972,127972,14,127988,127988,14,127992,127994,14,128009,128011,14,128019,128019,14,128023,128041,14,128064,128064,14,128102,128107,14,128174,128181,14,128238,128238,14,128246,128247,14,128254,128254,14,128264,128264,14,128278,128299,14,128329,128330,14,128348,128359,14,128371,128377,14,128392,128393,14,128401,128404,14,128421,128421,14,128433,128434,14,128450,128452,14,128476,128478,14,128483,128483,14,128495,128495,14,128506,128506,14,128519,128520,14,128528,128528,14,128534,128534,14,128538,128538,14,128540,128542,14,128544,128549,14,128552,128555,14,128557,128557,14,128560,128563,14,128565,128565,14,128567,128576,14,128581,128591,14,128641,128642,14,128646,128646,14,128648,128648,14,128650,128651,14,128653,128653,14,128655,128655,14,128657,128659,14,128661,128661,14,128663,128663,14,128665,128666,14,128674,128674,14,128676,128677,14,128679,128685,14,128690,128690,14,128694,128694,14,128697,128702,14,128704,128704,14,128710,128714,14,128716,128716,14,128720,128720,14,128723,128724,14,128726,128727,14,128733,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129008,129008,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129661,129663,14,129667,129670,14,129680,129685,14,129705,129708,14,129712,129718,14,129723,129727,14,129731,129733,14,129744,129750,14,129754,129759,14,129768,129775,14,129783,129791,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2192,2193,1,2250,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3132,3132,5,3137,3140,7,3146,3149,5,3170,3171,5,3202,3203,7,3262,3262,7,3264,3265,7,3267,3268,7,3271,3272,7,3276,3277,5,3298,3299,5,3330,3331,7,3390,3390,5,3393,3396,5,3402,3404,7,3406,3406,1,3426,3427,5,3458,3459,7,3535,3535,5,3538,3540,5,3544,3550,7,3570,3571,7,3635,3635,7,3655,3662,5,3763,3763,7,3784,3789,5,3893,3893,5,3897,3897,5,3953,3966,5,3968,3972,5,3981,3991,5,4038,4038,5,4145,4145,7,4153,4154,5,4157,4158,5,4184,4185,5,4209,4212,5,4228,4228,7,4237,4237,5,4352,4447,8,4520,4607,10,5906,5908,5,5938,5939,5,5970,5971,5,6068,6069,5,6071,6077,5,6086,6086,5,6089,6099,5,6155,6157,5,6159,6159,5,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6862,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7679,5,8204,8204,5,8206,8207,4,8233,8233,4,8252,8252,14,8288,8292,4,8294,8303,4,8413,8416,5,8418,8420,5,8482,8482,14,8596,8601,14,8986,8987,14,9096,9096,14,9193,9196,14,9199,9199,14,9201,9202,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9729,14,9732,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9775,9775,14,9784,9785,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9874,14,9876,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9934,14,9936,9936,14,9938,9938,14,9940,9940,14,9961,9961,14,9963,9967,14,9970,9971,14,9973,9973,14,9975,9977,14,9979,9980,14,9982,9985,14,9987,9988,14,9992,9996,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10083,14,10085,10087,14,10145,10145,14,10175,10175,14,11013,11015,14,11088,11088,14,11503,11505,5,11744,11775,5,12334,12335,5,12349,12349,14,12951,12951,14,42607,42607,5,42612,42621,5,42736,42737,5,43014,43014,5,43043,43044,7,43047,43047,7,43136,43137,7,43204,43205,5,43263,43263,5,43335,43345,5,43360,43388,8,43395,43395,7,43444,43445,7,43450,43451,7,43454,43456,7,43561,43566,5,43569,43570,5,43573,43574,5,43596,43596,5,43644,43644,5,43698,43700,5,43710,43711,5,43755,43755,7,43758,43759,7,43766,43766,5,44005,44005,5,44008,44008,5,44012,44012,7,44032,44032,11,44060,44060,11,44088,44088,11,44116,44116,11,44144,44144,11,44172,44172,11,44200,44200,11,44228,44228,11,44256,44256,11,44284,44284,11,44312,44312,11,44340,44340,11,44368,44368,11,44396,44396,11,44424,44424,11,44452,44452,11,44480,44480,11,44508,44508,11,44536,44536,11,44564,44564,11,44592,44592,11,44620,44620,11,44648,44648,11,44676,44676,11,44704,44704,11,44732,44732,11,44760,44760,11,44788,44788,11,44816,44816,11,44844,44844,11,44872,44872,11,44900,44900,11,44928,44928,11,44956,44956,11,44984,44984,11,45012,45012,11,45040,45040,11,45068,45068,11,45096,45096,11,45124,45124,11,45152,45152,11,45180,45180,11,45208,45208,11,45236,45236,11,45264,45264,11,45292,45292,11,45320,45320,11,45348,45348,11,45376,45376,11,45404,45404,11,45432,45432,11,45460,45460,11,45488,45488,11,45516,45516,11,45544,45544,11,45572,45572,11,45600,45600,11,45628,45628,11,45656,45656,11,45684,45684,11,45712,45712,11,45740,45740,11,45768,45768,11,45796,45796,11,45824,45824,11,45852,45852,11,45880,45880,11,45908,45908,11,45936,45936,11,45964,45964,11,45992,45992,11,46020,46020,11,46048,46048,11,46076,46076,11,46104,46104,11,46132,46132,11,46160,46160,11,46188,46188,11,46216,46216,11,46244,46244,11,46272,46272,11,46300,46300,11,46328,46328,11,46356,46356,11,46384,46384,11,46412,46412,11,46440,46440,11,46468,46468,11,46496,46496,11,46524,46524,11,46552,46552,11,46580,46580,11,46608,46608,11,46636,46636,11,46664,46664,11,46692,46692,11,46720,46720,11,46748,46748,11,46776,46776,11,46804,46804,11,46832,46832,11,46860,46860,11,46888,46888,11,46916,46916,11,46944,46944,11,46972,46972,11,47000,47000,11,47028,47028,11,47056,47056,11,47084,47084,11,47112,47112,11,47140,47140,11,47168,47168,11,47196,47196,11,47224,47224,11,47252,47252,11,47280,47280,11,47308,47308,11,47336,47336,11,47364,47364,11,47392,47392,11,47420,47420,11,47448,47448,11,47476,47476,11,47504,47504,11,47532,47532,11,47560,47560,11,47588,47588,11,47616,47616,11,47644,47644,11,47672,47672,11,47700,47700,11,47728,47728,11,47756,47756,11,47784,47784,11,47812,47812,11,47840,47840,11,47868,47868,11,47896,47896,11,47924,47924,11,47952,47952,11,47980,47980,11,48008,48008,11,48036,48036,11,48064,48064,11,48092,48092,11,48120,48120,11,48148,48148,11,48176,48176,11,48204,48204,11,48232,48232,11,48260,48260,11,48288,48288,11,48316,48316,11,48344,48344,11,48372,48372,11,48400,48400,11,48428,48428,11,48456,48456,11,48484,48484,11,48512,48512,11,48540,48540,11,48568,48568,11,48596,48596,11,48624,48624,11,48652,48652,11,48680,48680,11,48708,48708,11,48736,48736,11,48764,48764,11,48792,48792,11,48820,48820,11,48848,48848,11,48876,48876,11,48904,48904,11,48932,48932,11,48960,48960,11,48988,48988,11,49016,49016,11,49044,49044,11,49072,49072,11,49100,49100,11,49128,49128,11,49156,49156,11,49184,49184,11,49212,49212,11,49240,49240,11,49268,49268,11,49296,49296,11,49324,49324,11,49352,49352,11,49380,49380,11,49408,49408,11,49436,49436,11,49464,49464,11,49492,49492,11,49520,49520,11,49548,49548,11,49576,49576,11,49604,49604,11,49632,49632,11,49660,49660,11,49688,49688,11,49716,49716,11,49744,49744,11,49772,49772,11,49800,49800,11,49828,49828,11,49856,49856,11,49884,49884,11,49912,49912,11,49940,49940,11,49968,49968,11,49996,49996,11,50024,50024,11,50052,50052,11,50080,50080,11,50108,50108,11,50136,50136,11,50164,50164,11,50192,50192,11,50220,50220,11,50248,50248,11,50276,50276,11,50304,50304,11,50332,50332,11,50360,50360,11,50388,50388,11,50416,50416,11,50444,50444,11,50472,50472,11,50500,50500,11,50528,50528,11,50556,50556,11,50584,50584,11,50612,50612,11,50640,50640,11,50668,50668,11,50696,50696,11,50724,50724,11,50752,50752,11,50780,50780,11,50808,50808,11,50836,50836,11,50864,50864,11,50892,50892,11,50920,50920,11,50948,50948,11,50976,50976,11,51004,51004,11,51032,51032,11,51060,51060,11,51088,51088,11,51116,51116,11,51144,51144,11,51172,51172,11,51200,51200,11,51228,51228,11,51256,51256,11,51284,51284,11,51312,51312,11,51340,51340,11,51368,51368,11,51396,51396,11,51424,51424,11,51452,51452,11,51480,51480,11,51508,51508,11,51536,51536,11,51564,51564,11,51592,51592,11,51620,51620,11,51648,51648,11,51676,51676,11,51704,51704,11,51732,51732,11,51760,51760,11,51788,51788,11,51816,51816,11,51844,51844,11,51872,51872,11,51900,51900,11,51928,51928,11,51956,51956,11,51984,51984,11,52012,52012,11,52040,52040,11,52068,52068,11,52096,52096,11,52124,52124,11,52152,52152,11,52180,52180,11,52208,52208,11,52236,52236,11,52264,52264,11,52292,52292,11,52320,52320,11,52348,52348,11,52376,52376,11,52404,52404,11,52432,52432,11,52460,52460,11,52488,52488,11,52516,52516,11,52544,52544,11,52572,52572,11,52600,52600,11,52628,52628,11,52656,52656,11,52684,52684,11,52712,52712,11,52740,52740,11,52768,52768,11,52796,52796,11,52824,52824,11,52852,52852,11,52880,52880,11,52908,52908,11,52936,52936,11,52964,52964,11,52992,52992,11,53020,53020,11,53048,53048,11,53076,53076,11,53104,53104,11,53132,53132,11,53160,53160,11,53188,53188,11,53216,53216,11,53244,53244,11,53272,53272,11,53300,53300,11,53328,53328,11,53356,53356,11,53384,53384,11,53412,53412,11,53440,53440,11,53468,53468,11,53496,53496,11,53524,53524,11,53552,53552,11,53580,53580,11,53608,53608,11,53636,53636,11,53664,53664,11,53692,53692,11,53720,53720,11,53748,53748,11,53776,53776,11,53804,53804,11,53832,53832,11,53860,53860,11,53888,53888,11,53916,53916,11,53944,53944,11,53972,53972,11,54000,54000,11,54028,54028,11,54056,54056,11,54084,54084,11,54112,54112,11,54140,54140,11,54168,54168,11,54196,54196,11,54224,54224,11,54252,54252,11,54280,54280,11,54308,54308,11,54336,54336,11,54364,54364,11,54392,54392,11,54420,54420,11,54448,54448,11,54476,54476,11,54504,54504,11,54532,54532,11,54560,54560,11,54588,54588,11,54616,54616,11,54644,54644,11,54672,54672,11,54700,54700,11,54728,54728,11,54756,54756,11,54784,54784,11,54812,54812,11,54840,54840,11,54868,54868,11,54896,54896,11,54924,54924,11,54952,54952,11,54980,54980,11,55008,55008,11,55036,55036,11,55064,55064,11,55092,55092,11,55120,55120,11,55148,55148,11,55176,55176,11,55216,55238,9,64286,64286,5,65056,65071,5,65438,65439,5,65529,65531,4,66272,66272,5,68097,68099,5,68108,68111,5,68159,68159,5,68900,68903,5,69446,69456,5,69632,69632,7,69634,69634,7,69744,69744,5,69759,69761,5,69808,69810,7,69815,69816,7,69821,69821,1,69837,69837,1,69927,69931,5,69933,69940,5,70003,70003,5,70018,70018,7,70070,70078,5,70082,70083,1,70094,70094,7,70188,70190,7,70194,70195,7,70197,70197,7,70206,70206,5,70368,70370,7,70400,70401,5,70459,70460,5,70463,70463,7,70465,70468,7,70475,70477,7,70498,70499,7,70512,70516,5,70712,70719,5,70722,70724,5,70726,70726,5,70832,70832,5,70835,70840,5,70842,70842,5,70845,70845,5,70847,70848,5,70850,70851,5,71088,71089,7,71096,71099,7,71102,71102,7,71132,71133,5,71219,71226,5,71229,71229,5,71231,71232,5,71340,71340,7,71342,71343,7,71350,71350,7,71453,71455,5,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,118528,118573,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123566,123566,5,125136,125142,5,126976,126979,14,126981,127182,14,127184,127231,14,127279,127279,14,127344,127345,14,127374,127374,14,127405,127461,14,127489,127490,14,127514,127514,14,127538,127546,14,127561,127567,14,127570,127743,14,127757,127758,14,127760,127760,14,127762,127762,14,127766,127768,14,127770,127770,14,127772,127772,14,127775,127776,14,127778,127779,14,127789,127791,14,127794,127795,14,127798,127798,14,127819,127819,14,127824,127824,14,127868,127868,14,127870,127871,14,127892,127893,14,127896,127896,14,127900,127901,14,127904,127940,14,127942,127942,14,127944,127944,14,127946,127946,14,127951,127955,14,127968,127971,14,127973,127984,14,127987,127987,14,127989,127989,14,127991,127991,14,127995,127999,5,128008,128008,14,128012,128014,14,128017,128018,14,128020,128020,14,128022,128022,14,128042,128042,14,128063,128063,14,128065,128065,14,128101,128101,14,128108,128109,14,128173,128173,14,128182,128183,14,128236,128237,14,128239,128239,14,128245,128245,14,128248,128248,14,128253,128253,14,128255,128258,14,128260,128263,14,128265,128265,14,128277,128277,14,128300,128301,14,128326,128328,14,128331,128334,14,128336,128347,14,128360,128366,14,128369,128370,14,128378,128378,14,128391,128391,14,128394,128397,14,128400,128400,14,128405,128406,14,128420,128420,14,128422,128423,14,128425,128432,14,128435,128443,14,128445,128449,14,128453,128464,14,128468,128475,14,128479,128480,14,128482,128482,14,128484,128487,14,128489,128494,14,128496,128498,14,128500,128505,14,128507,128511,14,128513,128518,14,128521,128525,14,128527,128527,14,128529,128529,14,128533,128533,14,128535,128535,14,128537,128537,14]")}function QE(s,e){if(s===0)return 0;const t=JE(s,e);if(t!==void 0)return t;const i=new i0(e,s);return i.prevCodePoint(),i.offset}function JE(s,e){const t=new i0(e,s);let i=t.prevCodePoint();for(;eD(i)||i===65039||i===8419;){if(t.offset===0)return;i=t.prevCodePoint()}if(!r0(i))return;let n=t.offset;return n>0&&t.prevCodePoint()===8205&&(n=t.offset),n}function eD(s){return 127995<=s&&s<=127999}class sn{constructor(e){this.confusableDictionary=e}static getInstance(e){return sn.cache.get(Array.from(e))}static getLocales(){return sn._locales.getValue()}isAmbiguous(e){return this.confusableDictionary.has(e)}getPrimaryConfusable(e){return this.confusableDictionary.get(e)}getConfusableCodePoints(){return new Set(this.confusableDictionary.keys())}}wy=sn;sn.ambiguousCharacterData=new Cy(()=>JSON.parse('{"_common":[8232,32,8233,32,5760,32,8192,32,8193,32,8194,32,8195,32,8196,32,8197,32,8198,32,8200,32,8201,32,8202,32,8287,32,8199,32,8239,32,2042,95,65101,95,65102,95,65103,95,8208,45,8209,45,8210,45,65112,45,1748,45,8259,45,727,45,8722,45,10134,45,11450,45,1549,44,1643,44,8218,44,184,44,42233,44,894,59,2307,58,2691,58,1417,58,1795,58,1796,58,5868,58,65072,58,6147,58,6153,58,8282,58,1475,58,760,58,42889,58,8758,58,720,58,42237,58,451,33,11601,33,660,63,577,63,2429,63,5038,63,42731,63,119149,46,8228,46,1793,46,1794,46,42510,46,68176,46,1632,46,1776,46,42232,46,1373,96,65287,96,8219,96,8242,96,1370,96,1523,96,8175,96,65344,96,900,96,8189,96,8125,96,8127,96,8190,96,697,96,884,96,712,96,714,96,715,96,756,96,699,96,701,96,700,96,702,96,42892,96,1497,96,2036,96,2037,96,5194,96,5836,96,94033,96,94034,96,65339,91,10088,40,10098,40,12308,40,64830,40,65341,93,10089,41,10099,41,12309,41,64831,41,10100,123,119060,123,10101,125,65342,94,8270,42,1645,42,8727,42,66335,42,5941,47,8257,47,8725,47,8260,47,9585,47,10187,47,10744,47,119354,47,12755,47,12339,47,11462,47,20031,47,12035,47,65340,92,65128,92,8726,92,10189,92,10741,92,10745,92,119311,92,119355,92,12756,92,20022,92,12034,92,42872,38,708,94,710,94,5869,43,10133,43,66203,43,8249,60,10094,60,706,60,119350,60,5176,60,5810,60,5120,61,11840,61,12448,61,42239,61,8250,62,10095,62,707,62,119351,62,5171,62,94015,62,8275,126,732,126,8128,126,8764,126,65372,124,65293,45,120784,50,120794,50,120804,50,120814,50,120824,50,130034,50,42842,50,423,50,1000,50,42564,50,5311,50,42735,50,119302,51,120785,51,120795,51,120805,51,120815,51,120825,51,130035,51,42923,51,540,51,439,51,42858,51,11468,51,1248,51,94011,51,71882,51,120786,52,120796,52,120806,52,120816,52,120826,52,130036,52,5070,52,71855,52,120787,53,120797,53,120807,53,120817,53,120827,53,130037,53,444,53,71867,53,120788,54,120798,54,120808,54,120818,54,120828,54,130038,54,11474,54,5102,54,71893,54,119314,55,120789,55,120799,55,120809,55,120819,55,120829,55,130039,55,66770,55,71878,55,2819,56,2538,56,2666,56,125131,56,120790,56,120800,56,120810,56,120820,56,120830,56,130040,56,547,56,546,56,66330,56,2663,57,2920,57,2541,57,3437,57,120791,57,120801,57,120811,57,120821,57,120831,57,130041,57,42862,57,11466,57,71884,57,71852,57,71894,57,9082,97,65345,97,119834,97,119886,97,119938,97,119990,97,120042,97,120094,97,120146,97,120198,97,120250,97,120302,97,120354,97,120406,97,120458,97,593,97,945,97,120514,97,120572,97,120630,97,120688,97,120746,97,65313,65,119808,65,119860,65,119912,65,119964,65,120016,65,120068,65,120120,65,120172,65,120224,65,120276,65,120328,65,120380,65,120432,65,913,65,120488,65,120546,65,120604,65,120662,65,120720,65,5034,65,5573,65,42222,65,94016,65,66208,65,119835,98,119887,98,119939,98,119991,98,120043,98,120095,98,120147,98,120199,98,120251,98,120303,98,120355,98,120407,98,120459,98,388,98,5071,98,5234,98,5551,98,65314,66,8492,66,119809,66,119861,66,119913,66,120017,66,120069,66,120121,66,120173,66,120225,66,120277,66,120329,66,120381,66,120433,66,42932,66,914,66,120489,66,120547,66,120605,66,120663,66,120721,66,5108,66,5623,66,42192,66,66178,66,66209,66,66305,66,65347,99,8573,99,119836,99,119888,99,119940,99,119992,99,120044,99,120096,99,120148,99,120200,99,120252,99,120304,99,120356,99,120408,99,120460,99,7428,99,1010,99,11429,99,43951,99,66621,99,128844,67,71922,67,71913,67,65315,67,8557,67,8450,67,8493,67,119810,67,119862,67,119914,67,119966,67,120018,67,120174,67,120226,67,120278,67,120330,67,120382,67,120434,67,1017,67,11428,67,5087,67,42202,67,66210,67,66306,67,66581,67,66844,67,8574,100,8518,100,119837,100,119889,100,119941,100,119993,100,120045,100,120097,100,120149,100,120201,100,120253,100,120305,100,120357,100,120409,100,120461,100,1281,100,5095,100,5231,100,42194,100,8558,68,8517,68,119811,68,119863,68,119915,68,119967,68,120019,68,120071,68,120123,68,120175,68,120227,68,120279,68,120331,68,120383,68,120435,68,5024,68,5598,68,5610,68,42195,68,8494,101,65349,101,8495,101,8519,101,119838,101,119890,101,119942,101,120046,101,120098,101,120150,101,120202,101,120254,101,120306,101,120358,101,120410,101,120462,101,43826,101,1213,101,8959,69,65317,69,8496,69,119812,69,119864,69,119916,69,120020,69,120072,69,120124,69,120176,69,120228,69,120280,69,120332,69,120384,69,120436,69,917,69,120492,69,120550,69,120608,69,120666,69,120724,69,11577,69,5036,69,42224,69,71846,69,71854,69,66182,69,119839,102,119891,102,119943,102,119995,102,120047,102,120099,102,120151,102,120203,102,120255,102,120307,102,120359,102,120411,102,120463,102,43829,102,42905,102,383,102,7837,102,1412,102,119315,70,8497,70,119813,70,119865,70,119917,70,120021,70,120073,70,120125,70,120177,70,120229,70,120281,70,120333,70,120385,70,120437,70,42904,70,988,70,120778,70,5556,70,42205,70,71874,70,71842,70,66183,70,66213,70,66853,70,65351,103,8458,103,119840,103,119892,103,119944,103,120048,103,120100,103,120152,103,120204,103,120256,103,120308,103,120360,103,120412,103,120464,103,609,103,7555,103,397,103,1409,103,119814,71,119866,71,119918,71,119970,71,120022,71,120074,71,120126,71,120178,71,120230,71,120282,71,120334,71,120386,71,120438,71,1292,71,5056,71,5107,71,42198,71,65352,104,8462,104,119841,104,119945,104,119997,104,120049,104,120101,104,120153,104,120205,104,120257,104,120309,104,120361,104,120413,104,120465,104,1211,104,1392,104,5058,104,65320,72,8459,72,8460,72,8461,72,119815,72,119867,72,119919,72,120023,72,120179,72,120231,72,120283,72,120335,72,120387,72,120439,72,919,72,120494,72,120552,72,120610,72,120668,72,120726,72,11406,72,5051,72,5500,72,42215,72,66255,72,731,105,9075,105,65353,105,8560,105,8505,105,8520,105,119842,105,119894,105,119946,105,119998,105,120050,105,120102,105,120154,105,120206,105,120258,105,120310,105,120362,105,120414,105,120466,105,120484,105,618,105,617,105,953,105,8126,105,890,105,120522,105,120580,105,120638,105,120696,105,120754,105,1110,105,42567,105,1231,105,43893,105,5029,105,71875,105,65354,106,8521,106,119843,106,119895,106,119947,106,119999,106,120051,106,120103,106,120155,106,120207,106,120259,106,120311,106,120363,106,120415,106,120467,106,1011,106,1112,106,65322,74,119817,74,119869,74,119921,74,119973,74,120025,74,120077,74,120129,74,120181,74,120233,74,120285,74,120337,74,120389,74,120441,74,42930,74,895,74,1032,74,5035,74,5261,74,42201,74,119844,107,119896,107,119948,107,120000,107,120052,107,120104,107,120156,107,120208,107,120260,107,120312,107,120364,107,120416,107,120468,107,8490,75,65323,75,119818,75,119870,75,119922,75,119974,75,120026,75,120078,75,120130,75,120182,75,120234,75,120286,75,120338,75,120390,75,120442,75,922,75,120497,75,120555,75,120613,75,120671,75,120729,75,11412,75,5094,75,5845,75,42199,75,66840,75,1472,108,8739,73,9213,73,65512,73,1633,108,1777,73,66336,108,125127,108,120783,73,120793,73,120803,73,120813,73,120823,73,130033,73,65321,73,8544,73,8464,73,8465,73,119816,73,119868,73,119920,73,120024,73,120128,73,120180,73,120232,73,120284,73,120336,73,120388,73,120440,73,65356,108,8572,73,8467,108,119845,108,119897,108,119949,108,120001,108,120053,108,120105,73,120157,73,120209,73,120261,73,120313,73,120365,73,120417,73,120469,73,448,73,120496,73,120554,73,120612,73,120670,73,120728,73,11410,73,1030,73,1216,73,1493,108,1503,108,1575,108,126464,108,126592,108,65166,108,65165,108,1994,108,11599,73,5825,73,42226,73,93992,73,66186,124,66313,124,119338,76,8556,76,8466,76,119819,76,119871,76,119923,76,120027,76,120079,76,120131,76,120183,76,120235,76,120287,76,120339,76,120391,76,120443,76,11472,76,5086,76,5290,76,42209,76,93974,76,71843,76,71858,76,66587,76,66854,76,65325,77,8559,77,8499,77,119820,77,119872,77,119924,77,120028,77,120080,77,120132,77,120184,77,120236,77,120288,77,120340,77,120392,77,120444,77,924,77,120499,77,120557,77,120615,77,120673,77,120731,77,1018,77,11416,77,5047,77,5616,77,5846,77,42207,77,66224,77,66321,77,119847,110,119899,110,119951,110,120003,110,120055,110,120107,110,120159,110,120211,110,120263,110,120315,110,120367,110,120419,110,120471,110,1400,110,1404,110,65326,78,8469,78,119821,78,119873,78,119925,78,119977,78,120029,78,120081,78,120185,78,120237,78,120289,78,120341,78,120393,78,120445,78,925,78,120500,78,120558,78,120616,78,120674,78,120732,78,11418,78,42208,78,66835,78,3074,111,3202,111,3330,111,3458,111,2406,111,2662,111,2790,111,3046,111,3174,111,3302,111,3430,111,3664,111,3792,111,4160,111,1637,111,1781,111,65359,111,8500,111,119848,111,119900,111,119952,111,120056,111,120108,111,120160,111,120212,111,120264,111,120316,111,120368,111,120420,111,120472,111,7439,111,7441,111,43837,111,959,111,120528,111,120586,111,120644,111,120702,111,120760,111,963,111,120532,111,120590,111,120648,111,120706,111,120764,111,11423,111,4351,111,1413,111,1505,111,1607,111,126500,111,126564,111,126596,111,65259,111,65260,111,65258,111,65257,111,1726,111,64428,111,64429,111,64427,111,64426,111,1729,111,64424,111,64425,111,64423,111,64422,111,1749,111,3360,111,4125,111,66794,111,71880,111,71895,111,66604,111,1984,79,2534,79,2918,79,12295,79,70864,79,71904,79,120782,79,120792,79,120802,79,120812,79,120822,79,130032,79,65327,79,119822,79,119874,79,119926,79,119978,79,120030,79,120082,79,120134,79,120186,79,120238,79,120290,79,120342,79,120394,79,120446,79,927,79,120502,79,120560,79,120618,79,120676,79,120734,79,11422,79,1365,79,11604,79,4816,79,2848,79,66754,79,42227,79,71861,79,66194,79,66219,79,66564,79,66838,79,9076,112,65360,112,119849,112,119901,112,119953,112,120005,112,120057,112,120109,112,120161,112,120213,112,120265,112,120317,112,120369,112,120421,112,120473,112,961,112,120530,112,120544,112,120588,112,120602,112,120646,112,120660,112,120704,112,120718,112,120762,112,120776,112,11427,112,65328,80,8473,80,119823,80,119875,80,119927,80,119979,80,120031,80,120083,80,120187,80,120239,80,120291,80,120343,80,120395,80,120447,80,929,80,120504,80,120562,80,120620,80,120678,80,120736,80,11426,80,5090,80,5229,80,42193,80,66197,80,119850,113,119902,113,119954,113,120006,113,120058,113,120110,113,120162,113,120214,113,120266,113,120318,113,120370,113,120422,113,120474,113,1307,113,1379,113,1382,113,8474,81,119824,81,119876,81,119928,81,119980,81,120032,81,120084,81,120188,81,120240,81,120292,81,120344,81,120396,81,120448,81,11605,81,119851,114,119903,114,119955,114,120007,114,120059,114,120111,114,120163,114,120215,114,120267,114,120319,114,120371,114,120423,114,120475,114,43847,114,43848,114,7462,114,11397,114,43905,114,119318,82,8475,82,8476,82,8477,82,119825,82,119877,82,119929,82,120033,82,120189,82,120241,82,120293,82,120345,82,120397,82,120449,82,422,82,5025,82,5074,82,66740,82,5511,82,42211,82,94005,82,65363,115,119852,115,119904,115,119956,115,120008,115,120060,115,120112,115,120164,115,120216,115,120268,115,120320,115,120372,115,120424,115,120476,115,42801,115,445,115,1109,115,43946,115,71873,115,66632,115,65331,83,119826,83,119878,83,119930,83,119982,83,120034,83,120086,83,120138,83,120190,83,120242,83,120294,83,120346,83,120398,83,120450,83,1029,83,1359,83,5077,83,5082,83,42210,83,94010,83,66198,83,66592,83,119853,116,119905,116,119957,116,120009,116,120061,116,120113,116,120165,116,120217,116,120269,116,120321,116,120373,116,120425,116,120477,116,8868,84,10201,84,128872,84,65332,84,119827,84,119879,84,119931,84,119983,84,120035,84,120087,84,120139,84,120191,84,120243,84,120295,84,120347,84,120399,84,120451,84,932,84,120507,84,120565,84,120623,84,120681,84,120739,84,11430,84,5026,84,42196,84,93962,84,71868,84,66199,84,66225,84,66325,84,119854,117,119906,117,119958,117,120010,117,120062,117,120114,117,120166,117,120218,117,120270,117,120322,117,120374,117,120426,117,120478,117,42911,117,7452,117,43854,117,43858,117,651,117,965,117,120534,117,120592,117,120650,117,120708,117,120766,117,1405,117,66806,117,71896,117,8746,85,8899,85,119828,85,119880,85,119932,85,119984,85,120036,85,120088,85,120140,85,120192,85,120244,85,120296,85,120348,85,120400,85,120452,85,1357,85,4608,85,66766,85,5196,85,42228,85,94018,85,71864,85,8744,118,8897,118,65366,118,8564,118,119855,118,119907,118,119959,118,120011,118,120063,118,120115,118,120167,118,120219,118,120271,118,120323,118,120375,118,120427,118,120479,118,7456,118,957,118,120526,118,120584,118,120642,118,120700,118,120758,118,1141,118,1496,118,71430,118,43945,118,71872,118,119309,86,1639,86,1783,86,8548,86,119829,86,119881,86,119933,86,119985,86,120037,86,120089,86,120141,86,120193,86,120245,86,120297,86,120349,86,120401,86,120453,86,1140,86,11576,86,5081,86,5167,86,42719,86,42214,86,93960,86,71840,86,66845,86,623,119,119856,119,119908,119,119960,119,120012,119,120064,119,120116,119,120168,119,120220,119,120272,119,120324,119,120376,119,120428,119,120480,119,7457,119,1121,119,1309,119,1377,119,71434,119,71438,119,71439,119,43907,119,71919,87,71910,87,119830,87,119882,87,119934,87,119986,87,120038,87,120090,87,120142,87,120194,87,120246,87,120298,87,120350,87,120402,87,120454,87,1308,87,5043,87,5076,87,42218,87,5742,120,10539,120,10540,120,10799,120,65368,120,8569,120,119857,120,119909,120,119961,120,120013,120,120065,120,120117,120,120169,120,120221,120,120273,120,120325,120,120377,120,120429,120,120481,120,5441,120,5501,120,5741,88,9587,88,66338,88,71916,88,65336,88,8553,88,119831,88,119883,88,119935,88,119987,88,120039,88,120091,88,120143,88,120195,88,120247,88,120299,88,120351,88,120403,88,120455,88,42931,88,935,88,120510,88,120568,88,120626,88,120684,88,120742,88,11436,88,11613,88,5815,88,42219,88,66192,88,66228,88,66327,88,66855,88,611,121,7564,121,65369,121,119858,121,119910,121,119962,121,120014,121,120066,121,120118,121,120170,121,120222,121,120274,121,120326,121,120378,121,120430,121,120482,121,655,121,7935,121,43866,121,947,121,8509,121,120516,121,120574,121,120632,121,120690,121,120748,121,1199,121,4327,121,71900,121,65337,89,119832,89,119884,89,119936,89,119988,89,120040,89,120092,89,120144,89,120196,89,120248,89,120300,89,120352,89,120404,89,120456,89,933,89,978,89,120508,89,120566,89,120624,89,120682,89,120740,89,11432,89,1198,89,5033,89,5053,89,42220,89,94019,89,71844,89,66226,89,119859,122,119911,122,119963,122,120015,122,120067,122,120119,122,120171,122,120223,122,120275,122,120327,122,120379,122,120431,122,120483,122,7458,122,43923,122,71876,122,66293,90,71909,90,65338,90,8484,90,8488,90,119833,90,119885,90,119937,90,119989,90,120041,90,120197,90,120249,90,120301,90,120353,90,120405,90,120457,90,918,90,120493,90,120551,90,120609,90,120667,90,120725,90,5059,90,42204,90,71849,90,65282,34,65284,36,65285,37,65286,38,65290,42,65291,43,65294,46,65295,47,65296,48,65297,49,65298,50,65299,51,65300,52,65301,53,65302,54,65303,55,65304,56,65305,57,65308,60,65309,61,65310,62,65312,64,65316,68,65318,70,65319,71,65324,76,65329,81,65330,82,65333,85,65334,86,65335,87,65343,95,65346,98,65348,100,65350,102,65355,107,65357,109,65358,110,65361,113,65362,114,65364,116,65365,117,65367,119,65370,122,65371,123,65373,125],"_default":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"cs":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"de":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"es":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"fr":[65374,126,65306,58,65281,33,8216,96,8245,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"it":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"ja":[8211,45,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65292,44,65307,59],"ko":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"pl":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"pt-BR":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"qps-ploc":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"ru":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,305,105,921,73,1009,112,215,120,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"tr":[160,32,8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"zh-hans":[65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41],"zh-hant":[8211,45,65374,126,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65307,59]}'));sn.cache=new BE(s=>{function e(c){const h=new Map;for(let d=0;d!c.startsWith("_")&&c in n);o.length===0&&(o=["_default"]);let r;for(const c of o){const h=e(n[c]);r=i(r,h)}const a=e(n._common),l=t(a,r);return new sn(l)});sn._locales=new Cy(()=>Object.keys(sn.ambiguousCharacterData.getValue()).filter(s=>!s.startsWith("_")));class ho{static getRawData(){return JSON.parse("[9,10,11,12,13,32,127,160,173,847,1564,4447,4448,6068,6069,6155,6156,6157,6158,7355,7356,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8203,8204,8205,8206,8207,8234,8235,8236,8237,8238,8239,8287,8288,8289,8290,8291,8292,8293,8294,8295,8296,8297,8298,8299,8300,8301,8302,8303,10240,12288,12644,65024,65025,65026,65027,65028,65029,65030,65031,65032,65033,65034,65035,65036,65037,65038,65039,65279,65440,65520,65521,65522,65523,65524,65525,65526,65527,65528,65532,78844,119155,119156,119157,119158,119159,119160,119161,119162,917504,917505,917506,917507,917508,917509,917510,917511,917512,917513,917514,917515,917516,917517,917518,917519,917520,917521,917522,917523,917524,917525,917526,917527,917528,917529,917530,917531,917532,917533,917534,917535,917536,917537,917538,917539,917540,917541,917542,917543,917544,917545,917546,917547,917548,917549,917550,917551,917552,917553,917554,917555,917556,917557,917558,917559,917560,917561,917562,917563,917564,917565,917566,917567,917568,917569,917570,917571,917572,917573,917574,917575,917576,917577,917578,917579,917580,917581,917582,917583,917584,917585,917586,917587,917588,917589,917590,917591,917592,917593,917594,917595,917596,917597,917598,917599,917600,917601,917602,917603,917604,917605,917606,917607,917608,917609,917610,917611,917612,917613,917614,917615,917616,917617,917618,917619,917620,917621,917622,917623,917624,917625,917626,917627,917628,917629,917630,917631,917760,917761,917762,917763,917764,917765,917766,917767,917768,917769,917770,917771,917772,917773,917774,917775,917776,917777,917778,917779,917780,917781,917782,917783,917784,917785,917786,917787,917788,917789,917790,917791,917792,917793,917794,917795,917796,917797,917798,917799,917800,917801,917802,917803,917804,917805,917806,917807,917808,917809,917810,917811,917812,917813,917814,917815,917816,917817,917818,917819,917820,917821,917822,917823,917824,917825,917826,917827,917828,917829,917830,917831,917832,917833,917834,917835,917836,917837,917838,917839,917840,917841,917842,917843,917844,917845,917846,917847,917848,917849,917850,917851,917852,917853,917854,917855,917856,917857,917858,917859,917860,917861,917862,917863,917864,917865,917866,917867,917868,917869,917870,917871,917872,917873,917874,917875,917876,917877,917878,917879,917880,917881,917882,917883,917884,917885,917886,917887,917888,917889,917890,917891,917892,917893,917894,917895,917896,917897,917898,917899,917900,917901,917902,917903,917904,917905,917906,917907,917908,917909,917910,917911,917912,917913,917914,917915,917916,917917,917918,917919,917920,917921,917922,917923,917924,917925,917926,917927,917928,917929,917930,917931,917932,917933,917934,917935,917936,917937,917938,917939,917940,917941,917942,917943,917944,917945,917946,917947,917948,917949,917950,917951,917952,917953,917954,917955,917956,917957,917958,917959,917960,917961,917962,917963,917964,917965,917966,917967,917968,917969,917970,917971,917972,917973,917974,917975,917976,917977,917978,917979,917980,917981,917982,917983,917984,917985,917986,917987,917988,917989,917990,917991,917992,917993,917994,917995,917996,917997,917998,917999]")}static getData(){return this._data||(this._data=new Set(ho.getRawData())),this._data}static isInvisibleCharacter(e){return ho.getData().has(e)}static get codePoints(){return ho.getData()}}ho._data=void 0;class Hp{constructor(){this._zoomFactor=1}getZoomFactor(){return this._zoomFactor}}Hp.INSTANCE=new Hp;class tD extends W{constructor(){super(),this._onDidChange=this._register(new M),this.onDidChange=this._onDidChange.event,this._listener=()=>this._handleChange(!0),this._mediaQueryList=null,this._handleChange(!1)}_handleChange(e){this._mediaQueryList&&this._mediaQueryList.removeEventListener("change",this._listener),this._mediaQueryList=matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`),this._mediaQueryList.addEventListener("change",this._listener),e&&this._onDidChange.fire()}}class iD extends W{constructor(){super(),this._onDidChange=this._register(new M),this.onDidChange=this._onDidChange.event,this._value=this._getPixelRatio();const e=this._register(new tD);this._register(e.onDidChange(()=>{this._value=this._getPixelRatio(),this._onDidChange.fire(this._value)}))}get value(){return this._value}_getPixelRatio(){const e=document.createElement("canvas").getContext("2d"),t=window.devicePixelRatio||1,i=e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1;return t/i}}class nD{constructor(){this._pixelRatioMonitor=null}_getOrCreatePixelRatioMonitor(){return this._pixelRatioMonitor||(this._pixelRatioMonitor=new iD),this._pixelRatioMonitor}get value(){return this._getOrCreatePixelRatioMonitor().value}get onDidChange(){return this._getOrCreatePixelRatioMonitor().onDidChange}}const Dc=new nD;function Iy(){return Hp.INSTANCE.getZoomFactor()}const _l=navigator.userAgent,Oi=_l.indexOf("Firefox")>=0,uo=_l.indexOf("AppleWebKit")>=0,l0=_l.indexOf("Chrome")>=0,Jn=!l0&&_l.indexOf("Safari")>=0,c0=!l0&&!Jn&&uo,sD=_l.indexOf("Electron/")>=0,Ey=_l.indexOf("Android")>=0,Dy=window.matchMedia&&window.matchMedia("(display-mode: standalone)").matches;var oD=Object.freeze(Object.defineProperty({__proto__:null,PixelRatio:Dc,getZoomFactor:Iy,isFirefox:Oi,isWebKit:uo,isChrome:l0,isSafari:Jn,isWebkitWebView:c0,isElectron:sD,isAndroid:Ey,isStandalone:Dy},Symbol.toStringTag,{value:"Module"}));class Ny{constructor(e){this.domNode=e,this._maxWidth=-1,this._width=-1,this._height=-1,this._top=-1,this._left=-1,this._bottom=-1,this._right=-1,this._fontFamily="",this._fontWeight="",this._fontSize=-1,this._fontStyle="",this._fontFeatureSettings="",this._textDecoration="",this._lineHeight=-1,this._letterSpacing=-100,this._className="",this._display="",this._position="",this._visibility="",this._color="",this._backgroundColor="",this._layerHint=!1,this._contain="none",this._boxShadow=""}setMaxWidth(e){this._maxWidth!==e&&(this._maxWidth=e,this.domNode.style.maxWidth=this._maxWidth+"px")}setWidth(e){this._width!==e&&(this._width=e,this.domNode.style.width=this._width+"px")}setHeight(e){this._height!==e&&(this._height=e,this.domNode.style.height=this._height+"px")}setTop(e){this._top!==e&&(this._top=e,this.domNode.style.top=this._top+"px")}unsetTop(){this._top!==-1&&(this._top=-1,this.domNode.style.top="")}setLeft(e){this._left!==e&&(this._left=e,this.domNode.style.left=this._left+"px")}setBottom(e){this._bottom!==e&&(this._bottom=e,this.domNode.style.bottom=this._bottom+"px")}setRight(e){this._right!==e&&(this._right=e,this.domNode.style.right=this._right+"px")}setFontFamily(e){this._fontFamily!==e&&(this._fontFamily=e,this.domNode.style.fontFamily=this._fontFamily)}setFontWeight(e){this._fontWeight!==e&&(this._fontWeight=e,this.domNode.style.fontWeight=this._fontWeight)}setFontSize(e){this._fontSize!==e&&(this._fontSize=e,this.domNode.style.fontSize=this._fontSize+"px")}setFontStyle(e){this._fontStyle!==e&&(this._fontStyle=e,this.domNode.style.fontStyle=this._fontStyle)}setFontFeatureSettings(e){this._fontFeatureSettings!==e&&(this._fontFeatureSettings=e,this.domNode.style.fontFeatureSettings=this._fontFeatureSettings)}setTextDecoration(e){this._textDecoration!==e&&(this._textDecoration=e,this.domNode.style.textDecoration=this._textDecoration)}setLineHeight(e){this._lineHeight!==e&&(this._lineHeight=e,this.domNode.style.lineHeight=this._lineHeight+"px")}setLetterSpacing(e){this._letterSpacing!==e&&(this._letterSpacing=e,this.domNode.style.letterSpacing=this._letterSpacing+"px")}setClassName(e){this._className!==e&&(this._className=e,this.domNode.className=this._className)}toggleClassName(e,t){this.domNode.classList.toggle(e,t),this._className=this.domNode.className}setDisplay(e){this._display!==e&&(this._display=e,this.domNode.style.display=this._display)}setPosition(e){this._position!==e&&(this._position=e,this.domNode.style.position=this._position)}setVisibility(e){this._visibility!==e&&(this._visibility=e,this.domNode.style.visibility=this._visibility)}setColor(e){this._color!==e&&(this._color=e,this.domNode.style.color=this._color)}setBackgroundColor(e){this._backgroundColor!==e&&(this._backgroundColor=e,this.domNode.style.backgroundColor=this._backgroundColor)}setLayerHinting(e){this._layerHint!==e&&(this._layerHint=e,this.domNode.style.transform=this._layerHint?"translate3d(0px, 0px, 0px)":"")}setBoxShadow(e){this._boxShadow!==e&&(this._boxShadow=e,this.domNode.style.boxShadow=e)}setContain(e){this._contain!==e&&(this._contain=e,this.domNode.style.contain=this._contain)}setAttribute(e,t){this.domNode.setAttribute(e,t)}removeAttribute(e){this.domNode.removeAttribute(e)}appendChild(e){this.domNode.appendChild(e.domNode)}removeChild(e){this.domNode.removeChild(e.domNode)}}function ue(s){return new Ny(s)}function ii(s,e){s instanceof Ny?(s.setFontFamily(e.getMassagedFontFamily(Jn?bi.fontFamily:null)),s.setFontWeight(e.fontWeight),s.setFontSize(e.fontSize),s.setFontFeatureSettings(e.fontFeatureSettings),s.setLineHeight(e.lineHeight),s.setLetterSpacing(e.letterSpacing)):(s.style.fontFamily=e.getMassagedFontFamily(Jn?bi.fontFamily:null),s.style.fontWeight=e.fontWeight,s.style.fontSize=e.fontSize+"px",s.style.fontFeatureSettings=e.fontFeatureSettings,s.style.lineHeight=e.lineHeight+"px",s.style.letterSpacing=e.letterSpacing+"px")}class rD{constructor(e,t){this.chr=e,this.type=t,this.width=0}fulfill(e){this.width=e}}class h0{constructor(e,t){this._bareFontInfo=e,this._requests=t,this._container=null,this._testElements=null}read(){this._createDomElements(),document.body.appendChild(this._container),this._readFromDomElements(),document.body.removeChild(this._container),this._container=null,this._testElements=null}_createDomElements(){const e=document.createElement("div");e.style.position="absolute",e.style.top="-50000px",e.style.width="50000px";const t=document.createElement("div");ii(t,this._bareFontInfo),e.appendChild(t);const i=document.createElement("div");ii(i,this._bareFontInfo),i.style.fontWeight="bold",e.appendChild(i);const n=document.createElement("div");ii(n,this._bareFontInfo),n.style.fontStyle="italic",e.appendChild(n);const o=[];for(const r of this._requests){let a;r.type===0&&(a=t),r.type===2&&(a=i),r.type===1&&(a=n),a.appendChild(document.createElement("br"));const l=document.createElement("span");h0._render(l,r),a.appendChild(l),o.push(l)}this._container=e,this._testElements=o}static _render(e,t){if(t.chr===" "){let i="\xA0";for(let n=0;n<8;n++)i+=i;e.innerText=i}else{let i=t.chr;for(let n=0;n<8;n++)i+=i;e.textContent=i}}_readFromDomElements(){for(let e=0,t=this._requests.length;e{this._evictUntrustedReadingsTimeout=-1,this._evictUntrustedReadings()},5e3))}_evictUntrustedReadings(){const e=this._cache.getValues();let t=!1;for(const i of e)i.isTrusted||(t=!0,this._cache.remove(i));t&&this._onDidChange.fire()}readFontInfo(e){if(!this._cache.has(e)){let t=this._actualReadFontInfo(e);(t.typicalHalfwidthCharacterWidth<=2||t.typicalFullwidthCharacterWidth<=2||t.spaceWidth<=2||t.maxDigitWidth<=2)&&(t=new zp({pixelRatio:Dc.value,fontFamily:t.fontFamily,fontWeight:t.fontWeight,fontSize:t.fontSize,fontFeatureSettings:t.fontFeatureSettings,lineHeight:t.lineHeight,letterSpacing:t.letterSpacing,isMonospace:t.isMonospace,typicalHalfwidthCharacterWidth:Math.max(t.typicalHalfwidthCharacterWidth,5),typicalFullwidthCharacterWidth:Math.max(t.typicalFullwidthCharacterWidth,5),canUseHalfwidthRightwardsArrow:t.canUseHalfwidthRightwardsArrow,spaceWidth:Math.max(t.spaceWidth,5),middotWidth:Math.max(t.middotWidth,5),wsmiddotWidth:Math.max(t.wsmiddotWidth,5),maxDigitWidth:Math.max(t.maxDigitWidth,5)},!1)),this._writeToCache(e,t)}return this._cache.get(e)}_createRequest(e,t,i,n){const o=new rD(e,t);return i.push(o),n&&n.push(o),o}_actualReadFontInfo(e){const t=[],i=[],n=this._createRequest("n",0,t,i),o=this._createRequest("\uFF4D",0,t,null),r=this._createRequest(" ",0,t,i),a=this._createRequest("0",0,t,i),l=this._createRequest("1",0,t,i),c=this._createRequest("2",0,t,i),h=this._createRequest("3",0,t,i),d=this._createRequest("4",0,t,i),u=this._createRequest("5",0,t,i),f=this._createRequest("6",0,t,i),m=this._createRequest("7",0,t,i),_=this._createRequest("8",0,t,i),b=this._createRequest("9",0,t,i),w=this._createRequest("\u2192",0,t,i),C=this._createRequest("\uFFEB",0,t,null),v=this._createRequest("\xB7",0,t,i),S=this._createRequest(String.fromCharCode(11825),0,t,null),k="|/-_ilm%";for(let R=0,T=k.length;R.001){L=!1;break}}let I=!0;return L&&C.width!==y&&(I=!1),C.width>w.width&&(I=!1),new zp({pixelRatio:Dc.value,fontFamily:e.fontFamily,fontWeight:e.fontWeight,fontSize:e.fontSize,fontFeatureSettings:e.fontFeatureSettings,lineHeight:e.lineHeight,letterSpacing:e.letterSpacing,isMonospace:L,typicalHalfwidthCharacterWidth:n.width,typicalFullwidthCharacterWidth:o.width,canUseHalfwidthRightwardsArrow:I,spaceWidth:r.width,middotWidth:v.width,wsmiddotWidth:S.width,maxDigitWidth:x},!0)}}class hC{constructor(){this._keys=Object.create(null),this._values=Object.create(null)}has(e){const t=e.getId();return!!this._values[t]}get(e){const t=e.getId();return this._values[t]}put(e,t){const i=e.getId();this._keys[i]=e,this._values[i]=t}remove(e){const t=e.getId();delete this._keys[t],delete this._values[t]}getValues(){return Object.keys(this._keys).map(e=>this._values[e])}}const Up=new hD;var Cn;(function(s){s.serviceIds=new Map,s.DI_TARGET="$di$target",s.DI_DEPENDENCIES="$di$dependencies";function e(t){return t[s.DI_DEPENDENCIES]||[]}s.getServiceDependencies=e})(Cn||(Cn={}));const rn=pe("instantiationService");function dD(s,e,t){e[Cn.DI_TARGET]===e?e[Cn.DI_DEPENDENCIES].push({id:s,index:t}):(e[Cn.DI_DEPENDENCIES]=[{id:s,index:t}],e[Cn.DI_TARGET]=e)}function pe(s){if(Cn.serviceIds.has(s))return Cn.serviceIds.get(s);const e=function(t,i,n){if(arguments.length!==3)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");dD(e,t,n)};return e.toString=()=>s,Cn.serviceIds.set(s,e),e}const kt=pe("codeEditorService");function Rd(s,e){if(!s)throw new Error(e?`Assertion failed (${e})`:"Assertion Failed")}const uD={followsCaret:!0,ignoreCharChanges:!0,alwaysRevealFirst:!0};class fD extends W{constructor(e,t={}){super(),this._onDidUpdate=this._register(new M),this._editor=e,this._options=Nr(t,uD,!1),this.disposed=!1,this.nextIdx=-1,this.ranges=[],this.ignoreSelectionChange=!1,this.revealFirst=Boolean(this._options.alwaysRevealFirst),this._register(this._editor.onDidDispose(()=>this.dispose())),this._register(this._editor.onDidUpdateDiff(()=>this._onDiffUpdated())),this._options.followsCaret&&this._register(this._editor.getModifiedEditor().onDidChangeCursorPosition(i=>{this.ignoreSelectionChange||(this.nextIdx=-1)})),this._options.alwaysRevealFirst&&this._register(this._editor.getModifiedEditor().onDidChangeModel(i=>{this.revealFirst=!0})),this._init()}_init(){this._editor.getLineChanges()}_onDiffUpdated(){this._init(),this._compute(this._editor.getLineChanges()),this.revealFirst&&this._editor.getLineChanges()!==null&&(this.revealFirst=!1,this.nextIdx=-1,this.next(1))}_compute(e){this.ranges=[],e&&e.forEach(t=>{!this._options.ignoreCharChanges&&t.charChanges?t.charChanges.forEach(i=>{this.ranges.push({rhs:!0,range:new D(i.modifiedStartLineNumber,i.modifiedStartColumn,i.modifiedEndLineNumber,i.modifiedEndColumn)})}):t.modifiedEndLineNumber===0?this.ranges.push({rhs:!0,range:new D(t.modifiedStartLineNumber,1,t.modifiedStartLineNumber+1,1)}):this.ranges.push({rhs:!0,range:new D(t.modifiedStartLineNumber,1,t.modifiedEndLineNumber+1,1)})}),this.ranges.sort((t,i)=>D.compareRangesUsingStarts(t.range,i.range)),this._onDidUpdate.fire(this)}_initIdx(e){let t=!1;const i=this._editor.getPosition();if(!i){this.nextIdx=0;return}for(let n=0,o=this.ranges.length;n=this.ranges.length&&(this.nextIdx=0)):(this.nextIdx-=1,this.nextIdx<0&&(this.nextIdx=this.ranges.length-1));const i=this.ranges[this.nextIdx];this.ignoreSelectionChange=!0;try{const n=i.range.getStartPosition();this._editor.setPosition(n),this._editor.revealRangeInCenter(i.range,t)}finally{this.ignoreSelectionChange=!1}}canNavigate(){return this.ranges&&this.ranges.length>0}next(e=0){this._move(!0,e)}previous(e=0){this._move(!1,e)}dispose(){super.dispose(),this.ranges=[],this.disposed=!0}}const d0={ICodeEditor:"vs.editor.ICodeEditor",IDiffEditor:"vs.editor.IDiffEditor"};var Cr;(function(s){s[s.Left=1]="Left",s[s.Center=2]="Center",s[s.Right=4]="Right",s[s.Full=7]="Full"})(Cr||(Cr={}));var Ts;(function(s){s[s.Inline=1]="Inline",s[s.Gutter=2]="Gutter"})(Ts||(Ts={}));var $a;(function(s){s[s.Both=0]="Both",s[s.Right=1]="Right",s[s.Left=2]="Left",s[s.None=3]="None"})($a||($a={}));class Ad{constructor(e){this._textModelResolvedOptionsBrand=void 0,this.tabSize=Math.max(1,e.tabSize|0),this.indentSize=e.tabSize|0,this.insertSpaces=Boolean(e.insertSpaces),this.defaultEOL=e.defaultEOL|0,this.trimAutoWhitespace=Boolean(e.trimAutoWhitespace),this.bracketPairColorizationOptions=e.bracketPairColorizationOptions}equals(e){return this.tabSize===e.tabSize&&this.indentSize===e.indentSize&&this.insertSpaces===e.insertSpaces&&this.defaultEOL===e.defaultEOL&&this.trimAutoWhitespace===e.trimAutoWhitespace&&Ri(this.bracketPairColorizationOptions,e.bracketPairColorizationOptions)}createChangeEvent(e){return{tabSize:this.tabSize!==e.tabSize,indentSize:this.indentSize!==e.indentSize,insertSpaces:this.insertSpaces!==e.insertSpaces,trimAutoWhitespace:this.trimAutoWhitespace!==e.trimAutoWhitespace}}}class Nc{constructor(e,t){this._findMatchBrand=void 0,this.range=e,this.matches=t}}class xg{constructor(e,t,i,n,o,r){this.identifier=e,this.range=t,this.text=i,this.forceMoveMarkers=n,this.isAutoWhitespaceEdit=o,this._isTracked=r}}class gD{constructor(e,t,i){this.regex=e,this.wordSeparators=t,this.simpleSearch=i}}class mD{constructor(e,t,i){this.reverseEdits=e,this.changes=t,this.trimAutoWhitespaceLineNumbers=i}}function pD(s){return!s.isTooLargeForSyncing()&&!s.isForSimpleWidget}var dt;(function(s){s[s.None=0]="None",s[s.Indent=1]="Indent",s[s.IndentOutdent=2]="IndentOutdent",s[s.Outdent=3]="Outdent"})(dt||(dt={}));class Ig{constructor(e){if(this._neutralCharacter=null,this._neutralCharacterSearched=!1,this.open=e.open,this.close=e.close,this._inString=!0,this._inComment=!0,this._inRegEx=!0,Array.isArray(e.notIn))for(let t=0,i=e.notIn.length;t0&&s.getLanguageId(r-1)===n;)r--;return new bD(s,n,r,o+1,s.getStartOffset(r),s.getEndOffset(o))}class bD{constructor(e,t,i,n,o,r){this._scopedLineTokensBrand=void 0,this._actual=e,this.languageId=t,this._firstTokenIndex=i,this._lastTokenIndex=n,this.firstCharOffset=o,this._lastCharOffset=r}getLineContent(){return this._actual.getLineContent().substring(this.firstCharOffset,this._lastCharOffset)}getActualLineContentBefore(e){return this._actual.getLineContent().substring(0,this.firstCharOffset+e)}getTokenCount(){return this._lastTokenIndex-this._firstTokenIndex}findTokenIndexAtOffset(e){return this._actual.findTokenIndexAtOffset(e+this.firstCharOffset)-this._firstTokenIndex}getStandardTokenType(e){return this._actual.getStandardTokenType(e+this._firstTokenIndex)}}function On(s){return(s&3)!==0}class vf{constructor(e){if(e.autoClosingPairs?this._autoClosingPairs=e.autoClosingPairs.map(t=>new Ig(t)):e.brackets?this._autoClosingPairs=e.brackets.map(t=>new Ig({open:t[0],close:t[1]})):this._autoClosingPairs=[],e.colorizedBracketPairs?this._colorizedBracketPairs=dC(e.colorizedBracketPairs.map(t=>[t[0],t[1]])):e.brackets?this._colorizedBracketPairs=dC(e.brackets.map(t=>[t[0],t[1]]).filter(t=>!(t[0]==="<"&&t[1]===">"))):this._colorizedBracketPairs=[],e.__electricCharacterSupport&&e.__electricCharacterSupport.docComment){const t=e.__electricCharacterSupport.docComment;this._autoClosingPairs.push(new Ig({open:t.open,close:t.close||""}))}this._autoCloseBefore=typeof e.autoCloseBefore=="string"?e.autoCloseBefore:vf.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED,this._surroundingPairs=e.surroundingPairs||this._autoClosingPairs}getAutoClosingPairs(){return this._autoClosingPairs}getAutoCloseBeforeSet(){return this._autoCloseBefore}getSurroundingPairs(){return this._surroundingPairs}getColorizedBrackets(){return this._colorizedBracketPairs}}vf.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED=`;:.,=}])> + `;function dC(s){return s.filter(([e,t])=>e!==""&&t!=="")}const uC=typeof Buffer!="undefined";let Eg;class Sf{constructor(e){this.buffer=e,this.byteLength=this.buffer.byteLength}static wrap(e){return uC&&!Buffer.isBuffer(e)&&(e=Buffer.from(e.buffer,e.byteOffset,e.byteLength)),new Sf(e)}toString(){return uC?this.buffer.toString():(Eg||(Eg=new TextDecoder),Eg.decode(this.buffer))}}function CD(s,e){return s[e+0]<<0>>>0|s[e+1]<<8>>>0}function wD(s,e,t){s[t+0]=e&255,e=e>>>8,s[t+1]=e&255}function dn(s,e){return s[e]*Math.pow(2,24)+s[e+1]*Math.pow(2,16)+s[e+2]*Math.pow(2,8)+s[e+3]}function un(s,e,t){s[t+3]=e,e=e>>>8,s[t+2]=e,e=e>>>8,s[t+1]=e,e=e>>>8,s[t]=e}function fC(s,e){return s[e]}function gC(s,e,t){s[t]=e}let Dg;function Ty(){return Dg||(Dg=new TextDecoder("UTF-16LE")),Dg}let Ng;function vD(){return Ng||(Ng=new TextDecoder("UTF-16BE")),Ng}let Tg;function My(){return Tg||(Tg=XS()?Ty():vD()),Tg}const Ry=typeof TextDecoder!="undefined";let ja,$p;Ry?(ja=s=>new yD(s),$p=SD):(ja=s=>new LD,$p=Ay);function SD(s,e,t){const i=new Uint16Array(s.buffer,e,t);return t>0&&(i[0]===65279||i[0]===65534)?Ay(s,e,t):Ty().decode(i)}function Ay(s,e,t){const i=[];let n=0;for(let o=0;o=this._capacity){this._flushBuffer(),this._completedStrings[this._completedStrings.length]=e;return}for(let i=0;i[r[0].toLowerCase(),r[1].toLowerCase()]);const t=[];for(let r=0;r{const[l,c]=r,[h,d]=a;return l===h||l===d||c===h||c===d},n=(r,a)=>{const l=Math.min(r,a),c=Math.max(r,a);for(let h=0;h0&&o.push({open:a,close:l})}return o}class xD{constructor(e,t){this._richEditBracketsBrand=void 0;const i=kD(t);this.brackets=i.map((n,o)=>new gu(e,o,n.open,n.close,ID(n.open,n.close,i,o),ED(n.open,n.close,i,o))),this.forwardRegex=DD(this.brackets),this.reversedRegex=ND(this.brackets),this.textIsBracket={},this.textIsOpenBracket={},this.maxBracketLength=0;for(const n of this.brackets){for(const o of n.open)this.textIsBracket[o]=n,this.textIsOpenBracket[o]=!0,this.maxBracketLength=Math.max(this.maxBracketLength,o.length);for(const o of n.close)this.textIsBracket[o]=n,this.textIsOpenBracket[o]=!1,this.maxBracketLength=Math.max(this.maxBracketLength,o.length)}}}function Oy(s,e,t,i){for(let n=0,o=e.length;n=0&&i.push(a);for(const a of r.close)a.indexOf(s)>=0&&i.push(a)}}function Py(s,e){return s.length-e.length}function yf(s){if(s.length<=1)return s;const e=[],t=new Set;for(const i of s)t.has(i)||(e.push(i),t.add(i));return e}function ID(s,e,t,i){let n=[];n=n.concat(s),n=n.concat(e);for(let o=0,r=n.length;o=0;r--)n[o++]=i.charCodeAt(r);return My().decode(n)}else{const n=[];let o=0;for(let r=i.length-1;r>=0;r--)n[o++]=i.charAt(r);return n.join("")}}let e=null,t=null;return function(n){return e!==n&&(e=n,t=s(e)),t}}();class Ui{static _findPrevBracketInText(e,t,i,n){const o=i.match(e);if(!o)return null;const r=i.length-(o.index||0),a=o[0].length,l=n+r;return new D(t,l-a+1,t,l+1)}static findPrevBracketInRange(e,t,i,n,o){const a=u0(i).substring(i.length-o,i.length-n);return this._findPrevBracketInText(e,t,a,n)}static findNextBracketInText(e,t,i,n){const o=i.match(e);if(!o)return null;const r=o.index||0,a=o[0].length;if(a===0)return null;const l=n+r;return new D(t,l+1,t,l+1+a)}static findNextBracketInRange(e,t,i,n,o){const r=i.substring(n,o);return this.findNextBracketInText(e,t,r,n)}}class MD{constructor(e){this._richEditBrackets=e}getElectricCharacters(){const e=[];if(this._richEditBrackets)for(const t of this._richEditBrackets.brackets)for(const i of t.close){const n=i.charAt(i.length-1);e.push(n)}return wo(e)}onElectricCharacter(e,t,i){if(!this._richEditBrackets||this._richEditBrackets.brackets.length===0)return null;const n=t.findTokenIndexAtOffset(i-1);if(On(t.getStandardTokenType(n)))return null;const o=this._richEditBrackets.reversedRegex,r=t.getLineContent().substring(0,i-1)+e,a=Ui.findPrevBracketInRange(o,1,r,0,r.length);if(!a)return null;const l=r.substring(a.startColumn-1,a.endColumn-1).toLowerCase();if(this._richEditBrackets.textIsOpenBracket[l])return null;const h=t.getActualLineContentBefore(a.startColumn-1);return/^\s*$/.test(h)?{matchOpenBracket:l}:null}}function Hh(s){return s.global&&(s.lastIndex=0),!0}class RD{constructor(e){this._indentationRules=e}shouldIncrease(e){return!!(this._indentationRules&&this._indentationRules.increaseIndentPattern&&Hh(this._indentationRules.increaseIndentPattern)&&this._indentationRules.increaseIndentPattern.test(e))}shouldDecrease(e){return!!(this._indentationRules&&this._indentationRules.decreaseIndentPattern&&Hh(this._indentationRules.decreaseIndentPattern)&&this._indentationRules.decreaseIndentPattern.test(e))}shouldIndentNextLine(e){return!!(this._indentationRules&&this._indentationRules.indentNextLinePattern&&Hh(this._indentationRules.indentNextLinePattern)&&this._indentationRules.indentNextLinePattern.test(e))}shouldIgnore(e){return!!(this._indentationRules&&this._indentationRules.unIndentedLinePattern&&Hh(this._indentationRules.unIndentedLinePattern)&&this._indentationRules.unIndentedLinePattern.test(e))}getIndentMetadata(e){let t=0;return this.shouldIncrease(e)&&(t+=1),this.shouldDecrease(e)&&(t+=2),this.shouldIndentNextLine(e)&&(t+=4),this.shouldIgnore(e)&&(t+=8),t}}class la{constructor(e){e=e||{},e.brackets=e.brackets||[["(",")"],["{","}"],["[","]"]],this._brackets=[],e.brackets.forEach(t=>{const i=la._createOpenBracketRegExp(t[0]),n=la._createCloseBracketRegExp(t[1]);i&&n&&this._brackets.push({open:t[0],openRegExp:i,close:t[1],closeRegExp:n})}),this._regExpRules=e.onEnterRules||[]}onEnter(e,t,i,n){if(e>=3)for(let o=0,r=this._regExpRules.length;oc.reg?(c.reg.lastIndex=0,c.reg.test(c.text)):!0))return a.action}if(e>=2&&i.length>0&&n.length>0)for(let o=0,r=this._brackets.length;o=2&&i.length>0){for(let o=0,r=this._brackets.length;o=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},_C=globalThis&&globalThis.__param||function(s,e){return function(t,i){e(t,i,s)}};class Mg{constructor(e){this.languageId=e}affects(e){return this.languageId?this.languageId===e:!0}}const Eo=pe("languageConfigurationService");let jp=class extends W{constructor(e,t){super(),this.configurationService=e,this.languageService=t,this.onDidChangeEmitter=this._register(new M),this.onDidChange=this.onDidChangeEmitter.event,this.configurations=new Map;const i=new Set(Object.values(Kp));this._register(this.configurationService.onDidChangeConfiguration(n=>{const o=n.change.keys.some(a=>i.has(a)),r=n.change.overrides.filter(([a,l])=>l.some(c=>i.has(c))).map(([a])=>a);if(o)this.configurations.clear(),this.onDidChangeEmitter.fire(new Mg(void 0));else for(const a of r)this.languageService.isRegisteredLanguageId(a)&&(this.configurations.delete(a),this.onDidChangeEmitter.fire(new Mg(a)))})),this._register(Ki.onDidChange(n=>{this.configurations.delete(n.languageId),this.onDidChangeEmitter.fire(new Mg(n.languageId))}))}getLanguageConfiguration(e){let t=this.configurations.get(e);return t||(t=PD(e,this.configurationService,this.languageService),this.configurations.set(e,t)),t}};jp=OD([_C(0,Rt),_C(1,Wt)],jp);function PD(s,e,t){let i=Ki.getLanguageConfiguration(s);if(!i){if(!t.isRegisteredLanguageId(s))throw new Error(`Language id "${s}" is not configured nor known`);i=new Tc(s,{})}const n=FD(i.languageId,e),o=Wy([i.underlyingConfig,n]);return new Tc(i.languageId,o)}const Kp={brackets:"editor.language.brackets",colorizedBracketPairs:"editor.language.colorizedBracketPairs"};function FD(s,e){const t=e.getValue(Kp.brackets,{overrideIdentifier:s}),i=e.getValue(Kp.colorizedBracketPairs,{overrideIdentifier:s});return{brackets:bC(t),colorizedBracketPairs:bC(i)}}function bC(s){if(!!Array.isArray(s))return s.map(e=>{if(!(!Array.isArray(e)||e.length!==2))return[e[0],e[1]]}).filter(e=>!!e)}class CC{constructor(e){this.languageId=e}}class BD{constructor(){this._entries=new Map,this._onDidChange=new M,this.onDidChange=this._onDidChange.event}register(e,t,i=0){let n=this._entries.get(e);n||(n=new VD(e),this._entries.set(e,n));const o=n.register(t,i);return this._onDidChange.fire(new CC(e)),Pe(()=>{o.dispose(),this._onDidChange.fire(new CC(e))})}getLanguageConfiguration(e){const t=this._entries.get(e);return(t==null?void 0:t.getResolvedConfiguration())||null}getComments(e){const t=this.getLanguageConfiguration(e);return t&&t.comments||null}getIndentRulesSupport(e){const t=this.getLanguageConfiguration(e);return t&&t.indentRulesSupport||null}getPrecedingValidLine(e,t,i){const n=e.getLanguageIdAtPosition(t,0);if(t>1){let o,r=-1;for(o=t-1;o>=1;o--){if(e.getLanguageIdAtPosition(o,0)!==n)return r;const a=e.getLineContent(o);if(i.shouldIgnore(a)||/^\s+$/.test(a)||a===""){r=o;continue}return o}}return-1}getInheritIndentForLine(e,t,i,n=!0){if(e<4)return null;const o=this.getIndentRulesSupport(t.getLanguageId());if(!o)return null;if(i<=1)return{indentation:"",action:null};const r=this.getPrecedingValidLine(t,i,o);if(r<0)return null;if(r<1)return{indentation:"",action:null};const a=t.getLineContent(r);if(o.shouldIncrease(a)||o.shouldIndentNextLine(a))return{indentation:Ut(a),action:dt.Indent,line:r};if(o.shouldDecrease(a))return{indentation:Ut(a),action:null,line:r};{if(r===1)return{indentation:Ut(t.getLineContent(r)),action:null,line:r};const l=r-1,c=o.getIndentMetadata(t.getLineContent(l));if(!(c&3)&&c&4){let h=0;for(let d=l-1;d>0;d--)if(!o.shouldIndentNextLine(t.getLineContent(d))){h=d;break}return{indentation:Ut(t.getLineContent(h+1)),action:null,line:h+1}}if(n)return{indentation:Ut(t.getLineContent(r)),action:null,line:r};for(let h=r;h>0;h--){const d=t.getLineContent(h);if(o.shouldIncrease(d))return{indentation:Ut(d),action:dt.Indent,line:h};if(o.shouldIndentNextLine(d)){let u=0;for(let f=h-1;f>0;f--)if(!o.shouldIndentNextLine(t.getLineContent(h))){u=f;break}return{indentation:Ut(t.getLineContent(u+1)),action:null,line:u+1}}else if(o.shouldDecrease(d))return{indentation:Ut(d),action:null,line:h}}return{indentation:Ut(t.getLineContent(1)),action:null,line:1}}}getGoodIndentForLine(e,t,i,n,o){if(e<4)return null;const r=this.getLanguageConfiguration(i);if(!r)return null;const a=this.getIndentRulesSupport(i);if(!a)return null;const l=this.getInheritIndentForLine(e,t,n),c=t.getLineContent(n);if(l){const h=l.line;if(h!==void 0){const d=r.onEnter(e,"",t.getLineContent(h),"");if(d){let u=Ut(t.getLineContent(h));return d.removeText&&(u=u.substring(0,u.length-d.removeText)),d.indentAction===dt.Indent||d.indentAction===dt.IndentOutdent?u=o.shiftIndent(u):d.indentAction===dt.Outdent&&(u=o.unshiftIndent(u)),a.shouldDecrease(c)&&(u=o.unshiftIndent(u)),d.appendText&&(u+=d.appendText),Ut(u)}}return a.shouldDecrease(c)?l.action===dt.Indent?l.indentation:o.unshiftIndent(l.indentation):l.action===dt.Indent?o.shiftIndent(l.indentation):l.indentation}return null}getIndentForEnter(e,t,i,n){if(e<4)return null;t.forceTokenization(i.startLineNumber);const o=t.getLineTokens(i.startLineNumber),r=fu(o,i.startColumn-1),a=r.getLineContent();let l=!1,c;r.firstCharOffset>0&&o.getLanguageId(0)!==r.languageId?(l=!0,c=a.substr(0,i.startColumn-1-r.firstCharOffset)):c=o.getLineContent().substring(0,i.startColumn-1);let h;i.isEmpty()?h=a.substr(i.startColumn-1-r.firstCharOffset):h=this.getScopedLineTokens(t,i.endLineNumber,i.endColumn).getLineContent().substr(i.endColumn-1-r.firstCharOffset);const d=this.getIndentRulesSupport(r.languageId);if(!d)return null;const u=c,f=Ut(c),m={getLineTokens:C=>t.getLineTokens(C),getLanguageId:()=>t.getLanguageId(),getLanguageIdAtPosition:(C,v)=>t.getLanguageIdAtPosition(C,v),getLineContent:C=>C===i.startLineNumber?u:t.getLineContent(C)},_=Ut(o.getLineContent()),b=this.getInheritIndentForLine(e,m,i.startLineNumber+1);if(!b){const C=l?_:f;return{beforeEnter:C,afterEnter:C}}let w=l?_:b.indentation;return b.action===dt.Indent&&(w=n.shiftIndent(w)),d.shouldDecrease(h)&&(w=n.unshiftIndent(w)),{beforeEnter:l?_:f,afterEnter:w}}getIndentActionForType(e,t,i,n,o){if(e<4)return null;const r=this.getScopedLineTokens(t,i.startLineNumber,i.startColumn);if(r.firstCharOffset)return null;const a=this.getIndentRulesSupport(r.languageId);if(!a)return null;const l=r.getLineContent(),c=l.substr(0,i.startColumn-1-r.firstCharOffset);let h;if(i.isEmpty()?h=l.substr(i.startColumn-1-r.firstCharOffset):h=this.getScopedLineTokens(t,i.endLineNumber,i.endColumn).getLineContent().substr(i.endColumn-1-r.firstCharOffset),!a.shouldDecrease(c+h)&&a.shouldDecrease(c+n+h)){const d=this.getInheritIndentForLine(e,t,i.startLineNumber,!1);if(!d)return null;let u=d.indentation;return d.action!==dt.Indent&&(u=o.unshiftIndent(u)),u}return null}getIndentMetadata(e,t){const i=this.getIndentRulesSupport(e.getLanguageId());return!i||t<1||t>e.getLineCount()?null:i.getIndentMetadata(e.getLineContent(t))}getEnterAction(e,t,i){const n=this.getScopedLineTokens(t,i.startLineNumber,i.startColumn),o=this.getLanguageConfiguration(n.languageId);if(!o)return null;const r=n.getLineContent(),a=r.substr(0,i.startColumn-1-n.firstCharOffset);let l;i.isEmpty()?l=r.substr(i.startColumn-1-n.firstCharOffset):l=this.getScopedLineTokens(t,i.endLineNumber,i.endColumn).getLineContent().substr(i.endColumn-1-n.firstCharOffset);let c="";if(i.startLineNumber>1&&n.firstCharOffset===0){const _=this.getScopedLineTokens(t,i.startLineNumber-1);_.languageId===n.languageId&&(c=_.getLineContent())}const h=o.onEnter(e,c,a,l);if(!h)return null;const d=h.indentAction;let u=h.appendText;const f=h.removeText||0;u?d===dt.Indent&&(u=" "+u):d===dt.Indent||d===dt.IndentOutdent?u=" ":u="";let m=this.getIndentationAtPosition(t,i.startLineNumber,i.startColumn);return f&&(m=m.substring(0,m.length-f)),{indentAction:d,appendText:u,removeText:f,indentation:m}}getIndentationAtPosition(e,t,i){const n=e.getLineContent(t);let o=Ut(n);return o.length>i-1&&(o=o.substring(0,i-1)),o}getScopedLineTokens(e,t,i){e.forceTokenization(t);const n=e.getLineTokens(t),o=typeof i=="undefined"?e.getLineMaxColumn(t)-1:i-1;return fu(n,o)}}const Ki=new BD;class VD{constructor(e){this.languageId=e,this._resolved=null,this._entries=[],this._order=0,this._resolved=null}register(e,t){const i=new wC(e,t,++this._order);return this._entries.push(i),this._resolved=null,Pe(()=>{for(let n=0;ne.configuration)))}}function Wy(s){let e={comments:void 0,brackets:void 0,wordPattern:void 0,indentationRules:void 0,onEnterRules:void 0,autoClosingPairs:void 0,surroundingPairs:void 0,autoCloseBefore:void 0,folding:void 0,colorizedBracketPairs:void 0,__electricCharacterSupport:void 0};for(const t of s)e={comments:t.comments||e.comments,brackets:t.brackets||e.brackets,wordPattern:t.wordPattern||e.wordPattern,indentationRules:t.indentationRules||e.indentationRules,onEnterRules:t.onEnterRules||e.onEnterRules,autoClosingPairs:t.autoClosingPairs||e.autoClosingPairs,surroundingPairs:t.surroundingPairs||e.surroundingPairs,autoCloseBefore:t.autoCloseBefore||e.autoCloseBefore,folding:t.folding||e.folding,colorizedBracketPairs:t.colorizedBracketPairs||e.colorizedBracketPairs,__electricCharacterSupport:t.__electricCharacterSupport||e.__electricCharacterSupport};return e}class wC{constructor(e,t,i){this.configuration=e,this.priority=t,this.order=i}static cmp(e,t){return e.priority===t.priority?e.order-t.order:e.priority-t.priority}}class Tc{constructor(e,t){this.languageId=e,this.underlyingConfig=t,this._brackets=null,this._electricCharacter=null,this._onEnterSupport=this.underlyingConfig.brackets||this.underlyingConfig.indentationRules||this.underlyingConfig.onEnterRules?new la(this.underlyingConfig):null,this.comments=Tc._handleComments(this.underlyingConfig),this.characterPair=new vf(this.underlyingConfig),this.wordDefinition=this.underlyingConfig.wordPattern||U1,this.indentationRules=this.underlyingConfig.indentationRules,this.underlyingConfig.indentationRules?this.indentRulesSupport=new RD(this.underlyingConfig.indentationRules):this.indentRulesSupport=null,this.foldingRules=this.underlyingConfig.folding||{}}getWordDefinition(){return ey(this.wordDefinition)}get brackets(){return!this._brackets&&this.underlyingConfig.brackets&&(this._brackets=new xD(this.languageId,this.underlyingConfig.brackets)),this._brackets}get electricCharacter(){return this._electricCharacter||(this._electricCharacter=new MD(this.brackets)),this._electricCharacter}onEnter(e,t,i,n){return this._onEnterSupport?this._onEnterSupport.onEnter(e,t,i,n):null}getAutoClosingPairs(){return new _D(this.characterPair.getAutoClosingPairs())}getAutoCloseBeforeSet(){return this.characterPair.getAutoCloseBeforeSet()}getSurroundingPairs(){return this.characterPair.getSurroundingPairs()}static _handleComments(e){const t=e.comments;if(!t)return null;const i={};if(t.lineComment&&(i.lineCommentToken=t.lineComment),t.blockComment){const[n,o]=t.blockComment;i.blockCommentStartToken=n,i.blockCommentEndToken=o}return i}}ve(Eo,jp);const mu=new class{clone(){return this}equals(s){return this===s}};function WD(s,e){return new Q1([new Ec(0,"",s)],e)}function HD(s,e){const t=new Uint32Array(2);return t[0]=0,t[1]=(s<<0|0<<8|0<<10|1<<14|2<<23)>>>0,new wf(t,e===null?mu:e)}const At=pe("modelService");var $i=globalThis&&globalThis.__awaiter||function(s,e,t,i){function n(o){return o instanceof t?o:new t(function(r){r(o)})}return new(t||(t=Promise))(function(o,r){function a(h){try{c(i.next(h))}catch(d){r(d)}}function l(h){try{c(i.throw(h))}catch(d){r(d)}}function c(h){h.done?o(h.value):n(h.value).then(a,l)}c((i=i.apply(s,e||[])).next())})},zh=globalThis&&globalThis.__asyncValues||function(s){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=s[Symbol.asyncIterator],t;return e?e.call(s):(s=typeof __values=="function"?__values(s):s[Symbol.iterator](),t={},i("next"),i("throw"),i("return"),t[Symbol.asyncIterator]=function(){return this},t);function i(o){t[o]=s[o]&&function(r){return new Promise(function(a,l){r=s[o](r),n(a,l,r.done,r.value)})}}function n(o,r,a,l){Promise.resolve(l).then(function(c){o({value:c,done:a})},r)}};function zD(s){return!!s&&typeof s.then=="function"}function Hy(s){const e=new ml,t=s(e.token),i=new Promise((n,o)=>{const r=e.token.onCancellationRequested(()=>{r.dispose(),e.dispose(),o(new _h)});Promise.resolve(t).then(a=>{r.dispose(),e.dispose(),n(a)},a=>{r.dispose(),e.dispose(),o(a)})});return new class{cancel(){e.cancel()}then(n,o){return i.then(n,o)}catch(n){return this.then(void 0,n)}finally(n){return i.finally(n)}}}class UD{constructor(){this.activePromise=null,this.queuedPromise=null,this.queuedPromiseFactory=null}queue(e){if(this.activePromise){if(this.queuedPromiseFactory=e,!this.queuedPromise){const t=()=>{this.queuedPromise=null;const i=this.queue(this.queuedPromiseFactory);return this.queuedPromiseFactory=null,i};this.queuedPromise=new Promise(i=>{this.activePromise.then(t,t).then(i)})}return new Promise((t,i)=>{this.queuedPromise.then(t,i)})}return this.activePromise=e(),new Promise((t,i)=>{this.activePromise.then(n=>{this.activePromise=null,t(n)},n=>{this.activePromise=null,i(n)})})}}const $D=(s,e)=>{let t=!0;const i=setTimeout(()=>{t=!1,e()},s);return{isTriggered:()=>t,dispose:()=>{clearTimeout(i),t=!1}}},jD=s=>{let e=!0;return queueMicrotask(()=>{e&&(e=!1,s())}),{isTriggered:()=>e,dispose:()=>{e=!1}}},zy=Symbol("MicrotaskDelay");class bl{constructor(e){this.defaultDelay=e,this.deferred=null,this.completionPromise=null,this.doResolve=null,this.doReject=null,this.task=null}trigger(e,t=this.defaultDelay){this.task=e,this.cancelTimeout(),this.completionPromise||(this.completionPromise=new Promise((n,o)=>{this.doResolve=n,this.doReject=o}).then(()=>{if(this.completionPromise=null,this.doResolve=null,this.task){const n=this.task;return this.task=null,n()}}));const i=()=>{var n;this.deferred=null,(n=this.doResolve)===null||n===void 0||n.call(this,null)};return this.deferred=t===zy?jD(i):$D(t,i),this.completionPromise}isTriggered(){var e;return!!(!((e=this.deferred)===null||e===void 0)&&e.isTriggered())}cancel(){this.cancelTimeout(),this.completionPromise&&(this.doReject&&this.doReject(new _h),this.completionPromise=null)}cancelTimeout(){var e;(e=this.deferred)===null||e===void 0||e.dispose(),this.deferred=null}dispose(){this.cancel()}}class KD{constructor(e){this.delayer=new bl(e),this.throttler=new UD}trigger(e,t){return this.delayer.trigger(()=>this.throttler.queue(e),t)}dispose(){this.delayer.dispose()}}function Mc(s,e){return e?new Promise((t,i)=>{const n=setTimeout(()=>{o.dispose(),t()},s),o=e.onCancellationRequested(()=>{clearTimeout(n),o.dispose(),i(new _h)})}):Hy(t=>Mc(s,t))}function qp(s,e=0){const t=setTimeout(s,e);return Pe(()=>clearTimeout(t))}class os{constructor(e,t){this._token=-1,typeof e=="function"&&typeof t=="number"&&this.setIfNotSet(e,t)}dispose(){this.cancel()}cancel(){this._token!==-1&&(clearTimeout(this._token),this._token=-1)}cancelAndSet(e,t){this.cancel(),this._token=setTimeout(()=>{this._token=-1,e()},t)}setIfNotSet(e,t){this._token===-1&&(this._token=setTimeout(()=>{this._token=-1,e()},t))}}class vh{constructor(){this._token=-1}dispose(){this.cancel()}cancel(){this._token!==-1&&(clearInterval(this._token),this._token=-1)}cancelAndSet(e,t){this.cancel(),this._token=setInterval(()=>{e()},t)}}class Tt{constructor(e,t){this.timeoutToken=-1,this.runner=e,this.timeout=t,this.timeoutHandler=this.onTimeout.bind(this)}dispose(){this.cancel(),this.runner=null}cancel(){this.isScheduled()&&(clearTimeout(this.timeoutToken),this.timeoutToken=-1)}schedule(e=this.timeout){this.cancel(),this.timeoutToken=setTimeout(this.timeoutHandler,e)}get delay(){return this.timeout}set delay(e){this.timeout=e}isScheduled(){return this.timeoutToken!==-1}onTimeout(){this.timeoutToken=-1,this.runner&&this.doRun()}doRun(){this.runner&&this.runner()}}let pu;(function(){typeof requestIdleCallback!="function"||typeof cancelIdleCallback!="function"?pu=s=>{YS(()=>{if(e)return;const t=Date.now()+15;s(Object.freeze({didTimeout:!0,timeRemaining(){return Math.max(0,t-Date.now())}}))});let e=!1;return{dispose(){e||(e=!0)}}}:pu=(s,e)=>{const t=requestIdleCallback(s,typeof e=="number"?{timeout:e}:void 0);let i=!1;return{dispose(){i||(i=!0,cancelIdleCallback(t))}}}})();class kf{constructor(e){this._didRun=!1,this._executor=()=>{try{this._value=e()}catch(t){this._error=t}finally{this._didRun=!0}},this._handle=pu(()=>this._executor())}dispose(){this._handle.dispose()}get value(){if(this._didRun||(this._handle.dispose(),this._executor()),this._error)throw this._error;return this._value}get isInitialized(){return this._didRun}}class Uy{constructor(){this.rejected=!1,this.resolved=!1,this.p=new Promise((e,t)=>{this.completeCallback=e,this.errorCallback=t})}get isRejected(){return this.rejected}get isSettled(){return this.rejected||this.resolved}complete(e){return new Promise(t=>{this.completeCallback(e),this.resolved=!0,t()})}cancel(){new Promise(e=>{this.errorCallback(new _h),this.rejected=!0,e()})}}var Gp;(function(s){function e(i){return $i(this,void 0,void 0,function*(){let n;const o=yield Promise.all(i.map(r=>r.then(a=>a,a=>{n||(n=a)})));if(typeof n!="undefined")throw n;return o})}s.settled=e;function t(i){return new Promise((n,o)=>$i(this,void 0,void 0,function*(){try{yield i(n,o)}catch(r){o(r)}}))}s.withAsyncBody=t})(Gp||(Gp={}));class fi{constructor(e){this._state=0,this._results=[],this._error=null,this._onStateChanged=new M,queueMicrotask(()=>$i(this,void 0,void 0,function*(){const t={emitOne:i=>this.emitOne(i),emitMany:i=>this.emitMany(i),reject:i=>this.reject(i)};try{yield Promise.resolve(e(t)),this.resolve()}catch(i){this.reject(i)}finally{t.emitOne=void 0,t.emitMany=void 0,t.reject=void 0}}))}static fromArray(e){return new fi(t=>{t.emitMany(e)})}static fromPromise(e){return new fi(t=>$i(this,void 0,void 0,function*(){t.emitMany(yield e)}))}static fromPromises(e){return new fi(t=>$i(this,void 0,void 0,function*(){yield Promise.all(e.map(i=>$i(this,void 0,void 0,function*(){return t.emitOne(yield i)})))}))}static merge(e){return new fi(t=>$i(this,void 0,void 0,function*(){yield Promise.all(e.map(i=>{var n,o;return $i(this,void 0,void 0,function*(){var r,a;try{for(n=zh(i);o=yield n.next(),!o.done;){const l=o.value;t.emitOne(l)}}catch(l){r={error:l}}finally{try{o&&!o.done&&(a=n.return)&&(yield a.call(n))}finally{if(r)throw r.error}}})}))}))}[Symbol.asyncIterator](){let e=0;return{next:()=>$i(this,void 0,void 0,function*(){do{if(this._state===2)throw this._error;if(e$i(this,void 0,void 0,function*(){var n,o;try{for(var r=zh(e),a;a=yield r.next(),!a.done;){const l=a.value;i.emitOne(t(l))}}catch(l){n={error:l}}finally{try{a&&!a.done&&(o=r.return)&&(yield o.call(r))}finally{if(n)throw n.error}}}))}map(e){return fi.map(this,e)}static filter(e,t){return new fi(i=>$i(this,void 0,void 0,function*(){var n,o;try{for(var r=zh(e),a;a=yield r.next(),!a.done;){const l=a.value;t(l)&&i.emitOne(l)}}catch(l){n={error:l}}finally{try{a&&!a.done&&(o=r.return)&&(yield o.call(r))}finally{if(n)throw n.error}}}))}filter(e){return fi.filter(this,e)}static coalesce(e){return fi.filter(e,t=>!!t)}coalesce(){return fi.coalesce(this)}static toPromise(e){var t,i,n,o;return $i(this,void 0,void 0,function*(){const r=[];try{for(t=zh(e);i=yield t.next(),!i.done;){const a=i.value;r.push(a)}}catch(a){n={error:a}}finally{try{i&&!i.done&&(o=t.return)&&(yield o.call(t))}finally{if(n)throw n.error}}return r})}toPromise(){return fi.toPromise(this)}emitOne(e){this._state===0&&(this._results.push(e),this._onStateChanged.fire())}emitMany(e){this._state===0&&(this._results=this._results.concat(e),this._onStateChanged.fire())}resolve(){this._state===0&&(this._state=1,this._onStateChanged.fire())}reject(e){this._state===0&&(this._state=2,this._error=e,this._onStateChanged.fire())}}fi.EMPTY=fi.fromArray([]);const qD="$initialize";let vC=!1;function Zp(s){!fl||(vC||(vC=!0,console.warn("Could not create web worker(s). Falling back to loading web worker code in main thread, which might cause UI freezes. Please see https://github.com/microsoft/monaco-editor#faq")),console.warn(s.message))}class GD{constructor(e,t,i,n){this.vsWorker=e,this.req=t,this.method=i,this.args=n,this.type=0}}class SC{constructor(e,t,i,n){this.vsWorker=e,this.seq=t,this.res=i,this.err=n,this.type=1}}class ZD{constructor(e,t,i,n){this.vsWorker=e,this.req=t,this.eventName=i,this.arg=n,this.type=2}}class YD{constructor(e,t,i){this.vsWorker=e,this.req=t,this.event=i,this.type=3}}class XD{constructor(e,t){this.vsWorker=e,this.req=t,this.type=4}}class QD{constructor(e){this._workerId=-1,this._handler=e,this._lastSentReq=0,this._pendingReplies=Object.create(null),this._pendingEmitters=new Map,this._pendingEvents=new Map}setWorkerId(e){this._workerId=e}sendMessage(e,t){const i=String(++this._lastSentReq);return new Promise((n,o)=>{this._pendingReplies[i]={resolve:n,reject:o},this._send(new GD(this._workerId,i,e,t))})}listen(e,t){let i=null;const n=new M({onFirstListenerAdd:()=>{i=String(++this._lastSentReq),this._pendingEmitters.set(i,n),this._send(new ZD(this._workerId,i,e,t))},onLastListenerRemove:()=>{this._pendingEmitters.delete(i),this._send(new XD(this._workerId,i)),i=null}});return n.event}handleMessage(e){!e||!e.vsWorker||this._workerId!==-1&&e.vsWorker!==this._workerId||this._handleMessage(e)}_handleMessage(e){switch(e.type){case 1:return this._handleReplyMessage(e);case 0:return this._handleRequestMessage(e);case 2:return this._handleSubscribeEventMessage(e);case 3:return this._handleEventMessage(e);case 4:return this._handleUnsubscribeEventMessage(e)}}_handleReplyMessage(e){if(!this._pendingReplies[e.seq]){console.warn("Got reply to unknown seq");return}let t=this._pendingReplies[e.seq];if(delete this._pendingReplies[e.seq],e.err){let i=e.err;e.err.$isError&&(i=new Error,i.name=e.err.name,i.message=e.err.message,i.stack=e.err.stack),t.reject(i);return}t.resolve(e.res)}_handleRequestMessage(e){let t=e.req;this._handler.handleMessage(e.method,e.args).then(n=>{this._send(new SC(this._workerId,t,n,void 0))},n=>{n.detail instanceof Error&&(n.detail=Gb(n.detail)),this._send(new SC(this._workerId,t,void 0,Gb(n)))})}_handleSubscribeEventMessage(e){const t=e.req,i=this._handler.handleEvent(e.eventName,e.arg)(n=>{this._send(new YD(this._workerId,t,n))});this._pendingEvents.set(t,i)}_handleEventMessage(e){if(!this._pendingEmitters.has(e.req)){console.warn("Got event for unknown req");return}this._pendingEmitters.get(e.req).fire(e.event)}_handleUnsubscribeEventMessage(e){if(!this._pendingEvents.has(e.req)){console.warn("Got unsubscribe for unknown req");return}this._pendingEvents.get(e.req).dispose(),this._pendingEvents.delete(e.req)}_send(e){let t=[];if(e.type===0)for(let i=0;i{this._protocol.handleMessage(c)},c=>{n&&n(c)})),this._protocol=new QD({sendMessage:(c,h)=>{this._worker.postMessage(c,h)},handleMessage:(c,h)=>{if(typeof i[c]!="function")return Promise.reject(new Error("Missing method "+c+" on main thread host."));try{return Promise.resolve(i[c].apply(i,h))}catch(d){return Promise.reject(d)}},handleEvent:(c,h)=>{if(jy(c)){const d=i[c].call(i,h);if(typeof d!="function")throw new Error(`Missing dynamic event ${c} on main thread host.`);return d}if($y(c)){const d=i[c];if(typeof d!="function")throw new Error(`Missing event ${c} on main thread host.`);return d}throw new Error(`Malformed event name ${c}`)}}),this._protocol.setWorkerId(this._worker.getId());let o=null;typeof Ge.require!="undefined"&&typeof Ge.require.getConfig=="function"?o=Ge.require.getConfig():typeof Ge.requirejs!="undefined"&&(o=Ge.requirejs.s.contexts._.config);const r=j1(i);this._onModuleLoaded=this._protocol.sendMessage(qD,[this._worker.getId(),JSON.parse(JSON.stringify(o)),t,r]);const a=(c,h)=>this._request(c,h),l=(c,h)=>this._protocol.listen(c,h);this._lazyProxy=new Promise((c,h)=>{n=h,this._onModuleLoaded.then(d=>{c(eN(d,a,l))},d=>{h(d),this._onError("Worker failed to load "+t,d)})})}getProxyObject(){return this._lazyProxy}_request(e,t){return new Promise((i,n)=>{this._onModuleLoaded.then(()=>{this._protocol.sendMessage(e,t).then(i,n)},n)})}_onError(e,t){console.error(e),console.info(t)}}function $y(s){return s[0]==="o"&&s[1]==="n"&&Xs(s.charCodeAt(2))}function jy(s){return/^onDynamic/.test(s)&&Xs(s.charCodeAt(9))}function eN(s,e,t){const i=r=>function(){const a=Array.prototype.slice.call(arguments,0);return e(r,a)},n=r=>function(a){return t(r,a)};let o={};for(const r of s){if(jy(r)){o[r]=n(r);continue}if($y(r)){o[r]=t(r,void 0);continue}o[r]=i(r)}return o}var Rg;const yC=(Rg=window.trustedTypes)===null||Rg===void 0?void 0:Rg.createPolicy("defaultWorkerFactory",{createScriptURL:s=>s});function tN(s){if(Ge.MonacoEnvironment){if(typeof Ge.MonacoEnvironment.getWorker=="function")return Ge.MonacoEnvironment.getWorker("workerMain.js",s);if(typeof Ge.MonacoEnvironment.getWorkerUrl=="function"){const e=Ge.MonacoEnvironment.getWorkerUrl("workerMain.js",s);return new Worker(yC?yC.createScriptURL(e):e,{name:s})}}throw new Error("You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker")}function iN(s){return typeof s.then=="function"}class nN{constructor(e,t,i,n,o){this.id=t;const r=tN(i);iN(r)?this.worker=r:this.worker=Promise.resolve(r),this.postMessage(e,[]),this.worker.then(a=>{a.onmessage=function(l){n(l.data)},a.onmessageerror=o,typeof a.addEventListener=="function"&&a.addEventListener("error",o)})}getId(){return this.id}postMessage(e,t){this.worker&&this.worker.then(i=>i.postMessage(e,t))}dispose(){this.worker&&this.worker.then(e=>e.terminate()),this.worker=null}}class xf{constructor(e){this._label=e,this._webWorkerFailedBeforeError=!1}create(e,t,i){let n=++xf.LAST_WORKER_ID;if(this._webWorkerFailedBeforeError)throw this._webWorkerFailedBeforeError;return new nN(e,n,this._label||"anonymous"+n,t,o=>{Zp(o),this._webWorkerFailedBeforeError=o,i(o)})}}xf.LAST_WORKER_ID=0;class qs{constructor(e,t,i,n){this.originalStart=e,this.originalLength=t,this.modifiedStart=i,this.modifiedLength=n}getOriginalEnd(){return this.originalStart+this.originalLength}getModifiedEnd(){return this.modifiedStart+this.modifiedLength}}function g0(s,e){switch(typeof s){case"object":return s===null?Ds(349,e):Array.isArray(s)?oN(s,e):rN(s,e);case"string":return m0(s,e);case"boolean":return sN(s,e);case"number":return Ds(s,e);case"undefined":return Ds(937,e);default:return Ds(617,e)}}function Ds(s,e){return(e<<5)-e+s|0}function sN(s,e){return Ds(s?433:863,e)}function m0(s,e){e=Ds(149417,e);for(let t=0,i=s.length;tg0(i,t),e)}function rN(s,e){return e=Ds(181387,e),Object.keys(s).sort().reduce((t,i)=>(t=m0(i,t),g0(s[i],t)),e)}function Ag(s,e,t=32){const i=t-e,n=~((1<>>i)>>>0}function LC(s,e=0,t=s.byteLength,i=0){for(let n=0;nt.toString(16).padStart(2,"0")).join(""):aN((s>>>0).toString(16),e/4)}class If{constructor(){this._h0=1732584193,this._h1=4023233417,this._h2=2562383102,this._h3=271733878,this._h4=3285377520,this._buff=new Uint8Array(64+3),this._buffDV=new DataView(this._buff.buffer),this._buffLen=0,this._totalLen=0,this._leftoverHighSurrogate=0,this._finished=!1}update(e){const t=e.length;if(t===0)return;const i=this._buff;let n=this._buffLen,o=this._leftoverHighSurrogate,r,a;for(o!==0?(r=o,a=-1,o=0):(r=e.charCodeAt(0),a=0);;){let l=r;if(gt(r))if(a+1>>6,e[t++]=128|(i&63)>>>0):i<65536?(e[t++]=224|(i&61440)>>>12,e[t++]=128|(i&4032)>>>6,e[t++]=128|(i&63)>>>0):(e[t++]=240|(i&1835008)>>>18,e[t++]=128|(i&258048)>>>12,e[t++]=128|(i&4032)>>>6,e[t++]=128|(i&63)>>>0),t>=64&&(this._step(),t-=64,this._totalLen+=64,e[0]=e[64+0],e[1]=e[64+1],e[2]=e[64+2]),t}digest(){return this._finished||(this._finished=!0,this._leftoverHighSurrogate&&(this._leftoverHighSurrogate=0,this._buffLen=this._push(this._buff,this._buffLen,65533)),this._totalLen+=this._buffLen,this._wrapUp()),Ml(this._h0)+Ml(this._h1)+Ml(this._h2)+Ml(this._h3)+Ml(this._h4)}_wrapUp(){this._buff[this._buffLen++]=128,LC(this._buff,this._buffLen),this._buffLen>56&&(this._step(),LC(this._buff));const e=8*this._totalLen;this._buffDV.setUint32(56,Math.floor(e/4294967296),!1),this._buffDV.setUint32(60,e%4294967296,!1),this._step()}_step(){const e=If._bigBlock32,t=this._buffDV;for(let d=0;d<64;d+=4)e.setUint32(d,t.getUint32(d,!1),!1);for(let d=64;d<320;d+=4)e.setUint32(d,Ag(e.getUint32(d-12,!1)^e.getUint32(d-32,!1)^e.getUint32(d-56,!1)^e.getUint32(d-64,!1),1),!1);let i=this._h0,n=this._h1,o=this._h2,r=this._h3,a=this._h4,l,c,h;for(let d=0;d<80;d++)d<20?(l=n&o|~n&r,c=1518500249):d<40?(l=n^o^r,c=1859775393):d<60?(l=n&o|n&r|o&r,c=2400959708):(l=n^o^r,c=3395469782),h=Ag(i,5)+l+a+c+e.getUint32(d*4,!1)&4294967295,a=r,r=o,o=Ag(n,30),n=i,i=h;this._h0=this._h0+i&4294967295,this._h1=this._h1+n&4294967295,this._h2=this._h2+o&4294967295,this._h3=this._h3+r&4294967295,this._h4=this._h4+a&4294967295}}If._bigBlock32=new DataView(new ArrayBuffer(320));class kC{constructor(e){this.source=e}getElements(){const e=this.source,t=new Int32Array(e.length);for(let i=0,n=e.length;i0||this.m_modifiedCount>0)&&this.m_changes.push(new qs(this.m_originalStart,this.m_originalCount,this.m_modifiedStart,this.m_modifiedCount)),this.m_originalCount=0,this.m_modifiedCount=0,this.m_originalStart=1073741824,this.m_modifiedStart=1073741824}AddOriginalElement(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_originalCount++}AddModifiedElement(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_modifiedCount++}getChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes}getReverseChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes.reverse(),this.m_changes}}class ks{constructor(e,t,i=null){this.ContinueProcessingPredicate=i,this._originalSequence=e,this._modifiedSequence=t;const[n,o,r]=ks._getElements(e),[a,l,c]=ks._getElements(t);this._hasStrings=r&&c,this._originalStringElements=n,this._originalElementsOrHash=o,this._modifiedStringElements=a,this._modifiedElementsOrHash=l,this.m_forwardHistory=[],this.m_reverseHistory=[]}static _isStringArray(e){return e.length>0&&typeof e[0]=="string"}static _getElements(e){const t=e.getElements();if(ks._isStringArray(t)){const i=new Int32Array(t.length);for(let n=0,o=t.length;n=e&&n>=i&&this.ElementsAreEqual(t,n);)t--,n--;if(e>t||i>n){let d;return i<=n?(Kr.Assert(e===t+1,"originalStart should only be one more than originalEnd"),d=[new qs(e,0,i,n-i+1)]):e<=t?(Kr.Assert(i===n+1,"modifiedStart should only be one more than modifiedEnd"),d=[new qs(e,t-e+1,i,0)]):(Kr.Assert(e===t+1,"originalStart should only be one more than originalEnd"),Kr.Assert(i===n+1,"modifiedStart should only be one more than modifiedEnd"),d=[]),d}const r=[0],a=[0],l=this.ComputeRecursionPoint(e,t,i,n,r,a,o),c=r[0],h=a[0];if(l!==null)return l;if(!o[0]){const d=this.ComputeDiffRecursive(e,c,i,h,o);let u=[];return o[0]?u=[new qs(c+1,t-(c+1)+1,h+1,n-(h+1)+1)]:u=this.ComputeDiffRecursive(c+1,t,h+1,n,o),this.ConcatenateChanges(d,u)}return[new qs(e,t-e+1,i,n-i+1)]}WALKTRACE(e,t,i,n,o,r,a,l,c,h,d,u,f,m,_,b,w,C){let v=null,S=null,k=new xC,x=t,L=i,y=f[0]-b[0]-n,I=-1073741824,R=this.m_forwardHistory.length-1;do{const T=y+e;T===x||T=0&&(c=this.m_forwardHistory[R],e=c[0],x=1,L=c.length-1)}while(--R>=-1);if(v=k.getReverseChanges(),C[0]){let T=f[0]+1,P=b[0]+1;if(v!==null&&v.length>0){const F=v[v.length-1];T=Math.max(T,F.getOriginalEnd()),P=Math.max(P,F.getModifiedEnd())}S=[new qs(T,u-T+1,P,_-P+1)]}else{k=new xC,x=r,L=a,y=f[0]-b[0]-l,I=1073741824,R=w?this.m_reverseHistory.length-1:this.m_reverseHistory.length-2;do{const T=y+o;T===x||T=h[T+1]?(d=h[T+1]-1,m=d-y-l,d>I&&k.MarkNextChange(),I=d+1,k.AddOriginalElement(d+1,m+1),y=T+1-o):(d=h[T-1],m=d-y-l,d>I&&k.MarkNextChange(),I=d,k.AddModifiedElement(d+1,m+1),y=T-1-o),R>=0&&(h=this.m_reverseHistory[R],o=h[0],x=1,L=h.length-1)}while(--R>=-1);S=k.getChanges()}return this.ConcatenateChanges(v,S)}ComputeRecursionPoint(e,t,i,n,o,r,a){let l=0,c=0,h=0,d=0,u=0,f=0;e--,i--,o[0]=0,r[0]=0,this.m_forwardHistory=[],this.m_reverseHistory=[];const m=t-e+(n-i),_=m+1,b=new Int32Array(_),w=new Int32Array(_),C=n-i,v=t-e,S=e-i,k=t-n,L=(v-C)%2===0;b[C]=e,w[v]=t,a[0]=!1;for(let y=1;y<=m/2+1;y++){let I=0,R=0;h=this.ClipDiagonalBound(C-y,y,C,_),d=this.ClipDiagonalBound(C+y,y,C,_);for(let P=h;P<=d;P+=2){P===h||PI+R&&(I=l,R=c),!L&&Math.abs(P-v)<=y-1&&l>=w[P])return o[0]=l,r[0]=c,F<=w[P]&&1447>0&&y<=1447+1?this.WALKTRACE(C,h,d,S,v,u,f,k,b,w,l,t,o,c,n,r,L,a):null}const T=(I-e+(R-i)-y)/2;if(this.ContinueProcessingPredicate!==null&&!this.ContinueProcessingPredicate(I,T))return a[0]=!0,o[0]=I,r[0]=R,T>0&&1447>0&&y<=1447+1?this.WALKTRACE(C,h,d,S,v,u,f,k,b,w,l,t,o,c,n,r,L,a):(e++,i++,[new qs(e,t-e+1,i,n-i+1)]);u=this.ClipDiagonalBound(v-y,y,v,_),f=this.ClipDiagonalBound(v+y,y,v,_);for(let P=u;P<=f;P+=2){P===u||P=w[P+1]?l=w[P+1]-1:l=w[P-1],c=l-(P-v)-k;const F=l;for(;l>e&&c>i&&this.ElementsAreEqual(l,c);)l--,c--;if(w[P]=l,L&&Math.abs(P-C)<=y&&l<=b[P])return o[0]=l,r[0]=c,F>=b[P]&&1447>0&&y<=1447+1?this.WALKTRACE(C,h,d,S,v,u,f,k,b,w,l,t,o,c,n,r,L,a):null}if(y<=1447){let P=new Int32Array(d-h+2);P[0]=C-h+1,qr.Copy2(b,h,P,1,d-h+1),this.m_forwardHistory.push(P),P=new Int32Array(f-u+2),P[0]=v-u+1,qr.Copy2(w,u,P,1,f-u+1),this.m_reverseHistory.push(P)}}return this.WALKTRACE(C,h,d,S,v,u,f,k,b,w,l,t,o,c,n,r,L,a)}PrettifyChanges(e){for(let t=0;t0,a=i.modifiedLength>0;for(;i.originalStart+i.originalLength=0;t--){const i=e[t];let n=0,o=0;if(t>0){const d=e[t-1];n=d.originalStart+d.originalLength,o=d.modifiedStart+d.modifiedLength}const r=i.originalLength>0,a=i.modifiedLength>0;let l=0,c=this._boundaryScore(i.originalStart,i.originalLength,i.modifiedStart,i.modifiedLength);for(let d=1;;d++){const u=i.originalStart-d,f=i.modifiedStart-d;if(uc&&(c=_,l=d)}i.originalStart-=l,i.modifiedStart-=l;const h=[null];if(t>0&&this.ChangesOverlap(e[t-1],e[t],h)){e[t-1]=h[0],e.splice(t,1),t++;continue}}if(this._hasStrings)for(let t=1,i=e.length;t0&&f>l&&(l=f,c=d,h=u)}return l>0?[c,h]:null}_contiguousSequenceScore(e,t,i){let n=0;for(let o=0;o=this._originalElementsOrHash.length-1?!0:this._hasStrings&&/^\s*$/.test(this._originalStringElements[e])}_OriginalRegionIsBoundary(e,t){if(this._OriginalIsBoundary(e)||this._OriginalIsBoundary(e-1))return!0;if(t>0){const i=e+t;if(this._OriginalIsBoundary(i-1)||this._OriginalIsBoundary(i))return!0}return!1}_ModifiedIsBoundary(e){return e<=0||e>=this._modifiedElementsOrHash.length-1?!0:this._hasStrings&&/^\s*$/.test(this._modifiedStringElements[e])}_ModifiedRegionIsBoundary(e,t){if(this._ModifiedIsBoundary(e)||this._ModifiedIsBoundary(e-1))return!0;if(t>0){const i=e+t;if(this._ModifiedIsBoundary(i-1)||this._ModifiedIsBoundary(i))return!0}return!1}_boundaryScore(e,t,i,n){const o=this._OriginalRegionIsBoundary(e,t)?1:0,r=this._ModifiedRegionIsBoundary(i,n)?1:0;return o+r}ConcatenateChanges(e,t){let i=[];if(e.length===0||t.length===0)return t.length>0?t:e;if(this.ChangesOverlap(e[e.length-1],t[0],i)){const n=new Array(e.length+t.length-1);return qr.Copy(e,0,n,0,e.length-1),n[e.length-1]=i[0],qr.Copy(t,1,n,e.length,t.length-1),n}else{const n=new Array(e.length+t.length);return qr.Copy(e,0,n,0,e.length),qr.Copy(t,0,n,e.length,t.length),n}}ChangesOverlap(e,t,i){if(Kr.Assert(e.originalStart<=t.originalStart,"Left change is not less than or equal to right change"),Kr.Assert(e.modifiedStart<=t.modifiedStart,"Left change is not less than or equal to right change"),e.originalStart+e.originalLength>=t.originalStart||e.modifiedStart+e.modifiedLength>=t.modifiedStart){const n=e.originalStart;let o=e.originalLength;const r=e.modifiedStart;let a=e.modifiedLength;return e.originalStart+e.originalLength>=t.originalStart&&(o=t.originalStart+t.originalLength-e.originalStart),e.modifiedStart+e.modifiedLength>=t.modifiedStart&&(a=t.modifiedStart+t.modifiedLength-e.modifiedStart),i[0]=new qs(n,o,r,a),!0}else return i[0]=null,!1}ClipDiagonalBound(e,t,i,n){if(e>=0&&e0&&t.originalLength<20&&t.modifiedLength>0&&t.modifiedLength<20&&o()){const f=i.createCharSequence(e,t.originalStart,t.originalStart+t.originalLength-1),m=n.createCharSequence(e,t.modifiedStart,t.modifiedStart+t.modifiedLength-1);let _=Ky(f,m,o,!0).changes;a&&(_=dN(_)),u=[];for(let b=0,w=_.length;b1&&_>1;){const b=u.charCodeAt(m-2),w=f.charCodeAt(_-2);if(b!==w)break;m--,_--}(m>1||_>1)&&this._pushTrimWhitespaceCharChange(n,o+1,1,m,r+1,1,_)}{let m=Xp(u,1),_=Xp(f,1);const b=u.length+1,w=f.length+1;for(;m!0;const e=Date.now();return()=>Date.now()-e255?255:s|0}function Gr(s){return s<0?0:s>4294967295?4294967295:s|0}class fN{constructor(e){this.values=e,this.prefixSum=new Uint32Array(e.length),this.prefixSumValidIndex=new Int32Array(1),this.prefixSumValidIndex[0]=-1}insertValues(e,t){e=Gr(e);const i=this.values,n=this.prefixSum,o=t.length;return o===0?!1:(this.values=new Uint32Array(i.length+o),this.values.set(i.subarray(0,e),0),this.values.set(i.subarray(e),e+o),this.values.set(t,e),e-1=0&&this.prefixSum.set(n.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}setValue(e,t){return e=Gr(e),t=Gr(t),this.values[e]===t?!1:(this.values[e]=t,e-1=i.length)return!1;const o=i.length-e;return t>=o&&(t=o),t===0?!1:(this.values=new Uint32Array(i.length-t),this.values.set(i.subarray(0,e),0),this.values.set(i.subarray(e+t),e),this.prefixSum=new Uint32Array(this.values.length),e-1=0&&this.prefixSum.set(n.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}getTotalSum(){return this.values.length===0?0:this._getPrefixSum(this.values.length-1)}getPrefixSum(e){return e<0?0:(e=Gr(e),this._getPrefixSum(e))}_getPrefixSum(e){if(e<=this.prefixSumValidIndex[0])return this.prefixSum[e];let t=this.prefixSumValidIndex[0]+1;t===0&&(this.prefixSum[0]=this.values[0],t++),e>=this.values.length&&(e=this.values.length-1);for(let i=t;i<=e;i++)this.prefixSum[i]=this.prefixSum[i-1]+this.values[i];return this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],e),this.prefixSum[e]}getIndexOf(e){e=Math.floor(e),this.getTotalSum();let t=0,i=this.values.length-1,n=0,o=0,r=0;for(;t<=i;)if(n=t+(i-t)/2|0,o=this.prefixSum[n],r=o-this.values[n],e=o)t=n+1;else break;return new qy(n,e-r)}}class gN{constructor(e){this._values=e,this._isValid=!1,this._validEndIndex=-1,this._prefixSum=[],this._indexBySum=[]}getTotalSum(){return this._ensureValid(),this._indexBySum.length}getPrefixSum(e){return this._ensureValid(),e===0?0:this._prefixSum[e-1]}getIndexOf(e){this._ensureValid();const t=this._indexBySum[e],i=t>0?this._prefixSum[t-1]:0;return new qy(t,e-i)}removeValues(e,t){this._values.splice(e,t),this._invalidate(e)}insertValues(e,t){this._values=pf(this._values,e,t),this._invalidate(e)}_invalidate(e){this._isValid=!1,this._validEndIndex=Math.min(this._validEndIndex,e-1)}_ensureValid(){if(!this._isValid){for(let e=this._validEndIndex+1,t=this._values.length;e0?this._prefixSum[e-1]:0;this._prefixSum[e]=n+i;for(let o=0;o=0&&e<256?this._asciiMap[e]=i:this._map.set(e,i)}get(e){return e>=0&&e<256?this._asciiMap[e]:this._map.get(e)||this._defaultValue}}class pN{constructor(e,t,i){const n=new Uint8Array(e*t);for(let o=0,r=e*t;ot&&(t=l),a>i&&(i=a),c>i&&(i=c)}t++,i++;const n=new pN(i,t,0);for(let o=0,r=e.length;o=this._maxCharCode?0:this._states.get(e,t)}}let Og=null;function bN(){return Og===null&&(Og=new _N([[1,104,2],[1,72,2],[1,102,6],[1,70,6],[2,116,3],[2,84,3],[3,116,4],[3,84,4],[4,112,5],[4,80,5],[5,115,9],[5,83,9],[5,58,10],[6,105,7],[6,73,7],[7,108,8],[7,76,8],[8,101,9],[8,69,9],[9,58,10],[10,47,11],[11,47,12]])),Og}let Rl=null;function CN(){if(Rl===null){Rl=new Sh(0);const s=` <>'"\u3001\u3002\uFF61\uFF64\uFF0C\uFF0E\uFF1A\uFF1B\u2018\u3008\u300C\u300E\u3014\uFF08\uFF3B\uFF5B\uFF62\uFF63\uFF5D\uFF3D\uFF09\u3015\u300F\u300D\u3009\u2019\uFF40\uFF5E\u2026`;for(let t=0;tn);if(n>0){const a=t.charCodeAt(n-1),l=t.charCodeAt(r);(a===40&&l===41||a===91&&l===93||a===123&&l===125)&&r--}return{range:{startLineNumber:i,startColumn:n+1,endLineNumber:i,endColumn:r+2},url:t.substring(n,r+1)}}static computeLinks(e,t=bN()){const i=CN(),n=[];for(let o=1,r=e.getLineCount();o<=r;o++){const a=e.getLineContent(o),l=a.length;let c=0,h=0,d=0,u=1,f=!1,m=!1,_=!1,b=!1;for(;c=0?(n+=i?1:-1,n<0?n=e.length-1:n%=e.length,e[n]):null}}Qp.INSTANCE=new Qp;class vN extends Sh{constructor(e){super(0);for(let t=0,i=e.length;t(e.hasOwnProperty(t)||(e[t]=s(t)),e[t])}const Ka=SN(s=>new vN(s)),yN=999;class Bo{constructor(e,t,i,n){this.searchString=e,this.isRegex=t,this.matchCase=i,this.wordSeparators=n}parseSearchRequest(){if(this.searchString==="")return null;let e;this.isRegex?e=LN(this.searchString):e=this.searchString.indexOf(` +`)>=0;let t=null;try{t=Sy(this.searchString,this.isRegex,{matchCase:this.matchCase,wholeWord:!1,multiline:e,global:!0,unicode:!0})}catch{return null}if(!t)return null;let i=!this.isRegex&&!e;return i&&this.searchString.toLowerCase()!==this.searchString.toUpperCase()&&(i=this.matchCase),new gD(t,this.wordSeparators?Ka(this.wordSeparators):null,i?this.searchString:null)}}function LN(s){if(!s||s.length===0)return!1;for(let e=0,t=s.length;e=t)break;const n=s.charCodeAt(e);if(n===110||n===114||n===87)return!0}return!1}function Uo(s,e,t){if(!t)return new Nc(s,null);const i=[];for(let n=0,o=e.length;n>0);t[o]>=e?n=o-1:t[o+1]>=e?(i=o,n=o):i=o+1}return i+1}}class Uh{static findMatches(e,t,i,n,o){const r=t.parseSearchRequest();return r?r.regex.multiline?this._doFindMatchesMultiline(e,i,new ca(r.wordSeparators,r.regex),n,o):this._doFindMatchesLineByLine(e,i,r,n,o):[]}static _getMultilineMatchRange(e,t,i,n,o,r){let a,l=0;n?(l=n.findLineFeedCountBeforeOffset(o),a=t+o+l):a=t+o;let c;if(n){const f=n.findLineFeedCountBeforeOffset(o+r.length)-l;c=a+r.length+f}else c=a+r.length;const h=e.getPositionAt(a),d=e.getPositionAt(c);return new D(h.lineNumber,h.column,d.lineNumber,d.column)}static _doFindMatchesMultiline(e,t,i,n,o){const r=e.getOffsetAt(t.getStartPosition()),a=e.getValueInRange(t,1),l=e.getEOL()===`\r +`?new DC(a):null,c=[];let h=0,d;for(i.reset(0);d=i.next(a);)if(c[h++]=Uo(this._getMultilineMatchRange(e,r,a,l,d.index,d[0]),d,n),h>=o)return c;return c}static _doFindMatchesLineByLine(e,t,i,n,o){const r=[];let a=0;if(t.startLineNumber===t.endLineNumber){const c=e.getLineContent(t.startLineNumber).substring(t.startColumn-1,t.endColumn-1);return a=this._findMatchesInLine(i,c,t.startLineNumber,t.startColumn-1,a,r,n,o),r}const l=e.getLineContent(t.startLineNumber).substring(t.startColumn-1);a=this._findMatchesInLine(i,l,t.startLineNumber,t.startColumn-1,a,r,n,o);for(let c=t.startLineNumber+1;c=l))return o;return o}const h=new ca(e.wordSeparators,e.regex);let d;h.reset(0);do if(d=h.next(t),d&&(r[o++]=Uo(new D(i,d.index+1+n,i,d.index+1+d[0].length+n),d,a),o>=l))return o;while(d);return o}static findNextMatch(e,t,i,n){const o=t.parseSearchRequest();if(!o)return null;const r=new ca(o.wordSeparators,o.regex);return o.regex.multiline?this._doFindNextMatchMultiline(e,i,r,n):this._doFindNextMatchLineByLine(e,i,r,n)}static _doFindNextMatchMultiline(e,t,i,n){const o=new A(t.lineNumber,1),r=e.getOffsetAt(o),a=e.getLineCount(),l=e.getValueInRange(new D(o.lineNumber,o.column,a,e.getLineMaxColumn(a)),1),c=e.getEOL()===`\r +`?new DC(l):null;i.reset(t.column-1);let h=i.next(l);return h?Uo(this._getMultilineMatchRange(e,r,l,c,h.index,h[0]),h,n):t.lineNumber!==1||t.column!==1?this._doFindNextMatchMultiline(e,new A(1,1),i,n):null}static _doFindNextMatchLineByLine(e,t,i,n){const o=e.getLineCount(),r=t.lineNumber,a=e.getLineContent(r),l=this._findFirstMatchInLine(i,a,r,t.column,n);if(l)return l;for(let c=1;c<=o;c++){const h=(r+c-1)%o,d=e.getLineContent(h+1),u=this._findFirstMatchInLine(i,d,h+1,1,n);if(u)return u}return null}static _findFirstMatchInLine(e,t,i,n,o){e.reset(n-1);const r=e.next(t);return r?Uo(new D(i,r.index+1,i,r.index+1+r[0].length),r,o):null}static findPreviousMatch(e,t,i,n){const o=t.parseSearchRequest();if(!o)return null;const r=new ca(o.wordSeparators,o.regex);return o.regex.multiline?this._doFindPreviousMatchMultiline(e,i,r,n):this._doFindPreviousMatchLineByLine(e,i,r,n)}static _doFindPreviousMatchMultiline(e,t,i,n){const o=this._doFindMatchesMultiline(e,new D(1,1,t.lineNumber,t.column),i,n,10*yN);if(o.length>0)return o[o.length-1];const r=e.getLineCount();return t.lineNumber!==r||t.column!==e.getLineMaxColumn(r)?this._doFindPreviousMatchMultiline(e,new A(r,e.getLineMaxColumn(r)),i,n):null}static _doFindPreviousMatchLineByLine(e,t,i,n){const o=e.getLineCount(),r=t.lineNumber,a=e.getLineContent(r).substring(0,t.column-1),l=this._findLastMatchInLine(i,a,r,n);if(l)return l;for(let c=1;c<=o;c++){const h=(o+r-c-1)%o,d=e.getLineContent(h+1),u=this._findLastMatchInLine(i,d,h+1,n);if(u)return u}return null}static _findLastMatchInLine(e,t,i,n){let o=null,r;for(e.reset(0);r=e.next(t);)o=Uo(new D(i,r.index+1,i,r.index+1+r[0].length),r,n);return o}}function kN(s,e,t,i,n){if(i===0)return!0;const o=e.charCodeAt(i-1);if(s.get(o)!==0||o===13||o===10)return!0;if(n>0){const r=e.charCodeAt(i);if(s.get(r)!==0)return!0}return!1}function xN(s,e,t,i,n){if(i+n===t)return!0;const o=e.charCodeAt(i+n);if(s.get(o)!==0||o===13||o===10)return!0;if(n>0){const r=e.charCodeAt(i+n-1);if(s.get(r)!==0)return!0}return!1}function p0(s,e,t,i,n){return kN(s,e,t,i,n)&&xN(s,e,t,i,n)}class ca{constructor(e,t){this._wordSeparators=e,this._searchRegex=t,this._prevMatchStartIndex=-1,this._prevMatchLength=0}reset(e){this._searchRegex.lastIndex=e,this._prevMatchStartIndex=-1,this._prevMatchLength=0}next(e){const t=e.length;let i;do{if(this._prevMatchStartIndex+this._prevMatchLength===t||(i=this._searchRegex.exec(e),!i))return null;const n=i.index,o=i[0].length;if(n===this._prevMatchStartIndex&&o===this._prevMatchLength){if(o===0){hu(e,t,this._searchRegex.lastIndex)>65535?this._searchRegex.lastIndex+=2:this._searchRegex.lastIndex+=1;continue}return null}if(this._prevMatchStartIndex=n,this._prevMatchLength=o,!this._wordSeparators||p0(this._wordSeparators,e,t,n,o))return i}while(i);return null}}class IN{static computeUnicodeHighlights(e,t,i){const n=i?i.startLineNumber:1,o=i?i.endLineNumber:e.getLineCount(),r=new NC(t),a=r.getCandidateCodePoints();let l;a==="allNonBasicAscii"?l=new RegExp("[^\\t\\n\\r\\x20-\\x7E]","g"):l=new RegExp(`${EN(Array.from(a))}`,"g");const c=new ca(null,l),h=[];let d=!1,u,f=0,m=0,_=0;e:for(let b=n,w=o;b<=w;b++){const C=e.getLineContent(b),v=C.length;c.reset(0);do if(u=c.next(C),u){let S=u.index,k=u.index+u[0].length;if(S>0){const I=C.charCodeAt(S-1);gt(I)&&S--}if(k+1=I){d=!0;break e}h.push(new D(b,S+1,b,k+1))}}while(u)}return{ranges:h,hasMore:d,ambiguousCharacterCount:f,invisibleCharacterCount:m,nonBasicAsciiCharacterCount:_}}static computeUnicodeHighlightReason(e,t){const i=new NC(t);switch(i.shouldHighlightNonBasicASCII(e,null)){case 0:return null;case 2:return{kind:1};case 3:{const o=e.codePointAt(0),r=i.ambiguousCharacters.getPrimaryConfusable(o),a=sn.getLocales().filter(l=>!sn.getInstance(new Set([...t.allowedLocales,l])).isAmbiguous(o));return{kind:0,confusableWith:String.fromCodePoint(r),notAmbiguousInLocales:a}}case 1:return{kind:2}}}}function EN(s,e){return`[${Qn(s.map(i=>String.fromCodePoint(i)).join(""))}]`}class NC{constructor(e){this.options=e,this.allowedCodePoints=new Set(e.allowedCodePoints),this.ambiguousCharacters=sn.getInstance(new Set(e.allowedLocales))}getCandidateCodePoints(){if(this.options.nonBasicASCII)return"allNonBasicAscii";const e=new Set;if(this.options.invisibleCharacters)for(const t of ho.codePoints)TC(String.fromCodePoint(t))||e.add(t);if(this.options.ambiguousCharacters)for(const t of this.ambiguousCharacters.getConfusableCodePoints())e.add(t);for(const t of this.allowedCodePoints)e.delete(t);return e}shouldHighlightNonBasicASCII(e,t){const i=e.codePointAt(0);if(this.allowedCodePoints.has(i))return 0;if(this.options.nonBasicASCII)return 1;let n=!1,o=!1;if(t)for(let r of t){const a=r.codePointAt(0),l=o0(r);n=n||l,!l&&!this.ambiguousCharacters.isAmbiguous(a)&&!ho.isInvisibleCharacter(a)&&(o=!0)}return!n&&o?0:this.options.invisibleCharacters&&!TC(e)&&ho.isInvisibleCharacter(i)?2:this.options.ambiguousCharacters&&this.ambiguousCharacters.isAmbiguous(i)?3:0}}function TC(s){return s===" "||s===` +`||s===" "}var Ao=globalThis&&globalThis.__awaiter||function(s,e,t,i){function n(o){return o instanceof t?o:new t(function(r){r(o)})}return new(t||(t=Promise))(function(o,r){function a(h){try{c(i.next(h))}catch(d){r(d)}}function l(h){try{c(i.throw(h))}catch(d){r(d)}}function c(h){h.done?o(h.value):n(h.value).then(a,l)}c((i=i.apply(s,e||[])).next())})};class DN extends mN{get uri(){return this._uri}get eol(){return this._eol}getValue(){return this.getText()}getLinesContent(){return this._lines.slice(0)}getLineCount(){return this._lines.length}getLineContent(e){return this._lines[e-1]}getWordAtPosition(e,t){const i=Ic(e.column,ey(t),this._lines[e.lineNumber-1],0);return i?new D(e.lineNumber,i.startColumn,e.lineNumber,i.endColumn):null}words(e){const t=this._lines,i=this._wordenize.bind(this);let n=0,o="",r=0,a=[];return{*[Symbol.iterator](){for(;;)if(rthis._lines.length)t=this._lines.length,i=this._lines[t-1].length+1,n=!0;else{const o=this._lines[t-1].length+1;i<1?(i=1,n=!0):i>o&&(i=o,n=!0)}return n?{lineNumber:t,column:i}:e}}class wr{constructor(e,t){this._host=e,this._models=Object.create(null),this._foreignModuleFactory=t,this._foreignModule=null}dispose(){this._models=Object.create(null)}_getModel(e){return this._models[e]}_getModels(){const e=[];return Object.keys(this._models).forEach(t=>e.push(this._models[t])),e}acceptNewModel(e){this._models[e.url]=new DN(we.parse(e.url),e.lines,e.EOL,e.versionId)}acceptModelChanged(e,t){if(!this._models[e])return;this._models[e].onEvents(t)}acceptRemovedModel(e){!this._models[e]||delete this._models[e]}computeUnicodeHighlights(e,t,i){return Ao(this,void 0,void 0,function*(){const n=this._getModel(e);return n?IN.computeUnicodeHighlights(n,t,i):{ranges:[],hasMore:!1,ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0}})}computeDiff(e,t,i,n){return Ao(this,void 0,void 0,function*(){const o=this._getModel(e),r=this._getModel(t);if(!o||!r)return null;const a=o.getLinesContent(),l=r.getLinesContent(),h=new uN(a,l,{shouldComputeCharChanges:!0,shouldPostProcessCharChanges:!0,shouldIgnoreTrimWhitespace:i,shouldMakePrettyDiff:!0,maxComputationTime:n}).computeDiff(),d=h.changes.length>0?!1:this._modelsAreIdentical(o,r);return{quitEarly:h.quitEarly,identical:d,changes:h.changes}})}_modelsAreIdentical(e,t){const i=e.getLineCount(),n=t.getLineCount();if(i!==n)return!1;for(let o=1;o<=i;o++){const r=e.getLineContent(o),a=t.getLineContent(o);if(r!==a)return!1}return!0}computeMoreMinimalEdits(e,t){return Ao(this,void 0,void 0,function*(){const i=this._getModel(e);if(!i)return t;const n=[];let o;t=t.slice(0).sort((r,a)=>{if(r.range&&a.range)return D.compareRangesUsingStarts(r.range,a.range);const l=r.range?0:1,c=a.range?0:1;return l-c});for(let{range:r,text:a,eol:l}of t){if(typeof l=="number"&&(o=l),D.isEmpty(r)&&!a)continue;const c=i.getValueInRange(r);if(a=a.replace(/\r\n|\n|\r/g,i.eol),c===a)continue;if(Math.max(a.length,c.length)>wr._diffLimit){n.push({range:r,text:a});continue}const h=lN(c,a,!1),d=i.offsetAt(D.lift(r).getStartPosition());for(const u of h){const f=i.positionAt(d+u.originalStart),m=i.positionAt(d+u.originalStart+u.originalLength),_={text:a.substr(u.modifiedStart,u.modifiedLength),range:{startLineNumber:f.lineNumber,startColumn:f.column,endLineNumber:m.lineNumber,endColumn:m.column}};i.getValueInRange(_.range)!==_.text&&n.push(_)}}return typeof o=="number"&&n.push({eol:o,text:"",range:{startLineNumber:0,startColumn:0,endLineNumber:0,endColumn:0}}),n})}computeLinks(e){return Ao(this,void 0,void 0,function*(){const t=this._getModel(e);return t?wN(t):null})}textualSuggest(e,t,i,n){return Ao(this,void 0,void 0,function*(){const o=new Rr(!0),r=new RegExp(i,n),a=new Set;e:for(let l of e){const c=this._getModel(l);if(!!c){for(let h of c.words(r))if(!(h===t||!isNaN(Number(h)))&&(a.add(h),a.size>wr._suggestionsLimit))break e}}return{words:Array.from(a),duration:o.elapsed()}})}computeWordRanges(e,t,i,n){return Ao(this,void 0,void 0,function*(){const o=this._getModel(e);if(!o)return Object.create(null);const r=new RegExp(i,n),a=Object.create(null);for(let l=t.startLineNumber;lthis._host.fhr(a,l)),getMirrorModels:()=>this._getModels()};return this._foreignModuleFactory?(this._foreignModule=this._foreignModuleFactory(r,t),Promise.resolve(j1(this._foreignModule))):Promise.reject(new Error("Unexpected usage"))}fmr(e,t){if(!this._foreignModule||typeof this._foreignModule[e]!="function")return Promise.reject(new Error("Missing requestHandler or method: "+e));try{return Promise.resolve(this._foreignModule[e].apply(this._foreignModule,t))}catch(i){return Promise.reject(i)}}}wr._diffLimit=1e5;wr._suggestionsLimit=1e4;typeof importScripts=="function"&&(Ge.monaco=by());const Gy=pe("textResourceConfigurationService"),Zy=pe("textResourcePropertiesService"),Do=pe("logService");var wn;(function(s){s[s.Trace=0]="Trace",s[s.Debug=1]="Debug",s[s.Info=2]="Info",s[s.Warning=3]="Warning",s[s.Error=4]="Error",s[s.Critical=5]="Critical",s[s.Off=6]="Off"})(wn||(wn={}));const Yy=wn.Info;class NN extends W{constructor(){super(...arguments),this.level=Yy,this._onDidChangeLogLevel=this._register(new M)}setLevel(e){this.level!==e&&(this.level=e,this._onDidChangeLogLevel.fire(this.level))}getLevel(){return this.level}}class TN extends NN{constructor(e=Yy){super(),this.setLevel(e)}trace(e,...t){this.getLevel()<=wn.Trace&&console.log("%cTRACE","color: #888",e,...t)}debug(e,...t){this.getLevel()<=wn.Debug&&console.log("%cDEBUG","background: #eee; color: #888",e,...t)}info(e,...t){this.getLevel()<=wn.Info&&console.log("%c INFO","color: #33f",e,...t)}error(e,...t){this.getLevel()<=wn.Error&&console.log("%c ERR","color: #f33",e,...t)}dispose(){}}class MN extends W{constructor(e){super(),this.logger=e,this._register(e)}getLevel(){return this.logger.getLevel()}trace(e,...t){this.logger.trace(e,...t)}debug(e,...t){this.logger.debug(e,...t)}info(e,...t){this.logger.info(e,...t)}error(e,...t){this.logger.error(e,...t)}}const be=pe("ILanguageFeaturesService");var RN=globalThis&&globalThis.__decorate||function(s,e,t,i){var n=arguments.length,o=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},Al=globalThis&&globalThis.__param||function(s,e){return function(t,i){e(t,i,s)}},Jp=globalThis&&globalThis.__awaiter||function(s,e,t,i){function n(o){return o instanceof t?o:new t(function(r){r(o)})}return new(t||(t=Promise))(function(o,r){function a(h){try{c(i.next(h))}catch(d){r(d)}}function l(h){try{c(i.throw(h))}catch(d){r(d)}}function c(h){h.done?o(h.value):n(h.value).then(a,l)}c((i=i.apply(s,e||[])).next())})};const MC=60*1e3,RC=5*60*1e3;function $o(s,e){const t=s.getModel(e);return!(!t||t.isTooLargeForSyncing())}let e_=class extends W{constructor(e,t,i,n,o){super(),this._modelService=e,this._workerManager=this._register(new ON(this._modelService,n)),this._logService=i,this._register(o.linkProvider.register({language:"*",hasAccessToAllModels:!0},{provideLinks:(r,a)=>$o(this._modelService,r.uri)?this._workerManager.withWorker().then(l=>l.computeLinks(r.uri)).then(l=>l&&{links:l}):Promise.resolve({links:[]})})),this._register(o.completionProvider.register("*",new AN(this._workerManager,t,this._modelService,n)))}dispose(){super.dispose()}canComputeUnicodeHighlights(e){return $o(this._modelService,e)}computedUnicodeHighlights(e,t,i){return this._workerManager.withWorker().then(n=>n.computedUnicodeHighlights(e,t,i))}computeDiff(e,t,i,n){return this._workerManager.withWorker().then(o=>o.computeDiff(e,t,i,n))}computeMoreMinimalEdits(e,t){if($1(t)){if(!$o(this._modelService,e))return Promise.resolve(t);const i=Rr.create(!0),n=this._workerManager.withWorker().then(o=>o.computeMoreMinimalEdits(e,t));return n.finally(()=>this._logService.trace("FORMAT#computeMoreMinimalEdits",e.toString(!0),i.elapsed())),Promise.race([n,Mc(1e3).then(()=>t)])}else return Promise.resolve(void 0)}canNavigateValueSet(e){return $o(this._modelService,e)}navigateValueSet(e,t,i){return this._workerManager.withWorker().then(n=>n.navigateValueSet(e,t,i))}canComputeWordRanges(e){return $o(this._modelService,e)}computeWordRanges(e,t){return this._workerManager.withWorker().then(i=>i.computeWordRanges(e,t))}};e_=RN([Al(0,At),Al(1,Gy),Al(2,Do),Al(3,Eo),Al(4,be)],e_);class AN{constructor(e,t,i,n){this.languageConfigurationService=n,this._debugDisplayName="wordbasedCompletions",this._workerManager=e,this._configurationService=t,this._modelService=i}provideCompletionItems(e,t){return Jp(this,void 0,void 0,function*(){const i=this._configurationService.getValue(e.uri,t,"editor");if(!i.wordBasedSuggestions)return;const n=[];if(i.wordBasedSuggestionsMode==="currentDocument")$o(this._modelService,e.uri)&&n.push(e.uri);else for(const d of this._modelService.getModels())!$o(this._modelService,d.uri)||(d===e?n.unshift(d.uri):(i.wordBasedSuggestionsMode==="allDocuments"||d.getLanguageId()===e.getLanguageId())&&n.push(d.uri));if(n.length===0)return;const o=this.languageConfigurationService.getLanguageConfiguration(e.getLanguageId()).getWordDefinition(),r=e.getWordAtPosition(t),a=r?new D(t.lineNumber,r.startColumn,t.lineNumber,r.endColumn):D.fromPositions(t),l=a.setEndPosition(t.lineNumber,t.column),h=yield(yield this._workerManager.withWorker()).textualSuggest(n,r==null?void 0:r.word,o);if(!!h)return{duration:h.duration,suggestions:h.words.map(d=>({kind:18,label:d,insertText:d,range:{insert:l,replace:a}}))}})}}class ON extends W{constructor(e,t){super(),this.languageConfigurationService=t,this._modelService=e,this._editorWorkerClient=null,this._lastWorkerUsedTime=new Date().getTime(),this._register(new vh).cancelAndSet(()=>this._checkStopIdleWorker(),Math.round(RC/2)),this._register(this._modelService.onModelRemoved(n=>this._checkStopEmptyWorker()))}dispose(){this._editorWorkerClient&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null),super.dispose()}_checkStopEmptyWorker(){if(!this._editorWorkerClient)return;this._modelService.getModels().length===0&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null)}_checkStopIdleWorker(){if(!this._editorWorkerClient)return;new Date().getTime()-this._lastWorkerUsedTime>RC&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null)}withWorker(){return this._lastWorkerUsedTime=new Date().getTime(),this._editorWorkerClient||(this._editorWorkerClient=new Xy(this._modelService,!1,"editorWorkerService",this.languageConfigurationService)),Promise.resolve(this._editorWorkerClient)}}class PN extends W{constructor(e,t,i){if(super(),this._syncedModels=Object.create(null),this._syncedModelsLastUsedTime=Object.create(null),this._proxy=e,this._modelService=t,!i){const n=new vh;n.cancelAndSet(()=>this._checkStopModelSync(),Math.round(MC/2)),this._register(n)}}dispose(){for(let e in this._syncedModels)Me(this._syncedModels[e]);this._syncedModels=Object.create(null),this._syncedModelsLastUsedTime=Object.create(null),super.dispose()}ensureSyncedResources(e,t){for(const i of e){const n=i.toString();this._syncedModels[n]||this._beginModelSync(i,t),this._syncedModels[n]&&(this._syncedModelsLastUsedTime[n]=new Date().getTime())}}_checkStopModelSync(){const e=new Date().getTime(),t=[];for(let i in this._syncedModelsLastUsedTime)e-this._syncedModelsLastUsedTime[i]>MC&&t.push(i);for(const i of t)this._stopModelSync(i)}_beginModelSync(e,t){const i=this._modelService.getModel(e);if(!i||!t&&i.isTooLargeForSyncing())return;const n=e.toString();this._proxy.acceptNewModel({url:i.uri.toString(),lines:i.getLinesContent(),EOL:i.getEOL(),versionId:i.getVersionId()});const o=new se;o.add(i.onDidChangeContent(r=>{this._proxy.acceptModelChanged(n.toString(),r)})),o.add(i.onWillDispose(()=>{this._stopModelSync(n)})),o.add(Pe(()=>{this._proxy.acceptRemovedModel(n)})),this._syncedModels[n]=o}_stopModelSync(e){const t=this._syncedModels[e];delete this._syncedModels[e],delete this._syncedModelsLastUsedTime[e],Me(t)}}class AC{constructor(e){this._instance=e,this._proxyObj=Promise.resolve(this._instance)}dispose(){this._instance.dispose()}getProxyObject(){return this._proxyObj}}class Pg{constructor(e){this._workerClient=e}fhr(e,t){return this._workerClient.fhr(e,t)}}class Xy extends W{constructor(e,t,i,n){super(),this.languageConfigurationService=n,this._disposed=!1,this._modelService=e,this._keepIdleModels=t,this._workerFactory=new xf(i),this._worker=null,this._modelManager=null}fhr(e,t){throw new Error("Not implemented!")}_getOrCreateWorker(){if(!this._worker)try{this._worker=this._register(new JD(this._workerFactory,"vs/editor/common/services/editorSimpleWorker",new Pg(this)))}catch(e){Zp(e),this._worker=new AC(new wr(new Pg(this),null))}return this._worker}_getProxy(){return this._getOrCreateWorker().getProxyObject().then(void 0,e=>(Zp(e),this._worker=new AC(new wr(new Pg(this),null)),this._getOrCreateWorker().getProxyObject()))}_getOrCreateModelManager(e){return this._modelManager||(this._modelManager=this._register(new PN(e,this._modelService,this._keepIdleModels))),this._modelManager}_withSyncedResources(e,t=!1){return Jp(this,void 0,void 0,function*(){return this._disposed?Promise.reject(nE()):this._getProxy().then(i=>(this._getOrCreateModelManager(i).ensureSyncedResources(e,t),i))})}computedUnicodeHighlights(e,t,i){return this._withSyncedResources([e]).then(n=>n.computeUnicodeHighlights(e.toString(),t,i))}computeDiff(e,t,i,n){return this._withSyncedResources([e,t],!0).then(o=>o.computeDiff(e.toString(),t.toString(),i,n))}computeMoreMinimalEdits(e,t){return this._withSyncedResources([e]).then(i=>i.computeMoreMinimalEdits(e.toString(),t))}computeLinks(e){return this._withSyncedResources([e]).then(t=>t.computeLinks(e.toString()))}textualSuggest(e,t,i){return Jp(this,void 0,void 0,function*(){const n=yield this._withSyncedResources(e),o=i.source,r=Lg(i);return n.textualSuggest(e.map(a=>a.toString()),t,o,r)})}computeWordRanges(e,t){return this._withSyncedResources([e]).then(i=>{const n=this._modelService.getModel(e);if(!n)return Promise.resolve(null);const o=this.languageConfigurationService.getLanguageConfiguration(n.getLanguageId()).getWordDefinition(),r=o.source,a=Lg(o);return i.computeWordRanges(e.toString(),t,r,a)})}navigateValueSet(e,t,i){return this._withSyncedResources([e]).then(n=>{const o=this._modelService.getModel(e);if(!o)return null;const r=this.languageConfigurationService.getLanguageConfiguration(o.getLanguageId()).getWordDefinition(),a=r.source,l=Lg(r);return n.navigateValueSet(e.toString(),t,i,a,l)})}dispose(){super.dispose(),this._disposed=!0}}function FN(s,e,t){return new BN(s,e,t)}class BN extends Xy{constructor(e,t,i){super(e,i.keepIdleModels||!1,i.label,t),this._foreignModuleId=i.moduleId,this._foreignModuleCreateData=i.createData||null,this._foreignModuleHost=i.host||null,this._foreignProxy=null}fhr(e,t){if(!this._foreignModuleHost||typeof this._foreignModuleHost[e]!="function")return Promise.reject(new Error("Missing method "+e+" or missing main thread foreign host."));try{return Promise.resolve(this._foreignModuleHost[e].apply(this._foreignModuleHost,t))}catch(i){return Promise.reject(i)}}_getForeignProxy(){return this._foreignProxy||(this._foreignProxy=this._getProxy().then(e=>{const t=this._foreignModuleHost?j1(this._foreignModuleHost):[];return e.loadForeignModule(this._foreignModuleId,this._foreignModuleCreateData,t).then(i=>{this._foreignModuleCreateData=null;const n=(a,l)=>e.fmr(a,l),o=(a,l)=>function(){const c=Array.prototype.slice.call(arguments,0);return l(a,c)},r={};for(const a of i)r[a]=o(a,n);return r})})),this._foreignProxy}getProxy(){return this._getForeignProxy()}withSyncedResources(e){return this._withSyncedResources(e).then(t=>this.getProxy())}}class vt{constructor(e,t,i){this._lineTokensBrand=void 0,this._tokens=e,this._tokensCount=this._tokens.length>>>1,this._text=t,this._languageIdCodec=i}static createEmpty(e,t){const i=vt.defaultTokenMetadata,n=new Uint32Array(2);return n[0]=e.length,n[1]=i,new vt(n,e,t)}equals(e){return e instanceof vt?this.slicedEquals(e,0,this._tokensCount):!1}slicedEquals(e,t,i){if(this._text!==e._text||this._tokensCount!==e._tokensCount)return!1;const n=t<<1,o=n+(i<<1);for(let r=n;r0?this._tokens[e-1<<1]:0}getMetadata(e){return this._tokens[(e<<1)+1]}getLanguageId(e){const t=this._tokens[(e<<1)+1],i=pi.getLanguageId(t);return this._languageIdCodec.decodeLanguageId(i)}getStandardTokenType(e){const t=this._tokens[(e<<1)+1];return pi.getTokenType(t)}getForeground(e){const t=this._tokens[(e<<1)+1];return pi.getForeground(t)}getClassName(e){const t=this._tokens[(e<<1)+1];return pi.getClassNameFromMetadata(t)}getInlineStyle(e,t){const i=this._tokens[(e<<1)+1];return pi.getInlineStyleFromMetadata(i,t)}getPresentation(e){const t=this._tokens[(e<<1)+1];return pi.getPresentationFromMetadata(t)}getEndOffset(e){return this._tokens[e<<1]}findTokenIndexAtOffset(e){return vt.findIndexInTokensArray(this._tokens,e)}inflate(){return this}sliceAndInflate(e,t,i){return new _0(this,e,t,i)}static convertToEndOffset(e,t){const n=(e.length>>>1)-1;for(let o=0;o>>1)-1;for(;it&&(n=o)}return i}withInserted(e){if(e.length===0)return this;let t=0,i=0,n="";const o=new Array;let r=0;for(;;){const a=tr){n+=this._text.substring(r,l.offset);const c=this._tokens[(t<<1)+1];o.push(n.length,c),r=l.offset}n+=l.text,o.push(n.length,l.tokenMetadata),i++}else break}return new vt(new Uint32Array(o),n,this._languageIdCodec)}}vt.defaultTokenMetadata=(0<<10|1<<14|2<<23)>>>0;class _0{constructor(e,t,i,n){this._source=e,this._startOffset=t,this._endOffset=i,this._deltaOffset=n,this._firstTokenIndex=e.findTokenIndexAtOffset(t),this._tokensCount=0;for(let o=this._firstTokenIndex,r=e.getCount();o=i);o++)this._tokensCount++}getMetadata(e){return this._source.getMetadata(this._firstTokenIndex+e)}getLanguageId(e){return this._source.getLanguageId(this._firstTokenIndex+e)}getLineContent(){return this._source.getLineContent().substring(this._startOffset,this._endOffset)}equals(e){return e instanceof _0?this._startOffset===e._startOffset&&this._endOffset===e._endOffset&&this._deltaOffset===e._deltaOffset&&this._source.slicedEquals(e._source,this._firstTokenIndex,this._tokensCount):!1}getCount(){return this._tokensCount}getForeground(e){return this._source.getForeground(this._firstTokenIndex+e)}getEndOffset(e){const t=this._source.getEndOffset(this._firstTokenIndex+e);return Math.min(this._endOffset,t)-this._startOffset+this._deltaOffset}getClassName(e){return this._source.getClassName(this._firstTokenIndex+e)}getInlineStyle(e,t){return this._source.getInlineStyle(this._firstTokenIndex+e,t)}getPresentation(e){return this._source.getPresentation(this._firstTokenIndex+e)}findTokenIndexAtOffset(e){return this._source.findTokenIndexAtOffset(e+this._startOffset-this._deltaOffset)-this._firstTokenIndex}}class Qi{constructor(e,t,i,n){this.startColumn=e,this.endColumn=t,this.className=i,this.type=n,this._lineDecorationBrand=void 0}static _equals(e,t){return e.startColumn===t.startColumn&&e.endColumn===t.endColumn&&e.className===t.className&&e.type===t.type}static equalsArr(e,t){const i=e.length,n=t.length;if(i!==n)return!1;for(let o=0;o=o||(a[l++]=new Qi(Math.max(1,c.startColumn-n+1),Math.min(r+1,c.endColumn-n+1),c.className,c.type));return a}static filter(e,t,i,n){if(e.length===0)return[];const o=[];let r=0;for(let a=0,l=e.length;at||h.isEmpty()&&(c.type===0||c.type===3))continue;const d=h.startLineNumber===t?h.startColumn:i,u=h.endLineNumber===t?h.endColumn:n;o[r++]=new Qi(d,u,c.inlineClassName,c.type)}return o}static _typeCompare(e,t){const i=[2,0,1,3];return i[e]-i[t]}static compare(e,t){if(e.startColumn!==t.startColumn)return e.startColumn-t.startColumn;if(e.endColumn!==t.endColumn)return e.endColumn-t.endColumn;const i=Qi._typeCompare(e.type,t.type);return i!==0?i:e.className!==t.className?e.className0&&this.stopOffsets[0]0&&t=e){this.stopOffsets.splice(n,0,e),this.classNames.splice(n,0,t),this.metadata.splice(n,0,i);break}this.count++}}class VN{static normalize(e,t){if(t.length===0)return[];const i=[],n=new Cu;let o=0;for(let r=0,a=t.length;r1){const _=e.charCodeAt(c-2);gt(_)&&c--}if(h>1){const _=e.charCodeAt(h-2);gt(_)&&h--}const f=c-1,m=h-2;o=n.consumeLowerThan(f,o,i),n.count===0&&(o=f),n.insert(m,d,u)}return n.consumeLowerThan(1073741824,o,i),i}}class mt{constructor(e,t,i){this._linePartBrand=void 0,this.endIndex=e,this.type=t,this.metadata=i}isWhitespace(){return!!(this.metadata&1)}isPseudoAfter(){return!!(this.metadata&4)}}class WN{constructor(e,t){this.startOffset=e,this.endOffset=t}equals(e){return this.startOffset===e.startOffset&&this.endOffset===e.endOffset}}class Cl{constructor(e,t,i,n,o,r,a,l,c,h,d,u,f,m,_,b,w,C,v){this.useMonospaceOptimizations=e,this.canUseHalfwidthRightwardsArrow=t,this.lineContent=i,this.continuesWithWrappedLine=n,this.isBasicASCII=o,this.containsRTL=r,this.fauxIndentLength=a,this.lineTokens=l,this.lineDecorations=c.sort(Qi.compare),this.tabSize=h,this.startVisibleColumn=d,this.spaceWidth=u,this.stopRenderingLineAfter=_,this.renderWhitespace=b==="all"?4:b==="boundary"?1:b==="selection"?2:b==="trailing"?3:0,this.renderControlCharacters=w,this.fontLigatures=C,this.selectionsOnLine=v&&v.sort((x,L)=>x.startOffset>>16}static getCharIndex(e){return(e&65535)>>>0}setColumnInfo(e,t,i,n){const o=(t<<16|i<<0)>>>0;this._data[e-1]=o,this._absoluteOffsets[e-1]=n+i}getAbsoluteOffset(e){return this._absoluteOffsets.length===0?0:this._absoluteOffsets[e-1]}charOffsetToPartData(e){return this.length===0?0:e<0?this._data[0]:e>=this.length?this._data[this.length-1]:this._data[e]}getDomPosition(e){const t=this.charOffsetToPartData(e-1),i=Hn.getPartIndex(t),n=Hn.getCharIndex(t);return new b0(i,n)}getColumn(e,t){return this.partDataToCharOffset(e.partIndex,t,e.charIndex)+1}partDataToCharOffset(e,t,i){if(this.length===0)return 0;const n=(e<<16|i<<0)>>>0;let o=0,r=this.length-1;for(;o+1>>1,b=this._data[_];if(b===n)return _;b>n?r=_:o=_}if(o===r)return o;const a=this._data[o],l=this._data[r];if(a===n)return o;if(l===n)return r;const c=Hn.getPartIndex(a),h=Hn.getCharIndex(a),d=Hn.getPartIndex(l);let u;c!==d?u=t:u=Hn.getCharIndex(l);const f=i-h,m=u-i;return f<=m?o:r}}class t_{constructor(e,t,i){this._renderLineOutputBrand=void 0,this.characterMapping=e,this.containsRTL=t,this.containsForeignElements=i}}function C0(s,e){if(s.lineContent.length===0){if(s.lineDecorations.length>0){e.appendASCIIString("");let t=0,i=0,n=0;for(const r of s.lineDecorations)(r.type===1||r.type===2)&&(e.appendASCIIString(''),r.type===1&&(n|=1,t++),r.type===2&&(n|=2,i++));e.appendASCIIString("");const o=new Hn(1,t+i);return o.setColumnInfo(1,t,0,0),new t_(o,!1,n)}return e.appendASCIIString(""),new t_(new Hn(0,0),!1,0)}return ZN(UN(s),e)}class HN{constructor(e,t,i,n){this.characterMapping=e,this.html=t,this.containsRTL=i,this.containsForeignElements=n}}function Ef(s){const e=ja(1e4),t=C0(s,e);return new HN(t.characterMapping,e.build(),t.containsRTL,t.containsForeignElements)}class zN{constructor(e,t,i,n,o,r,a,l,c,h,d,u,f,m,_){this.fontIsMonospace=e,this.canUseHalfwidthRightwardsArrow=t,this.lineContent=i,this.len=n,this.isOverflowing=o,this.parts=r,this.containsForeignElements=a,this.fauxIndentLength=l,this.tabSize=c,this.startVisibleColumn=h,this.containsRTL=d,this.spaceWidth=u,this.renderSpaceCharCode=f,this.renderWhitespace=m,this.renderControlCharacters=_}}function UN(s){const e=s.lineContent;let t,i;s.stopRenderingLineAfter!==-1&&s.stopRenderingLineAfter0){for(let r=0,a=s.lineDecorations.length;r0&&(i[n++]=new mt(e,"",0));for(let o=0,r=s.getCount();o=t){i[n++]=new mt(t,l,0);break}i[n++]=new mt(a,l,0)}return i}function jN(s,e,t){let i=0;const n=[];let o=0;if(t)for(let r=0,a=e.length;r=50&&(n[o++]=new mt(u+1,h,d),f=u+1,u=-1);f!==c&&(n[o++]=new mt(c,h,d))}else n[o++]=l;i=c}else for(let r=0,a=e.length;r50){const d=l.type,u=l.metadata,f=Math.ceil(h/50);for(let m=1;m=8234&&s<=8238||s>=8294&&s<=8297||s>=8206&&s<=8207||s===1564}function KN(s,e){const t=[];let i=new mt(0,"",0),n=0;for(const o of e){const r=o.endIndex;for(;ni.endIndex&&(i=new mt(n,o.type,o.metadata),t.push(i)),i=new mt(n+1,"mtkcontrol",o.metadata),t.push(i))}n>i.endIndex&&(i=new mt(r,o.type,o.metadata),t.push(i))}return t}function qN(s,e,t,i){const n=s.continuesWithWrappedLine,o=s.fauxIndentLength,r=s.tabSize,a=s.startVisibleColumn,l=s.useMonospaceOptimizations,c=s.selectionsOnLine,h=s.renderWhitespace===1,d=s.renderWhitespace===3,u=s.renderSpaceWidth!==s.spaceWidth,f=[];let m=0,_=0,b=i[_].type,w=i[_].endIndex;const C=i.length;let v=!1,S=Ci(e),k;S===-1?(v=!0,S=t,k=t):k=pl(e);let x=!1,L=0,y=c&&c[L],I=a%r;for(let T=o;T=y.endOffset&&(L++,y=c&&c[L]);let F;if(Tk)F=!0;else if(P===9)F=!0;else if(P===32)if(h)if(x)F=!0;else{const j=T+1T),F&&d&&(F=v||T>k),x){if(!F||!l&&I>=r){if(u){const j=m>0?f[m-1].endIndex:o;for(let z=j+1;z<=T;z++)f[m++]=new mt(z,"mtkw",1)}else f[m++]=new mt(T,"mtkw",1);I=I%r}}else(T===w||F&&T>o)&&(f[m++]=new mt(T,b,0),I=I%r);for(P===9?I=r:vo(P)?I+=2:I++,x=F;T===w&&(_++,_0?e.charCodeAt(t-1):0,P=t>1?e.charCodeAt(t-2):0;T===32&&P!==32&&P!==9||(R=!0)}else R=!0;if(R)if(u){const T=m>0?f[m-1].endIndex:o;for(let P=T+1;P<=t;P++)f[m++]=new mt(P,"mtkw",1)}else f[m++]=new mt(t,"mtkw",1);else f[m++]=new mt(t,b,0);return f}function GN(s,e,t,i){i.sort(Qi.compare);const n=VN.normalize(s,i),o=n.length;let r=0;const a=[];let l=0,c=0;for(let d=0,u=t.length;dc&&(c=w.startOffset,a[l++]=new mt(c,_,b)),w.endOffset+1<=m)c=w.endOffset+1,a[l++]=new mt(c,_+" "+w.className,b|w.metadata),r++;else{c=m,a[l++]=new mt(c,_+" "+w.className,b|w.metadata);break}}m>c&&(c=m,a[l++]=new mt(c,_,b))}const h=t[t.length-1].endIndex;if(r'):e.appendASCIIString("");for(let I=0,R=l.length;I=c&&(ae+=Xe)}}for(z&&(e.appendASCIIString(' style="width:'),e.appendASCIIString(String(f*ie)),e.appendASCIIString('px"')),e.appendASCII(62);v1?e.write1(8594):e.write1(65515);for(let nt=2;nt<=ae;nt++)e.write1(160)}else ae=1,e.write1(m);k+=ae,v>=c&&(S+=ae)}L=ie}else{let ie=0;for(e.appendASCII(62);v=c&&(S+=nt)}L=ie}Q?x++:x=0,v>=r&&!C&&T.isPseudoAfter()&&(C=!0,w.setColumnInfo(v+1,I,k,y)),e.appendASCIIString("")}return C||w.setColumnInfo(r+1,l.length-1,k,y),a&&e.appendASCIIString(""),e.appendASCIIString(""),new t_(w,u,n)}function YN(s){return s.toString(16).toUpperCase().padStart(4,"0")}class PC{constructor(e,t,i,n){this._viewportBrand=void 0,this.top=e|0,this.left=t|0,this.width=i|0,this.height=n|0}}class XN{constructor(e,t){this.tabSize=e,this.data=t}}class w0{constructor(e,t,i,n,o,r,a){this._viewLineDataBrand=void 0,this.content=e,this.continuesWithWrappedLine=t,this.minColumn=i,this.maxColumn=n,this.startVisibleColumn=o,this.tokens=r,this.inlineDecorations=a}}class vi{constructor(e,t,i,n,o,r,a,l,c,h){this.minColumn=e,this.maxColumn=t,this.content=i,this.continuesWithWrappedLine=n,this.isBasicASCII=vi.isBasicASCII(i,r),this.containsRTL=vi.containsRTL(i,this.isBasicASCII,o),this.tokens=a,this.inlineDecorations=l,this.tabSize=c,this.startVisibleColumn=h}static isBasicASCII(e,t){return t?o0(e):!0}static containsRTL(e,t,i){return!t&&i?s0(e):!1}}class ic{constructor(e,t,i){this.range=e,this.inlineClassName=t,this.type=i}}class QN{constructor(e,t,i,n){this.startOffset=e,this.endOffset=t,this.inlineClassName=i,this.inlineClassNameAffectsLetterSpacing=n}toInlineDecoration(e){return new ic(new D(e,this.startOffset+1,e,this.endOffset+1),this.inlineClassName,this.inlineClassNameAffectsLetterSpacing?3:0)}}class Jy{constructor(e,t){this._viewModelDecorationBrand=void 0,this.range=e,this.options=t}}class eL{constructor(e,t,i){this.color=e,this.zIndex=t,this.data=i}static cmp(e,t){return e.zIndex===t.zIndex?e.colort.color?1:0:e.zIndex-t.zIndex}}function JN(s){return Array.isArray(s)}function e4(s){return!JN(s)}function tL(s){return typeof s=="string"}function FC(s){return!tL(s)}function ta(s){return!s}function fo(s,e){return s.ignoreCase&&e?e.toLowerCase():e}function BC(s){return s.replace(/[&<>'"_]/g,"-")}function t4(s,e){console.log(`${s.languageId}: ${e}`)}function ke(s,e){return new Error(`${s.languageId}: ${e}`)}function Js(s,e,t,i,n){const o=/\$((\$)|(#)|(\d\d?)|[sS](\d\d?)|@(\w+))/g;let r=null;return e.replace(o,function(a,l,c,h,d,u,f,m,_){return ta(c)?ta(h)?!ta(d)&&d0;){const i=s.tokenizer[t];if(i)return i;const n=t.lastIndexOf(".");n<0?t=null:t=t.substr(0,n)}return null}function i4(s,e){let t=e;for(;t&&t.length>0;){if(s.stateNames[t])return!0;const n=t.lastIndexOf(".");n<0?t=null:t=t.substr(0,n)}return!1}const iL=5;class Ac{constructor(e){this._maxCacheDepth=e,this._entries=Object.create(null)}static create(e,t){return this._INSTANCE.create(e,t)}create(e,t){if(e!==null&&e.depth>=this._maxCacheDepth)return new La(e,t);let i=La.getStackElementId(e);i.length>0&&(i+="|"),i+=t;let n=this._entries[i];return n||(n=new La(e,t),this._entries[i]=n,n)}}Ac._INSTANCE=new Ac(iL);class La{constructor(e,t){this.parent=e,this.state=t,this.depth=(this.parent?this.parent.depth:0)+1}static getStackElementId(e){let t="";for(;e!==null;)t.length>0&&(t+="|"),t+=e.state,e=e.parent;return t}static _equals(e,t){for(;e!==null&&t!==null;){if(e===t)return!0;if(e.state!==t.state)return!1;e=e.parent,t=t.parent}return e===null&&t===null}equals(e){return La._equals(this,e)}push(e){return Ac.create(this,e)}pop(){return this.parent}popall(){let e=this;for(;e.parent;)e=e.parent;return e}switchTo(e){return Ac.create(this.parent,e)}}class ha{constructor(e,t){this.languageId=e,this.state=t}equals(e){return this.languageId===e.languageId&&this.state.equals(e.state)}clone(){return this.state.clone()===this.state?this:new ha(this.languageId,this.state)}}class eo{constructor(e){this._maxCacheDepth=e,this._entries=Object.create(null)}static create(e,t){return this._INSTANCE.create(e,t)}create(e,t){if(t!==null)return new nc(e,t);if(e!==null&&e.depth>=this._maxCacheDepth)return new nc(e,t);const i=La.getStackElementId(e);let n=this._entries[i];return n||(n=new nc(e,null),this._entries[i]=n,n)}}eo._INSTANCE=new eo(iL);class nc{constructor(e,t){this.stack=e,this.embeddedLanguageData=t}clone(){return(this.embeddedLanguageData?this.embeddedLanguageData.clone():null)===this.embeddedLanguageData?this:eo.create(this.stack,this.embeddedLanguageData)}equals(e){return!(e instanceof nc)||!this.stack.equals(e.stack)?!1:this.embeddedLanguageData===null&&e.embeddedLanguageData===null?!0:this.embeddedLanguageData===null||e.embeddedLanguageData===null?!1:this.embeddedLanguageData.equals(e.embeddedLanguageData)}}class n4{constructor(){this._tokens=[],this._languageId=null,this._lastTokenType=null,this._lastTokenLanguage=null}enterLanguage(e){this._languageId=e}emit(e,t){this._lastTokenType===t&&this._lastTokenLanguage===this._languageId||(this._lastTokenType=t,this._lastTokenLanguage=this._languageId,this._tokens.push(new Ec(e,t,this._languageId)))}nestedLanguageTokenize(e,t,i,n){const o=i.languageId,r=i.state,a=et.get(o);if(!a)return this.enterLanguage(o),this.emit(n,""),r;const l=a.tokenize(e,t,r);if(n!==0)for(const c of l.tokens)this._tokens.push(new Ec(c.offset+n,c.type,c.language));else this._tokens=this._tokens.concat(l.tokens);return this._lastTokenType=null,this._lastTokenLanguage=null,this._languageId=null,l.endState}finalize(e){return new Q1(this._tokens,e)}}class wu{constructor(e,t){this._languageService=e,this._theme=t,this._prependTokens=null,this._tokens=[],this._currentLanguageId=0,this._lastTokenMetadata=0}enterLanguage(e){this._currentLanguageId=this._languageService.languageIdCodec.encodeLanguageId(e)}emit(e,t){const i=this._theme.match(this._currentLanguageId,t);this._lastTokenMetadata!==i&&(this._lastTokenMetadata=i,this._tokens.push(e),this._tokens.push(i))}static _merge(e,t,i){const n=e!==null?e.length:0,o=t.length,r=i!==null?i.length:0;if(n===0&&o===0&&r===0)return new Uint32Array(0);if(n===0&&o===0)return i;if(o===0&&r===0)return e;const a=new Uint32Array(n+o+r);e!==null&&a.set(e);for(let l=0;l{if(o)return;let a=!1;for(let l=0,c=r.changedLanguages.length;l{})}}getInitialState(){const e=Ac.create(null,this._lexer.start);return eo.create(e,null)}tokenize(e,t,i){const n=new n4,o=this._tokenize(e,t,i,n);return n.finalize(o)}tokenizeEncoded(e,t,i){const n=new wu(this._languageService,this._standaloneThemeService.getColorTheme().tokenTheme),o=this._tokenize(e,t,i,n);return n.finalize(o)}_tokenize(e,t,i,n){return i.embeddedLanguageData?this._nestedTokenize(e,t,i,0,n):this._myTokenize(e,t,i,0,n)}_findLeavingNestedLanguageOffset(e,t){let i=this._lexer.tokenizer[t.stack.state];if(!i&&(i=$h(this._lexer,t.stack.state),!i))throw ke(this._lexer,"tokenizer state is not defined: "+t.stack.state);let n=-1,o=!1;for(const r of i){if(!FC(r.action)||r.action.nextEmbedded!=="@pop")continue;o=!0;let a=r.regex;const l=r.regex.source;if(l.substr(0,4)==="^(?:"&&l.substr(l.length-1,1)===")"){const h=(a.ignoreCase?"i":"")+(a.unicode?"u":"");a=new RegExp(l.substr(4,l.length-5),h)}const c=e.search(a);c===-1||c!==0&&r.matchOnlyAtLineStart||(n===-1||c0&&o.nestedLanguageTokenize(a,!1,i.embeddedLanguageData,n);const l=e.substring(r);return this._myTokenize(l,t,i,n+r,o)}_safeRuleName(e){return e?e.name:"(unknown)"}_myTokenize(e,t,i,n,o){o.enterLanguage(this._languageId);const r=e.length,a=t&&this._lexer.includeLF?e+` +`:e,l=a.length;let c=i.embeddedLanguageData,h=i.stack,d=0,u=null,f=!0;for(;f||d=l)break;f=!1;let I=this._lexer.tokenizer[w];if(!I&&(I=$h(this._lexer,w),!I))throw ke(this._lexer,"tokenizer state is not defined: "+w);let R=a.substr(d);for(const T of I)if((d===0||!T.matchOnlyAtLineStart)&&(C=R.match(T.regex),C)){v=C[0],S=T.action;break}}if(C||(C=[""],v=""),S||(d=this._lexer.maxStack)throw ke(this._lexer,"maximum tokenizer stack size reached: ["+h.state+","+h.parent.state+",...]");h=h.push(w)}else if(S.next==="@pop"){if(h.depth<=1)throw ke(this._lexer,"trying to pop an empty stack in rule: "+this._safeRuleName(k));h=h.pop()}else if(S.next==="@popall")h=h.popall();else{let I=Js(this._lexer,S.next,v,C,w);if(I[0]==="@"&&(I=I.substr(1)),$h(this._lexer,I))h=h.push(I);else throw ke(this._lexer,"trying to set a next state '"+I+"' that is undefined in rule: "+this._safeRuleName(k))}}S.log&&typeof S.log=="string"&&t4(this._lexer,this._lexer.languageId+": "+Js(this._lexer,S.log,v,C,w))}if(L===null)throw ke(this._lexer,"lexer rule has no well-defined action in rule: "+this._safeRuleName(k));const y=I=>{const R=this._languageService.getLanguageIdByLanguageName(I)||this._languageService.getLanguageIdByMimeType(I)||I,T=this._getNestedEmbeddedLanguageData(R);if(d0)throw ke(this._lexer,"groups cannot be nested: "+this._safeRuleName(k));if(C.length!==L.length+1)throw ke(this._lexer,"matched number of groups does not match the number of actions in rule: "+this._safeRuleName(k));let I=0;for(let R=1;Rs});class v0{static colorizeElement(e,t,i,n){n=n||{};const o=n.theme||"vs",r=n.mimeType||i.getAttribute("lang")||i.getAttribute("data-lang");if(!r)return console.error("Mode not detected"),Promise.resolve();const a=t.getLanguageIdByMimeType(r)||r;e.setTheme(o);const l=i.firstChild?i.firstChild.nodeValue:"";i.className+=" "+o;const c=h=>{var d;const u=(d=Bg==null?void 0:Bg.createHTML(h))!==null&&d!==void 0?d:h;i.innerHTML=u};return this.colorize(t,l||"",a,n).then(c,h=>console.error(h))}static colorize(e,t,i,n){return o4(this,void 0,void 0,function*(){const o=e.languageIdCodec;let r=4;n&&typeof n.tabSize=="number"&&(r=n.tabSize),a0(t)&&(t=t.substr(1));const a=Ch(t);if(!e.isRegisteredLanguageId(i))return VC(a,r,o);const l=yield et.getOrCreate(i);return l?r4(a,r,l,o):VC(a,r,o)})}static colorizeLine(e,t,i,n,o=4){const r=vi.isBasicASCII(e,t),a=vi.containsRTL(e,r,i);return Ef(new Cl(!1,!0,e,!1,r,a,0,n,[],o,0,0,0,0,-1,"none",!1,!1,null)).html}static colorizeModelLine(e,t,i=4){const n=e.getLineContent(t);e.forceTokenization(t);const r=e.getLineTokens(t).inflate();return this.colorizeLine(n,e.mightContainNonBasicASCII(),e.mightContainRTL(),r,i)}}function r4(s,e,t,i){return new Promise((n,o)=>{const r=()=>{const a=a4(s,e,t,i);if(t instanceof yh){const l=t.getLoadStatus();if(l.loaded===!1){l.promise.then(r,o);return}}n(a)};r()})}function VC(s,e,t){let i=[];const o=new Uint32Array(2);o[0]=0,o[1]=16793600;for(let r=0,a=s.length;r")}return i.join("")}function a4(s,e,t,i){let n=[],o=t.getInitialState();for(let r=0,a=s.length;r"),o=c.endState}return n.join("")}const nL={clipboard:{writeText:va||document.queryCommandSupported&&document.queryCommandSupported("copy")||!!(navigator&&navigator.clipboard&&navigator.clipboard.writeText),readText:va||!!(navigator&&navigator.clipboard&&navigator.clipboard.readText)},keyboard:(()=>va||Dy?0:navigator.keyboard||Jn?1:2)(),touch:"ontouchstart"in window||navigator.maxTouchPoints>0,pointerEvents:window.PointerEvent&&("ontouchstart"in window||window.navigator.maxTouchPoints>0||navigator.maxTouchPoints>0)};function i_(s,e){if(s===0)return null;const t=(s&65535)>>>0,i=(s&4294901760)>>>16;return i!==0?new vu([Vg(t,e),Vg(i,e)]):new vu([Vg(t,e)])}function Vg(s,e){const t=!!(s&2048),i=!!(s&256),n=e===2?i:t,o=!!(s&1024),r=!!(s&512),a=e===2?t:i,l=s&255;return new Oc(n,o,r,a,l)}class Oc{constructor(e,t,i,n,o){this.ctrlKey=e,this.shiftKey=t,this.altKey=i,this.metaKey=n,this.keyCode=o}equals(e){return this.ctrlKey===e.ctrlKey&&this.shiftKey===e.shiftKey&&this.altKey===e.altKey&&this.metaKey===e.metaKey&&this.keyCode===e.keyCode}isModifierKey(){return this.keyCode===0||this.keyCode===5||this.keyCode===57||this.keyCode===6||this.keyCode===4}toChord(){return new vu([this])}isDuplicateModifierCase(){return this.ctrlKey&&this.keyCode===5||this.shiftKey&&this.keyCode===4||this.altKey&&this.keyCode===6||this.metaKey&&this.keyCode===57}}class vu{constructor(e){if(e.length===0)throw q1("parts");this.parts=e}}class l4{constructor(e,t,i,n,o,r){this.ctrlKey=e,this.shiftKey=t,this.altKey=i,this.metaKey=n,this.keyLabel=o,this.keyAriaLabel=r}}class c4{}function h4(s){if(s.charCode){let t=String.fromCharCode(s.charCode).toUpperCase();return Jo.fromString(t)}const e=s.keyCode;if(e===3)return 7;if(Oi){if(e===59)return 80;if(e===107)return 81;if(e===109)return 83;if(me&&e===224)return 57}else if(uo){if(e===91)return 57;if(me&&e===93)return 57;if(!me&&e===92)return 57}return hy[e]||0}const d4=me?256:2048,u4=512,f4=1024,g4=me?2048:256;class He{constructor(e){this._standardKeyboardEventBrand=!0;let t=e;this.browserEvent=t,this.target=t.target,this.ctrlKey=t.ctrlKey,this.shiftKey=t.shiftKey,this.altKey=t.altKey,this.metaKey=t.metaKey,this.keyCode=h4(t),this.code=t.code,this.ctrlKey=this.ctrlKey||this.keyCode===5,this.altKey=this.altKey||this.keyCode===6,this.shiftKey=this.shiftKey||this.keyCode===4,this.metaKey=this.metaKey||this.keyCode===57,this._asKeybinding=this._computeKeybinding(),this._asRuntimeKeybinding=this._computeRuntimeKeybinding()}preventDefault(){this.browserEvent&&this.browserEvent.preventDefault&&this.browserEvent.preventDefault()}stopPropagation(){this.browserEvent&&this.browserEvent.stopPropagation&&this.browserEvent.stopPropagation()}toKeybinding(){return this._asRuntimeKeybinding}equals(e){return this._asKeybinding===e}_computeKeybinding(){let e=0;this.keyCode!==5&&this.keyCode!==4&&this.keyCode!==6&&this.keyCode!==57&&(e=this.keyCode);let t=0;return this.ctrlKey&&(t|=d4),this.altKey&&(t|=u4),this.shiftKey&&(t|=f4),this.metaKey&&(t|=g4),t|=e,t}_computeRuntimeKeybinding(){let e=0;return this.keyCode!==5&&this.keyCode!==4&&this.keyCode!==6&&this.keyCode!==57&&(e=this.keyCode),new Oc(this.ctrlKey,this.shiftKey,this.altKey,this.metaKey,e)}}let n_=!1,Zr=null;function m4(s){if(!s.parent||s.parent===s)return null;try{let e=s.location,t=s.parent.location;if(e.origin!=="null"&&t.origin!=="null"&&e.origin!==t.origin)return n_=!0,null}catch{return n_=!0,null}return s.parent}class s_{static getSameOriginWindowChain(){if(!Zr){Zr=[];let e=window,t;do t=m4(e),t?Zr.push({window:e,iframeElement:e.frameElement||null}):Zr.push({window:e,iframeElement:null}),e=t;while(e)}return Zr.slice(0)}static hasDifferentOriginAncestor(){return Zr||this.getSameOriginWindowChain(),n_}static getPositionOfChildWindowRelativeToAncestorWindow(e,t){if(!t||e===t)return{top:0,left:0};let i=0,n=0,o=this.getSameOriginWindowChain();for(const r of o){if(i+=r.window.scrollY,n+=r.window.scrollX,r.window===t||!r.iframeElement)break;let a=r.iframeElement.getBoundingClientRect();i+=a.top,n+=a.left}return{top:i,left:n}}}class Ji{constructor(e){this.timestamp=Date.now(),this.browserEvent=e,this.leftButton=e.button===0,this.middleButton=e.button===1,this.rightButton=e.button===2,this.buttons=e.buttons,this.target=e.target,this.detail=e.detail||1,e.type==="dblclick"&&(this.detail=2),this.ctrlKey=e.ctrlKey,this.shiftKey=e.shiftKey,this.altKey=e.altKey,this.metaKey=e.metaKey,typeof e.pageX=="number"?(this.posx=e.pageX,this.posy=e.pageY):(this.posx=e.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,this.posy=e.clientY+document.body.scrollTop+document.documentElement.scrollTop);let t=s_.getPositionOfChildWindowRelativeToAncestorWindow(self,e.view);this.posx-=t.left,this.posy-=t.top}preventDefault(){this.browserEvent.preventDefault()}stopPropagation(){this.browserEvent.stopPropagation()}}class qa{constructor(e,t=0,i=0){if(this.browserEvent=e||null,this.target=e?e.target||e.targetNode||e.srcElement:null,this.deltaY=i,this.deltaX=t,e){let n=e,o=e;if(typeof n.wheelDeltaY!="undefined")this.deltaY=n.wheelDeltaY/120;else if(typeof o.VERTICAL_AXIS!="undefined"&&o.axis===o.VERTICAL_AXIS)this.deltaY=-o.detail/3;else if(e.type==="wheel"){const r=e;r.deltaMode===r.DOM_DELTA_LINE?Oi&&!me?this.deltaY=-e.deltaY/3:this.deltaY=-e.deltaY:this.deltaY=-e.deltaY/40}if(typeof n.wheelDeltaX!="undefined")Jn&&li?this.deltaX=-(n.wheelDeltaX/120):this.deltaX=n.wheelDeltaX/120;else if(typeof o.HORIZONTAL_AXIS!="undefined"&&o.axis===o.HORIZONTAL_AXIS)this.deltaX=-e.detail/3;else if(e.type==="wheel"){const r=e;r.deltaMode===r.DOM_DELTA_LINE?Oi&&!me?this.deltaX=-e.deltaX/3:this.deltaX=-e.deltaX:this.deltaX=-e.deltaX/40}this.deltaY===0&&this.deltaX===0&&e.wheelDelta&&(this.deltaY=e.wheelDelta/120)}}preventDefault(){this.browserEvent&&this.browserEvent.preventDefault()}stopPropagation(){this.browserEvent&&this.browserEvent.stopPropagation()}}var Ce;(function(s){s.inMemory="inmemory",s.vscode="vscode",s.internal="private",s.walkThrough="walkThrough",s.walkThroughSnippet="walkThroughSnippet",s.http="http",s.https="https",s.file="file",s.mailto="mailto",s.untitled="untitled",s.data="data",s.command="command",s.vscodeRemote="vscode-remote",s.vscodeRemoteResource="vscode-remote-resource",s.userData="vscode-userdata",s.vscodeCustomEditor="vscode-custom-editor",s.vscodeNotebook="vscode-notebook",s.vscodeNotebookCell="vscode-notebook-cell",s.vscodeNotebookCellMetadata="vscode-notebook-cell-metadata",s.vscodeNotebookCellOutput="vscode-notebook-cell-output",s.vscodeInteractive="vscode-interactive",s.vscodeInteractiveInput="vscode-interactive-input",s.vscodeSettings="vscode-settings",s.vscodeWorkspaceTrust="vscode-workspace-trust",s.vscodeTerminal="vscode-terminal",s.webviewPanel="webview-panel",s.vscodeWebview="vscode-webview",s.extension="extension",s.vscodeFileResource="vscode-file",s.tmp="tmp",s.vsls="vsls"})(Ce||(Ce={}));const p4="tkn";class _4{constructor(){this._hosts=Object.create(null),this._ports=Object.create(null),this._connectionTokens=Object.create(null),this._preferredWebSchema="http",this._delegate=null}setPreferredWebSchema(e){this._preferredWebSchema=e}rewrite(e){if(this._delegate)return this._delegate(e);const t=e.authority;let i=this._hosts[t];i&&i.indexOf(":")!==-1&&(i=`[${i}]`);const n=this._ports[t],o=this._connectionTokens[t];let r=`path=${encodeURIComponent(e.path)}`;return typeof o=="string"&&(r+=`&${p4}=${encodeURIComponent(o)}`),we.from({scheme:fl?this._preferredWebSchema:Ce.vscodeRemoteResource,authority:`${i}:${n}`,path:"/vscode-remote-resource",query:r})}}const sL=new _4;class Pc{asBrowserUri(e,t){const i=this.toUri(e,t);return i.scheme===Ce.vscodeRemote?sL.rewrite(i):i.scheme===Ce.file&&(va||Zx&&Ge.origin===`${Ce.vscodeFileResource}://${Pc.FALLBACK_AUTHORITY}`)?i.with({scheme:Ce.vscodeFileResource,authority:i.authority||Pc.FALLBACK_AUTHORITY,query:null,fragment:null}):i}toUri(e,t){return we.isUri(e)?e:we.parse(t.toUrl(e))}}Pc.FALLBACK_AUTHORITY="vscode-app";const b4=new Pc;function Pi(s){for(;s.firstChild;)s.firstChild.remove()}function S0(s){var e;return(e=s==null?void 0:s.isConnected)!==null&&e!==void 0?e:!1}class oL{constructor(e,t,i,n){this._node=e,this._type=t,this._handler=i,this._options=n||!1,this._node.addEventListener(this._type,this._handler,this._options)}dispose(){!this._handler||(this._node.removeEventListener(this._type,this._handler,this._options),this._node=null,this._handler=null)}}function V(s,e,t,i){return new oL(s,e,t,i)}function C4(s){return function(e){return s(new Ji(e))}}function w4(s){return function(e){return s(new He(e))}}let wi=function(e,t,i,n){let o=i;return t==="click"||t==="mousedown"?o=C4(i):(t==="keydown"||t==="keypress"||t==="keyup")&&(o=w4(i)),V(e,t,o,n)};function y0(s,e){return V(s,"mouseout",t=>{let i=t.relatedTarget;for(;i&&i!==s;)i=i.parentNode;i!==s&&e(t)})}function v4(s,e){return V(s,"pointerout",t=>{let i=t.relatedTarget;for(;i&&i!==s;)i=i.parentNode;i!==s&&e(t)})}function hn(s,e,t){let i=null;const n=l=>a.fire(l),o=()=>{i||(i=new oL(s,e,n,t))},r=()=>{i&&(i.dispose(),i=null)},a=new M({onFirstListenerAdd:o,onLastListenerRemove:r});return a}let Wg=null;function S4(s){if(!Wg){const e=t=>setTimeout(()=>t(new Date().getTime()),0);Wg=self.requestAnimationFrame||self.msRequestAnimationFrame||self.webkitRequestAnimationFrame||self.mozRequestAnimationFrame||self.oRequestAnimationFrame||e}return Wg.call(self,s)}let rL,kn;class Hg{constructor(e,t=0){this._runner=e,this.priority=t,this._canceled=!1}dispose(){this._canceled=!0}execute(){if(!this._canceled)try{this._runner()}catch(e){Ze(e)}}static sort(e,t){return t.priority-e.priority}}(function(){let s=[],e=null,t=!1,i=!1,n=()=>{for(t=!1,e=s,s=[],i=!0;e.length>0;)e.sort(Hg.sort),e.shift().execute();i=!1};kn=(o,r=0)=>{let a=new Hg(o,r);return s.push(a),t||(t=!0,S4(n)),a},rL=(o,r)=>{if(i){let a=new Hg(o,r);return e.push(a),a}else return kn(o,r)}})();const y4=8,L4=function(s,e){return e};class k4 extends W{constructor(e,t,i,n=L4,o=y4){super();let r=null,a=0,l=this._register(new os),c=()=>{a=new Date().getTime(),i(r),r=null};this._register(V(e,t,h=>{r=n(r,h);let d=new Date().getTime()-a;d>=o?(l.cancel(),c()):l.setIfNotSet(c,o-d)}))}}function L0(s,e,t,i,n){return new k4(s,e,t,i,n)}function k0(s){return document.defaultView.getComputedStyle(s,null)}function aL(s){if(s!==document.body)return new Ei(s.clientWidth,s.clientHeight);if(pr&&window.visualViewport)return new Ei(window.visualViewport.width,window.visualViewport.height);if(window.innerWidth&&window.innerHeight)return new Ei(window.innerWidth,window.innerHeight);if(document.body&&document.body.clientWidth&&document.body.clientHeight)return new Ei(document.body.clientWidth,document.body.clientHeight);if(document.documentElement&&document.documentElement.clientWidth&&document.documentElement.clientHeight)return new Ei(document.documentElement.clientWidth,document.documentElement.clientHeight);throw new Error("Unable to figure out browser width and height")}class We{static convertToPixels(e,t){return parseFloat(t)||0}static getDimension(e,t,i){let n=k0(e),o="0";return n&&(n.getPropertyValue?o=n.getPropertyValue(t):o=n.getAttribute(i)),We.convertToPixels(e,o)}static getBorderLeftWidth(e){return We.getDimension(e,"border-left-width","borderLeftWidth")}static getBorderRightWidth(e){return We.getDimension(e,"border-right-width","borderRightWidth")}static getBorderTopWidth(e){return We.getDimension(e,"border-top-width","borderTopWidth")}static getBorderBottomWidth(e){return We.getDimension(e,"border-bottom-width","borderBottomWidth")}static getPaddingLeft(e){return We.getDimension(e,"padding-left","paddingLeft")}static getPaddingRight(e){return We.getDimension(e,"padding-right","paddingRight")}static getPaddingTop(e){return We.getDimension(e,"padding-top","paddingTop")}static getPaddingBottom(e){return We.getDimension(e,"padding-bottom","paddingBottom")}static getMarginLeft(e){return We.getDimension(e,"margin-left","marginLeft")}static getMarginTop(e){return We.getDimension(e,"margin-top","marginTop")}static getMarginRight(e){return We.getDimension(e,"margin-right","marginRight")}static getMarginBottom(e){return We.getDimension(e,"margin-bottom","marginBottom")}}class Ei{constructor(e,t){this.width=e,this.height=t}with(e=this.width,t=this.height){return e!==this.width||t!==this.height?new Ei(e,t):this}static is(e){return typeof e=="object"&&typeof e.height=="number"&&typeof e.width=="number"}static lift(e){return e instanceof Ei?e:new Ei(e.width,e.height)}static equals(e,t){return e===t?!0:!e||!t?!1:e.width===t.width&&e.height===t.height}}Ei.None=new Ei(0,0);function lL(s){let e=s.offsetParent,t=s.offsetTop,i=s.offsetLeft;for(;(s=s.parentNode)!==null&&s!==document.body&&s!==document.documentElement;){t-=s.scrollTop;const n=hL(s)?null:k0(s);n&&(i-=n.direction!=="rtl"?s.scrollLeft:-s.scrollLeft),s===e&&(i+=We.getBorderLeftWidth(s),t+=We.getBorderTopWidth(s),t+=s.offsetTop,i+=s.offsetLeft,e=s.offsetParent)}return{left:i,top:t}}function en(s){let e=s.getBoundingClientRect();return{left:e.left+Ms.scrollX,top:e.top+Ms.scrollY,width:e.width,height:e.height}}const Ms=new class{get scrollX(){return typeof window.scrollX=="number"?window.scrollX:document.body.scrollLeft+document.documentElement.scrollLeft}get scrollY(){return typeof window.scrollY=="number"?window.scrollY:document.body.scrollTop+document.documentElement.scrollTop}};function ji(s){let e=We.getMarginLeft(s)+We.getMarginRight(s);return s.offsetWidth+e}function zg(s){let e=We.getBorderLeftWidth(s)+We.getBorderRightWidth(s),t=We.getPaddingLeft(s)+We.getPaddingRight(s);return s.offsetWidth-e-t}function x4(s){let e=We.getBorderTopWidth(s)+We.getBorderBottomWidth(s),t=We.getPaddingTop(s)+We.getPaddingBottom(s);return s.offsetHeight-e-t}function o_(s){let e=We.getMarginTop(s)+We.getMarginBottom(s);return s.offsetHeight+e}function Rs(s,e){for(;s;){if(s===e)return!0;s=s.parentNode}return!1}function cL(s,e,t){for(;s&&s.nodeType===s.ELEMENT_NODE;){if(s.classList.contains(e))return s;if(t){if(typeof t=="string"){if(s.classList.contains(t))return null}else if(s===t)return null}s=s.parentNode}return null}function WC(s,e,t){return!!cL(s,e,t)}function hL(s){return s&&!!s.host&&!!s.mode}function r_(s){return!!vr(s)}function vr(s){for(;s.parentNode;){if(s===document.body)return null;s=s.parentNode}return hL(s)?s:null}function ka(){let s=document.activeElement;for(;s!=null&&s.shadowRoot;)s=s.shadowRoot.activeElement;return s}function xn(s=document.getElementsByTagName("head")[0]){let e=document.createElement("style");return e.type="text/css",e.media="screen",s.appendChild(e),e}let Ug=null;function I4(){return Ug||(Ug=xn()),Ug}function HC(s,e,t=I4()){!t||!e||t.sheet.insertRule(s+"{"+e+"}",0)}function dL(s){return typeof HTMLElement=="object"?s instanceof HTMLElement:s&&typeof s=="object"&&s.nodeType===1&&typeof s.nodeName=="string"}const Y={CLICK:"click",AUXCLICK:"auxclick",DBLCLICK:"dblclick",MOUSE_UP:"mouseup",MOUSE_DOWN:"mousedown",MOUSE_OVER:"mouseover",MOUSE_MOVE:"mousemove",MOUSE_OUT:"mouseout",MOUSE_ENTER:"mouseenter",MOUSE_LEAVE:"mouseleave",MOUSE_WHEEL:"wheel",POINTER_UP:"pointerup",POINTER_DOWN:"pointerdown",POINTER_MOVE:"pointermove",CONTEXT_MENU:"contextmenu",WHEEL:"wheel",KEY_DOWN:"keydown",KEY_PRESS:"keypress",KEY_UP:"keyup",LOAD:"load",BEFORE_UNLOAD:"beforeunload",UNLOAD:"unload",PAGE_SHOW:"pageshow",PAGE_HIDE:"pagehide",ABORT:"abort",ERROR:"error",RESIZE:"resize",SCROLL:"scroll",FULLSCREEN_CHANGE:"fullscreenchange",WK_FULLSCREEN_CHANGE:"webkitfullscreenchange",SELECT:"select",CHANGE:"change",SUBMIT:"submit",RESET:"reset",FOCUS:"focus",FOCUS_IN:"focusin",FOCUS_OUT:"focusout",BLUR:"blur",INPUT:"input",STORAGE:"storage",DRAG_START:"dragstart",DRAG:"drag",DRAG_ENTER:"dragenter",DRAG_LEAVE:"dragleave",DRAG_OVER:"dragover",DROP:"drop",DRAG_END:"dragend",ANIMATION_START:uo?"webkitAnimationStart":"animationstart",ANIMATION_END:uo?"webkitAnimationEnd":"animationend",ANIMATION_ITERATION:uo?"webkitAnimationIteration":"animationiteration"},Ie={stop:function(s,e){s.preventDefault?s.preventDefault():s.returnValue=!1,e&&(s.stopPropagation?s.stopPropagation():s.cancelBubble=!0)}};function E4(s){let e=[];for(let t=0;s&&s.nodeType===s.ELEMENT_NODE;t++)e[t]=s.scrollTop,s=s.parentNode;return e}function D4(s,e){for(let t=0;s&&s.nodeType===s.ELEMENT_NODE;t++)s.scrollTop!==e[t]&&(s.scrollTop=e[t]),s=s.parentNode}class Su extends W{constructor(e){super(),this._onDidFocus=this._register(new M),this.onDidFocus=this._onDidFocus.event,this._onDidBlur=this._register(new M),this.onDidBlur=this._onDidBlur.event;let t=Su.hasFocusWithin(e),i=!1;const n=()=>{i=!1,t||(t=!0,this._onDidFocus.fire())},o=()=>{t&&(i=!0,window.setTimeout(()=>{i&&(i=!1,t=!1,this._onDidBlur.fire())},0))};this._refreshStateHandler=()=>{Su.hasFocusWithin(e)!==t&&(t?o():n())},this._register(V(e,Y.FOCUS,n,!0)),this._register(V(e,Y.BLUR,o,!0)),this._register(V(e,Y.FOCUS_IN,()=>this._refreshStateHandler())),this._register(V(e,Y.FOCUS_OUT,()=>this._refreshStateHandler()))}static hasFocusWithin(e){const t=vr(e),i=t?t.activeElement:document.activeElement;return Rs(i,e)}}function Ga(s){return new Su(s)}function U(s,...e){if(s.append(...e),e.length===1&&typeof e[0]!="string")return e[0]}function Df(s,...e){s.innerText="",U(s,...e)}const N4=/([\w\-]+)?(#([\w\-]+))?((\.([\w\-]+))*)/;var Fc;(function(s){s.HTML="http://www.w3.org/1999/xhtml",s.SVG="http://www.w3.org/2000/svg"})(Fc||(Fc={}));function uL(s,e,t,...i){let n=N4.exec(e);if(!n)throw new Error("Bad use of emmet");t=Object.assign({},t||{});let o=n[1]||"div",r;return s!==Fc.HTML?r=document.createElementNS(s,o):r=document.createElement(o),n[3]&&(r.id=n[3]),n[4]&&(r.className=n[4].replace(/\./g," ").trim()),Object.keys(t).forEach(a=>{const l=t[a];typeof l!="undefined"&&(/^on\w+$/.test(a)?r[a]=l:a==="selected"?l&&r.setAttribute(a,"true"):r.setAttribute(a,l))}),r.append(...i),r}function J(s,e,...t){return uL(Fc.HTML,s,e,...t)}J.SVG=function(s,e,...t){return uL(Fc.SVG,s,e,...t)};function fL(...s){for(let e of s)e.style.display="",e.removeAttribute("aria-hidden")}function zC(...s){for(let e of s)e.style.display="none",e.setAttribute("aria-hidden","true")}function T4(s){return Array.prototype.slice.call(document.getElementsByTagName(s),0)}function UC(s){const e=window.devicePixelRatio*s;return Math.max(1,Math.floor(e))/window.devicePixelRatio}function gL(s){window.open(s,"_blank","noopener")}function M4(s){const e=()=>{s(),t=kn(e)};let t=kn(e);return Pe(()=>t.dispose())}sL.setPreferredWebSchema(/^https:/.test(window.location.href)?"https":"http");function a_(s){return s?`url('${b4.asBrowserUri(s).toString(!0).replace(/'/g,"%27")}')`:"url('')"}function $C(s){return`'${s.replace(/'/g,"%27")}'`}class da extends M{constructor(){super(),this._subscriptions=new se,this._keyStatus={altKey:!1,shiftKey:!1,ctrlKey:!1,metaKey:!1},this._subscriptions.add(V(window,"keydown",e=>{if(e.defaultPrevented)return;const t=new He(e);if(!(t.keyCode===6&&e.repeat)){if(e.altKey&&!this._keyStatus.altKey)this._keyStatus.lastKeyPressed="alt";else if(e.ctrlKey&&!this._keyStatus.ctrlKey)this._keyStatus.lastKeyPressed="ctrl";else if(e.metaKey&&!this._keyStatus.metaKey)this._keyStatus.lastKeyPressed="meta";else if(e.shiftKey&&!this._keyStatus.shiftKey)this._keyStatus.lastKeyPressed="shift";else if(t.keyCode!==6)this._keyStatus.lastKeyPressed=void 0;else return;this._keyStatus.altKey=e.altKey,this._keyStatus.ctrlKey=e.ctrlKey,this._keyStatus.metaKey=e.metaKey,this._keyStatus.shiftKey=e.shiftKey,this._keyStatus.lastKeyPressed&&(this._keyStatus.event=e,this.fire(this._keyStatus))}},!0)),this._subscriptions.add(V(window,"keyup",e=>{e.defaultPrevented||(!e.altKey&&this._keyStatus.altKey?this._keyStatus.lastKeyReleased="alt":!e.ctrlKey&&this._keyStatus.ctrlKey?this._keyStatus.lastKeyReleased="ctrl":!e.metaKey&&this._keyStatus.metaKey?this._keyStatus.lastKeyReleased="meta":!e.shiftKey&&this._keyStatus.shiftKey?this._keyStatus.lastKeyReleased="shift":this._keyStatus.lastKeyReleased=void 0,this._keyStatus.lastKeyPressed!==this._keyStatus.lastKeyReleased&&(this._keyStatus.lastKeyPressed=void 0),this._keyStatus.altKey=e.altKey,this._keyStatus.ctrlKey=e.ctrlKey,this._keyStatus.metaKey=e.metaKey,this._keyStatus.shiftKey=e.shiftKey,this._keyStatus.lastKeyReleased&&(this._keyStatus.event=e,this.fire(this._keyStatus)))},!0)),this._subscriptions.add(V(document.body,"mousedown",()=>{this._keyStatus.lastKeyPressed=void 0},!0)),this._subscriptions.add(V(document.body,"mouseup",()=>{this._keyStatus.lastKeyPressed=void 0},!0)),this._subscriptions.add(V(document.body,"mousemove",e=>{e.buttons&&(this._keyStatus.lastKeyPressed=void 0)},!0)),this._subscriptions.add(V(window,"blur",()=>{this.resetKeyStatus()}))}get keyStatus(){return this._keyStatus}resetKeyStatus(){this.doResetKeyStatus(),this.fire(this._keyStatus)}doResetKeyStatus(){this._keyStatus={altKey:!1,shiftKey:!1,ctrlKey:!1,metaKey:!1}}static getInstance(){return da.instance||(da.instance=new da),da.instance}dispose(){super.dispose(),this._subscriptions.dispose()}}function R4(s,e){window.matchMedia(s).addEventListener("change",e)}const jC=2e4;let jo,Od,l_,Pd,c_;function A4(s){jo=document.createElement("div"),jo.className="monaco-aria-container";const e=()=>{const i=document.createElement("div");return i.className="monaco-alert",i.setAttribute("role","alert"),i.setAttribute("aria-atomic","true"),jo.appendChild(i),i};Od=e(),l_=e();const t=()=>{const i=document.createElement("div");return i.className="monaco-status",i.setAttribute("role","complementary"),i.setAttribute("aria-live","polite"),i.setAttribute("aria-atomic","true"),jo.appendChild(i),i};Pd=t(),c_=t(),s.appendChild(jo)}function Nf(s){!jo||(Od.textContent!==s?(Pi(l_),yu(Od,s)):(Pi(Od),yu(l_,s)))}function h_(s){!jo||(me?Nf(s):Pd.textContent!==s?(Pi(c_),yu(Pd,s)):(Pi(Pd),yu(c_,s)))}function yu(s,e){Pi(s),e.length>jC&&(e=e.substr(0,jC)),s.textContent=e,s.style.visibility="hidden",s.style.visibility="visible"}const mL=pe("markerDecorationsService"),Tf=pe("textModelService");var Lu=globalThis&&globalThis.__awaiter||function(s,e,t,i){function n(o){return o instanceof t?o:new t(function(r){r(o)})}return new(t||(t=Promise))(function(o,r){function a(h){try{c(i.next(h))}catch(d){r(d)}}function l(h){try{c(i.throw(h))}catch(d){r(d)}}function c(h){h.done?o(h.value):n(h.value).then(a,l)}c((i=i.apply(s,e||[])).next())})};class qn extends W{constructor(e,t="",i="",n=!0,o){super(),this._onDidChange=this._register(new M),this.onDidChange=this._onDidChange.event,this._enabled=!0,this._id=e,this._label=t,this._cssClass=i,this._enabled=n,this._actionCallback=o}get id(){return this._id}get label(){return this._label}set label(e){this._setLabel(e)}_setLabel(e){this._label!==e&&(this._label=e,this._onDidChange.fire({label:e}))}get tooltip(){return this._tooltip||""}set tooltip(e){this._setTooltip(e)}_setTooltip(e){this._tooltip!==e&&(this._tooltip=e,this._onDidChange.fire({tooltip:e}))}get class(){return this._cssClass}set class(e){this._setClass(e)}_setClass(e){this._cssClass!==e&&(this._cssClass=e,this._onDidChange.fire({class:e}))}get enabled(){return this._enabled}set enabled(e){this._setEnabled(e)}_setEnabled(e){this._enabled!==e&&(this._enabled=e,this._onDidChange.fire({enabled:e}))}get checked(){return this._checked}set checked(e){this._setChecked(e)}_setChecked(e){this._checked!==e&&(this._checked=e,this._onDidChange.fire({checked:e}))}run(e,t){return Lu(this,void 0,void 0,function*(){this._actionCallback&&(yield this._actionCallback(e))})}}class x0 extends W{constructor(){super(...arguments),this._onBeforeRun=this._register(new M),this.onBeforeRun=this._onBeforeRun.event,this._onDidRun=this._register(new M),this.onDidRun=this._onDidRun.event}run(e,t){return Lu(this,void 0,void 0,function*(){if(!e.enabled)return;this._onBeforeRun.fire({action:e});let i;try{yield this.runAction(e,t)}catch(n){i=n}this._onDidRun.fire({action:e,error:i})})}runAction(e,t){return Lu(this,void 0,void 0,function*(){yield e.run(t)})}}class Or extends qn{constructor(e){super(Or.ID,e,e?"separator text":"separator"),this.checked=!1,this.enabled=!1}}Or.ID="vs.actions.separator";class pL{constructor(e,t,i,n){this.tooltip="",this.enabled=!0,this.checked=void 0,this.id=e,this.label=t,this.class=n,this._actions=i}get actions(){return this._actions}dispose(){}run(){return Lu(this,void 0,void 0,function*(){})}}class Mf extends qn{constructor(){super(Mf.ID,p("submenu.empty","(empty)"),void 0,!1)}}Mf.ID="vs.actions.empty";const Bi=pe("commandService"),Ht=new class{constructor(){this._commands=new Map,this._onDidRegisterCommand=new M,this.onDidRegisterCommand=this._onDidRegisterCommand.event}registerCommand(s,e){if(!s)throw new Error("invalid command");if(typeof s=="string"){if(!e)throw new Error("invalid command");return this.registerCommand({id:s,handler:e})}if(s.description){const r=[];for(let l of s.description.args)r.push(l.constraint);const a=s.handler;s.handler=function(l,...c){return gI(c,r),a(l,...c)}}const{id:t}=s;let i=this._commands.get(t);i||(i=new Xi,this._commands.set(t,i));let n=i.unshift(s),o=Pe(()=>{n();const r=this._commands.get(t);r!=null&&r.isEmpty()&&this._commands.delete(t)});return this._onDidRegisterCommand.fire(t),o}registerCommandAlias(s,e){return Ht.registerCommand(s,(t,...i)=>t.get(Bi).executeCommand(e,...i))}getCommand(s){const e=this._commands.get(s);if(!(!e||e.isEmpty()))return he.first(e)}getCommands(){const s=new Map;for(const e of this._commands.keys()){const t=this.getCommand(e);t&&s.set(e,t)}return s}};Ht.registerCommand("noop",()=>{});const Mt=new Map;Mt.set("false",!1);Mt.set("true",!0);Mt.set("isMac",me);Mt.set("isLinux",qt);Mt.set("isWindows",li);Mt.set("isWeb",fl);Mt.set("isMacNative",me&&!fl);Mt.set("isEdge",Qx);Mt.set("isFirefox",Yx);Mt.set("isChrome",QS);Mt.set("isSafari",Xx);const O4=Object.prototype.hasOwnProperty;class Oe{static has(e){return So.create(e)}static equals(e,t){return Za.create(e,t)}static regex(e,t){return ku.create(e,t)}static not(e){return Sr.create(e)}static and(...e){return oo.create(e,null)}static or(...e){return Ns.create(e,null,!0)}static deserialize(e,t=!1){if(!!e)return this._deserializeOrExpression(e,t)}static _deserializeOrExpression(e,t){let i=e.split("||");return Ns.create(i.map(n=>this._deserializeAndExpression(n,t)),null,!0)}static _deserializeAndExpression(e,t){let i=e.split("&&");return oo.create(i.map(n=>this._deserializeOne(n,t)),null)}static _deserializeOne(e,t){if(e=e.trim(),e.indexOf("!=")>=0){let i=e.split("!=");return Rf.create(i[0].trim(),this._deserializeValue(i[1],t))}if(e.indexOf("==")>=0){let i=e.split("==");return Za.create(i[0].trim(),this._deserializeValue(i[1],t))}if(e.indexOf("=~")>=0){let i=e.split("=~");return ku.create(i[0].trim(),this._deserializeRegexValue(i[1],t))}if(e.indexOf(" in ")>=0){let i=e.split(" in ");return I0.create(i[0].trim(),i[1].trim())}if(/^[^<=>]+>=[^<=>]+$/.test(e)){const i=e.split(">=");return Pf.create(i[0].trim(),i[1].trim())}if(/^[^<=>]+>[^<=>]+$/.test(e)){const i=e.split(">");return Of.create(i[0].trim(),i[1].trim())}if(/^[^<=>]+<=[^<=>]+$/.test(e)){const i=e.split("<=");return Bf.create(i[0].trim(),i[1].trim())}if(/^[^<=>]+<[^<=>]+$/.test(e)){const i=e.split("<");return Ff.create(i[0].trim(),i[1].trim())}return/^\!\s*/.test(e)?Sr.create(e.substr(1).trim()):So.create(e)}static _deserializeValue(e,t){if(e=e.trim(),e==="true")return!0;if(e==="false")return!1;let i=/^'([^']*)'$/.exec(e);return i?i[1].trim():e}static _deserializeRegexValue(e,t){if(VE(e)){if(t)throw new Error("missing regexp-value for =~-expression");return console.warn("missing regexp-value for =~-expression"),null}let i=e.indexOf("/"),n=e.lastIndexOf("/");if(i===n||i<0){if(t)throw new Error(`bad regexp-value '${e}', missing /-enclosure`);return console.warn(`bad regexp-value '${e}', missing /-enclosure`),null}let o=e.slice(i+1,n),r=e[n+1]==="i"?"i":"";try{return new RegExp(o,r)}catch(a){if(t)throw new Error(`bad regexp-value '${e}', parse error: ${a}`);return console.warn(`bad regexp-value '${e}', parse error: ${a}`),null}}}function P4(s,e){const t=s?s.substituteConstants():void 0,i=e?e.substituteConstants():void 0;return!t&&!i?!0:!t||!i?!1:t.equals(i)}function xa(s,e){return s.cmp(e)}class Si{constructor(){this.type=0}cmp(e){return this.type-e.type}equals(e){return e.type===this.type}substituteConstants(){return this}evaluate(e){return!1}serialize(){return"false"}keys(){return[]}negate(){return Fi.INSTANCE}}Si.INSTANCE=new Si;class Fi{constructor(){this.type=1}cmp(e){return this.type-e.type}equals(e){return e.type===this.type}substituteConstants(){return this}evaluate(e){return!0}serialize(){return"true"}keys(){return[]}negate(){return Si.INSTANCE}}Fi.INSTANCE=new Fi;class So{constructor(e,t){this.key=e,this.negated=t,this.type=2}static create(e,t=null){const i=Mt.get(e);return typeof i=="boolean"?i?Fi.INSTANCE:Si.INSTANCE:new So(e,t)}cmp(e){return e.type!==this.type?this.type-e.type:bL(this.key,e.key)}equals(e){return e.type===this.type?this.key===e.key:!1}substituteConstants(){const e=Mt.get(this.key);return typeof e=="boolean"?e?Fi.INSTANCE:Si.INSTANCE:this}evaluate(e){return!!e.getValue(this.key)}serialize(){return this.key}keys(){return[this.key]}negate(){return this.negated||(this.negated=Sr.create(this.key,this)),this.negated}}class Za{constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=4}static create(e,t,i=null){if(typeof t=="boolean")return t?So.create(e,i):Sr.create(e,i);const n=Mt.get(e);return typeof n=="boolean"?t===(n?"true":"false")?Fi.INSTANCE:Si.INSTANCE:new Za(e,t,i)}cmp(e){return e.type!==this.type?this.type-e.type:Pr(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){const e=Mt.get(this.key);if(typeof e=="boolean"){const t=e?"true":"false";return this.value===t?Fi.INSTANCE:Si.INSTANCE}return this}evaluate(e){return e.getValue(this.key)==this.value}serialize(){return`${this.key} == '${this.value}'`}keys(){return[this.key]}negate(){return this.negated||(this.negated=Rf.create(this.key,this.value,this)),this.negated}}class I0{constructor(e,t){this.key=e,this.valueKey=t,this.type=10,this.negated=null}static create(e,t){return new I0(e,t)}cmp(e){return e.type!==this.type?this.type-e.type:Pr(this.key,this.valueKey,e.key,e.valueKey)}equals(e){return e.type===this.type?this.key===e.key&&this.valueKey===e.valueKey:!1}substituteConstants(){return this}evaluate(e){const t=e.getValue(this.valueKey),i=e.getValue(this.key);return Array.isArray(t)?t.indexOf(i)>=0:typeof i=="string"&&typeof t=="object"&&t!==null?O4.call(t,i):!1}serialize(){return`${this.key} in '${this.valueKey}'`}keys(){return[this.key,this.valueKey]}negate(){return this.negated||(this.negated=E0.create(this)),this.negated}}class E0{constructor(e){this._actual=e,this.type=11}static create(e){return new E0(e)}cmp(e){return e.type!==this.type?this.type-e.type:this._actual.cmp(e._actual)}equals(e){return e.type===this.type?this._actual.equals(e._actual):!1}substituteConstants(){return this}evaluate(e){return!this._actual.evaluate(e)}serialize(){throw new Error("Method not implemented.")}keys(){return this._actual.keys()}negate(){return this._actual}}class Rf{constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=5}static create(e,t,i=null){if(typeof t=="boolean")return t?Sr.create(e,i):So.create(e,i);const n=Mt.get(e);return typeof n=="boolean"?t===(n?"true":"false")?Si.INSTANCE:Fi.INSTANCE:new Rf(e,t,i)}cmp(e){return e.type!==this.type?this.type-e.type:Pr(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){const e=Mt.get(this.key);if(typeof e=="boolean"){const t=e?"true":"false";return this.value===t?Si.INSTANCE:Fi.INSTANCE}return this}evaluate(e){return e.getValue(this.key)!=this.value}serialize(){return`${this.key} != '${this.value}'`}keys(){return[this.key]}negate(){return this.negated||(this.negated=Za.create(this.key,this.value,this)),this.negated}}class Sr{constructor(e,t){this.key=e,this.negated=t,this.type=3}static create(e,t=null){const i=Mt.get(e);return typeof i=="boolean"?i?Si.INSTANCE:Fi.INSTANCE:new Sr(e,t)}cmp(e){return e.type!==this.type?this.type-e.type:bL(this.key,e.key)}equals(e){return e.type===this.type?this.key===e.key:!1}substituteConstants(){const e=Mt.get(this.key);return typeof e=="boolean"?e?Si.INSTANCE:Fi.INSTANCE:this}evaluate(e){return!e.getValue(this.key)}serialize(){return`!${this.key}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=So.create(this.key,this)),this.negated}}function Af(s,e){if(typeof s=="string"){const t=parseFloat(s);isNaN(t)||(s=t)}return typeof s=="string"||typeof s=="number"?e(s):Si.INSTANCE}class Of{constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=12}static create(e,t,i=null){return Af(t,n=>new Of(e,n,i))}cmp(e){return e.type!==this.type?this.type-e.type:Pr(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){return this}evaluate(e){return typeof this.value=="string"?!1:parseFloat(e.getValue(this.key))>this.value}serialize(){return`${this.key} > ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=Bf.create(this.key,this.value,this)),this.negated}}class Pf{constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=13}static create(e,t,i=null){return Af(t,n=>new Pf(e,n,i))}cmp(e){return e.type!==this.type?this.type-e.type:Pr(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){return this}evaluate(e){return typeof this.value=="string"?!1:parseFloat(e.getValue(this.key))>=this.value}serialize(){return`${this.key} >= ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=Ff.create(this.key,this.value,this)),this.negated}}class Ff{constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=14}static create(e,t,i=null){return Af(t,n=>new Ff(e,n,i))}cmp(e){return e.type!==this.type?this.type-e.type:Pr(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){return this}evaluate(e){return typeof this.value=="string"?!1:parseFloat(e.getValue(this.key))new Bf(e,n,i))}cmp(e){return e.type!==this.type?this.type-e.type:Pr(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){return this}evaluate(e){return typeof this.value=="string"?!1:parseFloat(e.getValue(this.key))<=this.value}serialize(){return`${this.key} <= ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=Of.create(this.key,this.value,this)),this.negated}}class ku{constructor(e,t){this.key=e,this.regexp=t,this.type=7,this.negated=null}static create(e,t){return new ku(e,t)}cmp(e){if(e.type!==this.type)return this.type-e.type;if(this.keye.key)return 1;const t=this.regexp?this.regexp.source:"",i=e.regexp?e.regexp.source:"";return ti?1:0}equals(e){if(e.type===this.type){const t=this.regexp?this.regexp.source:"",i=e.regexp?e.regexp.source:"";return this.key===e.key&&t===i}return!1}substituteConstants(){return this}evaluate(e){let t=e.getValue(this.key);return this.regexp?this.regexp.test(t):!1}serialize(){const e=this.regexp?`/${this.regexp.source}/${this.regexp.ignoreCase?"i":""}`:"/invalid/";return`${this.key} =~ ${e}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=D0.create(this)),this.negated}}class D0{constructor(e){this._actual=e,this.type=8}static create(e){return new D0(e)}cmp(e){return e.type!==this.type?this.type-e.type:this._actual.cmp(e._actual)}equals(e){return e.type===this.type?this._actual.equals(e._actual):!1}substituteConstants(){return this}evaluate(e){return!this._actual.evaluate(e)}serialize(){throw new Error("Method not implemented.")}keys(){return this._actual.keys()}negate(){return this._actual}}function _L(s){let e=null;for(let t=0,i=s.length;te.expr.length)return 1;for(let t=0,i=this.expr.length;t1;){const o=i[i.length-1];if(o.type!==9)break;i.pop();const r=i.pop(),a=i.length===0,l=Ns.create(o.expr.map(c=>oo.create([c,r],null)),null,a);l&&(i.push(l),i.sort(xa))}return i.length===1?i[0]:new oo(i,t)}}serialize(){return this.expr.map(e=>e.serialize()).join(" && ")}keys(){const e=[];for(let t of this.expr)e.push(...t.keys());return e}negate(){if(!this.negated){const e=[];for(let t of this.expr)e.push(t.negate());this.negated=Ns.create(e,this,!0)}return this.negated}}class Ns{constructor(e,t){this.expr=e,this.negated=t,this.type=9}static create(e,t,i){return Ns._normalizeArr(e,t,i)}cmp(e){if(e.type!==this.type)return this.type-e.type;if(this.expr.lengthe.expr.length)return 1;for(let t=0,i=this.expr.length;te.serialize()).join(" || ")}keys(){const e=[];for(let t of this.expr)e.push(...t.keys());return e}negate(){if(!this.negated){let e=[];for(let t of this.expr)e.push(t.negate());for(;e.length>1;){const t=e.shift(),i=e.shift(),n=[];for(const r of xu(t))for(const a of xu(i))n.push(oo.create([r,a],null));const o=e.length===0;e.unshift(Ns.create(n,null,o))}this.negated=e[0]}return this.negated}}class G extends So{constructor(e,t,i){super(e,null),this._defaultValue=t,typeof i=="object"?G._info.push(Object.assign(Object.assign({},i),{key:e})):i!==!0&&G._info.push({key:e,description:i,type:t!=null?typeof t:void 0})}static all(){return G._info.values()}bindTo(e){return e.createKey(this.key,this._defaultValue)}getValue(e){return e.getContextKeyValue(this.key)}toNegated(){return this.negate()}isEqualTo(e){return Za.create(this.key,e)}}G._info=[];const Ne=pe("contextKeyService"),F4="setContext";function bL(s,e){return se?1:0}function Pr(s,e,t,i){return st?1:ei?1:0}function CL(s,e){if(e.type===6&&s.type!==9&&s.type!==6){for(const n of e.expr)if(s.equals(n))return!0}const t=s.negate(),i=xu(t).concat(xu(e));i.sort(xa);for(let n=0;n{const t=this.themingParticipants.indexOf(e);this.themingParticipants.splice(t,1)})}getThemingParticipants(){return this.themingParticipants}}let vL=new V4;xt.add(wL.ThemingContribution,vL);function ni(s){return vL.onColorThemeChange(s)}class W4 extends W{constructor(e){super(),this.themeService=e,this.theme=e.getColorTheme(),this._register(this.themeService.onDidColorThemeChange(t=>this.onThemeChange(t)))}onThemeChange(e){this.theme=e,this.updateStyles()}updateStyles(){}}var H4=globalThis&&globalThis.__decorate||function(s,e,t,i){var n=arguments.length,o=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},KC=globalThis&&globalThis.__param||function(s,e){return function(t,i){e(t,i,s)}};function ql(s){return s.command!==void 0}class N{constructor(e){this.id=N._idPool++,this._debugName=e}}N._idPool=0;N.CommandPalette=new N("CommandPalette");N.DebugBreakpointsContext=new N("DebugBreakpointsContext");N.DebugCallStackContext=new N("DebugCallStackContext");N.DebugConsoleContext=new N("DebugConsoleContext");N.DebugVariablesContext=new N("DebugVariablesContext");N.DebugWatchContext=new N("DebugWatchContext");N.DebugToolBar=new N("DebugToolBar");N.EditorContext=new N("EditorContext");N.SimpleEditorContext=new N("SimpleEditorContext");N.EditorContextCopy=new N("EditorContextCopy");N.EditorContextPeek=new N("EditorContextPeek");N.EditorTitle=new N("EditorTitle");N.EditorTitleRun=new N("EditorTitleRun");N.EditorTitleContext=new N("EditorTitleContext");N.EmptyEditorGroup=new N("EmptyEditorGroup");N.EmptyEditorGroupContext=new N("EmptyEditorGroupContext");N.ExplorerContext=new N("ExplorerContext");N.ExtensionContext=new N("ExtensionContext");N.GlobalActivity=new N("GlobalActivity");N.LayoutControlMenuSubmenu=new N("LayoutControlMenuSubmenu");N.LayoutControlMenu=new N("LayoutControlMenu");N.MenubarMainMenu=new N("MenubarMainMenu");N.MenubarAppearanceMenu=new N("MenubarAppearanceMenu");N.MenubarDebugMenu=new N("MenubarDebugMenu");N.MenubarEditMenu=new N("MenubarEditMenu");N.MenubarCopy=new N("MenubarCopy");N.MenubarFileMenu=new N("MenubarFileMenu");N.MenubarGoMenu=new N("MenubarGoMenu");N.MenubarHelpMenu=new N("MenubarHelpMenu");N.MenubarLayoutMenu=new N("MenubarLayoutMenu");N.MenubarNewBreakpointMenu=new N("MenubarNewBreakpointMenu");N.MenubarPanelAlignmentMenu=new N("MenubarPanelAlignmentMenu");N.MenubarPanelPositionMenu=new N("MenubarPanelPositionMenu");N.MenubarPreferencesMenu=new N("MenubarPreferencesMenu");N.MenubarRecentMenu=new N("MenubarRecentMenu");N.MenubarSelectionMenu=new N("MenubarSelectionMenu");N.MenubarSwitchEditorMenu=new N("MenubarSwitchEditorMenu");N.MenubarSwitchGroupMenu=new N("MenubarSwitchGroupMenu");N.MenubarTerminalMenu=new N("MenubarTerminalMenu");N.MenubarViewMenu=new N("MenubarViewMenu");N.MenubarHomeMenu=new N("MenubarHomeMenu");N.OpenEditorsContext=new N("OpenEditorsContext");N.ProblemsPanelContext=new N("ProblemsPanelContext");N.SCMChangeContext=new N("SCMChangeContext");N.SCMResourceContext=new N("SCMResourceContext");N.SCMResourceFolderContext=new N("SCMResourceFolderContext");N.SCMResourceGroupContext=new N("SCMResourceGroupContext");N.SCMSourceControl=new N("SCMSourceControl");N.SCMTitle=new N("SCMTitle");N.SearchContext=new N("SearchContext");N.StatusBarWindowIndicatorMenu=new N("StatusBarWindowIndicatorMenu");N.StatusBarRemoteIndicatorMenu=new N("StatusBarRemoteIndicatorMenu");N.TestItem=new N("TestItem");N.TestItemGutter=new N("TestItemGutter");N.TestPeekElement=new N("TestPeekElement");N.TestPeekTitle=new N("TestPeekTitle");N.TouchBarContext=new N("TouchBarContext");N.TitleBarContext=new N("TitleBarContext");N.TunnelContext=new N("TunnelContext");N.TunnelPrivacy=new N("TunnelPrivacy");N.TunnelProtocol=new N("TunnelProtocol");N.TunnelPortInline=new N("TunnelInline");N.TunnelTitle=new N("TunnelTitle");N.TunnelLocalAddressInline=new N("TunnelLocalAddressInline");N.TunnelOriginInline=new N("TunnelOriginInline");N.ViewItemContext=new N("ViewItemContext");N.ViewContainerTitle=new N("ViewContainerTitle");N.ViewContainerTitleContext=new N("ViewContainerTitleContext");N.ViewTitle=new N("ViewTitle");N.ViewTitleContext=new N("ViewTitleContext");N.CommentThreadTitle=new N("CommentThreadTitle");N.CommentThreadActions=new N("CommentThreadActions");N.CommentTitle=new N("CommentTitle");N.CommentActions=new N("CommentActions");N.InteractiveToolbar=new N("InteractiveToolbar");N.InteractiveCellTitle=new N("InteractiveCellTitle");N.InteractiveCellExecute=new N("InteractiveCellExecute");N.InteractiveInputExecute=new N("InteractiveInputExecute");N.NotebookToolbar=new N("NotebookToolbar");N.NotebookCellTitle=new N("NotebookCellTitle");N.NotebookCellInsert=new N("NotebookCellInsert");N.NotebookCellBetween=new N("NotebookCellBetween");N.NotebookCellListTop=new N("NotebookCellTop");N.NotebookCellExecute=new N("NotebookCellExecute");N.NotebookCellExecutePrimary=new N("NotebookCellExecutePrimary");N.NotebookDiffCellInputTitle=new N("NotebookDiffCellInputTitle");N.NotebookDiffCellMetadataTitle=new N("NotebookDiffCellMetadataTitle");N.NotebookDiffCellOutputsTitle=new N("NotebookDiffCellOutputsTitle");N.NotebookOutputToolbar=new N("NotebookOutputToolbar");N.NotebookEditorLayoutConfigure=new N("NotebookEditorLayoutConfigure");N.BulkEditTitle=new N("BulkEditTitle");N.BulkEditContext=new N("BulkEditContext");N.TimelineItemContext=new N("TimelineItemContext");N.TimelineTitle=new N("TimelineTitle");N.TimelineTitleContext=new N("TimelineTitleContext");N.AccountsContext=new N("AccountsContext");N.PanelTitle=new N("PanelTitle");N.AuxiliaryBarTitle=new N("AuxiliaryBarTitle");N.TerminalInstanceContext=new N("TerminalInstanceContext");N.TerminalEditorInstanceContext=new N("TerminalEditorInstanceContext");N.TerminalNewDropdownContext=new N("TerminalNewDropdownContext");N.TerminalTabContext=new N("TerminalTabContext");N.TerminalTabEmptyAreaContext=new N("TerminalTabEmptyAreaContext");N.TerminalInlineTabContext=new N("TerminalInlineTabContext");N.WebviewContext=new N("WebviewContext");N.InlineCompletionsActions=new N("InlineCompletionsActions");N.NewFile=new N("NewFile");const SL=pe("menuService"),sc=new class{constructor(){this._commands=new Map,this._menuItems=new Map,this._onDidChangeMenu=new M,this.onDidChangeMenu=this._onDidChangeMenu.event,this._commandPaletteChangeEvent={has:s=>s===N.CommandPalette}}addCommand(s){return this.addCommands(he.single(s))}addCommands(s){for(const e of s)this._commands.set(e.id,e);return this._onDidChangeMenu.fire(this._commandPaletteChangeEvent),Pe(()=>{let e=!1;for(const t of s)e=this._commands.delete(t.id)||e;e&&this._onDidChangeMenu.fire(this._commandPaletteChangeEvent)})}getCommand(s){return this._commands.get(s)}getCommands(){const s=new Map;return this._commands.forEach((e,t)=>s.set(t,e)),s}appendMenuItem(s,e){return this.appendMenuItems(he.single({id:s,item:e}))}appendMenuItems(s){const e=new Set,t=new Xi;for(const{id:i,item:n}of s){let o=this._menuItems.get(i);o||(o=new Xi,this._menuItems.set(i,o)),t.push(o.push(n)),e.add(i)}return this._onDidChangeMenu.fire(e),Pe(()=>{if(t.size>0){for(let i of t)i();this._onDidChangeMenu.fire(e),t.clear()}})}getMenuItems(s){let e;return this._menuItems.has(s)?e=[...this._menuItems.get(s)]:e=[],s===N.CommandPalette&&this._appendImplicitItems(e),e}_appendImplicitItems(s){const e=new Set;for(const t of s)ql(t)&&(e.add(t.command.id),t.alt&&e.add(t.alt.id));this._commands.forEach((t,i)=>{e.has(i)||s.push({command:t})})}};class z4 extends pL{constructor(e,t,i,n){super(`submenuitem.${e.submenu.id}`,typeof e.title=="string"?e.title:e.title.value,[],"submenu"),this.item=e,this._menuService=t,this._contextKeyService=i,this._options=n}get actions(){const e=[],t=this._menuService.createMenu(this.item.submenu,this._contextKeyService),i=t.getActions(this._options);t.dispose();for(const[,n]of i)n.length>0&&(e.push(...n),e.push(new Or));return e.length&&e.pop(),e}}let u_=class yL{constructor(e,t,i,n,o){var r,a;if(this._commandService=o,this.id=e.id,this.label=(i==null?void 0:i.renderShortTitle)&&e.shortTitle?typeof e.shortTitle=="string"?e.shortTitle:e.shortTitle.value:typeof e.title=="string"?e.title:e.title.value,this.tooltip=(a=typeof e.tooltip=="string"?e.tooltip:(r=e.tooltip)===null||r===void 0?void 0:r.value)!==null&&a!==void 0?a:"",this.enabled=!e.precondition||n.contextMatchesRules(e.precondition),this.checked=void 0,e.toggled){const l=e.toggled.condition?e.toggled:{condition:e.toggled};this.checked=n.contextMatchesRules(l.condition),this.checked&&l.tooltip&&(this.tooltip=typeof l.tooltip=="string"?l.tooltip:l.tooltip.value),l.title&&(this.label=typeof l.title=="string"?l.title:l.title.value)}this.item=e,this.alt=t?new yL(t,void 0,i,n,o):void 0,this._options=i,St.isThemeIcon(e.icon)&&(this.class=ei.asClassName(e.icon))}dispose(){}run(...e){var t,i;let n=[];return!((t=this._options)===null||t===void 0)&&t.arg&&(n=[...n,this._options.arg]),!((i=this._options)===null||i===void 0)&&i.shouldForwardArgs&&(n=[...n,...e]),this._commandService.executeCommand(this.id,...n)}};u_=H4([KC(3,Ne),KC(4,Bi)],u_);class Eu{constructor(){this._coreKeybindings=[],this._extensionKeybindings=[],this._cachedMergedKeybindings=null}static bindToCurrentPlatform(e){if(qi===1){if(e&&e.win)return e.win}else if(qi===2){if(e&&e.mac)return e.mac}else if(e&&e.linux)return e.linux;return e}registerKeybindingRule(e){const t=Eu.bindToCurrentPlatform(e);if(t&&t.primary){const i=i_(t.primary,qi);i&&this._registerDefaultKeybinding(i,e.id,e.args,e.weight,0,e.when)}if(t&&Array.isArray(t.secondary))for(let i=0,n=t.secondary.length;i=21&&e<=30||e>=31&&e<=56?!0:e===80||e===81||e===82||e===83||e===84||e===85||e===86||e===110||e===111||e===87||e===88||e===89||e===90||e===91||e===92}_assertNoCtrlAlt(e,t){e.ctrlKey&&e.altKey&&!e.metaKey&&Eu._mightProduceChar(e.keyCode)&&console.warn("Ctrl+Alt+ keybindings should not be used by default under Windows. Offender: ",e," for ",t)}_registerDefaultKeybinding(e,t,i,n,o,r){qi===1&&this._assertNoCtrlAlt(e.parts[0],t),this._coreKeybindings.push({keybinding:e.parts,command:t,commandArgs:i,when:r,weight1:n,weight2:o,extensionId:null,isBuiltinExtension:!1}),this._cachedMergedKeybindings=null}getDefaultKeybindings(){return this._cachedMergedKeybindings||(this._cachedMergedKeybindings=[].concat(this._coreKeybindings).concat(this._extensionKeybindings),this._cachedMergedKeybindings.sort($4)),this._cachedMergedKeybindings.slice(0)}}const wl=new Eu,U4={EditorModes:"platform.keybindingsRegistry"};xt.add(U4.EditorModes,wl);function $4(s,e){return s.weight1!==e.weight1?s.weight1-e.weight1:s.commande.command?1:s.weight2-e.weight2}const Lh=pe("telemetryService");class Vf{constructor(e){this.id=e.id,this.precondition=e.precondition,this._kbOpts=e.kbOpts,this._menuOpts=e.menuOpts,this._description=e.description}register(){if(Array.isArray(this._menuOpts)?this._menuOpts.forEach(this._registerMenuItem,this):this._menuOpts&&this._registerMenuItem(this._menuOpts),this._kbOpts){const e=Array.isArray(this._kbOpts)?this._kbOpts:[this._kbOpts];for(const t of e){let i=t.kbExpr;this.precondition&&(i?i=Oe.and(i,this.precondition):i=this.precondition);const n={id:this.id,weight:t.weight,args:t.args,when:i,primary:t.primary,secondary:t.secondary,win:t.win,linux:t.linux,mac:t.mac};wl.registerKeybindingRule(n)}}Ht.registerCommand({id:this.id,handler:(e,t)=>this.runCommand(e,t),description:this._description})}_registerMenuItem(e){sc.appendMenuItem(e.menuId,{group:e.group,command:{id:this.id,title:e.title,icon:e.icon,precondition:this.precondition},when:e.when,order:e.order})}}class N0 extends Vf{constructor(){super(...arguments),this._implementations=[]}addImplementation(e,t,i){return this._implementations.push({priority:e,name:t,implementation:i}),this._implementations.sort((n,o)=>o.priority-n.priority),{dispose:()=>{for(let n=0;n{if(!!o.get(Ne).contextMatchesRules(Qo(this.precondition)))return this.runEditorCommand(o,n,t)})}}class Fs extends Fr{constructor(e){super(Fs.convertOptions(e)),this.label=e.label,this.alias=e.alias}static convertOptions(e){let t;Array.isArray(e.menuOpts)?t=e.menuOpts:e.menuOpts?t=[e.menuOpts]:t=[];function i(n){return n.menuId||(n.menuId=N.EditorContext),n.title||(n.title=e.label),n.when=Oe.and(e.precondition,n.when),n}return Array.isArray(e.contextMenuOpts)?t.push(...e.contextMenuOpts.map(i)):e.contextMenuOpts&&t.push(i(e.contextMenuOpts)),e.menuOpts=t,e}runEditorCommand(e,t,i){return this.reportTelemetry(e,t),this.run(e,t,i||{})}reportTelemetry(e,t){e.get(Lh).publicLog2("editorActionInvoked",{name:this.label,id:this.id})}}class kL extends Fs{constructor(){super(...arguments),this._implementations=[]}addImplementation(e,t){return this._implementations.push([e,t]),this._implementations.sort((i,n)=>n[0]-i[0]),{dispose:()=>{for(let i=0;ir.indexOf(a.id)>=0)}s.getSomeEditorContributions=n;function o(){return Zi.INSTANCE.getDiffEditorContributions()}s.getDiffEditorContributions=o})(Ia||(Ia={}));const j4={EditorCommonContributions:"editor.contributions"};class Zi{constructor(){this.editorContributions=[],this.diffEditorContributions=[],this.editorActions=[],this.editorCommands=Object.create(null)}registerEditorContribution(e,t){this.editorContributions.push({id:e,ctor:t})}getEditorContributions(){return this.editorContributions.slice(0)}getDiffEditorContributions(){return this.diffEditorContributions.slice(0)}registerEditorAction(e){e.register(),this.editorActions.push(e)}getEditorActions(){return this.editorActions.slice(0)}registerEditorCommand(e){e.register(),this.editorCommands[e.id]=e}getEditorCommand(e){return this.editorCommands[e]||null}}Zi.INSTANCE=new Zi;xt.add(j4.EditorCommonContributions,Zi.INSTANCE);function kh(s){return s.register(),s}const IL=kh(new N0({id:"undo",precondition:void 0,kbOpts:{weight:0,primary:2104},menuOpts:[{menuId:N.MenubarEditMenu,group:"1_do",title:p({key:"miUndo",comment:["&& denotes a mnemonic"]},"&&Undo"),order:1},{menuId:N.CommandPalette,group:"",title:p("undo","Undo"),order:1}]}));kh(new LL(IL,{id:"default:undo",precondition:void 0}));const EL=kh(new N0({id:"redo",precondition:void 0,kbOpts:{weight:0,primary:2103,secondary:[3128],mac:{primary:3128}},menuOpts:[{menuId:N.MenubarEditMenu,group:"1_do",title:p({key:"miRedo",comment:["&& denotes a mnemonic"]},"&&Redo"),order:2},{menuId:N.CommandPalette,group:"",title:p("redo","Redo"),order:1}]}));kh(new LL(EL,{id:"default:redo",precondition:void 0}));const K4=kh(new N0({id:"editor.action.selectAll",precondition:void 0,kbOpts:{weight:0,kbExpr:null,primary:2079},menuOpts:[{menuId:N.MenubarSelectionMenu,group:"1_basic",title:p({key:"miSelectAll",comment:["&& denotes a mnemonic"]},"&&Select All"),order:1},{menuId:N.CommandPalette,group:"",title:p("selectAll","Select All"),order:1}]}));var q4=globalThis&&globalThis.__decorate||function(s,e,t,i){var n=arguments.length,o=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},G4=globalThis&&globalThis.__param||function(s,e){return function(t,i){e(t,i,s)}};let Bc=class{constructor(e,t){}dispose(){}};Bc.ID="editor.contrib.markerDecorations";Bc=q4([G4(1,mL)],Bc);T0(Bc.ID,Bc);class DL extends W{constructor(e,t){super(),this._onDidChange=this._register(new M),this.onDidChange=this._onDidChange.event,this._referenceDomElement=e,this._width=-1,this._height=-1,this._resizeObserver=null,this.measureReferenceDomElement(!1,t)}dispose(){this.stopObserving(),super.dispose()}getWidth(){return this._width}getHeight(){return this._height}startObserving(){!this._resizeObserver&&this._referenceDomElement&&(this._resizeObserver=new ResizeObserver(e=>{e&&e[0]&&e[0].contentRect?this.observe({width:e[0].contentRect.width,height:e[0].contentRect.height}):this.observe()}),this._resizeObserver.observe(this._referenceDomElement))}stopObserving(){this._resizeObserver&&(this._resizeObserver.disconnect(),this._resizeObserver=null)}observe(e){this.measureReferenceDomElement(!0,e)}measureReferenceDomElement(e,t){let i=0,n=0;t?(i=t.width,n=t.height):this._referenceDomElement&&(i=this._referenceDomElement.clientWidth,n=this._referenceDomElement.clientHeight),i=Math.max(5,i),n=Math.max(5,n),(this._width!==i||this._height!==n)&&(this._width=i,this._height=n,e&&this._onDidChange.fire())}}const Z4=Object.prototype.hasOwnProperty;function Y4(s,e){for(let t in s)if(Z4.call(s,t)&&e({key:t,value:s[t]},function(){delete s[t]})===!1)return}class X4{constructor(){this.map=new Map}add(e,t){let i=this.map.get(e);i||(i=new Set,this.map.set(e,i)),i.add(t)}delete(e,t){const i=this.map.get(e);!i||(i.delete(t),i.size===0&&this.map.delete(e))}forEach(e,t){const i=this.map.get(e);!i||i.forEach(t)}}function Q4(s){const e=s.wordWrap;e===!0?s.wordWrap="on":e===!1&&(s.wordWrap="off");const t=s.lineNumbers;t===!0?s.lineNumbers="on":t===!1&&(s.lineNumbers="off"),s.autoClosingBrackets===!1&&(s.autoClosingBrackets="never",s.autoClosingQuotes="never",s.autoSurround="never"),s.cursorBlinking==="visible"&&(s.cursorBlinking="solid");const o=s.renderWhitespace;o===!0?s.renderWhitespace="boundary":o===!1&&(s.renderWhitespace="none");const r=s.renderLineHighlight;r===!0?s.renderLineHighlight="line":r===!1&&(s.renderLineHighlight="none");const a=s.acceptSuggestionOnEnter;a===!0?s.acceptSuggestionOnEnter="on":a===!1&&(s.acceptSuggestionOnEnter="off");const l=s.tabCompletion;l===!1?s.tabCompletion="off":l===!0&&(s.tabCompletion="onlySnippets");const c=s.suggest;if(c&&typeof c.filteredTypes=="object"&&c.filteredTypes){const b={};b.method="showMethods",b.function="showFunctions",b.constructor="showConstructors",b.deprecated="showDeprecated",b.field="showFields",b.variable="showVariables",b.class="showClasses",b.struct="showStructs",b.interface="showInterfaces",b.module="showModules",b.property="showProperties",b.event="showEvents",b.operator="showOperators",b.unit="showUnits",b.value="showValues",b.constant="showConstants",b.enum="showEnums",b.enumMember="showEnumMembers",b.keyword="showKeywords",b.text="showWords",b.color="showColors",b.file="showFiles",b.reference="showReferences",b.folder="showFolders",b.typeParameter="showTypeParameters",b.snippet="showSnippets",Y4(b,w=>{const C=c.filteredTypes[w.key];C===!1&&(c[w.value]=C)})}const h=s.hover;h===!0?s.hover={enabled:!0}:h===!1&&(s.hover={enabled:!1});const d=s.parameterHints;d===!0?s.parameterHints={enabled:!0}:d===!1&&(s.parameterHints={enabled:!1});const u=s.autoIndent;u===!0?s.autoIndent="full":u===!1&&(s.autoIndent="advanced");const f=s.matchBrackets;f===!0?s.matchBrackets="always":f===!1&&(s.matchBrackets="never");const{renderIndentGuides:m,highlightActiveIndentGuide:_}=s;s.guides||(s.guides={}),m!==void 0&&(s.guides.indentation=!!m),_!==void 0&&(s.guides.highlightActiveIndentation=!!_)}class J4{constructor(){this._tabFocus=!1,this._onDidChangeTabFocus=new M,this.onDidChangeTabFocus=this._onDidChangeTabFocus.event}getTabFocusMode(){return this._tabFocus}setTabFocusMode(e){this._tabFocus!==e&&(this._tabFocus=e,this._onDidChangeTabFocus.fire(this._tabFocus))}}const qC=new J4,Vi=pe("accessibilityService"),eT=new G("accessibilityModeEnabled",!1);var tT=globalThis&&globalThis.__decorate||function(s,e,t,i){var n=arguments.length,o=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},iT=globalThis&&globalThis.__param||function(s,e){return function(t,i){e(t,i,s)}};let f_=class extends W{constructor(e,t,i,n){super(),this._accessibilityService=n,this._onDidChange=this._register(new M),this.onDidChange=this._onDidChange.event,this._onDidChangeFast=this._register(new M),this.onDidChangeFast=this._onDidChangeFast.event,this._isDominatedByLongLines=!1,this._viewLineCount=1,this._lineNumbersDigitCount=1,this._reservedHeight=0,this._computeOptionsMemory=new ry,this.isSimpleWidget=e,this._containerObserver=this._register(new DL(i,t.dimension)),this._rawOptions=GC(t),this._validatedOptions=to.validateOptions(this._rawOptions),this.options=this._computeOptions(),this.options.get(10)&&this._containerObserver.startObserving(),this._register(uu.onDidChangeZoomLevel(()=>this._recomputeOptions())),this._register(qC.onDidChangeTabFocus(()=>this._recomputeOptions())),this._register(this._containerObserver.onDidChange(()=>this._recomputeOptions())),this._register(Up.onDidChange(()=>this._recomputeOptions())),this._register(Dc.onDidChange(()=>this._recomputeOptions())),this._register(this._accessibilityService.onDidChangeScreenReaderOptimized(()=>this._recomputeOptions()))}_recomputeOptions(){const e=this._computeOptions(),t=to.checkEquals(this.options,e);t!==null&&(this.options=e,this._onDidChangeFast.fire(t),this._onDidChange.fire(t))}_computeOptions(){const e=this._readEnvConfiguration(),t=ar.createFromValidatedSettings(this._validatedOptions,e.pixelRatio,this.isSimpleWidget),i=this._readFontInfo(t),n={memory:this._computeOptionsMemory,outerWidth:e.outerWidth,outerHeight:e.outerHeight-this._reservedHeight,fontInfo:i,extraEditorClassName:e.extraEditorClassName,isDominatedByLongLines:this._isDominatedByLongLines,viewLineCount:this._viewLineCount,lineNumbersDigitCount:this._lineNumbersDigitCount,emptySelectionClipboard:e.emptySelectionClipboard,pixelRatio:e.pixelRatio,tabFocusMode:qC.getTabFocusMode(),accessibilitySupport:e.accessibilitySupport};return to.computeOptions(this._validatedOptions,n)}_readEnvConfiguration(){return{extraEditorClassName:sT(),outerWidth:this._containerObserver.getWidth(),outerHeight:this._containerObserver.getHeight(),emptySelectionClipboard:uo||Oi,pixelRatio:Dc.value,accessibilitySupport:this._accessibilityService.isScreenReaderOptimized()?2:this._accessibilityService.getAccessibilitySupport()}}_readFontInfo(e){return Up.readFontInfo(e)}getRawOptions(){return this._rawOptions}updateOptions(e){const t=GC(e);!to.applyUpdate(this._rawOptions,t)||(this._validatedOptions=to.validateOptions(this._rawOptions),this._recomputeOptions())}observeContainer(e){this._containerObserver.observe(e)}setIsDominatedByLongLines(e){this._isDominatedByLongLines!==e&&(this._isDominatedByLongLines=e,this._recomputeOptions())}setModelLineCount(e){const t=nT(e);this._lineNumbersDigitCount!==t&&(this._lineNumbersDigitCount=t,this._recomputeOptions())}setViewLineCount(e){this._viewLineCount!==e&&(this._viewLineCount=e,this._recomputeOptions())}setReservedHeight(e){this._reservedHeight!==e&&(this._reservedHeight=e,this._recomputeOptions())}};f_=tT([iT(3,Vi)],f_);function nT(s){let e=0;for(;s;)s=Math.floor(s/10),e++;return e||1}function sT(){let s="";return!Jn&&!c0&&(s+="no-user-select "),Jn&&(s+="no-minimap-shadow "),me&&(s+="mac "),s}class oT{constructor(){this._values=[]}_read(e){return this._values[e]}get(e){return this._values[e]}_write(e,t){this._values[e]=t}}class rT{constructor(){this._values=[]}_read(e){if(e>=this._values.length)throw new Error("Cannot read uninitialized value");return this._values[e]}get(e){return this._read(e)}_write(e,t){this._values[e]=t}}class to{static validateOptions(e){const t=new oT;for(const i of oa){const n=i.name==="_never_"?void 0:e[i.name];t._write(i.id,i.validate(n))}return t}static computeOptions(e,t){const i=new rT;for(const n of oa)i._write(n.id,n.compute(t,i,e._read(n.id)));return i}static _deepEquals(e,t){if(typeof e!="object"||typeof t!="object"||!e||!t)return e===t;if(Array.isArray(e)||Array.isArray(t))return Array.isArray(e)&&Array.isArray(t)?Kn(e,t):!1;if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const i in e)if(!to._deepEquals(e[i],t[i]))return!1;return!0}static checkEquals(e,t){const i=[];let n=!1;for(const o of oa){const r=!to._deepEquals(e._read(o.id),t._read(o.id));i[o.id]=r,r&&(n=!0)}return n?new oy(i):null}static applyUpdate(e,t){let i=!1;for(const n of oa)if(t.hasOwnProperty(n.name)){const o=n.applyUpdate(e[n.name],t[n.name]);e[n.name]=o.newValue,i=i||o.didChange}return i}}function GC(s){const e=Ys(s);return Q4(e),e}function rt(s,e,t){let i=null,n=null;if(typeof t.value=="function"?(i="value",n=t.value,n.length!==0&&console.warn("Memoize should only be used in functions with zero parameters")):typeof t.get=="function"&&(i="get",n=t.get),!n)throw new Error("not supported");const o=`$memoize$${e}`;t[i]=function(...r){return this.hasOwnProperty(o)||Object.defineProperty(this,o,{configurable:!1,enumerable:!1,writable:!1,value:n.apply(this,r)}),this[o]}}var aT=globalThis&&globalThis.__decorate||function(s,e,t,i){var n=arguments.length,o=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},Ae;(function(s){s.Tap="-monaco-gesturetap",s.Change="-monaco-gesturechange",s.Start="-monaco-gesturestart",s.End="-monaco-gesturesend",s.Contextmenu="-monaco-gesturecontextmenu"})(Ae||(Ae={}));class Se extends W{constructor(){super(),this.dispatched=!1,this.activeTouches={},this.handle=null,this.targets=[],this.ignoreTargets=[],this._lastSetTapCountTime=0,this._register(V(document,"touchstart",e=>this.onTouchStart(e),{passive:!1})),this._register(V(document,"touchend",e=>this.onTouchEnd(e))),this._register(V(document,"touchmove",e=>this.onTouchMove(e),{passive:!1}))}static addTarget(e){return Se.isTouchDevice()?(Se.INSTANCE||(Se.INSTANCE=new Se),Se.INSTANCE.targets.push(e),{dispose:()=>{Se.INSTANCE.targets=Se.INSTANCE.targets.filter(t=>t!==e)}}):W.None}static ignoreTarget(e){return Se.isTouchDevice()?(Se.INSTANCE||(Se.INSTANCE=new Se),Se.INSTANCE.ignoreTargets.push(e),{dispose:()=>{Se.INSTANCE.ignoreTargets=Se.INSTANCE.ignoreTargets.filter(t=>t!==e)}}):W.None}static isTouchDevice(){return"ontouchstart"in window||navigator.maxTouchPoints>0}dispose(){this.handle&&(this.handle.dispose(),this.handle=null),super.dispose()}onTouchStart(e){let t=Date.now();this.handle&&(this.handle.dispose(),this.handle=null);for(let i=0,n=e.targetTouches.length;i=Se.HOLD_DELAY&&Math.abs(a.initialPageX-ki(a.rollingPageX))<30&&Math.abs(a.initialPageY-ki(a.rollingPageY))<30){let c=this.newGestureEvent(Ae.Contextmenu,a.initialTarget);c.pageX=ki(a.rollingPageX),c.pageY=ki(a.rollingPageY),this.dispatchEvent(c)}else if(i===1){let c=ki(a.rollingPageX),h=ki(a.rollingPageY),d=ki(a.rollingTimestamps)-a.rollingTimestamps[0],u=c-a.rollingPageX[0],f=h-a.rollingPageY[0];const m=this.targets.filter(_=>a.initialTarget instanceof Node&&_.contains(a.initialTarget));this.inertia(m,t,Math.abs(u)/d,u>0?1:-1,c,Math.abs(f)/d,f>0?1:-1,h)}this.dispatchEvent(this.newGestureEvent(Ae.End,a.initialTarget)),delete this.activeTouches[r.identifier]}this.dispatched&&(e.preventDefault(),e.stopPropagation(),this.dispatched=!1)}newGestureEvent(e,t){let i=document.createEvent("CustomEvent");return i.initEvent(e,!1,!0),i.initialTarget=t,i.tapCount=0,i}dispatchEvent(e){if(e.type===Ae.Tap){const t=new Date().getTime();let i=0;t-this._lastSetTapCountTime>Se.CLEAR_TAP_COUNT_TIME?i=1:i=2,this._lastSetTapCountTime=t,e.tapCount=i}else(e.type===Ae.Change||e.type===Ae.Contextmenu)&&(this._lastSetTapCountTime=0);for(let t=0;t{e.initialTarget instanceof Node&&t.contains(e.initialTarget)&&(t.dispatchEvent(e),this.dispatched=!0)})}inertia(e,t,i,n,o,r,a,l){this.handle=kn(()=>{let c=Date.now(),h=c-t,d=0,u=0,f=!0;i+=Se.SCROLL_FRICTION*h,r+=Se.SCROLL_FRICTION*h,i>0&&(f=!1,d=n*i*h),r>0&&(f=!1,u=a*r*h);let m=this.newGestureEvent(Ae.Change);m.translationX=d,m.translationY=u,e.forEach(_=>_.dispatchEvent(m)),f||this.inertia(e,c,i,n,o+d,r,a,l+u)})}onTouchMove(e){let t=Date.now();for(let i=0,n=e.changedTouches.length;i3&&(r.rollingPageX.shift(),r.rollingPageY.shift(),r.rollingTimestamps.shift()),r.rollingPageX.push(o.pageX),r.rollingPageY.push(o.pageY),r.rollingTimestamps.push(t)}this.dispatched&&(e.preventDefault(),e.stopPropagation(),this.dispatched=!1)}}Se.SCROLL_FRICTION=-.005;Se.HOLD_DELAY=700;Se.CLEAR_TAP_COUNT_TIME=400;aT([rt],Se,"isTouchDevice",null);function M0(s,e){let t=new Ji(e);return t.preventDefault(),{leftButton:t.leftButton,buttons:t.buttons,posx:t.posx,posy:t.posy}}class Wf{constructor(){this._hooks=new se,this._mouseMoveEventMerger=null,this._mouseMoveCallback=null,this._onStopCallback=null}dispose(){this.stopMonitoring(!1),this._hooks.dispose()}stopMonitoring(e,t){if(!this.isMonitoring())return;this._hooks.clear(),this._mouseMoveEventMerger=null,this._mouseMoveCallback=null;const i=this._onStopCallback;this._onStopCallback=null,e&&i&&i(t)}isMonitoring(){return!!this._mouseMoveEventMerger}startMonitoring(e,t,i,n,o){if(this.isMonitoring())return;this._mouseMoveEventMerger=i,this._mouseMoveCallback=n,this._onStopCallback=o;const r=s_.getSameOriginWindowChain(),a=pr?"pointermove":"mousemove",l="mouseup",c=r.map(d=>d.window.document),h=vr(e);h&&c.unshift(h);for(const d of c)this._hooks.add(L0(d,a,u=>{if(u.buttons!==t){this.stopMonitoring(!0);return}this._mouseMoveCallback(u)},(u,f)=>this._mouseMoveEventMerger(u,f))),this._hooks.add(V(d,l,u=>this.stopMonitoring(!0)));if(s_.hasDifferentOriginAncestor()){let d=r[r.length-1];this._hooks.add(V(d.window.document,"mouseout",u=>{new Ji(u).target.tagName.toLowerCase()==="html"&&this.stopMonitoring(!0)})),this._hooks.add(V(d.window.document,"mouseover",u=>{new Ji(u).target.tagName.toLowerCase()==="html"&&this.stopMonitoring(!0)})),this._hooks.add(V(d.window.document.body,"mouseleave",u=>{this.stopMonitoring(!0)}))}}}function go(s,e){const t=Math.pow(10,e);return Math.round(s*t)/t}class de{constructor(e,t,i,n=1){this._rgbaBrand=void 0,this.r=Math.min(255,Math.max(0,e))|0,this.g=Math.min(255,Math.max(0,t))|0,this.b=Math.min(255,Math.max(0,i))|0,this.a=go(Math.max(Math.min(1,n),0),3)}static equals(e,t){return e.r===t.r&&e.g===t.g&&e.b===t.b&&e.a===t.a}}class pn{constructor(e,t,i,n){this._hslaBrand=void 0,this.h=Math.max(Math.min(360,e),0)|0,this.s=go(Math.max(Math.min(1,t),0),3),this.l=go(Math.max(Math.min(1,i),0),3),this.a=go(Math.max(Math.min(1,n),0),3)}static equals(e,t){return e.h===t.h&&e.s===t.s&&e.l===t.l&&e.a===t.a}static fromRGBA(e){const t=e.r/255,i=e.g/255,n=e.b/255,o=e.a,r=Math.max(t,i,n),a=Math.min(t,i,n);let l=0,c=0;const h=(a+r)/2,d=r-a;if(d>0){switch(c=Math.min(h<=.5?d/(2*h):d/(2-2*h),1),r){case t:l=(i-n)/d+(i1&&(i-=1),i<1/6?e+(t-e)*6*i:i<1/2?t:i<2/3?e+(t-e)*(2/3-i)*6:e}static toRGBA(e){const t=e.h/360,{s:i,l:n,a:o}=e;let r,a,l;if(i===0)r=a=l=n;else{const c=n<.5?n*(1+i):n+i-n*i,h=2*n-c;r=pn._hue2rgb(h,c,t+1/3),a=pn._hue2rgb(h,c,t),l=pn._hue2rgb(h,c,t-1/3)}return new de(Math.round(r*255),Math.round(a*255),Math.round(l*255),o)}}class ua{constructor(e,t,i,n){this._hsvaBrand=void 0,this.h=Math.max(Math.min(360,e),0)|0,this.s=go(Math.max(Math.min(1,t),0),3),this.v=go(Math.max(Math.min(1,i),0),3),this.a=go(Math.max(Math.min(1,n),0),3)}static equals(e,t){return e.h===t.h&&e.s===t.s&&e.v===t.v&&e.a===t.a}static fromRGBA(e){const t=e.r/255,i=e.g/255,n=e.b/255,o=Math.max(t,i,n),r=Math.min(t,i,n),a=o-r,l=o===0?0:a/o;let c;return a===0?c=0:o===t?c=((i-n)/a%6+6)%6:o===i?c=(n-t)/a+2:c=(t-i)/a+4,new ua(Math.round(c*60),l,o,e.a)}static toRGBA(e){const{h:t,s:i,v:n,a:o}=e,r=n*i,a=r*(1-Math.abs(t/60%2-1)),l=n-r;let[c,h,d]=[0,0,0];return t<60?(c=r,h=a):t<120?(c=a,h=r):t<180?(h=r,d=a):t<240?(h=a,d=r):t<300?(c=a,d=r):t<=360&&(c=r,d=a),c=Math.round((c+l)*255),h=Math.round((h+l)*255),d=Math.round((d+l)*255),new de(c,h,d,o)}}class O{constructor(e){if(e)if(e instanceof de)this.rgba=e;else if(e instanceof pn)this._hsla=e,this.rgba=pn.toRGBA(e);else if(e instanceof ua)this._hsva=e,this.rgba=ua.toRGBA(e);else throw new Error("Invalid color ctor argument");else throw new Error("Color needs a value")}static fromHex(e){return O.Format.CSS.parseHex(e)||O.red}get hsla(){return this._hsla?this._hsla:pn.fromRGBA(this.rgba)}get hsva(){return this._hsva?this._hsva:ua.fromRGBA(this.rgba)}equals(e){return!!e&&de.equals(this.rgba,e.rgba)&&pn.equals(this.hsla,e.hsla)&&ua.equals(this.hsva,e.hsva)}getRelativeLuminance(){const e=O._relativeLuminanceForComponent(this.rgba.r),t=O._relativeLuminanceForComponent(this.rgba.g),i=O._relativeLuminanceForComponent(this.rgba.b),n=.2126*e+.7152*t+.0722*i;return go(n,4)}static _relativeLuminanceForComponent(e){const t=e/255;return t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)}isLighter(){return(this.rgba.r*299+this.rgba.g*587+this.rgba.b*114)/1e3>=128}isLighterThan(e){const t=this.getRelativeLuminance(),i=e.getRelativeLuminance();return t>i}isDarkerThan(e){const t=this.getRelativeLuminance(),i=e.getRelativeLuminance();return t0&&s.charAt(s.length-1)==="#"?s.substring(0,s.length-1):s}class cT{constructor(){this._onDidChangeSchema=new M,this.schemasById={}}registerSchema(e,t){this.schemasById[lT(e)]=t,this._onDidChangeSchema.fire(e)}notifySchemaChanged(e){this._onDidChangeSchema.fire(e)}}const hT=new cT;xt.add(Hf.JSONContribution,hT);function dT(s){return`--vscode-${s.replace(/\./g,"-")}`}const NL={ColorContribution:"base.contributions.colors"};class uT{constructor(){this._onDidChangeSchema=new M,this.onDidChangeSchema=this._onDidChangeSchema.event,this.colorSchema={type:"object",properties:{}},this.colorReferenceSchema={type:"string",enum:[],enumDescriptions:[]},this.colorsById={}}registerColor(e,t,i,n=!1,o){let r={id:e,description:i,defaults:t,needsTransparency:n,deprecationMessage:o};this.colorsById[e]=r;let a={type:"string",description:i,format:"color-hex",defaultSnippets:[{body:"${1:#ff0000}"}]};return o&&(a.deprecationMessage=o),this.colorSchema.properties[e]=a,this.colorReferenceSchema.enum.push(e),this.colorReferenceSchema.enumDescriptions.push(i),this._onDidChangeSchema.fire(),e}getColors(){return Object.keys(this.colorsById).map(e=>this.colorsById[e])}resolveDefaultColor(e,t){const i=this.colorsById[e];if(i&&i.defaults){const n=i.defaults[t.type];return ps(n,t)}}getColorSchema(){return this.colorSchema}toString(){let e=(t,i)=>{let n=t.indexOf(".")===-1?0:1,o=i.indexOf(".")===-1?0:1;return n!==o?n-o:t.localeCompare(i)};return Object.keys(this.colorsById).sort(e).map(t=>`- \`${t}\`: ${this.colorsById[t].description}`).join(` +`)}}const zf=new uT;xt.add(NL.ColorContribution,zf);function E(s,e,t,i,n){return zf.registerColor(s,e,t,i,n)}const Fe=E("foreground",{dark:"#CCCCCC",light:"#616161",hc:"#FFFFFF"},p("foreground","Overall foreground color. This color is only used if not overridden by a component.")),fT=E("errorForeground",{dark:"#F48771",light:"#A1260D",hc:"#F48771"},p("errorForeground","Overall foreground color for error messages. This color is only used if not overridden by a component."));E("descriptionForeground",{light:"#717171",dark:ne(Fe,.7),hc:ne(Fe,.7)},p("descriptionForeground","Foreground color for description text providing additional information, for example for a label."));E("icon.foreground",{dark:"#C5C5C5",light:"#424242",hc:"#FFFFFF"},p("iconForeground","The default color for icons in the workbench."));const Zn=E("focusBorder",{dark:"#007FD4",light:"#0090F1",hc:"#F38518"},p("focusBorder","Overall border color for focused elements. This color is only used if not overridden by a component.")),it=E("contrastBorder",{light:null,dark:null,hc:"#6FC3DF"},p("contrastBorder","An extra border around elements to separate them from others for greater contrast.")),yi=E("contrastActiveBorder",{light:null,dark:null,hc:Zn},p("activeContrastBorder","An extra border around active elements to separate them from others for greater contrast."));E("selection.background",{light:null,dark:null,hc:null},p("selectionBackground","The background color of text selections in the workbench (e.g. for input fields or text areas). Note that this does not apply to selections within the editor."));E("textSeparator.foreground",{light:"#0000002e",dark:"#ffffff2e",hc:O.black},p("textSeparatorForeground","Color for text separators."));E("textLink.foreground",{light:"#006AB1",dark:"#3794FF",hc:"#3794FF"},p("textLinkForeground","Foreground color for links in text."));E("textLink.activeForeground",{light:"#006AB1",dark:"#3794FF",hc:"#3794FF"},p("textLinkActiveForeground","Foreground color for links in text when clicked on and on mouse hover."));E("textPreformat.foreground",{light:"#A31515",dark:"#D7BA7D",hc:"#D7BA7D"},p("textPreformatForeground","Foreground color for preformatted text segments."));E("textBlockQuote.background",{light:"#7f7f7f1a",dark:"#7f7f7f1a",hc:null},p("textBlockQuoteBackground","Background color for block quotes in text."));E("textBlockQuote.border",{light:"#007acc80",dark:"#007acc80",hc:O.white},p("textBlockQuoteBorder","Border color for block quotes in text."));E("textCodeBlock.background",{light:"#dcdcdc66",dark:"#0a0a0a66",hc:O.black},p("textCodeBlockBackground","Background color for code blocks in text."));const Ya=E("widget.shadow",{dark:ne(O.black,.36),light:ne(O.black,.16),hc:null},p("widgetShadow","Shadow color of widgets such as find/replace inside the editor.")),TL=E("input.background",{dark:"#3C3C3C",light:O.white,hc:O.black},p("inputBoxBackground","Input box background.")),ML=E("input.foreground",{dark:Fe,light:Fe,hc:Fe},p("inputBoxForeground","Input box foreground.")),RL=E("input.border",{dark:null,light:null,hc:it},p("inputBoxBorder","Input box border.")),g_=E("inputOption.activeBorder",{dark:"#007ACC00",light:"#007ACC00",hc:it},p("inputBoxActiveOptionBorder","Border color of activated options in input fields."));E("inputOption.hoverBackground",{dark:"#5a5d5e80",light:"#b8b8b850",hc:null},p("inputOption.hoverBackground","Background color of activated options in input fields."));const m_=E("inputOption.activeBackground",{dark:ne(Zn,.4),light:ne(Zn,.2),hc:O.transparent},p("inputOption.activeBackground","Background hover color of options in input fields.")),p_=E("inputOption.activeForeground",{dark:O.white,light:O.black,hc:null},p("inputOption.activeForeground","Foreground color of activated options in input fields."));E("input.placeholderForeground",{light:ne(Fe,.5),dark:ne(Fe,.5),hc:ne(Fe,.7)},p("inputPlaceholderForeground","Input box foreground color for placeholder text."));const AL=E("inputValidation.infoBackground",{dark:"#063B49",light:"#D6ECF2",hc:O.black},p("inputValidationInfoBackground","Input validation background color for information severity.")),OL=E("inputValidation.infoForeground",{dark:null,light:null,hc:null},p("inputValidationInfoForeground","Input validation foreground color for information severity.")),PL=E("inputValidation.infoBorder",{dark:"#007acc",light:"#007acc",hc:it},p("inputValidationInfoBorder","Input validation border color for information severity.")),FL=E("inputValidation.warningBackground",{dark:"#352A05",light:"#F6F5D2",hc:O.black},p("inputValidationWarningBackground","Input validation background color for warning severity.")),BL=E("inputValidation.warningForeground",{dark:null,light:null,hc:null},p("inputValidationWarningForeground","Input validation foreground color for warning severity.")),VL=E("inputValidation.warningBorder",{dark:"#B89500",light:"#B89500",hc:it},p("inputValidationWarningBorder","Input validation border color for warning severity.")),WL=E("inputValidation.errorBackground",{dark:"#5A1D1D",light:"#F2DEDE",hc:O.black},p("inputValidationErrorBackground","Input validation background color for error severity.")),HL=E("inputValidation.errorForeground",{dark:null,light:null,hc:null},p("inputValidationErrorForeground","Input validation foreground color for error severity.")),zL=E("inputValidation.errorBorder",{dark:"#BE1100",light:"#BE1100",hc:it},p("inputValidationErrorBorder","Input validation border color for error severity.")),lr=E("dropdown.background",{dark:"#3C3C3C",light:O.white,hc:O.black},p("dropdownBackground","Dropdown background."));E("dropdown.listBackground",{dark:null,light:null,hc:O.black},p("dropdownListBackground","Dropdown list background."));const oc=E("dropdown.foreground",{dark:"#F0F0F0",light:null,hc:O.white},p("dropdownForeground","Dropdown foreground.")),$g=E("dropdown.border",{dark:lr,light:"#CECECE",hc:it},p("dropdownBorder","Dropdown border."));E("checkbox.background",{dark:lr,light:lr,hc:lr},p("checkbox.background","Background color of checkbox widget."));E("checkbox.foreground",{dark:oc,light:oc,hc:oc},p("checkbox.foreground","Foreground color of checkbox widget."));E("checkbox.border",{dark:$g,light:$g,hc:$g},p("checkbox.border","Border color of checkbox widget."));const gT=E("button.foreground",{dark:O.white,light:O.white,hc:O.white},p("buttonForeground","Button foreground color.")),__=E("button.background",{dark:"#0E639C",light:"#007ACC",hc:null},p("buttonBackground","Button background color.")),mT=E("button.hoverBackground",{dark:yo(__,.2),light:Sl(__,.2),hc:null},p("buttonHoverBackground","Button background color when hovering."));E("button.border",{dark:it,light:it,hc:it},p("buttonBorder","Button border color."));E("button.secondaryForeground",{dark:O.white,light:O.white,hc:O.white},p("buttonSecondaryForeground","Secondary button foreground color."));const ZC=E("button.secondaryBackground",{dark:"#3A3D41",light:"#5F6A79",hc:null},p("buttonSecondaryBackground","Secondary button background color."));E("button.secondaryHoverBackground",{dark:yo(ZC,.2),light:Sl(ZC,.2),hc:null},p("buttonSecondaryHoverBackground","Secondary button background color when hovering."));const Fd=E("badge.background",{dark:"#4D4D4D",light:"#C4C4C4",hc:O.black},p("badgeBackground","Badge background color. Badges are small information labels, e.g. for search results count.")),Bd=E("badge.foreground",{dark:O.white,light:"#333",hc:O.white},p("badgeForeground","Badge foreground color. Badges are small information labels, e.g. for search results count.")),vl=E("scrollbar.shadow",{dark:"#000000",light:"#DDDDDD",hc:null},p("scrollbarShadow","Scrollbar shadow to indicate that the view is scrolled.")),Ea=E("scrollbarSlider.background",{dark:O.fromHex("#797979").transparent(.4),light:O.fromHex("#646464").transparent(.4),hc:ne(it,.6)},p("scrollbarSliderBackground","Scrollbar slider background color.")),Da=E("scrollbarSlider.hoverBackground",{dark:O.fromHex("#646464").transparent(.7),light:O.fromHex("#646464").transparent(.7),hc:ne(it,.8)},p("scrollbarSliderHoverBackground","Scrollbar slider background color when hovering.")),Na=E("scrollbarSlider.activeBackground",{dark:O.fromHex("#BFBFBF").transparent(.4),light:O.fromHex("#000000").transparent(.6),hc:it},p("scrollbarSliderActiveBackground","Scrollbar slider background color when clicked on.")),pT=E("progressBar.background",{dark:O.fromHex("#0E70C0"),light:O.fromHex("#0E70C0"),hc:it},p("progressBarBackground","Background color of the progress bar that can show for long running operations.")),_T=E("editorError.background",{dark:null,light:null,hc:null},p("editorError.background","Background color of error text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0),cr=E("editorError.foreground",{dark:"#F14C4C",light:"#E51400",hc:null},p("editorError.foreground","Foreground color of error squigglies in the editor.")),bT=E("editorError.border",{dark:null,light:null,hc:O.fromHex("#E47777").transparent(.8)},p("errorBorder","Border color of error boxes in the editor.")),CT=E("editorWarning.background",{dark:null,light:null,hc:null},p("editorWarning.background","Background color of warning text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0),yn=E("editorWarning.foreground",{dark:"#CCA700",light:"#BF8803",hc:null},p("editorWarning.foreground","Foreground color of warning squigglies in the editor.")),R0=E("editorWarning.border",{dark:null,light:null,hc:O.fromHex("#FFCC00").transparent(.8)},p("warningBorder","Border color of warning boxes in the editor.")),wT=E("editorInfo.background",{dark:null,light:null,hc:null},p("editorInfo.background","Background color of info text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0),As=E("editorInfo.foreground",{dark:"#3794FF",light:"#1a85ff",hc:"#3794FF"},p("editorInfo.foreground","Foreground color of info squigglies in the editor.")),UL=E("editorInfo.border",{dark:null,light:null,hc:O.fromHex("#3794FF").transparent(.8)},p("infoBorder","Border color of info boxes in the editor.")),vT=E("editorHint.foreground",{dark:O.fromHex("#eeeeee").transparent(.7),light:"#6c6c6c",hc:null},p("editorHint.foreground","Foreground color of hint squigglies in the editor.")),ST=E("editorHint.border",{dark:null,light:null,hc:O.fromHex("#eeeeee").transparent(.8)},p("hintBorder","Border color of hint boxes in the editor."));E("sash.hoverBorder",{dark:Zn,light:Zn,hc:Zn},p("sashActiveBorder","Border color of active sashes."));const tn=E("editor.background",{light:"#fffffe",dark:"#1E1E1E",hc:O.black},p("editorBackground","Editor background color.")),xh=E("editor.foreground",{light:"#333333",dark:"#BBBBBB",hc:O.white},p("editorForeground","Editor default foreground color.")),nn=E("editorWidget.background",{dark:"#252526",light:"#F3F3F3",hc:"#0C141F"},p("editorWidgetBackground","Background color of editor widgets, such as find/replace.")),mo=E("editorWidget.foreground",{dark:Fe,light:Fe,hc:Fe},p("editorWidgetForeground","Foreground color of editor widgets, such as find/replace.")),Vd=E("editorWidget.border",{dark:"#454545",light:"#C8C8C8",hc:it},p("editorWidgetBorder","Border color of editor widgets. The color is only used if the widget chooses to have a border and if the color is not overridden by a widget.")),yT=E("editorWidget.resizeBorder",{light:null,dark:null,hc:null},p("editorWidgetResizeBorder","Border color of the resize bar of editor widgets. The color is only used if the widget chooses to have a resize border and if the color is not overridden by a widget.")),YC=E("quickInput.background",{dark:nn,light:nn,hc:nn},p("pickerBackground","Quick picker background color. The quick picker widget is the container for pickers like the command palette.")),LT=E("quickInput.foreground",{dark:mo,light:mo,hc:mo},p("pickerForeground","Quick picker foreground color. The quick picker widget is the container for pickers like the command palette.")),kT=E("quickInputTitle.background",{dark:new O(new de(255,255,255,.105)),light:new O(new de(0,0,0,.06)),hc:"#000000"},p("pickerTitleBackground","Quick picker title background color. The quick picker widget is the container for pickers like the command palette.")),xT=E("pickerGroup.foreground",{dark:"#3794FF",light:"#0066BF",hc:O.white},p("pickerGroupForeground","Quick picker color for grouping labels.")),IT=E("pickerGroup.border",{dark:"#3F3F46",light:"#CCCEDB",hc:O.white},p("pickerGroupBorder","Quick picker color for grouping borders.")),ET=E("keybindingLabel.background",{dark:new O(new de(128,128,128,.17)),light:new O(new de(221,221,221,.4)),hc:O.transparent},p("keybindingLabelBackground","Keybinding label background color. The keybinding label is used to represent a keyboard shortcut.")),DT=E("keybindingLabel.foreground",{dark:O.fromHex("#CCCCCC"),light:O.fromHex("#555555"),hc:O.white},p("keybindingLabelForeground","Keybinding label foreground color. The keybinding label is used to represent a keyboard shortcut.")),NT=E("keybindingLabel.border",{dark:new O(new de(51,51,51,.6)),light:new O(new de(204,204,204,.4)),hc:new O(new de(111,195,223))},p("keybindingLabelBorder","Keybinding label border color. The keybinding label is used to represent a keyboard shortcut.")),TT=E("keybindingLabel.bottomBorder",{dark:new O(new de(68,68,68,.6)),light:new O(new de(187,187,187,.4)),hc:new O(new de(111,195,223))},p("keybindingLabelBottomBorder","Keybinding label border bottom color. The keybinding label is used to represent a keyboard shortcut.")),Ta=E("editor.selectionBackground",{light:"#ADD6FF",dark:"#264F78",hc:"#f3f518"},p("editorSelectionBackground","Color of the editor selection.")),MT=E("editor.selectionForeground",{light:null,dark:null,hc:"#000000"},p("editorSelectionForeground","Color of the selected text for high contrast.")),A0=E("editor.inactiveSelectionBackground",{light:ne(Ta,.5),dark:ne(Ta,.5),hc:ne(Ta,.5)},p("editorInactiveSelection","Color of the selection in an inactive editor. The color must not be opaque so as not to hide underlying decorations."),!0),$L=E("editor.selectionHighlightBackground",{light:sw(Ta,tn,.3,.6),dark:sw(Ta,tn,.3,.6),hc:null},p("editorSelectionHighlight","Color for regions with the same content as the selection. The color must not be opaque so as not to hide underlying decorations."),!0);E("editor.selectionHighlightBorder",{light:null,dark:null,hc:yi},p("editorSelectionHighlightBorder","Border color for regions with the same content as the selection."));const RT=E("editor.findMatchBackground",{light:"#A8AC94",dark:"#515C6A",hc:null},p("editorFindMatch","Color of the current search match.")),po=E("editor.findMatchHighlightBackground",{light:"#EA5C0055",dark:"#EA5C0055",hc:null},p("findMatchHighlight","Color of the other search matches. The color must not be opaque so as not to hide underlying decorations."),!0),AT=E("editor.findRangeHighlightBackground",{dark:"#3a3d4166",light:"#b4b4b44d",hc:null},p("findRangeHighlight","Color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations."),!0),OT=E("editor.findMatchBorder",{light:null,dark:null,hc:yi},p("editorFindMatchBorder","Border color of the current search match.")),Ma=E("editor.findMatchHighlightBorder",{light:null,dark:null,hc:yi},p("findMatchHighlightBorder","Border color of the other search matches.")),PT=E("editor.findRangeHighlightBorder",{dark:null,light:null,hc:ne(yi,.4)},p("findRangeHighlightBorder","Border color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations."),!0);E("searchEditor.findMatchBackground",{light:ne(po,.66),dark:ne(po,.66),hc:po},p("searchEditor.queryMatch","Color of the Search Editor query matches."));E("searchEditor.findMatchBorder",{light:ne(Ma,.66),dark:ne(Ma,.66),hc:Ma},p("searchEditor.editorFindMatchBorder","Border color of the Search Editor query matches."));E("editor.hoverHighlightBackground",{light:"#ADD6FF26",dark:"#264f7840",hc:"#ADD6FF26"},p("hoverHighlight","Highlight below the word for which a hover is shown. The color must not be opaque so as not to hide underlying decorations."),!0);const XC=E("editorHoverWidget.background",{light:nn,dark:nn,hc:nn},p("hoverBackground","Background color of the editor hover."));E("editorHoverWidget.foreground",{light:mo,dark:mo,hc:mo},p("hoverForeground","Foreground color of the editor hover."));E("editorHoverWidget.border",{light:Vd,dark:Vd,hc:Vd},p("hoverBorder","Border color of the editor hover."));E("editorHoverWidget.statusBarBackground",{dark:yo(XC,.2),light:Sl(XC,.05),hc:nn},p("statusBarBackground","Background color of the editor hover status bar."));E("editorLink.activeForeground",{dark:"#4E94CE",light:O.blue,hc:O.cyan},p("activeLinkForeground","Color of active links."));const Ra=E("editorInlayHint.foreground",{dark:ne(Bd,.8),light:ne(Bd,.8),hc:Bd},p("editorInlayHintForeground","Foreground color of inline hints")),Aa=E("editorInlayHint.background",{dark:ne(Fd,.6),light:ne(Fd,.3),hc:Fd},p("editorInlayHintBackground","Background color of inline hints"));E("editorInlayHint.typeForeground",{dark:Ra,light:Ra,hc:Ra},p("editorInlayHintForegroundTypes","Foreground color of inline hints for types"));E("editorInlayHint.typeBackground",{dark:Aa,light:Aa,hc:Aa},p("editorInlayHintBackgroundTypes","Background color of inline hints for types"));E("editorInlayHint.parameterForeground",{dark:Ra,light:Ra,hc:Ra},p("editorInlayHintForegroundParameter","Foreground color of inline hints for parameters"));E("editorInlayHint.parameterBackground",{dark:Aa,light:Aa,hc:Aa},p("editorInlayHintBackgroundParameter","Background color of inline hints for parameters"));E("editorLightBulb.foreground",{dark:"#FFCC00",light:"#DDB100",hc:"#FFCC00"},p("editorLightBulbForeground","The color used for the lightbulb actions icon."));E("editorLightBulbAutoFix.foreground",{dark:"#75BEFF",light:"#007ACC",hc:"#75BEFF"},p("editorLightBulbAutoFixForeground","The color used for the lightbulb auto fix actions icon."));const b_=new O(new de(155,185,85,.2)),C_=new O(new de(255,0,0,.2)),jL=E("diffEditor.insertedTextBackground",{dark:b_,light:b_,hc:null},p("diffEditorInserted","Background color for text that got inserted. The color must not be opaque so as not to hide underlying decorations."),!0),KL=E("diffEditor.removedTextBackground",{dark:C_,light:C_,hc:null},p("diffEditorRemoved","Background color for text that got removed. The color must not be opaque so as not to hide underlying decorations."),!0),FT=E("diffEditor.insertedLineBackground",{dark:null,light:null,hc:null},p("diffEditorInsertedLines","Background color for lines that got inserted. The color must not be opaque so as not to hide underlying decorations."),!0),BT=E("diffEditor.removedLineBackground",{dark:null,light:null,hc:null},p("diffEditorRemovedLines","Background color for lines that got removed. The color must not be opaque so as not to hide underlying decorations."),!0),VT=E("diffEditorGutter.insertedLineBackground",{dark:null,light:null,hc:null},p("diffEditorInsertedLineGutter","Background color for the margin where lines got inserted.")),WT=E("diffEditorGutter.removedLineBackground",{dark:null,light:null,hc:null},p("diffEditorRemovedLineGutter","Background color for the margin where lines got removed.")),HT=E("diffEditorOverview.insertedForeground",{dark:null,light:null,hc:null},p("diffEditorOverviewInserted","Diff overview ruler foreground for inserted content.")),zT=E("diffEditorOverview.removedForeground",{dark:null,light:null,hc:null},p("diffEditorOverviewRemoved","Diff overview ruler foreground for removed content.")),UT=E("diffEditor.insertedTextBorder",{dark:null,light:null,hc:"#33ff2eff"},p("diffEditorInsertedOutline","Outline color for the text that got inserted.")),$T=E("diffEditor.removedTextBorder",{dark:null,light:null,hc:"#FF008F"},p("diffEditorRemovedOutline","Outline color for text that got removed.")),jT=E("diffEditor.border",{dark:null,light:null,hc:it},p("diffEditorBorder","Border color between the two text editors.")),KT=E("diffEditor.diagonalFill",{dark:"#cccccc33",light:"#22222233",hc:null},p("diffDiagonalFill","Color of the diff editor's diagonal fill. The diagonal fill is used in side-by-side diff views.")),qT=E("list.focusBackground",{dark:null,light:null,hc:null},p("listFocusBackground","List/Tree background color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),GT=E("list.focusForeground",{dark:null,light:null,hc:null},p("listFocusForeground","List/Tree foreground color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),ZT=E("list.focusOutline",{dark:Zn,light:Zn,hc:yi},p("listFocusOutline","List/Tree outline color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),_o=E("list.activeSelectionBackground",{dark:"#094771",light:"#0060C0",hc:null},p("listActiveSelectionBackground","List/Tree background color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),bo=E("list.activeSelectionForeground",{dark:O.white,light:O.white,hc:null},p("listActiveSelectionForeground","List/Tree foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),Wd=E("list.activeSelectionIconForeground",{dark:null,light:null,hc:null},p("listActiveSelectionIconForeground","List/Tree icon foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),YT=E("list.inactiveSelectionBackground",{dark:"#37373D",light:"#E4E6F1",hc:null},p("listInactiveSelectionBackground","List/Tree background color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),XT=E("list.inactiveSelectionForeground",{dark:null,light:null,hc:null},p("listInactiveSelectionForeground","List/Tree foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),QT=E("list.inactiveSelectionIconForeground",{dark:null,light:null,hc:null},p("listInactiveSelectionIconForeground","List/Tree icon foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),JT=E("list.inactiveFocusBackground",{dark:null,light:null,hc:null},p("listInactiveFocusBackground","List/Tree background color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),e5=E("list.inactiveFocusOutline",{dark:null,light:null,hc:null},p("listInactiveFocusOutline","List/Tree outline color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),t5=E("list.hoverBackground",{dark:"#2A2D2E",light:"#F0F0F0",hc:null},p("listHoverBackground","List/Tree background when hovering over items using the mouse.")),i5=E("list.hoverForeground",{dark:null,light:null,hc:null},p("listHoverForeground","List/Tree foreground when hovering over items using the mouse.")),n5=E("list.dropBackground",{dark:"#062F4A",light:"#D6EBFF",hc:null},p("listDropBackground","List/Tree drag and drop background when moving items around using the mouse.")),jg=E("list.highlightForeground",{dark:"#18A3FF",light:"#0066BF",hc:Zn},p("highlight","List/Tree foreground color of the match highlights when searching inside the list/tree."));E("list.focusHighlightForeground",{dark:jg,light:E5(_o,jg,"#9DDDFF"),hc:jg},p("listFocusHighlightForeground","List/Tree foreground color of the match highlights on actively focused items when searching inside the list/tree."));E("list.invalidItemForeground",{dark:"#B89500",light:"#B89500",hc:"#B89500"},p("invalidItemForeground","List/Tree foreground color for invalid items, for example an unresolved root in explorer."));E("list.errorForeground",{dark:"#F88070",light:"#B01011",hc:null},p("listErrorForeground","Foreground color of list items containing errors."));E("list.warningForeground",{dark:"#CCA700",light:"#855F00",hc:null},p("listWarningForeground","Foreground color of list items containing warnings."));const s5=E("listFilterWidget.background",{light:"#efc1ad",dark:"#653723",hc:O.black},p("listFilterWidgetBackground","Background color of the type filter widget in lists and trees.")),o5=E("listFilterWidget.outline",{dark:O.transparent,light:O.transparent,hc:"#f38518"},p("listFilterWidgetOutline","Outline color of the type filter widget in lists and trees.")),r5=E("listFilterWidget.noMatchesOutline",{dark:"#BE1100",light:"#BE1100",hc:it},p("listFilterWidgetNoMatchesOutline","Outline color of the type filter widget in lists and trees, when there are no matches."));E("list.filterMatchBackground",{dark:po,light:po,hc:null},p("listFilterMatchHighlight","Background color of the filtered match."));E("list.filterMatchBorder",{dark:Ma,light:Ma,hc:it},p("listFilterMatchHighlightBorder","Border color of the filtered match."));const a5=E("tree.indentGuidesStroke",{dark:"#585858",light:"#a9a9a9",hc:"#a9a9a9"},p("treeIndentGuidesStroke","Tree stroke color for the indentation guides.")),l5=E("tree.tableColumnsBorder",{dark:"#CCCCCC20",light:"#61616120",hc:null},p("tableColumnsBorder","Table border color between columns.")),c5=E("tree.tableOddRowsBackground",{dark:ne(Fe,.04),light:ne(Fe,.04),hc:null},p("tableOddRowsBackgroundColor","Background color for odd table rows."));E("list.deemphasizedForeground",{dark:"#8C8C8C",light:"#8E8E90",hc:"#A7A8A9"},p("listDeemphasizedForeground","List/Tree foreground color for items that are deemphasized. "));const QC=E("quickInput.list.focusBackground",{dark:null,light:null,hc:null},"",void 0,p("quickInput.list.focusBackground deprecation","Please use quickInputList.focusBackground instead")),h5=E("quickInputList.focusForeground",{dark:bo,light:bo,hc:bo},p("quickInput.listFocusForeground","Quick picker foreground color for the focused item.")),d5=E("quickInputList.focusIconForeground",{dark:Wd,light:Wd,hc:Wd},p("quickInput.listFocusIconForeground","Quick picker icon foreground color for the focused item.")),u5=E("quickInputList.focusBackground",{dark:nw(QC,_o),light:nw(QC,_o),hc:null},p("quickInput.listFocusBackground","Quick picker background color for the focused item.")),f5=E("menu.border",{dark:null,light:null,hc:it},p("menuBorder","Border color of menus.")),g5=E("menu.foreground",{dark:oc,light:Fe,hc:oc},p("menuForeground","Foreground color of menu items.")),m5=E("menu.background",{dark:lr,light:lr,hc:lr},p("menuBackground","Background color of menu items.")),p5=E("menu.selectionForeground",{dark:bo,light:bo,hc:bo},p("menuSelectionForeground","Foreground color of the selected menu item in menus.")),_5=E("menu.selectionBackground",{dark:_o,light:_o,hc:_o},p("menuSelectionBackground","Background color of the selected menu item in menus.")),b5=E("menu.selectionBorder",{dark:null,light:null,hc:yi},p("menuSelectionBorder","Border color of the selected menu item in menus.")),C5=E("menu.separatorBackground",{dark:"#BBBBBB",light:"#888888",hc:it},p("menuSeparatorBackground","Color of a separator menu item in menus.")),w_=E("toolbar.hoverBackground",{dark:"#5a5d5e50",light:"#b8b8b850",hc:null},p("toolbarHoverBackground","Toolbar background when hovering over actions using the mouse"));E("toolbar.hoverOutline",{dark:null,light:null,hc:yi},p("toolbarHoverOutline","Toolbar outline when hovering over actions using the mouse"));E("toolbar.activeBackground",{dark:yo(w_,.1),light:Sl(w_,.1),hc:null},p("toolbarActiveBackground","Toolbar background when holding the mouse over actions"));E("editor.snippetTabstopHighlightBackground",{dark:new O(new de(124,124,124,.3)),light:new O(new de(10,50,100,.2)),hc:new O(new de(124,124,124,.3))},p("snippetTabstopHighlightBackground","Highlight background color of a snippet tabstop."));E("editor.snippetTabstopHighlightBorder",{dark:null,light:null,hc:null},p("snippetTabstopHighlightBorder","Highlight border color of a snippet tabstop."));E("editor.snippetFinalTabstopHighlightBackground",{dark:null,light:null,hc:null},p("snippetFinalTabstopHighlightBackground","Highlight background color of the final tabstop of a snippet."));E("editor.snippetFinalTabstopHighlightBorder",{dark:"#525252",light:new O(new de(10,50,100,.5)),hc:"#525252"},p("snippetFinalTabstopHighlightBorder","Highlight border color of the final tabstop of a snippet."));E("breadcrumb.foreground",{light:ne(Fe,.8),dark:ne(Fe,.8),hc:ne(Fe,.8)},p("breadcrumbsFocusForeground","Color of focused breadcrumb items."));E("breadcrumb.background",{light:tn,dark:tn,hc:tn},p("breadcrumbsBackground","Background color of breadcrumb items."));E("breadcrumb.focusForeground",{light:Sl(Fe,.2),dark:yo(Fe,.1),hc:yo(Fe,.1)},p("breadcrumbsFocusForeground","Color of focused breadcrumb items."));E("breadcrumb.activeSelectionForeground",{light:Sl(Fe,.2),dark:yo(Fe,.1),hc:yo(Fe,.1)},p("breadcrumbsSelectedForegound","Color of selected breadcrumb items."));E("breadcrumbPicker.background",{light:nn,dark:nn,hc:nn},p("breadcrumbsSelectedBackground","Background color of breadcrumb item picker."));const qL=.5,JC=O.fromHex("#40C8AE").transparent(qL),ew=O.fromHex("#40A6FF").transparent(qL),tw=O.fromHex("#606060").transparent(.4),Os=.4,Xa=1,rc=E("merge.currentHeaderBackground",{dark:JC,light:JC,hc:null},p("mergeCurrentHeaderBackground","Current header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0);E("merge.currentContentBackground",{dark:ne(rc,Os),light:ne(rc,Os),hc:ne(rc,Os)},p("mergeCurrentContentBackground","Current content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0);const ac=E("merge.incomingHeaderBackground",{dark:ew,light:ew,hc:null},p("mergeIncomingHeaderBackground","Incoming header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0);E("merge.incomingContentBackground",{dark:ne(ac,Os),light:ne(ac,Os),hc:ne(ac,Os)},p("mergeIncomingContentBackground","Incoming content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0);const lc=E("merge.commonHeaderBackground",{dark:tw,light:tw,hc:null},p("mergeCommonHeaderBackground","Common ancestor header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0);E("merge.commonContentBackground",{dark:ne(lc,Os),light:ne(lc,Os),hc:ne(lc,Os)},p("mergeCommonContentBackground","Common ancestor content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0);const O0=E("merge.border",{dark:null,light:null,hc:"#C3DF6F"},p("mergeBorder","Border color on headers and the splitter in inline merge-conflicts."));E("editorOverviewRuler.currentContentForeground",{dark:ne(rc,Xa),light:ne(rc,Xa),hc:O0},p("overviewRulerCurrentContentForeground","Current overview ruler foreground for inline merge-conflicts."));E("editorOverviewRuler.incomingContentForeground",{dark:ne(ac,Xa),light:ne(ac,Xa),hc:O0},p("overviewRulerIncomingContentForeground","Incoming overview ruler foreground for inline merge-conflicts."));E("editorOverviewRuler.commonContentForeground",{dark:ne(lc,Xa),light:ne(lc,Xa),hc:O0},p("overviewRulerCommonContentForeground","Common ancestor overview ruler foreground for inline merge-conflicts."));const P0=E("editorOverviewRuler.findMatchForeground",{dark:"#d186167e",light:"#d186167e",hc:"#AB5A00"},p("overviewRulerFindMatchForeground","Overview ruler marker color for find matches. The color must not be opaque so as not to hide underlying decorations."),!0);E("editorOverviewRuler.selectionHighlightForeground",{dark:"#A0A0A0CC",light:"#A0A0A0CC",hc:"#A0A0A0CC"},p("overviewRulerSelectionHighlightForeground","Overview ruler marker color for selection highlights. The color must not be opaque so as not to hide underlying decorations."),!0);const cc=E("minimap.findMatchHighlight",{light:"#d18616",dark:"#d18616",hc:"#AB5A00"},p("minimapFindMatchHighlight","Minimap marker color for find matches."),!0);E("minimap.selectionOccurrenceHighlight",{light:"#c9c9c9",dark:"#676767",hc:"#ffffff"},p("minimapSelectionOccurrenceHighlight","Minimap marker color for repeating editor selections."),!0);const iw=E("minimap.selectionHighlight",{light:"#ADD6FF",dark:"#264F78",hc:"#ffffff"},p("minimapSelectionHighlight","Minimap marker color for the editor selection."),!0),w5=E("minimap.errorHighlight",{dark:new O(new de(255,18,18,.7)),light:new O(new de(255,18,18,.7)),hc:new O(new de(255,50,50,1))},p("minimapError","Minimap marker color for errors.")),v5=E("minimap.warningHighlight",{dark:yn,light:yn,hc:R0},p("overviewRuleWarning","Minimap marker color for warnings.")),S5=E("minimap.background",{dark:null,light:null,hc:null},p("minimapBackground","Minimap background color.")),y5=E("minimap.foregroundOpacity",{dark:O.fromHex("#000f"),light:O.fromHex("#000f"),hc:O.fromHex("#000f")},p("minimapForegroundOpacity",'Opacity of foreground elements rendered in the minimap. For example, "#000000c0" will render the elements with 75% opacity.')),L5=E("minimapSlider.background",{light:ne(Ea,.5),dark:ne(Ea,.5),hc:ne(Ea,.5)},p("minimapSliderBackground","Minimap slider background color.")),k5=E("minimapSlider.hoverBackground",{light:ne(Da,.5),dark:ne(Da,.5),hc:ne(Da,.5)},p("minimapSliderHoverBackground","Minimap slider background color when hovering.")),x5=E("minimapSlider.activeBackground",{light:ne(Na,.5),dark:ne(Na,.5),hc:ne(Na,.5)},p("minimapSliderActiveBackground","Minimap slider background color when clicked on."));E("problemsErrorIcon.foreground",{dark:cr,light:cr,hc:cr},p("problemsErrorIconForeground","The color used for the problems error icon."));E("problemsWarningIcon.foreground",{dark:yn,light:yn,hc:yn},p("problemsWarningIconForeground","The color used for the problems warning icon."));E("problemsInfoIcon.foreground",{dark:As,light:As,hc:As},p("problemsInfoIconForeground","The color used for the problems info icon."));E("charts.foreground",{dark:Fe,light:Fe,hc:Fe},p("chartsForeground","The foreground color used in charts."));E("charts.lines",{dark:ne(Fe,.5),light:ne(Fe,.5),hc:ne(Fe,.5)},p("chartsLines","The color used for horizontal lines in charts."));E("charts.red",{dark:cr,light:cr,hc:cr},p("chartsRed","The red color used in chart visualizations."));E("charts.blue",{dark:As,light:As,hc:As},p("chartsBlue","The blue color used in chart visualizations."));E("charts.yellow",{dark:yn,light:yn,hc:yn},p("chartsYellow","The yellow color used in chart visualizations."));E("charts.orange",{dark:cc,light:cc,hc:cc},p("chartsOrange","The orange color used in chart visualizations."));E("charts.green",{dark:"#89D185",light:"#388A34",hc:"#89D185"},p("chartsGreen","The green color used in chart visualizations."));E("charts.purple",{dark:"#B180D7",light:"#652D90",hc:"#B180D7"},p("chartsPurple","The purple color used in chart visualizations."));function I5(s,e){var t,i,n;switch(s.op){case 0:return(t=ps(s.value,e))===null||t===void 0?void 0:t.darken(s.factor);case 1:return(i=ps(s.value,e))===null||i===void 0?void 0:i.lighten(s.factor);case 2:return(n=ps(s.value,e))===null||n===void 0?void 0:n.transparent(s.factor);case 3:for(const o of s.values){const r=ps(o,e);if(r)return r}return;case 5:return ps(e.defines(s.if)?s.then:s.else,e);case 4:{const o=ps(s.value,e);if(!o)return;const r=ps(s.background,e);return r?o.isDarkerThan(r)?O.getLighterColor(o,r,s.factor).transparent(s.transparency):O.getDarkerColor(o,r,s.factor).transparent(s.transparency):o.transparent(s.factor*s.transparency)}default:throw K1()}}function Sl(s,e){return{op:0,value:s,factor:e}}function yo(s,e){return{op:1,value:s,factor:e}}function ne(s,e){return{op:2,value:s,factor:e}}function nw(...s){return{op:3,values:s}}function E5(s,e,t){return{op:5,if:s,then:e,else:t}}function sw(s,e,t,i){return{op:4,value:s,background:e,factor:t,transparency:i}}function ps(s,e){if(s!==null){if(typeof s=="string")return s[0]==="#"?O.fromHex(s):e.getColor(s);if(s instanceof O)return s;if(typeof s=="object")return I5(s,e)}}const GL="vscode://schemas/workbench-colors";let ZL=xt.as(Hf.JSONContribution);ZL.registerSchema(GL,zf.getColorSchema());const ow=new Tt(()=>ZL.notifySchemaChanged(GL),200);zf.onDidChangeSchema(()=>{ow.isScheduled()||ow.schedule()});class F0{constructor(e,t){this.x=e,this.y=t,this._pageCoordinatesBrand=void 0}toClientCoordinates(){return new YL(this.x-Ms.scrollX,this.y-Ms.scrollY)}}class YL{constructor(e,t){this.clientX=e,this.clientY=t,this._clientCoordinatesBrand=void 0}toPageCoordinates(){return new F0(this.clientX+Ms.scrollX,this.clientY+Ms.scrollY)}}class D5{constructor(e,t,i,n){this.x=e,this.y=t,this.width=i,this.height=n,this._editorPagePositionBrand=void 0}}class N5{constructor(e,t){this.x=e,this.y=t,this._positionRelativeToEditorBrand=void 0}}function XL(s){const e=en(s);return new D5(e.left,e.top,e.width,e.height)}function QL(s,e,t){const i=e.width/s.offsetWidth,n=e.height/s.offsetHeight,o=(t.x-e.x)/i,r=(t.y-e.y)/n;return new N5(o,r)}class yr extends Ji{constructor(e,t){super(e),this._editorMouseEventBrand=void 0,this.pos=new F0(this.posx,this.posy),this.editorPos=XL(t),this.relativePos=QL(t,this.editorPos,this.pos)}}class T5{constructor(e){this._editorViewDomNode=e}_create(e){return new yr(e,this._editorViewDomNode)}onContextMenu(e,t){return V(e,"contextmenu",i=>{t(this._create(i))})}onMouseUp(e,t){return V(e,"mouseup",i=>{t(this._create(i))})}onMouseDown(e,t){return V(e,"mousedown",i=>{t(this._create(i))})}onMouseLeave(e,t){return y0(e,i=>{t(this._create(i))})}onMouseMoveThrottled(e,t,i,n){return L0(e,"mousemove",t,(r,a)=>i(r,this._create(a)),n)}}class M5{constructor(e){this._editorViewDomNode=e}_create(e){return new yr(e,this._editorViewDomNode)}onPointerUp(e,t){return V(e,"pointerup",i=>{t(this._create(i))})}onPointerDown(e,t){return V(e,"pointerdown",i=>{t(this._create(i))})}onPointerLeave(e,t){return v4(e,i=>{t(this._create(i))})}onPointerMoveThrottled(e,t,i,n){return L0(e,"pointermove",t,(r,a)=>i(r,this._create(a)),n)}}class R5 extends W{constructor(e){super(),this._editorViewDomNode=e,this._globalMouseMoveMonitor=this._register(new Wf),this._keydownListener=null}startMonitoring(e,t,i,n,o){this._keydownListener=wi(document,"keydown",a=>{a.toKeybinding().isModifierKey()||this._globalMouseMoveMonitor.stopMonitoring(!0,a.browserEvent)},!0);const r=(a,l)=>i(a,new yr(l,this._editorViewDomNode));this._globalMouseMoveMonitor.startMonitoring(e,t,r,n,a=>{this._keydownListener.dispose(),o(a)})}stopMonitoring(){this._globalMouseMoveMonitor.stopMonitoring(!0)}}class Ih extends W{constructor(){super(),this._shouldRender=!0}shouldRender(){return this._shouldRender}forceShouldRender(){this._shouldRender=!0}setShouldRender(){this._shouldRender=!0}onDidRender(){this._shouldRender=!1}onCompositionStart(e){return!1}onCompositionEnd(e){return!1}onConfigurationChanged(e){return!1}onCursorStateChanged(e){return!1}onDecorationsChanged(e){return!1}onFlushed(e){return!1}onFocusChanged(e){return!1}onLanguageConfigurationChanged(e){return!1}onLineMappingChanged(e){return!1}onLinesChanged(e){return!1}onLinesDeleted(e){return!1}onLinesInserted(e){return!1}onRevealRangeRequest(e){return!1}onScrollChanged(e){return!1}onThemeChanged(e){return!1}onTokensChanged(e){return!1}onTokensColorsChanged(e){return!1}onZonesChanged(e){return!1}handleEvents(e){let t=!1;for(let i=0,n=e.length;i=a.left?n.width=Math.max(n.width,a.left+a.width-n.left):(t[i++]=n,n=a)}return t[i++]=n,t}static _createHorizontalRangesFromClientRects(e,t,i){if(!e||e.length===0)return null;const n=[];for(let o=0,r=e.length;oh)return null;if(t=Math.min(h,Math.max(0,t)),n=Math.min(h,Math.max(0,n)),t===n&&i===o&&i===0&&!e.children[t].firstChild){const m=e.children[t].getClientRects();return this._createHorizontalRangesFromClientRects(m,r,a)}t!==n&&n>0&&o===0&&(n--,o=1073741824);let d=e.children[t].firstChild,u=e.children[n].firstChild;if((!d||!u)&&(!d&&i===0&&t>0&&(d=e.children[t-1].firstChild,i=1073741824),!u&&o===0&&n>0&&(u=e.children[n-1].firstChild,o=1073741824)),!d||!u)return null;i=Math.min(d.textContent.length,Math.max(0,i)),o=Math.min(u.textContent.length,Math.max(0,o));const f=this._readClientRects(d,i,u,o,l);return this._createHorizontalRangesFromClientRects(f,r,a)}}const V5=function(){return va?!0:!(qt||Oi||Jn)}();let Pa=!0;class rw{constructor(e,t){this._domNode=e,this._clientRectDeltaLeft=0,this._clientRectScale=1,this._clientRectRead=!1,this.endNode=t}readClientRect(){if(!this._clientRectRead){this._clientRectRead=!0;const e=this._domNode.getBoundingClientRect();this._clientRectDeltaLeft=e.left,this._clientRectScale=e.width/this._domNode.offsetWidth}}get clientRectDeltaLeft(){return this._clientRectRead||this.readClientRect(),this._clientRectDeltaLeft}get clientRectScale(){return this._clientRectRead||this.readClientRect(),this._clientRectScale}}class aw{constructor(e,t){this.themeType=t;const i=e.options,n=i.get(44);this.renderWhitespace=i.get(88),this.renderControlCharacters=i.get(83),this.spaceWidth=n.spaceWidth,this.middotWidth=n.middotWidth,this.wsmiddotWidth=n.wsmiddotWidth,this.useMonospaceOptimizations=n.isMonospace&&!i.get(29),this.canUseHalfwidthRightwardsArrow=n.canUseHalfwidthRightwardsArrow,this.lineHeight=i.get(59),this.stopRenderingLineAfter=i.get(105),this.fontLigatures=i.get(45)}equals(e){return this.themeType===e.themeType&&this.renderWhitespace===e.renderWhitespace&&this.renderControlCharacters===e.renderControlCharacters&&this.spaceWidth===e.spaceWidth&&this.middotWidth===e.middotWidth&&this.wsmiddotWidth===e.wsmiddotWidth&&this.useMonospaceOptimizations===e.useMonospaceOptimizations&&this.canUseHalfwidthRightwardsArrow===e.canUseHalfwidthRightwardsArrow&&this.lineHeight===e.lineHeight&&this.stopRenderingLineAfter===e.stopRenderingLineAfter&&this.fontLigatures===e.fontLigatures}}class Un{constructor(e){this._options=e,this._isMaybeInvalid=!0,this._renderedViewLine=null}getDomNode(){return this._renderedViewLine&&this._renderedViewLine.domNode?this._renderedViewLine.domNode.domNode:null}setDomNode(e){if(this._renderedViewLine)this._renderedViewLine.domNode=ue(e);else throw new Error("I have no rendered view line to set the dom node to...")}onContentChanged(){this._isMaybeInvalid=!0}onTokensChanged(){this._isMaybeInvalid=!0}onDecorationsChanged(){this._isMaybeInvalid=!0}onOptionsChanged(e){this._isMaybeInvalid=!0,this._options=e}onSelectionChanged(){return this._options.themeType===Gn.HIGH_CONTRAST||this._options.renderWhitespace==="selection"?(this._isMaybeInvalid=!0,!0):!1}renderLine(e,t,i,n){if(this._isMaybeInvalid===!1)return!1;this._isMaybeInvalid=!1;const o=i.getViewLineRenderingData(e),r=this._options,a=Qi.filter(o.inlineDecorations,e,o.minColumn,o.maxColumn);let l=null;if(r.themeType===Gn.HIGH_CONTRAST||this._options.renderWhitespace==="selection"){const u=i.selections;for(const f of u){if(f.endLineNumbere)continue;const m=f.startLineNumber===e?f.startColumn:o.minColumn,_=f.endLineNumber===e?f.endColumn:o.maxColumn;m<_&&(r.themeType===Gn.HIGH_CONTRAST||this._options.renderWhitespace!=="selection"?a.push(new Qi(m,_,"inline-selected-text",0)):(l||(l=[]),l.push(new WN(m-1,_-1))))}}const c=new Cl(r.useMonospaceOptimizations,r.canUseHalfwidthRightwardsArrow,o.content,o.continuesWithWrappedLine,o.isBasicASCII,o.containsRTL,o.minColumn-1,o.tokens,a,o.tabSize,o.startVisibleColumn,r.spaceWidth,r.middotWidth,r.wsmiddotWidth,r.stopRenderingLineAfter,r.renderWhitespace,r.renderControlCharacters,r.fontLigatures!==Ii.OFF,l);if(this._renderedViewLine&&this._renderedViewLine.input.equals(c))return!1;n.appendASCIIString('
    ');const h=C0(c,n);n.appendASCIIString("
    ");let d=null;return Pa&&V5&&o.isBasicASCII&&r.useMonospaceOptimizations&&h.containsForeignElements===0&&o.content.length<300&&c.lineTokens.getCount()<100&&(d=new jh(this._renderedViewLine?this._renderedViewLine.domNode:null,c,h.characterMapping)),d||(d=ek(this._renderedViewLine?this._renderedViewLine.domNode:null,c,h.characterMapping,h.containsRTL,h.containsForeignElements)),this._renderedViewLine=d,!0}layoutLine(e,t){this._renderedViewLine&&this._renderedViewLine.domNode&&(this._renderedViewLine.domNode.setTop(t),this._renderedViewLine.domNode.setHeight(this._options.lineHeight))}getWidth(){return this._renderedViewLine?this._renderedViewLine.getWidth():0}getWidthIsFast(){return this._renderedViewLine?this._renderedViewLine.getWidthIsFast():!0}needsMonospaceFontCheck(){return this._renderedViewLine?this._renderedViewLine instanceof jh:!1}monospaceAssumptionsAreValid(){return this._renderedViewLine&&this._renderedViewLine instanceof jh?this._renderedViewLine.monospaceAssumptionsAreValid():Pa}onMonospaceAssumptionsInvalidated(){this._renderedViewLine&&this._renderedViewLine instanceof jh&&(this._renderedViewLine=this._renderedViewLine.toSlowRenderedLine())}getVisibleRangesForRange(e,t,i,n){if(!this._renderedViewLine)return null;t=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,t)),i=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,i));const o=this._renderedViewLine.input.stopRenderingLineAfter;let r=!1;o!==-1&&t>o+1&&i>o+1&&(r=!0),o!==-1&&t>o+1&&(t=o+1),o!==-1&&i>o+1&&(i=o+1);const a=this._renderedViewLine.getVisibleRangesForRange(e,t,i,n);return a&&a.length>0?new B5(r,a):null}getColumnOfNodeOffset(e,t,i){return this._renderedViewLine?this._renderedViewLine.getColumnOfNodeOffset(e,t,i):1}}Un.CLASS_NAME="view-line";class jh{constructor(e,t,i){this.domNode=e,this.input=t,this._characterMapping=i,this._charWidth=t.spaceWidth}getWidth(){return Math.round(this._getCharPosition(this._characterMapping.length))}getWidthIsFast(){return!0}monospaceAssumptionsAreValid(){if(!this.domNode)return Pa;const e=this.getWidth(),t=this.domNode.domNode.firstChild.offsetWidth;return Math.abs(e-t)>=2&&(console.warn("monospace assumptions have been violated, therefore disabling monospace optimizations!"),Pa=!1),Pa}toSlowRenderedLine(){return ek(this.domNode,this.input,this._characterMapping,!1,0)}getVisibleRangesForRange(e,t,i,n){const o=this._getCharPosition(t),r=this._getCharPosition(i);return[new Oa(o,r-o)]}_getCharPosition(e){const t=this._characterMapping.getAbsoluteOffset(e);return this._charWidth*t}getColumnOfNodeOffset(e,t,i){const n=t.textContent.length;let o=-1;for(;t;)t=t.previousSibling,o++;return this._characterMapping.getColumn(new b0(o,i),n)}}class JL{constructor(e,t,i,n,o){if(this.domNode=e,this.input=t,this._characterMapping=i,this._isWhitespaceOnly=/^\s*$/.test(t.lineContent),this._containsForeignElements=o,this._cachedWidth=-1,this._pixelOffsetCache=null,!n||this._characterMapping.length===0){this._pixelOffsetCache=new Float32Array(Math.max(2,this._characterMapping.length+1));for(let r=0,a=this._characterMapping.length;r<=a;r++)this._pixelOffsetCache[r]=-1}}_getReadingTarget(e){return e.domNode.firstChild}getWidth(){return this.domNode?(this._cachedWidth===-1&&(this._cachedWidth=this._getReadingTarget(this.domNode).offsetWidth),this._cachedWidth):0}getWidthIsFast(){return this._cachedWidth!==-1}getVisibleRangesForRange(e,t,i,n){if(!this.domNode)return null;if(this._pixelOffsetCache!==null){const o=this._readPixelOffset(this.domNode,e,t,n);if(o===-1)return null;const r=this._readPixelOffset(this.domNode,e,i,n);return r===-1?null:[new Oa(o,r-o)]}return this._readVisibleRangesForRange(this.domNode,e,t,i,n)}_readVisibleRangesForRange(e,t,i,n,o){if(i===n){const r=this._readPixelOffset(e,t,i,o);return r===-1?null:[new Oa(r,0)]}else return this._readRawVisibleRangesForRange(e,i,n,o)}_readPixelOffset(e,t,i,n){if(this._characterMapping.length===0){if(this._containsForeignElements===0||this._containsForeignElements===2)return 0;if(this._containsForeignElements===1)return this.getWidth();const o=this._getReadingTarget(e);return o.firstChild?o.firstChild.offsetWidth:0}if(this._pixelOffsetCache!==null){const o=this._pixelOffsetCache[i];if(o!==-1)return o;const r=this._actualReadPixelOffset(e,t,i,n);return this._pixelOffsetCache[i]=r,r}return this._actualReadPixelOffset(e,t,i,n)}_actualReadPixelOffset(e,t,i,n){if(this._characterMapping.length===0){const l=Kg.readHorizontalRanges(this._getReadingTarget(e),0,0,0,0,n.clientRectDeltaLeft,n.clientRectScale,n.endNode);return!l||l.length===0?-1:l[0].left}if(i===this._characterMapping.length&&this._isWhitespaceOnly&&this._containsForeignElements===0)return this.getWidth();const o=this._characterMapping.getDomPosition(i),r=Kg.readHorizontalRanges(this._getReadingTarget(e),o.partIndex,o.charIndex,o.partIndex,o.charIndex,n.clientRectDeltaLeft,n.clientRectScale,n.endNode);if(!r||r.length===0)return-1;const a=r[0].left;if(this.input.isBasicASCII){const l=this._characterMapping.getAbsoluteOffset(i),c=Math.round(this.input.spaceWidth*l);if(Math.abs(c-a)<=1)return c}return a}_readRawVisibleRangesForRange(e,t,i,n){if(t===1&&i===this._characterMapping.length)return[new Oa(0,this.getWidth())];const o=this._characterMapping.getDomPosition(t),r=this._characterMapping.getDomPosition(i);return Kg.readHorizontalRanges(this._getReadingTarget(e),o.partIndex,o.charIndex,r.partIndex,r.charIndex,n.clientRectDeltaLeft,n.clientRectScale,n.endNode)}getColumnOfNodeOffset(e,t,i){const n=t.textContent.length;let o=-1;for(;t;)t=t.previousSibling,o++;return this._characterMapping.getColumn(new b0(o,i),n)}}class W5 extends JL{_readVisibleRangesForRange(e,t,i,n,o){const r=super._readVisibleRangesForRange(e,t,i,n,o);if(!r||r.length===0||i===n||i===1&&n===this._characterMapping.length)return r;if(!this.input.containsRTL){const a=this._readPixelOffset(e,t,n,o);if(a!==-1){const l=r[r.length-1];l.left=t){const d=t-r;return c-t=4&&e[0]===3&&e[3]===7}static isStrictChildOfViewLines(e){return e.length>4&&e[0]===3&&e[3]===7}static isChildOfScrollableElement(e){return e.length>=2&&e[0]===3&&e[1]===5}static isChildOfMinimap(e){return e.length>=2&&e[0]===3&&e[1]===8}static isChildOfContentWidgets(e){return e.length>=4&&e[0]===3&&e[3]===1}static isChildOfOverflowingContentWidgets(e){return e.length>=1&&e[0]===2}static isChildOfOverlayWidgets(e){return e.length>=2&&e[0]===3&&e[1]===4}}class Qa{constructor(e,t,i){this.viewModel=e.viewModel;const n=e.configuration.options;this.layoutInfo=n.get(131),this.viewDomNode=t.viewDomNode,this.lineHeight=n.get(59),this.stickyTabStops=n.get(104),this.typicalHalfwidthCharacterWidth=n.get(44).typicalHalfwidthCharacterWidth,this.lastRenderData=i,this._context=e,this._viewHelper=t}getZoneAtCoord(e){return Qa.getZoneAtCoord(this._context,e)}static getZoneAtCoord(e,t){const i=e.viewLayout.getWhitespaceAtVerticalOffset(t);if(i){const n=i.verticalOffset+i.height/2,o=e.viewModel.getLineCount();let r=null,a,l=null;return i.afterLineNumber!==o&&(l=new A(i.afterLineNumber+1,1)),i.afterLineNumber>0&&(r=new A(i.afterLineNumber,e.viewModel.getLineMaxColumn(i.afterLineNumber))),l===null?a=r:r===null?a=l:t=e.layoutInfo.glyphMarginLeft,this.isInContentArea=!this.isInMarginArea,this.mouseColumn=Math.max(0,Et._getMouseColumn(this.mouseContentHorizontalOffset,e.typicalHalfwidthCharacterWidth))}}class B0 extends $5{constructor(e,t,i,n,o){super(e,t,i,n),this._ctx=e,o?(this.target=o,this.targetPath=es.collect(o,e.viewDomNode)):(this.target=null,this.targetPath=new Uint8Array(0))}toString(){return`pos(${this.pos.x},${this.pos.y}), editorPos(${this.editorPos.x},${this.editorPos.y}), relativePos(${this.relativePos.x},${this.relativePos.y}), mouseVerticalOffset: ${this.mouseVerticalOffset}, mouseContentHorizontalOffset: ${this.mouseContentHorizontalOffset} + target: ${this.target?this.target.outerHTML:null}`}_getMouseColumn(e=null){return e&&e.columnr.contentLeft+r.width)continue;const a=e.getVerticalOffsetForLineNumber(r.position.lineNumber);if(a<=o&&o<=a+r.height)return t.fulfillContentText(r.position,null,{mightBeForeignElement:!1,injectedText:null})}}return null}static _hitTestViewZone(e,t){const i=e.getZoneAtCoord(t.mouseVerticalOffset);if(i){const n=t.isInContentArea?8:5;return t.fulfillViewZone(n,i.position,i)}return null}static _hitTestTextArea(e,t){return zi.isTextArea(t.targetPath)?e.lastRenderData.lastTextareaPosition?t.fulfillContentText(e.lastRenderData.lastTextareaPosition,null,{mightBeForeignElement:!1,injectedText:null}):t.fulfillTextarea():null}static _hitTestMargin(e,t){if(t.isInMarginArea){const i=e.getFullLineRangeAtCoord(t.mouseVerticalOffset),n=i.range.getStartPosition();let o=Math.abs(t.relativePos.x);const r={isAfterLines:i.isAfterLines,glyphMarginLeft:e.layoutInfo.glyphMarginLeft,glyphMarginWidth:e.layoutInfo.glyphMarginWidth,lineNumbersWidth:e.layoutInfo.lineNumbersWidth,offsetX:o};return o-=e.layoutInfo.glyphMarginLeft,o<=e.layoutInfo.glyphMarginWidth?t.fulfillMargin(2,n,i.range,r):(o-=e.layoutInfo.glyphMarginWidth,o<=e.layoutInfo.lineNumbersWidth?t.fulfillMargin(3,n,i.range,r):(o-=e.layoutInfo.lineNumbersWidth,t.fulfillMargin(4,n,i.range,r)))}return null}static _hitTestViewLines(e,t,i){if(!zi.isChildOfViewLines(t.targetPath))return null;if(e.isInTopPadding(t.mouseVerticalOffset))return t.fulfillContentEmpty(new A(1,1),lw);if(e.isAfterLines(t.mouseVerticalOffset)||e.isInBottomPadding(t.mouseVerticalOffset)){const o=e.viewModel.getLineCount(),r=e.viewModel.getLineMaxColumn(o);return t.fulfillContentEmpty(new A(o,r),lw)}if(i){if(zi.isStrictChildOfViewLines(t.targetPath)){const o=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset);if(e.viewModel.getLineLength(o)===0){const a=e.getLineWidth(o),l=qg(t.mouseContentHorizontalOffset-a);return t.fulfillContentEmpty(new A(o,1),l)}const r=e.getLineWidth(o);if(t.mouseContentHorizontalOffset>=r){const a=qg(t.mouseContentHorizontalOffset-r),l=new A(o,e.viewModel.getLineMaxColumn(o));return t.fulfillContentEmpty(l,a)}}return t.fulfillUnknown()}const n=Et._doHitTest(e,t);return n.type===1?Et.createMouseTargetFromHitTestPosition(e,t,n.spanNode,n.position,n.injectedText):this._createMouseTarget(e,t.withTarget(n.hitTarget),!0)}static _hitTestMinimap(e,t){if(zi.isChildOfMinimap(t.targetPath)){const i=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),n=e.viewModel.getLineMaxColumn(i);return t.fulfillScrollbar(new A(i,n))}return null}static _hitTestScrollbarSlider(e,t){if(zi.isChildOfScrollableElement(t.targetPath)&&t.target&&t.target.nodeType===1){const i=t.target.className;if(i&&/\b(slider|scrollbar)\b/.test(i)){const n=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),o=e.viewModel.getLineMaxColumn(n);return t.fulfillScrollbar(new A(n,o))}}return null}static _hitTestScrollbar(e,t){if(zi.isChildOfScrollableElement(t.targetPath)){const i=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),n=e.viewModel.getLineMaxColumn(i);return t.fulfillScrollbar(new A(i,n))}return null}getMouseColumn(e){const t=this._context.configuration.options,i=t.get(131),n=this._context.viewLayout.getCurrentScrollLeft()+e.x-i.contentLeft;return Et._getMouseColumn(n,t.get(44).typicalHalfwidthCharacterWidth)}static _getMouseColumn(e,t){return e<0?1:Math.round(e/t)+1}static createMouseTargetFromHitTestPosition(e,t,i,n,o){const r=n.lineNumber,a=n.column,l=e.getLineWidth(r);if(t.mouseContentHorizontalOffset>l){const b=qg(t.mouseContentHorizontalOffset-l);return t.fulfillContentEmpty(n,b)}const c=e.visibleRangeForPosition(r,a);if(!c)return t.fulfillUnknown(n);const h=c.left;if(t.mouseContentHorizontalOffset===h)return t.fulfillContentText(n,null,{mightBeForeignElement:!!o,injectedText:o});const d=[];if(d.push({offset:c.left,column:a}),a>1){const b=e.visibleRangeForPosition(r,a-1);b&&d.push({offset:b.left,column:a-1})}const u=e.viewModel.getLineMaxColumn(r);if(ab.offset-w.offset);const f=t.pos.toClientCoordinates(),m=i.getBoundingClientRect(),_=m.left<=f.clientX&&f.clientX<=m.right;for(let b=1;b=t.editorPos.y+t.editorPos.height&&(r=t.editorPos.y+t.editorPos.height-1);const a=new F0(t.pos.x,r),l=this._actualDoHitTestWithCaretRangeFromPoint(e,a.toClientCoordinates());return l.type===1?l:this._actualDoHitTestWithCaretRangeFromPoint(e,t.pos.toClientCoordinates())}static _actualDoHitTestWithCaretRangeFromPoint(e,t){const i=vr(e.viewDomNode);let n;if(i?typeof i.caretRangeFromPoint=="undefined"?n=j5(i,t.clientX,t.clientY):n=i.caretRangeFromPoint(t.clientX,t.clientY):n=document.caretRangeFromPoint(t.clientX,t.clientY),!n||!n.startContainer)return new Gs;const o=n.startContainer;if(o.nodeType===o.TEXT_NODE){const r=o.parentNode,a=r?r.parentNode:null,l=a?a.parentNode:null;return(l&&l.nodeType===l.ELEMENT_NODE?l.className:null)===Un.CLASS_NAME?Ko.createFromDOMInfo(e,r,n.startOffset):new Gs(o.parentNode)}else if(o.nodeType===o.ELEMENT_NODE){const r=o.parentNode,a=r?r.parentNode:null;return(a&&a.nodeType===a.ELEMENT_NODE?a.className:null)===Un.CLASS_NAME?Ko.createFromDOMInfo(e,o,o.textContent.length):new Gs(o)}return new Gs}static _doHitTestWithCaretPositionFromPoint(e,t){const i=document.caretPositionFromPoint(t.clientX,t.clientY);if(i.offsetNode.nodeType===i.offsetNode.TEXT_NODE){const n=i.offsetNode.parentNode,o=n?n.parentNode:null,r=o?o.parentNode:null;return(r&&r.nodeType===r.ELEMENT_NODE?r.className:null)===Un.CLASS_NAME?Ko.createFromDOMInfo(e,i.offsetNode.parentNode,i.offset):new Gs(i.offsetNode.parentNode)}if(i.offsetNode.nodeType===i.offsetNode.ELEMENT_NODE){const n=i.offsetNode.parentNode,o=n&&n.nodeType===n.ELEMENT_NODE?n.className:null,r=n?n.parentNode:null,a=r&&r.nodeType===r.ELEMENT_NODE?r.className:null;if(o===Un.CLASS_NAME){const l=i.offsetNode.childNodes[Math.min(i.offset,i.offsetNode.childNodes.length-1)];if(l)return Ko.createFromDOMInfo(e,l,0)}else if(a===Un.CLASS_NAME)return Ko.createFromDOMInfo(e,i.offsetNode,0)}return new Gs(i.offsetNode)}static _snapToSoftTabBoundary(e,t){const i=t.getLineContent(e.lineNumber),{tabSize:n}=t.model.getOptions(),o=Vc.atomicPosition(i,e.column-1,n,2);return o!==-1?new A(e.lineNumber,o+1):e}static _doHitTest(e,t){let i=new Gs;if(typeof document.caretRangeFromPoint=="function"?i=this._doHitTestWithCaretRangeFromPoint(e,t):document.caretPositionFromPoint&&(i=this._doHitTestWithCaretPositionFromPoint(e,t.pos.toClientCoordinates())),i.type===1){const n=e.viewModel.getInjectedTextAt(i.position),o=e.viewModel.normalizePosition(i.position,2);(n||!o.equals(i.position))&&(i=new v_(o,i.spanNode,n))}return i.type===1&&e.stickyTabStops&&(i=new v_(this._snapToSoftTabBoundary(i.position,e.viewModel),i.spanNode,i.injectedText)),i}}function j5(s,e,t){const i=document.createRange();let n=s.elementFromPoint(e,t);if(n!==null){for(;n&&n.firstChild&&n.firstChild.nodeType!==n.firstChild.TEXT_NODE&&n.lastChild&&n.lastChild.firstChild;)n=n.lastChild;const o=n.getBoundingClientRect(),r=window.getComputedStyle(n,null).getPropertyValue("font"),a=n.innerText;let l=o.left,c=0,h;if(e>o.left+o.width)c=a.length;else{const d=er.getInstance();for(let u=0;uthis._createMouseTarget(r,a),r=>this._getMouseColumn(r))),this.lastMouseLeaveTime=-1,this._height=this._context.configuration.options.get(131).height;const n=new T5(this.viewHelper.viewDomNode);this._register(n.onContextMenu(this.viewHelper.viewDomNode,r=>this._onContextMenu(r,!0))),this._register(n.onMouseMoveThrottled(this.viewHelper.viewDomNode,r=>this._onMouseMove(r),Du(this.mouseTargetFactory),Lr.MOUSE_MOVE_MINIMUM_TIME)),this._register(n.onMouseUp(this.viewHelper.viewDomNode,r=>this._onMouseUp(r))),this._register(n.onMouseLeave(this.viewHelper.viewDomNode,r=>this._onMouseLeave(r))),this._register(n.onMouseDown(this.viewHelper.viewDomNode,r=>this._onMouseDown(r)));const o=r=>{if(this.viewController.emitMouseWheel(r),!this._context.configuration.options.get(68))return;const a=new qa(r);if(me?(r.metaKey||r.ctrlKey)&&!r.shiftKey&&!r.altKey:r.ctrlKey&&!r.metaKey&&!r.shiftKey&&!r.altKey){const c=uu.getZoomLevel(),h=a.deltaY>0?1:-1;uu.setZoomLevel(c+h),a.preventDefault(),a.stopPropagation()}};this._register(V(this.viewHelper.viewDomNode,Y.MOUSE_WHEEL,o,{capture:!0,passive:!1})),this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}onConfigurationChanged(e){if(e.hasChanged(131)){const t=this._context.configuration.options.get(131).height;this._height!==t&&(this._height=t,this._mouseDownOperation.onHeightChanged())}return!1}onCursorStateChanged(e){return this._mouseDownOperation.onCursorStateChanged(e),!1}onFocusChanged(e){return!1}onScrollChanged(e){return this._mouseDownOperation.onScrollChanged(),!1}getTargetAtClientPoint(e,t){const n=new YL(e,t).toPageCoordinates(),o=XL(this.viewHelper.viewDomNode);if(n.yo.y+o.height||n.xo.x+o.width)return null;const r=QL(this.viewHelper.viewDomNode,o,n);return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(),o,n,r,null)}_createMouseTarget(e,t){let i=e.target;if(!this.viewHelper.viewDomNode.contains(i)){const n=vr(this.viewHelper.viewDomNode);n&&(i=n.elementsFromPoint(e.posx,e.posy).find(o=>this.viewHelper.viewDomNode.contains(o)))}return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(),e.editorPos,e.pos,e.relativePos,t?i:null)}_getMouseColumn(e){return this.mouseTargetFactory.getMouseColumn(e.relativePos)}_onContextMenu(e,t){this.viewController.emitContextMenu({event:e,target:this._createMouseTarget(e,t)})}_onMouseMove(e){this._mouseDownOperation.isActive()||e.timestamp{e.preventDefault(),this.viewHelper.focusTextArea()};if(c&&(i||o&&r))h(),this._mouseDownOperation.start(t.type,e);else if(n)e.preventDefault();else if(a){const d=t.detail;this.viewHelper.shouldSuppressMouseDownOnViewZone(d.viewZoneId)&&(h(),this._mouseDownOperation.start(t.type,e),e.preventDefault())}else l&&this.viewHelper.shouldSuppressMouseDownOnWidget(t.detail)&&(h(),e.preventDefault());this.viewController.emitMouseDown({event:e,target:t})}}Lr.MOUSE_MOVE_MINIMUM_TIME=100;class K5 extends W{constructor(e,t,i,n,o){super(),this._context=e,this._viewController=t,this._viewHelper=i,this._createMouseTarget=n,this._getMouseColumn=o,this._mouseMoveMonitor=this._register(new R5(this._viewHelper.viewDomNode)),this._onScrollTimeout=this._register(new os),this._mouseState=new $f,this._currentSelection=new ce(1,1,1,1),this._isActive=!1,this._lastMouseEvent=null}dispose(){super.dispose()}isActive(){return this._isActive}_onMouseDownThenMove(e){this._lastMouseEvent=e,this._mouseState.setModifiers(e);const t=this._findMousePosition(e,!0);!t||(this._mouseState.isDragAndDrop?this._viewController.emitMouseDrag({event:e,target:t}):this._dispatchMouse(t,!0))}start(e,t){this._lastMouseEvent=t,this._mouseState.setStartedOnLineNumbers(e===3),this._mouseState.setStartButtons(t),this._mouseState.setModifiers(t);const i=this._findMousePosition(t,!0);if(!i||!i.position)return;this._mouseState.trySetCount(t.detail,i.position),t.detail=this._mouseState.count;const n=this._context.configuration.options;if(!n.get(81)&&n.get(31)&&!n.get(18)&&!this._mouseState.altKey&&t.detail<2&&!this._isActive&&!this._currentSelection.isEmpty()&&i.type===6&&i.position&&this._currentSelection.containsPosition(i.position)){this._mouseState.isDragAndDrop=!0,this._isActive=!0,this._mouseMoveMonitor.startMonitoring(t.target,t.buttons,Du(null),o=>this._onMouseDownThenMove(o),o=>{const r=this._findMousePosition(this._lastMouseEvent,!0);o&&o instanceof KeyboardEvent?this._viewController.emitMouseDropCanceled():this._viewController.emitMouseDrop({event:this._lastMouseEvent,target:r?this._createMouseTarget(this._lastMouseEvent,!0):null}),this._stop()});return}this._mouseState.isDragAndDrop=!1,this._dispatchMouse(i,t.shiftKey),this._isActive||(this._isActive=!0,this._mouseMoveMonitor.startMonitoring(t.target,t.buttons,Du(null),o=>this._onMouseDownThenMove(o),()=>this._stop()))}_stop(){this._isActive=!1,this._onScrollTimeout.cancel()}onHeightChanged(){this._mouseMoveMonitor.stopMonitoring()}onScrollChanged(){!this._isActive||this._onScrollTimeout.setIfNotSet(()=>{if(!this._lastMouseEvent)return;const e=this._findMousePosition(this._lastMouseEvent,!1);!e||this._mouseState.isDragAndDrop||this._dispatchMouse(e,!0)},10)}onCursorStateChanged(e){this._currentSelection=e.selections[0]}_getPositionOutsideEditor(e){const t=e.editorPos,i=this._context.viewModel,n=this._context.viewLayout,o=this._getMouseColumn(e);if(e.posyt.y+t.height){const a=n.getCurrentScrollTop()+e.relativePos.y,l=Qa.getZoneAtCoord(this._context,a);if(l){const h=this._helpPositionJumpOverViewZone(l);if(h)return Qt.createOutsideEditor(o,h)}const c=n.getLineNumberAtVerticalOffset(a);return Qt.createOutsideEditor(o,new A(c,i.getLineMaxColumn(c)))}const r=n.getLineNumberAtVerticalOffset(n.getCurrentScrollTop()+e.relativePos.y);return e.posxt.x+t.width?Qt.createOutsideEditor(o,new A(r,i.getLineMaxColumn(r))):null}_findMousePosition(e,t){const i=this._getPositionOutsideEditor(e);if(i)return i;const n=this._createMouseTarget(e,t);if(!n.position)return null;if(n.type===8||n.type===5){const r=this._helpPositionJumpOverViewZone(n.detail);if(r)return Qt.createViewZone(n.type,n.element,n.mouseColumn,r,n.detail)}return n}_helpPositionJumpOverViewZone(e){const t=new A(this._currentSelection.selectionStartLineNumber,this._currentSelection.selectionStartColumn),i=e.positionBefore,n=e.positionAfter;return i&&n?i.isBefore(t)?i:n:null}_dispatchMouse(e,t){!e.position||this._viewController.dispatchMouse({position:e.position,mouseColumn:e.mouseColumn,startedOnLineNumbers:this._mouseState.startedOnLineNumbers,inSelectionMode:t,mouseDownCount:this._mouseState.count,altKey:this._mouseState.altKey,ctrlKey:this._mouseState.ctrlKey,metaKey:this._mouseState.metaKey,shiftKey:this._mouseState.shiftKey,leftButton:this._mouseState.leftButton,middleButton:this._mouseState.middleButton,onInjectedText:e.type===6&&e.detail.injectedText!==null})}}class $f{constructor(){this._altKey=!1,this._ctrlKey=!1,this._metaKey=!1,this._shiftKey=!1,this._leftButton=!1,this._middleButton=!1,this._startedOnLineNumbers=!1,this._lastMouseDownPosition=null,this._lastMouseDownPositionEqualCount=0,this._lastMouseDownCount=0,this._lastSetMouseDownCountTime=0,this.isDragAndDrop=!1}get altKey(){return this._altKey}get ctrlKey(){return this._ctrlKey}get metaKey(){return this._metaKey}get shiftKey(){return this._shiftKey}get leftButton(){return this._leftButton}get middleButton(){return this._middleButton}get startedOnLineNumbers(){return this._startedOnLineNumbers}get count(){return this._lastMouseDownCount}setModifiers(e){this._altKey=e.altKey,this._ctrlKey=e.ctrlKey,this._metaKey=e.metaKey,this._shiftKey=e.shiftKey}setStartButtons(e){this._leftButton=e.leftButton,this._middleButton=e.middleButton}setStartedOnLineNumbers(e){this._startedOnLineNumbers=e}trySetCount(e,t){const i=new Date().getTime();i-this._lastSetMouseDownCountTime>$f.CLEAR_MOUSE_DOWN_COUNT_TIME&&(e=1),this._lastSetMouseDownCountTime=i,e>this._lastMouseDownCount+1&&(e=this._lastMouseDownCount+1),this._lastMouseDownPosition&&this._lastMouseDownPosition.equals(t)?this._lastMouseDownPositionEqualCount++:this._lastMouseDownPositionEqualCount=1,this._lastMouseDownPosition=t,this._lastMouseDownCount=Math.min(e,this._lastMouseDownPositionEqualCount)}}$f.CLEAR_MOUSE_DOWN_COUNT_TIME=400;var bn;(function(s){s.text="text/plain",s.binary="application/octet-stream",s.unknown="application/unknown",s.markdown="text/markdown",s.latex="text/latex",s.uriList="text/uri-list"})(bn||(bn={}));class Nt{constructor(e,t,i,n,o){this.value=e,this.selectionStart=t,this.selectionEnd=i,this.selectionStartPosition=n,this.selectionEndPosition=o}toString(){return`[ <${this.value}>, selectionStart: ${this.selectionStart}, selectionEnd: ${this.selectionEnd}]`}static readFromTextArea(e){return new Nt(e.getValue(),e.getSelectionStart(),e.getSelectionEnd(),null,null)}collapseSelection(){return new Nt(this.value,this.value.length,this.value.length,null,null)}writeToTextArea(e,t,i){t.setValue(e,this.value),i&&t.setSelectionRange(e,this.selectionStart,this.selectionEnd)}deduceEditorPosition(e){if(e<=this.selectionStart){const n=this.value.substring(e,this.selectionStart);return this._finishDeduceEditorPosition(this.selectionStartPosition,n,-1)}if(e>=this.selectionEnd){const n=this.value.substring(this.selectionEnd,e);return this._finishDeduceEditorPosition(this.selectionEndPosition,n,1)}const t=this.value.substring(this.selectionStart,e);if(t.indexOf(String.fromCharCode(8230))===-1)return this._finishDeduceEditorPosition(this.selectionStartPosition,t,1);const i=this.value.substring(e,this.selectionEnd);return this._finishDeduceEditorPosition(this.selectionEndPosition,i,-1)}_finishDeduceEditorPosition(e,t,i){let n=0,o=-1;for(;(o=t.indexOf(` +`,o+1))!==-1;)n++;return[e,i*t.length,n]}static deduceInput(e,t,i){if(!e)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:0};const n=Math.min(aC(e.value,t.value),e.selectionStart,t.selectionStart),o=Math.min(lC(e.value,t.value),e.value.length-e.selectionEnd,t.value.length-t.selectionEnd);e.value.substring(n,e.value.length-o);const r=t.value.substring(n,t.value.length-o),a=e.selectionStart-n,l=e.selectionEnd-n,c=t.selectionStart-n,h=t.selectionEnd-n;if(c===h){const u=e.selectionStart-n;return{text:r,replacePrevCharCnt:u,replaceNextCharCnt:0,positionDelta:0}}const d=l-a;return{text:r,replacePrevCharCnt:d,replaceNextCharCnt:0,positionDelta:0}}static deduceAndroidCompositionInput(e,t){if(!e)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:0};if(e.value===t.value)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:t.selectionEnd-e.selectionEnd};const i=Math.min(aC(e.value,t.value),e.selectionEnd),n=Math.min(lC(e.value,t.value),e.value.length-e.selectionEnd),o=e.value.substring(i,e.value.length-n),r=t.value.substring(i,t.value.length-n);e.selectionStart-i;const a=e.selectionEnd-i;t.selectionStart-i;const l=t.selectionEnd-i;return{text:r,replacePrevCharCnt:a,replaceNextCharCnt:o.length-a,positionDelta:l-r.length}}}Nt.EMPTY=new Nt("",0,0,null,null);class fa{static _getPageOfLine(e,t){return Math.floor((e-1)/t)}static _getRangeForPage(e,t){const i=e*t,n=i+1,o=i+t;return new D(n,1,o+1,1)}static fromEditorSelection(e,t,i,n,o){const r=fa._getPageOfLine(i.startLineNumber,n),a=fa._getRangeForPage(r,n),l=fa._getPageOfLine(i.endLineNumber,n),c=fa._getRangeForPage(l,n),h=a.intersectRanges(new D(1,1,i.startLineNumber,i.startColumn));let d=t.getValueInRange(h,1);const u=t.getLineCount(),f=t.getLineMaxColumn(u),m=c.intersectRanges(new D(i.endLineNumber,i.endColumn,u,f));let _=t.getValueInRange(m,1),b;if(r===l||r+1===l)b=t.getValueInRange(i,1);else{const w=a.intersectRanges(i),C=c.intersectRanges(i);b=t.getValueInRange(w,1)+String.fromCharCode(8230)+t.getValueInRange(C,1)}return o&&(d.length>500&&(d=d.substring(d.length-500,d.length)),_.length>500&&(_=_.substring(0,500)),b.length>2*500&&(b=b.substring(0,500)+String.fromCharCode(8230)+b.substring(b.length-500,b.length))),new Nt(d+b+_,d.length,d.length+b.length,new A(i.startLineNumber,i.startColumn),new A(i.endLineNumber,i.endColumn))}}var Nu;(function(s){s.Tap="-monaco-textarea-synthetic-tap"})(Nu||(Nu={}));class Tu{constructor(){this._lastState=null}set(e,t){this._lastState={lastCopiedValue:e,data:t}}get(e){return this._lastState&&this._lastState.lastCopiedValue===e?this._lastState.data:(this._lastState=null,null)}}Tu.INSTANCE=new Tu;class q5{constructor(){this._lastTypeTextLength=0}handleCompositionUpdate(e){e=e||"";const t={text:e,replacePrevCharCnt:this._lastTypeTextLength,replaceNextCharCnt:0,positionDelta:0};return this._lastTypeTextLength=e.length,t}}class G5 extends W{constructor(e,t,i,n){super(),this._host=e,this._textArea=t,this._OS=i,this._browser=n,this._onFocus=this._register(new M),this.onFocus=this._onFocus.event,this._onBlur=this._register(new M),this.onBlur=this._onBlur.event,this._onKeyDown=this._register(new M),this.onKeyDown=this._onKeyDown.event,this._onKeyUp=this._register(new M),this.onKeyUp=this._onKeyUp.event,this._onCut=this._register(new M),this.onCut=this._onCut.event,this._onPaste=this._register(new M),this.onPaste=this._onPaste.event,this._onType=this._register(new M),this.onType=this._onType.event,this._onCompositionStart=this._register(new M),this.onCompositionStart=this._onCompositionStart.event,this._onCompositionUpdate=this._register(new M),this.onCompositionUpdate=this._onCompositionUpdate.event,this._onCompositionEnd=this._register(new M),this.onCompositionEnd=this._onCompositionEnd.event,this._onSelectionChangeRequest=this._register(new M),this.onSelectionChangeRequest=this._onSelectionChangeRequest.event,this._asyncTriggerCut=this._register(new Tt(()=>this._onCut.fire(),0)),this._asyncFocusGainWriteScreenReaderContent=this._register(new Tt(()=>this.writeScreenReaderContent("asyncFocusGain"),0)),this._textAreaState=Nt.EMPTY,this._selectionChangeListener=null,this.writeScreenReaderContent("ctor"),this._hasFocus=!1,this._currentComposition=null;let o=null;this._register(this._textArea.onKeyDown(r=>{const a=new He(r);(a.keyCode===109||this._currentComposition&&a.keyCode===1)&&a.stopPropagation(),a.equals(9)&&a.preventDefault(),o=a,this._onKeyDown.fire(a)})),this._register(this._textArea.onKeyUp(r=>{const a=new He(r);this._onKeyUp.fire(a)})),this._register(this._textArea.onCompositionStart(r=>{const a=new q5;if(this._currentComposition){this._currentComposition=a;return}if(this._currentComposition=a,this._OS===2&&o&&o.equals(109)&&this._textAreaState.selectionStart===this._textAreaState.selectionEnd&&this._textAreaState.selectionStart>0&&this._textAreaState.value.substr(this._textAreaState.selectionStart-1,1)===r.data&&(o.code==="ArrowRight"||o.code==="ArrowLeft")){a.handleCompositionUpdate("x"),this._onCompositionStart.fire({data:r.data});return}if(this._browser.isAndroid){this._onCompositionStart.fire({data:r.data});return}this._onCompositionStart.fire({data:r.data})})),this._register(this._textArea.onCompositionUpdate(r=>{const a=this._currentComposition;if(!a)return;if(this._browser.isAndroid){const c=Nt.readFromTextArea(this._textArea),h=Nt.deduceAndroidCompositionInput(this._textAreaState,c);this._textAreaState=c,this._onType.fire(h),this._onCompositionUpdate.fire(r);return}const l=a.handleCompositionUpdate(r.data);this._textAreaState=Nt.readFromTextArea(this._textArea),this._onType.fire(l),this._onCompositionUpdate.fire(r)})),this._register(this._textArea.onCompositionEnd(r=>{const a=this._currentComposition;if(!a)return;if(this._currentComposition=null,this._browser.isAndroid){const c=Nt.readFromTextArea(this._textArea),h=Nt.deduceAndroidCompositionInput(this._textAreaState,c);this._textAreaState=c,this._onType.fire(h),this._onCompositionEnd.fire();return}const l=a.handleCompositionUpdate(r.data);this._textAreaState=Nt.readFromTextArea(this._textArea),this._onType.fire(l),this._onCompositionEnd.fire()})),this._register(this._textArea.onInput(r=>{if(this._textArea.setIgnoreSelectionChangeTime("received input event"),this._currentComposition)return;const a=Nt.readFromTextArea(this._textArea),l=Nt.deduceInput(this._textAreaState,a,this._OS===2);l.replacePrevCharCnt===0&&l.text.length===1&>(l.text.charCodeAt(0))||(this._textAreaState=a,(l.text!==""||l.replacePrevCharCnt!==0||l.replaceNextCharCnt!==0||l.positionDelta!==0)&&this._onType.fire(l))})),this._register(this._textArea.onCut(r=>{this._textArea.setIgnoreSelectionChangeTime("received cut event"),this._ensureClipboardGetsEditorSelection(r),this._asyncTriggerCut.schedule()})),this._register(this._textArea.onCopy(r=>{this._ensureClipboardGetsEditorSelection(r)})),this._register(this._textArea.onPaste(r=>{if(this._textArea.setIgnoreSelectionChangeTime("received paste event"),r.preventDefault(),!r.clipboardData)return;let[a,l]=cw.getTextData(r.clipboardData);!a||(l=l||Tu.INSTANCE.get(a),this._onPaste.fire({text:a,metadata:l}))})),this._register(this._textArea.onFocus(()=>{const r=this._hasFocus;this._setHasFocus(!0),this._browser.isSafari&&!r&&this._hasFocus&&this._asyncFocusGainWriteScreenReaderContent.schedule()})),this._register(this._textArea.onBlur(()=>{this._currentComposition&&(this._currentComposition=null,this.writeScreenReaderContent("blurWithoutCompositionEnd"),this._onCompositionEnd.fire()),this._setHasFocus(!1)})),this._register(this._textArea.onSyntheticTap(()=>{this._browser.isAndroid&&this._currentComposition&&(this._currentComposition=null,this.writeScreenReaderContent("tapWithoutCompositionEnd"),this._onCompositionEnd.fire())}))}_installSelectionChangeListener(){let e=0;return V(document,"selectionchange",t=>{if(!this._hasFocus||this._currentComposition||!this._browser.isChrome)return;const i=Date.now(),n=i-e;if(e=i,n<5)return;const o=i-this._textArea.getIgnoreSelectionChangeTime();if(this._textArea.resetSelectionChangeTime(),o<100||!this._textAreaState.selectionStartPosition||!this._textAreaState.selectionEndPosition)return;const r=this._textArea.getValue();if(this._textAreaState.value!==r)return;const a=this._textArea.getSelectionStart(),l=this._textArea.getSelectionEnd();if(this._textAreaState.selectionStart===a&&this._textAreaState.selectionEnd===l)return;const c=this._textAreaState.deduceEditorPosition(a),h=this._host.deduceModelPosition(c[0],c[1],c[2]),d=this._textAreaState.deduceEditorPosition(l),u=this._host.deduceModelPosition(d[0],d[1],d[2]),f=new ce(h.lineNumber,h.column,u.lineNumber,u.column);this._onSelectionChangeRequest.fire(f)})}dispose(){super.dispose(),this._selectionChangeListener&&(this._selectionChangeListener.dispose(),this._selectionChangeListener=null)}focusTextArea(){this._setHasFocus(!0),this.refreshFocusState()}isFocused(){return this._hasFocus}refreshFocusState(){this._setHasFocus(this._textArea.hasFocus())}_setHasFocus(e){this._hasFocus!==e&&(this._hasFocus=e,this._selectionChangeListener&&(this._selectionChangeListener.dispose(),this._selectionChangeListener=null),this._hasFocus&&(this._selectionChangeListener=this._installSelectionChangeListener()),this._hasFocus&&this.writeScreenReaderContent("focusgain"),this._hasFocus?this._onFocus.fire():this._onBlur.fire())}_setAndWriteTextAreaState(e,t){this._hasFocus||(t=t.collapseSelection()),t.writeToTextArea(e,this._textArea,this._hasFocus),this._textAreaState=t}writeScreenReaderContent(e){this._currentComposition||this._setAndWriteTextAreaState(e,this._host.getScreenReaderContent(this._textAreaState))}_ensureClipboardGetsEditorSelection(e){const t=this._host.getDataToCopy(),i={version:1,isFromEmptySelection:t.isFromEmptySelection,multicursorText:t.multicursorText,mode:t.mode};Tu.INSTANCE.set(this._browser.isFirefox?t.text.replace(/\r\n/g,` +`):t.text,i),e.preventDefault(),e.clipboardData&&cw.setTextData(e.clipboardData,t.text,t.html,i)}}class cw{static getTextData(e){const t=e.getData(bn.text);let i=null;const n=e.getData("vscode-editor-data");if(typeof n=="string")try{i=JSON.parse(n),i.version!==1&&(i=null)}catch{}return[t,i]}static setTextData(e,t,i,n){e.setData(bn.text,t),typeof i=="string"&&e.setData("text/html",i),e.setData("vscode-editor-data",JSON.stringify(n))}}class Z5 extends W{constructor(e){super(),this._actual=e,this.onKeyDown=this._register(hn(this._actual,"keydown")).event,this.onKeyUp=this._register(hn(this._actual,"keyup")).event,this.onCompositionStart=this._register(hn(this._actual,"compositionstart")).event,this.onCompositionUpdate=this._register(hn(this._actual,"compositionupdate")).event,this.onCompositionEnd=this._register(hn(this._actual,"compositionend")).event,this.onInput=this._register(hn(this._actual,"input")).event,this.onCut=this._register(hn(this._actual,"cut")).event,this.onCopy=this._register(hn(this._actual,"copy")).event,this.onPaste=this._register(hn(this._actual,"paste")).event,this.onFocus=this._register(hn(this._actual,"focus")).event,this.onBlur=this._register(hn(this._actual,"blur")).event,this._onSyntheticTap=this._register(new M),this.onSyntheticTap=this._onSyntheticTap.event,this._ignoreSelectionChangeTime=0,this._register(V(this._actual,Nu.Tap,()=>this._onSyntheticTap.fire()))}hasFocus(){const e=vr(this._actual);return e?e.activeElement===this._actual:S0(this._actual)?document.activeElement===this._actual:!1}setIgnoreSelectionChangeTime(e){this._ignoreSelectionChangeTime=Date.now()}getIgnoreSelectionChangeTime(){return this._ignoreSelectionChangeTime}resetSelectionChangeTime(){this._ignoreSelectionChangeTime=0}getValue(){return this._actual.value}setValue(e,t){const i=this._actual;i.value!==t&&(this.setIgnoreSelectionChangeTime("setValue"),i.value=t)}getSelectionStart(){return this._actual.selectionDirection==="backward"?this._actual.selectionEnd:this._actual.selectionStart}getSelectionEnd(){return this._actual.selectionDirection==="backward"?this._actual.selectionStart:this._actual.selectionEnd}setSelectionRange(e,t,i){const n=this._actual;let o=null;const r=vr(n);r?o=r.activeElement:o=document.activeElement;const a=o===n,l=n.selectionStart,c=n.selectionEnd;if(a&&l===t&&c===i){Oi&&window.parent!==window&&n.focus();return}if(a){this.setIgnoreSelectionChangeTime("setSelectionRange"),n.setSelectionRange(t,i),Oi&&window.parent!==window&&n.focus();return}try{const h=E4(n);this.setIgnoreSelectionChangeTime("setSelectionRange"),n.focus(),n.setSelectionRange(t,i),D4(n,h)}catch{}}}class Y5 extends Lr{constructor(e,t,i){super(e,t,i),this._register(Se.addTarget(this.viewHelper.linesContentDomNode)),this._register(V(this.viewHelper.linesContentDomNode,Ae.Tap,o=>this.onTap(o))),this._register(V(this.viewHelper.linesContentDomNode,Ae.Change,o=>this.onChange(o))),this._register(V(this.viewHelper.linesContentDomNode,Ae.Contextmenu,o=>this._onContextMenu(new yr(o,this.viewHelper.viewDomNode),!1))),this._lastPointerType="mouse",this._register(V(this.viewHelper.linesContentDomNode,"pointerdown",o=>{const r=o.pointerType;if(r==="mouse"){this._lastPointerType="mouse";return}else r==="touch"?this._lastPointerType="touch":this._lastPointerType="pen"}));const n=new M5(this.viewHelper.viewDomNode);this._register(n.onPointerMoveThrottled(this.viewHelper.viewDomNode,o=>this._onMouseMove(o),Du(this.mouseTargetFactory),Lr.MOUSE_MOVE_MINIMUM_TIME)),this._register(n.onPointerUp(this.viewHelper.viewDomNode,o=>this._onMouseUp(o))),this._register(n.onPointerLeave(this.viewHelper.viewDomNode,o=>this._onMouseLeave(o))),this._register(n.onPointerDown(this.viewHelper.viewDomNode,o=>this._onMouseDown(o)))}onTap(e){if(!e.initialTarget||!this.viewHelper.linesContentDomNode.contains(e.initialTarget))return;e.preventDefault(),this.viewHelper.focusTextArea();const t=this._createMouseTarget(new yr(e,this.viewHelper.viewDomNode),!1);t.position&&this.viewController.dispatchMouse({position:t.position,mouseColumn:t.position.column,startedOnLineNumbers:!1,mouseDownCount:e.tapCount,inSelectionMode:!1,altKey:!1,ctrlKey:!1,metaKey:!1,shiftKey:!1,leftButton:!1,middleButton:!1,onInjectedText:t.type===6&&t.detail.injectedText!==null})}onChange(e){this._lastPointerType==="touch"&&this._context.viewModel.viewLayout.deltaScrollNow(-e.translationX,-e.translationY)}_onMouseDown(e){e.browserEvent.pointerType!=="touch"&&super._onMouseDown(e)}}class X5 extends Lr{constructor(e,t,i){super(e,t,i),this._register(Se.addTarget(this.viewHelper.linesContentDomNode)),this._register(V(this.viewHelper.linesContentDomNode,Ae.Tap,n=>this.onTap(n))),this._register(V(this.viewHelper.linesContentDomNode,Ae.Change,n=>this.onChange(n))),this._register(V(this.viewHelper.linesContentDomNode,Ae.Contextmenu,n=>this._onContextMenu(new yr(n,this.viewHelper.viewDomNode),!1)))}onTap(e){e.preventDefault(),this.viewHelper.focusTextArea();const t=this._createMouseTarget(new yr(e,this.viewHelper.viewDomNode),!1);if(t.position){const i=document.createEvent("CustomEvent");i.initEvent(Nu.Tap,!1,!0),this.viewHelper.dispatchTextAreaEvent(i),this.viewController.moveTo(t.position)}}onChange(e){this._context.viewModel.viewLayout.deltaScrollNow(-e.translationX,-e.translationY)}}class Q5 extends W{constructor(e,t,i){super(),pr&&nL.pointerEvents?this.handler=this._register(new Y5(e,t,i)):window.TouchEvent?this.handler=this._register(new X5(e,t,i)):this.handler=this._register(new Lr(e,t,i))}getTargetAtClientPoint(e,t){return this.handler.getTargetAtClientPoint(e,t)}}class yl extends Ih{}const J5=E("editor.lineHighlightBackground",{dark:null,light:null,hc:null},p("lineHighlight","Background color for the highlight of line at the cursor position.")),hw=E("editor.lineHighlightBorder",{dark:"#282828",light:"#eeeeee",hc:"#f38518"},p("lineHighlightBorderBox","Background color for the border around the line at the cursor position.")),eM=E("editor.rangeHighlightBackground",{dark:"#ffffff0b",light:"#fdff0033",hc:null},p("rangeHighlight","Background color of highlighted ranges, like by quick open and find features. The color must not be opaque so as not to hide underlying decorations."),!0),tM=E("editor.rangeHighlightBorder",{dark:null,light:null,hc:yi},p("rangeHighlightBorder","Background color of the border around highlighted ranges."),!0),iM=E("editor.symbolHighlightBackground",{dark:po,light:po,hc:null},p("symbolHighlight","Background color of highlighted symbol, like for go to definition or go next/previous symbol. The color must not be opaque so as not to hide underlying decorations."),!0),nM=E("editor.symbolHighlightBorder",{dark:null,light:null,hc:yi},p("symbolHighlightBorder","Background color of the border around highlighted symbols."),!0),tk=E("editorCursor.foreground",{dark:"#AEAFAD",light:O.black,hc:O.white},p("caret","Color of the editor cursor.")),sM=E("editorCursor.background",null,p("editorCursorBackground","The background color of the editor cursor. Allows customizing the color of a character overlapped by a block cursor.")),hr=E("editorWhitespace.foreground",{dark:"#e3e4e229",light:"#33333333",hc:"#e3e4e229"},p("editorWhitespaces","Color of whitespace characters in the editor.")),jf=E("editorIndentGuide.background",{dark:hr,light:hr,hc:hr},p("editorIndentGuides","Color of the editor indentation guides.")),Kf=E("editorIndentGuide.activeBackground",{dark:hr,light:hr,hc:hr},p("editorActiveIndentGuide","Color of the active editor indentation guides.")),ik=E("editorLineNumber.foreground",{dark:"#858585",light:"#237893",hc:O.white},p("editorLineNumbers","Color of editor line numbers.")),Gg=E("editorActiveLineNumber.foreground",{dark:"#c6c6c6",light:"#0B216F",hc:yi},p("editorActiveLineNumber","Color of editor active line number"),!1,p("deprecatedEditorActiveLineNumber","Id is deprecated. Use 'editorLineNumber.activeForeground' instead.")),oM=E("editorLineNumber.activeForeground",{dark:Gg,light:Gg,hc:Gg},p("editorActiveLineNumber","Color of editor active line number")),rM=E("editorRuler.foreground",{dark:"#5A5A5A",light:O.lightgrey,hc:O.white},p("editorRuler","Color of the editor rulers."));E("editorCodeLens.foreground",{dark:"#999999",light:"#919191",hc:"#999999"},p("editorCodeLensForeground","Foreground color of editor CodeLens"));E("editorBracketMatch.background",{dark:"#0064001a",light:"#0064001a",hc:"#0064001a"},p("editorBracketMatchBackground","Background color behind matching brackets"));E("editorBracketMatch.border",{dark:"#888",light:"#B9B9B9",hc:it},p("editorBracketMatchBorder","Color for matching brackets boxes"));const aM=E("editorOverviewRuler.border",{dark:"#7f7f7f4d",light:"#7f7f7f4d",hc:"#7f7f7f4d"},p("editorOverviewRulerBorder","Color of the overview ruler border.")),lM=E("editorOverviewRuler.background",null,p("editorOverviewRulerBackground","Background color of the editor overview ruler. Only used when the minimap is enabled and placed on the right side of the editor.")),cM=E("editorGutter.background",{dark:tn,light:tn,hc:tn},p("editorGutter","Background color of the editor gutter. The gutter contains the glyph margins and the line numbers.")),hM=E("editorUnnecessaryCode.border",{dark:null,light:null,hc:O.fromHex("#fff").transparent(.8)},p("unnecessaryCodeBorder","Border color of unnecessary (unused) source code in the editor.")),dM=E("editorUnnecessaryCode.opacity",{dark:O.fromHex("#000a"),light:O.fromHex("#0007"),hc:null},p("unnecessaryCodeOpacity",`Opacity of unnecessary (unused) source code in the editor. For example, "#000000c0" will render the code with 75% opacity. For high contrast themes, use the 'editorUnnecessaryCode.border' theme color to underline unnecessary code instead of fading it out.`));E("editorGhostText.border",{dark:null,light:null,hc:O.fromHex("#fff").transparent(.8)},p("editorGhostTextBorder","Border color of ghost text in the editor."));E("editorGhostText.foreground",{dark:O.fromHex("#ffffff56"),light:O.fromHex("#0007"),hc:null},p("editorGhostTextForeground","Foreground color of the ghost text in the editor."));E("editorGhostText.background",{dark:null,light:null,hc:null},p("editorGhostTextBackground","Background color of the ghost text in the editor."));const Zg=new O(new de(0,122,204,.6));E("editorOverviewRuler.rangeHighlightForeground",{dark:Zg,light:Zg,hc:Zg},p("overviewRulerRangeHighlight","Overview ruler marker color for range highlights. The color must not be opaque so as not to hide underlying decorations."),!0);const uM=E("editorOverviewRuler.errorForeground",{dark:new O(new de(255,18,18,.7)),light:new O(new de(255,18,18,.7)),hc:new O(new de(255,50,50,1))},p("overviewRuleError","Overview ruler marker color for errors.")),fM=E("editorOverviewRuler.warningForeground",{dark:yn,light:yn,hc:R0},p("overviewRuleWarning","Overview ruler marker color for warnings.")),gM=E("editorOverviewRuler.infoForeground",{dark:As,light:As,hc:UL},p("overviewRuleInfo","Overview ruler marker color for infos.")),nk=E("editorBracketHighlight.foreground1",{dark:"#FFD700",light:"#0431FAFF",hc:"#FFD700"},p("editorBracketHighlightForeground1","Foreground color of brackets (1). Requires enabling bracket pair colorization.")),sk=E("editorBracketHighlight.foreground2",{dark:"#DA70D6",light:"#319331FF",hc:"#DA70D6"},p("editorBracketHighlightForeground2","Foreground color of brackets (2). Requires enabling bracket pair colorization.")),ok=E("editorBracketHighlight.foreground3",{dark:"#179FFF",light:"#7B3814FF",hc:"#87CEFA"},p("editorBracketHighlightForeground3","Foreground color of brackets (3). Requires enabling bracket pair colorization.")),rk=E("editorBracketHighlight.foreground4",{dark:"#00000000",light:"#00000000",hc:"#00000000"},p("editorBracketHighlightForeground4","Foreground color of brackets (4). Requires enabling bracket pair colorization.")),ak=E("editorBracketHighlight.foreground5",{dark:"#00000000",light:"#00000000",hc:"#00000000"},p("editorBracketHighlightForeground5","Foreground color of brackets (5). Requires enabling bracket pair colorization.")),lk=E("editorBracketHighlight.foreground6",{dark:"#00000000",light:"#00000000",hc:"#00000000"},p("editorBracketHighlightForeground6","Foreground color of brackets (6). Requires enabling bracket pair colorization.")),mM=E("editorBracketHighlight.unexpectedBracket.foreground",{dark:new O(new de(255,18,18,.8)),light:new O(new de(255,18,18,.8)),hc:new O(new de(255,50,50,1))},p("editorBracketHighlightUnexpectedBracketForeground","Foreground color of unexpected brackets.")),pM=E("editorBracketPairGuide.background1",{dark:"#00000000",light:"#00000000",hc:"#00000000"},p("editorBracketPairGuide.background1","Background color of inactive bracket pair guides (1). Requires enabling bracket pair guides.")),_M=E("editorBracketPairGuide.background2",{dark:"#00000000",light:"#00000000",hc:"#00000000"},p("editorBracketPairGuide.background2","Background color of inactive bracket pair guides (2). Requires enabling bracket pair guides.")),bM=E("editorBracketPairGuide.background3",{dark:"#00000000",light:"#00000000",hc:"#00000000"},p("editorBracketPairGuide.background3","Background color of inactive bracket pair guides (3). Requires enabling bracket pair guides.")),CM=E("editorBracketPairGuide.background4",{dark:"#00000000",light:"#00000000",hc:"#00000000"},p("editorBracketPairGuide.background4","Background color of inactive bracket pair guides (4). Requires enabling bracket pair guides.")),wM=E("editorBracketPairGuide.background5",{dark:"#00000000",light:"#00000000",hc:"#00000000"},p("editorBracketPairGuide.background5","Background color of inactive bracket pair guides (5). Requires enabling bracket pair guides.")),vM=E("editorBracketPairGuide.background6",{dark:"#00000000",light:"#00000000",hc:"#00000000"},p("editorBracketPairGuide.background6","Background color of inactive bracket pair guides (6). Requires enabling bracket pair guides.")),SM=E("editorBracketPairGuide.activeBackground1",{dark:"#00000000",light:"#00000000",hc:"#00000000"},p("editorBracketPairGuide.activeBackground1","Background color of active bracket pair guides (1). Requires enabling bracket pair guides.")),yM=E("editorBracketPairGuide.activeBackground2",{dark:"#00000000",light:"#00000000",hc:"#00000000"},p("editorBracketPairGuide.activeBackground2","Background color of active bracket pair guides (2). Requires enabling bracket pair guides.")),LM=E("editorBracketPairGuide.activeBackground3",{dark:"#00000000",light:"#00000000",hc:"#00000000"},p("editorBracketPairGuide.activeBackground3","Background color of active bracket pair guides (3). Requires enabling bracket pair guides.")),kM=E("editorBracketPairGuide.activeBackground4",{dark:"#00000000",light:"#00000000",hc:"#00000000"},p("editorBracketPairGuide.activeBackground4","Background color of active bracket pair guides (4). Requires enabling bracket pair guides.")),xM=E("editorBracketPairGuide.activeBackground5",{dark:"#00000000",light:"#00000000",hc:"#00000000"},p("editorBracketPairGuide.activeBackground5","Background color of active bracket pair guides (5). Requires enabling bracket pair guides.")),IM=E("editorBracketPairGuide.activeBackground6",{dark:"#00000000",light:"#00000000",hc:"#00000000"},p("editorBracketPairGuide.activeBackground6","Background color of active bracket pair guides (6). Requires enabling bracket pair guides."));E("editorUnicodeHighlight.border",{dark:"#BD9B03",light:"#CEA33D",hc:"#ff0000"},p("editorUnicodeHighlight.border","Border color used to highlight unicode characters."));ni((s,e)=>{const t=s.getColor(tn);t&&e.addRule(`.monaco-editor, .monaco-editor-background, .monaco-editor .inputarea.ime-input { background-color: ${t}; }`);const i=s.getColor(xh);i&&e.addRule(`.monaco-editor, .monaco-editor .inputarea.ime-input { color: ${i}; }`);const n=s.getColor(cM);n&&e.addRule(`.monaco-editor .margin { background-color: ${n}; }`);const o=s.getColor(eM);o&&e.addRule(`.monaco-editor .rangeHighlight { background-color: ${o}; }`);const r=s.getColor(tM);r&&e.addRule(`.monaco-editor .rangeHighlight { border: 1px ${s.type==="hc"?"dotted":"solid"} ${r}; }`);const a=s.getColor(iM);a&&e.addRule(`.monaco-editor .symbolHighlight { background-color: ${a}; }`);const l=s.getColor(nM);l&&e.addRule(`.monaco-editor .symbolHighlight { border: 1px ${s.type==="hc"?"dotted":"solid"} ${l}; }`);const c=s.getColor(hr);c&&(e.addRule(`.monaco-editor .mtkw { color: ${c} !important; }`),e.addRule(`.monaco-editor .mtkz { color: ${c} !important; }`))});class Ja extends yl{constructor(e){super(),this._context=e,this._readConfig(),this._lastCursorModelPosition=new A(1,1),this._renderResult=null,this._activeLineNumber=1,this._context.addEventHandler(this)}_readConfig(){const e=this._context.configuration.options;this._lineHeight=e.get(59);const t=e.get(60);this._renderLineNumbers=t.renderType,this._renderCustomLineNumbers=t.renderFn,this._renderFinalNewline=e.get(84);const i=e.get(131);this._lineNumbersLeft=i.lineNumbersLeft,this._lineNumbersWidth=i.lineNumbersWidth}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){return this._readConfig(),!0}onCursorStateChanged(e){const t=e.selections[0].getPosition();this._lastCursorModelPosition=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(t);let i=!1;return this._activeLineNumber!==t.lineNumber&&(this._activeLineNumber=t.lineNumber,i=!0),(this._renderLineNumbers===2||this._renderLineNumbers===3)&&(i=!0),i}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}_getLineRenderLineNumber(e){const t=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new A(e,1));if(t.column!==1)return"";const i=t.lineNumber;if(this._renderCustomLineNumbers)return this._renderCustomLineNumbers(i);if(this._renderLineNumbers===2){const n=Math.abs(this._lastCursorModelPosition.lineNumber-i);return n===0?''+i+"":String(n)}return this._renderLineNumbers===3?this._lastCursorModelPosition.lineNumber===i||i%10===0?String(i):"":String(i)}prepareRender(e){if(this._renderLineNumbers===0){this._renderResult=null;return}const t=qt?this._lineHeight%2===0?" lh-even":" lh-odd":"",i=e.visibleRange.startLineNumber,n=e.visibleRange.endLineNumber,o='
    ',r=this._context.viewModel.getLineCount(),a=[];for(let l=i;l<=n;l++){const c=l-i;if(!this._renderFinalNewline&&l===r&&this._context.viewModel.getLineLength(l)===0){a[c]="";continue}const h=this._getLineRenderLineNumber(l);h?l===this._activeLineNumber?a[c]='
    '+h+"
    ":a[c]=o+h+"
    ":a[c]=""}this._renderResult=a}render(e,t){if(!this._renderResult)return"";const i=t-e;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}}Ja.CLASS_NAME="line-numbers";ni((s,e)=>{const t=s.getColor(ik);t&&e.addRule(`.monaco-editor .line-numbers { color: ${t}; }`);const i=s.getColor(oM);i&&e.addRule(`.monaco-editor .line-numbers.active-line-number { color: ${i}; }`)});class kr extends Wi{constructor(e){super(e);const t=this._context.configuration.options,i=t.get(131);this._canUseLayerHinting=!t.get(28),this._contentLeft=i.contentLeft,this._glyphMarginLeft=i.glyphMarginLeft,this._glyphMarginWidth=i.glyphMarginWidth,this._domNode=ue(document.createElement("div")),this._domNode.setClassName(kr.OUTER_CLASS_NAME),this._domNode.setPosition("absolute"),this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true"),this._glyphMarginBackgroundDomNode=ue(document.createElement("div")),this._glyphMarginBackgroundDomNode.setClassName(kr.CLASS_NAME),this._domNode.appendChild(this._glyphMarginBackgroundDomNode)}dispose(){super.dispose()}getDomNode(){return this._domNode}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(131);return this._canUseLayerHinting=!t.get(28),this._contentLeft=i.contentLeft,this._glyphMarginLeft=i.glyphMarginLeft,this._glyphMarginWidth=i.glyphMarginWidth,!0}onScrollChanged(e){return super.onScrollChanged(e)||e.scrollTopChanged}prepareRender(e){}render(e){this._domNode.setLayerHinting(this._canUseLayerHinting),this._domNode.setContain("strict");const t=e.scrollTop-e.bigNumbersDelta;this._domNode.setTop(-t);const i=Math.min(e.scrollHeight,1e6);this._domNode.setHeight(i),this._domNode.setWidth(this._contentLeft),this._glyphMarginBackgroundDomNode.setLeft(this._glyphMarginLeft),this._glyphMarginBackgroundDomNode.setWidth(this._glyphMarginWidth),this._glyphMarginBackgroundDomNode.setHeight(i)}}kr.CLASS_NAME="glyph-margin";kr.OUTER_CLASS_NAME="margin";const dr="monaco-mouse-cursor-text";class EM{constructor(e,t,i,n,o){this._context=e,this.modelLineNumber=t,this.distanceToModelLineStart=i,this.widthOfHiddenLineTextBefore=n,this.distanceToModelLineEnd=o,this._visibleTextAreaBrand=void 0,this.startPosition=null,this.endPosition=null,this.visibleTextareaStart=null,this.visibleTextareaEnd=null,this._previousPresentation=null}prepareRender(e){const t=new A(this.modelLineNumber,this.distanceToModelLineStart+1),i=new A(this.modelLineNumber,this._context.viewModel.model.getLineMaxColumn(this.modelLineNumber)-this.distanceToModelLineEnd);this.startPosition=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(t),this.endPosition=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(i),this.startPosition.lineNumber===this.endPosition.lineNumber?(this.visibleTextareaStart=e.visibleRangeForPosition(this.startPosition),this.visibleTextareaEnd=e.visibleRangeForPosition(this.endPosition)):(this.visibleTextareaStart=null,this.visibleTextareaEnd=null)}definePresentation(e){return this._previousPresentation||(e?this._previousPresentation=e:this._previousPresentation={foreground:1,italic:!1,bold:!1,underline:!1,strikethrough:!1}),this._previousPresentation}}const Ol=Oi;class DM extends Wi{constructor(e,t,i){super(e),this._primaryCursorPosition=new A(1,1),this._primaryCursorVisibleRange=null,this._viewController=t,this._visibleRangeProvider=i,this._scrollLeft=0,this._scrollTop=0;const n=this._context.configuration.options,o=n.get(131);this._setAccessibilityOptions(n),this._contentLeft=o.contentLeft,this._contentWidth=o.contentWidth,this._contentHeight=o.height,this._fontInfo=n.get(44),this._lineHeight=n.get(59),this._emptySelectionClipboard=n.get(32),this._copyWithSyntaxHighlighting=n.get(21),this._visibleTextArea=null,this._selections=[new ce(1,1,1,1)],this._modelSelections=[new ce(1,1,1,1)],this._lastRenderPosition=null,this.textArea=ue(document.createElement("textarea")),es.write(this.textArea,6),this.textArea.setClassName(`inputarea ${dr}`),this.textArea.setAttribute("wrap","off"),this.textArea.setAttribute("autocorrect","off"),this.textArea.setAttribute("autocapitalize","off"),this.textArea.setAttribute("autocomplete","off"),this.textArea.setAttribute("spellcheck","false"),this.textArea.setAttribute("aria-label",this._getAriaLabel(n)),this.textArea.setAttribute("tabindex",String(n.get(112))),this.textArea.setAttribute("role","textbox"),this.textArea.setAttribute("aria-roledescription",p("editor","editor")),this.textArea.setAttribute("aria-multiline","true"),this.textArea.setAttribute("aria-haspopup","false"),this.textArea.setAttribute("aria-autocomplete","both"),n.get(30)&&n.get(81)&&this.textArea.setAttribute("readonly","true"),this.textAreaCover=ue(document.createElement("div")),this.textAreaCover.setPosition("absolute");const r={getLineCount:()=>this._context.viewModel.getLineCount(),getLineMaxColumn:c=>this._context.viewModel.getLineMaxColumn(c),getValueInRange:(c,h)=>this._context.viewModel.getValueInRange(c,h)},a={getDataToCopy:()=>{const c=this._context.viewModel.getPlainTextToCopy(this._modelSelections,this._emptySelectionClipboard,li),h=this._context.viewModel.model.getEOL(),d=this._emptySelectionClipboard&&this._modelSelections.length===1&&this._modelSelections[0].isEmpty(),u=Array.isArray(c)?c:null,f=Array.isArray(c)?c.join(h):c;let m,_=null;if(this._copyWithSyntaxHighlighting&&f.length<65536){const b=this._context.viewModel.getRichTextToCopy(this._modelSelections,this._emptySelectionClipboard);b&&(m=b.html,_=b.mode)}return{isFromEmptySelection:d,multicursorText:u,text:f,html:m,mode:_}},getScreenReaderContent:c=>{if(this._accessibilitySupport===1){if(me){const h=this._selections[0];if(h.isEmpty()){const d=h.getStartPosition();let u=this._getWordBeforePosition(d);if(u.length===0&&(u=this._getCharacterBeforePosition(d)),u.length>0)return new Nt(u,u.length,u.length,d,d)}}return Nt.EMPTY}if(Ey){const h=this._selections[0];if(h.isEmpty()){const d=h.getStartPosition(),[u,f]=this._getAndroidWordAtPosition(d);if(u.length>0)return new Nt(u,f,f,d,d)}return Nt.EMPTY}return fa.fromEditorSelection(c,r,this._selections[0],this._accessibilityPageSize,this._accessibilitySupport===0)},deduceModelPosition:(c,h,d)=>this._context.viewModel.deduceModelPositionRelativeToViewPosition(c,h,d)},l=this._register(new Z5(this.textArea.domNode));this._textAreaInput=this._register(new G5(a,l,qi,oD)),this._register(this._textAreaInput.onKeyDown(c=>{this._viewController.emitKeyDown(c)})),this._register(this._textAreaInput.onKeyUp(c=>{this._viewController.emitKeyUp(c)})),this._register(this._textAreaInput.onPaste(c=>{let h=!1,d=null,u=null;c.metadata&&(h=this._emptySelectionClipboard&&!!c.metadata.isFromEmptySelection,d=typeof c.metadata.multicursorText!="undefined"?c.metadata.multicursorText:null,u=c.metadata.mode),this._viewController.paste(c.text,h,d,u)})),this._register(this._textAreaInput.onCut(()=>{this._viewController.cut()})),this._register(this._textAreaInput.onType(c=>{c.replacePrevCharCnt||c.replaceNextCharCnt||c.positionDelta?this._viewController.compositionType(c.text,c.replacePrevCharCnt,c.replaceNextCharCnt,c.positionDelta):this._viewController.type(c.text)})),this._register(this._textAreaInput.onSelectionChangeRequest(c=>{this._viewController.setSelection(c)})),this._register(this._textAreaInput.onCompositionStart(c=>{const h=this.textArea.domNode,d=this._modelSelections[0],{distanceToModelLineStart:u,widthOfHiddenTextBefore:f}=(()=>{const _=h.value.substring(0,Math.min(h.selectionStart,h.selectionEnd)),b=_.lastIndexOf(` +`),w=_.substring(b+1),C=w.lastIndexOf(" "),v=w.length-C-1,S=d.getStartPosition(),k=Math.min(S.column-1,v),x=S.column-1-k,L=w.substring(0,w.length-k),y=NM(L,this._fontInfo);return{distanceToModelLineStart:x,widthOfHiddenTextBefore:y}})(),{distanceToModelLineEnd:m}=(()=>{const _=h.value.substring(Math.max(h.selectionStart,h.selectionEnd)),b=_.indexOf(` +`),w=b===-1?_:_.substring(0,b),C=w.indexOf(" "),v=C===-1?w.length:w.length-C-1,S=d.getEndPosition(),k=Math.min(this._context.viewModel.model.getLineMaxColumn(S.lineNumber)-S.column,v);return{distanceToModelLineEnd:this._context.viewModel.model.getLineMaxColumn(S.lineNumber)-S.column-k}})();this._context.viewModel.revealRange("keyboard",!0,D.fromPositions(this._selections[0].getStartPosition()),0,1),this._visibleTextArea=new EM(this._context,d.startLineNumber,u,f,m),this._visibleTextArea.prepareRender(this._visibleRangeProvider),this._render(),this.textArea.setClassName(`inputarea ${dr} ime-input`),this._viewController.compositionStart(),this._context.viewModel.onCompositionStart()})),this._register(this._textAreaInput.onCompositionUpdate(c=>{!this._visibleTextArea||(this._visibleTextArea.prepareRender(this._visibleRangeProvider),this._render())})),this._register(this._textAreaInput.onCompositionEnd(()=>{this._visibleTextArea=null,this._render(),this.textArea.setClassName(`inputarea ${dr}`),this._viewController.compositionEnd(),this._context.viewModel.onCompositionEnd()})),this._register(this._textAreaInput.onFocus(()=>{this._context.viewModel.setHasFocus(!0)})),this._register(this._textAreaInput.onBlur(()=>{this._context.viewModel.setHasFocus(!1)}))}dispose(){super.dispose()}_getAndroidWordAtPosition(e){const t='`~!@#$%^&*()-=+[{]}\\|;:",.<>/?',i=this._context.viewModel.getLineContent(e.lineNumber),n=Ka(t);let o=!0,r=e.column,a=!0,l=e.column,c=0;for(;c<50&&(o||a);){if(o&&r<=1&&(o=!1),o){const h=i.charCodeAt(r-2);n.get(h)!==0?o=!1:r--}if(a&&l>i.length&&(a=!1),a){const h=i.charCodeAt(l-1);n.get(h)!==0?a=!1:l++}c++}return[i.substring(r-1,l-1),e.column-r]}_getWordBeforePosition(e){const t=this._context.viewModel.getLineContent(e.lineNumber),i=Ka(this._context.configuration.options.get(117));let n=e.column,o=0;for(;n>1;){const r=t.charCodeAt(n-2);if(i.get(r)!==0||o>50)return t.substring(n-1,e.column-1);o++,n--}return t.substring(0,e.column-1)}_getCharacterBeforePosition(e){if(e.column>1){const i=this._context.viewModel.getLineContent(e.lineNumber).charAt(e.column-2);if(!gt(i.charCodeAt(0)))return i}return""}_getAriaLabel(e){return e.get(2)===1?p("accessibilityOffAriaLabel","The editor is not accessible at this time. Press {0} for options.",qt?"Shift+Alt+F1":"Alt+F1"):e.get(4)}_setAccessibilityOptions(e){this._accessibilitySupport=e.get(2);const t=e.get(3);this._accessibilitySupport===2&&t===Mr.accessibilityPageSize.defaultValue?this._accessibilityPageSize=500:this._accessibilityPageSize=t}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(131);return this._setAccessibilityOptions(t),this._contentLeft=i.contentLeft,this._contentWidth=i.contentWidth,this._contentHeight=i.height,this._fontInfo=t.get(44),this._lineHeight=t.get(59),this._emptySelectionClipboard=t.get(32),this._copyWithSyntaxHighlighting=t.get(21),this.textArea.setAttribute("aria-label",this._getAriaLabel(t)),this.textArea.setAttribute("tabindex",String(t.get(112))),(e.hasChanged(30)||e.hasChanged(81))&&(t.get(30)&&t.get(81)?this.textArea.setAttribute("readonly","true"):this.textArea.removeAttribute("readonly")),e.hasChanged(2)&&this._textAreaInput.writeScreenReaderContent("strategy changed"),!0}onCursorStateChanged(e){return this._selections=e.selections.slice(0),this._modelSelections=e.modelSelections.slice(0),this._textAreaInput.writeScreenReaderContent("selection changed"),!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return this._scrollLeft=e.scrollLeft,this._scrollTop=e.scrollTop,!0}onZonesChanged(e){return!0}isFocused(){return this._textAreaInput.isFocused()}focusTextArea(){this._textAreaInput.focusTextArea()}getLastRenderData(){return this._lastRenderPosition}setAriaOptions(e){e.activeDescendant?(this.textArea.setAttribute("aria-haspopup","true"),this.textArea.setAttribute("aria-autocomplete","list"),this.textArea.setAttribute("aria-activedescendant",e.activeDescendant)):(this.textArea.setAttribute("aria-haspopup","false"),this.textArea.setAttribute("aria-autocomplete","both"),this.textArea.removeAttribute("aria-activedescendant")),e.role&&this.textArea.setAttribute("role",e.role)}prepareRender(e){this._primaryCursorPosition=new A(this._selections[0].positionLineNumber,this._selections[0].positionColumn),this._primaryCursorVisibleRange=e.visibleRangeForPosition(this._primaryCursorPosition),this._visibleTextArea&&this._visibleTextArea.prepareRender(e)}render(e){this._textAreaInput.writeScreenReaderContent("render"),this._render()}_render(){if(this._visibleTextArea){const i=this._visibleTextArea.visibleTextareaStart,n=this._visibleTextArea.visibleTextareaEnd,o=this._visibleTextArea.startPosition,r=this._visibleTextArea.endPosition;if(o&&r&&i&&n&&n.left>=this._scrollLeft&&i.left<=this._scrollLeft+this._contentWidth){const a=this._context.viewLayout.getVerticalOffsetForLineNumber(this._primaryCursorPosition.lineNumber)-this._scrollTop,l=this._newlinecount(this.textArea.domNode.value.substr(0,this.textArea.domNode.selectionStart));let c=this._visibleTextArea.widthOfHiddenLineTextBefore,h=this._contentLeft+i.left-this._scrollLeft,d=n.left-i.left+1;if(hthis._contentWidth&&(d=this._contentWidth);const u=this._context.viewModel.getViewLineData(o.lineNumber),f=u.tokens.findTokenIndexAtOffset(o.column-1),m=u.tokens.findTokenIndexAtOffset(r.column-1),_=f===m,b=this._visibleTextArea.definePresentation(_?u.tokens.getPresentation(f):null);this.textArea.domNode.scrollTop=l*this._lineHeight,this.textArea.domNode.scrollLeft=c,this._doRender({lastRenderPosition:null,top:a,left:h,width:d,height:this._lineHeight,useCover:!1,color:(et.getColorMap()||[])[b.foreground],italic:b.italic,bold:b.bold,underline:b.underline,strikethrough:b.strikethrough})}return}if(!this._primaryCursorVisibleRange){this._renderAtTopLeft();return}const e=this._contentLeft+this._primaryCursorVisibleRange.left-this._scrollLeft;if(ethis._contentLeft+this._contentWidth){this._renderAtTopLeft();return}const t=this._context.viewLayout.getVerticalOffsetForLineNumber(this._selections[0].positionLineNumber)-this._scrollTop;if(t<0||t>this._contentHeight){this._renderAtTopLeft();return}if(me){this._doRender({lastRenderPosition:this._primaryCursorPosition,top:t,left:e,width:Ol?0:1,height:this._lineHeight,useCover:!1}),this.textArea.domNode.scrollLeft=this._primaryCursorVisibleRange.left;const i=this._newlinecount(this.textArea.domNode.value.substr(0,this.textArea.domNode.selectionStart));this.textArea.domNode.scrollTop=i*this._lineHeight;return}this._doRender({lastRenderPosition:this._primaryCursorPosition,top:t,left:e,width:Ol?0:1,height:Ol?0:1,useCover:!1})}_newlinecount(e){let t=0,i=-1;do{if(i=e.indexOf(` +`,i+1),i===-1)break;t++}while(!0);return t}_renderAtTopLeft(){this._doRender({lastRenderPosition:null,top:0,left:0,width:Ol?0:1,height:Ol?0:1,useCover:!0})}_doRender(e){this._lastRenderPosition=e.lastRenderPosition;const t=this.textArea,i=this.textAreaCover;ii(t,this._fontInfo),t.setTop(e.top),t.setLeft(e.left),t.setWidth(e.width),t.setHeight(e.height),t.setColor(e.color?O.Format.CSS.formatHex(e.color):""),t.setFontStyle(e.italic?"italic":""),e.bold&&t.setFontWeight("bold"),t.setTextDecoration(`${e.underline?" underline":""}${e.strikethrough?" line-through":""}`),i.setTop(e.useCover?e.top:0),i.setLeft(e.useCover?e.left:0),i.setWidth(e.useCover?e.width:0),i.setHeight(e.useCover?e.height:0);const n=this._context.configuration.options;n.get(50)?i.setClassName("monaco-editor-background textAreaCover "+kr.OUTER_CLASS_NAME):n.get(60).renderType!==0?i.setClassName("monaco-editor-background textAreaCover "+Ja.CLASS_NAME):i.setClassName("monaco-editor-background textAreaCover")}}function NM(s,e){if(s.length===0)return 0;const t=document.createElement("div");t.style.position="absolute",t.style.top="-50000px",t.style.width="50000px";const i=document.createElement("span");ii(i,e),i.style.whiteSpace="pre",i.append(s),t.appendChild(i),document.body.appendChild(t);const n=i.offsetWidth;return document.body.removeChild(t),n}function TM(s,e,t){let i=0;for(let o=0;o!0,RM=()=>!1,AM=s=>s===" "||s===" ";class Yr{constructor(e,t,i,n){this.languageConfigurationService=n,this._cursorMoveConfigurationBrand=void 0,this._languageId=e;const o=i.options,r=o.get(131);this.readOnly=o.get(81),this.tabSize=t.tabSize,this.indentSize=t.indentSize,this.insertSpaces=t.insertSpaces,this.stickyTabStops=o.get(104),this.lineHeight=o.get(59),this.pageSize=Math.max(1,Math.floor(r.height/this.lineHeight)-2),this.useTabStops=o.get(116),this.wordSeparators=o.get(117),this.emptySelectionClipboard=o.get(32),this.copyWithSyntaxHighlighting=o.get(21),this.multiCursorMergeOverlapping=o.get(69),this.multiCursorPaste=o.get(71),this.autoClosingBrackets=o.get(5),this.autoClosingQuotes=o.get(8),this.autoClosingDelete=o.get(6),this.autoClosingOvertype=o.get(7),this.autoSurround=o.get(11),this.autoIndent=o.get(9),this.surroundingPairs={},this._electricChars=null,this.shouldAutoCloseBefore={quote:this._getShouldAutoClose(e,this.autoClosingQuotes),bracket:this._getShouldAutoClose(e,this.autoClosingBrackets)},this.autoClosingPairs=this.languageConfigurationService.getLanguageConfiguration(e).getAutoClosingPairs();const a=this.languageConfigurationService.getLanguageConfiguration(e).getSurroundingPairs();if(a)for(const l of a)this.surroundingPairs[l.open]=l.close}static shouldRecreate(e){return e.hasChanged(131)||e.hasChanged(117)||e.hasChanged(32)||e.hasChanged(69)||e.hasChanged(71)||e.hasChanged(5)||e.hasChanged(8)||e.hasChanged(6)||e.hasChanged(7)||e.hasChanged(11)||e.hasChanged(116)||e.hasChanged(59)||e.hasChanged(81)}get electricChars(){var e;if(!this._electricChars){this._electricChars={};const t=(e=this.languageConfigurationService.getLanguageConfiguration(this._languageId).electricCharacter)===null||e===void 0?void 0:e.getElectricCharacters();if(t)for(const i of t)this._electricChars[i]=!0}return this._electricChars}onElectricCharacter(e,t,i){const n=fu(t,i-1),o=this.languageConfigurationService.getLanguageConfiguration(n.languageId).electricCharacter;return o?o.onElectricCharacter(e,n,i-n.firstCharOffset):null}normalizeIndentation(e){return ck(e,this.indentSize,this.insertSpaces)}_getShouldAutoClose(e,t){switch(t){case"beforeWhitespace":return AM;case"languageDefined":return this._getLanguageDefinedShouldAutoClose(e);case"always":return MM;case"never":return RM}}_getLanguageDefinedShouldAutoClose(e){const t=this.languageConfigurationService.getLanguageConfiguration(e).getAutoCloseBeforeSet();return i=>t.indexOf(i)!==-1}visibleColumnFromColumn(e,t){return ft.visibleColumnFromColumn(e.getLineContent(t.lineNumber),t.column,this.tabSize)}columnFromVisibleColumn(e,t,i){const n=ft.columnFromVisibleColumn(e.getLineContent(t),i,this.tabSize),o=e.getLineMinColumn(t);if(nr?r:n}}class oe{constructor(e,t){this._cursorStateBrand=void 0,this.modelState=e,this.viewState=t}static fromModelState(e){return new OM(e)}static fromViewState(e){return new PM(e)}static fromModelSelection(e){const t=ce.liftSelection(e),i=new pt(D.fromPositions(t.getSelectionStart()),0,t.getPosition(),0);return oe.fromModelState(i)}static fromModelSelections(e){const t=[];for(let i=0,n=e.length;io,c=n>r,h=nr||wn||b0&&n--,qo.columnSelect(e,t,i.fromViewLineNumber,i.fromViewVisualColumn,i.toViewLineNumber,n)}static columnSelectRight(e,t,i){let n=0;const o=Math.min(i.fromViewLineNumber,i.toViewLineNumber),r=Math.max(i.fromViewLineNumber,i.toViewLineNumber);for(let l=o;l<=r;l++){const c=t.getLineMaxColumn(l),h=e.visibleColumnFromColumn(t,new A(l,c));n=Math.max(n,h)}let a=i.toViewVisualColumn;return ae.getLineMinColumn(t.lineNumber))return t.delta(void 0,-yy(e.getLineContent(t.lineNumber),t.column-1));if(t.lineNumber>1){const i=t.lineNumber-1;return new A(i,e.getLineMaxColumn(i))}else return t}static leftPositionAtomicSoftTabs(e,t,i){if(t.column<=e.getLineIndentColumn(t.lineNumber)){const n=e.getLineMinColumn(t.lineNumber),o=e.getLineContent(t.lineNumber),r=Vc.atomicPosition(o,t.column-1,i,0);if(r!==-1&&r+1>=n)return new A(t.lineNumber,r+1)}return this.leftPosition(e,t)}static left(e,t,i){const n=e.stickyTabStops?_e.leftPositionAtomicSoftTabs(t,i,e.tabSize):_e.leftPosition(t,i);return new Yg(n.lineNumber,n.column,0)}static moveLeft(e,t,i,n,o){let r,a;if(i.hasSelection()&&!n)r=i.selection.startLineNumber,a=i.selection.startColumn;else{const l=i.position.delta(void 0,-(o-1)),c=t.normalizePosition(_e.clipPositionColumn(l,t),0),h=_e.left(e,t,c);r=h.lineNumber,a=h.column}return i.move(n,r,a,0)}static clipPositionColumn(e,t){return new A(e.lineNumber,_e.clipRange(e.column,t.getLineMinColumn(e.lineNumber),t.getLineMaxColumn(e.lineNumber)))}static clipRange(e,t,i){return ei?i:e}static rightPosition(e,t,i){return ih?(i=h,a?n=t.getLineMaxColumn(i):n=Math.min(t.getLineMaxColumn(i),n)):n=e.columnFromVisibleColumn(t,i,c),f?o=0:o=c-ft.visibleColumnFromColumn(t.getLineContent(i),n,e.tabSize),l!==void 0){const m=new A(i,n),_=t.normalizePosition(m,l);o=o+(n-_.column),i=_.lineNumber,n=_.column}return new Yg(i,n,o)}static down(e,t,i,n,o,r,a){return this.vertical(e,t,i,n,o,i+r,a,1)}static moveDown(e,t,i,n,o){let r,a;i.hasSelection()&&!n?(r=i.selection.endLineNumber,a=i.selection.endColumn):(r=i.position.lineNumber,a=i.position.column);const l=_e.down(e,t,r,a,i.leftoverVisibleColumns,o,!0);return i.move(n,l.lineNumber,l.column,l.leftoverVisibleColumns)}static translateDown(e,t,i){const n=i.selection,o=_e.down(e,t,n.selectionStartLineNumber,n.selectionStartColumn,i.selectionStartLeftoverVisibleColumns,1,!1),r=_e.down(e,t,n.positionLineNumber,n.positionColumn,i.leftoverVisibleColumns,1,!1);return new pt(new D(o.lineNumber,o.column,o.lineNumber,o.column),o.leftoverVisibleColumns,new A(r.lineNumber,r.column),r.leftoverVisibleColumns)}static up(e,t,i,n,o,r,a){return this.vertical(e,t,i,n,o,i-r,a,0)}static moveUp(e,t,i,n,o){let r,a;i.hasSelection()&&!n?(r=i.selection.startLineNumber,a=i.selection.startColumn):(r=i.position.lineNumber,a=i.position.column);const l=_e.up(e,t,r,a,i.leftoverVisibleColumns,o,!0);return i.move(n,l.lineNumber,l.column,l.leftoverVisibleColumns)}static translateUp(e,t,i){const n=i.selection,o=_e.up(e,t,n.selectionStartLineNumber,n.selectionStartColumn,i.selectionStartLeftoverVisibleColumns,1,!1),r=_e.up(e,t,n.positionLineNumber,n.positionColumn,i.leftoverVisibleColumns,1,!1);return new pt(new D(o.lineNumber,o.column,o.lineNumber,o.column),o.leftoverVisibleColumns,new A(r.lineNumber,r.column),r.leftoverVisibleColumns)}static _isBlankLine(e,t){return e.getLineFirstNonWhitespaceColumn(t)===0}static moveToPrevBlankLine(e,t,i,n){let o=i.position.lineNumber;for(;o>1&&this._isBlankLine(t,o);)o--;for(;o>1&&!this._isBlankLine(t,o);)o--;return i.move(n,o,t.getLineMinColumn(o),0)}static moveToNextBlankLine(e,t,i,n){const o=t.getLineCount();let r=i.position.lineNumber;for(;r=u.length+1)return!1;const f=u.charAt(d.column-2),m=n.get(f);if(!m)return!1;if(ia(f)){if(i==="never")return!1}else if(t==="never")return!1;const _=u.charAt(d.column-1);let b=!1;for(const w of m)w.open===f&&w.close===_&&(b=!0);if(!b)return!1;if(e==="auto"){let w=!1;for(let C=0,v=a.length;C1){const o=t.getLineContent(n.lineNumber),r=Ci(o),a=r===-1?o.length+1:r+1;if(n.column<=a){const l=i.visibleColumnFromColumn(t,n),c=ft.prevIndentTabStop(l,i.indentSize),h=i.columnFromVisibleColumn(t,n.lineNumber,c);return new D(n.lineNumber,h,n.lineNumber,n.column)}}return D.fromPositions(xr.getPositionAfterDeleteLeft(n,t),n)}static getPositionAfterDeleteLeft(e,t){if(e.column>1){const i=QE(e.column-1,t.getLineContent(e.lineNumber));return e.with(void 0,i+1)}else if(e.lineNumber>1){const i=e.lineNumber-1;return new A(i,t.getLineMaxColumn(i))}else return e}static cut(e,t,i){const n=[];let o=null;i.sort((r,a)=>A.compare(r.getStartPosition(),a.getEndPosition()));for(let r=0,a=i.length;r1&&(o==null?void 0:o.endLineNumber)!==c.lineNumber?(h=c.lineNumber-1,d=t.getLineMaxColumn(c.lineNumber-1),u=c.lineNumber,f=t.getLineMaxColumn(c.lineNumber)):(h=c.lineNumber,d=1,u=c.lineNumber,f=t.getLineMaxColumn(c.lineNumber));const m=new D(h,d,u,f);o=m,m.isEmpty()?n[r]=null:n[r]=new Yt(m,"")}else n[r]=null;else n[r]=new Yt(l,"")}return new oi(0,n,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}}class $e{static _createWord(e,t,i,n,o){return{start:n,end:o,wordType:t,nextCharClass:i}}static _findPreviousWordOnLine(e,t,i){const n=t.getLineContent(i.lineNumber);return this._doFindPreviousWordOnLine(n,e,i)}static _doFindPreviousWordOnLine(e,t,i){let n=0;for(let o=i.column-2;o>=0;o--){const r=e.charCodeAt(o),a=t.get(r);if(a===0){if(n===2)return this._createWord(e,n,a,o+1,this._findEndOfWord(e,t,n,o+1));n=1}else if(a===2){if(n===1)return this._createWord(e,n,a,o+1,this._findEndOfWord(e,t,n,o+1));n=2}else if(a===1&&n!==0)return this._createWord(e,n,a,o+1,this._findEndOfWord(e,t,n,o+1))}return n!==0?this._createWord(e,n,1,0,this._findEndOfWord(e,t,n,0)):null}static _findEndOfWord(e,t,i,n){const o=e.length;for(let r=n;r=0;o--){const r=e.charCodeAt(o),a=t.get(r);if(a===1||i===1&&a===2||i===2&&a===0)return o+1}return 0}static moveWordLeft(e,t,i,n){let o=i.lineNumber,r=i.column;r===1&&o>1&&(o=o-1,r=t.getLineMaxColumn(o));let a=$e._findPreviousWordOnLine(e,t,new A(o,r));if(n===0)return new A(o,a?a.start+1:1);if(n===1)return a&&a.wordType===2&&a.end-a.start===1&&a.nextCharClass===0&&(a=$e._findPreviousWordOnLine(e,t,new A(o,a.start+1))),new A(o,a?a.start+1:1);if(n===3){for(;a&&a.wordType===2;)a=$e._findPreviousWordOnLine(e,t,new A(o,a.start+1));return new A(o,a?a.start+1:1)}return a&&r<=a.end+1&&(a=$e._findPreviousWordOnLine(e,t,new A(o,a.start+1))),new A(o,a?a.end+1:1)}static _moveWordPartLeft(e,t){const i=t.lineNumber,n=e.getLineMaxColumn(i);if(t.column===1)return i>1?new A(i-1,e.getLineMaxColumn(i-1)):t;const o=e.getLineContent(i);for(let r=t.column-1;r>1;r--){const a=o.charCodeAt(r-2),l=o.charCodeAt(r-1);if(a===95&&l!==95)return new A(i,r);if(ra(a)&&Xs(l))return new A(i,r);if(Xs(a)&&Xs(l)&&r+1=l.start+1&&(l=$e._findNextWordOnLine(e,t,new A(o,l.end+1))),l?r=l.start+1:r=t.getLineMaxColumn(o);return new A(o,r)}static _moveWordPartRight(e,t){const i=t.lineNumber,n=e.getLineMaxColumn(i);if(t.column===n)return i1?c=1:(l--,c=n.getLineMaxColumn(l)):(h&&c<=h.end+1&&(h=$e._findPreviousWordOnLine(i,n,new A(l,h.start+1))),h?c=h.end+1:c>1?c=1:(l--,c=n.getLineMaxColumn(l))),new D(l,c,a.lineNumber,a.column)}static deleteInsideWord(e,t,i){if(!i.isEmpty())return i;const n=new A(i.positionLineNumber,i.positionColumn),o=this._deleteInsideWordWhitespace(t,n);return o||this._deleteInsideWordDetermineDeleteRange(e,t,n)}static _charAtIsWhitespace(e,t){const i=e.charCodeAt(t);return i===32||i===9}static _deleteInsideWordWhitespace(e,t){const i=e.getLineContent(t.lineNumber),n=i.length;if(n===0)return null;let o=Math.max(t.column-2,0);if(!this._charAtIsWhitespace(i,o))return null;let r=Math.min(t.column-1,n-1);if(!this._charAtIsWhitespace(i,r))return null;for(;o>0&&this._charAtIsWhitespace(i,o-1);)o--;for(;r+11?new D(i.lineNumber-1,t.getLineMaxColumn(i.lineNumber-1),i.lineNumber,1):i.lineNumberd.start+1<=i.column&&i.column<=d.end+1,a=(d,u)=>(d=Math.min(d,i.column),u=Math.max(u,i.column),new D(i.lineNumber,d,i.lineNumber,u)),l=d=>{let u=d.start+1,f=d.end+1,m=!1;for(;f-11&&this._charAtIsWhitespace(n,u-2);)u--;return a(u,f)},c=$e._findPreviousWordOnLine(e,t,i);if(c&&r(c))return l(c);const h=$e._findNextWordOnLine(e,t,i);return h&&r(h)?l(h):c&&h?a(c.end+1,h.start+1):c?a(c.start+1,c.end+1):h?a(h.start+1,h.end+1):a(1,o+1)}static _deleteWordPartLeft(e,t){if(!t.isEmpty())return t;const i=t.getPosition(),n=$e._moveWordPartLeft(e,i);return new D(i.lineNumber,i.column,n.lineNumber,n.column)}static _findFirstNonWhitespaceChar(e,t){const i=e.length;for(let n=t;n=u.start+1&&(u=$e._findNextWordOnLine(i,n,new A(l,u.end+1))),u?c=u.start+1:cc&&(h=c,d=e.model.getLineMaxColumn(h)),oe.fromModelState(new pt(new D(r.lineNumber,1,h,d),0,new A(h,d),0))}const l=t.modelState.selectionStart.getStartPosition().lineNumber;if(r.lineNumberl){const c=e.getLineCount();let h=a.lineNumber+1,d=1;return h>c&&(h=c,d=e.getLineMaxColumn(h)),oe.fromViewState(t.viewState.move(t.modelState.hasSelection(),h,d,0))}else{const c=t.modelState.selectionStart.getEndPosition();return oe.fromModelState(t.modelState.move(t.modelState.hasSelection(),c.lineNumber,c.column,0))}}static word(e,t,i,n){const o=e.model.validatePosition(n);return oe.fromModelState($e.word(e.cursorConfig,e.model,t.modelState,i,o))}static cancelSelection(e,t){if(!t.modelState.hasSelection())return new oe(t.modelState,t.viewState);const i=t.viewState.position.lineNumber,n=t.viewState.position.column;return oe.fromViewState(new pt(new D(i,n,i,n),0,new A(i,n),0))}static moveTo(e,t,i,n,o){const r=e.model.validatePosition(n),a=o?e.coordinatesConverter.validateViewPosition(new A(o.lineNumber,o.column),r):e.coordinatesConverter.convertModelPositionToViewPosition(r);return oe.fromViewState(t.viewState.move(i,a.lineNumber,a.column,0))}static simpleMove(e,t,i,n,o,r){switch(i){case 0:return r===4?this._moveHalfLineLeft(e,t,n):this._moveLeft(e,t,n,o);case 1:return r===4?this._moveHalfLineRight(e,t,n):this._moveRight(e,t,n,o);case 2:return r===2?this._moveUpByViewLines(e,t,n,o):this._moveUpByModelLines(e,t,n,o);case 3:return r===2?this._moveDownByViewLines(e,t,n,o):this._moveDownByModelLines(e,t,n,o);case 4:return r===2?t.map(a=>oe.fromViewState(_e.moveToPrevBlankLine(e.cursorConfig,e,a.viewState,n))):t.map(a=>oe.fromModelState(_e.moveToPrevBlankLine(e.cursorConfig,e.model,a.modelState,n)));case 5:return r===2?t.map(a=>oe.fromViewState(_e.moveToNextBlankLine(e.cursorConfig,e,a.viewState,n))):t.map(a=>oe.fromModelState(_e.moveToNextBlankLine(e.cursorConfig,e.model,a.modelState,n)));case 6:return this._moveToViewMinColumn(e,t,n);case 7:return this._moveToViewFirstNonWhitespaceColumn(e,t,n);case 8:return this._moveToViewCenterColumn(e,t,n);case 9:return this._moveToViewMaxColumn(e,t,n);case 10:return this._moveToViewLastNonWhitespaceColumn(e,t,n);default:return null}}static viewportMove(e,t,i,n,o){const r=e.getCompletelyVisibleViewRange(),a=e.coordinatesConverter.convertViewRangeToModelRange(r);switch(i){case 11:{const l=this._firstLineNumberInRange(e.model,a,o),c=e.model.getLineFirstNonWhitespaceColumn(l);return[this._moveToModelPosition(e,t[0],n,l,c)]}case 13:{const l=this._lastLineNumberInRange(e.model,a,o),c=e.model.getLineFirstNonWhitespaceColumn(l);return[this._moveToModelPosition(e,t[0],n,l,c)]}case 12:{const l=Math.round((a.startLineNumber+a.endLineNumber)/2),c=e.model.getLineFirstNonWhitespaceColumn(l);return[this._moveToModelPosition(e,t[0],n,l,c)]}case 14:{const l=[];for(let c=0,h=t.length;ci.endLineNumber-1?r=i.endLineNumber-1:ooe.fromViewState(_e.moveLeft(e.cursorConfig,e,o.viewState,i,n)))}static _moveHalfLineLeft(e,t,i){const n=[];for(let o=0,r=t.length;ooe.fromViewState(_e.moveRight(e.cursorConfig,e,o.viewState,i,n)))}static _moveHalfLineRight(e,t,i){const n=[];for(let o=0,r=t.length;o1&&ft.visibleColumnFromColumn(u,f+1,o)%r!==0&&e.isCheapToTokenize(d-1)){const b=Ki.getEnterAction(this._opts.autoIndent,e,new D(d-1,e.getLineMaxColumn(d-1),d-1,e.getLineMaxColumn(d-1)));if(b){if(h=c,b.appendText)for(let w=0,C=b.appendText.length;w1){let a;for(a=i-1;a>=1;a--){const h=t.getLineContent(a);if(pl(h)>=0)break}if(a<1)return null;const l=t.getLineMaxColumn(a),c=Ki.getEnterAction(e.autoIndent,t,new D(a,l,a,l));c&&(o=c.indentation+c.appendText)}return n&&(n===dt.Indent&&(o=je.shiftIndent(e,o)),n===dt.Outdent&&(o=je.unshiftIndent(e,o)),o=e.normalizeIndentation(o)),o||null}static _replaceJumpToNextIndent(e,t,i,n){let o="";const r=i.getStartPosition();if(e.insertSpaces){const a=e.visibleColumnFromColumn(t,r),l=e.indentSize,c=l-a%l;for(let h=0;hthis._compositionType(i,h,o,r,a,l));return new oi(4,c,{shouldPushStackElementBefore:qh(e,4),shouldPushStackElementAfter:!1})}static _compositionType(e,t,i,n,o,r){if(!t.isEmpty())return null;const a=t.getPosition(),l=Math.max(1,a.column-n),c=Math.min(e.getLineMaxColumn(a.lineNumber),a.column+o),h=new D(a.lineNumber,l,a.lineNumber,c);return e.getValueInRange(h)===i&&r===0?null:new Hd(h,i,0,r)}static _typeCommand(e,t,i){return i?new Kh(e,t,!0):new Yt(e,t,!0)}static _enter(e,t,i,n){if(e.autoIndent===0)return je._typeCommand(n,` +`,i);if(!t.isCheapToTokenize(n.getStartPosition().lineNumber)||e.autoIndent===1){const l=t.getLineContent(n.startLineNumber),c=Ut(l).substring(0,n.startColumn-1);return je._typeCommand(n,` +`+e.normalizeIndentation(c),i)}const o=Ki.getEnterAction(e.autoIndent,t,n);if(o){if(o.indentAction===dt.None)return je._typeCommand(n,` +`+e.normalizeIndentation(o.indentation+o.appendText),i);if(o.indentAction===dt.Indent)return je._typeCommand(n,` +`+e.normalizeIndentation(o.indentation+o.appendText),i);if(o.indentAction===dt.IndentOutdent){const l=e.normalizeIndentation(o.indentation),c=e.normalizeIndentation(o.indentation+o.appendText),h=` +`+c+` +`+l;return i?new Kh(n,h,!0):new Hd(n,h,-1,c.length-l.length,!0)}else if(o.indentAction===dt.Outdent){const l=je.unshiftIndent(e,o.indentation);return je._typeCommand(n,` +`+e.normalizeIndentation(l+o.appendText),i)}}const r=t.getLineContent(n.startLineNumber),a=Ut(r).substring(0,n.startColumn-1);if(e.autoIndent>=4){const l=Ki.getIndentForEnter(e.autoIndent,t,n,{unshiftIndent:c=>je.unshiftIndent(e,c),shiftIndent:c=>je.shiftIndent(e,c),normalizeIndentation:c=>e.normalizeIndentation(c)});if(l){let c=e.visibleColumnFromColumn(t,n.getEndPosition());const h=n.endColumn,d=t.getLineContent(n.endLineNumber),u=Ci(d);if(u>=0?n=n.setEndPosition(n.endLineNumber,Math.max(n.endColumn,u+1)):n=n.setEndPosition(n.endLineNumber,t.getLineMaxColumn(n.endLineNumber)),i)return new Kh(n,` +`+e.normalizeIndentation(l.afterEnter),!0);{let f=0;return h<=u+1&&(e.insertSpaces||(c=Math.ceil(c/e.indentSize)),f=Math.min(c+1-e.normalizeIndentation(l.afterEnter).length-1,0)),new Hd(n,` +`+e.normalizeIndentation(l.afterEnter),0,f,!0)}}}return je._typeCommand(n,` +`+e.normalizeIndentation(a),i)}static _isAutoIndentType(e,t,i){if(e.autoIndent<4)return!1;for(let n=0,o=i.length;nje.shiftIndent(e,a),unshiftIndent:a=>je.unshiftIndent(e,a)});if(r===null)return null;if(r!==e.normalizeIndentation(o)){const a=t.getLineFirstNonWhitespaceColumn(i.startLineNumber);return a===0?je._typeCommand(new D(i.startLineNumber,1,i.endLineNumber,i.endColumn),e.normalizeIndentation(r)+n,!1):je._typeCommand(new D(i.startLineNumber,1,i.endLineNumber,i.endColumn),e.normalizeIndentation(r)+t.getLineContent(i.startLineNumber).substring(a-1,i.startColumn-1)+n,!1)}return null}static _isAutoClosingOvertype(e,t,i,n,o){if(e.autoClosingOvertype==="never"||!e.autoClosingPairs.autoClosingPairsCloseSingleChar.has(o))return!1;for(let r=0,a=i.length;r2?h.charCodeAt(c.column-2):0)===92&&u)return!1;if(e.autoClosingOvertype==="auto"){let m=!1;for(let _=0,b=n.length;_t.startsWith(l.open)),a=o.some(l=>t.startsWith(l.close));return!r&&a}static _findAutoClosingPairOpen(e,t,i,n){const o=e.autoClosingPairs.autoClosingPairsOpenByEnd.get(n);if(!o)return null;let r=null;for(const a of o)if(r===null||a.open.length>r.open.length){let l=!0;for(const c of i)if(t.getValueInRange(new D(c.lineNumber,c.column-a.open.length+1,c.lineNumber,c.column))+n!==a.open){l=!1;break}l&&(r=a)}return r}static _findContainedAutoClosingPair(e,t){if(t.open.length<=1)return null;const i=t.close.charAt(t.close.length-1),n=e.autoClosingPairs.autoClosingPairsCloseByEnd.get(i)||[];let o=null;for(const r of n)r.open!==t.open&&t.open.includes(r.open)&&t.close.endsWith(r.close)&&(!o||r.open.length>o.open.length)&&(o=r);return o}static _getAutoClosingPairClose(e,t,i,n,o){const r=ia(n),a=r?e.autoClosingQuotes:e.autoClosingBrackets,l=r?e.shouldAutoCloseBefore.quote:e.shouldAutoCloseBefore.bracket;if(a==="never")return null;for(const m of i)if(!m.isEmpty())return null;const c=i.map(m=>{const _=m.getPosition();return o?{lineNumber:_.lineNumber,beforeColumn:_.column-n.length,afterColumn:_.column}:{lineNumber:_.lineNumber,beforeColumn:_.column,afterColumn:_.column}}),h=this._findAutoClosingPairOpen(e,t,c.map(m=>new A(m.lineNumber,m.beforeColumn)),n);if(!h)return null;const d=this._findContainedAutoClosingPair(e,h),u=d?d.close:"";let f=!0;for(const m of c){const{lineNumber:_,beforeColumn:b,afterColumn:w}=m,C=t.getLineContent(_),v=C.substring(0,b-1),S=C.substring(w-1);if(S.startsWith(u)||(f=!1),S.length>0){const y=S.charAt(0);if(!je._isBeforeClosingBrace(e,S)&&!l(y))return null}if(h.open.length===1&&(n==="'"||n==='"')&&a!=="always"){const y=Ka(e.wordSeparators);if(v.length>0){const I=v.charCodeAt(v.length-1);if(y.get(I)===0)return null}}if(!t.isCheapToTokenize(_))return null;t.forceTokenization(_);const k=t.getLineTokens(_),x=fu(k,b-1);if(!h.shouldAutoClose(x,b-x.firstCharOffset))return null;const L=h.findNeutralCharacter();if(L){const y=t.getTokenTypeIfInsertingCharacter(_,b,L);if(!h.isOK(y))return null}}return f?h.close.substring(0,h.close.length-u.length):h.close}static _runAutoClosingOpenCharType(e,t,i,n,o,r,a){const l=[];for(let c=0,h=n.length;cnew Yt(new D(h.positionLineNumber,h.positionColumn,h.positionLineNumber,h.positionColumn+1),"",!1));return new oi(4,c,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}const l=this._getAutoClosingPairClose(t,i,o,a,!0);return l!==null?this._runAutoClosingOpenCharType(e,t,i,o,a,!0,l):null}static typeWithInterceptors(e,t,i,n,o,r,a){if(!e&&a===` +`){const h=[];for(let d=0,u=o.length;d{const n=t.get(kt).getFocusedCodeEditor();return n&&n.hasTextFocus()?this._runEditorCommand(t,n,i):!1}),e.addImplementation(1e3,"generic-dom-input-textarea",(t,i)=>{const n=document.activeElement;return n&&["input","textarea"].indexOf(n.tagName.toLowerCase())>=0?(this.runDOMCommand(),!0):!1}),e.addImplementation(0,"generic-dom",(t,i)=>{const n=t.get(kt).getActiveCodeEditor();return n?(n.focus(),this._runEditorCommand(t,n,i)):!1})}_runEditorCommand(e,t,i){const n=this.runEditorCommand(e,t,i);return n||!0}}var ct;(function(s){class e extends Qe{constructor(C){super(C),this._minimalReveal=C.minimalReveal,this._inSelectionMode=C.inSelectionMode}runCoreEditorCommand(C,v){C.model.pushStackElement(),C.setCursorStates(v.source,3,[Ot.moveTo(C,C.getPrimaryCursorState(),this._inSelectionMode,v.position,v.viewPosition)])&&C.revealPrimaryCursor(v.source,!0,this._minimalReveal)}}s.MoveTo=q(new e({id:"_moveTo",minimalReveal:!0,inSelectionMode:!1,precondition:void 0})),s.MoveToSelect=q(new e({id:"_moveToSelect",minimalReveal:!1,inSelectionMode:!0,precondition:void 0}));class t extends Qe{runCoreEditorCommand(C,v){C.model.pushStackElement();const S=this._getColumnSelectResult(C,C.getPrimaryCursorState(),C.getCursorColumnSelectData(),v);C.setCursorStates(v.source,3,S.viewStates.map(k=>oe.fromViewState(k))),C.setCursorColumnSelectData({isReal:!0,fromViewLineNumber:S.fromLineNumber,fromViewVisualColumn:S.fromVisualColumn,toViewLineNumber:S.toLineNumber,toViewVisualColumn:S.toVisualColumn}),S.reversed?C.revealTopMostCursor(v.source):C.revealBottomMostCursor(v.source)}}s.ColumnSelect=q(new class extends t{constructor(){super({id:"columnSelect",precondition:void 0})}_getColumnSelectResult(w,C,v,S){const k=w.model.validatePosition(S.position),x=w.coordinatesConverter.validateViewPosition(new A(S.viewPosition.lineNumber,S.viewPosition.column),k),L=S.doColumnSelect?v.fromViewLineNumber:x.lineNumber,y=S.doColumnSelect?v.fromViewVisualColumn:S.mouseColumn-1;return qo.columnSelect(w.cursorConfig,w,L,y,x.lineNumber,S.mouseColumn-1)}}),s.CursorColumnSelectLeft=q(new class extends t{constructor(){super({id:"cursorColumnSelectLeft",precondition:void 0,kbOpts:{weight:fe,kbExpr:H.textInputFocus,primary:3599,linux:{primary:0}}})}_getColumnSelectResult(w,C,v,S){return qo.columnSelectLeft(w.cursorConfig,w,v)}}),s.CursorColumnSelectRight=q(new class extends t{constructor(){super({id:"cursorColumnSelectRight",precondition:void 0,kbOpts:{weight:fe,kbExpr:H.textInputFocus,primary:3601,linux:{primary:0}}})}_getColumnSelectResult(w,C,v,S){return qo.columnSelectRight(w.cursorConfig,w,v)}});class i extends t{constructor(C){super(C),this._isPaged=C.isPaged}_getColumnSelectResult(C,v,S,k){return qo.columnSelectUp(C.cursorConfig,C,S,this._isPaged)}}s.CursorColumnSelectUp=q(new i({isPaged:!1,id:"cursorColumnSelectUp",precondition:void 0,kbOpts:{weight:fe,kbExpr:H.textInputFocus,primary:3600,linux:{primary:0}}})),s.CursorColumnSelectPageUp=q(new i({isPaged:!0,id:"cursorColumnSelectPageUp",precondition:void 0,kbOpts:{weight:fe,kbExpr:H.textInputFocus,primary:3595,linux:{primary:0}}}));class n extends t{constructor(C){super(C),this._isPaged=C.isPaged}_getColumnSelectResult(C,v,S,k){return qo.columnSelectDown(C.cursorConfig,C,S,this._isPaged)}}s.CursorColumnSelectDown=q(new n({isPaged:!1,id:"cursorColumnSelectDown",precondition:void 0,kbOpts:{weight:fe,kbExpr:H.textInputFocus,primary:3602,linux:{primary:0}}})),s.CursorColumnSelectPageDown=q(new n({isPaged:!0,id:"cursorColumnSelectPageDown",precondition:void 0,kbOpts:{weight:fe,kbExpr:H.textInputFocus,primary:3596,linux:{primary:0}}}));class o extends Qe{constructor(){super({id:"cursorMove",precondition:void 0,description:Mu.description})}runCoreEditorCommand(C,v){const S=Mu.parse(v);!S||this._runCursorMove(C,v.source,S)}_runCursorMove(C,v,S){C.model.pushStackElement(),C.setCursorStates(v,3,o._move(C,C.getCursorStates(),S)),C.revealPrimaryCursor(v,!0)}static _move(C,v,S){const k=S.select,x=S.value;switch(S.direction){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return Ot.simpleMove(C,v,S.direction,k,x,S.unit);case 11:case 13:case 12:case 14:return Ot.viewportMove(C,v,S.direction,k,x);default:return null}}}s.CursorMoveImpl=o,s.CursorMove=q(new o);class r extends Qe{constructor(C){super(C),this._staticArgs=C.args}runCoreEditorCommand(C,v){let S=this._staticArgs;this._staticArgs.value===-1&&(S={direction:this._staticArgs.direction,unit:this._staticArgs.unit,select:this._staticArgs.select,value:v.pageSize||C.cursorConfig.pageSize}),C.model.pushStackElement(),C.setCursorStates(v.source,3,Ot.simpleMove(C,C.getCursorStates(),S.direction,S.select,S.value,S.unit)),C.revealPrimaryCursor(v.source,!0)}}s.CursorLeft=q(new r({args:{direction:0,unit:0,select:!1,value:1},id:"cursorLeft",precondition:void 0,kbOpts:{weight:fe,kbExpr:H.textInputFocus,primary:15,mac:{primary:15,secondary:[288]}}})),s.CursorLeftSelect=q(new r({args:{direction:0,unit:0,select:!0,value:1},id:"cursorLeftSelect",precondition:void 0,kbOpts:{weight:fe,kbExpr:H.textInputFocus,primary:1039}})),s.CursorRight=q(new r({args:{direction:1,unit:0,select:!1,value:1},id:"cursorRight",precondition:void 0,kbOpts:{weight:fe,kbExpr:H.textInputFocus,primary:17,mac:{primary:17,secondary:[292]}}})),s.CursorRightSelect=q(new r({args:{direction:1,unit:0,select:!0,value:1},id:"cursorRightSelect",precondition:void 0,kbOpts:{weight:fe,kbExpr:H.textInputFocus,primary:1041}})),s.CursorUp=q(new r({args:{direction:2,unit:2,select:!1,value:1},id:"cursorUp",precondition:void 0,kbOpts:{weight:fe,kbExpr:H.textInputFocus,primary:16,mac:{primary:16,secondary:[302]}}})),s.CursorUpSelect=q(new r({args:{direction:2,unit:2,select:!0,value:1},id:"cursorUpSelect",precondition:void 0,kbOpts:{weight:fe,kbExpr:H.textInputFocus,primary:1040,secondary:[3088],mac:{primary:1040},linux:{primary:1040}}})),s.CursorPageUp=q(new r({args:{direction:2,unit:2,select:!1,value:-1},id:"cursorPageUp",precondition:void 0,kbOpts:{weight:fe,kbExpr:H.textInputFocus,primary:11}})),s.CursorPageUpSelect=q(new r({args:{direction:2,unit:2,select:!0,value:-1},id:"cursorPageUpSelect",precondition:void 0,kbOpts:{weight:fe,kbExpr:H.textInputFocus,primary:1035}})),s.CursorDown=q(new r({args:{direction:3,unit:2,select:!1,value:1},id:"cursorDown",precondition:void 0,kbOpts:{weight:fe,kbExpr:H.textInputFocus,primary:18,mac:{primary:18,secondary:[300]}}})),s.CursorDownSelect=q(new r({args:{direction:3,unit:2,select:!0,value:1},id:"cursorDownSelect",precondition:void 0,kbOpts:{weight:fe,kbExpr:H.textInputFocus,primary:1042,secondary:[3090],mac:{primary:1042},linux:{primary:1042}}})),s.CursorPageDown=q(new r({args:{direction:3,unit:2,select:!1,value:-1},id:"cursorPageDown",precondition:void 0,kbOpts:{weight:fe,kbExpr:H.textInputFocus,primary:12}})),s.CursorPageDownSelect=q(new r({args:{direction:3,unit:2,select:!0,value:-1},id:"cursorPageDownSelect",precondition:void 0,kbOpts:{weight:fe,kbExpr:H.textInputFocus,primary:1036}})),s.CreateCursor=q(new class extends Qe{constructor(){super({id:"createCursor",precondition:void 0})}runCoreEditorCommand(w,C){let v;C.wholeLine?v=Ot.line(w,w.getPrimaryCursorState(),!1,C.position,C.viewPosition):v=Ot.moveTo(w,w.getPrimaryCursorState(),!1,C.position,C.viewPosition);const S=w.getCursorStates();if(S.length>1){const k=v.modelState?v.modelState.position:null,x=v.viewState?v.viewState.position:null;for(let L=0,y=S.length;Lx&&(k=x);const L=new D(k,1,k,w.model.getLineMaxColumn(k));let y=0;if(v.at)switch(v.at){case ga.RawAtArgument.Top:y=3;break;case ga.RawAtArgument.Center:y=1;break;case ga.RawAtArgument.Bottom:y=4;break}const I=w.coordinatesConverter.convertModelRangeToViewRange(L);w.revealRange(C.source,!1,I,y,0)}}),s.SelectAll=new class extends S_{constructor(){super(K4)}runDOMCommand(){Oi&&(document.activeElement.focus(),document.activeElement.select()),document.execCommand("selectAll")}runEditorCommand(w,C,v){const S=C._getViewModel();!S||this.runCoreEditorCommand(S,v)}runCoreEditorCommand(w,C){w.model.pushStackElement(),w.setCursorStates("keyboard",3,[Ot.selectAll(w,w.getPrimaryCursorState())])}},s.SetSelection=q(new class extends Qe{constructor(){super({id:"setSelection",precondition:void 0})}runCoreEditorCommand(w,C){w.model.pushStackElement(),w.setCursorStates(C.source,3,[oe.fromModelSelection(C.selection)])}})})(ct||(ct={}));const BM=Oe.and(H.textInputFocus,H.columnSelection);function Ll(s,e){wl.registerKeybindingRule({id:s,primary:e,when:BM,weight:fe+1})}Ll(ct.CursorColumnSelectLeft.id,1039);Ll(ct.CursorColumnSelectRight.id,1041);Ll(ct.CursorColumnSelectUp.id,1040);Ll(ct.CursorColumnSelectPageUp.id,1035);Ll(ct.CursorColumnSelectDown.id,1042);Ll(ct.CursorColumnSelectPageDown.id,1036);function fw(s){return s.register(),s}var gw;(function(s){class e extends Fr{runEditorCommand(i,n,o){const r=n._getViewModel();!r||this.runCoreEditingCommand(n,r,o||{})}}s.CoreEditingCommand=e,s.LineBreakInsert=q(new class extends e{constructor(){super({id:"lineBreakInsert",precondition:H.writable,kbOpts:{weight:fe,kbExpr:H.textInputFocus,primary:0,mac:{primary:301}}})}runCoreEditingCommand(t,i,n){t.pushUndoStop(),t.executeCommands(this.id,je.lineBreakInsert(i.cursorConfig,i.model,i.getCursorStates().map(o=>o.modelState.selection)))}}),s.Outdent=q(new class extends e{constructor(){super({id:"outdent",precondition:H.writable,kbOpts:{weight:fe,kbExpr:Oe.and(H.editorTextFocus,H.tabDoesNotMoveFocus),primary:1026}})}runCoreEditingCommand(t,i,n){t.pushUndoStop(),t.executeCommands(this.id,je.outdent(i.cursorConfig,i.model,i.getCursorStates().map(o=>o.modelState.selection))),t.pushUndoStop()}}),s.Tab=q(new class extends e{constructor(){super({id:"tab",precondition:H.writable,kbOpts:{weight:fe,kbExpr:Oe.and(H.editorTextFocus,H.tabDoesNotMoveFocus),primary:2}})}runCoreEditingCommand(t,i,n){t.pushUndoStop(),t.executeCommands(this.id,je.tab(i.cursorConfig,i.model,i.getCursorStates().map(o=>o.modelState.selection))),t.pushUndoStop()}}),s.DeleteLeft=q(new class extends e{constructor(){super({id:"deleteLeft",precondition:void 0,kbOpts:{weight:fe,kbExpr:H.textInputFocus,primary:1,secondary:[1025],mac:{primary:1,secondary:[1025,294,257]}}})}runCoreEditingCommand(t,i,n){const[o,r]=xr.deleteLeft(i.getPrevEditOperationType(),i.cursorConfig,i.model,i.getCursorStates().map(a=>a.modelState.selection),i.getCursorAutoClosedCharacters());o&&t.pushUndoStop(),t.executeCommands(this.id,r),i.setPrevEditOperationType(2)}}),s.DeleteRight=q(new class extends e{constructor(){super({id:"deleteRight",precondition:void 0,kbOpts:{weight:fe,kbExpr:H.textInputFocus,primary:20,mac:{primary:20,secondary:[290,276]}}})}runCoreEditingCommand(t,i,n){const[o,r]=xr.deleteRight(i.getPrevEditOperationType(),i.cursorConfig,i.model,i.getCursorStates().map(a=>a.modelState.selection));o&&t.pushUndoStop(),t.executeCommands(this.id,r),i.setPrevEditOperationType(3)}}),s.Undo=new class extends S_{constructor(){super(IL)}runDOMCommand(){document.execCommand("undo")}runEditorCommand(t,i,n){if(!(!i.hasModel()||i.getOption(81)===!0))return i.getModel().undo()}},s.Redo=new class extends S_{constructor(){super(EL)}runDOMCommand(){document.execCommand("redo")}runEditorCommand(t,i,n){if(!(!i.hasModel()||i.getOption(81)===!0))return i.getModel().redo()}}})(gw||(gw={}));class mw extends Vf{constructor(e,t,i){super({id:e,precondition:void 0,description:i}),this._handlerId=t}runCommand(e,t){const i=e.get(kt).getFocusedCodeEditor();!i||i.trigger("keyboard",this._handlerId,t)}}function Br(s,e){fw(new mw("default:"+s,s)),fw(new mw(s,s,e))}Br("type",{description:"Type",args:[{name:"args",schema:{type:"object",required:["text"],properties:{text:{type:"string"}}}}]});Br("replacePreviousChar");Br("compositionType");Br("compositionStart");Br("compositionEnd");Br("paste");Br("cut");class VM{constructor(e,t,i,n){this.configuration=e,this.viewModel=t,this.userInputEvents=i,this.commandDelegate=n}paste(e,t,i,n){this.commandDelegate.paste(e,t,i,n)}type(e){this.commandDelegate.type(e)}compositionType(e,t,i,n){this.commandDelegate.compositionType(e,t,i,n)}compositionStart(){this.commandDelegate.startComposition()}compositionEnd(){this.commandDelegate.endComposition()}cut(){this.commandDelegate.cut()}setSelection(e){ct.SetSelection.runCoreEditorCommand(this.viewModel,{source:"keyboard",selection:e})}_validateViewColumn(e){const t=this.viewModel.getLineMinColumn(e.lineNumber);return e.column=4?this._selectAll():e.mouseDownCount===3?this._hasMulticursorModifier(e)?e.inSelectionMode?this._lastCursorLineSelectDrag(e.position):this._lastCursorLineSelect(e.position):e.inSelectionMode?this._lineSelectDrag(e.position):this._lineSelect(e.position):e.mouseDownCount===2?e.onInjectedText||(this._hasMulticursorModifier(e)?this._lastCursorWordSelect(e.position):e.inSelectionMode?this._wordSelectDrag(e.position):this._wordSelect(e.position)):this._hasMulticursorModifier(e)?this._hasNonMulticursorModifier(e)||(e.shiftKey?this._columnSelect(e.position,e.mouseColumn,!0):e.inSelectionMode?this._lastCursorMoveToSelect(e.position):this._createCursor(e.position,!1)):e.inSelectionMode?e.altKey?this._columnSelect(e.position,e.mouseColumn,!0):n?this._columnSelect(e.position,e.mouseColumn,!0):this._moveToSelect(e.position):this.moveTo(e.position)}_usualArgs(e){return e=this._validateViewColumn(e),{source:"mouse",position:this._convertViewToModelPosition(e),viewPosition:e}}moveTo(e){ct.MoveTo.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}_moveToSelect(e){ct.MoveToSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}_columnSelect(e,t,i){e=this._validateViewColumn(e),ct.ColumnSelect.runCoreEditorCommand(this.viewModel,{source:"mouse",position:this._convertViewToModelPosition(e),viewPosition:e,mouseColumn:t,doColumnSelect:i})}_createCursor(e,t){e=this._validateViewColumn(e),ct.CreateCursor.runCoreEditorCommand(this.viewModel,{source:"mouse",position:this._convertViewToModelPosition(e),viewPosition:e,wholeLine:t})}_lastCursorMoveToSelect(e){ct.LastCursorMoveToSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}_wordSelect(e){ct.WordSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}_wordSelectDrag(e){ct.WordSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}_lastCursorWordSelect(e){ct.LastCursorWordSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}_lineSelect(e){ct.LineSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}_lineSelectDrag(e){ct.LineSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}_lastCursorLineSelect(e){ct.LastCursorLineSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}_lastCursorLineSelectDrag(e){ct.LastCursorLineSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}_selectAll(){ct.SelectAll.runCoreEditorCommand(this.viewModel,{source:"mouse"})}_convertViewToModelPosition(e){return this.viewModel.coordinatesConverter.convertViewPositionToModelPosition(e)}emitKeyDown(e){this.userInputEvents.emitKeyDown(e)}emitKeyUp(e){this.userInputEvents.emitKeyUp(e)}emitContextMenu(e){this.userInputEvents.emitContextMenu(e)}emitMouseMove(e){this.userInputEvents.emitMouseMove(e)}emitMouseLeave(e){this.userInputEvents.emitMouseLeave(e)}emitMouseUp(e){this.userInputEvents.emitMouseUp(e)}emitMouseDown(e){this.userInputEvents.emitMouseDown(e)}emitMouseDrag(e){this.userInputEvents.emitMouseDrag(e)}emitMouseDrop(e){this.userInputEvents.emitMouseDrop(e)}emitMouseDropCanceled(){this.userInputEvents.emitMouseDropCanceled()}emitMouseWheel(e){this.userInputEvents.emitMouseWheel(e)}}class qf{constructor(e){this.onKeyDown=null,this.onKeyUp=null,this.onContextMenu=null,this.onMouseMove=null,this.onMouseLeave=null,this.onMouseDown=null,this.onMouseUp=null,this.onMouseDrag=null,this.onMouseDrop=null,this.onMouseDropCanceled=null,this.onMouseWheel=null,this._coordinatesConverter=e}emitKeyDown(e){this.onKeyDown&&this.onKeyDown(e)}emitKeyUp(e){this.onKeyUp&&this.onKeyUp(e)}emitContextMenu(e){this.onContextMenu&&this.onContextMenu(this._convertViewToModelMouseEvent(e))}emitMouseMove(e){this.onMouseMove&&this.onMouseMove(this._convertViewToModelMouseEvent(e))}emitMouseLeave(e){this.onMouseLeave&&this.onMouseLeave(this._convertViewToModelMouseEvent(e))}emitMouseDown(e){this.onMouseDown&&this.onMouseDown(this._convertViewToModelMouseEvent(e))}emitMouseUp(e){this.onMouseUp&&this.onMouseUp(this._convertViewToModelMouseEvent(e))}emitMouseDrag(e){this.onMouseDrag&&this.onMouseDrag(this._convertViewToModelMouseEvent(e))}emitMouseDrop(e){this.onMouseDrop&&this.onMouseDrop(this._convertViewToModelMouseEvent(e))}emitMouseDropCanceled(){this.onMouseDropCanceled&&this.onMouseDropCanceled()}emitMouseWheel(e){this.onMouseWheel&&this.onMouseWheel(e)}_convertViewToModelMouseEvent(e){return e.target?{event:e.event,target:this._convertViewToModelMouseTarget(e.target)}:e}_convertViewToModelMouseTarget(e){return qf.convertViewToModelMouseTarget(e,this._coordinatesConverter)}static convertViewToModelMouseTarget(e,t){const i=Object.assign({},e);return i.position&&(i.position=t.convertViewPositionToModelPosition(i.position)),i.range&&(i.range=t.convertViewRangeToModelRange(i.range)),i}}var Jg;class uk{constructor(e){this._createLine=e,this._set(1,[])}flush(){this._set(1,[])}_set(e,t){this._lines=t,this._rendLineNumberStart=e}_get(){return{rendLineNumberStart:this._rendLineNumberStart,lines:this._lines}}getStartLineNumber(){return this._rendLineNumberStart}getEndLineNumber(){return this._rendLineNumberStart+this._lines.length-1}getCount(){return this._lines.length}getLine(e){const t=e-this._rendLineNumberStart;if(t<0||t>=this._lines.length)throw new Error("Illegal value for lineNumber");return this._lines[t]}onLinesDeleted(e,t){if(this.getCount()===0)return null;const i=this.getStartLineNumber(),n=this.getEndLineNumber();if(tn)return null;let o=0,r=0;for(let l=i;l<=n;l++){const c=l-this._rendLineNumberStart;e<=l&&l<=t&&(r===0?(o=c,r=1):r++)}if(e=i&&r<=n&&(this._lines[r-this._rendLineNumberStart].onContentChanged(),o=!0);return o}onLinesInserted(e,t){if(this.getCount()===0)return null;const i=t-e+1,n=this.getStartLineNumber(),o=this.getEndLineNumber();if(e<=n)return this._rendLineNumberStart+=i,null;if(e>o)return null;if(i+e>o)return this._lines.splice(e-this._rendLineNumberStart,o-e+1);const r=[];for(let d=0;di)continue;const l=Math.max(t,a.fromLineNumber),c=Math.min(i,a.toLineNumber);for(let h=l;h<=c;h++){const d=h-this._rendLineNumberStart;this._lines[d].onTokensChanged(),n=!0}}return n}}class fk{constructor(e){this._host=e,this.domNode=this._createDomNode(),this._linesCollection=new uk(()=>this._host.createVisibleLine())}_createDomNode(){const e=ue(document.createElement("div"));return e.setClassName("view-layer"),e.setPosition("absolute"),e.domNode.setAttribute("role","presentation"),e.domNode.setAttribute("aria-hidden","true"),e}onConfigurationChanged(e){return!!e.hasChanged(131)}onFlushed(e){return this._linesCollection.flush(),!0}onLinesChanged(e){return this._linesCollection.onLinesChanged(e.fromLineNumber,e.toLineNumber)}onLinesDeleted(e){const t=this._linesCollection.onLinesDeleted(e.fromLineNumber,e.toLineNumber);if(t)for(let i=0,n=t.length;it){const r=t,a=Math.min(i,o.rendLineNumberStart-1);r<=a&&(this._insertLinesBefore(o,r,a,n,t),o.linesLength+=a-r+1)}else if(o.rendLineNumberStart0&&(this._removeLinesBefore(o,r),o.linesLength-=r)}if(o.rendLineNumberStart=t,o.rendLineNumberStart+o.linesLength-1i){const r=Math.max(0,i-o.rendLineNumberStart+1),l=o.linesLength-1-r+1;l>0&&(this._removeLinesAfter(o,l),o.linesLength-=l)}return this._finishRendering(o,!1,n),o}_renderUntouchedLines(e,t,i,n,o){const r=e.rendLineNumberStart,a=e.lines;for(let l=t;l<=i;l++){const c=r+l;a[l].layoutLine(c,n[c-o])}}_insertLinesBefore(e,t,i,n,o){const r=[];let a=0;for(let l=t;l<=i;l++)r[a++]=this.host.createVisibleLine();e.lines=r.concat(e.lines)}_removeLinesBefore(e,t){for(let i=0;i=0;a--){const l=e.lines[a];n[a]&&(l.setDomNode(r),r=r.previousSibling)}}_finishRenderingInvalidLines(e,t,i){const n=document.createElement("div");xs._ttPolicy&&(t=xs._ttPolicy.createHTML(t)),n.innerHTML=t;for(let o=0;os});xs._sb=ja(1e5);class gk extends Wi{constructor(e){super(e),this._visibleLines=new fk(this),this.domNode=this._visibleLines.domNode,this._dynamicOverlays=[],this._isFocused=!1,this.domNode.setClassName("view-overlays")}shouldRender(){if(super.shouldRender())return!0;for(let e=0,t=this._dynamicOverlays.length;ei.shouldRender());for(let i=0,n=t.length;i'),n.appendASCIIString(o),n.appendASCIIString(""),!0)}layoutLine(e,t){this._domNode&&(this._domNode.setTop(t),this._domNode.setHeight(this._lineHeight))}}class HM extends gk{constructor(e){super(e);const i=this._context.configuration.options.get(131);this._contentWidth=i.contentWidth,this.domNode.setHeight(0)}onConfigurationChanged(e){const i=this._context.configuration.options.get(131);return this._contentWidth=i.contentWidth,super.onConfigurationChanged(e)||!0}onScrollChanged(e){return super.onScrollChanged(e)||e.scrollWidthChanged}_viewOverlaysRender(e){super._viewOverlaysRender(e),this.domNode.setWidth(Math.max(e.scrollWidth,this._contentWidth))}}class zM extends gk{constructor(e){super(e);const t=this._context.configuration.options,i=t.get(131);this._contentLeft=i.contentLeft,this.domNode.setClassName("margin-view-overlays"),this.domNode.setWidth(1),ii(this.domNode,t.get(44))}onConfigurationChanged(e){const t=this._context.configuration.options;ii(this.domNode,t.get(44));const i=t.get(131);return this._contentLeft=i.contentLeft,super.onConfigurationChanged(e)||!0}onScrollChanged(e){return super.onScrollChanged(e)||e.scrollHeightChanged}_viewOverlaysRender(e){super._viewOverlaysRender(e);const t=Math.min(e.scrollHeight,1e6);this.domNode.setHeight(t),this.domNode.setWidth(this._contentLeft)}}class Pl{constructor(e,t){this._coordinateBrand=void 0,this.top=e,this.left=t}}class UM extends Wi{constructor(e,t){super(e),this._viewDomNode=t,this._widgets={},this.domNode=ue(document.createElement("div")),es.write(this.domNode,1),this.domNode.setClassName("contentWidgets"),this.domNode.setPosition("absolute"),this.domNode.setTop(0),this.overflowingContentWidgetsDomNode=ue(document.createElement("div")),es.write(this.overflowingContentWidgetsDomNode,2),this.overflowingContentWidgetsDomNode.setClassName("overflowingContentWidgets")}dispose(){super.dispose(),this._widgets={}}onConfigurationChanged(e){const t=Object.keys(this._widgets);for(const i of t)this._widgets[i].onConfigurationChanged(e);return!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLineMappingChanged(e){const t=Object.keys(this._widgets);for(const i of t)this._widgets[i].onLineMappingChanged(e);return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return!0}onZonesChanged(e){return!0}addWidget(e){const t=new $M(this._context,this._viewDomNode,e);this._widgets[t.id]=t,t.allowEditorOverflow?this.overflowingContentWidgetsDomNode.appendChild(t.domNode):this.domNode.appendChild(t.domNode),this.setShouldRender()}setWidgetPosition(e,t,i){this._widgets[e.getId()].setPosition(t,i),this.setShouldRender()}removeWidget(e){const t=e.getId();if(this._widgets.hasOwnProperty(t)){const i=this._widgets[t];delete this._widgets[t];const n=i.domNode.domNode;n.parentNode.removeChild(n),n.removeAttribute("monaco-visible-content-widget"),this.setShouldRender()}}shouldSuppressMouseDownOnWidget(e){return this._widgets.hasOwnProperty(e)?this._widgets[e].suppressMouseDown:!1}onBeforeRender(e){const t=Object.keys(this._widgets);for(const i of t)this._widgets[i].onBeforeRender(e)}prepareRender(e){const t=Object.keys(this._widgets);for(const i of t)this._widgets[i].prepareRender(e)}render(e){const t=Object.keys(this._widgets);for(const i of t)this._widgets[i].render(e)}}class $M{constructor(e,t,i){this._context=e,this._viewDomNode=t,this._actual=i,this.domNode=ue(this._actual.getDomNode()),this.id=this._actual.getId(),this.allowEditorOverflow=this._actual.allowEditorOverflow||!1,this.suppressMouseDown=this._actual.suppressMouseDown||!1;const n=this._context.configuration.options,o=n.get(131);this._fixedOverflowWidgets=n.get(36),this._contentWidth=o.contentWidth,this._contentLeft=o.contentLeft,this._lineHeight=n.get(59),this._range=null,this._viewRange=null,this._preference=[],this._cachedDomNodeOffsetWidth=-1,this._cachedDomNodeOffsetHeight=-1,this._maxWidth=this._getMaxWidth(),this._isVisible=!1,this._renderData=null,this.domNode.setPosition(this._fixedOverflowWidgets&&this.allowEditorOverflow?"fixed":"absolute"),this.domNode.setDisplay("none"),this.domNode.setVisibility("hidden"),this.domNode.setAttribute("widgetId",this.id),this.domNode.setMaxWidth(this._maxWidth)}onConfigurationChanged(e){const t=this._context.configuration.options;if(this._lineHeight=t.get(59),e.hasChanged(131)){const i=t.get(131);this._contentLeft=i.contentLeft,this._contentWidth=i.contentWidth,this._maxWidth=this._getMaxWidth()}}onLineMappingChanged(e){this._setPosition(this._range)}_setPosition(e){if(this._range=e,this._viewRange=null,this._range){const t=this._context.viewModel.model.validateRange(this._range);(this._context.viewModel.coordinatesConverter.modelPositionIsVisible(t.getStartPosition())||this._context.viewModel.coordinatesConverter.modelPositionIsVisible(t.getEndPosition()))&&(this._viewRange=this._context.viewModel.coordinatesConverter.convertModelRangeToViewRange(t))}}_getMaxWidth(){return this.allowEditorOverflow?window.innerWidth||document.documentElement.offsetWidth||document.body.offsetWidth:this._contentWidth}setPosition(e,t){this._setPosition(e),this._preference=t,this._viewRange&&this._preference&&this._preference.length>0?this.domNode.setDisplay("block"):this.domNode.setDisplay("none"),this._cachedDomNodeOffsetWidth=-1,this._cachedDomNodeOffsetHeight=-1}_layoutBoxInViewport(e,t,i,n,o){const r=e.top,a=r,l=t.top+this._lineHeight,c=o.viewportHeight-l,h=r-n,d=a>=n,u=l,f=c>=n;let m=e.left,_=t.left;return m+i>o.scrollLeft+o.viewportWidth&&(m=o.scrollLeft+o.viewportWidth-i),_+i>o.scrollLeft+o.viewportWidth&&(_=o.scrollLeft+o.viewportWidth-i),mr){const l=a-(r-n);a-=l,i-=l}if(a=b,v=h+n<=d.height-w;return this._fixedOverflowWidgets?{fitsAbove:C,aboveTop:Math.max(c,b),aboveLeft:f,fitsBelow:v,belowTop:h,belowLeft:_}:{fitsAbove:C,aboveTop:r,aboveLeft:u,fitsBelow:v,belowTop:a,belowLeft:m}}_prepareRenderWidgetAtExactPositionOverflowing(e){return new Pl(e.top,e.left+this._contentLeft)}_getTopAndBottomLeft(e){if(!this._viewRange)return[null,null];const t=e.linesVisibleRangesForRange(this._viewRange,!1);if(!t||t.length===0)return[null,null];let i=t[0],n=t[0];for(const d of t)d.lineNumbern.lineNumber&&(n=d);let o=1073741824;for(const d of i.ranges)d.lefte.endLineNumber||this.domNode.setMaxWidth(this._maxWidth)}prepareRender(e){this._renderData=this._prepareRenderWidget(e)}render(e){if(!this._renderData){this._isVisible&&(this.domNode.removeAttribute("monaco-visible-content-widget"),this._isVisible=!1,this.domNode.setVisibility("hidden")),typeof this._actual.afterRender=="function"&&em(this._actual.afterRender,this._actual,null);return}this.allowEditorOverflow?(this.domNode.setTop(this._renderData.coordinate.top),this.domNode.setLeft(this._renderData.coordinate.left)):(this.domNode.setTop(this._renderData.coordinate.top+e.scrollTop-e.bigNumbersDelta),this.domNode.setLeft(this._renderData.coordinate.left)),this._isVisible||(this.domNode.setVisibility("inherit"),this.domNode.setAttribute("monaco-visible-content-widget","true"),this._isVisible=!0),typeof this._actual.afterRender=="function"&&em(this._actual.afterRender,this._actual,this._renderData.position)}}function em(s,e,...t){try{return s.call(e,...t)}catch{return null}}class mk extends yl{constructor(e){super(),this._context=e;const t=this._context.configuration.options,i=t.get(131);this._lineHeight=t.get(59),this._renderLineHighlight=t.get(85),this._renderLineHighlightOnlyWhenFocus=t.get(86),this._contentLeft=i.contentLeft,this._contentWidth=i.contentWidth,this._selectionIsEmpty=!0,this._focused=!1,this._cursorLineNumbers=[1],this._selections=[new ce(1,1,1,1)],this._renderData=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}_readFromSelections(){let e=!1;const t=this._selections.map(n=>n.positionLineNumber);t.sort((n,o)=>n-o),Kn(this._cursorLineNumbers,t)||(this._cursorLineNumbers=t,e=!0);const i=this._selections.every(n=>n.isEmpty());return this._selectionIsEmpty!==i&&(this._selectionIsEmpty=i,e=!0),e}onThemeChanged(e){return this._readFromSelections()}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(131);return this._lineHeight=t.get(59),this._renderLineHighlight=t.get(85),this._renderLineHighlightOnlyWhenFocus=t.get(86),this._contentLeft=i.contentLeft,this._contentWidth=i.contentWidth,!0}onCursorStateChanged(e){return this._selections=e.selections,this._readFromSelections()}onFlushed(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollWidthChanged||e.scrollTopChanged}onZonesChanged(e){return!0}onFocusChanged(e){return this._renderLineHighlightOnlyWhenFocus?(this._focused=e.isFocused,!0):!1}prepareRender(e){if(!this._shouldRenderThis()){this._renderData=null;return}const t=this._renderOne(e),i=e.visibleRange.startLineNumber,n=e.visibleRange.endLineNumber,o=this._cursorLineNumbers.length;let r=0;const a=[];for(let l=i;l<=n;l++){const c=l-i;for(;r=this._renderData.length?"":this._renderData[i]}_shouldRenderInMargin(){return(this._renderLineHighlight==="gutter"||this._renderLineHighlight==="all")&&(!this._renderLineHighlightOnlyWhenFocus||this._focused)}_shouldRenderInContent(){return(this._renderLineHighlight==="line"||this._renderLineHighlight==="all")&&this._selectionIsEmpty&&(!this._renderLineHighlightOnlyWhenFocus||this._focused)}}class jM extends mk{_renderOne(e){return`
    `}_shouldRenderThis(){return this._shouldRenderInContent()}_shouldRenderOther(){return this._shouldRenderInMargin()}}class KM extends mk{_renderOne(e){return`
    `}_shouldRenderThis(){return!0}_shouldRenderOther(){return this._shouldRenderInContent()}}ni((s,e)=>{const t=s.getColor(J5);if(t&&(e.addRule(`.monaco-editor .view-overlays .current-line { background-color: ${t}; }`),e.addRule(`.monaco-editor .margin-view-overlays .current-line-margin { background-color: ${t}; border: none; }`)),!t||t.isTransparent()||s.defines(hw)){const i=s.getColor(hw);i&&(e.addRule(`.monaco-editor .view-overlays .current-line { border: 2px solid ${i}; }`),e.addRule(`.monaco-editor .margin-view-overlays .current-line-margin { border: 2px solid ${i}; }`),s.type==="hc"&&(e.addRule(".monaco-editor .view-overlays .current-line { border-width: 1px; }"),e.addRule(".monaco-editor .margin-view-overlays .current-line-margin { border-width: 1px; }")))}});class qM extends yl{constructor(e){super(),this._context=e;const t=this._context.configuration.options;this._lineHeight=t.get(59),this._typicalHalfwidthCharacterWidth=t.get(44).typicalHalfwidthCharacterWidth,this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options;return this._lineHeight=t.get(59),this._typicalHalfwidthCharacterWidth=t.get(44).typicalHalfwidthCharacterWidth,!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged||e.scrollWidthChanged}onZonesChanged(e){return!0}prepareRender(e){const t=e.getDecorationsInViewport();let i=[],n=0;for(let l=0,c=t.length;l{if(l.options.zIndexc.options.zIndex)return 1;const h=l.options.className,d=c.options.className;return hd?1:D.compareRangesUsingStarts(l.range,c.range)});const o=e.visibleRange.startLineNumber,r=e.visibleRange.endLineNumber,a=[];for(let l=o;l<=r;l++){const c=l-o;a[c]=""}this._renderWholeLineDecorations(e,i,a),this._renderNormalDecorations(e,i,a),this._renderResult=a}_renderWholeLineDecorations(e,t,i){const n=String(this._lineHeight),o=e.visibleRange.startLineNumber,r=e.visibleRange.endLineNumber;for(let a=0,l=t.length;a',d=Math.max(c.range.startLineNumber,o),u=Math.min(c.range.endLineNumber,r);for(let f=d;f<=u;f++){const m=f-o;i[m]+=h}}}_renderNormalDecorations(e,t,i){const n=String(this._lineHeight),o=e.visibleRange.startLineNumber;let r=null,a=!1,l=null;for(let c=0,h=t.length;c';a[u]+=b}}}render(e,t){if(!this._renderResult)return"";const i=t-e;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}}class rs extends W{onclick(e,t){this._register(V(e,Y.CLICK,i=>t(new Ji(i))))}onmousedown(e,t){this._register(V(e,Y.MOUSE_DOWN,i=>t(new Ji(i))))}onmouseover(e,t){this._register(V(e,Y.MOUSE_OVER,i=>t(new Ji(i))))}onnonbubblingmouseout(e,t){this._register(y0(e,i=>t(new Ji(i))))}onkeydown(e,t){this._register(V(e,Y.KEY_DOWN,i=>t(new He(i))))}onkeyup(e,t){this._register(V(e,Y.KEY_UP,i=>t(new He(i))))}oninput(e,t){this._register(V(e,Y.INPUT,t))}onblur(e,t){this._register(V(e,Y.BLUR,t))}onfocus(e,t){this._register(V(e,Y.FOCUS,t))}ignoreGesture(e){Se.ignoreTarget(e)}}const el=11;class GM extends rs{constructor(e){super(),this._onActivate=e.onActivate,this.bgDomNode=document.createElement("div"),this.bgDomNode.className="arrow-background",this.bgDomNode.style.position="absolute",this.bgDomNode.style.width=e.bgWidth+"px",this.bgDomNode.style.height=e.bgHeight+"px",typeof e.top!="undefined"&&(this.bgDomNode.style.top="0px"),typeof e.left!="undefined"&&(this.bgDomNode.style.left="0px"),typeof e.bottom!="undefined"&&(this.bgDomNode.style.bottom="0px"),typeof e.right!="undefined"&&(this.bgDomNode.style.right="0px"),this.domNode=document.createElement("div"),this.domNode.className=e.className,this.domNode.classList.add(...e.icon.classNamesArray),this.domNode.style.position="absolute",this.domNode.style.width=el+"px",this.domNode.style.height=el+"px",typeof e.top!="undefined"&&(this.domNode.style.top=e.top+"px"),typeof e.left!="undefined"&&(this.domNode.style.left=e.left+"px"),typeof e.bottom!="undefined"&&(this.domNode.style.bottom=e.bottom+"px"),typeof e.right!="undefined"&&(this.domNode.style.right=e.right+"px"),this._mouseMoveMonitor=this._register(new Wf),this.onmousedown(this.bgDomNode,t=>this._arrowMouseDown(t)),this.onmousedown(this.domNode,t=>this._arrowMouseDown(t)),this._mousedownRepeatTimer=this._register(new vh),this._mousedownScheduleRepeatTimer=this._register(new os)}_arrowMouseDown(e){const t=()=>{this._mousedownRepeatTimer.cancelAndSet(()=>this._onActivate(),41.666666666666664)};this._onActivate(),this._mousedownRepeatTimer.cancel(),this._mousedownScheduleRepeatTimer.cancelAndSet(t,200),this._mouseMoveMonitor.startMonitoring(e.target,e.buttons,M0,i=>{},()=>{this._mousedownRepeatTimer.cancel(),this._mousedownScheduleRepeatTimer.cancel()}),e.preventDefault()}}class ZM extends W{constructor(e,t,i){super(),this._visibility=e,this._visibleClassName=t,this._invisibleClassName=i,this._domNode=null,this._isVisible=!1,this._isNeeded=!1,this._rawShouldBeVisible=!1,this._shouldBeVisible=!1,this._revealTimer=this._register(new os)}setVisibility(e){this._visibility!==e&&(this._visibility=e,this._updateShouldBeVisible())}setShouldBeVisible(e){this._rawShouldBeVisible=e,this._updateShouldBeVisible()}_applyVisibilitySetting(){return this._visibility===2?!1:this._visibility===3?!0:this._rawShouldBeVisible}_updateShouldBeVisible(){const e=this._applyVisibilitySetting();this._shouldBeVisible!==e&&(this._shouldBeVisible=e,this.ensureVisibility())}setIsNeeded(e){this._isNeeded!==e&&(this._isNeeded=e,this.ensureVisibility())}setDomNode(e){this._domNode=e,this._domNode.setClassName(this._invisibleClassName),this.setShouldBeVisible(!1)}ensureVisibility(){if(!this._isNeeded){this._hide(!1);return}this._shouldBeVisible?this._reveal():this._hide(!0)}_reveal(){this._isVisible||(this._isVisible=!0,this._revealTimer.setIfNotSet(()=>{this._domNode&&this._domNode.setClassName(this._visibleClassName)},0))}_hide(e){this._revealTimer.cancel(),this._isVisible&&(this._isVisible=!1,this._domNode&&this._domNode.setClassName(this._invisibleClassName+(e?" fade":"")))}}const YM=140;class pk extends rs{constructor(e){super(),this._lazyRender=e.lazyRender,this._host=e.host,this._scrollable=e.scrollable,this._scrollByPage=e.scrollByPage,this._scrollbarState=e.scrollbarState,this._visibilityController=this._register(new ZM(e.visibility,"visible scrollbar "+e.extraScrollbarClassName,"invisible scrollbar "+e.extraScrollbarClassName)),this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._mouseMoveMonitor=this._register(new Wf),this._shouldRender=!0,this.domNode=ue(document.createElement("div")),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this._visibilityController.setDomNode(this.domNode),this.domNode.setPosition("absolute"),this.onmousedown(this.domNode.domNode,t=>this._domNodeMouseDown(t))}_createArrow(e){const t=this._register(new GM(e));this.domNode.domNode.appendChild(t.bgDomNode),this.domNode.domNode.appendChild(t.domNode)}_createSlider(e,t,i,n){this.slider=ue(document.createElement("div")),this.slider.setClassName("slider"),this.slider.setPosition("absolute"),this.slider.setTop(e),this.slider.setLeft(t),typeof i=="number"&&this.slider.setWidth(i),typeof n=="number"&&this.slider.setHeight(n),this.slider.setLayerHinting(!0),this.slider.setContain("strict"),this.domNode.domNode.appendChild(this.slider.domNode),this.onmousedown(this.slider.domNode,o=>{o.leftButton&&(o.preventDefault(),this._sliderMouseDown(o,()=>{}))}),this.onclick(this.slider.domNode,o=>{o.leftButton&&o.stopPropagation()})}_onElementSize(e){return this._scrollbarState.setVisibleSize(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}_onElementScrollSize(e){return this._scrollbarState.setScrollSize(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}_onElementScrollPosition(e){return this._scrollbarState.setScrollPosition(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}beginReveal(){this._visibilityController.setShouldBeVisible(!0)}beginHide(){this._visibilityController.setShouldBeVisible(!1)}render(){!this._shouldRender||(this._shouldRender=!1,this._renderDomNode(this._scrollbarState.getRectangleLargeSize(),this._scrollbarState.getRectangleSmallSize()),this._updateSlider(this._scrollbarState.getSliderSize(),this._scrollbarState.getArrowSize()+this._scrollbarState.getSliderPosition()))}_domNodeMouseDown(e){e.target===this.domNode.domNode&&this._onMouseDown(e)}delegateMouseDown(e){const t=this.domNode.domNode.getClientRects()[0].top,i=t+this._scrollbarState.getSliderPosition(),n=t+this._scrollbarState.getSliderPosition()+this._scrollbarState.getSliderSize(),o=this._sliderMousePosition(e);i<=o&&o<=n?e.leftButton&&(e.preventDefault(),this._sliderMouseDown(e,()=>{})):this._onMouseDown(e)}_onMouseDown(e){let t,i;if(e.target===this.domNode.domNode&&typeof e.browserEvent.offsetX=="number"&&typeof e.browserEvent.offsetY=="number")t=e.browserEvent.offsetX,i=e.browserEvent.offsetY;else{const o=en(this.domNode.domNode);t=e.posx-o.left,i=e.posy-o.top}const n=this._mouseDownRelativePosition(t,i);this._setDesiredScrollPositionNow(this._scrollByPage?this._scrollbarState.getDesiredScrollPositionFromOffsetPaged(n):this._scrollbarState.getDesiredScrollPositionFromOffset(n)),e.leftButton&&(e.preventDefault(),this._sliderMouseDown(e,()=>{}))}_sliderMouseDown(e,t){const i=this._sliderMousePosition(e),n=this._sliderOrthogonalMousePosition(e),o=this._scrollbarState.clone();this.slider.toggleClassName("active",!0),this._mouseMoveMonitor.startMonitoring(e.target,e.buttons,M0,r=>{const a=this._sliderOrthogonalMousePosition(r),l=Math.abs(a-n);if(li&&l>YM){this._setDesiredScrollPositionNow(o.getScrollPosition());return}const h=this._sliderMousePosition(r)-i;this._setDesiredScrollPositionNow(o.getDesiredScrollPositionFromDelta(h))},()=>{this.slider.toggleClassName("active",!1),this._host.onDragEnd(),t()}),this._host.onDragStart()}_setDesiredScrollPositionNow(e){const t={};this.writeScrollPosition(t,e),this._scrollable.setScrollPositionNow(t)}updateScrollbarSize(e){this._updateScrollbarSize(e),this._scrollbarState.setScrollbarSize(e),this._shouldRender=!0,this._lazyRender||this.render()}isNeeded(){return this._scrollbarState.isNeeded()}}const XM=20;class Wc{constructor(e,t,i,n,o,r){this._scrollbarSize=Math.round(t),this._oppositeScrollbarSize=Math.round(i),this._arrowSize=Math.round(e),this._visibleSize=n,this._scrollSize=o,this._scrollPosition=r,this._computedAvailableSize=0,this._computedIsNeeded=!1,this._computedSliderSize=0,this._computedSliderRatio=0,this._computedSliderPosition=0,this._refreshComputedValues()}clone(){return new Wc(this._arrowSize,this._scrollbarSize,this._oppositeScrollbarSize,this._visibleSize,this._scrollSize,this._scrollPosition)}setVisibleSize(e){const t=Math.round(e);return this._visibleSize!==t?(this._visibleSize=t,this._refreshComputedValues(),!0):!1}setScrollSize(e){const t=Math.round(e);return this._scrollSize!==t?(this._scrollSize=t,this._refreshComputedValues(),!0):!1}setScrollPosition(e){const t=Math.round(e);return this._scrollPosition!==t?(this._scrollPosition=t,this._refreshComputedValues(),!0):!1}setScrollbarSize(e){this._scrollbarSize=Math.round(e)}setOppositeScrollbarSize(e){this._oppositeScrollbarSize=Math.round(e)}static _computeValues(e,t,i,n,o){const r=Math.max(0,i-e),a=Math.max(0,r-2*t),l=n>0&&n>i;if(!l)return{computedAvailableSize:Math.round(r),computedIsNeeded:l,computedSliderSize:Math.round(a),computedSliderRatio:0,computedSliderPosition:0};const c=Math.round(Math.max(XM,Math.floor(i*a/n))),h=(a-c)/(n-i),d=o*h;return{computedAvailableSize:Math.round(r),computedIsNeeded:l,computedSliderSize:Math.round(c),computedSliderRatio:h,computedSliderPosition:Math.round(d)}}_refreshComputedValues(){const e=Wc._computeValues(this._oppositeScrollbarSize,this._arrowSize,this._visibleSize,this._scrollSize,this._scrollPosition);this._computedAvailableSize=e.computedAvailableSize,this._computedIsNeeded=e.computedIsNeeded,this._computedSliderSize=e.computedSliderSize,this._computedSliderRatio=e.computedSliderRatio,this._computedSliderPosition=e.computedSliderPosition}getArrowSize(){return this._arrowSize}getScrollPosition(){return this._scrollPosition}getRectangleLargeSize(){return this._computedAvailableSize}getRectangleSmallSize(){return this._scrollbarSize}isNeeded(){return this._computedIsNeeded}getSliderSize(){return this._computedSliderSize}getSliderPosition(){return this._computedSliderPosition}getDesiredScrollPositionFromOffset(e){if(!this._computedIsNeeded)return 0;const t=e-this._arrowSize-this._computedSliderSize/2;return Math.round(t/this._computedSliderRatio)}getDesiredScrollPositionFromOffsetPaged(e){if(!this._computedIsNeeded)return 0;const t=e-this._arrowSize;let i=this._scrollPosition;return tthis._host.onMouseWheel(new qa(null,1,0))}),this._createArrow({className:"scra",icon:g.scrollbarButtonRight,top:a,left:void 0,bottom:void 0,right:r,bgWidth:t.arrowSize,bgHeight:t.horizontalScrollbarSize,onActivate:()=>this._host.onMouseWheel(new qa(null,-1,0))})}this._createSlider(Math.floor((t.horizontalScrollbarSize-t.horizontalSliderSize)/2),0,void 0,t.horizontalSliderSize)}_updateSlider(e,t){this.slider.setWidth(e),this.slider.setLeft(t)}_renderDomNode(e,t){this.domNode.setWidth(e),this.domNode.setHeight(t),this.domNode.setLeft(0),this.domNode.setBottom(0)}onDidScroll(e){return this._shouldRender=this._onElementScrollSize(e.scrollWidth)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(e.scrollLeft)||this._shouldRender,this._shouldRender=this._onElementSize(e.width)||this._shouldRender,this._shouldRender}_mouseDownRelativePosition(e,t){return e}_sliderMousePosition(e){return e.posx}_sliderOrthogonalMousePosition(e){return e.posy}_updateScrollbarSize(e){this.slider.setHeight(e)}writeScrollPosition(e,t){e.scrollLeft=t}updateOptions(e){this.updateScrollbarSize(e.horizontal===2?0:e.horizontalScrollbarSize),this._scrollbarState.setOppositeScrollbarSize(e.vertical===2?0:e.verticalScrollbarSize),this._visibilityController.setVisibility(e.horizontal),this._scrollByPage=e.scrollByPage}}class JM extends pk{constructor(e,t,i){const n=e.getScrollDimensions(),o=e.getCurrentScrollPosition();if(super({lazyRender:t.lazyRender,host:i,scrollbarState:new Wc(t.verticalHasArrows?t.arrowSize:0,t.vertical===2?0:t.verticalScrollbarSize,0,n.height,n.scrollHeight,o.scrollTop),visibility:t.vertical,extraScrollbarClassName:"vertical",scrollable:e,scrollByPage:t.scrollByPage}),t.verticalHasArrows){const r=(t.arrowSize-el)/2,a=(t.verticalScrollbarSize-el)/2;this._createArrow({className:"scra",icon:g.scrollbarButtonUp,top:r,left:a,bottom:void 0,right:void 0,bgWidth:t.verticalScrollbarSize,bgHeight:t.arrowSize,onActivate:()=>this._host.onMouseWheel(new qa(null,0,1))}),this._createArrow({className:"scra",icon:g.scrollbarButtonDown,top:void 0,left:a,bottom:r,right:void 0,bgWidth:t.verticalScrollbarSize,bgHeight:t.arrowSize,onActivate:()=>this._host.onMouseWheel(new qa(null,0,-1))})}this._createSlider(0,Math.floor((t.verticalScrollbarSize-t.verticalSliderSize)/2),t.verticalSliderSize,void 0)}_updateSlider(e,t){this.slider.setHeight(e),this.slider.setTop(t)}_renderDomNode(e,t){this.domNode.setWidth(t),this.domNode.setHeight(e),this.domNode.setRight(0),this.domNode.setTop(0)}onDidScroll(e){return this._shouldRender=this._onElementScrollSize(e.scrollHeight)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(e.scrollTop)||this._shouldRender,this._shouldRender=this._onElementSize(e.height)||this._shouldRender,this._shouldRender}_mouseDownRelativePosition(e,t){return t}_sliderMousePosition(e){return e.posy}_sliderOrthogonalMousePosition(e){return e.posx}_updateScrollbarSize(e){this.slider.setWidth(e)}writeScrollPosition(e,t){e.scrollTop=t}updateOptions(e){this.updateScrollbarSize(e.vertical===2?0:e.verticalScrollbarSize),this._scrollbarState.setOppositeScrollbarSize(0),this._visibilityController.setVisibility(e.vertical),this._scrollByPage=e.scrollByPage}}class Au{constructor(e,t,i,n,o,r,a){this._forceIntegerValues=e,this._scrollStateBrand=void 0,this._forceIntegerValues&&(t=t|0,i=i|0,n=n|0,o=o|0,r=r|0,a=a|0),this.rawScrollLeft=n,this.rawScrollTop=a,t<0&&(t=0),n+t>i&&(n=i-t),n<0&&(n=0),o<0&&(o=0),a+o>r&&(a=r-o),a<0&&(a=0),this.width=t,this.scrollWidth=i,this.scrollLeft=n,this.height=o,this.scrollHeight=r,this.scrollTop=a}equals(e){return this.rawScrollLeft===e.rawScrollLeft&&this.rawScrollTop===e.rawScrollTop&&this.width===e.width&&this.scrollWidth===e.scrollWidth&&this.scrollLeft===e.scrollLeft&&this.height===e.height&&this.scrollHeight===e.scrollHeight&&this.scrollTop===e.scrollTop}withScrollDimensions(e,t){return new Au(this._forceIntegerValues,typeof e.width!="undefined"?e.width:this.width,typeof e.scrollWidth!="undefined"?e.scrollWidth:this.scrollWidth,t?this.rawScrollLeft:this.scrollLeft,typeof e.height!="undefined"?e.height:this.height,typeof e.scrollHeight!="undefined"?e.scrollHeight:this.scrollHeight,t?this.rawScrollTop:this.scrollTop)}withScrollPosition(e){return new Au(this._forceIntegerValues,this.width,this.scrollWidth,typeof e.scrollLeft!="undefined"?e.scrollLeft:this.rawScrollLeft,this.height,this.scrollHeight,typeof e.scrollTop!="undefined"?e.scrollTop:this.rawScrollTop)}createScrollEvent(e,t){const i=this.width!==e.width,n=this.scrollWidth!==e.scrollWidth,o=this.scrollLeft!==e.scrollLeft,r=this.height!==e.height,a=this.scrollHeight!==e.scrollHeight,l=this.scrollTop!==e.scrollTop;return{inSmoothScrolling:t,oldWidth:e.width,oldScrollWidth:e.scrollWidth,oldScrollLeft:e.scrollLeft,width:this.width,scrollWidth:this.scrollWidth,scrollLeft:this.scrollLeft,oldHeight:e.height,oldScrollHeight:e.scrollHeight,oldScrollTop:e.scrollTop,height:this.height,scrollHeight:this.scrollHeight,scrollTop:this.scrollTop,widthChanged:i,scrollWidthChanged:n,scrollLeftChanged:o,heightChanged:r,scrollHeightChanged:a,scrollTopChanged:l}}}class Eh extends W{constructor(e){super(),this._scrollableBrand=void 0,this._onScroll=this._register(new M),this.onScroll=this._onScroll.event,this._smoothScrollDuration=e.smoothScrollDuration,this._scheduleAtNextAnimationFrame=e.scheduleAtNextAnimationFrame,this._state=new Au(e.forceIntegerValues,0,0,0,0,0,0),this._smoothScrolling=null}dispose(){this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),super.dispose()}setSmoothScrollDuration(e){this._smoothScrollDuration=e}validateScrollPosition(e){return this._state.withScrollPosition(e)}getScrollDimensions(){return this._state}setScrollDimensions(e,t){const i=this._state.withScrollDimensions(e,t);this._setState(i,Boolean(this._smoothScrolling)),this._smoothScrolling&&this._smoothScrolling.acceptScrollDimensions(this._state)}getFutureScrollPosition(){return this._smoothScrolling?this._smoothScrolling.to:this._state}getCurrentScrollPosition(){return this._state}setScrollPositionNow(e){const t=this._state.withScrollPosition(e);this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),this._setState(t,!1)}setScrollPositionSmooth(e,t){if(this._smoothScrollDuration===0)return this.setScrollPositionNow(e);if(this._smoothScrolling){e={scrollLeft:typeof e.scrollLeft=="undefined"?this._smoothScrolling.to.scrollLeft:e.scrollLeft,scrollTop:typeof e.scrollTop=="undefined"?this._smoothScrolling.to.scrollTop:e.scrollTop};const i=this._state.withScrollPosition(e);if(this._smoothScrolling.to.scrollLeft===i.scrollLeft&&this._smoothScrolling.to.scrollTop===i.scrollTop)return;let n;t?n=new Hc(this._smoothScrolling.from,i,this._smoothScrolling.startTime,this._smoothScrolling.duration):n=this._smoothScrolling.combine(this._state,i,this._smoothScrollDuration),this._smoothScrolling.dispose(),this._smoothScrolling=n}else{const i=this._state.withScrollPosition(e);this._smoothScrolling=Hc.start(this._state,i,this._smoothScrollDuration)}this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame(()=>{!this._smoothScrolling||(this._smoothScrolling.animationFrameDisposable=null,this._performSmoothScrolling())})}_performSmoothScrolling(){if(!this._smoothScrolling)return;const e=this._smoothScrolling.tick(),t=this._state.withScrollPosition(e);if(this._setState(t,!0),!!this._smoothScrolling){if(e.isDone){this._smoothScrolling.dispose(),this._smoothScrolling=null;return}this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame(()=>{!this._smoothScrolling||(this._smoothScrolling.animationFrameDisposable=null,this._performSmoothScrolling())})}}_setState(e,t){const i=this._state;i.equals(e)||(this._state=e,this._onScroll.fire(this._state.createScrollEvent(i,t)))}}class pw{constructor(e,t,i){this.scrollLeft=e,this.scrollTop=t,this.isDone=i}}function tm(s,e){const t=e-s;return function(i){return s+t*iR(i)}}function eR(s,e,t){return function(i){return i2.5*i){let o,r;return e0&&Math.abs(e.deltaY)>0)return 1;let t=.5;return this._front===-1&&this._rear===-1||this._memory[this._rear],(!this._isAlmostInt(e.deltaX)||!this._isAlmostInt(e.deltaY))&&(t+=.25),Math.min(Math.max(t,0),1)}_isAlmostInt(e){return Math.abs(Math.round(e)-e)<.01}}y_.INSTANCE=new y_;class V0 extends rs{constructor(e,t,i){super(),this._onScroll=this._register(new M),this.onScroll=this._onScroll.event,this._onWillScroll=this._register(new M),e.style.overflow="hidden",this._options=rR(t),this._scrollable=i,this._register(this._scrollable.onScroll(o=>{this._onWillScroll.fire(o),this._onDidScroll(o),this._onScroll.fire(o)}));const n={onMouseWheel:o=>this._onMouseWheel(o),onDragStart:()=>this._onDragStart(),onDragEnd:()=>this._onDragEnd()};this._verticalScrollbar=this._register(new JM(this._scrollable,this._options,n)),this._horizontalScrollbar=this._register(new QM(this._scrollable,this._options,n)),this._domNode=document.createElement("div"),this._domNode.className="monaco-scrollable-element "+this._options.className,this._domNode.setAttribute("role","presentation"),this._domNode.style.position="relative",this._domNode.style.overflow="hidden",this._domNode.appendChild(e),this._domNode.appendChild(this._horizontalScrollbar.domNode.domNode),this._domNode.appendChild(this._verticalScrollbar.domNode.domNode),this._options.useShadows?(this._leftShadowDomNode=ue(document.createElement("div")),this._leftShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._leftShadowDomNode.domNode),this._topShadowDomNode=ue(document.createElement("div")),this._topShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._topShadowDomNode.domNode),this._topLeftShadowDomNode=ue(document.createElement("div")),this._topLeftShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._topLeftShadowDomNode.domNode)):(this._leftShadowDomNode=null,this._topShadowDomNode=null,this._topLeftShadowDomNode=null),this._listenOnDomNode=this._options.listenOnDomNode||this._domNode,this._mouseWheelToDispose=[],this._setListeningToMouseWheel(this._options.handleMouseWheel),this.onmouseover(this._listenOnDomNode,o=>this._onMouseOver(o)),this.onnonbubblingmouseout(this._listenOnDomNode,o=>this._onMouseOut(o)),this._hideTimeout=this._register(new os),this._isDragging=!1,this._mouseIsOver=!1,this._shouldRender=!0,this._revealOnScroll=!0}get options(){return this._options}dispose(){this._mouseWheelToDispose=Me(this._mouseWheelToDispose),super.dispose()}getDomNode(){return this._domNode}getOverviewRulerLayoutInfo(){return{parent:this._domNode,insertBefore:this._verticalScrollbar.domNode.domNode}}delegateVerticalScrollbarMouseDown(e){this._verticalScrollbar.delegateMouseDown(e)}getScrollDimensions(){return this._scrollable.getScrollDimensions()}setScrollDimensions(e){this._scrollable.setScrollDimensions(e,!1)}updateClassName(e){this._options.className=e,me&&(this._options.className+=" mac"),this._domNode.className="monaco-scrollable-element "+this._options.className}updateOptions(e){typeof e.handleMouseWheel!="undefined"&&(this._options.handleMouseWheel=e.handleMouseWheel,this._setListeningToMouseWheel(this._options.handleMouseWheel)),typeof e.mouseWheelScrollSensitivity!="undefined"&&(this._options.mouseWheelScrollSensitivity=e.mouseWheelScrollSensitivity),typeof e.fastScrollSensitivity!="undefined"&&(this._options.fastScrollSensitivity=e.fastScrollSensitivity),typeof e.scrollPredominantAxis!="undefined"&&(this._options.scrollPredominantAxis=e.scrollPredominantAxis),typeof e.horizontal!="undefined"&&(this._options.horizontal=e.horizontal),typeof e.vertical!="undefined"&&(this._options.vertical=e.vertical),typeof e.horizontalScrollbarSize!="undefined"&&(this._options.horizontalScrollbarSize=e.horizontalScrollbarSize),typeof e.verticalScrollbarSize!="undefined"&&(this._options.verticalScrollbarSize=e.verticalScrollbarSize),typeof e.scrollByPage!="undefined"&&(this._options.scrollByPage=e.scrollByPage),this._horizontalScrollbar.updateOptions(this._options),this._verticalScrollbar.updateOptions(this._options),this._options.lazyRender||this._render()}_setListeningToMouseWheel(e){if(this._mouseWheelToDispose.length>0!==e&&(this._mouseWheelToDispose=Me(this._mouseWheelToDispose),e)){const i=n=>{this._onMouseWheel(new qa(n))};this._mouseWheelToDispose.push(V(this._listenOnDomNode,Y.MOUSE_WHEEL,i,{passive:!1}))}}_onMouseWheel(e){const t=y_.INSTANCE;{const o=window.devicePixelRatio/Iy();li||qt?t.accept(Date.now(),e.deltaX/o,e.deltaY/o):t.accept(Date.now(),e.deltaX,e.deltaY)}let i=!1;if(e.deltaY||e.deltaX){let o=e.deltaY*this._options.mouseWheelScrollSensitivity,r=e.deltaX*this._options.mouseWheelScrollSensitivity;this._options.scrollPredominantAxis&&(Math.abs(o)>=Math.abs(r)?r=0:o=0),this._options.flipAxes&&([o,r]=[r,o]);const a=!me&&e.browserEvent&&e.browserEvent.shiftKey;(this._options.scrollYToX||a)&&!r&&(r=o,o=0),e.browserEvent&&e.browserEvent.altKey&&(r=r*this._options.fastScrollSensitivity,o=o*this._options.fastScrollSensitivity);const l=this._scrollable.getFutureScrollPosition();let c={};if(o){const h=_w*o,d=l.scrollTop-(h<0?Math.floor(h):Math.ceil(h));this._verticalScrollbar.writeScrollPosition(c,d)}if(r){const h=_w*r,d=l.scrollLeft-(h<0?Math.floor(h):Math.ceil(h));this._horizontalScrollbar.writeScrollPosition(c,d)}c=this._scrollable.validateScrollPosition(c),(l.scrollLeft!==c.scrollLeft||l.scrollTop!==c.scrollTop)&&(this._options.mouseWheelSmoothScroll&&t.isPhysicalMouseWheel()?this._scrollable.setScrollPositionSmooth(c):this._scrollable.setScrollPositionNow(c),i=!0)}let n=i;!n&&this._options.alwaysConsumeMouseWheel&&(n=!0),!n&&this._options.consumeMouseWheelIfScrollbarIsNeeded&&(this._verticalScrollbar.isNeeded()||this._horizontalScrollbar.isNeeded())&&(n=!0),n&&(e.preventDefault(),e.stopPropagation())}_onDidScroll(e){this._shouldRender=this._horizontalScrollbar.onDidScroll(e)||this._shouldRender,this._shouldRender=this._verticalScrollbar.onDidScroll(e)||this._shouldRender,this._options.useShadows&&(this._shouldRender=!0),this._revealOnScroll&&this._reveal(),this._options.lazyRender||this._render()}renderNow(){if(!this._options.lazyRender)throw new Error("Please use `lazyRender` together with `renderNow`!");this._render()}_render(){if(!!this._shouldRender&&(this._shouldRender=!1,this._horizontalScrollbar.render(),this._verticalScrollbar.render(),this._options.useShadows)){const e=this._scrollable.getCurrentScrollPosition(),t=e.scrollTop>0,i=e.scrollLeft>0,n=i?" left":"",o=t?" top":"",r=i||t?" top-left-corner":"";this._leftShadowDomNode.setClassName(`shadow${n}`),this._topShadowDomNode.setClassName(`shadow${o}`),this._topLeftShadowDomNode.setClassName(`shadow${r}${o}${n}`)}}_onDragStart(){this._isDragging=!0,this._reveal()}_onDragEnd(){this._isDragging=!1,this._hide()}_onMouseOut(e){this._mouseIsOver=!1,this._hide()}_onMouseOver(e){this._mouseIsOver=!0,this._reveal()}_reveal(){this._verticalScrollbar.beginReveal(),this._horizontalScrollbar.beginReveal(),this._scheduleHide()}_hide(){!this._mouseIsOver&&!this._isDragging&&(this._verticalScrollbar.beginHide(),this._horizontalScrollbar.beginHide())}_scheduleHide(){!this._mouseIsOver&&!this._isDragging&&this._hideTimeout.cancelAndSet(()=>this._hide(),nR)}}class oR extends V0{constructor(e,t){t=t||{},t.mouseWheelSmoothScroll=!1;const i=new Eh({forceIntegerValues:!0,smoothScrollDuration:0,scheduleAtNextAnimationFrame:n=>kn(n)});super(e,t,i),this._register(i)}setScrollPosition(e){this._scrollable.setScrollPositionNow(e)}}class W0 extends V0{constructor(e,t,i){super(e,t,i)}setScrollPosition(e){e.reuseAnimation?this._scrollable.setScrollPositionSmooth(e,e.reuseAnimation):this._scrollable.setScrollPositionNow(e)}getScrollPosition(){return this._scrollable.getCurrentScrollPosition()}}class _k extends V0{constructor(e,t){t=t||{},t.mouseWheelSmoothScroll=!1;const i=new Eh({forceIntegerValues:!1,smoothScrollDuration:0,scheduleAtNextAnimationFrame:n=>kn(n)});super(e,t,i),this._register(i),this._element=e,this.onScroll(n=>{n.scrollTopChanged&&(this._element.scrollTop=n.scrollTop),n.scrollLeftChanged&&(this._element.scrollLeft=n.scrollLeft)}),this.scanDomNode()}setScrollPosition(e){this._scrollable.setScrollPositionNow(e)}getScrollPosition(){return this._scrollable.getCurrentScrollPosition()}scanDomNode(){this.setScrollDimensions({width:this._element.clientWidth,scrollWidth:this._element.scrollWidth,height:this._element.clientHeight,scrollHeight:this._element.scrollHeight}),this.setScrollPosition({scrollLeft:this._element.scrollLeft,scrollTop:this._element.scrollTop})}}function rR(s){const e={lazyRender:typeof s.lazyRender!="undefined"?s.lazyRender:!1,className:typeof s.className!="undefined"?s.className:"",useShadows:typeof s.useShadows!="undefined"?s.useShadows:!0,handleMouseWheel:typeof s.handleMouseWheel!="undefined"?s.handleMouseWheel:!0,flipAxes:typeof s.flipAxes!="undefined"?s.flipAxes:!1,consumeMouseWheelIfScrollbarIsNeeded:typeof s.consumeMouseWheelIfScrollbarIsNeeded!="undefined"?s.consumeMouseWheelIfScrollbarIsNeeded:!1,alwaysConsumeMouseWheel:typeof s.alwaysConsumeMouseWheel!="undefined"?s.alwaysConsumeMouseWheel:!1,scrollYToX:typeof s.scrollYToX!="undefined"?s.scrollYToX:!1,mouseWheelScrollSensitivity:typeof s.mouseWheelScrollSensitivity!="undefined"?s.mouseWheelScrollSensitivity:1,fastScrollSensitivity:typeof s.fastScrollSensitivity!="undefined"?s.fastScrollSensitivity:5,scrollPredominantAxis:typeof s.scrollPredominantAxis!="undefined"?s.scrollPredominantAxis:!0,mouseWheelSmoothScroll:typeof s.mouseWheelSmoothScroll!="undefined"?s.mouseWheelSmoothScroll:!0,arrowSize:typeof s.arrowSize!="undefined"?s.arrowSize:11,listenOnDomNode:typeof s.listenOnDomNode!="undefined"?s.listenOnDomNode:null,horizontal:typeof s.horizontal!="undefined"?s.horizontal:1,horizontalScrollbarSize:typeof s.horizontalScrollbarSize!="undefined"?s.horizontalScrollbarSize:10,horizontalSliderSize:typeof s.horizontalSliderSize!="undefined"?s.horizontalSliderSize:0,horizontalHasArrows:typeof s.horizontalHasArrows!="undefined"?s.horizontalHasArrows:!1,vertical:typeof s.vertical!="undefined"?s.vertical:1,verticalScrollbarSize:typeof s.verticalScrollbarSize!="undefined"?s.verticalScrollbarSize:10,verticalHasArrows:typeof s.verticalHasArrows!="undefined"?s.verticalHasArrows:!1,verticalSliderSize:typeof s.verticalSliderSize!="undefined"?s.verticalSliderSize:0,scrollByPage:typeof s.scrollByPage!="undefined"?s.scrollByPage:!1};return e.horizontalSliderSize=typeof s.horizontalSliderSize!="undefined"?s.horizontalSliderSize:e.horizontalScrollbarSize,e.verticalSliderSize=typeof s.verticalSliderSize!="undefined"?s.verticalSliderSize:e.verticalScrollbarSize,me&&(e.className+=" mac"),e}class aR extends Wi{constructor(e,t,i,n){super(e);const o=this._context.configuration.options,r=o.get(92),a=o.get(67),l=o.get(34),c=o.get(95),h={listenOnDomNode:i.domNode,className:"editor-scrollable "+Iu(e.theme.type),useShadows:!1,lazyRender:!0,vertical:r.vertical,horizontal:r.horizontal,verticalHasArrows:r.verticalHasArrows,horizontalHasArrows:r.horizontalHasArrows,verticalScrollbarSize:r.verticalScrollbarSize,verticalSliderSize:r.verticalSliderSize,horizontalScrollbarSize:r.horizontalScrollbarSize,horizontalSliderSize:r.horizontalSliderSize,handleMouseWheel:r.handleMouseWheel,alwaysConsumeMouseWheel:r.alwaysConsumeMouseWheel,arrowSize:r.arrowSize,mouseWheelScrollSensitivity:a,fastScrollSensitivity:l,scrollPredominantAxis:c,scrollByPage:r.scrollByPage};this.scrollbar=this._register(new W0(t.domNode,h,this._context.viewLayout.getScrollable())),es.write(this.scrollbar.getDomNode(),5),this.scrollbarDomNode=ue(this.scrollbar.getDomNode()),this.scrollbarDomNode.setPosition("absolute"),this._setLayout();const d=(u,f,m)=>{const _={};if(f){const b=u.scrollTop;b&&(_.scrollTop=this._context.viewLayout.getCurrentScrollTop()+b,u.scrollTop=0)}if(m){const b=u.scrollLeft;b&&(_.scrollLeft=this._context.viewLayout.getCurrentScrollLeft()+b,u.scrollLeft=0)}this._context.viewModel.viewLayout.setScrollPosition(_,1)};this._register(V(i.domNode,"scroll",u=>d(i.domNode,!0,!0))),this._register(V(t.domNode,"scroll",u=>d(t.domNode,!0,!1))),this._register(V(n.domNode,"scroll",u=>d(n.domNode,!0,!1))),this._register(V(this.scrollbarDomNode.domNode,"scroll",u=>d(this.scrollbarDomNode.domNode,!0,!1)))}dispose(){super.dispose()}_setLayout(){const e=this._context.configuration.options,t=e.get(131);this.scrollbarDomNode.setLeft(t.contentLeft),e.get(65).side==="right"?this.scrollbarDomNode.setWidth(t.contentWidth+t.minimap.minimapWidth):this.scrollbarDomNode.setWidth(t.contentWidth),this.scrollbarDomNode.setHeight(t.height)}getOverviewRulerLayoutInfo(){return this.scrollbar.getOverviewRulerLayoutInfo()}getDomNode(){return this.scrollbarDomNode}delegateVerticalScrollbarMouseDown(e){this.scrollbar.delegateVerticalScrollbarMouseDown(e)}onConfigurationChanged(e){if(e.hasChanged(92)||e.hasChanged(67)||e.hasChanged(34)){const t=this._context.configuration.options,i=t.get(92),n=t.get(67),o=t.get(34),r=t.get(95),a={vertical:i.vertical,horizontal:i.horizontal,verticalScrollbarSize:i.verticalScrollbarSize,horizontalScrollbarSize:i.horizontalScrollbarSize,scrollByPage:i.scrollByPage,handleMouseWheel:i.handleMouseWheel,mouseWheelScrollSensitivity:n,fastScrollSensitivity:o,scrollPredominantAxis:r};this.scrollbar.updateOptions(a)}return e.hasChanged(131)&&this._setLayout(),!0}onScrollChanged(e){return!0}onThemeChanged(e){return this.scrollbar.updateClassName("editor-scrollable "+Iu(this._context.theme.type)),!0}prepareRender(e){}render(e){this.scrollbar.renderNow()}}ni((s,e)=>{const t=s.getColor(vl);t&&e.addRule(` + .monaco-scrollable-element > .shadow.top { + box-shadow: ${t} 0 6px 6px -6px inset; + } + + .monaco-scrollable-element > .shadow.left { + box-shadow: ${t} 6px 0 6px -6px inset; + } + + .monaco-scrollable-element > .shadow.top.left { + box-shadow: ${t} 6px 6px 6px -6px inset; + } + `);const i=s.getColor(Ea);i&&e.addRule(` + .monaco-scrollable-element > .scrollbar > .slider { + background: ${i}; + } + `);const n=s.getColor(Da);n&&e.addRule(` + .monaco-scrollable-element > .scrollbar > .slider:hover { + background: ${n}; + } + `);const o=s.getColor(Na);o&&e.addRule(` + .monaco-scrollable-element > .scrollbar > .slider.active { + background: ${o}; + } + `)});class Ou{constructor(e,t,i){this._decorationToRenderBrand=void 0,this.startLineNumber=+e,this.endLineNumber=+t,this.className=String(i)}}class H0 extends yl{_render(e,t,i){const n=[];for(let a=e;a<=t;a++){const l=a-e;n[l]=[]}if(i.length===0)return n;i.sort((a,l)=>a.className===l.className?a.startLineNumber===l.startLineNumber?a.endLineNumber-l.endLineNumber:a.startLineNumber-l.startLineNumber:a.className',c=[];for(let h=t;h<=i;h++){const d=h-t,u=n[d];u.length===0?c[d]="":c[d]='
    =this._renderResult.length?"":this._renderResult[i]}}class cR{constructor(){this._isDisposed=!1}dispose(){this._isDisposed=!0}assertNotDisposed(){if(this._isDisposed)throw new Error("TextModelPart is disposed!")}}function hR(s,e){let t=0,i=0;const n=s.length;for(;in)throw new Error("Illegal value for lineNumber");const o=this.getLanguageConfiguration(this.textModel.getLanguageId()).foldingRules,r=Boolean(o&&o.offSide);let a=-2,l=-1,c=-2,h=-1;const d=L=>{if(a!==-1&&(a===-2||a>L-1)){a=-1,l=-1;for(let y=L-2;y>=0;y--){const I=this._computeIndentLevel(y);if(I>=0){a=y,l=I;break}}}if(c===-2){c=-1,h=-1;for(let y=L;y=0){c=y,h=I;break}}}};let u=-2,f=-1,m=-2,_=-1;const b=L=>{if(u===-2){u=-1,f=-1;for(let y=L-2;y>=0;y--){const I=this._computeIndentLevel(y);if(I>=0){u=y,f=I;break}}}if(m!==-1&&(m===-2||m=0){m=y,_=I;break}}}};let w=0,C=!0,v=0,S=!0,k=0,x=0;for(let L=0;C||S;L++){const y=e-L,I=e+L;L>1&&(y<1||y1&&(I>n||I>i)&&(S=!1),L>5e4&&(C=!1,S=!1);let R=-1;if(C&&y>=1){const P=this._computeIndentLevel(y-1);P>=0?(c=y-1,h=P,R=Math.ceil(P/this.textModel.getOptions().indentSize)):(d(y),R=this._getIndentLevelForWhitespaceLine(r,l,h))}let T=-1;if(S&&I<=n){const P=this._computeIndentLevel(I-1);P>=0?(u=I-1,f=P,T=Math.ceil(P/this.textModel.getOptions().indentSize)):(b(I),T=this._getIndentLevelForWhitespaceLine(r,f,_))}if(L===0){x=R;continue}if(L===1){if(I<=n&&T>=0&&x+1===T){C=!1,w=I,v=I,k=T;continue}if(y>=1&&R>=0&&R-1===x){S=!1,w=y,v=y,k=R;continue}if(w=e,v=e,k=x,k===0)return{startLineNumber:w,endLineNumber:v,indent:k}}C&&(R>=k?w=y:C=!1),S&&(T>=k?v=I:S=!1)}return{startLineNumber:w,endLineNumber:v,indent:k}}getLinesBracketGuides(e,t,i,n){var o,r,a,l,c;const h=[],d=this.textModel.bracketPairs.getBracketPairsInRangeWithMinIndentation(new D(e,1,t,this.textModel.getLineMaxColumn(t)));let u;if(i&&d.length>0){const w=e<=i.lineNumber&&i.lineNumber<=t?d.filter(C=>D.strictContainsPosition(C.range,i)):this.textModel.bracketPairs.getBracketPairsInRange(D.fromPositions(i));u=(o=rI(w,C=>C.range.startLineNumber!==C.range.endLineNumber))===null||o===void 0?void 0:o.range}const f=new za(d),m=new Array,_=new Array,b=new bk;for(let w=e;w<=t;w++){let C=new Array;_.length>0&&(C=C.concat(_),_.length=0),h.push(C);for(const S of f.takeWhile(k=>k.openingBracketRange.startLineNumber<=w)||[]){if(S.range.startLineNumber===S.range.endLineNumber)continue;const k=Math.min(this.getVisibleColumnFromPosition(S.openingBracketRange.getStartPosition()),this.getVisibleColumnFromPosition((a=(r=S.closingBracketRange)===null||r===void 0?void 0:r.getStartPosition())!==null&&a!==void 0?a:S.range.getEndPosition()),S.minVisibleColumnIndentation+1);let x=!1;S.closingBracketRange&&Ci(this.textModel.getLineContent(S.closingBracketRange.startLineNumber))=0;S--){const k=m[S];if(!k)continue;const x=n.highlightActive&&u&&k.bracketPair.range.equalsRange(u),L=b.getInlineClassNameOfLevel(k.nestingLevel)+(x?" "+b.activeClassName:"");(x||n.includeInactive)&&k.renderHorizontalEndLineAtTheBottom&&k.end.lineNumber===w+1&&_.push(new ma(k.guideVisibleColumn,L,null)),!(k.end.lineNumber<=w||k.start.lineNumber>=w)&&(k.guideVisibleColumn>=v&&!x||(v=k.guideVisibleColumn,(x||n.includeInactive)&&C.push(new ma(k.guideVisibleColumn,L,null))))}C.sort((S,k)=>S.visibleColumn-k.visibleColumn)}return h}getVisibleColumnFromPosition(e){return ft.visibleColumnFromColumn(this.textModel.getLineContent(e.lineNumber),e.column,this.textModel.getOptions().tabSize)+1}getLinesIndentGuides(e,t){this.assertNotDisposed();const i=this.textModel.getLineCount();if(e<1||e>i)throw new Error("Illegal value for startLineNumber");if(t<1||t>i)throw new Error("Illegal value for endLineNumber");const n=this.textModel.getOptions(),o=this.getLanguageConfiguration(this.textModel.getLanguageId()).foldingRules,r=Boolean(o&&o.offSide),a=new Array(t-e+1);let l=-2,c=-1,h=-2,d=-1;for(let u=e;u<=t;u++){const f=u-e,m=this._computeIndentLevel(u-1);if(m>=0){l=u-1,c=m,a[f]=Math.ceil(m/n.indentSize);continue}if(l===-2){l=-1,c=-1;for(let _=u-2;_>=0;_--){const b=this._computeIndentLevel(_);if(b>=0){l=_,c=b;break}}}if(h!==-1&&(h===-2||h=0){h=_,d=b;break}}}a[f]=this._getIndentLevelForWhitespaceLine(r,c,d)}return a}_getIndentLevelForWhitespaceLine(e,t,i){const n=this.textModel.getOptions();return t===-1||i===-1?0:tl||this._maxIndentLeft>0&&v>this._maxIndentLeft)break;const S=C.horizontalLine?C.horizontalLine.top?"horizontal-top":"horizontal-bottom":"vertical",k=C.horizontalLine?((o=(n=e.visibleRangeForPosition(new A(f,C.horizontalLine.endColumn)))===null||n===void 0?void 0:n.left)!==null&&o!==void 0?o:v+this._spaceWidth)-v:this._spaceWidth;b+=`
    `}u[m]=b}this._renderResult=u}getGuidesByLine(e,t,i){const n=this._bracketPairGuideOptions.bracketPairs!==!1?this._context.viewModel.getBracketGuidesInRangeByLine(e,t,i,{highlightActive:this._bracketPairGuideOptions.highlightActiveBracketPair,horizontalGuides:this._bracketPairGuideOptions.bracketPairsHorizontal===!0?ur.Enabled:this._bracketPairGuideOptions.bracketPairsHorizontal==="active"?ur.EnabledForActive:ur.Disabled,includeInactive:this._bracketPairGuideOptions.bracketPairs===!0}):null,o=this._bracketPairGuideOptions.indentation?this._context.viewModel.getLinesIndentGuides(e,t):null;let r=0,a=0,l=0;if(this._bracketPairGuideOptions.highlightActiveIndentation&&i){const d=this._context.viewModel.getActiveIndentGuide(i.lineNumber,e,t);r=d.startLineNumber,a=d.endLineNumber,l=d.indent}const{indentSize:c}=this._context.viewModel.model.getOptions(),h=[];for(let d=e;d<=t;d++){const u=new Array;h.push(u);const f=n?n[d-e]:[],m=new za(f),_=o?o[d-e]:[];for(let b=1;b<=_;b++){const w=(b-1)*c+1,C=f.length===0&&r<=d&&d<=a&&b===l;u.push(...m.takeWhile(S=>S.visibleColumn!0)||[])}return h}render(e,t){if(!this._renderResult)return"";const i=t-e;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}}function Gh(s){if(!(s&&s.isTransparent()))return s}ni((s,e)=>{const t=s.getColor(jf);t&&e.addRule(`.monaco-editor .lines-content .core-guide-indent { box-shadow: 1px 0 0 0 ${t} inset; }`);const i=s.getColor(Kf)||t;i&&e.addRule(`.monaco-editor .lines-content .core-guide-indent-active { box-shadow: 1px 0 0 0 ${i} inset; }`);const n=[{bracketColor:nk,guideColor:pM,guideColorActive:SM},{bracketColor:sk,guideColor:_M,guideColorActive:yM},{bracketColor:ok,guideColor:bM,guideColorActive:LM},{bracketColor:rk,guideColor:CM,guideColorActive:kM},{bracketColor:ak,guideColor:wM,guideColorActive:xM},{bracketColor:lk,guideColor:vM,guideColorActive:IM}],o=new bk,r=n.map(a=>{var l,c;const h=s.getColor(a.bracketColor),d=s.getColor(a.guideColor),u=s.getColor(a.guideColorActive),f=Gh((l=Gh(d))!==null&&l!==void 0?l:h==null?void 0:h.transparent(.3)),m=Gh((c=Gh(u))!==null&&c!==void 0?c:h);if(!(!f||!m))return{guideColor:f,guideColorActive:m}}).filter(fI);if(r.length>0){for(let a=0;a<30;a++){const l=r[a%r.length];e.addRule(`.monaco-editor .${o.getInlineClassNameOfLevel(a).replace(/ /g,".")} { --guide-color: ${l.guideColor}; --guide-color-active: ${l.guideColorActive}; }`)}e.addRule(".monaco-editor .vertical { box-shadow: 1px 0 0 0 var(--guide-color) inset; }"),e.addRule(".monaco-editor .horizontal-top { border-top: 1px solid var(--guide-color); }"),e.addRule(".monaco-editor .horizontal-bottom { border-bottom: 1px solid var(--guide-color); }"),e.addRule(`.monaco-editor .vertical.${o.activeClassName} { box-shadow: 1px 0 0 0 var(--guide-color-active) inset; }`),e.addRule(`.monaco-editor .horizontal-top.${o.activeClassName} { border-top: 1px solid var(--guide-color-active); }`),e.addRule(`.monaco-editor .horizontal-bottom.${o.activeClassName} { border-bottom: 1px solid var(--guide-color-active); }`)}});class fR{constructor(){this._currentVisibleRange=new D(1,1,1,1)}getCurrentVisibleRange(){return this._currentVisibleRange}setCurrentVisibleRange(e){this._currentVisibleRange=e}}class gR{constructor(e,t,i,n,o,r,a){this.minimalReveal=e,this.lineNumber=t,this.startColumn=i,this.endColumn=n,this.startScrollTop=o,this.stopScrollTop=r,this.scrollType=a,this.type="range",this.minLineNumber=t,this.maxLineNumber=t}}class mR{constructor(e,t,i,n,o){this.minimalReveal=e,this.selections=t,this.startScrollTop=i,this.stopScrollTop=n,this.scrollType=o,this.type="selections";let r=t[0].startLineNumber,a=t[0].endLineNumber;for(let l=1,c=t.length;l{this._updateLineWidthsSlow()},200),this._asyncCheckMonospaceFontAssumptions=new Tt(()=>{this._checkMonospaceFontAssumptions()},2e3),this._lastRenderedData=new fR,this._horizontalRevealRequest=null}dispose(){this._asyncUpdateLineWidths.dispose(),this._asyncCheckMonospaceFontAssumptions.dispose(),super.dispose()}getDomNode(){return this.domNode}createVisibleLine(){return new Un(this._viewLineOptions)}onConfigurationChanged(e){this._visibleLines.onConfigurationChanged(e),e.hasChanged(132)&&(this._maxLineWidth=0);const t=this._context.configuration.options,i=t.get(44),n=t.get(132),o=t.get(131);return this._lineHeight=t.get(59),this._typicalHalfwidthCharacterWidth=i.typicalHalfwidthCharacterWidth,this._isViewportWrapping=n.isViewportWrapping,this._revealHorizontalRightPadding=t.get(89),this._horizontalScrollbarHeight=o.horizontalScrollbarHeight,this._cursorSurroundingLines=t.get(25),this._cursorSurroundingLinesStyle=t.get(26),this._canUseLayerHinting=!t.get(28),ii(this.domNode,i),this._onOptionsMaybeChanged(),e.hasChanged(131)&&(this._maxLineWidth=0),!0}_onOptionsMaybeChanged(){const e=this._context.configuration,t=new aw(e,this._context.theme.type);if(!this._viewLineOptions.equals(t)){this._viewLineOptions=t;const i=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber();for(let o=i;o<=n;o++)this._visibleLines.getVisibleLine(o).onOptionsChanged(this._viewLineOptions);return!0}return!1}onCursorStateChanged(e){const t=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber();let n=!1;for(let o=t;o<=i;o++)n=this._visibleLines.getVisibleLine(o).onSelectionChanged()||n;return n}onDecorationsChanged(e){{const t=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber();for(let n=t;n<=i;n++)this._visibleLines.getVisibleLine(n).onDecorationsChanged()}return!0}onFlushed(e){const t=this._visibleLines.onFlushed(e);return this._maxLineWidth=0,t}onLinesChanged(e){return this._visibleLines.onLinesChanged(e)}onLinesDeleted(e){return this._visibleLines.onLinesDeleted(e)}onLinesInserted(e){return this._visibleLines.onLinesInserted(e)}onRevealRangeRequest(e){const t=this._computeScrollTopToRevealRange(this._context.viewLayout.getFutureViewport(),e.source,e.minimalReveal,e.range,e.selections,e.verticalType);if(t===-1)return!1;let i=this._context.viewLayout.validateScrollPosition({scrollTop:t});e.revealHorizontal?e.range&&e.range.startLineNumber!==e.range.endLineNumber?i={scrollTop:i.scrollTop,scrollLeft:0}:e.range?this._horizontalRevealRequest=new gR(e.minimalReveal,e.range.startLineNumber,e.range.startColumn,e.range.endColumn,this._context.viewLayout.getCurrentScrollTop(),i.scrollTop,e.scrollType):e.selections&&e.selections.length>0&&(this._horizontalRevealRequest=new mR(e.minimalReveal,e.selections,this._context.viewLayout.getCurrentScrollTop(),i.scrollTop,e.scrollType)):this._horizontalRevealRequest=null;const o=Math.abs(this._context.viewLayout.getCurrentScrollTop()-i.scrollTop)<=this._lineHeight?1:e.scrollType;return this._context.viewModel.viewLayout.setScrollPosition(i,o),!0}onScrollChanged(e){if(this._horizontalRevealRequest&&e.scrollLeftChanged&&(this._horizontalRevealRequest=null),this._horizontalRevealRequest&&e.scrollTopChanged){const t=Math.min(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop),i=Math.max(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop);(e.scrollTopi)&&(this._horizontalRevealRequest=null)}return this.domNode.setWidth(e.scrollWidth),this._visibleLines.onScrollChanged(e)||!0}onTokensChanged(e){return this._visibleLines.onTokensChanged(e)}onZonesChanged(e){return this._context.viewModel.viewLayout.setMaxLineWidth(this._maxLineWidth),this._visibleLines.onZonesChanged(e)}onThemeChanged(e){return this._onOptionsMaybeChanged()}getPositionFromDOMInfo(e,t){const i=this._getViewLineDomNode(e);if(i===null)return null;const n=this._getLineNumberFor(i);if(n===-1||n<1||n>this._context.viewModel.getLineCount())return null;if(this._context.viewModel.getLineMaxColumn(n)===1)return new A(n,1);const o=this._visibleLines.getStartLineNumber(),r=this._visibleLines.getEndLineNumber();if(nr)return null;let a=this._visibleLines.getVisibleLine(n).getColumnOfNodeOffset(n,e,t);const l=this._context.viewModel.getLineMinColumn(n);return ai?-1:this._visibleLines.getVisibleLine(e).getWidth()}linesVisibleRangesForRange(e,t){if(this.shouldRender())return null;const i=e.endLineNumber,n=D.intersectRanges(e,this._lastRenderedData.getCurrentVisibleRange());if(!n)return null;let o=[],r=0;const a=new rw(this.domNode.domNode,this._textRangeRestingSpot);let l=0;t&&(l=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new A(n.startLineNumber,1)).lineNumber);const c=this._visibleLines.getStartLineNumber(),h=this._visibleLines.getEndLineNumber();for(let d=n.startLineNumber;d<=n.endLineNumber;d++){if(dh)continue;const u=d===n.startLineNumber?n.startColumn:1,f=d===n.endLineNumber?n.endColumn:this._context.viewModel.getLineMaxColumn(d),m=this._visibleLines.getVisibleLine(d).getVisibleRangesForRange(d,u,f,a);if(!!m){if(t&&dthis._visibleLines.getEndLineNumber()?null:this._visibleLines.getVisibleLine(e).getVisibleRangesForRange(e,t,i,new rw(this.domNode.domNode,this._textRangeRestingSpot))}visibleRangeForPosition(e){const t=this._visibleRangesForLineRange(e.lineNumber,e.column,e.column);return t?new F5(t.outsideRenderedLine,t.ranges[0].left):null}updateLineWidths(){this._updateLineWidths(!1)}_updateLineWidthsFast(){return this._updateLineWidths(!0)}_updateLineWidthsSlow(){this._updateLineWidths(!1)}_updateLineWidths(e){const t=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber();let n=1,o=!0;for(let r=t;r<=i;r++){const a=this._visibleLines.getVisibleLine(r);if(e&&!a.getWidthIsFast()){o=!1;continue}n=Math.max(n,a.getWidth())}return o&&t===1&&i===this._context.viewModel.getLineCount()&&(this._maxLineWidth=0),this._ensureMaxLineWidth(n),o}_checkMonospaceFontAssumptions(){let e=-1,t=-1;const i=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber();for(let o=i;o<=n;o++){const r=this._visibleLines.getVisibleLine(o);if(r.needsMonospaceFontCheck()){const a=r.getWidth();a>t&&(t=a,e=o)}}if(e!==-1&&!this._visibleLines.getVisibleLine(e).monospaceAssumptionsAreValid())for(let o=i;o<=n;o++)this._visibleLines.getVisibleLine(o).onMonospaceAssumptionsInvalidated()}prepareRender(){throw new Error("Not supported")}render(){throw new Error("Not supported")}renderText(e){if(this._visibleLines.renderLines(e),this._lastRenderedData.setCurrentVisibleRange(e.visibleRange),this.domNode.setWidth(this._context.viewLayout.getScrollWidth()),this.domNode.setHeight(Math.min(this._context.viewLayout.getScrollHeight(),1e6)),this._horizontalRevealRequest){const i=this._horizontalRevealRequest;if(e.startLineNumber<=i.minLineNumber&&i.maxLineNumber<=e.endLineNumber){this._horizontalRevealRequest=null,this.onDidRender();const n=this._computeScrollLeftToReveal(i);n&&(this._isViewportWrapping||this._ensureMaxLineWidth(n.maxHorizontalOffset),this._context.viewModel.viewLayout.setScrollPosition({scrollLeft:n.scrollLeft},i.scrollType))}}if(this._updateLineWidthsFast()||this._asyncUpdateLineWidths.schedule(),qt&&!this._asyncCheckMonospaceFontAssumptions.isScheduled()){const i=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber();for(let o=i;o<=n;o++)if(this._visibleLines.getVisibleLine(o).needsMonospaceFontCheck()){this._asyncCheckMonospaceFontAssumptions.schedule();break}}this._linesContent.setLayerHinting(this._canUseLayerHinting),this._linesContent.setContain("strict");const t=this._context.viewLayout.getCurrentScrollTop()-e.bigNumbersDelta;this._linesContent.setTop(-t),this._linesContent.setLeft(-this._context.viewLayout.getCurrentScrollLeft())}_ensureMaxLineWidth(e){const t=Math.ceil(e);this._maxLineWidth0){let _=o[0].startLineNumber,b=o[0].endLineNumber;for(let w=1,C=o.length;wl){if(!h)return-1;m=d}else if(r===5||r===6)if(r===6&&a<=d&&u<=c)m=a;else{const _=Math.max(5*this._lineHeight,l*.2),b=d-_,w=u-l;m=Math.max(w,b)}else if(r===1||r===2)if(r===2&&a<=d&&u<=c)m=a;else{const _=(d+u)/2;m=Math.max(0,_-l/2)}else m=this._computeMinimumScrolling(a,c,d,u,r===3,r===4);return m}_computeScrollLeftToReveal(e){const t=this._context.viewLayout.getCurrentViewport(),i=t.left,n=i+t.width;let o=1073741824,r=0;if(e.type==="range"){const l=this._visibleRangesForLineRange(e.lineNumber,e.startColumn,e.endColumn);if(!l)return null;for(const c of l.ranges)o=Math.min(o,Math.round(c.left)),r=Math.max(r,Math.round(c.left+c.width))}else for(const l of e.selections){if(l.startLineNumber!==l.endLineNumber)return null;const c=this._visibleRangesForLineRange(l.startLineNumber,l.startColumn,l.endColumn);if(!c)return null;for(const h of c.ranges)o=Math.min(o,Math.round(h.left)),r=Math.max(r,Math.round(h.left+h.width))}return e.minimalReveal||(o=Math.max(0,o-Gf.HORIZONTAL_EXTRA_PX),r+=this._revealHorizontalRightPadding),e.type==="selections"&&r-o>t.width?null:{scrollLeft:this._computeMinimumScrolling(i,n,o,r),maxHorizontalOffset:r}}_computeMinimumScrolling(e,t,i,n,o,r){e=e|0,t=t|0,i=i|0,n=n|0,o=!!o,r=!!r;const a=t-e;if(n-it)return Math.max(0,n-a)}else return i;return e}}Gf.HORIZONTAL_EXTRA_PX=30;class pR extends H0{constructor(e){super(),this._context=e;const i=this._context.configuration.options.get(131);this._decorationsLeft=i.decorationsLeft,this._decorationsWidth=i.decorationsWidth,this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){const i=this._context.configuration.options.get(131);return this._decorationsLeft=i.decorationsLeft,this._decorationsWidth=i.decorationsWidth,!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}_getDecorations(e){const t=e.getDecorationsInViewport(),i=[];let n=0;for(let o=0,r=t.length;o
    ',l=[];for(let c=t;c<=i;c++){const h=c-t,d=n[h];let u="";for(let f=0,m=d.length;f';o[a]=c}this._renderResult=o}render(e,t){return this._renderResult?this._renderResult[t-e]:""}}class Mi{constructor(e,t,i,n){this._rgba8Brand=void 0,this.r=Mi._clamp(e),this.g=Mi._clamp(t),this.b=Mi._clamp(i),this.a=Mi._clamp(n)}equals(e){return this.r===e.r&&this.g===e.g&&this.b===e.b&&this.a===e.a}static _clamp(e){return e<0?0:e>255?255:e|0}}Mi.Empty=new Mi(0,0,0,0);class Dh extends W{constructor(){super(),this._onDidChange=new M,this.onDidChange=this._onDidChange.event,this._updateColorMap(),this._register(et.onDidChange(e=>{e.changedColorMap&&this._updateColorMap()}))}static getInstance(){return this._INSTANCE||(this._INSTANCE=new Dh),this._INSTANCE}_updateColorMap(){const e=et.getColorMap();if(!e){this._colors=[Mi.Empty],this._backgroundIsLight=!0;return}this._colors=[Mi.Empty];for(let i=1;i=.5,this._onDidChange.fire(void 0)}getColor(e){return(e<1||e>=this._colors.length)&&(e=2),this._colors[e]}backgroundIsLight(){return this._backgroundIsLight}}Dh._INSTANCE=null;const bR=(()=>{const s=[];for(let e=32;e<=126;e++)s.push(e);return s.push(65533),s})(),CR=(s,e)=>(s-=32,s<0||s>96?e<=2?(s+96)%96:96-1:s);class zc{constructor(e,t){this.scale=t,this._minimapCharRendererBrand=void 0,this.charDataNormal=zc.soften(e,12/15),this.charDataLight=zc.soften(e,50/60)}static soften(e,t){const i=new Uint8ClampedArray(e.length);for(let n=0,o=e.length;ne.width||i+m>e.height){console.warn("bad render request outside image data");return}const _=h?this.charDataLight:this.charDataNormal,b=CR(n,c),w=e.width*4,C=a.r,v=a.g,S=a.b,k=o.r-C,x=o.g-v,L=o.b-S,y=Math.max(r,l),I=e.data;let R=b*u*f,T=i*w+t*4;for(let P=0;Pe.width||i+d>e.height){console.warn("bad render request outside image data");return}const u=e.width*4,f=.5*(o/255),m=r.r,_=r.g,b=r.b,w=n.r-m,C=n.g-_,v=n.b-b,S=m+w*f,k=_+C*f,x=b+v*f,L=Math.max(o,a),y=e.data;let I=i*u+t*4;for(let R=0;R{const e=new Uint8ClampedArray(s.length/2);for(let t=0;t>1]=bw[s[t]]<<4|bw[s[t+1]]&15;return e},ww={1:_r(()=>Cw("0000511D6300CF609C709645A78432005642574171487021003C451900274D35D762755E8B629C5BA856AF57BA649530C167D1512A272A3F6038604460398526BCA2A968DB6F8957C768BE5FBE2FB467CF5D8D5B795DC7625B5DFF50DE64C466DB2FC47CD860A65E9A2EB96CB54CE06DA763AB2EA26860524D3763536601005116008177A8705E53AB738E6A982F88BAA35B5F5B626D9C636B449B737E5B7B678598869A662F6B5B8542706C704C80736A607578685B70594A49715A4522E792")),2:_r(()=>Cw("000000000000000055394F383D2800008B8B1F210002000081B1CBCBCC820000847AAF6B9AAF2119BE08B8881AD60000A44FD07DCCF107015338130C00000000385972265F390B406E2437634B4B48031B12B8A0847000001E15B29A402F0000000000004B33460B00007A752C2A0000000000004D3900000084394B82013400ABA5CFC7AD9C0302A45A3E5A98AB000089A43382D97900008BA54AA087A70A0248A6A7AE6DBE0000BF6F94987EA40A01A06DCFA7A7A9030496C32F77891D0000A99FB1A0AFA80603B29AB9CA75930D010C0948354D3900000C0948354F37460D0028BE673D8400000000AF9D7B6E00002B007AA8933400007AA642675C2700007984CFB9C3985B768772A8A6B7B20000CAAECAAFC4B700009F94A6009F840009D09F9BA4CA9C0000CC8FC76DC87F0000C991C472A2000000A894A48CA7B501079BA2C9C69BA20000B19A5D3FA89000005CA6009DA2960901B0A7F0669FB200009D009E00B7890000DAD0F5D092820000D294D4C48BD10000B5A7A4A3B1A50402CAB6CBA6A2000000B5A7A4A3B1A8044FCDADD19D9CB00000B7778F7B8AAE0803C9AB5D3F5D3F00009EA09EA0BAB006039EA0989A8C7900009B9EF4D6B7C00000A9A7816CACA80000ABAC84705D3F000096DA635CDC8C00006F486F266F263D4784006124097B00374F6D2D6D2D6D4A3A95872322000000030000000000008D8939130000000000002E22A5C9CBC70600AB25C0B5C9B400061A2DB04CA67001082AA6BEBEBFC606002321DACBC19E03087AA08B6768380000282FBAC0B8CA7A88AD25BBA5A29900004C396C5894A6000040485A6E356E9442A32CD17EADA70000B4237923628600003E2DE9C1D7B500002F25BBA5A2990000231DB6AFB4A804023025C0B5CAB588062B2CBDBEC0C706882435A75CA20000002326BD6A82A908048B4B9A5A668000002423A09CB4BB060025259C9D8A7900001C1FCAB2C7C700002A2A9387ABA200002626A4A47D6E9D14333163A0C87500004B6F9C2D643A257049364936493647358A34438355497F1A0000A24C1D590000D38DFFBDD4CD3126"))};class hc{static create(e,t){if(this.lastCreated&&e===this.lastCreated.scale&&t===this.lastFontFamily)return this.lastCreated;let i;return ww[e]?i=new zc(ww[e](),e):i=hc.createFromSampleData(hc.createSampleData(t).data,e),this.lastFontFamily=t,this.lastCreated=i,i}static createSampleData(e){const t=document.createElement("canvas"),i=t.getContext("2d");t.style.height=`${16}px`,t.height=16,t.width=96*10,t.style.width=96*10+"px",i.fillStyle="#ffffff",i.font=`bold ${16}px ${e}`,i.textBaseline="middle";let n=0;for(const o of bR)i.fillText(String.fromCharCode(o),n,16/2),n+=10;return i.getImageData(0,0,96*10,16)}static createFromSampleData(e,t){if(e.length!==61440)throw new Error("Unexpected source in MinimapCharRenderer");const n=hc._downsample(e,t);return new zc(n,t)}static _downsampleChar(e,t,i,n,o){const r=1*o,a=2*o;let l=n,c=0;for(let h=0;h0){const c=255/l;for(let h=0;hhc.create(this.fontScale,l.fontFamily)),this.defaultBackgroundColor=i.getColor(2),this.backgroundColor=Uc._getMinimapBackground(t,this.defaultBackgroundColor),this.foregroundAlpha=Uc._getMinimapForegroundOpacity(t)}static _getMinimapBackground(e,t){const i=e.getColor(S5);return i?new Mi(i.rgba.r,i.rgba.g,i.rgba.b,Math.round(255*i.rgba.a)):t}static _getMinimapForegroundOpacity(e){const t=e.getColor(y5);return t?Mi._clamp(Math.round(255*t.rgba.a)):255}equals(e){return this.renderMinimap===e.renderMinimap&&this.size===e.size&&this.minimapHeightIsEditorHeight===e.minimapHeightIsEditorHeight&&this.scrollBeyondLastLine===e.scrollBeyondLastLine&&this.showSlider===e.showSlider&&this.pixelRatio===e.pixelRatio&&this.typicalHalfwidthCharacterWidth===e.typicalHalfwidthCharacterWidth&&this.lineHeight===e.lineHeight&&this.minimapLeft===e.minimapLeft&&this.minimapWidth===e.minimapWidth&&this.minimapHeight===e.minimapHeight&&this.canvasInnerWidth===e.canvasInnerWidth&&this.canvasInnerHeight===e.canvasInnerHeight&&this.canvasOuterWidth===e.canvasOuterWidth&&this.canvasOuterHeight===e.canvasOuterHeight&&this.isSampling===e.isSampling&&this.editorHeight===e.editorHeight&&this.fontScale===e.fontScale&&this.minimapLineHeight===e.minimapLineHeight&&this.minimapCharWidth===e.minimapCharWidth&&this.defaultBackgroundColor&&this.defaultBackgroundColor.equals(e.defaultBackgroundColor)&&this.backgroundColor&&this.backgroundColor.equals(e.backgroundColor)&&this.foregroundAlpha===e.foregroundAlpha}}class dc{constructor(e,t,i,n,o,r,a,l){this.scrollTop=e,this.scrollHeight=t,this.sliderNeeded=i,this._computedSliderRatio=n,this.sliderTop=o,this.sliderHeight=r,this.startLineNumber=a,this.endLineNumber=l}getDesiredScrollTopFromDelta(e){return Math.round(this.scrollTop+e/this._computedSliderRatio)}getDesiredScrollTopFromTouchLocation(e){return Math.round((e-this.sliderHeight/2)/this._computedSliderRatio)}static create(e,t,i,n,o,r,a,l,c,h,d){const u=e.pixelRatio,f=e.minimapLineHeight,m=Math.floor(e.canvasInnerHeight/f),_=e.lineHeight;if(e.minimapHeightIsEditorHeight){const k=l*e.lineHeight+(e.scrollBeyondLastLine?o-e.lineHeight:0),x=Math.max(1,Math.floor(o*o/k)),L=Math.max(0,e.minimapHeight-x),y=L/(h-o),I=c*y,R=L>0,T=Math.floor(e.canvasInnerHeight/e.minimapLineHeight);return new dc(c,h,R,y,I,x,1,Math.min(a,T))}let b;if(r&&i!==a){const k=i-t+1;b=Math.floor(k*f/u)}else{const k=o/_;b=Math.floor(k*f/u)}let w;e.scrollBeyondLastLine?w=(a-1)*f/u:w=Math.max(0,a*f/u-b),w=Math.min(e.minimapHeight-b,w);const C=w/(h-o),v=c*C;let S=0;if(e.scrollBeyondLastLine&&(S=o/_-1),m>=a+S){const x=a,L=w>0;return new dc(c,h,L,C,v,b,1,x)}else{let k=Math.max(1,Math.floor(t-v*u/f));d&&d.scrollHeight===h&&(d.scrollTop>c&&(k=Math.min(k,d.startLineNumber)),d.scrollTopPu.INVALID),this._renderedLines._set(e.startLineNumber,i)}linesEquals(e){if(!this.scrollEquals(e))return!1;const i=this._renderedLines._get().lines;for(let n=0,o=i.length;n1){for(let S=0,k=a-1;S0&&this.minimapLines[i-1]>=e;)i--;let n=this.modelLineToMinimapLine(t)-1;for(;n+1t)return null}return[i+1,n+1]}decorationLineRangeToMinimapLineRange(e,t){let i=this.modelLineToMinimapLine(e),n=this.modelLineToMinimapLine(t);return e!==t&&n===i&&(n===this.minimapLines.length?i>1&&i--:n++),[i,n]}onLinesDeleted(e){const t=e.toLineNumber-e.fromLineNumber+1;let i=this.minimapLines.length,n=0;for(let o=this.minimapLines.length-1;o>=0&&!(this.minimapLines[o]=0&&!(this.minimapLines[i]0,scrollWidth:e.scrollWidth,scrollHeight:e.scrollHeight,viewportStartLineNumber:t,viewportEndLineNumber:i,viewportStartLineNumberVerticalOffset:e.getVerticalOffsetForLineNumber(t),scrollTop:e.scrollTop,scrollLeft:e.scrollLeft,viewportWidth:e.viewportWidth,viewportHeight:e.viewportHeight};this._actual.render(n)}_recreateLineSampling(){this._minimapSelections=null;const e=Boolean(this._samplingState),[t,i]=$c.compute(this.options,this._context.viewModel.getLineCount(),this._samplingState);if(this._samplingState=t,e&&this._samplingState)for(const n of i)switch(n.type){case"deleted":this._actual.onLinesDeleted(n.deleteFromLineNumber,n.deleteToLineNumber);break;case"inserted":this._actual.onLinesInserted(n.insertFromLineNumber,n.insertToLineNumber);break;case"flush":this._actual.onFlushed();break}}getLineCount(){return this._samplingState?this._samplingState.minimapLines.length:this._context.viewModel.getLineCount()}getRealLineCount(){return this._context.viewModel.getLineCount()}getLineContent(e){return this._samplingState?this._context.viewModel.getLineContent(this._samplingState.minimapLines[e-1]):this._context.viewModel.getLineContent(e)}getLineMaxColumn(e){return this._samplingState?this._context.viewModel.getLineMaxColumn(this._samplingState.minimapLines[e-1]):this._context.viewModel.getLineMaxColumn(e)}getMinimapLinesRenderingData(e,t,i){if(this._samplingState){const n=[];for(let o=0,r=t-e+1;o{if(i.preventDefault(),this._model.options.renderMinimap===0||!this._lastRenderData)return;if(this._model.options.size!=="proportional"){if(i.leftButton&&this._lastRenderData){const c=en(this._slider.domNode),h=c.top+c.height/2;this._startSliderDragging(i.buttons,i.posx,h,i.posy,this._lastRenderData.renderedLayout)}return}const o=this._model.options.minimapLineHeight,r=this._model.options.canvasInnerHeight/this._model.options.canvasOuterHeight*i.browserEvent.offsetY;let l=Math.floor(r/o)+this._lastRenderData.renderedLayout.startLineNumber;l=Math.min(l,this._model.getLineCount()),this._model.revealLineNumber(l)}),this._sliderMouseMoveMonitor=new Wf,this._sliderMouseDownListener=wi(this._slider.domNode,"mousedown",i=>{i.preventDefault(),i.stopPropagation(),i.leftButton&&this._lastRenderData&&this._startSliderDragging(i.buttons,i.posx,i.posy,i.posy,this._lastRenderData.renderedLayout)}),this._gestureDisposable=Se.addTarget(this._domNode.domNode),this._sliderTouchStartListener=V(this._domNode.domNode,Ae.Start,i=>{i.preventDefault(),i.stopPropagation(),this._lastRenderData&&(this._slider.toggleClassName("active",!0),this._gestureInProgress=!0,this.scrollDueToTouchEvent(i))},{passive:!1}),this._sliderTouchMoveListener=V(this._domNode.domNode,Ae.Change,i=>{i.preventDefault(),i.stopPropagation(),this._lastRenderData&&this._gestureInProgress&&this.scrollDueToTouchEvent(i)},{passive:!1}),this._sliderTouchEndListener=wi(this._domNode.domNode,Ae.End,i=>{i.preventDefault(),i.stopPropagation(),this._gestureInProgress=!1,this._slider.toggleClassName("active",!1)})}_startSliderDragging(e,t,i,n,o){this._slider.toggleClassName("active",!0);const r=(a,l)=>{const c=Math.abs(l-t);if(li&&c>wR){this._model.setScrollTop(o.scrollTop);return}const h=a-i;this._model.setScrollTop(o.getDesiredScrollTopFromDelta(h))};n!==i&&r(n,t),this._sliderMouseMoveMonitor.startMonitoring(this._slider.domNode,e,M0,a=>r(a.posy,a.posx),()=>{this._slider.toggleClassName("active",!1)})}scrollDueToTouchEvent(e){const t=this._domNode.domNode.getBoundingClientRect().top,i=this._lastRenderData.renderedLayout.getDesiredScrollTopFromTouchLocation(e.pageY-t);this._model.setScrollTop(i)}dispose(){this._mouseDownListener.dispose(),this._sliderMouseMoveMonitor.dispose(),this._sliderMouseDownListener.dispose(),this._gestureDisposable.dispose(),this._sliderTouchStartListener.dispose(),this._sliderTouchMoveListener.dispose(),this._sliderTouchEndListener.dispose(),super.dispose()}_getMinimapDomNodeClassName(){return this._model.options.showSlider==="always"?"minimap slider-always":"minimap slider-mouseover"}getDomNode(){return this._domNode}_applyLayout(){this._domNode.setLeft(this._model.options.minimapLeft),this._domNode.setWidth(this._model.options.minimapWidth),this._domNode.setHeight(this._model.options.minimapHeight),this._shadow.setHeight(this._model.options.minimapHeight),this._canvas.setWidth(this._model.options.canvasOuterWidth),this._canvas.setHeight(this._model.options.canvasOuterHeight),this._canvas.domNode.width=this._model.options.canvasInnerWidth,this._canvas.domNode.height=this._model.options.canvasInnerHeight,this._decorationsCanvas.setWidth(this._model.options.canvasOuterWidth),this._decorationsCanvas.setHeight(this._model.options.canvasOuterHeight),this._decorationsCanvas.domNode.width=this._model.options.canvasInnerWidth,this._decorationsCanvas.domNode.height=this._model.options.canvasInnerHeight,this._slider.setWidth(this._model.options.minimapWidth)}_getBuffer(){return this._buffers||this._model.options.canvasInnerWidth>0&&this._model.options.canvasInnerHeight>0&&(this._buffers=new z0(this._canvas.domNode.getContext("2d"),this._model.options.canvasInnerWidth,this._model.options.canvasInnerHeight,this._model.options.backgroundColor)),this._buffers?this._buffers.getBuffer():null}onDidChangeOptions(){this._lastRenderData=null,this._buffers=null,this._applyLayout(),this._domNode.setClassName(this._getMinimapDomNodeClassName())}onSelectionChanged(){return this._renderDecorations=!0,!0}onDecorationsChanged(){return this._renderDecorations=!0,!0}onFlushed(){return this._lastRenderData=null,!0}onLinesChanged(e,t){return this._lastRenderData?this._lastRenderData.onLinesChanged(e,t):!1}onLinesDeleted(e,t){return this._lastRenderData&&this._lastRenderData.onLinesDeleted(e,t),!0}onLinesInserted(e,t){return this._lastRenderData&&this._lastRenderData.onLinesInserted(e,t),!0}onScrollChanged(){return this._renderDecorations=!0,!0}onThemeChanged(){return this._selectionColor=this._theme.getColor(iw),this._renderDecorations=!0,!0}onTokensChanged(e){return this._lastRenderData?this._lastRenderData.onTokensChanged(e):!1}onTokensColorsChanged(){return this._lastRenderData=null,this._buffers=null,!0}onZonesChanged(){return this._lastRenderData=null,!0}render(e){if(this._model.options.renderMinimap===0){this._shadow.setClassName("minimap-shadow-hidden"),this._sliderHorizontal.setWidth(0),this._sliderHorizontal.setHeight(0);return}e.scrollLeft+e.viewportWidth>=e.scrollWidth?this._shadow.setClassName("minimap-shadow-hidden"):this._shadow.setClassName("minimap-shadow-visible");const i=dc.create(this._model.options,e.viewportStartLineNumber,e.viewportEndLineNumber,e.viewportStartLineNumberVerticalOffset,e.viewportHeight,e.viewportContainsWhitespaceGaps,this._model.getLineCount(),this._model.getRealLineCount(),e.scrollTop,e.scrollHeight,this._lastRenderData?this._lastRenderData.renderedLayout:null);this._slider.setDisplay(i.sliderNeeded?"block":"none"),this._slider.setTop(i.sliderTop),this._slider.setHeight(i.sliderHeight),this._sliderHorizontal.setLeft(0),this._sliderHorizontal.setWidth(this._model.options.minimapWidth),this._sliderHorizontal.setTop(0),this._sliderHorizontal.setHeight(i.sliderHeight),this.renderDecorations(i),this._lastRenderData=this.renderLines(i)}renderDecorations(e){if(this._renderDecorations){this._renderDecorations=!1;const t=this._model.getSelections();t.sort(D.compareRangesUsingStarts);const i=this._model.getMinimapDecorationsInViewport(e.startLineNumber,e.endLineNumber);i.sort((u,f)=>(u.options.zIndex||0)-(f.options.zIndex||0));const{canvasInnerWidth:n,canvasInnerHeight:o}=this._model.options,r=this._model.options.minimapLineHeight,a=this._model.options.minimapCharWidth,l=this._model.getOptions().tabSize,c=this._decorationsCanvas.domNode.getContext("2d");c.clearRect(0,0,n,o);const h=new Sw(e.startLineNumber,e.endLineNumber,!1);this._renderSelectionLineHighlights(c,t,h,e,r),this._renderDecorationsLineHighlights(c,i,h,e,r);const d=new Sw(e.startLineNumber,e.endLineNumber,null);this._renderSelectionsHighlights(c,t,d,e,r,l,a,n),this._renderDecorationsHighlights(c,i,d,e,r,l,a,n)}}_renderSelectionLineHighlights(e,t,i,n,o){if(!this._selectionColor||this._selectionColor.isTransparent())return;e.fillStyle=this._selectionColor.transparent(.5).toString();let r=0,a=0;for(const l of t){const c=Math.max(n.startLineNumber,l.startLineNumber),h=Math.min(n.endLineNumber,l.endLineNumber);if(c>h)continue;for(let f=c;f<=h;f++)i.set(f,!0);const d=(c-n.startLineNumber)*o,u=(h-n.startLineNumber)*o+o;a>=d||(a>r&&e.fillRect(Ks,r,e.canvas.width,a-r),r=d),a=u}a>r&&e.fillRect(Ks,r,e.canvas.width,a-r)}_renderDecorationsLineHighlights(e,t,i,n,o){const r=new Map;for(let a=t.length-1;a>=0;a--){const l=t[a],c=l.options.minimap;if(!c||c.position!==Ts.Inline)continue;const h=Math.max(n.startLineNumber,l.range.startLineNumber),d=Math.min(n.endLineNumber,l.range.endLineNumber);if(h>d)continue;const u=c.getColor(this._theme.value);if(!u||u.isTransparent())continue;let f=r.get(u.toString());f||(f=u.transparent(.5).toString(),r.set(u.toString(),f)),e.fillStyle=f;for(let m=h;m<=d;m++){if(i.has(m))continue;i.set(m,!0);const _=(h-n.startLineNumber)*o;e.fillRect(Ks,_,e.canvas.width,o)}}}_renderSelectionsHighlights(e,t,i,n,o,r,a,l){if(!(!this._selectionColor||this._selectionColor.isTransparent()))for(const c of t){const h=Math.max(n.startLineNumber,c.startLineNumber),d=Math.min(n.endLineNumber,c.endLineNumber);if(!(h>d))for(let u=h;u<=d;u++)this.renderDecorationOnLine(e,i,c,this._selectionColor,n,u,o,o,r,a,l)}}_renderDecorationsHighlights(e,t,i,n,o,r,a,l){for(const c of t){const h=c.options.minimap;if(!h)continue;const d=Math.max(n.startLineNumber,c.range.startLineNumber),u=Math.min(n.endLineNumber,c.range.endLineNumber);if(d>u)continue;const f=h.getColor(this._theme.value);if(!(!f||f.isTransparent()))for(let m=d;m<=u;m++)switch(h.position){case Ts.Inline:this.renderDecorationOnLine(e,i,c.range,f,n,m,o,o,r,a,l);continue;case Ts.Gutter:{const _=(m-n.startLineNumber)*o,b=2;this.renderDecoration(e,f,b,_,vR,o);continue}}}}renderDecorationOnLine(e,t,i,n,o,r,a,l,c,h,d){const u=(r-o.startLineNumber)*l;if(u+a<0||u>this._model.options.canvasInnerHeight)return;const{startLineNumber:f,endLineNumber:m}=i,_=f===r?i.startColumn:1,b=m===r?i.endColumn:this._model.getLineMaxColumn(r),w=this.getXOffsetForPosition(t,r,_,c,h,d),C=this.getXOffsetForPosition(t,r,b,c,h,d);this.renderDecoration(e,n,w,u,C-w,a)}getXOffsetForPosition(e,t,i,n,o,r){if(i===1)return Ks;if((i-1)*o>=r)return r;let l=e.get(t);if(!l){const c=this._model.getLineContent(t);l=[Ks];let h=Ks;for(let d=1;d=r){l[d]=r;break}l[d]=m,h=m}e.set(t,l)}return i-1k?Math.floor((n-k)/2):0,L=u.a/255,y=new Mi(Math.round((u.r-d.r)*L+d.r),Math.round((u.g-d.g)*L+d.g),Math.round((u.b-d.b)*L+d.b),255);let I=0;const R=[];for(let z=0,Q=i-t+1;z=0&&RC)return;const P=b.charCodeAt(k);if(P===9){const F=u-(k+x)%u;x+=F-1,S+=F*r}else if(P===32)S+=r;else{const F=vo(P)?2:1;for(let j=0;jC)return}}}}}class Sw{constructor(e,t,i){this._startLineNumber=e,this._endLineNumber=t,this._defaultValue=i,this._values=[];for(let n=0,o=this._endLineNumber-this._startLineNumber+1;nthis._endLineNumber||(this._values[e-this._startLineNumber]=t)}get(e){return ethis._endLineNumber?this._defaultValue:this._values[e-this._startLineNumber]}}ni((s,e)=>{const t=s.getColor(L5);t&&e.addRule(`.monaco-editor .minimap-slider .minimap-slider-horizontal { background: ${t}; }`);const i=s.getColor(k5);i&&e.addRule(`.monaco-editor .minimap-slider:hover .minimap-slider-horizontal { background: ${i}; }`);const n=s.getColor(x5);n&&e.addRule(`.monaco-editor .minimap-slider.active .minimap-slider-horizontal { background: ${n}; }`);const o=s.getColor(vl);o&&e.addRule(`.monaco-editor .minimap-shadow-visible { box-shadow: ${o} -6px 0 6px -6px inset; }`)});class yR extends Wi{constructor(e){super(e);const i=this._context.configuration.options.get(131);this._widgets={},this._verticalScrollbarWidth=i.verticalScrollbarWidth,this._minimapWidth=i.minimap.minimapWidth,this._horizontalScrollbarHeight=i.horizontalScrollbarHeight,this._editorHeight=i.height,this._editorWidth=i.width,this._domNode=ue(document.createElement("div")),es.write(this._domNode,4),this._domNode.setClassName("overlayWidgets")}dispose(){super.dispose(),this._widgets={}}getDomNode(){return this._domNode}onConfigurationChanged(e){const i=this._context.configuration.options.get(131);return this._verticalScrollbarWidth=i.verticalScrollbarWidth,this._minimapWidth=i.minimap.minimapWidth,this._horizontalScrollbarHeight=i.horizontalScrollbarHeight,this._editorHeight=i.height,this._editorWidth=i.width,!0}addWidget(e){const t=ue(e.getDomNode());this._widgets[e.getId()]={widget:e,preference:null,domNode:t},t.setPosition("absolute"),t.setAttribute("widgetId",e.getId()),this._domNode.appendChild(t),this.setShouldRender()}setWidgetPosition(e,t){const i=this._widgets[e.getId()];return i.preference===t?!1:(i.preference=t,this.setShouldRender(),!0)}removeWidget(e){const t=e.getId();if(this._widgets.hasOwnProperty(t)){const n=this._widgets[t].domNode.domNode;delete this._widgets[t],n.parentNode.removeChild(n),this.setShouldRender()}}_renderWidget(e){const t=e.domNode;if(e.preference===null){t.unsetTop();return}if(e.preference===0)t.setTop(0),t.setRight(2*this._verticalScrollbarWidth+this._minimapWidth);else if(e.preference===1){const i=t.domNode.clientHeight;t.setTop(this._editorHeight-i-2*this._horizontalScrollbarHeight),t.setRight(2*this._verticalScrollbarWidth+this._minimapWidth)}else e.preference===2&&(t.setTop(0),t.domNode.style.right="50%")}prepareRender(e){}render(e){this._domNode.setWidth(this._editorWidth);const t=Object.keys(this._widgets);for(let i=0,n=t.length;i=3){const o=Math.floor(n/3),r=Math.floor(n/3),a=n-o-r,l=e,c=l+o,h=l+o+a;return[[0,l,c,l,h,l,c,l],[0,o,a,o+a,r,o+a+r,a+r,o+a+r]]}else if(i===2){const o=Math.floor(n/2),r=n-o,a=e,l=a+o;return[[0,a,a,a,l,a,a,a],[0,o,o,o,r,o+r,o+r,o+r]]}else{const o=e,r=n;return[[0,o,o,o,o,o,o,o],[0,r,r,r,r,r,r,r]]}}equals(e){return this.lineHeight===e.lineHeight&&this.pixelRatio===e.pixelRatio&&this.overviewRulerLanes===e.overviewRulerLanes&&this.renderBorder===e.renderBorder&&this.borderColor===e.borderColor&&this.hideCursor===e.hideCursor&&this.cursorColor===e.cursorColor&&this.themeType===e.themeType&&this.backgroundColor===e.backgroundColor&&this.top===e.top&&this.right===e.right&&this.domWidth===e.domWidth&&this.domHeight===e.domHeight&&this.canvasWidth===e.canvasWidth&&this.canvasHeight===e.canvasHeight}}class kR extends Wi{constructor(e){super(e),this._domNode=ue(document.createElement("canvas")),this._domNode.setClassName("decorationsOverviewRuler"),this._domNode.setPosition("absolute"),this._domNode.setLayerHinting(!0),this._domNode.setContain("strict"),this._domNode.setAttribute("aria-hidden","true"),this._updateSettings(!1),this._tokensColorTrackerListener=et.onDidChange(t=>{t.changedColorMap&&this._updateSettings(!0)}),this._cursorPositions=[]}dispose(){super.dispose(),this._tokensColorTrackerListener.dispose()}_updateSettings(e){const t=new LR(this._context.configuration,this._context.theme);return this._settings&&this._settings.equals(t)?!1:(this._settings=t,this._domNode.setTop(this._settings.top),this._domNode.setRight(this._settings.right),this._domNode.setWidth(this._settings.domWidth),this._domNode.setHeight(this._settings.domHeight),this._domNode.domNode.width=this._settings.canvasWidth,this._domNode.domNode.height=this._settings.canvasHeight,e&&this._render(),!0)}onConfigurationChanged(e){return this._updateSettings(!1)}onCursorStateChanged(e){this._cursorPositions=[];for(let t=0,i=e.selections.length;tt&&(T=t-c),y=T-c,I=T+c}y>C+1||k!==b?(v!==0&&h.fillRect(d[b],w,u[b],C-w),b=k,w=y,C=I):I>C&&(C=I)}h.fillRect(d[b],w,u[b],C-w)}if(!this._settings.hideCursor&&this._settings.cursorColor){const f=2*this._settings.pixelRatio|0,m=f/2|0,_=this._settings.x[7],b=this._settings.w[7];h.fillStyle=this._settings.cursorColor;let w=-100,C=-100;for(let v=0,S=this._cursorPositions.length;vt&&(x=t-m);const L=x-m,y=L+f;L>C+1?(v!==0&&h.fillRect(_,w,b,C-w),w=L,C=y):y>C&&(C=y)}h.fillRect(_,w,b,C-w)}this._settings.renderBorder&&this._settings.borderColor&&this._settings.overviewRulerLanes>0&&(h.beginPath(),h.lineWidth=1,h.strokeStyle=this._settings.borderColor,h.moveTo(0,0),h.lineTo(0,t),h.stroke(),h.moveTo(0,0),h.lineTo(e,0),h.stroke())}}class yw{constructor(e,t,i){this._colorZoneBrand=void 0,this.from=e|0,this.to=t|0,this.colorId=i|0}static compare(e,t){return e.colorId===t.colorId?e.from===t.from?e.to-t.to:e.from-t.from:e.colorId-t.colorId}}class jc{constructor(e,t,i,n){this._overviewRulerZoneBrand=void 0,this.startLineNumber=e,this.endLineNumber=t,this.heightInLines=i,this.color=n,this._colorZone=null}static compare(e,t){return e.color===t.color?e.startLineNumber===t.startLineNumber?e.heightInLines===t.heightInLines?e.endLineNumber-t.endLineNumber:e.heightInLines-t.heightInLines:e.startLineNumber-t.startLineNumber:e.colori&&(_=i-b);const w=h.color;let C=this._color2Id[w];C||(C=++this._lastAssignedId,this._color2Id[w]=C,this._id2Color[C]=w);const v=new yw(_-b,_+b,C);h.setColorZone(v),a.push(v)}return this._colorZonesInvalid=!1,a.sort(yw.compare),a}}class IR extends Ih{constructor(e,t){super(),this._context=e;const i=this._context.configuration.options;this._domNode=ue(document.createElement("canvas")),this._domNode.setClassName(t),this._domNode.setPosition("absolute"),this._domNode.setLayerHinting(!0),this._domNode.setContain("strict"),this._zoneManager=new xR(n=>this._context.viewLayout.getVerticalOffsetForLineNumber(n)),this._zoneManager.setDOMWidth(0),this._zoneManager.setDOMHeight(0),this._zoneManager.setOuterHeight(this._context.viewLayout.getScrollHeight()),this._zoneManager.setLineHeight(i.get(59)),this._zoneManager.setPixelRatio(i.get(129)),this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options;return e.hasChanged(59)&&(this._zoneManager.setLineHeight(t.get(59)),this._render()),e.hasChanged(129)&&(this._zoneManager.setPixelRatio(t.get(129)),this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),this._render()),!0}onFlushed(e){return this._render(),!0}onScrollChanged(e){return e.scrollHeightChanged&&(this._zoneManager.setOuterHeight(e.scrollHeight),this._render()),!0}onZonesChanged(e){return this._render(),!0}getDomNode(){return this._domNode.domNode}setLayout(e){this._domNode.setTop(e.top),this._domNode.setRight(e.right);let t=!1;t=this._zoneManager.setDOMWidth(e.width)||t,t=this._zoneManager.setDOMHeight(e.height)||t,t&&(this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),this._render())}setZones(e){this._zoneManager.setZones(e),this._render()}_render(){if(this._zoneManager.getOuterHeight()===0)return!1;const e=this._zoneManager.getCanvasWidth(),t=this._zoneManager.getCanvasHeight(),i=this._zoneManager.resolveColorZones(),n=this._zoneManager.getId2Color(),o=this._domNode.domNode.getContext("2d");return o.clearRect(0,0,e,t),i.length>0&&this._renderOneLane(o,i,n,e),!0}_renderOneLane(e,t,i,n){let o=0,r=0,a=0;for(const l of t){const c=l.colorId,h=l.from,d=l.to;c!==o?(e.fillRect(0,r,n,a-r),o=c,e.fillStyle=i[o],r=h,a=d):a>=h?a=Math.max(a,d):(e.fillRect(0,r,n,a-r),r=h,a=d)}e.fillRect(0,r,n,a-r)}}class ER extends Wi{constructor(e){super(e),this.domNode=ue(document.createElement("div")),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this.domNode.setClassName("view-rulers"),this._renderedRulers=[];const t=this._context.configuration.options;this._rulers=t.get(91),this._typicalHalfwidthCharacterWidth=t.get(44).typicalHalfwidthCharacterWidth}dispose(){super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options;return this._rulers=t.get(91),this._typicalHalfwidthCharacterWidth=t.get(44).typicalHalfwidthCharacterWidth,!0}onScrollChanged(e){return e.scrollHeightChanged}prepareRender(e){}_ensureRulersCount(){const e=this._renderedRulers.length,t=this._rulers.length;if(e===t)return;if(e0;){const a=ue(document.createElement("div"));a.setClassName("view-ruler"),a.setWidth(o),this.domNode.appendChild(a),this._renderedRulers.push(a),r--}return}let i=e-t;for(;i>0;){const n=this._renderedRulers.pop();this.domNode.removeChild(n),i--}}render(e){this._ensureRulersCount();for(let t=0,i=this._rulers.length;t{const t=s.getColor(rM);t&&e.addRule(`.monaco-editor .view-ruler { box-shadow: 1px 0 0 0 ${t} inset; }`)});class DR extends Wi{constructor(e){super(e),this._scrollTop=0,this._width=0,this._updateWidth(),this._shouldShow=!1;const i=this._context.configuration.options.get(92);this._useShadows=i.useShadows,this._domNode=ue(document.createElement("div")),this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true")}dispose(){super.dispose()}_updateShouldShow(){const e=this._useShadows&&this._scrollTop>0;return this._shouldShow!==e?(this._shouldShow=e,!0):!1}getDomNode(){return this._domNode}_updateWidth(){const t=this._context.configuration.options.get(131);t.minimap.renderMinimap===0||t.minimap.minimapWidth>0&&t.minimap.minimapLeft===0?this._width=t.width:this._width=t.width-t.minimap.minimapWidth-t.verticalScrollbarWidth}onConfigurationChanged(e){const i=this._context.configuration.options.get(92);return this._useShadows=i.useShadows,this._updateWidth(),this._updateShouldShow(),!0}onScrollChanged(e){return this._scrollTop=e.scrollTop,this._updateShouldShow()}prepareRender(e){}render(e){this._domNode.setWidth(this._width),this._domNode.setClassName(this._shouldShow?"scroll-decoration":"")}}ni((s,e)=>{const t=s.getColor(vl);t&&e.addRule(`.monaco-editor .scroll-decoration { box-shadow: ${t} 0 6px 6px -6px inset; }`)});class NR{constructor(e){this.left=e.left,this.width=e.width,this.startStyle=null,this.endStyle=null}}class TR{constructor(e,t){this.lineNumber=e,this.ranges=t}}function MR(s){return new NR(s)}function RR(s){return new TR(s.lineNumber,s.ranges.map(MR))}class Ve extends yl{constructor(e){super(),this._previousFrameVisibleRangesWithStyle=[],this._context=e;const t=this._context.configuration.options;this._lineHeight=t.get(59),this._roundedSelection=t.get(90),this._typicalHalfwidthCharacterWidth=t.get(44).typicalHalfwidthCharacterWidth,this._selections=[],this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options;return this._lineHeight=t.get(59),this._roundedSelection=t.get(90),this._typicalHalfwidthCharacterWidth=t.get(44).typicalHalfwidthCharacterWidth,!0}onCursorStateChanged(e){return this._selections=e.selections.slice(0),!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}_visibleRangesHaveGaps(e){for(let t=0,i=e.length;t1)return!0;return!1}_enrichVisibleRangesWithStyle(e,t,i){const n=this._typicalHalfwidthCharacterWidth/4;let o=null,r=null;if(i&&i.length>0&&t.length>0){const a=t[0].lineNumber;if(a===e.startLineNumber)for(let c=0;!o&&c=0;c--)i[c].lineNumber===l&&(r=i[c].ranges[0]);o&&!o.startStyle&&(o=null),r&&!r.startStyle&&(r=null)}for(let a=0,l=t.length;a0){const m=t[a-1].ranges[0].left,_=t[a-1].ranges[0].left+t[a-1].ranges[0].width;Zh(h-m)m&&(u.top=1),Zh(d-_)'}_actualRenderOneSelection(e,t,i,n){if(n.length===0)return;const o=!!n[0].ranges[0].startStyle,r=this._lineHeight.toString(),a=(this._lineHeight-1).toString(),l=n[0].lineNumber,c=n[n.length-1].lineNumber;for(let h=0,d=n.length;h1,c)}this._previousFrameVisibleRangesWithStyle=o,this._renderResult=t.map(([r,a])=>r+a)}render(e,t){if(!this._renderResult)return"";const i=t-e;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}}Ve.SELECTION_CLASS_NAME="selected-text";Ve.SELECTION_TOP_LEFT="top-left-radius";Ve.SELECTION_BOTTOM_LEFT="bottom-left-radius";Ve.SELECTION_TOP_RIGHT="top-right-radius";Ve.SELECTION_BOTTOM_RIGHT="bottom-right-radius";Ve.EDITOR_BACKGROUND_CLASS_NAME="monaco-editor-background";Ve.ROUNDED_PIECE_WIDTH=10;ni((s,e)=>{const t=s.getColor(Ta);t&&e.addRule(`.monaco-editor .focused .selected-text { background-color: ${t}; }`);const i=s.getColor(A0);i&&e.addRule(`.monaco-editor .selected-text { background-color: ${i}; }`);const n=s.getColor(MT);n&&!n.isTransparent()&&e.addRule(`.monaco-editor .view-line span.inline-selected-text { color: ${n}; }`)});function Zh(s){return s<0?-s:s}class Lw{constructor(e,t,i,n,o,r){this.top=e,this.left=t,this.width=i,this.height=n,this.textContent=o,this.textContentClassName=r}}class kw{constructor(e){this._context=e;const t=this._context.configuration.options,i=t.get(44);this._cursorStyle=t.get(24),this._lineHeight=t.get(59),this._typicalHalfwidthCharacterWidth=i.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(t.get(27),this._typicalHalfwidthCharacterWidth),this._isVisible=!0,this._domNode=ue(document.createElement("div")),this._domNode.setClassName(`cursor ${dr}`),this._domNode.setHeight(this._lineHeight),this._domNode.setTop(0),this._domNode.setLeft(0),ii(this._domNode,i),this._domNode.setDisplay("none"),this._position=new A(1,1),this._lastRenderedContent="",this._renderData=null}getDomNode(){return this._domNode}getPosition(){return this._position}show(){this._isVisible||(this._domNode.setVisibility("inherit"),this._isVisible=!0)}hide(){this._isVisible&&(this._domNode.setVisibility("hidden"),this._isVisible=!1)}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(44);return this._cursorStyle=t.get(24),this._lineHeight=t.get(59),this._typicalHalfwidthCharacterWidth=i.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(t.get(27),this._typicalHalfwidthCharacterWidth),ii(this._domNode,i),!0}onCursorPositionChanged(e){return this._position=e,!0}_getGraphemeAwarePosition(){const{lineNumber:e,column:t}=this._position,i=this._context.viewModel.getLineContent(e),[n,o]=KE(i,t-1);return[new A(e,n+1),i.substring(n,o)]}_prepareRender(e){let t="";const[i,n]=this._getGraphemeAwarePosition();if(this._cursorStyle===_t.Line||this._cursorStyle===_t.LineThin){const u=e.visibleRangeForPosition(i);if(!u||u.outsideRenderedLine)return null;let f;this._cursorStyle===_t.Line?(f=UC(this._lineCursorWidth>0?this._lineCursorWidth:2),f>2&&(t=n)):f=UC(1);let m=u.left;f>=2&&m>=1&&(m-=1);const _=e.getVerticalOffsetForLineNumber(i.lineNumber)-e.bigNumbersDelta;return new Lw(_,m,f,this._lineHeight,t,"")}const o=e.linesVisibleRangesForRange(new D(i.lineNumber,i.column,i.lineNumber,i.column+n.length),!1);if(!o||o.length===0)return null;const r=o[0];if(r.outsideRenderedLine||r.ranges.length===0)return null;const a=r.ranges[0],l=a.width<1?this._typicalHalfwidthCharacterWidth:a.width;let c="";if(this._cursorStyle===_t.Block){const u=this._context.viewModel.getViewLineData(i.lineNumber);t=n;const f=u.tokens.findTokenIndexAtOffset(i.column-1);c=u.tokens.getClassName(f)}let h=e.getVerticalOffsetForLineNumber(i.lineNumber)-e.bigNumbersDelta,d=this._lineHeight;return(this._cursorStyle===_t.Underline||this._cursorStyle===_t.UnderlineThin)&&(h+=this._lineHeight-2,d=2),new Lw(h,a.left,l,d,t,c)}prepareRender(e){this._renderData=this._prepareRender(e)}render(e){return this._renderData?(this._lastRenderedContent!==this._renderData.textContent&&(this._lastRenderedContent=this._renderData.textContent,this._domNode.domNode.textContent=this._lastRenderedContent),this._domNode.setClassName(`cursor ${dr} ${this._renderData.textContentClassName}`),this._domNode.setDisplay("block"),this._domNode.setTop(this._renderData.top),this._domNode.setLeft(this._renderData.left),this._domNode.setWidth(this._renderData.width),this._domNode.setLineHeight(this._renderData.height),this._domNode.setHeight(this._renderData.height),{domNode:this._domNode.domNode,position:this._position,contentLeft:this._renderData.left,height:this._renderData.height,width:2}):(this._domNode.setDisplay("none"),null)}}class Kc extends Wi{constructor(e){super(e);const t=this._context.configuration.options;this._readOnly=t.get(81),this._cursorBlinking=t.get(22),this._cursorStyle=t.get(24),this._cursorSmoothCaretAnimation=t.get(23),this._selectionIsEmpty=!0,this._isComposingInput=!1,this._isVisible=!1,this._primaryCursor=new kw(this._context),this._secondaryCursors=[],this._renderData=[],this._domNode=ue(document.createElement("div")),this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true"),this._updateDomClassName(),this._domNode.appendChild(this._primaryCursor.getDomNode()),this._startCursorBlinkAnimation=new os,this._cursorFlatBlinkInterval=new vh,this._blinkingEnabled=!1,this._editorHasFocus=!1,this._updateBlinking()}dispose(){super.dispose(),this._startCursorBlinkAnimation.dispose(),this._cursorFlatBlinkInterval.dispose()}getDomNode(){return this._domNode}onCompositionStart(e){return this._isComposingInput=!0,this._updateBlinking(),!0}onCompositionEnd(e){return this._isComposingInput=!1,this._updateBlinking(),!0}onConfigurationChanged(e){const t=this._context.configuration.options;this._readOnly=t.get(81),this._cursorBlinking=t.get(22),this._cursorStyle=t.get(24),this._cursorSmoothCaretAnimation=t.get(23),this._updateBlinking(),this._updateDomClassName(),this._primaryCursor.onConfigurationChanged(e);for(let i=0,n=this._secondaryCursors.length;it.length){const i=this._secondaryCursors.length-t.length;for(let n=0;n{for(let n=0,o=e.ranges.length;n{this._isVisible?this._hide():this._show()},Kc.BLINK_INTERVAL):this._startCursorBlinkAnimation.setIfNotSet(()=>{this._blinkingEnabled=!0,this._updateDomClassName()},Kc.BLINK_INTERVAL))}_updateDomClassName(){this._domNode.setClassName(this._getClassName())}_getClassName(){let e="cursors-layer";switch(this._selectionIsEmpty||(e+=" has-selection"),this._cursorStyle){case _t.Line:e+=" cursor-line-style";break;case _t.Block:e+=" cursor-block-style";break;case _t.Underline:e+=" cursor-underline-style";break;case _t.LineThin:e+=" cursor-line-thin-style";break;case _t.BlockOutline:e+=" cursor-block-outline-style";break;case _t.UnderlineThin:e+=" cursor-underline-thin-style";break;default:e+=" cursor-line-style"}if(this._blinkingEnabled)switch(this._getCursorBlinking()){case 1:e+=" cursor-blink";break;case 2:e+=" cursor-smooth";break;case 3:e+=" cursor-phase";break;case 4:e+=" cursor-expand";break;case 5:e+=" cursor-solid";break;default:e+=" cursor-solid"}else e+=" cursor-solid";return this._cursorSmoothCaretAnimation&&(e+=" cursor-smooth-caret-animation"),e}_show(){this._primaryCursor.show();for(let e=0,t=this._secondaryCursors.length;e{const t=s.getColor(tk);if(t){let i=s.getColor(sM);i||(i=t.opposite()),e.addRule(`.monaco-editor .inputarea.ime-input { caret-color: ${t}; }`),e.addRule(`.monaco-editor .cursors-layer .cursor { background-color: ${t}; border-color: ${t}; color: ${i}; }`),s.type==="hc"&&e.addRule(`.monaco-editor .cursors-layer.has-selection .cursor { border-left: 1px solid ${i}; border-right: 1px solid ${i}; }`)}});const im=()=>{throw new Error("Invalid change accessor")};class AR extends Wi{constructor(e){super(e);const t=this._context.configuration.options,i=t.get(131);this._lineHeight=t.get(59),this._contentWidth=i.contentWidth,this._contentLeft=i.contentLeft,this.domNode=ue(document.createElement("div")),this.domNode.setClassName("view-zones"),this.domNode.setPosition("absolute"),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this.marginDomNode=ue(document.createElement("div")),this.marginDomNode.setClassName("margin-view-zones"),this.marginDomNode.setPosition("absolute"),this.marginDomNode.setAttribute("role","presentation"),this.marginDomNode.setAttribute("aria-hidden","true"),this._zones={}}dispose(){super.dispose(),this._zones={}}_recomputeWhitespacesProps(){const e=this._context.viewLayout.getWhitespaces(),t=new Map;for(const n of e)t.set(n.id,n);let i=!1;return this._context.viewModel.changeWhitespace(n=>{const o=Object.keys(this._zones);for(let r=0,a=o.length;r{const n={addZone:o=>(t=!0,this._addZone(i,o)),removeZone:o=>{!o||(t=this._removeZone(i,o)||t)},layoutZone:o=>{!o||(t=this._layoutZone(i,o)||t)}};OR(e,n),n.addZone=im,n.removeZone=im,n.layoutZone=im}),t}_addZone(e,t){const i=this._computeWhitespaceProps(t),o={whitespaceId:e.insertWhitespace(i.afterViewLineNumber,this._getZoneOrdinal(t),i.heightInPx,i.minWidthInPx),delegate:t,isInHiddenArea:i.isInHiddenArea,isVisible:!1,domNode:ue(t.domNode),marginDomNode:t.marginDomNode?ue(t.marginDomNode):null};return this._safeCallOnComputedHeight(o.delegate,i.heightInPx),o.domNode.setPosition("absolute"),o.domNode.domNode.style.width="100%",o.domNode.setDisplay("none"),o.domNode.setAttribute("monaco-view-zone",o.whitespaceId),this.domNode.appendChild(o.domNode),o.marginDomNode&&(o.marginDomNode.setPosition("absolute"),o.marginDomNode.domNode.style.width="100%",o.marginDomNode.setDisplay("none"),o.marginDomNode.setAttribute("monaco-view-zone",o.whitespaceId),this.marginDomNode.appendChild(o.marginDomNode)),this._zones[o.whitespaceId]=o,this.setShouldRender(),o.whitespaceId}_removeZone(e,t){if(this._zones.hasOwnProperty(t)){const i=this._zones[t];return delete this._zones[t],e.removeWhitespace(i.whitespaceId),i.domNode.removeAttribute("monaco-visible-view-zone"),i.domNode.removeAttribute("monaco-view-zone"),i.domNode.domNode.parentNode.removeChild(i.domNode.domNode),i.marginDomNode&&(i.marginDomNode.removeAttribute("monaco-visible-view-zone"),i.marginDomNode.removeAttribute("monaco-view-zone"),i.marginDomNode.domNode.parentNode.removeChild(i.marginDomNode.domNode)),this.setShouldRender(),!0}return!1}_layoutZone(e,t){if(this._zones.hasOwnProperty(t)){const i=this._zones[t],n=this._computeWhitespaceProps(i.delegate);return i.isInHiddenArea=n.isInHiddenArea,e.changeOneWhitespace(i.whitespaceId,n.afterViewLineNumber,n.heightInPx),this._safeCallOnComputedHeight(i.delegate,n.heightInPx),this.setShouldRender(),!0}return!1}shouldSuppressMouseDownOnViewZone(e){if(this._zones.hasOwnProperty(e)){const t=this._zones[e];return Boolean(t.delegate.suppressMouseDown)}return!1}_heightInPixels(e){return typeof e.heightInPx=="number"?e.heightInPx:typeof e.heightInLines=="number"?this._lineHeight*e.heightInLines:this._lineHeight}_minWidthInPixels(e){return typeof e.minWidthInPx=="number"?e.minWidthInPx:0}_safeCallOnComputedHeight(e,t){if(typeof e.onComputedHeight=="function")try{e.onComputedHeight(t)}catch(i){Ze(i)}}_safeCallOnDomNodeTop(e,t){if(typeof e.onDomNodeTop=="function")try{e.onDomNodeTop(t)}catch(i){Ze(i)}}prepareRender(e){}render(e){const t=e.viewportData.whitespaceViewportData,i={};let n=!1;for(const r of t)this._zones[r.id].isInHiddenArea||(i[r.id]=r,n=!0);const o=Object.keys(this._zones);for(let r=0,a=o.length;r{this.focus()},dispatchTextAreaEvent:e=>{this._textAreaHandler.textArea.domNode.dispatchEvent(e)},getLastRenderData:()=>{const e=this._viewCursors.getLastRenderData()||[],t=this._textAreaHandler.getLastRenderData();return new U5(e,t)},shouldSuppressMouseDownOnViewZone:e=>this._viewZones.shouldSuppressMouseDownOnViewZone(e),shouldSuppressMouseDownOnWidget:e=>this._contentWidgets.shouldSuppressMouseDownOnWidget(e),getPositionFromDOMInfo:(e,t)=>(this._flushAccumulatedAndRenderNow(),this._viewLines.getPositionFromDOMInfo(e,t)),visibleRangeForPosition:(e,t)=>(this._flushAccumulatedAndRenderNow(),this._viewLines.visibleRangeForPosition(new A(e,t))),getLineWidth:e=>(this._flushAccumulatedAndRenderNow(),this._viewLines.getLineWidth(e))}}_createTextAreaHandlerHelper(){return{visibleRangeForPosition:e=>(this._flushAccumulatedAndRenderNow(),this._viewLines.visibleRangeForPosition(e))}}_applyLayout(){const t=this._context.configuration.options.get(131);this.domNode.setWidth(t.width),this.domNode.setHeight(t.height),this._overflowGuardContainer.setWidth(t.width),this._overflowGuardContainer.setHeight(t.height),this._linesContent.setWidth(1e6),this._linesContent.setHeight(1e6)}_getEditorClassName(){const e=this._textAreaHandler.isFocused()?" focused":"";return this._context.configuration.options.get(128)+" "+Iu(this._context.theme.type)+e}handleEvents(e){super.handleEvents(e),this._scheduleRender()}onConfigurationChanged(e){return this.domNode.setClassName(this._getEditorClassName()),this._applyLayout(),!1}onCursorStateChanged(e){return this._selections=e.selections,!1}onFocusChanged(e){return this.domNode.setClassName(this._getEditorClassName()),!1}onThemeChanged(e){return this._context.theme.update(e.theme),this.domNode.setClassName(this._getEditorClassName()),!1}dispose(){this._renderAnimationFrame!==null&&(this._renderAnimationFrame.dispose(),this._renderAnimationFrame=null),this._contentWidgets.overflowingContentWidgetsDomNode.domNode.remove(),this._context.removeEventHandler(this),this._viewLines.dispose();for(const e of this._viewParts)e.dispose();super.dispose()}_scheduleRender(){this._renderAnimationFrame===null&&(this._renderAnimationFrame=rL(this._onRenderScheduled.bind(this),100))}_onRenderScheduled(){this._renderAnimationFrame=null,this._flushAccumulatedAndRenderNow()}_renderNow(){WR(()=>this._actualRender())}_getViewPartsToRender(){const e=[];let t=0;for(const i of this._viewParts)i.shouldRender()&&(e[t++]=i);return e}_actualRender(){if(!S0(this.domNode.domNode))return;let e=this._getViewPartsToRender();if(!this._viewLines.shouldRender()&&e.length===0)return;const t=this._context.viewLayout.getLinesViewportData();this._context.viewModel.setViewport(t.startLineNumber,t.endLineNumber,t.centeredLineNumber);const i=new BR(this._selections,t,this._context.viewLayout.getWhitespaceViewportData(),this._context.viewModel);this._contentWidgets.shouldRender()&&this._contentWidgets.onBeforeRender(i),this._viewLines.shouldRender()&&(this._viewLines.renderText(i),this._viewLines.onDidRender(),e=this._getViewPartsToRender());const n=new O5(this._context.viewLayout,i,this._viewLines);for(const o of e)o.prepareRender(n);for(const o of e)o.render(n),o.onDidRender()}delegateVerticalScrollbarMouseDown(e){this._scrollbar.delegateVerticalScrollbarMouseDown(e)}restoreState(e){this._context.viewModel.viewLayout.setScrollPosition({scrollTop:e.scrollTop},1),this._context.viewModel.tokenizeViewport(),this._renderNow(),this._viewLines.updateLineWidths(),this._context.viewModel.viewLayout.setScrollPosition({scrollLeft:e.scrollLeft},1)}getOffsetForColumn(e,t){const i=this._context.viewModel.model.validatePosition({lineNumber:e,column:t}),n=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(i);this._flushAccumulatedAndRenderNow();const o=this._viewLines.visibleRangeForPosition(new A(n.lineNumber,n.column));return o?o.left:-1}getTargetAtClientPoint(e,t){const i=this._pointerHandler.getTargetAtClientPoint(e,t);return i?qf.convertViewToModelMouseTarget(i,this._context.viewModel.coordinatesConverter):null}createOverviewRuler(e){return new IR(this._context,e)}change(e){this._viewZones.changeViewZones(e),this._scheduleRender()}render(e,t){if(t){this._viewLines.forceShouldRender();for(const i of this._viewParts)i.forceShouldRender()}e?this._flushAccumulatedAndRenderNow():this._scheduleRender()}focus(){this._textAreaHandler.focusTextArea()}isFocused(){return this._textAreaHandler.isFocused()}setAriaOptions(e){this._textAreaHandler.setAriaOptions(e)}addContentWidget(e){this._contentWidgets.addWidget(e.widget),this.layoutContentWidget(e),this._scheduleRender()}layoutContentWidget(e){let t=e.position&&e.position.range||null;if(t===null){const n=e.position?e.position.position:null;n!==null&&(t=new D(n.lineNumber,n.column,n.lineNumber,n.column))}const i=e.position?e.position.preference:null;this._contentWidgets.setWidgetPosition(e.widget,t,i),this._scheduleRender()}removeContentWidget(e){this._contentWidgets.removeWidget(e.widget),this._scheduleRender()}addOverlayWidget(e){this._overlayWidgets.addWidget(e.widget),this.layoutOverlayWidget(e),this._scheduleRender()}layoutOverlayWidget(e){const t=e.position?e.position.preference:null;this._overlayWidgets.setWidgetPosition(e.widget,t)&&this._scheduleRender()}removeOverlayWidget(e){this._overlayWidgets.removeWidget(e.widget),this._scheduleRender()}}function WR(s){try{return s()}catch(e){Ze(e)}}class Bu{constructor(e){this._selTrackedRange=null,this._trackSelection=!0,this._setState(e,new pt(new D(1,1,1,1),0,new A(1,1),0),new pt(new D(1,1,1,1),0,new A(1,1),0))}dispose(e){this._removeTrackedRange(e)}startTrackingSelection(e){this._trackSelection=!0,this._updateTrackedRange(e)}stopTrackingSelection(e){this._trackSelection=!1,this._removeTrackedRange(e)}_updateTrackedRange(e){!this._trackSelection||(this._selTrackedRange=e.model._setTrackedRange(this._selTrackedRange,this.modelState.selection,0))}_removeTrackedRange(e){this._selTrackedRange=e.model._setTrackedRange(this._selTrackedRange,null,0)}asCursorState(){return new oe(this.modelState,this.viewState)}readSelectionFromMarkers(e){const t=e.model._getTrackedRange(this._selTrackedRange);return ce.fromRange(t,this.modelState.selection.getDirection())}ensureValidState(e){this._setState(e,this.modelState,this.viewState)}setState(e,t,i){this._setState(e,t,i)}static _validatePositionWithCache(e,t,i,n){return t.equals(i)?n:e.normalizePosition(t,2)}static _validateViewState(e,t){const i=t.position,n=t.selectionStart.getStartPosition(),o=t.selectionStart.getEndPosition(),r=e.normalizePosition(i,2),a=this._validatePositionWithCache(e,n,i,r),l=this._validatePositionWithCache(e,o,n,a);return i.equals(r)&&n.equals(a)&&o.equals(l)?t:new pt(D.fromPositions(a,l),t.selectionStartLeftoverVisibleColumns+n.column-a.column,r,t.leftoverVisibleColumns+i.column-r.column)}_setState(e,t,i){if(i&&(i=Bu._validateViewState(e.viewModel,i)),t){const n=e.model.validateRange(t.selectionStart),o=t.selectionStart.equalsRange(n)?t.selectionStartLeftoverVisibleColumns:0,r=e.model.validatePosition(t.position),a=t.position.equals(r)?t.leftoverVisibleColumns:0;t=new pt(n,o,r,a)}else{if(!i)return;const n=e.model.validateRange(e.coordinatesConverter.convertViewRangeToModelRange(i.selectionStart)),o=e.model.validatePosition(e.coordinatesConverter.convertViewPositionToModelPosition(i.position));t=new pt(n,i.selectionStartLeftoverVisibleColumns,o,i.leftoverVisibleColumns)}if(i){const n=e.coordinatesConverter.validateViewRange(i.selectionStart,t.selectionStart),o=e.coordinatesConverter.validateViewPosition(i.position,t.position);i=new pt(n,t.selectionStartLeftoverVisibleColumns,o,t.leftoverVisibleColumns)}else{const n=e.coordinatesConverter.convertModelPositionToViewPosition(new A(t.selectionStart.startLineNumber,t.selectionStart.startColumn)),o=e.coordinatesConverter.convertModelPositionToViewPosition(new A(t.selectionStart.endLineNumber,t.selectionStart.endColumn)),r=new D(n.lineNumber,n.column,o.lineNumber,o.column),a=e.coordinatesConverter.convertModelPositionToViewPosition(t.position);i=new pt(r,t.selectionStartLeftoverVisibleColumns,a,t.leftoverVisibleColumns)}this.modelState=t,this.viewState=i,this._updateTrackedRange(e)}}class xw{constructor(e){this.context=e,this.cursors=[new Bu(e)],this.lastAddedCursorIndex=0}dispose(){for(const e of this.cursors)e.dispose(this.context)}startTrackingSelections(){for(const e of this.cursors)e.startTrackingSelection(this.context)}stopTrackingSelections(){for(const e of this.cursors)e.stopTrackingSelection(this.context)}updateContext(e){this.context=e}ensureValidState(){for(const e of this.cursors)e.ensureValidState(this.context)}readSelectionFromMarkers(){return this.cursors.map(e=>e.readSelectionFromMarkers(this.context))}getAll(){return this.cursors.map(e=>e.asCursorState())}getViewPositions(){return this.cursors.map(e=>e.viewState.position)}getTopMostViewPosition(){return uI(this.cursors,yg(e=>e.viewState.position,A.compare)).viewState.position}getBottomMostViewPosition(){return dI(this.cursors,yg(e=>e.viewState.position,A.compare)).viewState.position}getSelections(){return this.cursors.map(e=>e.modelState.selection)}getViewSelections(){return this.cursors.map(e=>e.viewState.selection)}setSelections(e){this.setStates(oe.fromModelSelections(e))}getPrimaryCursor(){return this.cursors[0].asCursorState()}setStates(e){e!==null&&(this.cursors[0].setState(this.context,e[0].modelState,e[0].viewState),this._setSecondaryStates(e.slice(1)))}_setSecondaryStates(e){const t=this.cursors.length-1,i=e.length;if(ti){const n=t-i;for(let o=0;o=e+1&&this.lastAddedCursorIndex--,this.cursors[e+1].dispose(this.context),this.cursors.splice(e+1,1)}normalize(){if(this.cursors.length===1)return;const e=this.cursors.slice(0),t=[];for(let i=0,n=e.length;ii.selection,D.compareRangesUsingStarts));for(let i=0;id&&_.index--;e.splice(d,1),t.splice(h,1),this._removeSecondaryCursor(d-1),i--}}}}class Iw{constructor(e,t,i,n){this._cursorContextBrand=void 0,this.model=e,this.viewModel=t,this.coordinatesConverter=i,this.cursorConfig=n}}class HR{constructor(){this.changeType=1}}class In{constructor(e,t,i,n,o){this.ownerId=e,this.lineNumber=t,this.column=i,this.options=n,this.order=o}static applyInjectedText(e,t){if(!t||t.length===0)return e;let i="",n=0;for(const o of t)i+=e.substring(n,o.column-1),n=o.column-1,i+=o.options.content;return i+=e.substring(n),i}static fromDecorations(e){const t=[];for(const i of e)i.options.before&&i.options.before.content.length>0&&t.push(new In(i.ownerId,i.range.startLineNumber,i.range.startColumn,i.options.before,0)),i.options.after&&i.options.after.content.length>0&&t.push(new In(i.ownerId,i.range.endLineNumber,i.range.endColumn,i.options.after,1));return t.sort((i,n)=>i.lineNumber===n.lineNumber?i.column===n.column?i.order-n.order:i.column-n.column:i.lineNumber-n.lineNumber),t}}class Ew{constructor(e,t,i){this.changeType=2,this.lineNumber=e,this.detail=t,this.injectedText=i}}class zR{constructor(e,t){this.changeType=3,this.fromLineNumber=e,this.toLineNumber=t}}class UR{constructor(e,t,i,n){this.changeType=4,this.injectedTexts=n,this.fromLineNumber=e,this.toLineNumber=t,this.detail=i}}class $R{constructor(){this.changeType=5}}class fr{constructor(e,t,i,n){this.changes=e,this.versionId=t,this.isUndoing=i,this.isRedoing=n,this.resultingSelection=null}containsEvent(e){for(let t=0,i=this.changes.length;t0;){if(this._collector||this._isConsumingViewEventQueue)return;const e=this._outgoingEvents.shift();e.isNoOp()||this._onEvent.fire(e)}}addViewEventHandler(e){for(let t=0,i=this._eventHandlers.length;t0&&this._emitMany(t)}this._emitOutgoingEvents()}emitSingleViewEvent(e){try{this.beginEmitViewEvents().emitViewEvent(e)}finally{this.endEmitViewEvents()}}_emitMany(e){this._viewEventQueue?this._viewEventQueue=this._viewEventQueue.concat(e):this._viewEventQueue=e,this._isConsumingViewEventQueue||this._consumeViewEventQueue()}_consumeViewEventQueue(){try{this._isConsumingViewEventQueue=!0,this._doConsumeQueue()}finally{this._isConsumingViewEventQueue=!1}}_doConsumeQueue(){for(;this._viewEventQueue;){const e=this._viewEventQueue;this._viewEventQueue=null;const t=this._eventHandlers.slice(0);for(const i of t)i.handleEvents(e)}}}class nA{constructor(){this.viewEvents=[],this.outgoingEvents=[]}emitViewEvent(e){this.viewEvents.push(e)}emitOutgoingEvent(e){this.outgoingEvents.push(e)}}class U0{constructor(e,t,i,n){this.kind=0,this._oldContentWidth=e,this._oldContentHeight=t,this.contentWidth=i,this.contentHeight=n,this.contentWidthChanged=this._oldContentWidth!==this.contentWidth,this.contentHeightChanged=this._oldContentHeight!==this.contentHeight}isNoOp(){return!this.contentWidthChanged&&!this.contentHeightChanged}merge(e){return e.kind!==0?this:new U0(this._oldContentWidth,this._oldContentHeight,e.contentWidth,e.contentHeight)}}class $0{constructor(e,t){this.kind=1,this.oldHasFocus=e,this.hasFocus=t}isNoOp(){return this.oldHasFocus===this.hasFocus}merge(e){return e.kind!==1?this:new $0(this.oldHasFocus,e.hasFocus)}}class j0{constructor(e,t,i,n,o,r,a,l){this.kind=2,this._oldScrollWidth=e,this._oldScrollLeft=t,this._oldScrollHeight=i,this._oldScrollTop=n,this.scrollWidth=o,this.scrollLeft=r,this.scrollHeight=a,this.scrollTop=l,this.scrollWidthChanged=this._oldScrollWidth!==this.scrollWidth,this.scrollLeftChanged=this._oldScrollLeft!==this.scrollLeft,this.scrollHeightChanged=this._oldScrollHeight!==this.scrollHeight,this.scrollTopChanged=this._oldScrollTop!==this.scrollTop}isNoOp(){return!this.scrollWidthChanged&&!this.scrollLeftChanged&&!this.scrollHeightChanged&&!this.scrollTopChanged}merge(e){return e.kind!==2?this:new j0(this._oldScrollWidth,this._oldScrollLeft,this._oldScrollHeight,this._oldScrollTop,e.scrollWidth,e.scrollLeft,e.scrollHeight,e.scrollTop)}}class Dw{constructor(){this.kind=3}isNoOp(){return!1}merge(e){return this}}class Wu{constructor(e,t,i,n,o,r,a){this.kind=6,this.oldSelections=e,this.selections=t,this.oldModelVersionId=i,this.modelVersionId=n,this.source=o,this.reason=r,this.reachedMaxCursorCount=a}static _selectionsAreEqual(e,t){if(!e&&!t)return!0;if(!e||!t)return!1;const i=e.length,n=t.length;if(i!==n)return!1;for(let o=0;o0){const e=this._cursors.getSelections();for(let t=0;ttl.MAX_CURSOR_COUNT&&(n=n.slice(0,tl.MAX_CURSOR_COUNT),o=!0);const r=uc.from(this._model,this);return this._cursors.setStates(n),this._cursors.normalize(),this._columnSelectData=null,this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(e,t,i,r,o)}setCursorColumnSelectData(e){this._columnSelectData=e}revealPrimary(e,t,i,n,o,r){const a=this._cursors.getViewPositions();let l=null,c=null;a.length>1?c=this._cursors.getViewSelections():l=D.fromPositions(a[0],a[0]),e.emitViewEvent(new zd(t,i,l,c,n,o,r))}saveState(){const e=[],t=this._cursors.getSelections();for(let i=0,n=t.length;i0){const n=oe.fromModelSelections(t.resultingSelection);this.setStates(e,"modelChange",t.isUndoing?5:t.isRedoing?6:2,n)&&this.revealPrimary(e,"modelChange",!1,0,!0,0)}else{const n=this._cursors.readSelectionFromMarkers();this.setStates(e,"modelChange",2,oe.fromModelSelections(n))}}}getSelection(){return this._cursors.getPrimaryCursor().modelState.selection}getTopMostViewPosition(){return this._cursors.getTopMostViewPosition()}getBottomMostViewPosition(){return this._cursors.getBottomMostViewPosition()}getCursorColumnSelectData(){if(this._columnSelectData)return this._columnSelectData;const e=this._cursors.getPrimaryCursor(),t=e.viewState.selectionStart.getStartPosition(),i=e.viewState.position;return{isReal:!1,fromViewLineNumber:t.lineNumber,fromViewVisualColumn:this.context.cursorConfig.visibleColumnFromColumn(this._viewModel,t),toViewLineNumber:i.lineNumber,toViewVisualColumn:this.context.cursorConfig.visibleColumnFromColumn(this._viewModel,i)}}getSelections(){return this._cursors.getSelections()}setSelections(e,t,i,n){this.setStates(e,t,n,oe.fromModelSelections(i))}getPrevEditOperationType(){return this._prevEditOperationType}setPrevEditOperationType(e){this._prevEditOperationType=e}_pushAutoClosedAction(e,t){const i=[],n=[];for(let a=0,l=e.length;a0&&this._pushAutoClosedAction(i,n),this._prevEditOperationType=e.type}e.shouldPushStackElementAfter&&this._model.pushStackElement()}_interpretCommandResult(e){(!e||e.length===0)&&(e=this._cursors.readSelectionFromMarkers()),this._columnSelectData=null,this._cursors.setSelections(e),this._cursors.normalize()}_emitStateChangedIfNecessary(e,t,i,n,o){const r=uc.from(this._model,this);if(r.equals(n))return!1;const a=this._cursors.getSelections(),l=this._cursors.getViewSelections();if(e.emitViewEvent(new GR(l,a)),!n||n.cursorState.length!==r.cursorState.length||r.cursorState.some((c,h)=>!c.modelState.equals(n.cursorState[h].modelState))){const c=n?n.cursorState.map(d=>d.modelState.selection):null,h=n?n.modelVersionId:0;e.emitOutgoingEvent(new Wu(c,a,h,r.modelVersionId,t||"keyboard",i,o))}return!0}_findAutoClosingPairs(e){if(!e.length)return null;const t=[];for(let i=0,n=e.length;i=0)return null;const r=o.text.match(/([)\]}>'"`])([^)\]}>'"`]*)$/);if(!r)return null;const a=r[1],l=this.context.cursorConfig.autoClosingPairs.autoClosingPairsCloseSingleChar.get(a);if(!l||l.length!==1)return null;const c=l[0].open,h=o.text.length-r[2].length-1,d=o.text.lastIndexOf(c,h-1);if(d===-1)return null;t.push([d,h])}return t}executeEdits(e,t,i,n){let o=null;t==="snippet"&&(o=this._findAutoClosingPairs(i)),o&&(i[0]._isTracked=!0);const r=[],a=[],l=this._model.pushEditOperations(this.getSelections(),i,c=>{if(o)for(let d=0,u=o.length;d0&&this._pushAutoClosedAction(r,a)}_executeEdit(e,t,i,n=0){if(this.context.cursorConfig.readOnly)return;const o=uc.from(this._model,this);this._cursors.stopTrackingSelections(),this._isHandling=!0;try{this._cursors.ensureValidState(),e()}catch(r){Ze(r)}this._isHandling=!1,this._cursors.startTrackingSelections(),this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(t,i,n,o,!1)&&this.revealPrimary(t,i,!1,0,!0,0)}setIsDoingComposition(e){this._isDoingComposition=e}getAutoClosedCharacters(){return Nw.getAllAutoClosedCharacters(this._autoClosedActions)}startComposition(e){this._selectionsWhenCompositionStarted=this.getSelections().slice(0)}endComposition(e,t){this._executeEdit(()=>{t==="keyboard"&&(this._executeEditOperation(je.compositionEndWithInterceptors(this._prevEditOperationType,this.context.cursorConfig,this._model,this._selectionsWhenCompositionStarted,this.getSelections(),this.getAutoClosedCharacters())),this._selectionsWhenCompositionStarted=null)},e,t)}type(e,t,i){this._executeEdit(()=>{if(i==="keyboard"){const n=t.length;let o=0;for(;o{const c=l.getPosition();return new ce(c.lineNumber,c.column+o,c.lineNumber,c.column+o)});this.setSelections(e,r,a,0)}return}this._executeEdit(()=>{this._executeEditOperation(je.compositionType(this._prevEditOperationType,this.context.cursorConfig,this._model,this.getSelections(),t,i,n,o))},e,r)}paste(e,t,i,n,o){this._executeEdit(()=>{this._executeEditOperation(je.paste(this.context.cursorConfig,this._model,this.getSelections(),t,i,n||[]))},e,o,4)}cut(e,t){this._executeEdit(()=>{this._executeEditOperation(xr.cut(this.context.cursorConfig,this._model,this.getSelections()))},e,t)}executeCommand(e,t,i){this._executeEdit(()=>{this._cursors.killSecondaryCursors(),this._executeEditOperation(new oi(0,[t],{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}))},e,i)}executeCommands(e,t,i){this._executeEdit(()=>{this._executeEditOperation(new oi(0,t,{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}))},e,i)}}tl.MAX_CURSOR_COUNT=1e4;class uc{constructor(e,t){this.modelVersionId=e,this.cursorState=t}static from(e,t){return new uc(e.getVersionId(),t.getCursorStates())}equals(e){if(!e||this.modelVersionId!==e.modelVersionId||this.cursorState.length!==e.cursorState.length)return!1;for(let t=0,i=this.cursorState.length;t=t.length||!t[i].strictContainsRange(e[i]))return!1;return!0}}class oA{static executeCommands(e,t,i){const n={model:e,selectionsBefore:t,trackedRanges:[],trackedRangesDirection:[]},o=this._innerExecuteCommands(n,i);for(let r=0,a=n.trackedRanges.length;r0&&(r[0]._isTracked=!0);let a=e.model.pushEditOperations(e.selectionsBefore,r,c=>{const h=[];for(let f=0;ff.identifier.minor-m.identifier.minor,u=[];for(let f=0;f0?(h[f].sort(d),u[f]=t[f].computeCursorState(e.model,{getInverseEditOperations:()=>h[f],getTrackedSelection:m=>{const _=parseInt(m,10),b=e.model._getTrackedRange(e.trackedRanges[_]);return e.trackedRangesDirection[_]===0?new ce(b.startLineNumber,b.startColumn,b.endLineNumber,b.endColumn):new ce(b.endLineNumber,b.endColumn,b.startLineNumber,b.startColumn)}})):u[f]=e.selectionsBefore[f];return u});a||(a=e.selectionsBefore);const l=[];for(let c in o)o.hasOwnProperty(c)&&l.push(parseInt(c,10));l.sort((c,h)=>h-c);for(const c of l)a.splice(c,1);return a}static _arrayIsEmpty(e){for(let t=0,i=e.length;t{D.isEmpty(d)&&u===""||n.push({identifier:{major:t,minor:o++},range:d,text:u,forceMoveMarkers:f,isAutoWhitespaceEdit:i.insertsAutoWhitespace})};let a=!1;const h={addEditOperation:r,addTrackedEditOperation:(d,u,f)=>{a=!0,r(d,u,f)},trackSelection:(d,u)=>{const f=ce.liftSelection(d);let m;if(f.isEmpty())if(typeof u=="boolean")u?m=2:m=3;else{const w=e.model.getLineMaxColumn(f.startLineNumber);f.startColumn===w?m=2:m=3}else m=1;const _=e.trackedRanges.length,b=e.model._setTrackedRange(null,f,m);return e.trackedRanges[_]=b,e.trackedRangesDirection[_]=f.getDirection(),_.toString()}};try{i.getEditOperations(e.model,h)}catch(d){return Ze(d),{operations:[],hadTrackedEditOperation:!1}}return{operations:n,hadTrackedEditOperation:a}}static _getLoserCursorMap(e){e=e.slice(0),e.sort((i,n)=>-D.compareRangesUsingEnds(i.range,n.range));const t={};for(let i=1;io.identifier.major?r=n.identifier.major:r=o.identifier.major,t[r.toString()]=!0;for(let a=0;a0&&i--}}return t}}class vk{constructor(e,t,i,n,o,r){this.id=e,this.label=t,this.alias=i,this._precondition=n,this._run=o,this._contextKeyService=r}isSupported(){return this._contextKeyService.contextMatchesRules(this._precondition)}run(){return this.isSupported()?this._run():Promise.resolve(void 0)}}const kl={Configuration:"base.contributions.configuration"},nm={properties:{},patternProperties:{}},sm={properties:{},patternProperties:{}},om={properties:{},patternProperties:{}},rm={properties:{},patternProperties:{}},am={properties:{},patternProperties:{}},Qh={properties:{},patternProperties:{}},Fl="vscode://schemas/settings/resourceLanguage",Tw=xt.as(Hf.JSONContribution);class rA{constructor(){this.overrideIdentifiers=new Set,this._onDidSchemaChange=new M,this._onDidUpdateConfiguration=new M,this.configurationDefaultsOverrides=new Map,this.defaultLanguageConfigurationOverridesNode={id:"defaultOverrides",title:p("defaultLanguageConfigurationOverrides.title","Default Language Configuration Overrides"),properties:{}},this.configurationContributors=[this.defaultLanguageConfigurationOverridesNode],this.resourceLanguageSettingsSchema={properties:{},patternProperties:{},additionalProperties:!1,errorMessage:"Unknown editor configuration setting",allowTrailingCommas:!0,allowComments:!0},this.configurationProperties={},this.excludedConfigurationProperties={},Tw.registerSchema(Fl,this.resourceLanguageSettingsSchema),this.registerOverridePropertyPatternKey()}registerConfiguration(e,t=!0){this.registerConfigurations([e],t)}registerConfigurations(e,t=!0){const i=this.doRegisterConfigurations(e,t);Tw.registerSchema(Fl,this.resourceLanguageSettingsSchema),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:i})}registerDefaultConfigurations(e){var t;const i=[],n=[];for(const{overrides:o,source:r}of e)for(const a in o)if(i.push(a),qc.test(a)){const l=Object.assign(Object.assign({},((t=this.configurationDefaultsOverrides.get(a))===null||t===void 0?void 0:t.value)||{}),o[a]);this.configurationDefaultsOverrides.set(a,{source:r,value:l});const c={type:"object",default:l,description:p("defaultLanguageConfiguration.description","Configure settings to be overridden for {0} language.",a),$ref:Fl,defaultDefaultValue:l,source:Ln(r)?void 0:r};n.push(...yk(a)),this.configurationProperties[a]=c,this.defaultLanguageConfigurationOverridesNode.properties[a]=c}else{this.configurationDefaultsOverrides.set(a,{value:o[a],source:r});const l=this.configurationProperties[a];l&&(this.updatePropertyDefaultValue(a,l),this.updateSchema(a,l))}this.registerOverrideIdentifiers(n),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:i,defaultsOverrides:!0})}registerOverrideIdentifiers(e){for(const t of e)this.overrideIdentifiers.add(t);this.updateOverridePropertyPatternKey()}doRegisterConfigurations(e,t){const i=[];return e.forEach(n=>{i.push(...this.validateAndRegisterProperties(n,t,n.extensionInfo,n.restrictedProperties)),this.configurationContributors.push(n),this.registerJSONConfiguration(n)}),i}validateAndRegisterProperties(e,t=!0,i,n,o=3){o=Gi(e.scope)?o:e.scope;let r=[],a=e.properties;if(a)for(let c in a){if(t&&lA(c)){delete a[c];continue}const h=a[c];if(h.source=i,h.defaultDefaultValue=a[c].default,this.updatePropertyDefaultValue(c,h),qc.test(c)?h.scope=void 0:(h.scope=Gi(h.scope)?o:h.scope,h.restricted=Gi(h.restricted)?!!(n!=null&&n.includes(c)):h.restricted),a[c].hasOwnProperty("included")&&!a[c].included){this.excludedConfigurationProperties[c]=a[c],delete a[c];continue}else this.configurationProperties[c]=a[c];!a[c].deprecationMessage&&a[c].markdownDeprecationMessage&&(a[c].deprecationMessage=a[c].markdownDeprecationMessage),r.push(c)}let l=e.allOf;if(l)for(let c of l)r.push(...this.validateAndRegisterProperties(c,t,i,n,o));return r}getConfigurationProperties(){return this.configurationProperties}registerJSONConfiguration(e){const t=i=>{let n=i.properties;if(n)for(const r in n)this.updateSchema(r,n[r]);let o=i.allOf;o&&o.forEach(t)};t(e)}updateSchema(e,t){switch(nm.properties[e]=t,t.scope){case 1:sm.properties[e]=t;break;case 2:om.properties[e]=t;break;case 6:rm.properties[e]=t;break;case 3:am.properties[e]=t;break;case 4:Qh.properties[e]=t;break;case 5:Qh.properties[e]=t,this.resourceLanguageSettingsSchema.properties[e]=t;break}}updateOverridePropertyPatternKey(){for(const e of this.overrideIdentifiers.values()){const t=`[${e}]`,i={type:"object",description:p("overrideSettings.defaultDescription","Configure editor settings to be overridden for a language."),errorMessage:p("overrideSettings.errorMessage","This setting does not support per-language configuration."),$ref:Fl};this.updatePropertyDefaultValue(t,i),nm.properties[t]=i,sm.properties[t]=i,om.properties[t]=i,rm.properties[t]=i,am.properties[t]=i,Qh.properties[t]=i}this._onDidSchemaChange.fire()}registerOverridePropertyPatternKey(){const e={type:"object",description:p("overrideSettings.defaultDescription","Configure editor settings to be overridden for a language."),errorMessage:p("overrideSettings.errorMessage","This setting does not support per-language configuration."),$ref:Fl};nm.patternProperties[Vo]=e,sm.patternProperties[Vo]=e,om.patternProperties[Vo]=e,rm.patternProperties[Vo]=e,am.patternProperties[Vo]=e,Qh.patternProperties[Vo]=e,this._onDidSchemaChange.fire()}updatePropertyDefaultValue(e,t){const i=this.configurationDefaultsOverrides.get(e);let n=i==null?void 0:i.value,o=i==null?void 0:i.source;vn(n)&&(n=t.defaultDefaultValue,o=void 0),vn(n)&&(n=aA(t.type)),t.default=n,t.defaultValueSource=o}}const Sk="\\[([^\\]]+)\\]",Mw=new RegExp(Sk,"g"),Vo=`^(${Sk})+$`,qc=new RegExp(Vo);function yk(s){const e=[];if(qc.test(s)){let t=Mw.exec(s);for(;t!=null&&t.length;){const i=t[1].trim();i&&e.push(i),t=Mw.exec(s)}}return wo(e)}function aA(s){switch(Array.isArray(s)?s[0]:s){case"boolean":return!1;case"integer":case"number":return 0;case"string":return"";case"array":return[];case"object":return{};default:return null}}const Lk=new rA;xt.add(kl.Configuration,Lk);function lA(s){return s.trim()?qc.test(s)?p("config.property.languageDefault","Cannot register '{0}'. This matches property pattern '\\\\[.*\\\\]$' for describing language specific editor settings. Use 'configurationDefaults' contribution.",s):Lk.getConfigurationProperties()[s]!==void 0?p("config.property.duplicate","Cannot register '{0}'. This property is already registered.",s):null:p("config.property.empty","Cannot register an empty property")}const cA={ModesRegistry:"editor.modesRegistry"};class hA{constructor(){this._onDidChangeLanguages=new M,this.onDidChangeLanguages=this._onDidChangeLanguages.event,this._languages=[]}registerLanguage(e){return this._languages.push(e),this._onDidChangeLanguages.fire(void 0),{dispose:()=>{for(let t=0,i=this._languages.length;t"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}],colorizedBracketPairs:[],folding:{offSide:!0}},0);xt.as(kl.Configuration).registerDefaultConfigurations([{overrides:{"[plaintext]":{"editor.unicodeHighlight.ambiguousCharacters":!1,"editor.unicodeHighlight.invisibleCharacters":!1}}}]);globalThis&&globalThis.__awaiter;function uA(s,e,t,i,n,o,r){let a="
    ",l=i,c=0,h=!0;for(let d=0,u=e.getCount();d0;)r&&h?(m+=" ",h=!1):(m+=" ",h=!0),b--;break}case 60:m+="<",h=!1;break;case 62:m+=">",h=!1;break;case 38:m+="&",h=!1;break;case 0:m+="�",h=!1;break;case 65279:case 8232:case 8233:case 133:m+="\uFFFD",h=!1;break;case 13:m+="​",h=!1;break;case 32:r&&h?(m+=" ",h=!1):(m+=" ",h=!0);break;default:m+=String.fromCharCode(_),h=!1}}if(a+=`${m}`,f>n||l>=n)break}return a+="
    ",a}class fA{constructor(){this._hasPending=!1,this._inserts=[],this._changes=[],this._removes=[]}insert(e){this._hasPending=!0,this._inserts.push(e)}change(e){this._hasPending=!0,this._changes.push(e)}remove(e){this._hasPending=!0,this._removes.push(e)}mustCommit(){return this._hasPending}commit(e){if(!this._hasPending)return;const t=this._inserts,i=this._changes,n=this._removes;this._hasPending=!1,this._inserts=[],this._changes=[],this._removes=[],e._commitPendingChanges(t,i,n)}}class gA{constructor(e,t,i,n,o){this.id=e,this.afterLineNumber=t,this.ordinal=i,this.height=n,this.minWidth=o,this.prefixSum=0}}class Gc{constructor(e,t,i,n){this._instanceId=xy(++Gc.INSTANCE_COUNT),this._pendingChanges=new fA,this._lastWhitespaceId=0,this._arr=[],this._prefixSumValidIndex=-1,this._minWidth=-1,this._lineCount=e,this._lineHeight=t,this._paddingTop=i,this._paddingBottom=n}static findInsertionIndex(e,t,i){let n=0,o=e.length;for(;n>>1;t===e[r].afterLineNumber?i{t=!0,n=n|0,o=o|0,r=r|0,a=a|0;const l=this._instanceId+ ++this._lastWhitespaceId;return this._pendingChanges.insert(new gA(l,n,o,r,a)),l},changeOneWhitespace:(n,o,r)=>{t=!0,o=o|0,r=r|0,this._pendingChanges.change({id:n,newAfterLineNumber:o,newHeight:r})},removeWhitespace:n=>{t=!0,this._pendingChanges.remove({id:n})}})}finally{this._pendingChanges.commit(this)}return t}_commitPendingChanges(e,t,i){if((e.length>0||i.length>0)&&(this._minWidth=-1),e.length+t.length+i.length<=1){for(const l of e)this._insertWhitespace(l);for(const l of t)this._changeOneWhitespace(l.id,l.newAfterLineNumber,l.newHeight);for(const l of i){const c=this._findWhitespaceIndex(l.id);c!==-1&&this._removeWhitespace(c)}return}const n=new Set;for(const l of i)n.add(l.id);const o=new Map;for(const l of t)o.set(l.id,l);const r=l=>{const c=[];for(const h of l)if(!n.has(h.id)){if(o.has(h.id)){const d=o.get(h.id);h.afterLineNumber=d.newAfterLineNumber,h.height=d.newHeight}c.push(h)}return c},a=r(this._arr).concat(r(e));a.sort((l,c)=>l.afterLineNumber===c.afterLineNumber?l.ordinal-c.ordinal:l.afterLineNumber-c.afterLineNumber),this._arr=a,this._prefixSumValidIndex=-1}_checkPendingChanges(){this._pendingChanges.mustCommit()&&this._pendingChanges.commit(this)}_insertWhitespace(e){const t=Gc.findInsertionIndex(this._arr,e.afterLineNumber,e.ordinal);this._arr.splice(t,0,e),this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,t-1)}_findWhitespaceIndex(e){const t=this._arr;for(let i=0,n=t.length;it&&(this._arr[i].afterLineNumber-=t-e+1)}}onLinesInserted(e,t){this._checkPendingChanges(),e=e|0,t=t|0,this._lineCount+=t-e+1;for(let i=0,n=this._arr.length;i=t.length||t[a+1].afterLineNumber>=e)return a;i=a+1|0}else n=a-1|0}return-1}_findFirstWhitespaceAfterLineNumber(e){e=e|0;const i=this._findLastWhitespaceBeforeLineNumber(e)+1;return i1?t=this._lineHeight*(e-1):t=0;const i=this.getWhitespaceAccumulatedHeightBeforeLineNumber(e);return t+i+this._paddingTop}getWhitespaceMinWidth(){if(this._checkPendingChanges(),this._minWidth===-1){let e=0;for(let t=0,i=this._arr.length;tt}isInTopPadding(e){return this._paddingTop===0?!1:(this._checkPendingChanges(),e=t-this._paddingBottom}getLineNumberAtOrAfterVerticalOffset(e){if(this._checkPendingChanges(),e=e|0,e<0)return 1;const t=this._lineCount|0,i=this._lineHeight;let n=1,o=t;for(;n=a+i)n=r+1;else{if(e>=a)return r;o=r}}return n>t?t:n}getLinesViewportData(e,t){this._checkPendingChanges(),e=e|0,t=t|0;const i=this._lineHeight,n=this.getLineNumberAtOrAfterVerticalOffset(e)|0,o=this.getVerticalOffsetForLineNumber(n)|0;let r=this._lineCount|0,a=this.getFirstWhitespaceIndexAfterLineNumber(n)|0;const l=this.getWhitespacesCount()|0;let c,h;a===-1?(a=l,h=r+1,c=0):(h=this.getAfterLineNumberForWhitespaceIndex(a)|0,c=this.getHeightForWhitespaceIndex(a)|0);let d=o,u=d;const f=5e5;let m=0;o>=f&&(m=Math.floor(o/f)*f,m=Math.floor(m/i)*i,u-=m);const _=[],b=e+(t-e)/2;let w=-1;for(let k=n;k<=r;k++){if(w===-1){const x=d,L=d+i;(x<=b&&bb)&&(w=k)}for(d+=i,_[k-n]=u,u+=i;h===k;)u+=c,d+=c,a++,a>=l?h=r+1:(h=this.getAfterLineNumberForWhitespaceIndex(a)|0,c=this.getHeightForWhitespaceIndex(a)|0);if(d>=t){r=k;break}}w===-1&&(w=r);const C=this.getVerticalOffsetForLineNumber(r)|0;let v=n,S=r;return vt&&S--,{bigNumbersDelta:m,startLineNumber:n,endLineNumber:r,relativeVerticalOffset:_,centeredLineNumber:w,completelyVisibleStartLineNumber:v,completelyVisibleEndLineNumber:S}}getVerticalOffsetForWhitespaceIndex(e){this._checkPendingChanges(),e=e|0;const t=this.getAfterLineNumberForWhitespaceIndex(e);let i;t>=1?i=this._lineHeight*t:i=0;let n;return e>0?n=this.getWhitespacesAccumulatedHeight(e-1):n=0,i+n+this._paddingTop}getWhitespaceIndexAtOrAfterVerticallOffset(e){this._checkPendingChanges(),e=e|0;let t=0,i=this.getWhitespacesCount()-1;if(i<0)return-1;const n=this.getVerticalOffsetForWhitespaceIndex(i),o=this.getHeightForWhitespaceIndex(i);if(e>=n+o)return-1;for(;t=a+l)t=r+1;else{if(e>=a)return r;i=r}}return t}getWhitespaceAtVerticalOffset(e){this._checkPendingChanges(),e=e|0;const t=this.getWhitespaceIndexAtOrAfterVerticallOffset(e);if(t<0||t>=this.getWhitespacesCount())return null;const i=this.getVerticalOffsetForWhitespaceIndex(t);if(i>e)return null;const n=this.getHeightForWhitespaceIndex(t),o=this.getIdForWhitespaceIndex(t),r=this.getAfterLineNumberForWhitespaceIndex(t);return{id:o,afterLineNumber:r,verticalOffset:i,height:n}}getWhitespaceViewportData(e,t){this._checkPendingChanges(),e=e|0,t=t|0;const i=this.getWhitespaceIndexAtOrAfterVerticallOffset(e),n=this.getWhitespacesCount()-1;if(i<0)return[];const o=[];for(let r=i;r<=n;r++){const a=this.getVerticalOffsetForWhitespaceIndex(r),l=this.getHeightForWhitespaceIndex(r);if(a>=t)break;o.push({id:this.getIdForWhitespaceIndex(r),afterLineNumber:this.getAfterLineNumberForWhitespaceIndex(r),verticalOffset:a,height:l})}return o}getWhitespaces(){return this._checkPendingChanges(),this._arr.slice(0)}getWhitespacesCount(){return this._checkPendingChanges(),this._arr.length}getIdForWhitespaceIndex(e){return this._checkPendingChanges(),e=e|0,this._arr[e].id}getAfterLineNumberForWhitespaceIndex(e){return this._checkPendingChanges(),e=e|0,this._arr[e].afterLineNumber}getHeightForWhitespaceIndex(e){return this._checkPendingChanges(),e=e|0,this._arr[e].height}}Gc.INSTANCE_COUNT=0;const mA=125;class Gl{constructor(e,t,i,n){e=e|0,t=t|0,i=i|0,n=n|0,e<0&&(e=0),t<0&&(t=0),i<0&&(i=0),n<0&&(n=0),this.width=e,this.contentWidth=t,this.scrollWidth=Math.max(e,t),this.height=i,this.contentHeight=n,this.scrollHeight=Math.max(i,n)}equals(e){return this.width===e.width&&this.contentWidth===e.contentWidth&&this.height===e.height&&this.contentHeight===e.contentHeight}}class pA extends W{constructor(e,t){super(),this._onDidContentSizeChange=this._register(new M),this.onDidContentSizeChange=this._onDidContentSizeChange.event,this._dimensions=new Gl(0,0,0,0),this._scrollable=this._register(new Eh({forceIntegerValues:!0,smoothScrollDuration:e,scheduleAtNextAnimationFrame:t})),this.onDidScroll=this._scrollable.onScroll}getScrollable(){return this._scrollable}setSmoothScrollDuration(e){this._scrollable.setSmoothScrollDuration(e)}validateScrollPosition(e){return this._scrollable.validateScrollPosition(e)}getScrollDimensions(){return this._dimensions}setScrollDimensions(e){if(this._dimensions.equals(e))return;const t=this._dimensions;this._dimensions=e,this._scrollable.setScrollDimensions({width:e.width,scrollWidth:e.scrollWidth,height:e.height,scrollHeight:e.scrollHeight},!0);const i=t.contentWidth!==e.contentWidth,n=t.contentHeight!==e.contentHeight;(i||n)&&this._onDidContentSizeChange.fire(new U0(t.contentWidth,t.contentHeight,e.contentWidth,e.contentHeight))}getFutureScrollPosition(){return this._scrollable.getFutureScrollPosition()}getCurrentScrollPosition(){return this._scrollable.getCurrentScrollPosition()}setScrollPositionNow(e){this._scrollable.setScrollPositionNow(e)}setScrollPositionSmooth(e){this._scrollable.setScrollPositionSmooth(e)}}class _A extends W{constructor(e,t,i){super(),this._configuration=e;const n=this._configuration.options,o=n.get(131),r=n.get(75);this._linesLayout=new Gc(t,n.get(59),r.top,r.bottom),this._scrollable=this._register(new pA(0,i)),this._configureSmoothScrollDuration(),this._scrollable.setScrollDimensions(new Gl(o.contentWidth,0,o.height,0)),this.onDidScroll=this._scrollable.onDidScroll,this.onDidContentSizeChange=this._scrollable.onDidContentSizeChange,this._updateHeight()}dispose(){super.dispose()}getScrollable(){return this._scrollable.getScrollable()}onHeightMaybeChanged(){this._updateHeight()}_configureSmoothScrollDuration(){this._scrollable.setSmoothScrollDuration(this._configuration.options.get(103)?mA:0)}onConfigurationChanged(e){const t=this._configuration.options;if(e.hasChanged(59)&&this._linesLayout.setLineHeight(t.get(59)),e.hasChanged(75)){const i=t.get(75);this._linesLayout.setPadding(i.top,i.bottom)}if(e.hasChanged(131)){const i=t.get(131),n=i.contentWidth,o=i.height,r=this._scrollable.getScrollDimensions(),a=r.contentWidth;this._scrollable.setScrollDimensions(new Gl(n,r.contentWidth,o,this._getContentHeight(n,o,a)))}else this._updateHeight();e.hasChanged(103)&&this._configureSmoothScrollDuration()}onFlushed(e){this._linesLayout.onFlushed(e)}onLinesDeleted(e,t){this._linesLayout.onLinesDeleted(e,t)}onLinesInserted(e,t){this._linesLayout.onLinesInserted(e,t)}_getHorizontalScrollbarHeight(e,t){const n=this._configuration.options.get(92);return n.horizontal===2||e>=t?0:n.horizontalScrollbarSize}_getContentHeight(e,t,i){const n=this._configuration.options;let o=this._linesLayout.getLinesTotalHeight();return n.get(94)?o+=Math.max(0,t-n.get(59)-n.get(75).bottom):o+=this._getHorizontalScrollbarHeight(e,i),o}_updateHeight(){const e=this._scrollable.getScrollDimensions(),t=e.width,i=e.height,n=e.contentWidth;this._scrollable.setScrollDimensions(new Gl(t,e.contentWidth,i,this._getContentHeight(t,i,n)))}getCurrentViewport(){const e=this._scrollable.getScrollDimensions(),t=this._scrollable.getCurrentScrollPosition();return new PC(t.scrollTop,t.scrollLeft,e.width,e.height)}getFutureViewport(){const e=this._scrollable.getScrollDimensions(),t=this._scrollable.getFutureScrollPosition();return new PC(t.scrollTop,t.scrollLeft,e.width,e.height)}_computeContentWidth(e){const t=this._configuration.options,i=t.get(132),n=t.get(44);if(i.isViewportWrapping){const o=t.get(131),r=t.get(65);return e>o.contentWidth+n.typicalHalfwidthCharacterWidth&&r.enabled&&r.side==="right"?e+o.verticalScrollbarWidth:e}else{const o=t.get(93)*n.typicalHalfwidthCharacterWidth,r=this._linesLayout.getWhitespaceMinWidth();return Math.max(e+o,r)}}setMaxLineWidth(e){const t=this._scrollable.getScrollDimensions();this._scrollable.setScrollDimensions(new Gl(t.width,this._computeContentWidth(e),t.height,t.contentHeight)),this._updateHeight()}saveState(){const e=this._scrollable.getFutureScrollPosition(),t=e.scrollTop,i=this._linesLayout.getLineNumberAtOrAfterVerticalOffset(t),n=this._linesLayout.getWhitespaceAccumulatedHeightBeforeLineNumber(i);return{scrollTop:t,scrollTopWithoutViewZones:t-n,scrollLeft:e.scrollLeft}}changeWhitespace(e){const t=this._linesLayout.changeWhitespace(e);return t&&this.onHeightMaybeChanged(),t}getVerticalOffsetForLineNumber(e){return this._linesLayout.getVerticalOffsetForLineNumber(e)}isAfterLines(e){return this._linesLayout.isAfterLines(e)}isInTopPadding(e){return this._linesLayout.isInTopPadding(e)}isInBottomPadding(e){return this._linesLayout.isInBottomPadding(e)}getLineNumberAtVerticalOffset(e){return this._linesLayout.getLineNumberAtOrAfterVerticalOffset(e)}getWhitespaceAtVerticalOffset(e){return this._linesLayout.getWhitespaceAtVerticalOffset(e)}getLinesViewportData(){const e=this.getCurrentViewport();return this._linesLayout.getLinesViewportData(e.top,e.top+e.height)}getLinesViewportDataAtScrollTop(e){const t=this._scrollable.getScrollDimensions();return e+t.height>t.scrollHeight&&(e=t.scrollHeight-t.height),e<0&&(e=0),this._linesLayout.getLinesViewportData(e,e+t.height)}getWhitespaceViewportData(){const e=this.getCurrentViewport();return this._linesLayout.getWhitespaceViewportData(e.top,e.top+e.height)}getWhitespaces(){return this._linesLayout.getWhitespaces()}getContentWidth(){return this._scrollable.getScrollDimensions().contentWidth}getScrollWidth(){return this._scrollable.getScrollDimensions().scrollWidth}getContentHeight(){return this._scrollable.getScrollDimensions().contentHeight}getScrollHeight(){return this._scrollable.getScrollDimensions().scrollHeight}getCurrentScrollLeft(){return this._scrollable.getCurrentScrollPosition().scrollLeft}getCurrentScrollTop(){return this._scrollable.getCurrentScrollPosition().scrollTop}validateScrollPosition(e){return this._scrollable.validateScrollPosition(e)}setScrollPosition(e,t){t===1?this._scrollable.setScrollPositionNow(e):this._scrollable.setScrollPositionSmooth(e)}deltaScrollNow(e,t){const i=this._scrollable.getCurrentScrollPosition();this._scrollable.setScrollPositionNow({scrollLeft:i.scrollLeft+e,scrollTop:i.scrollTop+t})}}class bA{constructor(e,t,i,n,o){this.editorId=e,this.model=t,this.configuration=i,this._linesCollection=n,this._coordinatesConverter=o,this._decorationsCache=Object.create(null),this._cachedModelDecorationsResolver=null,this._cachedModelDecorationsResolverViewRange=null}_clearCachedModelDecorationsResolver(){this._cachedModelDecorationsResolver=null,this._cachedModelDecorationsResolverViewRange=null}dispose(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}reset(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}onModelDecorationsChanged(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}onLineMappingChanged(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}_getOrCreateViewModelDecoration(e){const t=e.id;let i=this._decorationsCache[t];if(!i){const n=e.range,o=e.options;let r;if(o.isWholeLine){const a=this._coordinatesConverter.convertModelPositionToViewPosition(new A(n.startLineNumber,1),0),l=this._coordinatesConverter.convertModelPositionToViewPosition(new A(n.endLineNumber,this.model.getLineMaxColumn(n.endLineNumber)),1);r=new D(a.lineNumber,a.column,l.lineNumber,l.column)}else r=this._coordinatesConverter.convertModelRangeToViewRange(n,1);i=new Jy(r,o),this._decorationsCache[t]=i}return i}getDecorationsViewportData(e){let t=this._cachedModelDecorationsResolver!==null;return t=t&&e.equalsRange(this._cachedModelDecorationsResolverViewRange),t||(this._cachedModelDecorationsResolver=this._getDecorationsViewportData(e),this._cachedModelDecorationsResolverViewRange=e),this._cachedModelDecorationsResolver}_getDecorationsViewportData(e){const t=this._linesCollection.getDecorationsInRange(e,this.editorId,su(this.configuration.options)),i=e.startLineNumber,n=e.endLineNumber,o=[];let r=0;const a=[];for(let l=i;l<=n;l++)a[l-i]=[];for(let l=0,c=t.length;lt===1)}function vA(s,e){return kk(s,e.range,t=>t===2)}function kk(s,e,t){for(let i=e.startLineNumber;i<=e.endLineNumber;i++){const n=s.getLineTokens(i),o=i===e.startLineNumber,r=i===e.endLineNumber;let a=o?n.findTokenIndexAtOffset(e.startColumn-1):0;for(;ae.endColumn-1);){if(!t(n.getStandardTokenType(a)))return!1;a++}}return!0}class Jh{constructor(e,t,i){this.range=e,this.nestingLevel=t,this.isInvalid=i}}class SA{constructor(e,t,i,n){this.range=e,this.openingBracketRange=t,this.closingBracketRange=i,this.nestingLevel=n}}class yA extends SA{constructor(e,t,i,n,o){super(e,t,i,n),this.minVisibleColumnIndentation=o}}class I_{constructor(e,t){this.lineCount=e,this.columnCount=t}toString(){return`${this.lineCount},${this.columnCount}`}}I_.zero=new I_(0,0);function LA(s,e,t,i){return s!==t?Ke(t-s,i):Ke(0,i-e)}const Ps=0;function kA(s){return s===0}const _i=Math.pow(2,26);function Ke(s,e){return s*_i+e}function Co(s){const e=s,t=Math.floor(e/_i),i=e-t*_i;return new I_(t,i)}function xA(s){return Math.floor(s/_i)}function yt(s,e){return e<_i?s+e:s-s%_i+e}function IA(s,e){const t=s,i=e;if(i-t<=0)return Ps;const o=Math.floor(t/_i),r=Math.floor(i/_i),a=i-r*_i;if(o===r){const l=t-o*_i;return Ke(0,a-l)}else return Ke(r-o,a)}function Ud(s,e){return s=e}function td(s){return Ke(s.lineNumber-1,s.column-1)}function ir(s,e){const t=s,i=Math.floor(t/_i),n=t-i*_i,o=e,r=Math.floor(o/_i),a=o-r*_i;return new D(i+1,n+1,r+1,a+1)}function EA(s){const e=Ch(s);return Ke(e.length-1,e[e.length-1].length)}class Rw{constructor(e,t,i){this.startOffset=e,this.endOffset=t,this.newLength=i}}class DA{constructor(e,t){this.documentLength=t,this.nextEditIdx=0,this.deltaOldToNewLineCount=0,this.deltaOldToNewColumnCount=0,this.deltaLineIdxInOld=-1,this.edits=e.map(i=>K0.from(i))}getOffsetBeforeChange(e){return this.adjustNextEdit(e),this.translateCurToOld(e)}getDistanceToNextChange(e){this.adjustNextEdit(e);const t=this.edits[this.nextEditIdx],i=t?this.translateOldToCur(t.offsetObj):this.documentLength;return IA(e,i)}translateOldToCur(e){return e.lineCount===this.deltaLineIdxInOld?Ke(e.lineCount+this.deltaOldToNewLineCount,e.columnCount+this.deltaOldToNewColumnCount):Ke(e.lineCount+this.deltaOldToNewLineCount,e.columnCount)}translateCurToOld(e){const t=Co(e);return t.lineCount-this.deltaOldToNewLineCount===this.deltaLineIdxInOld?Ke(t.lineCount-this.deltaOldToNewLineCount,t.columnCount-this.deltaOldToNewColumnCount):Ke(t.lineCount-this.deltaOldToNewLineCount,t.columnCount)}adjustNextEdit(e){for(;this.nextEditIdx>5;if(n===0){const r=1<0;)t=t.getChild(i-1);return t.canBeReused(e)}handleChildrenChanged(){this.throwIfImmutable();const e=this.childrenLength;let t=this.getChild(0).length,i=this.getChild(0).missingOpeningBracketIds;for(let n=1;nthis.textBufferLineCount-1||this.lineIdx===this.textBufferLineCount-1&&this.lineCharOffset>=this.textBufferLastLineLength)return null;this.line===null&&(this.lineTokens=this.textModel.getLineTokens(this.lineIdx+1),this.line=this.lineTokens.getLineContent(),this.lineTokenOffset=this.lineCharOffset===0?0:this.lineTokens.findTokenIndexAtOffset(this.lineCharOffset));const e=this.lineIdx,t=this.lineCharOffset;let i=0;for(;;){const o=this.lineTokens,r=o.getCount();let a=null;if(this.lineTokenOffset1e3))break;if(i>1500)break}const n=LA(e,t,this.lineIdx,this.lineCharOffset);return new no(n,0,-1,Je.getEmpty(),new na(n))}}class FA{constructor(e,t){this.text=e,this._offset=Ps,this.idx=0;const n=t.getRegExpStr()?new RegExp(t.getRegExpStr()+`| +`,"g"):null,o=[];let r,a=0,l=0,c=0,h=0;const d=new Array;for(let m=0;m<60;m++)d.push(new no(Ke(0,m),0,-1,Je.getEmpty(),new na(Ke(0,m))));const u=new Array;for(let m=0;m<60;m++)u.push(new no(Ke(1,m),0,-1,Je.getEmpty(),new na(Ke(1,m))));if(n)for(n.lastIndex=0;(r=n.exec(e))!==null;){const m=r.index,_=r[0];if(_===` +`)a++,l=m+1;else{if(c!==m){let b;if(h===a){const w=m-c;if(wBA(t)).join("|")}}get regExpGlobal(){if(!this.hasRegExp){const e=this.getRegExpStr();this._regExpGlobal=e?new RegExp(e,"g"):null,this.hasRegExp=!0}return this._regExpGlobal}getToken(e){return this.map.get(e)}findClosingTokenText(e){for(const[t,i]of this.map)if(i.bracketIds.intersects(e))return t}get isEmpty(){return this.map.size===0}}function BA(s){const e=Qn(s);return/^[\w ]+$/.test(s)?`\\b${e}\\b`:e}class VA{constructor(e,t){this.denseKeyProvider=e,this.getLanguageConfiguration=t,this.languageIdToBracketTokens=new Map}didLanguageChange(e){const t=this.languageIdToBracketTokens.get(e);if(!t)return!1;const i=Uu.createFromLanguage(this.getLanguageConfiguration(e),this.denseKeyProvider).getRegExpStr();return t.getRegExpStr()!==i}getSingleLanguageBracketTokens(e){let t=this.languageIdToBracketTokens.get(e);return t||(t=Uu.createFromLanguage(this.getLanguageConfiguration(e),this.denseKeyProvider),this.languageIdToBracketTokens.set(e,t)),t}}function WA(s){if(s.length===0)return null;if(s.length===1)return s[0];let e=0;function t(){if(e>=s.length)return null;const r=e,a=s[r].listHeight;for(e++;e=2?xk(r===0&&e===s.length?s:s.slice(r,e),!1):s[r]}let i=t(),n=t();if(!n)return i;for(let r=t();r;r=t())Ow(i,n)<=Ow(n,r)?(i=lm(i,n),n=r):n=lm(n,r);return lm(i,n)}function xk(s,e=!1){if(s.length===0)return null;if(s.length===1)return s[0];let t=s.length;for(;t>3;){const i=t>>1;for(let n=0;n=3?s[2]:null,e)}function Ow(s,e){return Math.abs(s.listHeight-e.listHeight)}function lm(s,e){return s.listHeight===e.listHeight?ts.create23(s,e,null,!1):s.listHeight>e.listHeight?HA(s,e):zA(e,s)}function HA(s,e){s=s.toMutable();let t=s;const i=new Array;let n;for(;;){if(e.listHeight===t.listHeight){n=e;break}if(t.kind!==4)throw new Error("unexpected");i.push(t),t=t.makeLastElementMutable()}for(let o=i.length-1;o>=0;o--){const r=i[o];n?r.childrenLength>=3?n=ts.create23(r.unappendChild(),n,null,!1):(r.appendChildOfSameHeight(n),n=void 0):r.handleChildrenChanged()}return n?ts.create23(s,n,null,!1):s}function zA(s,e){s=s.toMutable();let t=s;const i=new Array;for(;e.listHeight!==t.listHeight;){if(t.kind!==4)throw new Error("unexpected");i.push(t),t=t.makeFirstElementMutable()}let n=e;for(let o=i.length-1;o>=0;o--){const r=i[o];n?r.childrenLength>=3?n=ts.create23(n,r.unprependChild(),null,!1):(r.prependChildOfSameHeight(n),n=void 0):r.handleChildrenChanged()}return n?ts.create23(n,s,null,!1):s}class UA{constructor(e){this.lastOffset=Ps,this.nextNodes=[e],this.offsets=[Ps],this.idxs=[]}readLongestNodeAt(e,t){if(Ud(e,this.lastOffset))throw new Error("Invalid offset");for(this.lastOffset=e;;){const i=Bl(this.nextNodes);if(!i)return;const n=Bl(this.offsets);if(Ud(e,n))return;if(Ud(n,e))if(yt(n,i.length)<=e)this.nextNodeAfterCurrent();else{const o=cm(i);o!==-1?(this.nextNodes.push(i.getChild(o)),this.offsets.push(n),this.idxs.push(o)):this.nextNodeAfterCurrent()}else{if(t(i))return this.nextNodeAfterCurrent(),i;{const o=cm(i);if(o===-1){this.nextNodeAfterCurrent();return}else this.nextNodes.push(i.getChild(o)),this.offsets.push(n),this.idxs.push(o)}}}}nextNodeAfterCurrent(){for(;;){const e=Bl(this.offsets),t=Bl(this.nextNodes);if(this.nextNodes.pop(),this.offsets.pop(),this.idxs.length===0)break;const i=Bl(this.nextNodes),n=cm(i,this.idxs[this.idxs.length-1]);if(n!==-1){this.nextNodes.push(i.getChild(n)),this.offsets.push(yt(e,t.length)),this.idxs[this.idxs.length-1]=n;break}else this.idxs.pop()}}}function cm(s,e=-1){for(;;){if(e++,e>=s.childrenLength)return-1;if(s.getChild(e))return e}}function Bl(s){return s.length>0?s[s.length-1]:void 0}function Pw(s,e,t,i){return new $A(s,e,t,i).parseDocument()}class $A{constructor(e,t,i,n){if(this.tokenizer=e,this.createImmutableLists=n,this._itemsConstructed=0,this._itemsFromCache=0,i&&n)throw new Error("Not supported");this.oldNodeReader=i?new UA(i):void 0,this.positionMapper=new DA(t,e.length)}parseDocument(){this._itemsConstructed=0,this._itemsFromCache=0;let e=this.parseList(Je.getEmpty());return e||(e=ts.getEmpty()),e}parseList(e){const t=new Array;for(;;){const n=this.tokenizer.peek();if(!n||n.kind===2&&n.bracketIds.intersects(e))break;const o=this.parseChild(e);o.kind===4&&o.childrenLength===0||t.push(o)}return this.oldNodeReader?WA(t):xk(t,this.createImmutableLists)}parseChild(e){if(this.oldNodeReader){const i=this.positionMapper.getDistanceToNextChange(this.tokenizer.offset);if(!kA(i)){const n=this.oldNodeReader.readLongestNodeAt(this.positionMapper.getOffsetBeforeChange(this.tokenizer.offset),o=>Ud(o.length,i)?o.canBeReused(e):!1);if(n)return this._itemsFromCache++,this.tokenizer.skip(n.length),n}}this._itemsConstructed++;const t=this.tokenizer.read();switch(t.kind){case 2:return new AA(t.bracketIds,t.length);case 0:return t.astNode;case 1:{const i=e.merge(t.bracketIds),n=this.parseList(i),o=this.tokenizer.peek();return o&&o.kind===2&&(o.bracketId===t.bracketId||o.bracketIds.intersects(t.bracketIds))?(this.tokenizer.read(),Zc.create(t.astNode,n,o.astNode)):Zc.create(t.astNode,n,null)}default:throw new Error("unexpected")}}}class jA extends W{constructor(e,t){if(super(),this.textModel=e,this.getLanguageConfiguration=t,this.didChangeEmitter=new M,this.denseKeyProvider=new NA,this.brackets=new VA(this.denseKeyProvider,this.getLanguageConfiguration),this.onDidChange=this.didChangeEmitter.event,e.backgroundTokenizationState===0){const i=this.brackets.getSingleLanguageBracketTokens(this.textModel.getLanguageId()),n=new FA(this.textModel.getValue(),i);this.initialAstWithoutTokens=Pw(n,[],void 0,!0),this.astWithTokens=this.initialAstWithoutTokens}else e.backgroundTokenizationState===2?(this.initialAstWithoutTokens=void 0,this.astWithTokens=this.parseDocumentFromTextBuffer([],void 0,!1)):e.backgroundTokenizationState===1&&(this.initialAstWithoutTokens=this.parseDocumentFromTextBuffer([],void 0,!0),this.astWithTokens=this.initialAstWithoutTokens)}didLanguageChange(e){return this.brackets.didLanguageChange(e)}handleDidChangeBackgroundTokenizationState(){if(this.textModel.backgroundTokenizationState===2){const e=this.initialAstWithoutTokens===void 0;this.initialAstWithoutTokens=void 0,e||this.didChangeEmitter.fire()}}handleDidChangeTokens({ranges:e}){const t=e.map(i=>new Rw(Ke(i.fromLineNumber-1,0),Ke(i.toLineNumber,0),Ke(i.toLineNumber-i.fromLineNumber+1,0)));this.astWithTokens=this.parseDocumentFromTextBuffer(t,this.astWithTokens,!1),this.initialAstWithoutTokens||this.didChangeEmitter.fire()}handleContentChanged(e){const t=e.changes.map(i=>{const n=D.lift(i.range);return new Rw(td(n.getStartPosition()),td(n.getEndPosition()),EA(i.text))}).reverse();this.astWithTokens=this.parseDocumentFromTextBuffer(t,this.astWithTokens,!1),this.initialAstWithoutTokens&&(this.initialAstWithoutTokens=this.parseDocumentFromTextBuffer(t,this.initialAstWithoutTokens,!1))}parseDocumentFromTextBuffer(e,t,i){const n=t,o=new OA(this.textModel,this.brackets);return Pw(o,e,n,i)}getBracketsInRange(e){const t=Ke(e.startLineNumber-1,e.startColumn-1),i=Ke(e.endLineNumber-1,e.endColumn-1),n=new Array,o=this.initialAstWithoutTokens||this.astWithTokens;return E_(o,Ps,o.length,t,i,n),n}getBracketPairsInRange(e,t){const i=new Array,n=td(e.getStartPosition()),o=td(e.getEndPosition()),r=this.initialAstWithoutTokens||this.astWithTokens,a=new KA(i,t,this.textModel);return Ik(r,Ps,r.length,n,o,a),i}}function E_(s,e,t,i,n,o,r=0){if(s.kind===4)for(const a of s.children)t=yt(e,a.length),tr(e,n)&&ed(t,i)&&E_(a,e,t,i,n,o,r),e=t;else if(s.kind===2){r++;{const a=s.openingBracket;if(t=yt(e,a.length),tr(e,n)&&ed(t,i)){const l=ir(e,t);o.push(new Jh(l,r-1,!s.closingBracket))}e=t}if(s.child){const a=s.child;t=yt(e,a.length),tr(e,n)&&ed(t,i)&&E_(a,e,t,i,n,o,r),e=t}if(s.closingBracket){const a=s.closingBracket;if(t=yt(e,a.length),tr(e,n)&&ed(t,i)){const l=ir(e,t);o.push(new Jh(l,r-1,!1))}e=t}}else if(s.kind===3){const a=ir(e,t);o.push(new Jh(a,r-1,!0))}else if(s.kind===1){const a=ir(e,t);o.push(new Jh(a,r-1,!1))}}class KA{constructor(e,t,i){this.result=e,this.includeMinIndentation=t,this.textModel=i}}function Ik(s,e,t,i,n,o,r=0){var a;if(s.kind===2){const c=yt(e,s.openingBracket.length);let h=-1;o.includeMinIndentation&&(h=s.computeMinIndentation(e,o.textModel)),o.result.push(new yA(ir(e,t),ir(e,c),s.closingBracket?ir(yt(c,((a=s.child)===null||a===void 0?void 0:a.length)||Ps),t):void 0,r,h)),r++}let l=e;for(const c of s.children){const h=l;l=yt(l,c.length),tr(h,n)&&tr(i,l)&&Ik(c,h,l,i,n,o,r)}}class qA extends W{constructor(e,t){super(),this.textModel=e,this.languageConfigurationService=t,this.bracketPairsTree=this._register(new ly),this.onDidChangeEmitter=new M,this.onDidChange=this.onDidChangeEmitter.event,this.bracketsRequested=!1,this._register(this.languageConfigurationService.onDidChange(i=>{var n;(!i.languageId||((n=this.bracketPairsTree.value)===null||n===void 0?void 0:n.object.didLanguageChange(i.languageId)))&&(this.bracketPairsTree.clear(),this.updateBracketPairsTree())}))}get isDocumentSupported(){return this.textModel.getValueLength()<=5e6}handleDidChangeOptions(e){this.bracketPairsTree.clear(),this.updateBracketPairsTree()}handleDidChangeLanguage(e){this.bracketPairsTree.clear(),this.updateBracketPairsTree()}handleDidChangeContent(e){var t;(t=this.bracketPairsTree.value)===null||t===void 0||t.object.handleContentChanged(e)}handleDidChangeBackgroundTokenizationState(){var e;(e=this.bracketPairsTree.value)===null||e===void 0||e.object.handleDidChangeBackgroundTokenizationState()}handleDidChangeTokens(e){var t;(t=this.bracketPairsTree.value)===null||t===void 0||t.object.handleDidChangeTokens(e)}updateBracketPairsTree(){if(this.bracketsRequested&&this.isDocumentSupported){if(!this.bracketPairsTree.value){const e=new se;this.bracketPairsTree.value=GA(e.add(new jA(this.textModel,t=>this.languageConfigurationService.getLanguageConfiguration(t))),e),e.add(this.bracketPairsTree.value.object.onDidChange(t=>this.onDidChangeEmitter.fire(t))),this.onDidChangeEmitter.fire()}}else this.bracketPairsTree.value&&(this.bracketPairsTree.clear(),this.onDidChangeEmitter.fire())}getBracketPairsInRange(e){var t;return this.bracketsRequested=!0,this.updateBracketPairsTree(),((t=this.bracketPairsTree.value)===null||t===void 0?void 0:t.object.getBracketPairsInRange(e,!1))||[]}getBracketPairsInRangeWithMinIndentation(e){var t;return this.bracketsRequested=!0,this.updateBracketPairsTree(),((t=this.bracketPairsTree.value)===null||t===void 0?void 0:t.object.getBracketPairsInRange(e,!0))||[]}getBracketsInRange(e){var t;return this.bracketsRequested=!0,this.updateBracketPairsTree(),((t=this.bracketPairsTree.value)===null||t===void 0?void 0:t.object.getBracketsInRange(e))||[]}findMatchingBracketUp(e,t,i){const n=e.toLowerCase(),o=this.textModel.validatePosition(t),r=this.textModel.getLanguageIdAtPosition(o.lineNumber,o.column),a=this.languageConfigurationService.getLanguageConfiguration(r).brackets;if(!a)return null;const l=a.textIsBracket[n];return l?id(this._findMatchingBracketUp(l,o,hm(i))):null}matchBracket(e,t){const i=hm(t);return this._matchBracket(this.textModel.validatePosition(e),i)}_establishBracketSearchOffsets(e,t,i,n){const o=t.getCount(),r=t.getLanguageId(n);let a=Math.max(0,e.column-1-i.maxBracketLength);for(let c=n-1;c>=0;c--){const h=t.getEndOffset(c);if(h<=a)break;if(On(t.getStandardTokenType(c))||t.getLanguageId(c)!==r){a=h;break}}let l=Math.min(t.getLineContent().length,e.column-1+i.maxBracketLength);for(let c=n+1;c=l)break;if(On(t.getStandardTokenType(c))||t.getLanguageId(c)!==r){l=h;break}}return{searchStartOffset:a,searchEndOffset:l}}_matchBracket(e,t){const i=e.lineNumber,n=this.textModel.getLineTokens(i),o=this.textModel.getLineContent(i),r=n.findTokenIndexAtOffset(e.column-1);if(r<0)return null;const a=this.languageConfigurationService.getLanguageConfiguration(n.getLanguageId(r)).brackets;if(a&&!On(n.getStandardTokenType(r))){let{searchStartOffset:l,searchEndOffset:c}=this._establishBracketSearchOffsets(e,n,a,r),h=null;for(;;){const d=Ui.findNextBracketInRange(a.forwardRegex,i,o,l,c);if(!d)break;if(d.startColumn<=e.column&&e.column<=d.endColumn){const u=o.substring(d.startColumn-1,d.endColumn-1).toLowerCase(),f=this._matchFoundBracket(d,a.textIsBracket[u],a.textIsOpenBracket[u],t);if(f){if(f instanceof vs)return null;h=f}}l=d.endColumn-1}if(h)return h}if(r>0&&n.getStartOffset(r)===e.column-1){const l=r-1,c=this.languageConfigurationService.getLanguageConfiguration(n.getLanguageId(l)).brackets;if(c&&!On(n.getStandardTokenType(l))){const{searchStartOffset:h,searchEndOffset:d}=this._establishBracketSearchOffsets(e,n,c,l),u=Ui.findPrevBracketInRange(c.reversedRegex,i,o,h,d);if(u&&u.startColumn<=e.column&&e.column<=u.endColumn){const f=o.substring(u.startColumn-1,u.endColumn-1).toLowerCase(),m=this._matchFoundBracket(u,c.textIsBracket[f],c.textIsOpenBracket[f],t);if(m)return m instanceof vs?null:m}}}return null}_matchFoundBracket(e,t,i,n){if(!t)return null;const o=i?this._findMatchingBracketDown(t,e.getEndPosition(),n):this._findMatchingBracketUp(t,e.getStartPosition(),n);return o?o instanceof vs?o:[e,o]:null}_findMatchingBracketUp(e,t,i){const n=e.languageId,o=e.reversedRegex;let r=-1,a=0;const l=(c,h,d,u)=>{for(;;){if(i&&++a%100===0&&!i())return vs.INSTANCE;const f=Ui.findPrevBracketInRange(o,c,h,d,u);if(!f)break;const m=h.substring(f.startColumn-1,f.endColumn-1).toLowerCase();if(e.isOpen(m)?r++:e.isClose(m)&&r--,r===0)return f;u=f.startColumn-1}return null};for(let c=t.lineNumber;c>=1;c--){const h=this.textModel.getLineTokens(c),d=h.getCount(),u=this.textModel.getLineContent(c);let f=d-1,m=u.length,_=u.length;c===t.lineNumber&&(f=h.findTokenIndexAtOffset(t.column-1),m=t.column-1,_=t.column-1);let b=!0;for(;f>=0;f--){const w=h.getLanguageId(f)===n&&!On(h.getStandardTokenType(f));if(w)b?m=h.getStartOffset(f):(m=h.getStartOffset(f),_=h.getEndOffset(f));else if(b&&m!==_){const C=l(c,u,m,_);if(C)return C}b=w}if(b&&m!==_){const w=l(c,u,m,_);if(w)return w}}return null}_findMatchingBracketDown(e,t,i){const n=e.languageId,o=e.forwardRegex;let r=1,a=0;const l=(h,d,u,f)=>{for(;;){if(i&&++a%100===0&&!i())return vs.INSTANCE;const m=Ui.findNextBracketInRange(o,h,d,u,f);if(!m)break;const _=d.substring(m.startColumn-1,m.endColumn-1).toLowerCase();if(e.isOpen(_)?r++:e.isClose(_)&&r--,r===0)return m;u=m.endColumn-1}return null},c=this.textModel.getLineCount();for(let h=t.lineNumber;h<=c;h++){const d=this.textModel.getLineTokens(h),u=d.getCount(),f=this.textModel.getLineContent(h);let m=0,_=0,b=0;h===t.lineNumber&&(m=d.findTokenIndexAtOffset(t.column-1),_=t.column-1,b=t.column-1);let w=!0;for(;m=1;o--){const r=this.textModel.getLineTokens(o),a=r.getCount(),l=this.textModel.getLineContent(o);let c=a-1,h=l.length,d=l.length;if(o===t.lineNumber){c=r.findTokenIndexAtOffset(t.column-1),h=t.column-1,d=t.column-1;const f=r.getLanguageId(c);i!==f&&(i=f,n=this.languageConfigurationService.getLanguageConfiguration(i).brackets)}let u=!0;for(;c>=0;c--){const f=r.getLanguageId(c);if(i!==f){if(n&&u&&h!==d){const _=Ui.findPrevBracketInRange(n.reversedRegex,o,l,h,d);if(_)return this._toFoundBracket(n,_);u=!1}i=f,n=this.languageConfigurationService.getLanguageConfiguration(i).brackets}const m=!!n&&!On(r.getStandardTokenType(c));if(m)u?h=r.getStartOffset(c):(h=r.getStartOffset(c),d=r.getEndOffset(c));else if(n&&u&&h!==d){const _=Ui.findPrevBracketInRange(n.reversedRegex,o,l,h,d);if(_)return this._toFoundBracket(n,_)}u=m}if(n&&u&&h!==d){const f=Ui.findPrevBracketInRange(n.reversedRegex,o,l,h,d);if(f)return this._toFoundBracket(n,f)}}return null}findNextBracket(e){const t=this.textModel.validatePosition(e),i=this.textModel.getLineCount();let n=null,o=null;for(let r=t.lineNumber;r<=i;r++){const a=this.textModel.getLineTokens(r),l=a.getCount(),c=this.textModel.getLineContent(r);let h=0,d=0,u=0;if(r===t.lineNumber){h=a.findTokenIndexAtOffset(t.column-1),d=t.column-1,u=t.column-1;const m=a.getLanguageId(h);n!==m&&(n=m,o=this.languageConfigurationService.getLanguageConfiguration(n).brackets)}let f=!0;for(;h{if(!r.has(f)){const _=[];for(let b=0,w=m?m.brackets.length:0;b{for(;;){if(i&&++c%100===0&&!i())return vs.INSTANCE;const C=Ui.findNextBracketInRange(f.forwardRegex,m,_,b,w);if(!C)break;const v=_.substring(C.startColumn-1,C.endColumn-1).toLowerCase(),S=f.textIsBracket[v];if(S&&(S.isOpen(v)?a[S.index]++:S.isClose(v)&&a[S.index]--,a[S.index]===-1))return this._matchFoundBracket(C,S,!1,i);b=C.endColumn-1}return null};let d=null,u=null;for(let f=n.lineNumber;f<=o;f++){const m=this.textModel.getLineTokens(f),_=m.getCount(),b=this.textModel.getLineContent(f);let w=0,C=0,v=0;if(f===n.lineNumber){w=m.findTokenIndexAtOffset(n.column-1),C=n.column-1,v=n.column-1;const k=m.getLanguageId(w);d!==k&&(d=k,u=this.languageConfigurationService.getLanguageConfiguration(d).brackets,l(d,u))}let S=!0;for(;w<_;w++){const k=m.getLanguageId(w);if(d!==k){if(u&&S&&C!==v){const L=h(u,f,b,C,v);if(L)return id(L);S=!1}d=k,u=this.languageConfigurationService.getLanguageConfiguration(d).brackets,l(d,u)}const x=!!u&&!On(m.getStandardTokenType(w));if(x)S||(C=m.getStartOffset(w)),v=m.getEndOffset(w);else if(u&&S&&C!==v){const L=h(u,f,b,C,v);if(L)return id(L)}S=x}if(u&&S&&C!==v){const k=h(u,f,b,C,v);if(k)return id(k)}}return null}_toFoundBracket(e,t){if(!t)return null;let i=this.textModel.getValueInRange(t);i=i.toLowerCase();const n=e.textIsBracket[i];return n?{range:t,open:n.open,close:n.close,isOpen:e.textIsOpenBracket[i]}:null}}function GA(s,e){return{object:s,dispose:()=>e==null?void 0:e.dispose()}}function hm(s){if(typeof s=="undefined")return()=>!0;{const e=Date.now();return()=>Date.now()-e<=s}}class vs{constructor(){this._searchCanceledBrand=void 0}}vs.INSTANCE=new vs;function id(s){return s instanceof vs?null:s}class ZA extends W{constructor(e){super(),this.textModel=e,this.colorProvider=new Ek,this.onDidChangeEmitter=new M,this.onDidChange=this.onDidChangeEmitter.event,this.colorizationOptions=e.getOptions().bracketPairColorizationOptions,this._register(e.bracketPairs.onDidChange(t=>{this.onDidChangeEmitter.fire()}))}handleDidChangeOptions(e){this.colorizationOptions=this.textModel.getOptions().bracketPairColorizationOptions}getDecorationsInRange(e,t,i){if(t===void 0)return[];if(!this.colorizationOptions.enabled)return[];const n=new Array,o=this.textModel.bracketPairs.getBracketsInRange(e);for(const r of o)n.push({id:`bracket${r.range.toString()}-${r.nestingLevel}`,options:{description:"BracketPairColorization",inlineClassName:this.colorProvider.getInlineClassName(r)},ownerId:0,range:r.range});return n}getAllDecorations(e,t){return e===void 0?[]:this.colorizationOptions.enabled?this.getDecorationsInRange(new D(1,1,this.textModel.getLineCount(),1),e,t):[]}}class Ek{constructor(){this.unexpectedClosingBracketClassName="unexpected-closing-bracket"}getInlineClassName(e){return e.isInvalid?this.unexpectedClosingBracketClassName:this.getInlineClassNameOfLevel(e.nestingLevel)}getInlineClassNameOfLevel(e){return`bracket-highlighting-${e%30}`}}ni((s,e)=>{const t=[nk,sk,ok,rk,ak,lk],i=new Ek;e.addRule(`.monaco-editor .${i.unexpectedClosingBracketClassName} { color: ${s.getColor(mM)}; }`);const n=t.map(o=>s.getColor(o)).filter(o=>!!o).filter(o=>!o.isTransparent());for(let o=0;o<30;o++){const r=n[o%n.length];e.addRule(`.monaco-editor .${i.getInlineClassNameOfLevel(o)} { color: ${r}; }`)}});function nd(s){return s.replace(/\n/g,"\\n").replace(/\r/g,"\\r")}class wt{constructor(e,t,i,n){this.oldPosition=e,this.oldText=t,this.newPosition=i,this.newText=n}get oldLength(){return this.oldText.length}get oldEnd(){return this.oldPosition+this.oldText.length}get newLength(){return this.newText.length}get newEnd(){return this.newPosition+this.newText.length}toString(){return this.oldText.length===0?`(insert@${this.oldPosition} "${nd(this.newText)}")`:this.newText.length===0?`(delete@${this.oldPosition} "${nd(this.oldText)}")`:`(replace@${this.oldPosition} "${nd(this.oldText)}" with "${nd(this.newText)}")`}static _writeStringSize(e){return 4+2*e.length}static _writeString(e,t,i){const n=t.length;un(e,n,i),i+=4;for(let o=0;os.length)return!1;if(t){if(!e0(s,e))return!1;if(e.length===s.length)return!0;let o=e.length;return e.charAt(e.length-1)===i&&o--,s.charAt(o)===i}return e.charAt(e.length-1)!==i&&(e+=i),s.indexOf(e)===0}function QA(s){return s>=65&&s<=90||s>=97&&s<=122}function hs(s){return lu(s,!0)}class Z0{constructor(e){this._ignorePathCasing=e}compare(e,t,i=!1){return e===t?0:Wp(this.getComparisonKey(e,i),this.getComparisonKey(t,i))}isEqual(e,t,i=!1){return e===t?!0:!e||!t?!1:this.getComparisonKey(e,i)===this.getComparisonKey(t,i)}getComparisonKey(e,t=!1){return e.with({path:this._ignorePathCasing(e)?e.path.toLowerCase():void 0,fragment:t?null:void 0}).toString()}isEqualOrParent(e,t,i=!1){if(e.scheme===t.scheme){if(e.scheme===Ce.file)return D_(hs(e),hs(t),this._ignorePathCasing(e))&&e.query===t.query&&(i||e.fragment===t.fragment);if(Bw(e.authority,t.authority))return D_(e.path,t.path,this._ignorePathCasing(e),"/")&&e.query===t.query&&(i||e.fragment===t.fragment)}return!1}joinPath(e,...t){return we.joinPath(e,...t)}basenameOrAuthority(e){return Nk(e)||e.authority}basename(e){return tt.basename(e.path)}extname(e){return tt.extname(e.path)}dirname(e){if(e.path.length===0)return e;let t;return e.scheme===Ce.file?t=we.file(xE(hs(e))).path:(t=tt.dirname(e.path),e.authority&&t.length&&t.charCodeAt(0)!==47&&(console.error(`dirname("${e.toString})) resulted in a relative path`),t="/")),e.with({path:t})}normalizePath(e){if(!e.path.length)return e;let t;return e.scheme===Ce.file?t=we.file(fy(hs(e))).path:t=tt.normalize(e.path),e.with({path:t})}relativePath(e,t){if(e.scheme!==t.scheme||!Bw(e.authority,t.authority))return;if(e.scheme===Ce.file){const o=kE(hs(e),hs(t));return li?Dk(o):o}let i=e.path||"/",n=t.path||"/";if(this._ignorePathCasing(e)){let o=0;for(const r=Math.min(i.length,n.length);oFw(i).length&&i[i.length-1]===t}else{const i=e.path;return i.length>1&&i.charCodeAt(i.length-1)===47&&!/^[a-zA-Z]:(\/$|\\$)/.test(e.fsPath)}}removeTrailingPathSeparator(e,t=rr){return Vw(e,t)?e.with({path:e.path.substr(0,e.path.length-1)}):e}addTrailingPathSeparator(e,t=rr){let i=!1;if(e.scheme===Ce.file){const n=hs(e);i=n!==void 0&&n.length===Fw(n).length&&n[n.length-1]===t}else{t="/";const n=e.path;i=n.length===1&&n.charCodeAt(n.length-1)===47}return!i&&!Vw(e,t)?e.with({path:e.path+"/"}):e}}const Re=new Z0(()=>!1);new Z0(s=>s.scheme===Ce.file?!qt:!0);new Z0(s=>!0);Re.isEqual.bind(Re);Re.isEqualOrParent.bind(Re);Re.getComparisonKey.bind(Re);Re.basenameOrAuthority.bind(Re);const Nk=Re.basename.bind(Re);Re.extname.bind(Re);Re.dirname.bind(Re);Re.joinPath.bind(Re);const JA=Re.normalizePath.bind(Re);Re.relativePath.bind(Re);Re.resolvePath.bind(Re);Re.isAbsolutePath.bind(Re);const Bw=Re.isEqualAuthority.bind(Re),Vw=Re.hasTrailingPathSeparator.bind(Re);Re.removeTrailingPathSeparator.bind(Re);Re.addTrailingPathSeparator.bind(Re);var $u;(function(s){s.META_DATA_LABEL="label",s.META_DATA_DESCRIPTION="description",s.META_DATA_SIZE="size",s.META_DATA_MIME="mime";function e(t){const i=new Map;t.path.substring(t.path.indexOf(";")+1,t.path.lastIndexOf(";")).split(";").forEach(r=>{const[a,l]=r.split(":");a&&l&&i.set(a,l)});const o=t.path.substring(0,t.path.indexOf(";"));return o&&i.set(s.META_DATA_MIME,o),i}s.parseMetaData=e})($u||($u={}));function Qr(s){return s.toString()}class ht{constructor(e,t,i,n,o,r,a){this.beforeVersionId=e,this.afterVersionId=t,this.beforeEOL=i,this.afterEOL=n,this.beforeCursorState=o,this.afterCursorState=r,this.changes=a}static create(e,t){const i=e.getAlternativeVersionId(),n=N_(e);return new ht(i,i,n,n,t,t,[])}append(e,t,i,n,o){t.length>0&&(this.changes=YA(this.changes,t)),this.afterEOL=i,this.afterVersionId=n,this.afterCursorState=o}static _writeSelectionsSize(e){return 4+4*4*(e?e.length:0)}static _writeSelections(e,t,i){if(un(e,t?t.length:0,i),i+=4,t)for(const n of t)un(e,n.selectionStartLineNumber,i),i+=4,un(e,n.selectionStartColumn,i),i+=4,un(e,n.positionLineNumber,i),i+=4,un(e,n.positionColumn,i),i+=4;return i}static _readSelections(e,t,i){const n=dn(e,t);t+=4;for(let o=0;ot.toString()).join(", ")}matchesResource(e){return(we.isUri(this.model)?this.model:this.model.uri).toString()===e.toString()}setModel(e){this.model=e}canAppend(e){return this.model===e&&this._data instanceof ht}append(e,t,i,n,o){this._data instanceof ht&&this._data.append(e,t,i,n,o)}close(){this._data instanceof ht&&(this._data=this._data.serialize())}open(){this._data instanceof ht||(this._data=ht.deserialize(this._data))}undo(){if(we.isUri(this.model))throw new Error("Invalid SingleModelEditStackElement");this._data instanceof ht&&(this._data=this._data.serialize());const e=ht.deserialize(this._data);this.model._applyUndo(e.changes,e.beforeEOL,e.beforeVersionId,e.beforeCursorState)}redo(){if(we.isUri(this.model))throw new Error("Invalid SingleModelEditStackElement");this._data instanceof ht&&(this._data=this._data.serialize());const e=ht.deserialize(this._data);this.model._applyRedo(e.changes,e.afterEOL,e.afterVersionId,e.afterCursorState)}heapSize(){return this._data instanceof ht&&(this._data=this._data.serialize()),this._data.byteLength+168}}class e7{constructor(e,t){this.type=1,this.label=e,this._isOpen=!0,this._editStackElementsArr=t.slice(0),this._editStackElementsMap=new Map;for(const i of this._editStackElementsArr){const n=Qr(i.resource);this._editStackElementsMap.set(n,i)}this._delegate=null}get resources(){return this._editStackElementsArr.map(e=>e.resource)}prepareUndoRedo(){if(this._delegate)return this._delegate.prepareUndoRedo(this)}matchesResource(e){const t=Qr(e);return this._editStackElementsMap.has(t)}setModel(e){const t=Qr(we.isUri(e)?e:e.uri);this._editStackElementsMap.has(t)&&this._editStackElementsMap.get(t).setModel(e)}canAppend(e){if(!this._isOpen)return!1;const t=Qr(e.uri);return this._editStackElementsMap.has(t)?this._editStackElementsMap.get(t).canAppend(e):!1}append(e,t,i,n,o){const r=Qr(e.uri);this._editStackElementsMap.get(r).append(e,t,i,n,o)}close(){this._isOpen=!1}open(){}undo(){this._isOpen=!1;for(const e of this._editStackElementsArr)e.undo()}redo(){for(const e of this._editStackElementsArr)e.redo()}heapSize(e){const t=Qr(e);return this._editStackElementsMap.has(t)?this._editStackElementsMap.get(t).heapSize():0}split(){return this._editStackElementsArr}toString(){let e=[];for(const t of this._editStackElementsArr)e.push(`${Nk(t.resource)}: ${t}`);return`{${e.join(", ")}}`}}function N_(s){return s.getEOL()===` +`?0:1}function Ss(s){return s?s instanceof Tk||s instanceof e7:!1}class Y0{constructor(e,t){this._model=e,this._undoRedoService=t}pushStackElement(){const e=this._undoRedoService.getLastElement(this._model.uri);Ss(e)&&e.close()}popStackElement(){const e=this._undoRedoService.getLastElement(this._model.uri);Ss(e)&&e.open()}clear(){this._undoRedoService.removeElements(this._model.uri)}_getOrCreateEditStackElement(e){const t=this._undoRedoService.getLastElement(this._model.uri);if(Ss(t)&&t.canAppend(this._model))return t;const i=new Tk(this._model,e);return this._undoRedoService.pushElement(i),i}pushEOL(e){const t=this._getOrCreateEditStackElement(null);this._model.setEOL(e),t.append(this._model,[],N_(this._model),this._model.getAlternativeVersionId(),null)}pushEditOperation(e,t,i){const n=this._getOrCreateEditStackElement(e),o=this._model.applyEdits(t,!0),r=Y0._computeCursorState(i,o),a=o.map((l,c)=>({index:c,textChange:l.textChange}));return a.sort((l,c)=>l.textChange.oldPosition===c.textChange.oldPosition?l.index-c.index:l.textChange.oldPosition-c.textChange.oldPosition),n.append(this._model,a.map(l=>l.textChange),N_(this._model),this._model.getAlternativeVersionId(),r),r}static _computeCursorState(e,t){try{return e?e(t):null}catch(i){return Ze(i),null}}}class t7{constructor(){this.spacesDiff=0,this.looksLikeAlignment=!1}}function i7(s,e,t,i,n){n.spacesDiff=0,n.looksLikeAlignment=!1;let o;for(o=0;o0&&a>0||l>0&&c>0)return;const h=Math.abs(a-c),d=Math.abs(r-l);if(h===0){n.spacesDiff=d,d>0&&0<=l-1&&l-10?n++:S>1&&o++,i7(r,a,b,v,d),d.looksLikeAlignment&&!(t&&e===d.spacesDiff)))continue;const x=d.spacesDiff;x<=c&&h[x]++,r=b,a=v}let u=t;n!==o&&(u=n{const b=h[_];b>m&&(m=b,f=_)}),f===4&&h[4]>0&&h[2]>0&&h[2]>=h[4]/2&&(f=2)}return{insertSpaces:u,tabSize:f}}function Zt(s){return(s.metadata&1)>>>0}function Le(s,e){s.metadata=s.metadata&254|e<<0}function Lt(s){return(s.metadata&2)>>>1===1}function ye(s,e){s.metadata=s.metadata&253|(e?1:0)<<1}function Mk(s){return(s.metadata&4)>>>2===1}function Hw(s,e){s.metadata=s.metadata&251|(e?1:0)<<2}function n7(s){return(s.metadata&24)>>>3}function zw(s,e){s.metadata=s.metadata&231|e<<3}function s7(s){return(s.metadata&32)>>>5===1}function Uw(s,e){s.metadata=s.metadata&223|(e?1:0)<<5}class Rk{constructor(e,t,i){this.metadata=0,this.parent=this,this.left=this,this.right=this,Le(this,1),this.start=t,this.end=i,this.delta=0,this.maxEnd=i,this.id=e,this.ownerId=0,this.options=null,Hw(this,!1),zw(this,1),Uw(this,!1),this.cachedVersionId=0,this.cachedAbsoluteStart=t,this.cachedAbsoluteEnd=i,this.range=null,ye(this,!1)}reset(e,t,i,n){this.start=t,this.end=i,this.maxEnd=i,this.cachedVersionId=e,this.cachedAbsoluteStart=t,this.cachedAbsoluteEnd=i,this.range=n}setOptions(e){this.options=e;const t=this.options.className;Hw(this,t==="squiggly-error"||t==="squiggly-warning"||t==="squiggly-info"),zw(this,this.options.stickiness),Uw(this,this.options.collapseOnReplaceEdit)}setCachedOffsets(e,t,i){this.cachedVersionId!==i&&(this.range=null),this.cachedVersionId=i,this.cachedAbsoluteStart=e,this.cachedAbsoluteEnd=t}detach(){this.parent=null,this.left=null,this.right=null}}const te=new Rk(null,0,0);te.parent=te;te.left=te;te.right=te;Le(te,0);class dm{constructor(){this.root=te,this.requestNormalizeDelta=!1}intervalSearch(e,t,i,n,o){return this.root===te?[]:u7(this,e,t,i,n,o)}search(e,t,i){return this.root===te?[]:d7(this,e,t,i)}collectNodesFromOwner(e){return c7(this,e)}collectNodesPostOrder(){return h7(this)}insert(e){$w(this,e),this._normalizeDeltaIfNecessary()}delete(e){jw(this,e),this._normalizeDeltaIfNecessary()}resolveNode(e,t){const i=e;let n=0;for(;e!==this.root;)e===e.parent.right&&(n+=e.parent.delta),e=e.parent;const o=i.start+n,r=i.end+n;i.setCachedOffsets(o,r,t)}acceptReplace(e,t,i,n){const o=a7(this,e,e+t);for(let r=0,a=o.length;rt||i===1?!1:i===2?!0:e}function r7(s,e,t,i,n){const o=n7(s),r=o===0||o===2,a=o===1||o===2,l=t-e,c=i,h=Math.min(l,c),d=s.start;let u=!1;const f=s.end;let m=!1;e<=d&&f<=t&&s7(s)&&(s.start=e,u=!0,s.end=e,m=!0);{const b=n?1:l>0?2:0;!u&&Jr(d,r,e,b)&&(u=!0),!m&&Jr(f,a,e,b)&&(m=!0)}if(h>0&&!n){const b=l>c?2:0;!u&&Jr(d,r,e+h,b)&&(u=!0),!m&&Jr(f,a,e+h,b)&&(m=!0)}{const b=n?1:0;!u&&Jr(d,r,t,b)&&(s.start=e+c,u=!0),!m&&Jr(f,a,t,b)&&(s.end=e+c,m=!0)}const _=c-l;u||(s.start=Math.max(0,d+_)),m||(s.end=Math.max(0,f+_)),s.start>s.end&&(s.end=s.start)}function a7(s,e,t){let i=s.root,n=0,o=0,r=0,a=0;const l=[];let c=0;for(;i!==te;){if(Lt(i)){ye(i.left,!1),ye(i.right,!1),i===i.parent.right&&(n-=i.parent.delta),i=i.parent;continue}if(!Lt(i.left)){if(o=n+i.maxEnd,ot){ye(i,!0);continue}if(a=n+i.end,a>=e&&(i.setCachedOffsets(r,a,0),l[c++]=i),ye(i,!0),i.right!==te&&!Lt(i.right)){n+=i.delta,i=i.right;continue}}return ye(s.root,!1),l}function l7(s,e,t,i){let n=s.root,o=0,r=0,a=0;const l=i-(t-e);for(;n!==te;){if(Lt(n)){ye(n.left,!1),ye(n.right,!1),n===n.parent.right&&(o-=n.parent.delta),Lo(n),n=n.parent;continue}if(!Lt(n.left)){if(r=o+n.maxEnd,rt){n.start+=l,n.end+=l,n.delta+=l,(n.delta<-1073741824||n.delta>1073741824)&&(s.requestNormalizeDelta=!0),ye(n,!0);continue}if(ye(n,!0),n.right!==te&&!Lt(n.right)){o+=n.delta,n=n.right;continue}}ye(s.root,!1)}function c7(s,e){let t=s.root;const i=[];let n=0;for(;t!==te;){if(Lt(t)){ye(t.left,!1),ye(t.right,!1),t=t.parent;continue}if(t.left!==te&&!Lt(t.left)){t=t.left;continue}if(t.ownerId===e&&(i[n++]=t),ye(t,!0),t.right!==te&&!Lt(t.right)){t=t.right;continue}}return ye(s.root,!1),i}function h7(s){let e=s.root;const t=[];let i=0;for(;e!==te;){if(Lt(e)){ye(e.left,!1),ye(e.right,!1),e=e.parent;continue}if(e.left!==te&&!Lt(e.left)){e=e.left;continue}if(e.right!==te&&!Lt(e.right)){e=e.right;continue}t[i++]=e,ye(e,!0)}return ye(s.root,!1),t}function d7(s,e,t,i){let n=s.root,o=0,r=0,a=0;const l=[];let c=0;for(;n!==te;){if(Lt(n)){ye(n.left,!1),ye(n.right,!1),n===n.parent.right&&(o-=n.parent.delta),n=n.parent;continue}if(n.left!==te&&!Lt(n.left)){n=n.left;continue}r=o+n.start,a=o+n.end,n.setCachedOffsets(r,a,i);let h=!0;if(e&&n.ownerId&&n.ownerId!==e&&(h=!1),t&&Mk(n)&&(h=!1),h&&(l[c++]=n),ye(n,!0),n.right!==te&&!Lt(n.right)){o+=n.delta,n=n.right;continue}}return ye(s.root,!1),l}function u7(s,e,t,i,n,o){let r=s.root,a=0,l=0,c=0,h=0;const d=[];let u=0;for(;r!==te;){if(Lt(r)){ye(r.left,!1),ye(r.right,!1),r===r.parent.right&&(a-=r.parent.delta),r=r.parent;continue}if(!Lt(r.left)){if(l=a+r.maxEnd,lt){ye(r,!0);continue}if(h=a+r.end,h>=e){r.setCachedOffsets(c,h,o);let f=!0;i&&r.ownerId&&r.ownerId!==i&&(f=!1),n&&Mk(r)&&(f=!1),f&&(d[u++]=r)}if(ye(r,!0),r.right!==te&&!Lt(r.right)){a+=r.delta,r=r.right;continue}}return ye(s.root,!1),d}function $w(s,e){if(s.root===te)return e.parent=te,e.left=te,e.right=te,Le(e,0),s.root=e,s.root;f7(s,e),Zs(e.parent);let t=e;for(;t!==s.root&&Zt(t.parent)===1;)if(t.parent===t.parent.parent.left){const i=t.parent.parent.right;Zt(i)===1?(Le(t.parent,0),Le(i,0),Le(t.parent.parent,1),t=t.parent.parent):(t===t.parent.right&&(t=t.parent,fc(s,t)),Le(t.parent,0),Le(t.parent.parent,1),gc(s,t.parent.parent))}else{const i=t.parent.parent.left;Zt(i)===1?(Le(t.parent,0),Le(i,0),Le(t.parent.parent,1),t=t.parent.parent):(t===t.parent.left&&(t=t.parent,gc(s,t)),Le(t.parent,0),Le(t.parent.parent,1),fc(s,t.parent.parent))}return Le(s.root,0),e}function f7(s,e){let t=0,i=s.root;const n=e.start,o=e.end;for(;;)if(m7(n,o,i.start+t,i.end+t)<0)if(i.left===te){e.start-=t,e.end-=t,e.maxEnd-=t,i.left=e;break}else i=i.left;else if(i.right===te){e.start-=t+i.delta,e.end-=t+i.delta,e.maxEnd-=t+i.delta,i.right=e;break}else t+=i.delta,i=i.right;e.parent=i,e.left=te,e.right=te,Le(e,1)}function jw(s,e){let t,i;if(e.left===te?(t=e.right,i=e,t.delta+=e.delta,(t.delta<-1073741824||t.delta>1073741824)&&(s.requestNormalizeDelta=!0),t.start+=e.delta,t.end+=e.delta):e.right===te?(t=e.left,i=e):(i=g7(e.right),t=i.right,t.start+=i.delta,t.end+=i.delta,t.delta+=i.delta,(t.delta<-1073741824||t.delta>1073741824)&&(s.requestNormalizeDelta=!0),i.start+=e.delta,i.end+=e.delta,i.delta=e.delta,(i.delta<-1073741824||i.delta>1073741824)&&(s.requestNormalizeDelta=!0)),i===s.root){s.root=t,Le(t,0),e.detach(),um(),Lo(t),s.root.parent=te;return}const n=Zt(i)===1;if(i===i.parent.left?i.parent.left=t:i.parent.right=t,i===e?t.parent=i.parent:(i.parent===e?t.parent=i:t.parent=i.parent,i.left=e.left,i.right=e.right,i.parent=e.parent,Le(i,Zt(e)),e===s.root?s.root=i:e===e.parent.left?e.parent.left=i:e.parent.right=i,i.left!==te&&(i.left.parent=i),i.right!==te&&(i.right.parent=i)),e.detach(),n){Zs(t.parent),i!==e&&(Zs(i),Zs(i.parent)),um();return}Zs(t),Zs(t.parent),i!==e&&(Zs(i),Zs(i.parent));let o;for(;t!==s.root&&Zt(t)===0;)t===t.parent.left?(o=t.parent.right,Zt(o)===1&&(Le(o,0),Le(t.parent,1),fc(s,t.parent),o=t.parent.right),Zt(o.left)===0&&Zt(o.right)===0?(Le(o,1),t=t.parent):(Zt(o.right)===0&&(Le(o.left,0),Le(o,1),gc(s,o),o=t.parent.right),Le(o,Zt(t.parent)),Le(t.parent,0),Le(o.right,0),fc(s,t.parent),t=s.root)):(o=t.parent.left,Zt(o)===1&&(Le(o,0),Le(t.parent,1),gc(s,t.parent),o=t.parent.left),Zt(o.left)===0&&Zt(o.right)===0?(Le(o,1),t=t.parent):(Zt(o.left)===0&&(Le(o.right,0),Le(o,1),fc(s,o),o=t.parent.left),Le(o,Zt(t.parent)),Le(t.parent,0),Le(o.left,0),gc(s,t.parent),t=s.root));Le(t,0),um()}function g7(s){for(;s.left!==te;)s=s.left;return s}function um(){te.parent=te,te.delta=0,te.start=0,te.end=0}function fc(s,e){const t=e.right;t.delta+=e.delta,(t.delta<-1073741824||t.delta>1073741824)&&(s.requestNormalizeDelta=!0),t.start+=e.delta,t.end+=e.delta,e.right=t.left,t.left!==te&&(t.left.parent=e),t.parent=e.parent,e.parent===te?s.root=t:e===e.parent.left?e.parent.left=t:e.parent.right=t,t.left=e,e.parent=t,Lo(e),Lo(t)}function gc(s,e){const t=e.left;e.delta-=t.delta,(e.delta<-1073741824||e.delta>1073741824)&&(s.requestNormalizeDelta=!0),e.start-=t.delta,e.end-=t.delta,e.left=t.right,t.right!==te&&(t.right.parent=e),t.parent=e.parent,e.parent===te?s.root=t:e===e.parent.right?e.parent.right=t:e.parent.left=t,t.right=e,e.parent=t,Lo(e),Lo(t)}function Ak(s){let e=s.end;if(s.left!==te){const t=s.left.maxEnd;t>e&&(e=t)}if(s.right!==te){const t=s.right.maxEnd+s.delta;t>e&&(e=t)}return e}function Lo(s){s.maxEnd=Ak(s)}function Zs(s){for(;s!==te;){const e=Ak(s);if(s.maxEnd===e)return;s.maxEnd=e,s=s.parent}}function m7(s,e,t,i){return s===t?e-i:s-t}class T_{constructor(e,t){this.piece=e,this.color=t,this.size_left=0,this.lf_left=0,this.parent=this,this.left=this,this.right=this}next(){if(this.right!==Z)return X0(this.right);let e=this;for(;e.parent!==Z&&e.parent.left!==e;)e=e.parent;return e.parent===Z?Z:e.parent}prev(){if(this.left!==Z)return Ok(this.left);let e=this;for(;e.parent!==Z&&e.parent.right!==e;)e=e.parent;return e.parent===Z?Z:e.parent}detach(){this.parent=null,this.left=null,this.right=null}}const Z=new T_(null,0);Z.parent=Z;Z.left=Z;Z.right=Z;Z.color=0;function X0(s){for(;s.left!==Z;)s=s.left;return s}function Ok(s){for(;s.right!==Z;)s=s.right;return s}function Q0(s){return s===Z?0:s.size_left+s.piece.length+Q0(s.right)}function J0(s){return s===Z?0:s.lf_left+s.piece.lineFeedCnt+J0(s.right)}function fm(){Z.parent=Z}function mc(s,e){const t=e.right;t.size_left+=e.size_left+(e.piece?e.piece.length:0),t.lf_left+=e.lf_left+(e.piece?e.piece.lineFeedCnt:0),e.right=t.left,t.left!==Z&&(t.left.parent=e),t.parent=e.parent,e.parent===Z?s.root=t:e.parent.left===e?e.parent.left=t:e.parent.right=t,t.left=e,e.parent=t}function pc(s,e){const t=e.left;e.left=t.right,t.right!==Z&&(t.right.parent=e),t.parent=e.parent,e.size_left-=t.size_left+(t.piece?t.piece.length:0),e.lf_left-=t.lf_left+(t.piece?t.piece.lineFeedCnt:0),e.parent===Z?s.root=t:e===e.parent.right?e.parent.right=t:e.parent.left=t,t.right=e,e.parent=t}function sd(s,e){let t,i;if(e.left===Z?(i=e,t=i.right):e.right===Z?(i=e,t=i.left):(i=X0(e.right),t=i.right),i===s.root){s.root=t,t.color=0,e.detach(),fm(),s.root.parent=Z;return}const n=i.color===1;if(i===i.parent.left?i.parent.left=t:i.parent.right=t,i===e?(t.parent=i.parent,Zl(s,t)):(i.parent===e?t.parent=i:t.parent=i.parent,Zl(s,t),i.left=e.left,i.right=e.right,i.parent=e.parent,i.color=e.color,e===s.root?s.root=i:e===e.parent.left?e.parent.left=i:e.parent.right=i,i.left!==Z&&(i.left.parent=i),i.right!==Z&&(i.right.parent=i),i.size_left=e.size_left,i.lf_left=e.lf_left,Zl(s,i)),e.detach(),t.parent.left===t){const r=Q0(t),a=J0(t);if(r!==t.parent.size_left||a!==t.parent.lf_left){const l=r-t.parent.size_left,c=a-t.parent.lf_left;t.parent.size_left=r,t.parent.lf_left=a,ms(s,t.parent,l,c)}}if(Zl(s,t.parent),n){fm();return}let o;for(;t!==s.root&&t.color===0;)t===t.parent.left?(o=t.parent.right,o.color===1&&(o.color=0,t.parent.color=1,mc(s,t.parent),o=t.parent.right),o.left.color===0&&o.right.color===0?(o.color=1,t=t.parent):(o.right.color===0&&(o.left.color=0,o.color=1,pc(s,o),o=t.parent.right),o.color=t.parent.color,t.parent.color=0,o.right.color=0,mc(s,t.parent),t=s.root)):(o=t.parent.left,o.color===1&&(o.color=0,t.parent.color=1,pc(s,t.parent),o=t.parent.left),o.left.color===0&&o.right.color===0?(o.color=1,t=t.parent):(o.left.color===0&&(o.right.color=0,o.color=1,mc(s,o),o=t.parent.left),o.color=t.parent.color,t.parent.color=0,o.left.color=0,pc(s,t.parent),t=s.root));t.color=0,fm()}function Kw(s,e){for(Zl(s,e);e!==s.root&&e.parent.color===1;)if(e.parent===e.parent.parent.left){const t=e.parent.parent.right;t.color===1?(e.parent.color=0,t.color=0,e.parent.parent.color=1,e=e.parent.parent):(e===e.parent.right&&(e=e.parent,mc(s,e)),e.parent.color=0,e.parent.parent.color=1,pc(s,e.parent.parent))}else{const t=e.parent.parent.left;t.color===1?(e.parent.color=0,t.color=0,e.parent.parent.color=1,e=e.parent.parent):(e===e.parent.left&&(e=e.parent,pc(s,e)),e.parent.color=0,e.parent.parent.color=1,mc(s,e.parent.parent))}s.root.color=0}function ms(s,e,t,i){for(;e!==s.root&&e!==Z;)e.parent.left===e&&(e.parent.size_left+=t,e.parent.lf_left+=i),e=e.parent}function Zl(s,e){let t=0,i=0;if(e!==s.root){for(;e!==s.root&&e===e.parent.right;)e=e.parent;if(e!==s.root)for(e=e.parent,t=Q0(e.left)-e.size_left,i=J0(e.left)-e.lf_left,e.size_left+=t,e.lf_left+=i;e!==s.root&&(t!==0||i!==0);)e.parent.left===e&&(e.parent.size_left+=t,e.parent.lf_left+=i),e=e.parent}}const ds=65535;function Pk(s){let e;return s[s.length-1]<65536?e=new Uint16Array(s.length):e=new Uint32Array(s.length),e.set(s,0),e}class p7{constructor(e,t,i,n,o){this.lineStarts=e,this.cr=t,this.lf=i,this.crlf=n,this.isBasicASCII=o}}function _s(s,e=!0){const t=[0];let i=1;for(let n=0,o=s.length;n126)&&(r=!1)}const a=new p7(Pk(s),i,n,o,r);return s.length=0,a}class si{constructor(e,t,i,n,o){this.bufferIndex=e,this.start=t,this.end=i,this.lineFeedCnt=n,this.length=o}}class Go{constructor(e,t){this.buffer=e,this.lineStarts=t}}class b7{constructor(e,t){this._pieces=[],this._tree=e,this._BOM=t,this._index=0,e.root!==Z&&e.iterate(e.root,i=>(i!==Z&&this._pieces.push(i.piece),!0))}read(){return this._pieces.length===0?this._index===0?(this._index++,this._BOM):null:this._index>this._pieces.length-1?null:this._index===0?this._BOM+this._tree.getPieceContent(this._pieces[this._index++]):this._tree.getPieceContent(this._pieces[this._index++])}}class C7{constructor(e){this._limit=e,this._cache=[]}get(e){for(let t=this._cache.length-1;t>=0;t--){const i=this._cache[t];if(i.nodeStartOffset<=e&&i.nodeStartOffset+i.node.piece.length>=e)return i}return null}get2(e){for(let t=this._cache.length-1;t>=0;t--){const i=this._cache[t];if(i.nodeStartLineNumber&&i.nodeStartLineNumber=e)return i}return null}set(e){this._cache.length>=this._limit&&this._cache.shift(),this._cache.push(e)}validate(e){let t=!1;const i=this._cache;for(let n=0;n=e){i[n]=null,t=!0;continue}}if(t){const n=[];for(const o of i)o!==null&&n.push(o);this._cache=n}}}class w7{constructor(e,t,i){this.create(e,t,i)}create(e,t,i){this._buffers=[new Go("",[0])],this._lastChangeBufferPos={line:0,column:0},this.root=Z,this._lineCnt=1,this._length=0,this._EOL=t,this._EOLLength=t.length,this._EOLNormalized=i;let n=null;for(let o=0,r=e.length;o0){e[o].lineStarts||(e[o].lineStarts=_s(e[o].buffer));const a=new si(o+1,{line:0,column:0},{line:e[o].lineStarts.length-1,column:e[o].buffer.length-e[o].lineStarts[e[o].lineStarts.length-1]},e[o].lineStarts.length-1,e[o].buffer.length);this._buffers.push(e[o]),n=this.rbInsertRight(n,a)}this._searchCache=new C7(1),this._lastVisitedLine={lineNumber:0,value:""},this.computeBufferMetadata()}normalizeEOL(e){const t=ds,i=t-Math.floor(t/3),n=i*2;let o="",r=0;const a=[];if(this.iterate(this.root,l=>{const c=this.getNodeContent(l),h=c.length;if(r<=i||r+h0){const l=o.replace(/\r\n|\r|\n/g,e);a.push(new Go(l,_s(l)))}this.create(a,e,!0)}getEOL(){return this._EOL}setEOL(e){this._EOL=e,this._EOLLength=this._EOL.length,this.normalizeEOL(e)}createSnapshot(e){return new b7(this,e)}getOffsetAt(e,t){let i=0,n=this.root;for(;n!==Z;)if(n.left!==Z&&n.lf_left+1>=e)n=n.left;else{if(n.lf_left+n.piece.lineFeedCnt+1>=e)return i+=n.size_left,i+=this.getAccumulatedValue(n,e-n.lf_left-2)+t-1;e-=n.lf_left+n.piece.lineFeedCnt,i+=n.size_left+n.piece.length,n=n.right}return i}getPositionAt(e){e=Math.floor(e),e=Math.max(0,e);let t=this.root,i=0;const n=e;for(;t!==Z;)if(t.size_left!==0&&t.size_left>=e)t=t.left;else if(t.size_left+t.piece.length>=e){const o=this.getIndexOf(t,e-t.size_left);if(i+=t.lf_left+o.index,o.index===0){const r=this.getOffsetAt(i+1,1),a=n-r;return new A(i+1,a+1)}return new A(i+1,o.remainder+1)}else if(e-=t.size_left+t.piece.length,i+=t.lf_left+t.piece.lineFeedCnt,t.right===Z){const o=this.getOffsetAt(i+1,1),r=n-e-o;return new A(i+1,r+1)}else t=t.right;return new A(1,1)}getValueInRange(e,t){if(e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn)return"";const i=this.nodeAt2(e.startLineNumber,e.startColumn),n=this.nodeAt2(e.endLineNumber,e.endColumn),o=this.getValueInRange2(i,n);return t?t!==this._EOL||!this._EOLNormalized?o.replace(/\r\n|\r|\n/g,t):t===this.getEOL()&&this._EOLNormalized?o:o.replace(/\r\n|\r|\n/g,t):o}getValueInRange2(e,t){if(e.node===t.node){const a=e.node,l=this._buffers[a.piece.bufferIndex].buffer,c=this.offsetInBuffer(a.piece.bufferIndex,a.piece.start);return l.substring(c+e.remainder,c+t.remainder)}let i=e.node;const n=this._buffers[i.piece.bufferIndex].buffer,o=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);let r=n.substring(o+e.remainder,o+i.piece.length);for(i=i.next();i!==Z;){const a=this._buffers[i.piece.bufferIndex].buffer,l=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);if(i===t.node){r+=a.substring(l,l+t.remainder);break}else r+=a.substr(l,i.piece.length);i=i.next()}return r}getLinesContent(){const e=[];let t=0,i="",n=!1;return this.iterate(this.root,o=>{if(o===Z)return!0;const r=o.piece;let a=r.length;if(a===0)return!0;const l=this._buffers[r.bufferIndex].buffer,c=this._buffers[r.bufferIndex].lineStarts,h=r.start.line,d=r.end.line;let u=c[h]+r.start.column;if(n&&(l.charCodeAt(u)===10&&(u++,a--),e[t++]=i,i="",n=!1,a===0))return!0;if(h===d)return!this._EOLNormalized&&l.charCodeAt(u+a-1)===13?(n=!0,i+=l.substr(u,a-1)):i+=l.substr(u,a),!0;i+=this._EOLNormalized?l.substring(u,Math.max(u,c[h+1]-this._EOLLength)):l.substring(u,c[h+1]).replace(/(\r\n|\r|\n)$/,""),e[t++]=i;for(let f=h+1;fS+m,t.reset(0)):(C=u.buffer,v=S=>S,t.reset(m));do if(b=t.next(C),b){if(v(b.index)>=_)return h;this.positionInBuffer(e,v(b.index)-f,w);const S=this.getLineFeedCnt(e.piece.bufferIndex,o,w),k=w.line===o.line?w.column-o.column+n:w.column+1,x=k+b[0].length;if(d[h++]=Uo(new D(i+S,k,i+S,x),b,l),v(b.index)+b[0].length>=_||h>=c)return h}while(b);return h}findMatchesLineByLine(e,t,i,n){const o=[];let r=0;const a=new ca(t.wordSeparators,t.regex);let l=this.nodeAt2(e.startLineNumber,e.startColumn);if(l===null)return[];const c=this.nodeAt2(e.endLineNumber,e.endColumn);if(c===null)return[];let h=this.positionInBuffer(l.node,l.remainder);const d=this.positionInBuffer(c.node,c.remainder);if(l.node===c.node)return this.findMatchesInNode(l.node,a,e.startLineNumber,e.startColumn,h,d,t,i,n,r,o),o;let u=e.startLineNumber,f=l.node;for(;f!==c.node;){const _=this.getLineFeedCnt(f.piece.bufferIndex,h,f.piece.end);if(_>=1){const w=this._buffers[f.piece.bufferIndex].lineStarts,C=this.offsetInBuffer(f.piece.bufferIndex,f.piece.start),v=w[h.line+_],S=u===e.startLineNumber?e.startColumn:1;if(r=this.findMatchesInNode(f,a,u,S,h,this.positionInBuffer(f,v-C),t,i,n,r,o),r>=n)return o;u+=_}const b=u===e.startLineNumber?e.startColumn-1:0;if(u===e.endLineNumber){const w=this.getLineContent(u).substring(b,e.endColumn-1);return r=this._findMatchesInLine(t,a,w,e.endLineNumber,b,r,o,i,n),o}if(r=this._findMatchesInLine(t,a,this.getLineContent(u).substr(b),u,b,r,o,i,n),r>=n)return o;u++,l=this.nodeAt2(u,1),f=l.node,h=this.positionInBuffer(l.node,l.remainder)}if(u===e.endLineNumber){const _=u===e.startLineNumber?e.startColumn-1:0,b=this.getLineContent(u).substring(_,e.endColumn-1);return r=this._findMatchesInLine(t,a,b,e.endLineNumber,_,r,o,i,n),o}const m=u===e.startLineNumber?e.startColumn:1;return r=this.findMatchesInNode(c.node,a,u,m,h,d,t,i,n,r,o),o}_findMatchesInLine(e,t,i,n,o,r,a,l,c){const h=e.wordSeparators;if(!l&&e.simpleSearch){const u=e.simpleSearch,f=u.length,m=i.length;let _=-f;for(;(_=i.indexOf(u,_+f))!==-1;)if((!h||p0(h,i,m,_,f))&&(a[r++]=new Nc(new D(n,_+1+o,n,_+1+f+o),null),r>=c))return r;return r}let d;t.reset(0);do if(d=t.next(i),d&&(a[r++]=Uo(new D(n,d.index+1+o,n,d.index+1+d[0].length+o),d,l),r>=c))return r;while(d);return r}insert(e,t,i=!1){if(this._EOLNormalized=this._EOLNormalized&&i,this._lastVisitedLine.lineNumber=0,this._lastVisitedLine.value="",this.root!==Z){const{node:n,remainder:o,nodeStartOffset:r}=this.nodeAt(e),a=n.piece,l=a.bufferIndex,c=this.positionInBuffer(n,o);if(n.piece.bufferIndex===0&&a.end.line===this._lastChangeBufferPos.line&&a.end.column===this._lastChangeBufferPos.column&&r+a.length===e&&t.lengthe){const h=[];let d=new si(a.bufferIndex,c,a.end,this.getLineFeedCnt(a.bufferIndex,c,a.end),this.offsetInBuffer(l,a.end)-this.offsetInBuffer(l,c));if(this.shouldCheckCRLF()&&this.endWithCR(t)&&this.nodeCharCodeAt(n,o)===10){const _={line:d.start.line+1,column:0};d=new si(d.bufferIndex,_,d.end,this.getLineFeedCnt(d.bufferIndex,_,d.end),d.length-1),t+=` +`}if(this.shouldCheckCRLF()&&this.startWithLF(t))if(this.nodeCharCodeAt(n,o-1)===13){const _=this.positionInBuffer(n,o-1);this.deleteNodeTail(n,_),t="\r"+t,n.piece.length===0&&h.push(n)}else this.deleteNodeTail(n,c);else this.deleteNodeTail(n,c);const u=this.createNewPieces(t);d.length>0&&this.rbInsertRight(n,d);let f=n;for(let m=0;m=0;r--)o=this.rbInsertLeft(o,n[r]);this.validateCRLFWithPrevNode(o),this.deleteNodes(i)}insertContentToNodeRight(e,t){this.adjustCarriageReturnFromNext(e,t)&&(e+=` +`);const i=this.createNewPieces(e),n=this.rbInsertRight(t,i[0]);let o=n;for(let r=1;r=u)c=d+1;else break;return i?(i.line=d,i.column=l-f,null):{line:d,column:l-f}}getLineFeedCnt(e,t,i){if(i.column===0)return i.line-t.line;const n=this._buffers[e].lineStarts;if(i.line===n.length-1)return i.line-t.line;const o=n[i.line+1],r=n[i.line]+i.column;if(o>r+1)return i.line-t.line;const a=r-1;return this._buffers[e].buffer.charCodeAt(a)===13?i.line-t.line+1:i.line-t.line}offsetInBuffer(e,t){return this._buffers[e].lineStarts[t.line]+t.column}deleteNodes(e){for(let t=0;tds){const h=[];for(;e.length>ds;){const u=e.charCodeAt(ds-1);let f;u===13||u>=55296&&u<=56319?(f=e.substring(0,ds-1),e=e.substring(ds-1)):(f=e.substring(0,ds),e=e.substring(ds));const m=_s(f);h.push(new si(this._buffers.length,{line:0,column:0},{line:m.length-1,column:f.length-m[m.length-1]},m.length-1,f.length)),this._buffers.push(new Go(f,m))}const d=_s(e);return h.push(new si(this._buffers.length,{line:0,column:0},{line:d.length-1,column:e.length-d[d.length-1]},d.length-1,e.length)),this._buffers.push(new Go(e,d)),h}let t=this._buffers[0].buffer.length;const i=_s(e,!1);let n=this._lastChangeBufferPos;if(this._buffers[0].lineStarts[this._buffers[0].lineStarts.length-1]===t&&t!==0&&this.startWithLF(e)&&this.endWithCR(this._buffers[0].buffer)){this._lastChangeBufferPos={line:this._lastChangeBufferPos.line,column:this._lastChangeBufferPos.column+1},n=this._lastChangeBufferPos;for(let h=0;h=e-1)i=i.left;else if(i.lf_left+i.piece.lineFeedCnt>e-1){const l=this.getAccumulatedValue(i,e-i.lf_left-2),c=this.getAccumulatedValue(i,e-i.lf_left-1),h=this._buffers[i.piece.bufferIndex].buffer,d=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);return r+=i.size_left,this._searchCache.set({node:i,nodeStartOffset:r,nodeStartLineNumber:a-(e-1-i.lf_left)}),h.substring(d+l,d+c-t)}else if(i.lf_left+i.piece.lineFeedCnt===e-1){const l=this.getAccumulatedValue(i,e-i.lf_left-2),c=this._buffers[i.piece.bufferIndex].buffer,h=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);n=c.substring(h+l,h+i.piece.length);break}else e-=i.lf_left+i.piece.lineFeedCnt,r+=i.size_left+i.piece.length,i=i.right}for(i=i.next();i!==Z;){const r=this._buffers[i.piece.bufferIndex].buffer;if(i.piece.lineFeedCnt>0){const a=this.getAccumulatedValue(i,0),l=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);return n+=r.substring(l,l+a-t),n}else{const a=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);n+=r.substr(a,i.piece.length)}i=i.next()}return n}computeBufferMetadata(){let e=this.root,t=1,i=0;for(;e!==Z;)t+=e.lf_left+e.piece.lineFeedCnt,i+=e.size_left+e.piece.length,e=e.right;this._lineCnt=t,this._length=i,this._searchCache.validate(this._length)}getIndexOf(e,t){const i=e.piece,n=this.positionInBuffer(e,t),o=n.line-i.start.line;if(this.offsetInBuffer(i.bufferIndex,i.end)-this.offsetInBuffer(i.bufferIndex,i.start)===t){const r=this.getLineFeedCnt(e.piece.bufferIndex,i.start,n);if(r!==o)return{index:r,remainder:0}}return{index:o,remainder:n.column}}getAccumulatedValue(e,t){if(t<0)return 0;const i=e.piece,n=this._buffers[i.bufferIndex].lineStarts,o=i.start.line+t+1;return o>i.end.line?n[i.end.line]+i.end.column-n[i.start.line]-i.start.column:n[o]-n[i.start.line]-i.start.column}deleteNodeTail(e,t){const i=e.piece,n=i.lineFeedCnt,o=this.offsetInBuffer(i.bufferIndex,i.end),r=t,a=this.offsetInBuffer(i.bufferIndex,r),l=this.getLineFeedCnt(i.bufferIndex,i.start,r),c=l-n,h=a-o,d=i.length+h;e.piece=new si(i.bufferIndex,i.start,r,l,d),ms(this,e,h,c)}deleteNodeHead(e,t){const i=e.piece,n=i.lineFeedCnt,o=this.offsetInBuffer(i.bufferIndex,i.start),r=t,a=this.getLineFeedCnt(i.bufferIndex,r,i.end),l=this.offsetInBuffer(i.bufferIndex,r),c=a-n,h=o-l,d=i.length+h;e.piece=new si(i.bufferIndex,r,i.end,a,d),ms(this,e,h,c)}shrinkNode(e,t,i){const n=e.piece,o=n.start,r=n.end,a=n.length,l=n.lineFeedCnt,c=t,h=this.getLineFeedCnt(n.bufferIndex,n.start,c),d=this.offsetInBuffer(n.bufferIndex,t)-this.offsetInBuffer(n.bufferIndex,o);e.piece=new si(n.bufferIndex,n.start,c,h,d),ms(this,e,d-a,h-l);const u=new si(n.bufferIndex,i,r,this.getLineFeedCnt(n.bufferIndex,i,r),this.offsetInBuffer(n.bufferIndex,r)-this.offsetInBuffer(n.bufferIndex,i)),f=this.rbInsertRight(e,u);this.validateCRLFWithPrevNode(f)}appendToNode(e,t){this.adjustCarriageReturnFromNext(t,e)&&(t+=` +`);const i=this.shouldCheckCRLF()&&this.startWithLF(t)&&this.endWithCR(e),n=this._buffers[0].buffer.length;this._buffers[0].buffer+=t;const o=_s(t,!1);for(let f=0;fe)t=t.left;else if(t.size_left+t.piece.length>=e){n+=t.size_left;const o={node:t,remainder:e-t.size_left,nodeStartOffset:n};return this._searchCache.set(o),o}else e-=t.size_left+t.piece.length,n+=t.size_left+t.piece.length,t=t.right;return null}nodeAt2(e,t){let i=this.root,n=0;for(;i!==Z;)if(i.left!==Z&&i.lf_left>=e-1)i=i.left;else if(i.lf_left+i.piece.lineFeedCnt>e-1){const o=this.getAccumulatedValue(i,e-i.lf_left-2),r=this.getAccumulatedValue(i,e-i.lf_left-1);return n+=i.size_left,{node:i,remainder:Math.min(o+t-1,r),nodeStartOffset:n}}else if(i.lf_left+i.piece.lineFeedCnt===e-1){const o=this.getAccumulatedValue(i,e-i.lf_left-2);if(o+t-1<=i.piece.length)return{node:i,remainder:o+t-1,nodeStartOffset:n};t-=i.piece.length-o;break}else e-=i.lf_left+i.piece.lineFeedCnt,n+=i.size_left+i.piece.length,i=i.right;for(i=i.next();i!==Z;){if(i.piece.lineFeedCnt>0){const o=this.getAccumulatedValue(i,0),r=this.offsetOfNode(i);return{node:i,remainder:Math.min(t-1,o),nodeStartOffset:r}}else if(i.piece.length>=t-1){const o=this.offsetOfNode(i);return{node:i,remainder:t-1,nodeStartOffset:o}}else t-=i.piece.length;i=i.next()}return null}nodeCharCodeAt(e,t){if(e.piece.lineFeedCnt<1)return-1;const i=this._buffers[e.piece.bufferIndex],n=this.offsetInBuffer(e.piece.bufferIndex,e.piece.start)+t;return i.buffer.charCodeAt(n)}offsetOfNode(e){if(!e)return 0;let t=e.size_left;for(;e!==this.root;)e.parent.right===e&&(t+=e.parent.size_left+e.parent.piece.length),e=e.parent;return t}shouldCheckCRLF(){return!(this._EOLNormalized&&this._EOL===` +`)}startWithLF(e){if(typeof e=="string")return e.charCodeAt(0)===10;if(e===Z||e.piece.lineFeedCnt===0)return!1;const t=e.piece,i=this._buffers[t.bufferIndex].lineStarts,n=t.start.line,o=i[n]+t.start.column;return n===i.length-1||i[n+1]>o+1?!1:this._buffers[t.bufferIndex].buffer.charCodeAt(o)===10}endWithCR(e){return typeof e=="string"?e.charCodeAt(e.length-1)===13:e===Z||e.piece.lineFeedCnt===0?!1:this.nodeCharCodeAt(e,e.piece.length-1)===13}validateCRLFWithPrevNode(e){if(this.shouldCheckCRLF()&&this.startWithLF(e)){const t=e.prev();this.endWithCR(t)&&this.fixCRLF(t,e)}}validateCRLFWithNextNode(e){if(this.shouldCheckCRLF()&&this.endWithCR(e)){const t=e.next();this.startWithLF(t)&&this.fixCRLF(e,t)}}fixCRLF(e,t){const i=[],n=this._buffers[e.piece.bufferIndex].lineStarts;let o;e.piece.end.column===0?o={line:e.piece.end.line-1,column:n[e.piece.end.line]-n[e.piece.end.line-1]-1}:o={line:e.piece.end.line,column:e.piece.end.column-1};const r=e.piece.length-1,a=e.piece.lineFeedCnt-1;e.piece=new si(e.piece.bufferIndex,e.piece.start,o,a,r),ms(this,e,-1,-1),e.piece.length===0&&i.push(e);const l={line:t.piece.start.line+1,column:0},c=t.piece.length-1,h=this.getLineFeedCnt(t.piece.bufferIndex,l,t.piece.end);t.piece=new si(t.piece.bufferIndex,l,t.piece.end,h,c),ms(this,t,-1,-1),t.piece.length===0&&i.push(t);const d=this.createNewPieces(`\r +`);this.rbInsertRight(e,d[0]);for(let u=0;ub.sortIndex-w.sortIndex)}this._mightContainRTL=n,this._mightContainUnusualLineTerminators=o,this._mightContainNonBasicASCII=r;const f=this._doApplyEdits(l);let m=null;if(t&&d.length>0){d.sort((_,b)=>b.lineNumber-_.lineNumber),m=[];for(let _=0,b=d.length;_0&&d[_-1].lineNumber===w)continue;const C=d[_].oldContent,v=this.getLineContent(w);v.length===0||v===C||Ci(v)!==-1||m.push(w)}}return this._onDidChangeContent.fire(),new mD(u,f,m)}_reduceOperations(e){return e.length<1e3?e:[this._toSingleEditOperation(e)]}_toSingleEditOperation(e){let t=!1;const i=e[0].range,n=e[e.length-1].range,o=new D(i.startLineNumber,i.startColumn,n.endLineNumber,n.endColumn);let r=i.startLineNumber,a=i.startColumn;const l=[];for(let f=0,m=e.length;f0&&l.push(_.text),r=b.endLineNumber,a=b.endColumn}const c=l.join(""),[h,d,u]=nl(c);return{sortIndex:0,identifier:e[0].identifier,range:o,rangeOffset:this.getOffsetAt(o.startLineNumber,o.startColumn),rangeLength:this.getValueLengthInRange(o,0),text:c,eolCount:h,firstLineLength:d,lastLineLength:u,forceMoveMarkers:t,isAutoWhitespaceEdit:!1}}_doApplyEdits(e){e.sort(Fa._sortOpsDescending);const t=[];for(let i=0;i0){const u=l.eolCount+1;u===1?d=new D(c,h,c,h+l.firstLineLength):d=new D(c,h,c+u-1,l.lastLineLength+1)}else d=new D(c,h,c,h);i=d.endLineNumber,n=d.endColumn,t.push(d),o=l}return t}static _sortOpsAscending(e,t){const i=D.compareRangesUsingEnds(e.range,t.range);return i===0?e.sortIndex-t.sortIndex:i}static _sortOpsDescending(e,t){const i=D.compareRangesUsingEnds(e.range,t.range);return i===0?t.sortIndex-e.sortIndex:-i}}class v7{constructor(e,t,i,n,o,r,a,l,c){this._chunks=e,this._bom=t,this._cr=i,this._lf=n,this._crlf=o,this._containsRTL=r,this._containsUnusualLineTerminators=a,this._isBasicASCII=l,this._normalizeEOL=c}_getEOL(e){const t=this._cr+this._lf+this._crlf,i=this._cr+this._crlf;return t===0?e===1?` +`:`\r +`:i>t/2?`\r +`:` +`}create(e){const t=this._getEOL(e),i=this._chunks;if(this._normalizeEOL&&(t===`\r +`&&(this._cr>0||this._lf>0)||t===` +`&&(this._cr>0||this._crlf>0)))for(let o=0,r=i.length;o=55296&&t<=56319?(this._acceptChunk1(e.substr(0,e.length-1),!1),this._hasPreviousChar=!0,this._previousChar=t):(this._acceptChunk1(e,!1),this._hasPreviousChar=!1,this._previousChar=t)}_acceptChunk1(e,t){!t&&e.length===0||(this._hasPreviousChar?this._acceptChunk2(String.fromCharCode(this._previousChar)+e):this._acceptChunk2(e))}_acceptChunk2(e){const t=_7(this._tmpLineStarts,e);this.chunks.push(new Go(e,t.lineStarts)),this.cr+=t.cr,this.lf+=t.lf,this.crlf+=t.crlf,this.isBasicASCII&&(this.isBasicASCII=t.isBasicASCII),!this.isBasicASCII&&!this.containsRTL&&(this.containsRTL=s0(e)),!this.isBasicASCII&&!this.containsUnusualLineTerminators&&(this.containsUnusualLineTerminators=ky(e))}finish(e=!0){return this._finish(),new v7(this.chunks,this.BOM,this.cr,this.lf,this.crlf,this.containsRTL,this.containsUnusualLineTerminators,this.isBasicASCII,e)}_finish(){if(this.chunks.length===0&&this._acceptChunk1("",!0),this._hasPreviousChar){this._hasPreviousChar=!1;const e=this.chunks[this.chunks.length-1];e.buffer+=String.fromCharCode(this._previousChar);const t=_s(e.buffer);e.lineStarts=t,this._previousChar===13&&this.cr++}}}class y7{constructor(e,t){this._startLineNumber=e,this._tokens=t}get startLineNumber(){return this._startLineNumber}get endLineNumber(){return this._startLineNumber+this._tokens.length-1}getLineTokens(e){return this._tokens[e-this._startLineNumber]}appendLineTokens(e){this._tokens.push(e)}}class gm{constructor(){this._tokens=[]}add(e,t){if(this._tokens.length>0){const i=this._tokens[this._tokens.length-1];if(i.endLineNumber+1===e){i.appendLineTokens(t);return}}this._tokens.push(new y7(e,[t]))}finalize(){return this._tokens}}class qw{constructor(e){this._default=e,this._store=[]}get(e){return e=this._store.length;)this._store[this._store.length]=this._default;this._store[e]=t}delete(e,t){t===0||e>=this._store.length||this._store.splice(e,t)}insert(e,t){if(t===0||e>=this._store.length)return;const i=[];for(let n=0;n{const n=this._textModel.getLanguageId();i.changedLanguages.indexOf(n)!==-1&&(this._resetTokenizationState(),this._textModel.clearTokens())})),this._resetTokenizationState()}dispose(){this._isDisposed=!0,super.dispose()}handleDidChangeContent(e){if(e.isFlush){this._resetTokenizationState();return}if(this._tokenizationStateStore)for(let t=0,i=e.changes.length;t{this._isScheduled=!1,this._backgroundTokenizeWithDeadline(e)}))}_backgroundTokenizeWithDeadline(e){const t=Date.now()+e.timeRemaining(),i=()=>{this._isDisposed||!this._textModel.isAttachedToEditor()||!this._hasLinesToTokenize()||(this._backgroundTokenizeForAtLeast1ms(),Date.now()1||this._tokenizeOneInvalidLine(t)>=e)break;while(this._hasLinesToTokenize());this._textModel.setTokens(t.finalize(),!this._hasLinesToTokenize())}tokenizeViewport(e,t){const i=new gm;this._tokenizeViewport(i,e,t),this._textModel.setTokens(i.finalize(),!this._hasLinesToTokenize())}reset(){this._resetTokenizationState(),this._textModel.clearTokens()}forceTokenization(e){const t=new gm;this._updateTokensUntilLine(t,e),this._textModel.setTokens(t.finalize(),!this._hasLinesToTokenize())}getTokenTypeIfInsertingCharacter(e,t){if(!this._tokenizationStateStore)return 0;this.forceTokenization(e.lineNumber);const i=this._tokenizationStateStore.getBeginState(e.lineNumber-1);if(!i)return 0;const n=this._textModel.getLanguageId(),o=this._textModel.getLineContent(e.lineNumber),r=o.substring(0,e.column-1)+t+o.substring(e.column-1),a=Vl(this._languageIdCodec,n,this._tokenizationStateStore.tokenizationSupport,r,!0,i),l=new vt(a.tokens,r,this._languageIdCodec);if(l.getCount()===0)return 0;const c=l.findTokenIndexAtOffset(e.column-1);return l.getStandardTokenType(c)}tokenizeLineWithEdit(e,t,i){const n=e.lineNumber,o=e.column;if(!this._tokenizationStateStore)return null;this.forceTokenization(n);const r=this._tokenizationStateStore.getBeginState(n-1);if(!r)return null;const a=this._textModel.getLineContent(n),l=a.substring(0,o-1)+i+a.substring(o-1+t),c=this._textModel.getLanguageIdAtPosition(n,0),h=Vl(this._languageIdCodec,c,this._tokenizationStateStore.tokenizationSupport,l,!0,r);return new vt(h.tokens,l,this._languageIdCodec)}isCheapToTokenize(e){if(!this._tokenizationStateStore)return!0;const t=this._tokenizationStateStore.invalidLineStartIndex+1;return e>t?!1:e1&&c>=1;c--){const h=this._textModel.getLineFirstNonWhitespaceColumn(c);if(h!==0&&h=0;c--)l=Vl(this._languageIdCodec,a,this._tokenizationStateStore.tokenizationSupport,o[c],!1,l).endState;for(let c=t;c<=i;c++){const h=this._textModel.getLineContent(c),d=Vl(this._languageIdCodec,a,this._tokenizationStateStore.tokenizationSupport,h,!0,l);e.add(c,d.tokens),this._tokenizationStateStore.markMustBeTokenized(c-1),l=d.endState}}}function x7(s){if(s.isTooLargeForTokenization())return[null,null];const e=et.get(s.getLanguageId());if(!e)return[null,null];let t;try{t=e.getInitialState()}catch(i){return Ze(i),[null,null]}return[e,t]}function Vl(s,e,t,i,n,o){let r=null;if(t)try{r=t.tokenizeEncoded(i,n,o.clone())}catch(a){Ze(a)}return r||(r=HD(s.encodeLanguageId(e),o)),vt.convertToEndOffset(r.tokens,i.length),r}const bs=new Uint32Array(0).buffer;class Bn{static deleteBeginning(e,t){return e===null||e===bs?e:Bn.delete(e,0,t)}static deleteEnding(e,t){if(e===null||e===bs)return e;const i=Is(e),n=i[i.length-2];return Bn.delete(e,t,n)}static delete(e,t,i){if(e===null||e===bs||t===i)return e;const n=Is(e),o=n.length>>>1;if(t===0&&n[n.length-2]===i)return bs;const r=vt.findIndexInTokensArray(n,t),a=r>0?n[r-1<<1]:0,l=n[r<<1];if(ih&&(n[c++]=m,n[c++]=n[(f<<1)+1],h=m)}if(c===n.length)return e;const u=new Uint32Array(c);return u.set(n.subarray(0,c),0),u.buffer}static append(e,t){if(t===bs)return e;if(e===bs)return t;if(e===null)return e;if(t===null)return null;const i=Is(e),n=Is(t),o=n.length>>>1,r=new Uint32Array(i.length+n.length);r.set(i,0);let a=i.length;const l=i[i.length-2];for(let c=0;c>>1;let r=vt.findIndexInTokensArray(n,t);r>0&&n[r-1<<1]===t&&r--;for(let a=r;a1&&(o=pi.getLanguageId(n[1])!==e),!o)return bs}if(!n||n.length===0){const o=new Uint32Array(2);return o[0]=t,o[1]=Gw(e),o.buffer}return n[n.length-2]=t,n.byteOffset===0&&n.byteLength===n.buffer.byteLength?n.buffer:n}_ensureLine(e){for(;e>=this._len;)this._lineTokens[this._len]=null,this._len++}_deleteLines(e,t){t!==0&&(e+t>this._len&&(t=this._len-e),this._lineTokens.splice(e,t),this._len-=t)}_insertLines(e,t){if(t===0)return;const i=[];for(let n=0;n=this._len)return;if(e.startLineNumber===e.endLineNumber){if(e.startColumn===e.endColumn)return;this._lineTokens[t]=Bn.delete(this._lineTokens[t],e.startColumn-1,e.endColumn-1);return}this._lineTokens[t]=Bn.deleteEnding(this._lineTokens[t],e.startColumn-1);const i=e.endLineNumber-1;let n=null;i=this._len)){if(t===0){this._lineTokens[n]=Bn.insert(this._lineTokens[n],e.column-1,i);return}this._lineTokens[n]=Bn.deleteEnding(this._lineTokens[n],e.column-1),this._lineTokens[n]=Bn.insert(this._lineTokens[n],e.column-1,i),this._insertLines(e.lineNumber,t)}}}function Gw(s){return(s<<0|0<<8|0<<10|1<<14|2<<23)>>>0}class eb{constructor(e){this._pieces=[],this._isComplete=!1,this._languageIdCodec=e}flush(){this._pieces=[],this._isComplete=!1}isEmpty(){return this._pieces.length===0}set(e,t){this._pieces=e||[],this._isComplete=t}setPartial(e,t){let i=e;if(t.length>0){const o=t[0].getRange(),r=t[t.length-1].getRange();if(!o||!r)return e;i=e.plusRange(o).plusRange(r)}let n=null;for(let o=0,r=this._pieces.length;oi.endLineNumber){n=n||{index:o};break}if(a.removeTokens(i),a.isEmpty()){this._pieces.splice(o,1),o--,r--;continue}if(a.endLineNumberi.endLineNumber){n=n||{index:o};continue}const[l,c]=a.split(i);if(l.isEmpty()){n=n||{index:o};continue}c.isEmpty()||(this._pieces.splice(o,1,l,c),o++,r++,n=n||{index:o})}return n=n||{index:this._pieces.length},t.length>0&&(this._pieces=pf(this._pieces,n.index,t)),i}isComplete(){return this._isComplete}addSparseTokens(e,t){const i=this._pieces;if(i.length===0)return t;const n=eb._findFirstPieceWithLine(i,e),o=i[n].getLineTokens(e);if(!o)return t;const r=t.getCount(),a=o.getCount();let l=0;const c=[];let h=0,d=0;const u=(f,m)=>{f!==d&&(d=f,c[h++]=f,c[h++]=m)};for(let f=0;f>>0,C=~w>>>0;for(;lt)n=o-1;else{for(;o>i&&e[o-1].startLineNumber<=t&&t<=e[o-1].endLineNumber;)o--;return o}}return i}acceptEdit(e,t,i,n,o){for(const r of this._pieces)r.acceptEdit(e,t,i,n,o)}}const tb=pe("undoRedoService");class Fk{constructor(e,t){this.resource=e,this.elements=t}}class sl{constructor(){this.id=sl._ID++,this.order=1}nextOrder(){return this.id===0?0:this.order++}}sl._ID=0;sl.None=new sl;class $n{constructor(){this.id=$n._ID++,this.order=1}nextOrder(){return this.id===0?0:this.order++}}$n._ID=0;$n.None=new $n;var I7=globalThis&&globalThis.__decorate||function(s,e,t,i){var n=arguments.length,o=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},mm=globalThis&&globalThis.__param||function(s,e){return function(t,i){e(t,i,s)}};function E7(){return new S7}function D7(s){const e=E7();return e.acceptChunk(s),e.finish()}function Zw(s,e){return(typeof s=="string"?D7(s):s).create(e)}let od=0;const N7=999,T7=1e4;class M7{constructor(e){this._source=e,this._eos=!1}read(){if(this._eos)return null;const e=[];let t=0,i=0;do{const n=this._source.read();if(n===null)return this._eos=!0,t===0?null:e.join("");if(n.length>0&&(e[t++]=n,i+=n.length),i>=64*1024)return e.join("")}while(!0)}}const Wl=()=>{throw new Error("Invalid change accessor")};let Ir=class Wo extends W{constructor(e,t,i,n=null,o,r,a){super(),this._undoRedoService=o,this._languageService=r,this._languageConfigurationService=a,this._onWillDispose=this._register(new M),this.onWillDispose=this._onWillDispose.event,this._onDidChangeDecorations=this._register(new P7(u=>this.handleBeforeFireDecorationsChangedEvent(u))),this.onDidChangeDecorations=this._onDidChangeDecorations.event,this._onDidChangeLanguage=this._register(new M),this.onDidChangeLanguage=this._onDidChangeLanguage.event,this._onDidChangeLanguageConfiguration=this._register(new M),this.onDidChangeLanguageConfiguration=this._onDidChangeLanguageConfiguration.event,this._onDidChangeTokens=this._register(new M),this.onDidChangeTokens=this._onDidChangeTokens.event,this._onDidChangeOptions=this._register(new M),this.onDidChangeOptions=this._onDidChangeOptions.event,this._onDidChangeAttached=this._register(new M),this.onDidChangeAttached=this._onDidChangeAttached.event,this._onDidChangeInjectedText=this._register(new M),this._eventEmitter=this._register(new F7),this._backgroundTokenizationState=0,this._onBackgroundTokenizationStateChanged=this._register(new M),od++,this.id="$model"+od,this.isForSimpleWidget=i.isForSimpleWidget,typeof n=="undefined"||n===null?this._associatedResource=we.parse("inmemory://model/"+od):this._associatedResource=n,this._attachedEditorCount=0;const{textBuffer:l,disposable:c}=Zw(e,i.defaultEOL);this._buffer=l,this._bufferDisposable=c,this._options=Wo.resolveOptions(this._buffer,i);const h=this._buffer.getLineCount(),d=this._buffer.getValueLengthInRange(new D(1,1,h,this._buffer.getLineLength(h)+1),0);i.largeFileOptimizations?this._isTooLargeForTokenization=d>Wo.LARGE_FILE_SIZE_THRESHOLD||h>Wo.LARGE_FILE_LINE_COUNT_THRESHOLD:this._isTooLargeForTokenization=!1,this._isTooLargeForSyncing=d>Wo.MODEL_SYNC_LIMIT,this._versionId=1,this._alternativeVersionId=1,this._initialUndoRedoSnapshot=null,this._isDisposed=!1,this._isDisposing=!1,this._languageId=t,this._languageRegistryListener=this._languageConfigurationService.onDidChange(u=>{u.affects(this._languageId)&&this._onDidChangeLanguageConfiguration.fire({})}),this._instanceId=xy(od),this._lastDecorationId=0,this._decorations=Object.create(null),this._decorationsTree=new Yw,this._commandManager=new Y0(this,this._undoRedoService),this._isUndoing=!1,this._isRedoing=!1,this._trimAutoWhitespaceLines=null,this._tokens=new ju(this._languageService.languageIdCodec),this._semanticTokens=new eb(this._languageService.languageIdCodec),this._tokenization=new k7(this,this._languageService.languageIdCodec),this._bracketPairColorizer=this._register(new qA(this,this._languageConfigurationService)),this._guidesTextModelPart=this._register(new dR(this,this._languageConfigurationService)),this._decorationProvider=this._register(new ZA(this)),this._register(this._decorationProvider.onDidChange(()=>{this._onDidChangeDecorations.beginDeferredEmit(),this._onDidChangeDecorations.fire(),this._onDidChangeDecorations.endDeferredEmit()}))}static resolveOptions(e,t){if(t.detectIndentation){const i=Ww(e,t.tabSize,t.insertSpaces);return new Ad({tabSize:i.tabSize,indentSize:i.tabSize,insertSpaces:i.insertSpaces,trimAutoWhitespace:t.trimAutoWhitespace,defaultEOL:t.defaultEOL,bracketPairColorizationOptions:t.bracketPairColorizationOptions})}return new Ad({tabSize:t.tabSize,indentSize:t.indentSize,insertSpaces:t.insertSpaces,trimAutoWhitespace:t.trimAutoWhitespace,defaultEOL:t.defaultEOL,bracketPairColorizationOptions:t.bracketPairColorizationOptions})}onDidChangeContent(e){return this._eventEmitter.slowEvent(t=>e(t.contentChangedEvent))}onDidChangeContentOrInjectedText(e){return or(this._eventEmitter.fastEvent(t=>e(t.rawContentChangedEvent)),this._onDidChangeInjectedText.event(t=>e(t)))}get bracketPairs(){return this._bracketPairColorizer}get guides(){return this._guidesTextModelPart}get backgroundTokenizationState(){return this._backgroundTokenizationState}handleTokenizationProgress(e){if(this._backgroundTokenizationState===2)return;const t=e?2:1;this._backgroundTokenizationState!==t&&(this._backgroundTokenizationState=t,this._bracketPairColorizer.handleDidChangeBackgroundTokenizationState(),this._onBackgroundTokenizationStateChanged.fire())}dispose(){this._isDisposing=!0,this._onWillDispose.fire(),this._languageRegistryListener.dispose(),this._tokenization.dispose(),this._isDisposed=!0,super.dispose(),this._bufferDisposable.dispose(),this._isDisposing=!1;const e=new Fa([],"",` +`,!1,!1,!0,!0);e.dispose(),this._buffer=e,this._bufferDisposable=W.None}_assertNotDisposed(){if(this._isDisposed)throw new Error("Model is disposed!")}_emitContentChangedEvent(e,t){this._isDisposing||(this._bracketPairColorizer.handleDidChangeContent(t),this._tokenization.handleDidChangeContent(t),this._eventEmitter.fire(new Vu(e,t)))}setValue(e){if(this._assertNotDisposed(),e===null)return;const{textBuffer:t,disposable:i}=Zw(e,this._options.defaultEOL);this._setValueFromTextBuffer(t,i)}_createContentChanged2(e,t,i,n,o,r,a){return{changes:[{range:e,rangeOffset:t,rangeLength:i,text:n}],eol:this._buffer.getEOL(),versionId:this.getVersionId(),isUndoing:o,isRedoing:r,isFlush:a}}_setValueFromTextBuffer(e,t){this._assertNotDisposed();const i=this.getFullModelRange(),n=this.getValueLengthInRange(i),o=this.getLineCount(),r=this.getLineMaxColumn(o);this._buffer=e,this._bufferDisposable.dispose(),this._bufferDisposable=t,this._increaseVersionId(),this._tokens.flush(),this._semanticTokens.flush(),this._decorations=Object.create(null),this._decorationsTree=new Yw,this._commandManager.clear(),this._trimAutoWhitespaceLines=null,this._emitContentChangedEvent(new fr([new HR],this._versionId,!1,!1),this._createContentChanged2(new D(1,1,o,r),0,n,this.getValue(),!1,!1,!0))}setEOL(e){this._assertNotDisposed();const t=e===1?`\r +`:` +`;if(this._buffer.getEOL()===t)return;const i=this.getFullModelRange(),n=this.getValueLengthInRange(i),o=this.getLineCount(),r=this.getLineMaxColumn(o);this._onBeforeEOLChange(),this._buffer.setEOL(t),this._increaseVersionId(),this._onAfterEOLChange(),this._emitContentChangedEvent(new fr([new $R],this._versionId,!1,!1),this._createContentChanged2(new D(1,1,o,r),0,n,this.getValue(),!1,!1,!1))}_onBeforeEOLChange(){this._decorationsTree.ensureAllNodesHaveRanges(this)}_onAfterEOLChange(){const e=this.getVersionId(),t=this._decorationsTree.collectNodesPostOrder();for(let i=0,n=t.length;i0}getAttachedEditorCount(){return this._attachedEditorCount}isTooLargeForSyncing(){return this._isTooLargeForSyncing}isTooLargeForTokenization(){return this._isTooLargeForTokenization}isDisposed(){return this._isDisposed}isDominatedByLongLines(){if(this._assertNotDisposed(),this.isTooLargeForTokenization())return!1;let e=0,t=0;const i=this._buffer.getLineCount();for(let n=1;n<=i;n++){const o=this._buffer.getLineLength(n);o>=T7?t+=o:e+=o}return t>e}get uri(){return this._associatedResource}getOptions(){return this._assertNotDisposed(),this._options}getFormattingOptions(){return{tabSize:this._options.indentSize,insertSpaces:this._options.insertSpaces}}updateOptions(e){this._assertNotDisposed();const t=typeof e.tabSize!="undefined"?e.tabSize:this._options.tabSize,i=typeof e.indentSize!="undefined"?e.indentSize:this._options.indentSize,n=typeof e.insertSpaces!="undefined"?e.insertSpaces:this._options.insertSpaces,o=typeof e.trimAutoWhitespace!="undefined"?e.trimAutoWhitespace:this._options.trimAutoWhitespace,r=typeof e.bracketColorizationOptions!="undefined"?e.bracketColorizationOptions:this._options.bracketPairColorizationOptions,a=new Ad({tabSize:t,indentSize:i,insertSpaces:n,defaultEOL:this._options.defaultEOL,trimAutoWhitespace:o,bracketPairColorizationOptions:r});if(this._options.equals(a))return;const l=this._options.createChangeEvent(a);this._options=a,this._bracketPairColorizer.handleDidChangeOptions(l),this._decorationProvider.handleDidChangeOptions(l),this._onDidChangeOptions.fire(l)}detectIndentation(e,t){this._assertNotDisposed();const i=Ww(this._buffer,t,e);this.updateOptions({insertSpaces:i.insertSpaces,tabSize:i.tabSize,indentSize:i.tabSize})}normalizeIndentation(e){return this._assertNotDisposed(),ck(e,this._options.indentSize,this._options.insertSpaces)}getVersionId(){return this._assertNotDisposed(),this._versionId}mightContainRTL(){return this._buffer.mightContainRTL()}mightContainUnusualLineTerminators(){return this._buffer.mightContainUnusualLineTerminators()}removeUnusualLineTerminators(e=null){const t=this.findMatches(Ly.source,!1,!0,!1,null,!1,1073741824);this._buffer.resetMightContainUnusualLineTerminators(),this.pushEditOperations(e,t.map(i=>({range:i.range,text:null})),()=>null)}mightContainNonBasicASCII(){return this._buffer.mightContainNonBasicASCII()}getAlternativeVersionId(){return this._assertNotDisposed(),this._alternativeVersionId}getInitialUndoRedoSnapshot(){return this._assertNotDisposed(),this._initialUndoRedoSnapshot}getOffsetAt(e){this._assertNotDisposed();const t=this._validatePosition(e.lineNumber,e.column,0);return this._buffer.getOffsetAt(t.lineNumber,t.column)}getPositionAt(e){this._assertNotDisposed();const t=Math.min(this._buffer.getLength(),Math.max(0,e));return this._buffer.getPositionAt(t)}_increaseVersionId(){this._versionId=this._versionId+1,this._alternativeVersionId=this._versionId}_overwriteVersionId(e){this._versionId=e}_overwriteAlternativeVersionId(e){this._alternativeVersionId=e}_overwriteInitialUndoRedoSnapshot(e){this._initialUndoRedoSnapshot=e}getValue(e,t=!1){this._assertNotDisposed();const i=this.getFullModelRange(),n=this.getValueInRange(i,e);return t?this._buffer.getBOM()+n:n}createSnapshot(e=!1){return new M7(this._buffer.createSnapshot(e))}getValueLength(e,t=!1){this._assertNotDisposed();const i=this.getFullModelRange(),n=this.getValueLengthInRange(i,e);return t?this._buffer.getBOM().length+n:n}getValueInRange(e,t=0){return this._assertNotDisposed(),this._buffer.getValueInRange(this.validateRange(e),t)}getValueLengthInRange(e,t=0){return this._assertNotDisposed(),this._buffer.getValueLengthInRange(this.validateRange(e),t)}getCharacterCountInRange(e,t=0){return this._assertNotDisposed(),this._buffer.getCharacterCountInRange(this.validateRange(e),t)}getLineCount(){return this._assertNotDisposed(),this._buffer.getLineCount()}getLineContent(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");return this._buffer.getLineContent(e)}getLineLength(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");return this._buffer.getLineLength(e)}getLinesContent(){return this._assertNotDisposed(),this._buffer.getLinesContent()}getEOL(){return this._assertNotDisposed(),this._buffer.getEOL()}getEndOfLineSequence(){return this._assertNotDisposed(),this._buffer.getEOL()===` +`?0:1}getLineMinColumn(e){return this._assertNotDisposed(),1}getLineMaxColumn(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");return this._buffer.getLineLength(e)+1}getLineFirstNonWhitespaceColumn(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");return this._buffer.getLineFirstNonWhitespaceColumn(e)}getLineLastNonWhitespaceColumn(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");return this._buffer.getLineLastNonWhitespaceColumn(e)}_validateRangeRelaxedNoAllocations(e){const t=this._buffer.getLineCount(),i=e.startLineNumber,n=e.startColumn;let o=Math.floor(typeof i=="number"&&!isNaN(i)?i:1),r=Math.floor(typeof n=="number"&&!isNaN(n)?n:1);if(o<1)o=1,r=1;else if(o>t)o=t,r=this.getLineMaxColumn(o);else if(r<=1)r=1;else{const d=this.getLineMaxColumn(o);r>=d&&(r=d)}const a=e.endLineNumber,l=e.endColumn;let c=Math.floor(typeof a=="number"&&!isNaN(a)?a:1),h=Math.floor(typeof l=="number"&&!isNaN(l)?l:1);if(c<1)c=1,h=1;else if(c>t)c=t,h=this.getLineMaxColumn(c);else if(h<=1)h=1;else{const d=this.getLineMaxColumn(c);h>=d&&(h=d)}return i===o&&n===r&&a===c&&l===h&&e instanceof D&&!(e instanceof ce)?e:new D(o,r,c,h)}_isValidPosition(e,t,i){if(typeof e!="number"||typeof t!="number"||isNaN(e)||isNaN(t)||e<1||t<1||(e|0)!==e||(t|0)!==t)return!1;const n=this._buffer.getLineCount();if(e>n)return!1;if(t===1)return!0;const o=this.getLineMaxColumn(e);if(t>o)return!1;if(i===1){const r=this._buffer.getLineCharCode(e,t-2);if(gt(r))return!1}return!0}_validatePosition(e,t,i){const n=Math.floor(typeof e=="number"&&!isNaN(e)?e:1),o=Math.floor(typeof t=="number"&&!isNaN(t)?t:1),r=this._buffer.getLineCount();if(n<1)return new A(1,1);if(n>r)return new A(r,this.getLineMaxColumn(r));if(o<=1)return new A(n,1);const a=this.getLineMaxColumn(n);if(o>=a)return new A(n,a);if(i===1){const l=this._buffer.getLineCharCode(n,o-2);if(gt(l))return new A(n,o-1)}return new A(n,o)}validatePosition(e){return this._assertNotDisposed(),e instanceof A&&this._isValidPosition(e.lineNumber,e.column,1)?e:this._validatePosition(e.lineNumber,e.column,1)}_isValidRange(e,t){const i=e.startLineNumber,n=e.startColumn,o=e.endLineNumber,r=e.endColumn;if(!this._isValidPosition(i,n,0)||!this._isValidPosition(o,r,0))return!1;if(t===1){const a=n>1?this._buffer.getLineCharCode(i,n-2):0,l=r>1&&r<=this._buffer.getLineLength(o)?this._buffer.getLineCharCode(o,r-2):0,c=gt(a),h=gt(l);return!c&&!h}return!0}validateRange(e){if(this._assertNotDisposed(),e instanceof D&&!(e instanceof ce)&&this._isValidRange(e,1))return e;const i=this._validatePosition(e.startLineNumber,e.startColumn,0),n=this._validatePosition(e.endLineNumber,e.endColumn,0),o=i.lineNumber,r=i.column,a=n.lineNumber,l=n.column;{const c=r>1?this._buffer.getLineCharCode(o,r-2):0,h=l>1&&l<=this._buffer.getLineLength(a)?this._buffer.getLineCharCode(a,l-2):0,d=gt(c),u=gt(h);return!d&&!u?new D(o,r,a,l):o===a&&r===l?new D(o,r-1,a,l-1):d&&u?new D(o,r-1,a,l+1):d?new D(o,r-1,a,l):new D(o,r,a,l+1)}}modifyPosition(e,t){this._assertNotDisposed();const i=this.getOffsetAt(e)+t;return this.getPositionAt(Math.min(this._buffer.getLength(),Math.max(0,i)))}getFullModelRange(){this._assertNotDisposed();const e=this.getLineCount();return new D(1,1,e,this.getLineMaxColumn(e))}findMatchesLineByLine(e,t,i,n){return this._buffer.findMatchesLineByLine(e,t,i,n)}findMatches(e,t,i,n,o,r,a=N7){this._assertNotDisposed();let l=null;t!==null&&(Array.isArray(t)||(t=[t]),t.every(d=>D.isIRange(d))&&(l=t.map(d=>this.validateRange(d)))),l===null&&(l=[this.getFullModelRange()]),l=l.sort((d,u)=>d.startLineNumber-u.startLineNumber||d.startColumn-u.startColumn);const c=[];c.push(l.reduce((d,u)=>D.areIntersecting(d,u)?d.plusRange(u):(c.push(d),u)));let h;if(!i&&e.indexOf(` +`)<0){const u=new Bo(e,i,n,o).parseSearchRequest();if(!u)return[];h=f=>this.findMatchesLineByLine(f,u,r,a)}else h=d=>Uh.findMatches(this,new Bo(e,i,n,o),d,r,a);return c.map(h).reduce((d,u)=>d.concat(u),[])}findNextMatch(e,t,i,n,o,r){this._assertNotDisposed();const a=this.validatePosition(t);if(!i&&e.indexOf(` +`)<0){const c=new Bo(e,i,n,o).parseSearchRequest();if(!c)return null;const h=this.getLineCount();let d=new D(a.lineNumber,a.column,h,this.getLineMaxColumn(h)),u=this.findMatchesLineByLine(d,c,r,1);return Uh.findNextMatch(this,new Bo(e,i,n,o),a,r),u.length>0||(d=new D(1,1,a.lineNumber,this.getLineMaxColumn(a.lineNumber)),u=this.findMatchesLineByLine(d,c,r,1),u.length>0)?u[0]:null}return Uh.findNextMatch(this,new Bo(e,i,n,o),a,r)}findPreviousMatch(e,t,i,n,o,r){this._assertNotDisposed();const a=this.validatePosition(t);return Uh.findPreviousMatch(this,new Bo(e,i,n,o),a,r)}pushStackElement(){this._commandManager.pushStackElement()}popStackElement(){this._commandManager.popStackElement()}pushEOL(e){if((this.getEOL()===` +`?0:1)!==e)try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._initialUndoRedoSnapshot===null&&(this._initialUndoRedoSnapshot=this._undoRedoService.createSnapshot(this.uri)),this._commandManager.pushEOL(e)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}_validateEditOperation(e){return e instanceof xg?e:new xg(e.identifier||null,this.validateRange(e.range),e.text,e.forceMoveMarkers||!1,e.isAutoWhitespaceEdit||!1,e._isTracked||!1)}_validateEditOperations(e){const t=[];for(let i=0,n=e.length;i({range:this.validateRange(r.range),text:r.text}));let o=!0;if(e)for(let r=0,a=e.length;rl.endLineNumber,m=l.startLineNumber>u.endLineNumber;if(!f&&!m){c=!0;break}}if(!c){o=!1;break}}if(o)for(let r=0,a=this._trimAutoWhitespaceLines.length;rf.endLineNumber)&&!(l===f.startLineNumber&&f.startColumn===c&&f.isEmpty()&&m&&m.length>0&&m.charAt(0)===` +`)&&!(l===f.startLineNumber&&f.startColumn===1&&f.isEmpty()&&m&&m.length>0&&m.charAt(m.length-1)===` +`)){h=!1;break}}if(h){const d=new D(l,1,l,c);t.push(new xg(null,d,null,!1,!1,!1))}}this._trimAutoWhitespaceLines=null}return this._initialUndoRedoSnapshot===null&&(this._initialUndoRedoSnapshot=this._undoRedoService.createSnapshot(this.uri)),this._commandManager.pushEditOperation(e,t,i)}_applyUndo(e,t,i,n){const o=e.map(r=>{const a=this.getPositionAt(r.newPosition),l=this.getPositionAt(r.newEnd);return{range:new D(a.lineNumber,a.column,l.lineNumber,l.column),text:r.oldText}});this._applyUndoRedoEdits(o,t,!0,!1,i,n)}_applyRedo(e,t,i,n){const o=e.map(r=>{const a=this.getPositionAt(r.oldPosition),l=this.getPositionAt(r.oldEnd);return{range:new D(a.lineNumber,a.column,l.lineNumber,l.column),text:r.newText}});this._applyUndoRedoEdits(o,t,!1,!0,i,n)}_applyUndoRedoEdits(e,t,i,n,o,r){try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._isUndoing=i,this._isRedoing=n,this.applyEdits(e,!1),this.setEOL(t),this._overwriteAlternativeVersionId(o)}finally{this._isUndoing=!1,this._isRedoing=!1,this._eventEmitter.endDeferredEmit(r),this._onDidChangeDecorations.endDeferredEmit()}}applyEdits(e,t=!1){try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit();const i=this._validateEditOperations(e);return this._doApplyEdits(i,t)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}_doApplyEdits(e,t){const i=this._buffer.getLineCount(),n=this._buffer.applyEdits(e,this._options.trimAutoWhitespace,t),o=this._buffer.getLineCount(),r=n.changes;if(this._trimAutoWhitespaceLines=n.trimAutoWhitespaceLineNumbers,r.length!==0){for(let c=0,h=r.length;c0?d.text.charCodeAt(0):0),this._decorationsTree.acceptReplace(d.rangeOffset,d.rangeLength,d.text.length,d.forceMoveMarkers)}const a=[];this._increaseVersionId();let l=i;for(let c=0,h=r.length;c=0;I--){const R=f+I,T=v+I;y.takeFromEndWhile(F=>F.lineNumber>T);const P=y.takeFromEndWhile(F=>F.lineNumber===T);a.push(new Ew(R,this.getLineContent(T),P))}if(w<_){const I=f+w;a.push(new zR(I+1,m))}if(wie.lineNumberie.lineNumber===Q)}a.push(new UR(R+1,f+b,j,F))}l+=C}this._emitContentChangedEvent(new fr(a,this.getVersionId(),this._isUndoing,this._isRedoing),{changes:r,eol:this._buffer.getEOL(),versionId:this.getVersionId(),isUndoing:this._isUndoing,isRedoing:this._isRedoing,isFlush:!1})}return n.reverseEdits===null?void 0:n.reverseEdits}undo(){return this._undoRedoService.undo(this.uri)}canUndo(){return this._undoRedoService.canUndo(this.uri)}redo(){return this._undoRedoService.redo(this.uri)}canRedo(){return this._undoRedoService.canRedo(this.uri)}handleBeforeFireDecorationsChangedEvent(e){if(e===null||e.size===0)return;const i=[...e].map(n=>new Ew(n,this.getLineContent(n),this._getInjectedTextInLine(n)));this._onDidChangeInjectedText.fire(new Ck(i))}changeDecorations(e,t=0){this._assertNotDisposed();try{return this._onDidChangeDecorations.beginDeferredEmit(),this._changeDecorations(t,e)}finally{this._onDidChangeDecorations.endDeferredEmit()}}_changeDecorations(e,t){const i={addDecoration:(o,r)=>this._deltaDecorationsImpl(e,[],[{range:o,options:r}])[0],changeDecoration:(o,r)=>{this._changeDecorationImpl(o,r)},changeDecorationOptions:(o,r)=>{this._changeDecorationOptionsImpl(o,Qw(r))},removeDecoration:o=>{this._deltaDecorationsImpl(e,[o],[])},deltaDecorations:(o,r)=>o.length===0&&r.length===0?[]:this._deltaDecorationsImpl(e,o,r)};let n=null;try{n=t(i)}catch(o){Ze(o)}return i.addDecoration=Wl,i.changeDecoration=Wl,i.changeDecorationOptions=Wl,i.removeDecoration=Wl,i.deltaDecorations=Wl,n}deltaDecorations(e,t,i=0){if(this._assertNotDisposed(),e||(e=[]),e.length===0&&t.length===0)return[];try{return this._onDidChangeDecorations.beginDeferredEmit(),this._deltaDecorationsImpl(i,e,t)}finally{this._onDidChangeDecorations.endDeferredEmit()}}_getTrackedRange(e){return this.getDecorationRange(e)}_setTrackedRange(e,t,i){const n=e?this._decorations[e]:null;if(!n)return t?this._deltaDecorationsImpl(0,[],[{range:t,options:Xw[i]}])[0]:null;if(!t)return this._decorationsTree.delete(n),delete this._decorations[n.id],null;const o=this._validateRangeRelaxedNoAllocations(t),r=this._buffer.getOffsetAt(o.startLineNumber,o.startColumn),a=this._buffer.getOffsetAt(o.endLineNumber,o.endColumn);return this._decorationsTree.delete(n),n.reset(this.getVersionId(),r,a,o),n.setOptions(Xw[i]),this._decorationsTree.insert(n),n.id}removeAllDecorationsWithOwnerId(e){if(this._isDisposed)return;const t=this._decorationsTree.collectNodesFromOwner(e);for(let i=0,n=t.length;ithis.getLineCount()?[]:this.getLinesDecorations(e,e,t,i)}getLinesDecorations(e,t,i=0,n=!1){const o=this.getLineCount(),r=Math.min(o,Math.max(1,e)),a=Math.min(o,Math.max(1,t)),l=this.getLineMaxColumn(a),c=new D(r,1,a,l),h=this._getDecorationsInRange(c,i,n);return h.push(...this._decorationProvider.getDecorationsInRange(c,i,n)),h}getDecorationsInRange(e,t=0,i=!1){const n=this.validateRange(e),o=this._getDecorationsInRange(n,t,i);return o.push(...this._decorationProvider.getDecorationsInRange(n,t,i)),o}getOverviewRulerDecorations(e=0,t=!1){return this._decorationsTree.getAll(this,e,t,!0)}getInjectedTextDecorations(e=0){return this._decorationsTree.getAllInjectedText(this,e)}_getInjectedTextInLine(e){const t=this._buffer.getOffsetAt(e,1),i=t+this._buffer.getLineLength(e),n=this._decorationsTree.getInjectedTextInInterval(this,t,i,0);return In.fromDecorations(n).filter(o=>o.lineNumber===e)}getAllDecorations(e=0,t=!1){let i=this._decorationsTree.getAll(this,e,t,!1);return i=i.concat(this._decorationProvider.getAllDecorations(e,t)),i}_getDecorationsInRange(e,t,i){const n=this._buffer.getOffsetAt(e.startLineNumber,e.startColumn),o=this._buffer.getOffsetAt(e.endLineNumber,e.endColumn);return this._decorationsTree.getAllInInterval(this,n,o,t,i)}getRangeAt(e,t){return this._buffer.getRangeAt(e,t-e)}_changeDecorationImpl(e,t){const i=this._decorations[e];if(!i)return;if(i.options.after){const a=this.getDecorationRange(e);this._onDidChangeDecorations.recordLineAffectedByInjectedText(a.endLineNumber)}if(i.options.before){const a=this.getDecorationRange(e);this._onDidChangeDecorations.recordLineAffectedByInjectedText(a.startLineNumber)}const n=this._validateRangeRelaxedNoAllocations(t),o=this._buffer.getOffsetAt(n.startLineNumber,n.startColumn),r=this._buffer.getOffsetAt(n.endLineNumber,n.endColumn);this._decorationsTree.delete(i),i.reset(this.getVersionId(),o,r,n),this._decorationsTree.insert(i),this._onDidChangeDecorations.checkAffectedAndFire(i.options),i.options.after&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(n.endLineNumber),i.options.before&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(n.startLineNumber)}_changeDecorationOptionsImpl(e,t){const i=this._decorations[e];if(!i)return;const n=!!(i.options.overviewRuler&&i.options.overviewRuler.color),o=!!(t.overviewRuler&&t.overviewRuler.color);if(this._onDidChangeDecorations.checkAffectedAndFire(i.options),this._onDidChangeDecorations.checkAffectedAndFire(t),i.options.after||t.after){const r=this._decorationsTree.getNodeRange(this,i);this._onDidChangeDecorations.recordLineAffectedByInjectedText(r.endLineNumber)}if(i.options.before||t.before){const r=this._decorationsTree.getNodeRange(this,i);this._onDidChangeDecorations.recordLineAffectedByInjectedText(r.startLineNumber)}n!==o?(this._decorationsTree.delete(i),i.setOptions(t),this._decorationsTree.insert(i)):i.setOptions(t)}_deltaDecorationsImpl(e,t,i){const n=this.getVersionId(),o=t.length;let r=0;const a=i.length;let l=0;const c=new Array(a);for(;r0&&this._emitModelTokensChangedEvent({tokenizationSupportChanged:!1,semanticTokensApplied:!1,ranges:i})}this.handleTokenizationProgress(t)}setSemanticTokens(e,t){this._semanticTokens.set(e,t),this._emitModelTokensChangedEvent({tokenizationSupportChanged:!1,semanticTokensApplied:e!==null,ranges:[{fromLineNumber:1,toLineNumber:this.getLineCount()}]})}hasCompleteSemanticTokens(){return this._semanticTokens.isComplete()}hasSomeSemanticTokens(){return!this._semanticTokens.isEmpty()}setPartialSemanticTokens(e,t){if(this.hasCompleteSemanticTokens())return;const i=this.validateRange(this._semanticTokens.setPartial(e,t));this._emitModelTokensChangedEvent({tokenizationSupportChanged:!1,semanticTokensApplied:!0,ranges:[{fromLineNumber:i.startLineNumber,toLineNumber:i.endLineNumber}]})}tokenizeViewport(e,t){e=Math.max(1,e),t=Math.min(this._buffer.getLineCount(),t),this._tokenization.tokenizeViewport(e,t)}clearTokens(){this._tokens.flush(),this._emitModelTokensChangedEvent({tokenizationSupportChanged:!0,semanticTokensApplied:!1,ranges:[{fromLineNumber:1,toLineNumber:this._buffer.getLineCount()}]})}_emitModelTokensChangedEvent(e){this._isDisposing||(this._bracketPairColorizer.handleDidChangeTokens(e),this._onDidChangeTokens.fire(e))}resetTokenization(){this._tokenization.reset()}forceTokenization(e){if(e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");this._tokenization.forceTokenization(e)}isCheapToTokenize(e){return this._tokenization.isCheapToTokenize(e)}tokenizeIfCheap(e){this.isCheapToTokenize(e)&&this.forceTokenization(e)}getLineTokens(e){if(e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");return this._getLineTokens(e)}_getLineTokens(e){const t=this.getLineContent(e),i=this._tokens.getTokens(this._languageId,e-1,t);return this._semanticTokens.addSparseTokens(e,i)}getLanguageId(){return this._languageId}setMode(e){if(this._languageId===e)return;const t={oldLanguage:this._languageId,newLanguage:e};this._languageId=e,this._bracketPairColorizer.handleDidChangeLanguage(t),this._tokenization.handleDidChangeLanguage(t),this._onDidChangeLanguage.fire(t),this._onDidChangeLanguageConfiguration.fire({})}getLanguageIdAtPosition(e,t){const i=this.validatePosition(new A(e,t)),n=this.getLineTokens(i.lineNumber);return n.getLanguageId(n.findTokenIndexAtOffset(i.column-1))}getTokenTypeIfInsertingCharacter(e,t,i){const n=this.validatePosition(new A(e,t));return this._tokenization.getTokenTypeIfInsertingCharacter(n,i)}tokenizeLineWithEdit(e,t,i){const n=this.validatePosition(e);return this._tokenization.tokenizeLineWithEdit(n,t,i)}getLanguageConfiguration(e){return this._languageConfigurationService.getLanguageConfiguration(e)}getWordAtPosition(e){this._assertNotDisposed();const t=this.validatePosition(e),i=this.getLineContent(t.lineNumber),n=this._getLineTokens(t.lineNumber),o=n.findTokenIndexAtOffset(t.column-1),[r,a]=Wo._findLanguageBoundaries(n,o),l=Ic(t.column,this.getLanguageConfiguration(n.getLanguageId(o)).getWordDefinition(),i.substring(r,a),r);if(l&&l.startColumn<=e.column&&e.column<=l.endColumn)return l;if(o>0&&r===t.column-1){const[c,h]=Wo._findLanguageBoundaries(n,o-1),d=Ic(t.column,this.getLanguageConfiguration(n.getLanguageId(o-1)).getWordDefinition(),i.substring(c,h),c);if(d&&d.startColumn<=e.column&&e.column<=d.endColumn)return d}return null}static _findLanguageBoundaries(e,t){const i=e.getLanguageId(t);let n=0;for(let r=t;r>=0&&e.getLanguageId(r)===i;r--)n=e.getStartOffset(r);let o=e.getLineContent().length;for(let r=t,a=e.getCount();ra.options.showIfCollapsed||!a.range.isEmpty())}getAllInjectedText(e,t){const i=e.getVersionId(),n=this._injectedTextDecorationsTree.search(t,!1,i);return this._ensureNodesHaveRanges(e,n).filter(o=>o.options.showIfCollapsed||!o.range.isEmpty())}getAll(e,t,i,n){const o=e.getVersionId(),r=this._search(t,i,n,o);return this._ensureNodesHaveRanges(e,r)}_search(e,t,i,n){if(i)return this._decorationsTree1.search(e,t,n);{const o=this._decorationsTree0.search(e,t,n),r=this._decorationsTree1.search(e,t,n),a=this._injectedTextDecorationsTree.search(e,t,n);return o.concat(r).concat(a)}}collectNodesFromOwner(e){const t=this._decorationsTree0.collectNodesFromOwner(e),i=this._decorationsTree1.collectNodesFromOwner(e),n=this._injectedTextDecorationsTree.collectNodesFromOwner(e);return t.concat(i).concat(n)}collectNodesPostOrder(){const e=this._decorationsTree0.collectNodesPostOrder(),t=this._decorationsTree1.collectNodesPostOrder(),i=this._injectedTextDecorationsTree.collectNodesPostOrder();return e.concat(t).concat(i)}insert(e){_m(e)?this._injectedTextDecorationsTree.insert(e):pm(e)?this._decorationsTree1.insert(e):this._decorationsTree0.insert(e)}delete(e){_m(e)?this._injectedTextDecorationsTree.delete(e):pm(e)?this._decorationsTree1.delete(e):this._decorationsTree0.delete(e)}getNodeRange(e,t){const i=e.getVersionId();return t.cachedVersionId!==i&&this._resolveNode(t,i),t.range===null&&(t.range=e.getRangeAt(t.cachedAbsoluteStart,t.cachedAbsoluteEnd)),t.range}_resolveNode(e,t){_m(e)?this._injectedTextDecorationsTree.resolveNode(e,t):pm(e)?this._decorationsTree1.resolveNode(e,t):this._decorationsTree0.resolveNode(e,t)}acceptReplace(e,t,i,n){this._decorationsTree0.acceptReplace(e,t,i,n),this._decorationsTree1.acceptReplace(e,t,i,n),this._injectedTextDecorationsTree.acceptReplace(e,t,i,n)}}function zs(s){return s.replace(/[^a-z0-9\-_]/gi," ")}class Bk{constructor(e){this.color=e.color||"",this.darkColor=e.darkColor||""}}class A7 extends Bk{constructor(e){super(e),this._resolvedColor=null,this.position=typeof e.position=="number"?e.position:Cr.Center}getColor(e){return this._resolvedColor||(e.type!=="light"&&this.darkColor?this._resolvedColor=this._resolveColor(this.darkColor,e):this._resolvedColor=this._resolveColor(this.color,e)),this._resolvedColor}invalidateCachedColor(){this._resolvedColor=null}_resolveColor(e,t){if(typeof e=="string")return e;const i=e?t.getColor(e.id):null;return i?i.toString():""}}class O7 extends Bk{constructor(e){super(e),this.position=e.position}getColor(e){return this._resolvedColor||(e.type!=="light"&&this.darkColor?this._resolvedColor=this._resolveColor(this.darkColor,e):this._resolvedColor=this._resolveColor(this.color,e)),this._resolvedColor}invalidateCachedColor(){this._resolvedColor=void 0}_resolveColor(e,t){return typeof e=="string"?O.fromHex(e):t.getColor(e.id)}}class Xc{constructor(e){this.content=e.content||"",this.inlineClassName=e.inlineClassName||null,this.inlineClassNameAffectsLetterSpacing=e.inlineClassNameAffectsLetterSpacing||!1,this.attachedData=e.attachedData||null,this.cursorStops=e.cursorStops||null}static from(e){return e instanceof Xc?e:new Xc(e)}}class qe{constructor(e){var t,i;this.description=e.description,this.stickiness=e.stickiness||0,this.zIndex=e.zIndex||0,this.className=e.className?zs(e.className):null,this.hoverMessage=e.hoverMessage||null,this.glyphMarginHoverMessage=e.glyphMarginHoverMessage||null,this.isWholeLine=e.isWholeLine||!1,this.showIfCollapsed=e.showIfCollapsed||!1,this.collapseOnReplaceEdit=e.collapseOnReplaceEdit||!1,this.overviewRuler=e.overviewRuler?new A7(e.overviewRuler):null,this.minimap=e.minimap?new O7(e.minimap):null,this.glyphMarginClassName=e.glyphMarginClassName?zs(e.glyphMarginClassName):null,this.linesDecorationsClassName=e.linesDecorationsClassName?zs(e.linesDecorationsClassName):null,this.firstLineDecorationClassName=e.firstLineDecorationClassName?zs(e.firstLineDecorationClassName):null,this.marginClassName=e.marginClassName?zs(e.marginClassName):null,this.inlineClassName=e.inlineClassName?zs(e.inlineClassName):null,this.inlineClassNameAffectsLetterSpacing=e.inlineClassNameAffectsLetterSpacing||!1,this.beforeContentClassName=e.beforeContentClassName?zs(e.beforeContentClassName):null,this.afterContentClassName=e.afterContentClassName?zs(e.afterContentClassName):null,this.after=e.after?Xc.from(e.after):null,this.before=e.before?Xc.from(e.before):null,this.hideInCommentTokens=(t=e.hideInCommentTokens)!==null&&t!==void 0?t:!1,this.hideInStringTokens=(i=e.hideInStringTokens)!==null&&i!==void 0?i:!1}static register(e){return new qe(e)}static createDynamic(e){return new qe(e)}}qe.EMPTY=qe.register({description:"empty"});const Xw=[qe.register({description:"tracked-range-always-grows-when-typing-at-edges",stickiness:0}),qe.register({description:"tracked-range-never-grows-when-typing-at-edges",stickiness:1}),qe.register({description:"tracked-range-grows-only-when-typing-before",stickiness:2}),qe.register({description:"tracked-range-grows-only-when-typing-after",stickiness:3})];function Qw(s){return s instanceof qe?s:qe.createDynamic(s)}class P7 extends W{constructor(e){super(),this.handleBeforeFire=e,this._actual=this._register(new M),this.event=this._actual.event,this._affectedInjectedTextLines=null,this._deferredCnt=0,this._shouldFire=!1,this._affectsMinimap=!1,this._affectsOverviewRuler=!1}beginDeferredEmit(){this._deferredCnt++}endDeferredEmit(){var e;if(this._deferredCnt--,this._deferredCnt===0){if(this._shouldFire){this.handleBeforeFire(this._affectedInjectedTextLines);const t={affectsMinimap:this._affectsMinimap,affectsOverviewRuler:this._affectsOverviewRuler};this._shouldFire=!1,this._affectsMinimap=!1,this._affectsOverviewRuler=!1,this._actual.fire(t)}(e=this._affectedInjectedTextLines)===null||e===void 0||e.clear(),this._affectedInjectedTextLines=null}}recordLineAffectedByInjectedText(e){this._affectedInjectedTextLines||(this._affectedInjectedTextLines=new Set),this._affectedInjectedTextLines.add(e)}checkAffectedAndFire(e){this._affectsMinimap||(this._affectsMinimap=!!(e.minimap&&e.minimap.position)),this._affectsOverviewRuler||(this._affectsOverviewRuler=!!(e.overviewRuler&&e.overviewRuler.color)),this._shouldFire=!0}fire(){this._affectsMinimap=!0,this._affectsOverviewRuler=!0,this._shouldFire=!0}}class F7 extends W{constructor(){super(),this._fastEmitter=this._register(new M),this.fastEvent=this._fastEmitter.event,this._slowEmitter=this._register(new M),this.slowEvent=this._slowEmitter.event,this._deferredCnt=0,this._deferredEvent=null}beginDeferredEmit(){this._deferredCnt++}endDeferredEmit(e=null){if(this._deferredCnt--,this._deferredCnt===0&&this._deferredEvent!==null){this._deferredEvent.rawContentChangedEvent.resultingSelection=e;const t=this._deferredEvent;this._deferredEvent=null,this._fastEmitter.fire(t),this._slowEmitter.fire(t)}}fire(e){if(this._deferredCnt>0){this._deferredEvent?this._deferredEvent=this._deferredEvent.merge(e):this._deferredEvent=e;return}this._fastEmitter.fire(e),this._slowEmitter.fire(e)}}function bm(s,e){return s===null?e?Ku.INSTANCE:qu.INSTANCE:new B7(s,e)}class B7{constructor(e,t){this._projectionData=e,this._isVisible=t}isVisible(){return this._isVisible}setVisible(e){return this._isVisible=e,this}getProjectionData(){return this._projectionData}getViewLineCount(){return this._isVisible?this._projectionData.getOutputLineCount():0}getViewLineContent(e,t,i){this._assertVisible();const n=i>0?this._projectionData.breakOffsets[i-1]:0,o=this._projectionData.breakOffsets[i];let r;if(this._projectionData.injectionOffsets!==null){const a=this._projectionData.injectionOffsets.map((c,h)=>new In(0,0,c+1,this._projectionData.injectionOptions[h],0));r=In.applyInjectedText(e.getLineContent(t),a).substring(n,o)}else r=e.getValueInRange({startLineNumber:t,startColumn:n+1,endLineNumber:t,endColumn:o+1});return i>0&&(r=Jw(this._projectionData.wrappedTextIndentLength)+r),r}getViewLineLength(e,t,i){return this._assertVisible(),this._projectionData.getLineLength(i)}getViewLineMinColumn(e,t,i){return this._assertVisible(),this._projectionData.getMinOutputOffset(i)+1}getViewLineMaxColumn(e,t,i){return this._assertVisible(),this._projectionData.getMaxOutputOffset(i)+1}getViewLineData(e,t,i){const n=new Array;return this.getViewLinesData(e,t,i,1,0,[!0],n),n[0]}getViewLinesData(e,t,i,n,o,r,a){this._assertVisible();const l=this._projectionData,c=l.injectionOffsets,h=l.injectionOptions;let d=null;if(c){d=[];let f=0,m=0;for(let _=0;_0?l.breakOffsets[_-1]:0,C=l.breakOffsets[_];for(;mC)break;if(w0?l.wrappedTextIndentLength:0,y=L+Math.max(S-w,0),I=L+Math.min(k-w,C);y!==I&&b.push(new QN(y,I,x.inlineClassName,x.inlineClassNameAffectsLetterSpacing))}}if(k<=C)f+=v,m++;else break}}}let u;c?u=e.getLineTokens(t).withInserted(c.map((f,m)=>({offset:f,text:h[m].content,tokenMetadata:vt.defaultTokenMetadata}))):u=e.getLineTokens(t);for(let f=i;f0?n.wrappedTextIndentLength:0,r=i>0?n.breakOffsets[i-1]:0,a=n.breakOffsets[i],l=e.sliceAndInflate(r,a,o);let c=l.getLineContent();i>0&&(c=Jw(n.wrappedTextIndentLength)+c);const h=this._projectionData.getMinOutputOffset(i)+1,d=c.length+1,u=i+1=Cm.length)for(let e=1;e<=s;e++)Cm[e]=V7(e);return Cm[s]}function V7(s){return new Array(s+1).join(" ")}class W7{constructor(e,t,i,n,o,r,a,l,c){this._editorId=e,this.model=t,this._validModelVersionId=-1,this._domLineBreaksComputerFactory=i,this._monospaceLineBreaksComputerFactory=n,this.fontInfo=o,this.tabSize=r,this.wrappingStrategy=a,this.wrappingColumn=l,this.wrappingIndent=c,this._constructLines(!0,null)}dispose(){this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,[])}createCoordinatesConverter(){return new z7(this)}_constructLines(e,t){this.modelLineProjections=[],e&&(this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,[]));const i=this.model.getLinesContent(),n=this.model.getInjectedTextDecorations(this._editorId),o=i.length,r=this.createLineBreaksComputer(),a=new za(In.fromDecorations(n));for(let _=0;_w.lineNumber===_+1);r.addRequest(i[_],b,t?t[_]:null)}const l=r.finalize(),c=[],h=this.hiddenAreasDecorationIds.map(_=>this.model.getDecorationRange(_)).sort(D.compareRangesUsingStarts);let d=1,u=0,f=-1,m=f+1=d&&b<=u,C=bm(l[_],!w);c[_]=C.getViewLineCount(),this.modelLineProjections[_]=C}this._validModelVersionId=this.model.getVersionId(),this.projectedModelLineLineCounts=new gN(c)}getHiddenAreas(){return this.hiddenAreasDecorationIds.map(e=>this.model.getDecorationRange(e))}setHiddenAreas(e){const t=e.map(u=>this.model.validateRange(u)),i=H7(t),n=this.hiddenAreasDecorationIds.map(u=>this.model.getDecorationRange(u)).sort(D.compareRangesUsingStarts);if(i.length===n.length){let u=!1;for(let f=0;f({range:u,options:qe.EMPTY}));this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,o);const r=i;let a=1,l=0,c=-1,h=c+1=a&&f<=l?this.modelLineProjections[u].isVisible()&&(this.modelLineProjections[u]=this.modelLineProjections[u].setVisible(!1),m=!0):(d=!0,this.modelLineProjections[u].isVisible()||(this.modelLineProjections[u]=this.modelLineProjections[u].setVisible(!0),m=!0)),m){const _=this.modelLineProjections[u].getViewLineCount();this.projectedModelLineLineCounts.setValue(u,_)}}return d||this.setHiddenAreas([]),!0}modelPositionIsVisible(e,t){return e<1||e>this.modelLineProjections.length?!1:this.modelLineProjections[e-1].isVisible()}getModelLineViewLineCount(e){return e<1||e>this.modelLineProjections.length?1:this.modelLineProjections[e-1].getViewLineCount()}setTabSize(e){return this.tabSize===e?!1:(this.tabSize=e,this._constructLines(!1,null),!0)}setWrappingSettings(e,t,i,n){const o=this.fontInfo.equals(e),r=this.wrappingStrategy===t,a=this.wrappingColumn===i,l=this.wrappingIndent===n;if(o&&r&&a&&l)return!1;const c=o&&r&&!a&&l;this.fontInfo=e,this.wrappingStrategy=t,this.wrappingColumn=i,this.wrappingIndent=n;let h=null;if(c){h=[];for(let d=0,u=this.modelLineProjections.length;d2&&!this.modelLineProjections[t-2].isVisible(),r=t===1?1:this.projectedModelLineLineCounts.getPrefixSum(t-1)+1;let a=0;const l=[],c=[];for(let h=0,d=n.length;hl?(h=this.projectedModelLineLineCounts.getPrefixSum(t-1)+1,d=h+l-1,m=d+1,_=m+(o-l)-1,c=!0):ot?t:e|0}getActiveIndentGuide(e,t,i){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t),i=this._toValidViewLineNumber(i);const n=this.convertViewPositionToModelPosition(e,this.getViewLineMinColumn(e)),o=this.convertViewPositionToModelPosition(t,this.getViewLineMinColumn(t)),r=this.convertViewPositionToModelPosition(i,this.getViewLineMinColumn(i)),a=this.model.guides.getActiveIndentGuide(n.lineNumber,o.lineNumber,r.lineNumber),l=this.convertModelPositionToViewPosition(a.startLineNumber,1),c=this.convertModelPositionToViewPosition(a.endLineNumber,this.model.getLineMaxColumn(a.endLineNumber));return{startLineNumber:l.lineNumber,endLineNumber:c.lineNumber,indent:a.indent}}getViewLineInfo(e){e=this._toValidViewLineNumber(e);const t=this.projectedModelLineLineCounts.getIndexOf(e-1),i=t.index,n=t.remainder;return new ev(i+1,n)}getMinColumnOfViewLine(e){return this.modelLineProjections[e.modelLineNumber-1].getViewLineMinColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx)}getModelStartPositionOfViewLine(e){const t=this.modelLineProjections[e.modelLineNumber-1],i=t.getViewLineMinColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx),n=t.getModelColumnOfViewPosition(e.modelLineWrappedLineIdx,i);return new A(e.modelLineNumber,n)}getModelEndPositionOfViewLine(e){const t=this.modelLineProjections[e.modelLineNumber-1],i=t.getViewLineMaxColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx),n=t.getModelColumnOfViewPosition(e.modelLineWrappedLineIdx,i);return new A(e.modelLineNumber,n)}getViewLineInfosGroupedByModelRanges(e,t){const i=this.getViewLineInfo(e),n=this.getViewLineInfo(t),o=new Array;let r=this.getModelStartPositionOfViewLine(i),a=new Array;for(let l=i.modelLineNumber;l<=n.modelLineNumber;l++){const c=this.modelLineProjections[l-1];if(c.isVisible()){const h=l===i.modelLineNumber?i.modelLineWrappedLineIdx:0,d=l===n.modelLineNumber?n.modelLineWrappedLineIdx+1:c.getViewLineCount();for(let u=h;uu.horizontalLine?new ma(u.visibleColumn,u.className,new L_(u.horizontalLine.top,this.convertModelPositionToViewPosition(h.modelLineNumber,u.horizontalLine.endColumn).column)):u),r.push(d)}}return r}getViewLinesIndentGuides(e,t){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t);const i=this.convertViewPositionToModelPosition(e,this.getViewLineMinColumn(e)),n=this.convertViewPositionToModelPosition(t,this.getViewLineMaxColumn(t));let o=[];const r=[],a=[],l=i.lineNumber-1,c=n.lineNumber-1;let h=null;for(let m=l;m<=c;m++){const _=this.modelLineProjections[m];if(_.isVisible()){const b=_.getViewLineNumberOfModelPosition(0,m===l?i.column:1),w=_.getViewLineNumberOfModelPosition(0,this.model.getLineMaxColumn(m+1)),C=w-b+1;let v=0;C>1&&_.getViewLineMinColumn(this.model,m+1,w)===1&&(v=b===0?1:2),r.push(C),a.push(v),h===null&&(h=new A(m+1,0))}else h!==null&&(o=o.concat(this.model.guides.getLinesIndentGuides(h.lineNumber,m)),h=null)}h!==null&&(o=o.concat(this.model.guides.getLinesIndentGuides(h.lineNumber,n.lineNumber)),h=null);const d=t-e+1,u=new Array(d);let f=0;for(let m=0,_=o.length;m<_;m++){let b=o[m];const w=Math.min(d-f,r[m]),C=a[m];let v;C===2?v=0:C===1?v=1:v=w;for(let S=0;St&&(m=!0,f=t-o+1),d.getViewLinesData(this.model,c+1,u,f,o-e,i,l),o+=f,m)break}return l}validateViewPosition(e,t,i){e=this._toValidViewLineNumber(e);const n=this.projectedModelLineLineCounts.getIndexOf(e-1),o=n.index,r=n.remainder,a=this.modelLineProjections[o],l=a.getViewLineMinColumn(this.model,o+1,r),c=a.getViewLineMaxColumn(this.model,o+1,r);tc&&(t=c);const h=a.getModelColumnOfViewPosition(r,t);return this.model.validatePosition(new A(o+1,h)).equals(i)?new A(e,t):this.convertModelPositionToViewPosition(i.lineNumber,i.column)}validateViewRange(e,t){const i=this.validateViewPosition(e.startLineNumber,e.startColumn,t.getStartPosition()),n=this.validateViewPosition(e.endLineNumber,e.endColumn,t.getEndPosition());return new D(i.lineNumber,i.column,n.lineNumber,n.column)}convertViewPositionToModelPosition(e,t){const i=this.getViewLineInfo(e),n=this.modelLineProjections[i.modelLineNumber-1].getModelColumnOfViewPosition(i.modelLineWrappedLineIdx,t);return this.model.validatePosition(new A(i.modelLineNumber,n))}convertViewRangeToModelRange(e){const t=this.convertViewPositionToModelPosition(e.startLineNumber,e.startColumn),i=this.convertViewPositionToModelPosition(e.endLineNumber,e.endColumn);return new D(t.lineNumber,t.column,i.lineNumber,i.column)}convertModelPositionToViewPosition(e,t,i=2){const n=this.model.validatePosition(new A(e,t)),o=n.lineNumber,r=n.column;let a=o-1,l=!1;for(;a>0&&!this.modelLineProjections[a].isVisible();)a--,l=!0;if(a===0&&!this.modelLineProjections[a].isVisible())return new A(1,1);const c=1+this.projectedModelLineLineCounts.getPrefixSum(a);let h;return l?h=this.modelLineProjections[a].getViewPositionOfModelPosition(c,this.model.getLineMaxColumn(a+1),i):h=this.modelLineProjections[o-1].getViewPositionOfModelPosition(c,r,i),h}convertModelRangeToViewRange(e,t=0){if(e.isEmpty()){const i=this.convertModelPositionToViewPosition(e.startLineNumber,e.startColumn,t);return D.fromPositions(i)}else{const i=this.convertModelPositionToViewPosition(e.startLineNumber,e.startColumn,1),n=this.convertModelPositionToViewPosition(e.endLineNumber,e.endColumn,0);return new D(i.lineNumber,i.column,n.lineNumber,n.column)}}getViewLineNumberOfModelPosition(e,t){let i=e-1;if(this.modelLineProjections[i].isVisible()){const o=1+this.projectedModelLineLineCounts.getPrefixSum(i);return this.modelLineProjections[i].getViewLineNumberOfModelPosition(o,t)}for(;i>0&&!this.modelLineProjections[i].isVisible();)i--;if(i===0&&!this.modelLineProjections[i].isVisible())return 1;const n=1+this.projectedModelLineLineCounts.getPrefixSum(i);return this.modelLineProjections[i].getViewLineNumberOfModelPosition(n,this.model.getLineMaxColumn(i+1))}getDecorationsInRange(e,t,i){const n=this.convertViewPositionToModelPosition(e.startLineNumber,e.startColumn),o=this.convertViewPositionToModelPosition(e.endLineNumber,e.endColumn);if(o.lineNumber-n.lineNumber<=e.endLineNumber-e.startLineNumber)return this.model.getDecorationsInRange(new D(n.lineNumber,1,o.lineNumber,o.column),t,i);let r=[];const a=n.lineNumber-1,l=o.lineNumber-1;let c=null;for(let f=a;f<=l;f++)if(this.modelLineProjections[f].isVisible())c===null&&(c=new A(f+1,f===a?n.column:1));else if(c!==null){const _=this.model.getLineMaxColumn(f);r=r.concat(this.model.getDecorationsInRange(new D(c.lineNumber,c.column,f,_),t,i)),c=null}c!==null&&(r=r.concat(this.model.getDecorationsInRange(new D(c.lineNumber,c.column,o.lineNumber,o.column),t,i)),c=null),r.sort((f,m)=>{const _=D.compareRangesUsingStarts(f.range,m.range);return _===0?f.idm.id?1:0:_});let h=[],d=0,u=null;for(const f of r){const m=f.id;u!==m&&(u=m,h[d++]=f)}return h}getInjectedTextAt(e){const t=this.getViewLineInfo(e.lineNumber);return this.modelLineProjections[t.modelLineNumber-1].getInjectedTextAt(t.modelLineWrappedLineIdx,e.column)}normalizePosition(e,t){const i=this.getViewLineInfo(e.lineNumber);return this.modelLineProjections[i.modelLineNumber-1].normalizePosition(i.modelLineWrappedLineIdx,e,t)}getLineIndentColumn(e){const t=this.getViewLineInfo(e);return t.modelLineWrappedLineIdx===0?this.model.getLineIndentColumn(t.modelLineNumber):0}}function H7(s){if(s.length===0)return[];const e=s.slice();e.sort(D.compareRangesUsingStarts);const t=[];let i=e[0].startLineNumber,n=e[0].endLineNumber;for(let o=1,r=e.length;on+1?(t.push(new D(i,1,n,1)),i=a.startLineNumber,n=a.endLineNumber):a.endLineNumber>n&&(n=a.endLineNumber)}return t.push(new D(i,1,n,1)),t}class ev{constructor(e,t){this.modelLineNumber=e,this.modelLineWrappedLineIdx=t}get isWrappedLineContinuation(){return this.modelLineWrappedLineIdx>0}}class tv{constructor(e,t){this.modelRange=e,this.viewLines=t}}class z7{constructor(e){this._lines=e}convertViewPositionToModelPosition(e){return this._lines.convertViewPositionToModelPosition(e.lineNumber,e.column)}convertViewRangeToModelRange(e){return this._lines.convertViewRangeToModelRange(e)}validateViewPosition(e,t){return this._lines.validateViewPosition(e.lineNumber,e.column,t)}validateViewRange(e,t){return this._lines.validateViewRange(e,t)}convertModelPositionToViewPosition(e,t){return this._lines.convertModelPositionToViewPosition(e.lineNumber,e.column,t)}convertModelRangeToViewRange(e,t){return this._lines.convertModelRangeToViewRange(e,t)}modelPositionIsVisible(e){return this._lines.modelPositionIsVisible(e.lineNumber,e.column)}getModelLineViewLineCount(e){return this._lines.getModelLineViewLineCount(e)}getViewLineNumberOfModelPosition(e,t){return this._lines.getViewLineNumberOfModelPosition(e,t)}}class U7{constructor(e){this.model=e}dispose(){}createCoordinatesConverter(){return new $7(this)}getHiddenAreas(){return[]}setHiddenAreas(e){return!1}setTabSize(e){return!1}setWrappingSettings(e,t,i,n){return!1}createLineBreaksComputer(){const e=[];return{addRequest:(t,i,n)=>{e.push(null)},finalize:()=>e}}onModelFlushed(){}onModelLinesDeleted(e,t,i){return new k_(t,i)}onModelLinesInserted(e,t,i,n){return new x_(t,i)}onModelLineChanged(e,t,i){return[!1,new wk(t,t),null,null]}acceptVersionId(e){}getViewLineCount(){return this.model.getLineCount()}getActiveIndentGuide(e,t,i){return{startLineNumber:e,endLineNumber:e,indent:0}}getViewLinesBracketGuides(e,t,i){return new Array(t-e+1).fill([])}getViewLinesIndentGuides(e,t){const i=t-e+1,n=new Array(i);for(let o=0;ot)}getModelLineViewLineCount(e){return 1}getViewLineNumberOfModelPosition(e,t){return e}}class j7 extends W{constructor(e,t,i,n,o,r,a,l){if(super(),this.languageConfigurationService=a,this._themeService=l,this._editorId=e,this._configuration=t,this.model=i,this._eventDispatcher=new iA,this.onEvent=this._eventDispatcher.onEvent,this.cursorConfig=new Yr(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._tokenizeViewportSoon=this._register(new Tt(()=>this.tokenizeViewport(),50)),this._updateConfigurationViewLineCount=this._register(new Tt(()=>this._updateConfigurationViewLineCountNow(),0)),this._hasFocus=!1,this._viewportStartLine=-1,this._viewportStartLineTrackedRange=null,this._viewportStartLineDelta=0,this.model.isTooLargeForTokenization())this._lines=new U7(this.model);else{const c=this._configuration.options,h=c.get(44),d=c.get(125),u=c.get(132),f=c.get(124);this._lines=new W7(this._editorId,this.model,n,o,h,this.model.getOptions().tabSize,d,u.wrappingColumn,f)}this.coordinatesConverter=this._lines.createCoordinatesConverter(),this._cursor=this._register(new tl(i,this,this.coordinatesConverter,this.cursorConfig)),this.viewLayout=this._register(new _A(this._configuration,this.getLineCount(),r)),this._register(this.viewLayout.onDidScroll(c=>{c.scrollTopChanged&&this._tokenizeViewportSoon.schedule(),this._eventDispatcher.emitSingleViewEvent(new XR(c)),this._eventDispatcher.emitOutgoingEvent(new j0(c.oldScrollWidth,c.oldScrollLeft,c.oldScrollHeight,c.oldScrollTop,c.scrollWidth,c.scrollLeft,c.scrollHeight,c.scrollTop))})),this._register(this.viewLayout.onDidContentSizeChange(c=>{this._eventDispatcher.emitOutgoingEvent(c)})),this._decorations=new bA(this._editorId,this.model,this._configuration,this._lines,this.coordinatesConverter),this._registerModelEvents(),this._register(this._configuration.onDidChangeFast(c=>{try{const h=this._eventDispatcher.beginEmitViewEvents();this._onConfigurationChanged(h,c)}finally{this._eventDispatcher.endEmitViewEvents()}})),this._register(Dh.getInstance().onDidChange(()=>{this._eventDispatcher.emitSingleViewEvent(new eA)})),this._register(this._themeService.onDidColorThemeChange(c=>{this._invalidateDecorationsColorCache(),this._eventDispatcher.emitSingleViewEvent(new QR(c))})),this._updateConfigurationViewLineCountNow()}dispose(){super.dispose(),this._decorations.dispose(),this._lines.dispose(),this._viewportStartLineTrackedRange=this.model._setTrackedRange(this._viewportStartLineTrackedRange,null,1),this._eventDispatcher.dispose()}createLineBreaksComputer(){return this._lines.createLineBreaksComputer()}addViewEventHandler(e){this._eventDispatcher.addViewEventHandler(e)}removeViewEventHandler(e){this._eventDispatcher.removeViewEventHandler(e)}_updateConfigurationViewLineCountNow(){this._configuration.setViewLineCount(this._lines.getViewLineCount())}tokenizeViewport(){const e=this.viewLayout.getLinesViewportData(),t=new D(e.startLineNumber,this.getLineMinColumn(e.startLineNumber),e.endLineNumber,this.getLineMaxColumn(e.endLineNumber)),i=this._toModelVisibleRanges(t);for(const n of i)this.model.tokenizeViewport(n.startLineNumber,n.endLineNumber)}setHasFocus(e){this._hasFocus=e,this._cursor.setHasFocus(e),this._eventDispatcher.emitSingleViewEvent(new ZR(e)),this._eventDispatcher.emitOutgoingEvent(new $0(!e,e))}onCompositionStart(){this._eventDispatcher.emitSingleViewEvent(new jR)}onCompositionEnd(){this._eventDispatcher.emitSingleViewEvent(new KR)}_onConfigurationChanged(e,t){let i=null;if(this._viewportStartLine!==-1){const h=new A(this._viewportStartLine,this.getLineMinColumn(this._viewportStartLine));i=this.coordinatesConverter.convertViewPositionToModelPosition(h)}let n=!1;const o=this._configuration.options,r=o.get(44),a=o.get(125),l=o.get(132),c=o.get(124);if(this._lines.setWrappingSettings(r,a,l.wrappingColumn,c)&&(e.emitViewEvent(new Yh),e.emitViewEvent(new Xh),e.emitViewEvent(new Xr(null)),this._cursor.onLineMappingChanged(e),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount()),this.viewLayout.getCurrentScrollTop()!==0&&(n=!0),this._updateConfigurationViewLineCount.schedule()),t.hasChanged(81)&&(this._decorations.reset(),e.emitViewEvent(new Xr(null))),e.emitViewEvent(new qR(t)),this.viewLayout.onConfigurationChanged(t),n&&i){const h=this.coordinatesConverter.convertModelPositionToViewPosition(i),d=this.viewLayout.getVerticalOffsetForLineNumber(h.lineNumber);this.viewLayout.setScrollPosition({scrollTop:d+this._viewportStartLineDelta},1)}Yr.shouldRecreate(t)&&(this.cursorConfig=new Yr(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig))}_registerModelEvents(){this._register(this.model.onDidChangeContentOrInjectedText(e=>{try{const t=this._eventDispatcher.beginEmitViewEvents();let i=!1,n=!1;const o=e.changes,r=e instanceof fr?e.versionId:null,a=this._lines.createLineBreaksComputer();for(const h of o)switch(h.changeType){case 4:{for(let d=0;d!m.ownerId||m.ownerId===this._editorId)),a.addRequest(u,f,null)}break}case 2:{let d=null;h.injectedText&&(d=h.injectedText.filter(u=>!u.ownerId||u.ownerId===this._editorId)),a.addRequest(h.detail,d,null);break}}const l=a.finalize(),c=new za(l);for(const h of o)switch(h.changeType){case 1:{this._lines.onModelFlushed(),t.emitViewEvent(new Yh),this._decorations.reset(),this.viewLayout.onFlushed(this.getLineCount()),i=!0;break}case 3:{const d=this._lines.onModelLinesDeleted(r,h.fromLineNumber,h.toLineNumber);d!==null&&(t.emitViewEvent(d),this.viewLayout.onLinesDeleted(d.fromLineNumber,d.toLineNumber)),i=!0;break}case 4:{const d=c.takeCount(h.detail.length),u=this._lines.onModelLinesInserted(r,h.fromLineNumber,h.toLineNumber,d);u!==null&&(t.emitViewEvent(u),this.viewLayout.onLinesInserted(u.fromLineNumber,u.toLineNumber)),i=!0;break}case 2:{const d=c.dequeue(),[u,f,m,_]=this._lines.onModelLineChanged(r,h.lineNumber,d);n=u,f&&t.emitViewEvent(f),m&&(t.emitViewEvent(m),this.viewLayout.onLinesInserted(m.fromLineNumber,m.toLineNumber)),_&&(t.emitViewEvent(_),this.viewLayout.onLinesDeleted(_.fromLineNumber,_.toLineNumber));break}case 5:break}r!==null&&this._lines.acceptVersionId(r),this.viewLayout.onHeightMaybeChanged(),!i&&n&&(t.emitViewEvent(new Xh),t.emitViewEvent(new Xr(null)),this._cursor.onLineMappingChanged(t),this._decorations.onLineMappingChanged())}finally{this._eventDispatcher.endEmitViewEvents()}if(this._viewportStartLine=-1,this._configuration.setModelLineCount(this.model.getLineCount()),this._updateConfigurationViewLineCountNow(),!this._hasFocus&&this.model.getAttachedEditorCount()>=2&&this._viewportStartLineTrackedRange){const t=this.model._getTrackedRange(this._viewportStartLineTrackedRange);if(t){const i=this.coordinatesConverter.convertModelPositionToViewPosition(t.getStartPosition()),n=this.viewLayout.getVerticalOffsetForLineNumber(i.lineNumber);this.viewLayout.setScrollPosition({scrollTop:n+this._viewportStartLineDelta},1)}}try{const t=this._eventDispatcher.beginEmitViewEvents();this._cursor.onModelContentChanged(t,e)}finally{this._eventDispatcher.endEmitViewEvents()}this._tokenizeViewportSoon.schedule()})),this._register(this.model.onDidChangeTokens(e=>{const t=[];for(let i=0,n=e.ranges.length;i{this._eventDispatcher.emitSingleViewEvent(new YR),this.cursorConfig=new Yr(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig)})),this._register(this.model.onDidChangeLanguage(e=>{this.cursorConfig=new Yr(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig)})),this._register(this.model.onDidChangeOptions(e=>{if(this._lines.setTabSize(this.model.getOptions().tabSize)){try{const t=this._eventDispatcher.beginEmitViewEvents();t.emitViewEvent(new Yh),t.emitViewEvent(new Xh),t.emitViewEvent(new Xr(null)),this._cursor.onLineMappingChanged(t),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount())}finally{this._eventDispatcher.endEmitViewEvents()}this._updateConfigurationViewLineCount.schedule()}this.cursorConfig=new Yr(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig)})),this._register(this.model.onDidChangeDecorations(e=>{this._decorations.onModelDecorationsChanged(),this._eventDispatcher.emitSingleViewEvent(new Xr(e))}))}setHiddenAreas(e){let t=!1;try{const i=this._eventDispatcher.beginEmitViewEvents();t=this._lines.setHiddenAreas(e),t&&(i.emitViewEvent(new Yh),i.emitViewEvent(new Xh),i.emitViewEvent(new Xr(null)),this._cursor.onLineMappingChanged(i),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount()),this.viewLayout.onHeightMaybeChanged())}finally{this._eventDispatcher.endEmitViewEvents()}this._updateConfigurationViewLineCount.schedule(),t&&this._eventDispatcher.emitOutgoingEvent(new Dw)}getVisibleRangesPlusViewportAboveBelow(){const e=this._configuration.options.get(131),t=this._configuration.options.get(59),i=Math.max(20,Math.round(e.height/t)),n=this.viewLayout.getLinesViewportData(),o=Math.max(1,n.completelyVisibleStartLineNumber-i),r=Math.min(this.getLineCount(),n.completelyVisibleEndLineNumber+i);return this._toModelVisibleRanges(new D(o,this.getLineMinColumn(o),r,this.getLineMaxColumn(r)))}getVisibleRanges(){const e=this.getCompletelyVisibleViewRange();return this._toModelVisibleRanges(e)}_toModelVisibleRanges(e){const t=this.coordinatesConverter.convertViewRangeToModelRange(e),i=this._lines.getHiddenAreas();if(i.length===0)return[t];const n=[];let o=0,r=t.startLineNumber,a=t.startColumn;const l=t.endLineNumber,c=t.endColumn;for(let h=0,d=i.length;hl||(rc.toInlineDecoration(t))]),new vi(r.minColumn,r.maxColumn,r.content,r.continuesWithWrappedLine,i,n,r.tokens,l,o,r.startVisibleColumn)}getViewLineData(e){return this._lines.getViewLineData(e)}getMinimapLinesRenderingData(e,t,i){const n=this._lines.getViewLinesData(e,t,i);return new XN(this.getTabSize(),n)}getAllOverviewRulerDecorations(e){const t=this.model.getOverviewRulerDecorations(this._editorId,su(this._configuration.options)),i=new K7;for(const n of t){const o=n.options,r=o.overviewRuler;if(!r)continue;const a=r.position;if(a===0)continue;const l=r.getColor(e.value),c=this.coordinatesConverter.getViewLineNumberOfModelPosition(n.range.startLineNumber,n.range.startColumn),h=this.coordinatesConverter.getViewLineNumberOfModelPosition(n.range.endLineNumber,n.range.endColumn);i.accept(l,o.zIndex,c,h,a)}return i.asArray}_invalidateDecorationsColorCache(){const e=this.model.getOverviewRulerDecorations();for(const t of e){const i=t.options.overviewRuler;i&&i.invalidateCachedColor();const n=t.options.minimap;n&&n.invalidateCachedColor()}}getValueInRange(e,t){const i=this.coordinatesConverter.convertViewRangeToModelRange(e);return this.model.getValueInRange(i,t)}deduceModelPositionRelativeToViewPosition(e,t,i){const n=this.coordinatesConverter.convertViewPositionToModelPosition(e);this.model.getEOL().length===2&&(t<0?t-=i:t+=i);const r=this.model.getOffsetAt(n)+t;return this.model.getPositionAt(r)}getPlainTextToCopy(e,t,i){const n=i?`\r +`:this.model.getEOL();e=e.slice(0),e.sort(D.compareRangesUsingStarts);let o=!1,r=!1;for(const l of e)l.isEmpty()?o=!0:r=!0;if(!r){if(!t)return"";const l=e.map(h=>h.startLineNumber);let c="";for(let h=0;h0&&l[h-1]===l[h]||(c+=this.model.getLineContent(l[h])+n);return c}if(o&&t){const l=[];let c=0;for(const h of e){const d=h.startLineNumber;h.isEmpty()?d!==c&&l.push(this.model.getLineContent(d)):l.push(this.model.getValueInRange(h,i?2:0)),c=d}return l.length===1?l[0]:l}const a=[];for(const l of e)l.isEmpty()||a.push(this.model.getValueInRange(l,i?2:0));return a.length===1?a[0]:a}getRichTextToCopy(e,t){const i=this.model.getLanguageId();if(i===Vr||e.length!==1)return null;let n=e[0];if(n.isEmpty()){if(!t)return null;const h=n.startLineNumber;n=new D(h,this.model.getLineMinColumn(h),h,this.model.getLineMaxColumn(h))}const o=this._configuration.options.get(44),r=this._getColorMap(),l=/[:;\\\/<>]/.test(o.fontFamily)||o.fontFamily===bi.fontFamily;let c;return l?c=bi.fontFamily:(c=o.fontFamily,c=c.replace(/"/g,"'"),/[,']/.test(c)||/[+ ]/.test(c)&&(c=`'${c}'`),c=`${c}, ${bi.fontFamily}`),{mode:i,html:`
    `+this._getHTMLToCopy(n,r)+"
    "}}_getHTMLToCopy(e,t){const i=e.startLineNumber,n=e.startColumn,o=e.endLineNumber,r=e.endColumn,a=this.getTabSize();let l="";for(let c=i;c<=o;c++){const h=this.model.getLineTokens(c),d=h.getLineContent(),u=c===i?n-1:0,f=c===o?r-1:d.length;d===""?l+="
    ":l+=uA(d,h.inflate(),t,u,f,a,li)}return l}_getColorMap(){const e=et.getColorMap(),t=["#000000"];if(e)for(let i=1,n=e.length;ithis._cursor.setStates(n,e,t,i))}getCursorColumnSelectData(){return this._cursor.getCursorColumnSelectData()}getCursorAutoClosedCharacters(){return this._cursor.getAutoClosedCharacters()}setCursorColumnSelectData(e){this._cursor.setCursorColumnSelectData(e)}getPrevEditOperationType(){return this._cursor.getPrevEditOperationType()}setPrevEditOperationType(e){this._cursor.setPrevEditOperationType(e)}getSelection(){return this._cursor.getSelection()}getSelections(){return this._cursor.getSelections()}getPosition(){return this._cursor.getPrimaryCursorState().modelState.position}setSelections(e,t,i=0){this._withViewEventsCollector(n=>this._cursor.setSelections(n,e,t,i))}saveCursorState(){return this._cursor.saveState()}restoreCursorState(e){this._withViewEventsCollector(t=>this._cursor.restoreState(t,e))}_executeCursorEdit(e){if(this._cursor.context.cursorConfig.readOnly){this._eventDispatcher.emitOutgoingEvent(new sA);return}this._withViewEventsCollector(e)}executeEdits(e,t,i){this._executeCursorEdit(n=>this._cursor.executeEdits(n,e,t,i))}startComposition(){this._cursor.setIsDoingComposition(!0),this._executeCursorEdit(e=>this._cursor.startComposition(e))}endComposition(e){this._cursor.setIsDoingComposition(!1),this._executeCursorEdit(t=>this._cursor.endComposition(t,e))}type(e,t){this._executeCursorEdit(i=>this._cursor.type(i,e,t))}compositionType(e,t,i,n,o){this._executeCursorEdit(r=>this._cursor.compositionType(r,e,t,i,n,o))}paste(e,t,i,n){this._executeCursorEdit(o=>this._cursor.paste(o,e,t,i,n))}cut(e){this._executeCursorEdit(t=>this._cursor.cut(t,e))}executeCommand(e,t){this._executeCursorEdit(i=>this._cursor.executeCommand(i,e,t))}executeCommands(e,t){this._executeCursorEdit(i=>this._cursor.executeCommands(i,e,t))}revealPrimaryCursor(e,t,i=!1){this._withViewEventsCollector(n=>this._cursor.revealPrimary(n,e,i,0,t,0))}revealTopMostCursor(e){const t=this._cursor.getTopMostViewPosition(),i=new D(t.lineNumber,t.column,t.lineNumber,t.column);this._withViewEventsCollector(n=>n.emitViewEvent(new zd(e,!1,i,null,0,!0,0)))}revealBottomMostCursor(e){const t=this._cursor.getBottomMostViewPosition(),i=new D(t.lineNumber,t.column,t.lineNumber,t.column);this._withViewEventsCollector(n=>n.emitViewEvent(new zd(e,!1,i,null,0,!0,0)))}revealRange(e,t,i,n,o){this._withViewEventsCollector(r=>r.emitViewEvent(new zd(e,!1,i,null,n,t,o)))}changeWhitespace(e){this.viewLayout.changeWhitespace(e)&&(this._eventDispatcher.emitSingleViewEvent(new tA),this._eventDispatcher.emitOutgoingEvent(new Dw))}_withViewEventsCollector(e){try{const t=this._eventDispatcher.beginEmitViewEvents();return e(t)}finally{this._eventDispatcher.endEmitViewEvents()}}normalizePosition(e,t){return this._lines.normalizePosition(e,t)}getLineIndentColumn(e){return this._lines.getLineIndentColumn(e)}}class K7{constructor(){this._asMap=Object.create(null),this.asArray=[]}accept(e,t,i,n,o){const r=this._asMap[e];if(r){const a=r.data,l=a[a.length-3],c=a[a.length-1];if(l===o&&c+1>=i){n>c&&(a[a.length-1]=n);return}a.push(o,i,n)}else{const a=new eL(e,t,[o,i,n]);this._asMap[e]=a,this.asArray.push(a)}}}class Zf{constructor(...e){this._entries=new Map;for(let[t,i]of e)this.set(t,i)}set(e,t){const i=this._entries.get(e);return this._entries.set(e,t),i}get(e){return this._entries.get(e)}}var Qc;(function(s){s[s.Ignore=0]="Ignore",s[s.Info=1]="Info",s[s.Warning=2]="Warning",s[s.Error=3]="Error"})(Qc||(Qc={}));(function(s){const e="error",t="warning",i="warn",n="info",o="ignore";function r(l){return l?aa(e,l)?s.Error:aa(t,l)||aa(i,l)?s.Warning:aa(n,l)?s.Info:s.Ignore:s.Ignore}s.fromValue=r;function a(l){switch(l){case s.Error:return e;case s.Warning:return t;case s.Info:return n;default:return o}}s.toString=a})(Qc||(Qc={}));var at=Qc;const Dn=pe("notificationService");class q7{}class _c{constructor(e,t,i,n,o){this.injectionOffsets=e,this.injectionOptions=t,this.breakOffsets=i,this.breakOffsetsVisibleColumn=n,this.wrappedTextIndentLength=o}getOutputLineCount(){return this.breakOffsets.length}getMinOutputOffset(e){return e>0?this.wrappedTextIndentLength:0}getLineLength(e){const t=e>0?this.breakOffsets[e-1]:0;let n=this.breakOffsets[e]-t;return e>0&&(n+=this.wrappedTextIndentLength),n}getMaxOutputOffset(e){return this.getLineLength(e)}translateToInputOffset(e,t){e>0&&(t=Math.max(0,t-this.wrappedTextIndentLength));let n=e===0?t:this.breakOffsets[e-1]+t;if(this.injectionOffsets!==null)for(let o=0;othis.injectionOffsets[o];o++)n0?this.breakOffsets[o-1]:0,t===0)if(e<=r)n=o-1;else if(e>l)i=o+1;else break;else if(e=l)i=o+1;else break}let a=e-r;return o>0&&(a+=this.wrappedTextIndentLength),new rd(o,a)}normalizeOutputPosition(e,t,i){if(this.injectionOffsets!==null){const n=this.outputPositionToOffsetInInputWithInjections(e,t),o=this.normalizeOffsetInInputWithInjectionsAroundInjections(n,i);if(o!==n)return this.offsetInInputWithInjectionsToOutputPosition(o,i)}if(i===0){if(e>0&&t===this.getMinOutputOffset(e))return new rd(e-1,this.getMaxOutputOffset(e-1))}else if(i===1){const n=this.getOutputLineCount()-1;if(e0&&(t=Math.max(0,t-this.wrappedTextIndentLength)),(e>0?this.breakOffsets[e-1]:0)+t}normalizeOffsetInInputWithInjectionsAroundInjections(e,t){const i=this.getInjectedTextAtOffset(e);if(!i)return e;if(t===2){if(e===i.offsetInInputWithInjections+i.length&&iv(this.injectionOptions[i.injectedTextIndex].cursorStops))return i.offsetInInputWithInjections+i.length;{let n=i.offsetInInputWithInjections;if(nv(this.injectionOptions[i.injectedTextIndex].cursorStops))return n;let o=i.injectedTextIndex-1;for(;o>=0&&this.injectionOffsets[o]===this.injectionOffsets[i.injectedTextIndex]&&!(iv(this.injectionOptions[o].cursorStops)||(n-=this.injectionOptions[o].content.length,nv(this.injectionOptions[o].cursorStops)));)o--;return n}}else if(t===1){let n=i.offsetInInputWithInjections+i.length,o=i.injectedTextIndex;for(;o+1=0&&this.injectionOffsets[o-1]===this.injectionOffsets[o];)n-=this.injectionOptions[o-1].content.length,o--;return n}K1()}getInjectedText(e,t){const i=this.outputPositionToOffsetInInputWithInjections(e,t),n=this.getInjectedTextAtOffset(i);return n?{options:this.injectionOptions[n.injectedTextIndex]}:null}getInjectedTextAtOffset(e){const t=this.injectionOffsets,i=this.injectionOptions;if(t!==null){let n=0;for(let o=0;oe)break;if(e<=l)return{injectedTextIndex:o,offsetInInputWithInjections:a,length:r};n+=r}}}}function iv(s){return s==null?!0:s===$a.Right||s===$a.Both}function nv(s){return s==null?!0:s===$a.Left||s===$a.Both}class rd{constructor(e,t){this.outputLineIndex=e,this.outputOffset=t}toString(){return`${this.outputLineIndex}:${this.outputOffset}`}toPosition(e){return new A(e+this.outputLineIndex,this.outputOffset+1)}}class ib{constructor(e,t){this.classifier=new G7(e,t)}static create(e){return new ib(e.get(120),e.get(119))}createLineBreaksComputer(e,t,i,n){const o=[],r=[],a=[];return{addRequest:(l,c,h)=>{o.push(l),r.push(c),a.push(h)},finalize:()=>{const l=e.typicalFullwidthCharacterWidth/e.typicalHalfwidthCharacterWidth,c=[];for(let h=0,d=o.length;h=0&&e<256?this._asciiMap[e]:e>=12352&&e<=12543||e>=13312&&e<=19903||e>=19968&&e<=40959?3:this._map.get(e)||this._defaultValue}}let M_=[],R_=[];function Z7(s,e,t,i,n,o,r){if(n===-1)return null;const a=t.length;if(a<=1)return null;const l=e.breakOffsets,c=e.breakOffsetsVisibleColumn,h=Vk(t,i,n,o,r),d=n-h,u=M_,f=R_;let m=0,_=0,b=0,w=n;const C=l.length;let v=0;if(v>=0){let S=Math.abs(c[v]-w);for(;v+1=S)break;S=k,v++}}for(;vS&&(S=_,k=b);let x=0,L=0,y=0,I=0;if(k<=w){let T=k,P=S===0?0:t.charCodeAt(S-1),F=S===0?0:s.get(P),j=!0;for(let z=S;z_&&A_(P,F,ie,ee)&&(x=Q,L=T),T+=ae,T>w){Q>_?(y=Q,I=T-ae):(y=z+1,I=T),T-L>d&&(x=0),j=!1;break}P=ie,F=ee}if(j){m>0&&(u[m]=l[l.length-1],f[m]=c[l.length-1],m++);break}}if(x===0){let T=k,P=t.charCodeAt(S),F=s.get(P),j=!1;for(let z=S-1;z>=_;z--){const Q=z+1,ie=t.charCodeAt(z);if(ie===9){j=!0;break}let ee,ae;if(Ua(ie)?(z--,ee=0,ae=2):(ee=s.get(ie),ae=vo(ie)?o:1),T<=w){if(y===0&&(y=Q,I=T),T<=w-d)break;if(A_(ie,ee,P,F)){x=Q,L=T;break}}T-=ae,P=ie,F=ee}if(x!==0){const z=d-(I-L);if(z<=i){const Q=t.charCodeAt(y);let ie;gt(Q)?ie=2:ie=bc(Q,I,i,o),z-ie<0&&(x=0)}}if(j){v--;continue}}if(x===0&&(x=y,L=I),x<=_){const T=t.charCodeAt(_);gt(T)?(x=_+2,L=b+2):(x=_+1,L=b+bc(T,b,i,o))}for(_=x,u[m]=x,b=L,f[m]=L,m++,w=L+d;v<0||v=R)break;R=T,v++}}return m===0?null:(u.length=m,f.length=m,M_=e.breakOffsets,R_=e.breakOffsetsVisibleColumn,e.breakOffsets=u,e.breakOffsetsVisibleColumn=f,e.wrappedTextIndentLength=h,e)}function Y7(s,e,t,i,n,o,r){const a=In.applyInjectedText(e,t);let l,c;if(t&&t.length>0?(l=t.map(L=>L.options),c=t.map(L=>L.column-1)):(l=null,c=null),n===-1)return l?new _c(c,l,[a.length],[],0):null;const h=a.length;if(h<=1)return l?new _c(c,l,[a.length],[],0):null;const d=Vk(a,i,n,o,r),u=n-d,f=[],m=[];let _=0,b=0,w=0,C=n,v=a.charCodeAt(0),S=s.get(v),k=bc(v,0,i,o),x=1;gt(v)&&(k+=1,v=a.charCodeAt(1),S=s.get(v),x++);for(let L=x;LC&&((b===0||k-w>u)&&(b=y,w=k-T),f[_]=b,m[_]=w,_++,C=w+u,b=0),v=I,S=R}return _===0&&(!t||t.length===0)?null:(f[_]=h,m[_]=k,new _c(c,l,f,m,d))}function bc(s,e,t,i){return s===9?t-e%t:vo(s)||s<32?i:1}function sv(s,e){return e-s%e}function A_(s,e,t,i){return t!==32&&(e===2||e===3&&i!==2||i===1||i===3&&e!==1)}function Vk(s,e,t,i,n){let o=0;if(n!==0){const r=Ci(s);if(r!==-1){for(let l=0;lt&&(o=0)}}return o}var wm;const vm=(wm=window.trustedTypes)===null||wm===void 0?void 0:wm.createPolicy("domLineBreaksComputer",{createHTML:s=>s});class nb{static create(){return new nb}constructor(){}createLineBreaksComputer(e,t,i,n){const o=[],r=[];return{addRequest:(a,l,c)=>{o.push(a),r.push(l)},finalize:()=>X7(o,e,t,i,n,r)}}}function X7(s,e,t,i,n,o){var r;function a(y){const I=o[y];if(I){const R=In.applyInjectedText(s[y],I),T=I.map(F=>F.options),P=I.map(F=>F.column-1);return new _c(P,T,[R.length],[],0)}else return null}if(i===-1){const y=[];for(let I=0,R=s.length;Il?(R=0,T=0):P=l-z}const F=I.substr(R),j=Q7(F,T,t,P,f,d);m[y]=R,_[y]=T,b[y]=F,w[y]=j[0],C[y]=j[1]}const v=f.build(),S=(r=vm==null?void 0:vm.createHTML(v))!==null&&r!==void 0?r:v;u.innerHTML=S,u.style.position="absolute",u.style.top="10000",u.style.wordWrap="break-word",document.body.appendChild(u);const k=document.createRange(),x=Array.prototype.slice.call(u.children,0),L=[];for(let y=0;yee.options),Q=ie.map(ee=>ee.column-1)):(z=null,Q=null),L[y]=new _c(Q,z,R,j,P)}return document.body.removeChild(u),L}function Q7(s,e,t,i,n,o){if(o!==0){const u=String(o);n.appendASCIIString('
    ');const r=s.length;let a=e,l=0;const c=[],h=[];let d=0");for(let u=0;u"),c[u]=l,h[u]=a;const f=d;d=u+1"),c[s.length]=l,h[s.length]=a,n.appendASCIIString("
    "),[c,h]}function J7(s,e,t,i){if(t.length<=1)return null;const n=Array.prototype.slice.call(e.children,0),o=[];try{O_(s,n,i,0,null,t.length-1,null,o)}catch(r){return console.log(r),null}return o.length===0?null:(o.push(t.length),o)}function O_(s,e,t,i,n,o,r,a){if(i===o||(n=n||Sm(s,e,t[i],t[i+1]),r=r||Sm(s,e,t[o],t[o+1]),Math.abs(n[0].top-r[0].top)<=.1))return;if(i+1===o){a.push(o);return}const l=i+(o-i)/2|0,c=Sm(s,e,t[l],t[l+1]);O_(s,e,t,i,n,l,c,a),O_(s,e,t,l,c,o,r,a)}function Sm(s,e,t,i){return s.setStart(e[t/16384|0].firstChild,t%16384),s.setEnd(e[i/16384|0].firstChild,i%16384),s.getClientRects()}var e9=globalThis&&globalThis.__decorate||function(s,e,t,i){var n=arguments.length,o=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},us=globalThis&&globalThis.__param||function(s,e){return function(t,i){e(t,i,s)}};let t9=0;class i9{constructor(e,t,i,n,o){this.model=e,this.viewModel=t,this.view=i,this.hasRealView=n,this.listenersToRemove=o}dispose(){Me(this.listenersToRemove),this.model.onBeforeDetached(),this.hasRealView&&this.view.dispose(),this.viewModel.dispose()}}let Gu=class jd extends W{constructor(e,t,i,n,o,r,a,l,c,h,d,u){super(),this.languageConfigurationService=d,this._onDidDispose=this._register(new M),this.onDidDispose=this._onDidDispose.event,this._onDidChangeModelContent=this._register(new M),this.onDidChangeModelContent=this._onDidChangeModelContent.event,this._onDidChangeModelLanguage=this._register(new M),this.onDidChangeModelLanguage=this._onDidChangeModelLanguage.event,this._onDidChangeModelLanguageConfiguration=this._register(new M),this.onDidChangeModelLanguageConfiguration=this._onDidChangeModelLanguageConfiguration.event,this._onDidChangeModelOptions=this._register(new M),this.onDidChangeModelOptions=this._onDidChangeModelOptions.event,this._onDidChangeModelDecorations=this._register(new M),this.onDidChangeModelDecorations=this._onDidChangeModelDecorations.event,this._onDidChangeConfiguration=this._register(new M),this.onDidChangeConfiguration=this._onDidChangeConfiguration.event,this._onDidChangeModel=this._register(new M),this.onDidChangeModel=this._onDidChangeModel.event,this._onDidChangeCursorPosition=this._register(new M),this.onDidChangeCursorPosition=this._onDidChangeCursorPosition.event,this._onDidChangeCursorSelection=this._register(new M),this.onDidChangeCursorSelection=this._onDidChangeCursorSelection.event,this._onDidAttemptReadOnlyEdit=this._register(new M),this.onDidAttemptReadOnlyEdit=this._onDidAttemptReadOnlyEdit.event,this._onDidLayoutChange=this._register(new M),this.onDidLayoutChange=this._onDidLayoutChange.event,this._editorTextFocus=this._register(new ov),this.onDidFocusEditorText=this._editorTextFocus.onDidChangeToTrue,this.onDidBlurEditorText=this._editorTextFocus.onDidChangeToFalse,this._editorWidgetFocus=this._register(new ov),this.onDidFocusEditorWidget=this._editorWidgetFocus.onDidChangeToTrue,this.onDidBlurEditorWidget=this._editorWidgetFocus.onDidChangeToFalse,this._onWillType=this._register(new M),this.onWillType=this._onWillType.event,this._onDidType=this._register(new M),this.onDidType=this._onDidType.event,this._onDidCompositionStart=this._register(new M),this.onDidCompositionStart=this._onDidCompositionStart.event,this._onDidCompositionEnd=this._register(new M),this.onDidCompositionEnd=this._onDidCompositionEnd.event,this._onDidPaste=this._register(new M),this.onDidPaste=this._onDidPaste.event,this._onMouseUp=this._register(new M),this.onMouseUp=this._onMouseUp.event,this._onMouseDown=this._register(new M),this.onMouseDown=this._onMouseDown.event,this._onMouseDrag=this._register(new M),this.onMouseDrag=this._onMouseDrag.event,this._onMouseDrop=this._register(new M),this.onMouseDrop=this._onMouseDrop.event,this._onMouseDropCanceled=this._register(new M),this.onMouseDropCanceled=this._onMouseDropCanceled.event,this._onContextMenu=this._register(new M),this.onContextMenu=this._onContextMenu.event,this._onMouseMove=this._register(new M),this.onMouseMove=this._onMouseMove.event,this._onMouseLeave=this._register(new M),this.onMouseLeave=this._onMouseLeave.event,this._onMouseWheel=this._register(new M),this.onMouseWheel=this._onMouseWheel.event,this._onKeyUp=this._register(new M),this.onKeyUp=this._onKeyUp.event,this._onKeyDown=this._register(new M),this.onKeyDown=this._onKeyDown.event,this._onDidContentSizeChange=this._register(new M),this.onDidContentSizeChange=this._onDidContentSizeChange.event,this._onDidScrollChange=this._register(new M),this.onDidScrollChange=this._onDidScrollChange.event,this._onDidChangeViewZones=this._register(new M),this.onDidChangeViewZones=this._onDidChangeViewZones.event,this._onDidChangeHiddenAreas=this._register(new M),this.onDidChangeHiddenAreas=this._onDidChangeHiddenAreas.event,this._bannerDomNode=null;const f=Object.assign({},t);this._domElement=e,this._overflowWidgetsDomNode=f.overflowWidgetsDomNode,delete f.overflowWidgetsDomNode,this._id=++t9,this._decorationTypeKeysToIds={},this._decorationTypeSubtypes={},this._telemetryData=i.telemetryData,this._configuration=this._register(this._createConfiguration(i.isSimpleWidget||!1,f,h)),this._register(this._configuration.onDidChange(_=>{this._onDidChangeConfiguration.fire(_);const b=this._configuration.options;if(_.hasChanged(131)){const w=b.get(131);this._onDidLayoutChange.fire(w)}})),this._contextKeyService=this._register(a.createScoped(this._domElement)),this._notificationService=c,this._codeEditorService=o,this._commandService=r,this._themeService=l,this._register(new n9(this,this._contextKeyService)),this._register(new s9(this,this._contextKeyService,u)),this._instantiationService=n.createChild(new Zf([Ne,this._contextKeyService])),this._modelData=null,this._contributions={},this._actions={},this._focusTracker=new o9(e),this._register(this._focusTracker.onChange(()=>{this._editorWidgetFocus.setValue(this._focusTracker.hasFocus())})),this._contentWidgets={},this._overlayWidgets={};let m;Array.isArray(i.contributions)?m=i.contributions:m=Ia.getEditorContributions();for(const _ of m){if(this._contributions[_.id]){Ze(new Error(`Cannot have two contributions with the same id ${_.id}`));continue}try{const b=this._instantiationService.createInstance(_.ctor,this);this._contributions[_.id]=b}catch(b){Ze(b)}}Ia.getEditorActions().forEach(_=>{if(this._actions[_.id]){Ze(new Error(`Cannot have two actions with the same id ${_.id}`));return}const b=new vk(_.id,_.label,_.alias,Qo(_.precondition),()=>this._instantiationService.invokeFunction(w=>Promise.resolve(_.runEditorCommand(w,this,null))),this._contextKeyService);this._actions[b.id]=b}),this._codeEditorService.addCodeEditor(this)}get isSimpleWidget(){return this._configuration.isSimpleWidget}_createConfiguration(e,t,i){return new f_(e,t,this._domElement,i)}getId(){return this.getEditorType()+":"+this._id}getEditorType(){return d0.ICodeEditor}dispose(){this._codeEditorService.removeCodeEditor(this),this._focusTracker.dispose();const e=Object.keys(this._contributions);for(let t=0,i=e.length;tD.lift(t)))}getVisibleColumnFromPosition(e){if(!this._modelData)return e.column;const t=this._modelData.model.validatePosition(e),i=this._modelData.model.getOptions().tabSize;return ft.visibleColumnFromColumn(this._modelData.model.getLineContent(t.lineNumber),t.column,i)+1}getPosition(){return this._modelData?this._modelData.viewModel.getPosition():null}setPosition(e,t="api"){if(!!this._modelData){if(!A.isIPosition(e))throw new Error("Invalid arguments");this._modelData.viewModel.setSelections(t,[{selectionStartLineNumber:e.lineNumber,selectionStartColumn:e.column,positionLineNumber:e.lineNumber,positionColumn:e.column}])}}_sendRevealRange(e,t,i,n){if(!this._modelData)return;if(!D.isIRange(e))throw new Error("Invalid arguments");const o=this._modelData.model.validateRange(e),r=this._modelData.viewModel.coordinatesConverter.convertModelRangeToViewRange(o);this._modelData.viewModel.revealRange("api",i,r,t,n)}revealLine(e,t=0){this._revealLine(e,0,t)}revealLineInCenter(e,t=0){this._revealLine(e,1,t)}revealLineInCenterIfOutsideViewport(e,t=0){this._revealLine(e,2,t)}revealLineNearTop(e,t=0){this._revealLine(e,5,t)}_revealLine(e,t,i){if(typeof e!="number")throw new Error("Invalid arguments");this._sendRevealRange(new D(e,1,e,1),t,!1,i)}revealPosition(e,t=0){this._revealPosition(e,0,!0,t)}revealPositionInCenter(e,t=0){this._revealPosition(e,1,!0,t)}revealPositionInCenterIfOutsideViewport(e,t=0){this._revealPosition(e,2,!0,t)}revealPositionNearTop(e,t=0){this._revealPosition(e,5,!0,t)}_revealPosition(e,t,i,n){if(!A.isIPosition(e))throw new Error("Invalid arguments");this._sendRevealRange(new D(e.lineNumber,e.column,e.lineNumber,e.column),t,i,n)}getSelection(){return this._modelData?this._modelData.viewModel.getSelection():null}getSelections(){return this._modelData?this._modelData.viewModel.getSelections():null}setSelection(e,t="api"){const i=ce.isISelection(e),n=D.isIRange(e);if(!i&&!n)throw new Error("Invalid arguments");if(i)this._setSelectionImpl(e,t);else if(n){const o={selectionStartLineNumber:e.startLineNumber,selectionStartColumn:e.startColumn,positionLineNumber:e.endLineNumber,positionColumn:e.endColumn};this._setSelectionImpl(o,t)}}_setSelectionImpl(e,t){if(!this._modelData)return;const i=new ce(e.selectionStartLineNumber,e.selectionStartColumn,e.positionLineNumber,e.positionColumn);this._modelData.viewModel.setSelections(t,[i])}revealLines(e,t,i=0){this._revealLines(e,t,0,i)}revealLinesInCenter(e,t,i=0){this._revealLines(e,t,1,i)}revealLinesInCenterIfOutsideViewport(e,t,i=0){this._revealLines(e,t,2,i)}revealLinesNearTop(e,t,i=0){this._revealLines(e,t,5,i)}_revealLines(e,t,i,n){if(typeof e!="number"||typeof t!="number")throw new Error("Invalid arguments");this._sendRevealRange(new D(e,1,t,1),i,!1,n)}revealRange(e,t=0,i=!1,n=!0){this._revealRange(e,i?1:0,n,t)}revealRangeInCenter(e,t=0){this._revealRange(e,1,!0,t)}revealRangeInCenterIfOutsideViewport(e,t=0){this._revealRange(e,2,!0,t)}revealRangeNearTop(e,t=0){this._revealRange(e,5,!0,t)}revealRangeNearTopIfOutsideViewport(e,t=0){this._revealRange(e,6,!0,t)}revealRangeAtTop(e,t=0){this._revealRange(e,3,!0,t)}_revealRange(e,t,i,n){if(!D.isIRange(e))throw new Error("Invalid arguments");this._sendRevealRange(D.lift(e),t,i,n)}setSelections(e,t="api",i=0){if(!!this._modelData){if(!e||e.length===0)throw new Error("Invalid arguments");for(let n=0,o=e.length;n0&&this._modelData.viewModel.restoreCursorState(i):this._modelData.viewModel.restoreCursorState([i]);const n=t.contributionsState||{},o=Object.keys(this._contributions);for(let a=0,l=o.length;at.isSupported()),e}getAction(e){return this._actions[e]||null}trigger(e,t,i){switch(i=i||{},t){case"compositionStart":this._startComposition();return;case"compositionEnd":this._endComposition(e);return;case"type":{const o=i;this._type(e,o.text||"");return}case"replacePreviousChar":{const o=i;this._compositionType(e,o.text||"",o.replaceCharCnt||0,0,0);return}case"compositionType":{const o=i;this._compositionType(e,o.text||"",o.replacePrevCharCnt||0,o.replaceNextCharCnt||0,o.positionDelta||0);return}case"paste":{const o=i;this._paste(e,o.text||"",o.pasteOnNewLine||!1,o.multicursorText||null,o.mode||null);return}case"cut":this._cut(e);return}const n=this.getAction(t);if(n){Promise.resolve(n.run()).then(void 0,Ze);return}!this._modelData||this._triggerEditorCommand(e,t,i)||this._triggerCommand(t,i)}_triggerCommand(e,t){this._commandService.executeCommand(e,t)}_startComposition(){!this._modelData||(this._modelData.viewModel.startComposition(),this._onDidCompositionStart.fire())}_endComposition(e){!this._modelData||(this._modelData.viewModel.endComposition(e),this._onDidCompositionEnd.fire())}_type(e,t){!this._modelData||t.length===0||(e==="keyboard"&&this._onWillType.fire(t),this._modelData.viewModel.type(t,e),e==="keyboard"&&this._onDidType.fire(t))}_compositionType(e,t,i,n,o){!this._modelData||this._modelData.viewModel.compositionType(t,i,n,o,e)}_paste(e,t,i,n,o){if(!this._modelData||t.length===0)return;const r=this._modelData.viewModel.getSelection().getStartPosition();this._modelData.viewModel.paste(t,i,n,e);const a=this._modelData.viewModel.getSelection().getStartPosition();e==="keyboard"&&this._onDidPaste.fire({range:new D(r.lineNumber,r.column,a.lineNumber,a.column),languageId:o})}_cut(e){!this._modelData||this._modelData.viewModel.cut(e)}_triggerEditorCommand(e,t,i){const n=Ia.getEditorCommand(t);return n?(i=i||{},i.source=e,this._instantiationService.invokeFunction(o=>{Promise.resolve(n.runEditorCommand(o,this,i)).then(void 0,Ze)}),!0):!1}_getViewModel(){return this._modelData?this._modelData.viewModel:null}pushUndoStop(){return!this._modelData||this._configuration.options.get(81)?!1:(this._modelData.model.pushStackElement(),!0)}popUndoStop(){return!this._modelData||this._configuration.options.get(81)?!1:(this._modelData.model.popStackElement(),!0)}executeEdits(e,t,i){if(!this._modelData||this._configuration.options.get(81))return!1;let n;return i?Array.isArray(i)?n=()=>i:n=i:n=()=>null,this._modelData.viewModel.executeEdits(e,t,n),!0}executeCommand(e,t){!this._modelData||this._modelData.viewModel.executeCommand(t,e)}executeCommands(e,t){!this._modelData||this._modelData.viewModel.executeCommands(t,e)}changeDecorations(e){return this._modelData?this._modelData.model.changeDecorations(e,this._id):null}getLineDecorations(e){return this._modelData?this._modelData.model.getLineDecorations(e,this._id,su(this._configuration.options)):null}getDecorationsInRange(e){return this._modelData?this._modelData.model.getDecorationsInRange(e,this._id,su(this._configuration.options)):null}deltaDecorations(e,t){return this._modelData?e.length===0&&t.length===0?e:this._modelData.model.deltaDecorations(e,t,this._id):[]}removeDecorations(e){const t=this._decorationTypeKeysToIds[e];t&&this.deltaDecorations(t,[]),this._decorationTypeKeysToIds.hasOwnProperty(e)&&delete this._decorationTypeKeysToIds[e],this._decorationTypeSubtypes.hasOwnProperty(e)&&delete this._decorationTypeSubtypes[e]}getLayoutInfo(){return this._configuration.options.get(131)}createOverviewRuler(e){return!this._modelData||!this._modelData.hasRealView?null:this._modelData.view.createOverviewRuler(e)}getContainerDomNode(){return this._domElement}getDomNode(){return!this._modelData||!this._modelData.hasRealView?null:this._modelData.view.domNode.domNode}delegateVerticalScrollbarMouseDown(e){!this._modelData||!this._modelData.hasRealView||this._modelData.view.delegateVerticalScrollbarMouseDown(e)}layout(e){this._configuration.observeContainer(e),this.render()}focus(){!this._modelData||!this._modelData.hasRealView||this._modelData.view.focus()}hasTextFocus(){return!this._modelData||!this._modelData.hasRealView?!1:this._modelData.view.isFocused()}hasWidgetFocus(){return this._focusTracker&&this._focusTracker.hasFocus()}addContentWidget(e){const t={widget:e,position:e.getPosition()};this._contentWidgets.hasOwnProperty(e.getId())&&console.warn("Overwriting a content widget with the same id."),this._contentWidgets[e.getId()]=t,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addContentWidget(t)}layoutContentWidget(e){const t=e.getId();if(this._contentWidgets.hasOwnProperty(t)){const i=this._contentWidgets[t];i.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutContentWidget(i)}}removeContentWidget(e){const t=e.getId();if(this._contentWidgets.hasOwnProperty(t)){const i=this._contentWidgets[t];delete this._contentWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeContentWidget(i)}}addOverlayWidget(e){const t={widget:e,position:e.getPosition()};this._overlayWidgets.hasOwnProperty(e.getId())&&console.warn("Overwriting an overlay widget with the same id."),this._overlayWidgets[e.getId()]=t,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addOverlayWidget(t)}layoutOverlayWidget(e){const t=e.getId();if(this._overlayWidgets.hasOwnProperty(t)){const i=this._overlayWidgets[t];i.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutOverlayWidget(i)}}removeOverlayWidget(e){const t=e.getId();if(this._overlayWidgets.hasOwnProperty(t)){const i=this._overlayWidgets[t];delete this._overlayWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeOverlayWidget(i)}}changeViewZones(e){!this._modelData||!this._modelData.hasRealView||this._modelData.view.change(e)}getTargetAtClientPoint(e,t){return!this._modelData||!this._modelData.hasRealView?null:this._modelData.view.getTargetAtClientPoint(e,t)}getScrolledVisiblePosition(e){if(!this._modelData||!this._modelData.hasRealView)return null;const t=this._modelData.model.validatePosition(e),i=this._configuration.options,n=i.get(131),o=jd._getVerticalOffsetForPosition(this._modelData,t.lineNumber,t.column)-this.getScrollTop(),r=this._modelData.view.getOffsetForColumn(t.lineNumber,t.column)+n.glyphMarginWidth+n.lineNumbersWidth+n.decorationsWidth-this.getScrollLeft();return{top:o,left:r,height:i.get(59)}}getOffsetForColumn(e,t){return!this._modelData||!this._modelData.hasRealView?-1:this._modelData.view.getOffsetForColumn(e,t)}render(e=!1){!this._modelData||!this._modelData.hasRealView||this._modelData.view.render(!0,e)}setAriaOptions(e){!this._modelData||!this._modelData.hasRealView||this._modelData.view.setAriaOptions(e)}applyFontInfo(e){ii(e,this._configuration.options.get(44))}setBanner(e,t){this._bannerDomNode&&this._domElement.contains(this._bannerDomNode)&&this._domElement.removeChild(this._bannerDomNode),this._bannerDomNode=e,this._configuration.setReservedHeight(e?t:0),this._bannerDomNode&&this._domElement.prepend(this._bannerDomNode)}_attachModel(e){if(!e){this._modelData=null;return}const t=[];this._domElement.setAttribute("data-mode-id",e.getLanguageId()),this._configuration.setIsDominatedByLongLines(e.isDominatedByLongLines()),this._configuration.setModelLineCount(e.getLineCount()),e.onBeforeAttached();const i=new j7(this._id,this._configuration,e,nb.create(),ib.create(this._configuration.options),r=>kn(r),this.languageConfigurationService,this._themeService);t.push(e.onDidChangeDecorations(r=>this._onDidChangeModelDecorations.fire(r))),t.push(e.onDidChangeLanguage(r=>{this._domElement.setAttribute("data-mode-id",e.getLanguageId()),this._onDidChangeModelLanguage.fire(r)})),t.push(e.onDidChangeLanguageConfiguration(r=>this._onDidChangeModelLanguageConfiguration.fire(r))),t.push(e.onDidChangeContent(r=>this._onDidChangeModelContent.fire(r))),t.push(e.onDidChangeOptions(r=>this._onDidChangeModelOptions.fire(r))),t.push(e.onWillDispose(()=>this.setModel(null))),t.push(i.onEvent(r=>{switch(r.kind){case 0:this._onDidContentSizeChange.fire(r);break;case 1:this._editorTextFocus.setValue(r.hasFocus);break;case 2:this._onDidScrollChange.fire(r);break;case 3:this._onDidChangeViewZones.fire();break;case 4:this._onDidChangeHiddenAreas.fire();break;case 5:this._onDidAttemptReadOnlyEdit.fire();break;case 6:{r.reachedMaxCursorCount&&this._notificationService.warn(p("cursors.maximum","The number of cursors has been limited to {0}.",tl.MAX_CURSOR_COUNT));const a=[];for(let h=0,d=r.selections.length;h{this._paste("keyboard",o,r,a,l)},type:o=>{this._type("keyboard",o)},compositionType:(o,r,a,l)=>{this._compositionType("keyboard",o,r,a,l)},startComposition:()=>{this._startComposition()},endComposition:()=>{this._endComposition("keyboard")},cut:()=>{this._cut("keyboard")}}:t={paste:(o,r,a,l)=>{const c={text:o,pasteOnNewLine:r,multicursorText:a,mode:l};this._commandService.executeCommand("paste",c)},type:o=>{const r={text:o};this._commandService.executeCommand("type",r)},compositionType:(o,r,a,l)=>{if(a||l){const c={text:o,replacePrevCharCnt:r,replaceNextCharCnt:a,positionDelta:l};this._commandService.executeCommand("compositionType",c)}else{const c={text:o,replaceCharCnt:r};this._commandService.executeCommand("replacePreviousChar",c)}},startComposition:()=>{this._commandService.executeCommand("compositionStart",{})},endComposition:()=>{this._commandService.executeCommand("compositionEnd",{})},cut:()=>{this._commandService.executeCommand("cut",{})}};const i=new qf(e.coordinatesConverter);return i.onKeyDown=o=>this._onKeyDown.fire(o),i.onKeyUp=o=>this._onKeyUp.fire(o),i.onContextMenu=o=>this._onContextMenu.fire(o),i.onMouseMove=o=>this._onMouseMove.fire(o),i.onMouseLeave=o=>this._onMouseLeave.fire(o),i.onMouseDown=o=>this._onMouseDown.fire(o),i.onMouseUp=o=>this._onMouseUp.fire(o),i.onMouseDrag=o=>this._onMouseDrag.fire(o),i.onMouseDrop=o=>this._onMouseDrop.fire(o),i.onMouseDropCanceled=o=>this._onMouseDropCanceled.fire(o),i.onMouseWheel=o=>this._onMouseWheel.fire(o),[new VR(t,this._configuration,this._themeService.getColorTheme(),e,i,this._overflowWidgetsDomNode),!0]}_postDetachModelCleanup(e){e&&e.removeAllDecorationsWithOwnerId(this._id)}_detachModel(){if(!this._modelData)return null;const e=this._modelData.model,t=this._modelData.hasRealView?this._modelData.view.domNode.domNode:null;return this._modelData.dispose(),this._modelData=null,this._domElement.removeAttribute("data-mode-id"),t&&this._domElement.contains(t)&&this._domElement.removeChild(t),this._bannerDomNode&&this._domElement.contains(this._bannerDomNode)&&this._domElement.removeChild(this._bannerDomNode),e}_removeDecorationType(e){this._codeEditorService.removeDecorationType(e)}hasModel(){return this._modelData!==null}};Gu=e9([us(3,rn),us(4,kt),us(5,Bi),us(6,Ne),us(7,ot),us(8,Dn),us(9,Vi),us(10,Eo),us(11,be)],Gu);class ov extends W{constructor(){super(),this._onDidChangeToTrue=this._register(new M),this.onDidChangeToTrue=this._onDidChangeToTrue.event,this._onDidChangeToFalse=this._register(new M),this.onDidChangeToFalse=this._onDidChangeToFalse.event,this._value=0}setValue(e){const t=e?2:1;this._value!==t&&(this._value=t,this._value===2?this._onDidChangeToTrue.fire():this._value===1&&this._onDidChangeToFalse.fire())}}class n9 extends W{constructor(e,t){super(),this._editor=e,t.createKey("editorId",e.getId()),this._editorSimpleInput=H.editorSimpleInput.bindTo(t),this._editorFocus=H.focus.bindTo(t),this._textInputFocus=H.textInputFocus.bindTo(t),this._editorTextFocus=H.editorTextFocus.bindTo(t),this._editorTabMovesFocus=H.tabMovesFocus.bindTo(t),this._editorReadonly=H.readOnly.bindTo(t),this._inDiffEditor=H.inDiffEditor.bindTo(t),this._editorColumnSelection=H.columnSelection.bindTo(t),this._hasMultipleSelections=H.hasMultipleSelections.bindTo(t),this._hasNonEmptySelection=H.hasNonEmptySelection.bindTo(t),this._canUndo=H.canUndo.bindTo(t),this._canRedo=H.canRedo.bindTo(t),this._register(this._editor.onDidChangeConfiguration(()=>this._updateFromConfig())),this._register(this._editor.onDidChangeCursorSelection(()=>this._updateFromSelection())),this._register(this._editor.onDidFocusEditorWidget(()=>this._updateFromFocus())),this._register(this._editor.onDidBlurEditorWidget(()=>this._updateFromFocus())),this._register(this._editor.onDidFocusEditorText(()=>this._updateFromFocus())),this._register(this._editor.onDidBlurEditorText(()=>this._updateFromFocus())),this._register(this._editor.onDidChangeModel(()=>this._updateFromModel())),this._register(this._editor.onDidChangeConfiguration(()=>this._updateFromModel())),this._updateFromConfig(),this._updateFromSelection(),this._updateFromFocus(),this._updateFromModel(),this._editorSimpleInput.set(this._editor.isSimpleWidget)}_updateFromConfig(){const e=this._editor.getOptions();this._editorTabMovesFocus.set(e.get(130)),this._editorReadonly.set(e.get(81)),this._inDiffEditor.set(e.get(54)),this._editorColumnSelection.set(e.get(18))}_updateFromSelection(){const e=this._editor.getSelections();e?(this._hasMultipleSelections.set(e.length>1),this._hasNonEmptySelection.set(e.some(t=>!t.isEmpty()))):(this._hasMultipleSelections.reset(),this._hasNonEmptySelection.reset())}_updateFromFocus(){this._editorFocus.set(this._editor.hasWidgetFocus()&&!this._editor.isSimpleWidget),this._editorTextFocus.set(this._editor.hasTextFocus()&&!this._editor.isSimpleWidget),this._textInputFocus.set(this._editor.hasTextFocus())}_updateFromModel(){const e=this._editor.getModel();this._canUndo.set(Boolean(e&&e.canUndo())),this._canRedo.set(Boolean(e&&e.canRedo()))}}class s9 extends W{constructor(e,t,i){super(),this._editor=e,this._contextKeyService=t,this._languageFeaturesService=i,this._langId=H.languageId.bindTo(t),this._hasCompletionItemProvider=H.hasCompletionItemProvider.bindTo(t),this._hasCodeActionsProvider=H.hasCodeActionsProvider.bindTo(t),this._hasCodeLensProvider=H.hasCodeLensProvider.bindTo(t),this._hasDefinitionProvider=H.hasDefinitionProvider.bindTo(t),this._hasDeclarationProvider=H.hasDeclarationProvider.bindTo(t),this._hasImplementationProvider=H.hasImplementationProvider.bindTo(t),this._hasTypeDefinitionProvider=H.hasTypeDefinitionProvider.bindTo(t),this._hasHoverProvider=H.hasHoverProvider.bindTo(t),this._hasDocumentHighlightProvider=H.hasDocumentHighlightProvider.bindTo(t),this._hasDocumentSymbolProvider=H.hasDocumentSymbolProvider.bindTo(t),this._hasReferenceProvider=H.hasReferenceProvider.bindTo(t),this._hasRenameProvider=H.hasRenameProvider.bindTo(t),this._hasSignatureHelpProvider=H.hasSignatureHelpProvider.bindTo(t),this._hasInlayHintsProvider=H.hasInlayHintsProvider.bindTo(t),this._hasDocumentFormattingProvider=H.hasDocumentFormattingProvider.bindTo(t),this._hasDocumentSelectionFormattingProvider=H.hasDocumentSelectionFormattingProvider.bindTo(t),this._hasMultipleDocumentFormattingProvider=H.hasMultipleDocumentFormattingProvider.bindTo(t),this._hasMultipleDocumentSelectionFormattingProvider=H.hasMultipleDocumentSelectionFormattingProvider.bindTo(t),this._isInWalkThrough=H.isInWalkThroughSnippet.bindTo(t);const n=()=>this._update();this._register(e.onDidChangeModel(n)),this._register(e.onDidChangeModelLanguage(n)),this._register(i.completionProvider.onDidChange(n)),this._register(i.codeActionProvider.onDidChange(n)),this._register(i.codeLensProvider.onDidChange(n)),this._register(i.definitionProvider.onDidChange(n)),this._register(i.declarationProvider.onDidChange(n)),this._register(i.implementationProvider.onDidChange(n)),this._register(i.typeDefinitionProvider.onDidChange(n)),this._register(i.hoverProvider.onDidChange(n)),this._register(i.documentHighlightProvider.onDidChange(n)),this._register(i.documentSymbolProvider.onDidChange(n)),this._register(i.referenceProvider.onDidChange(n)),this._register(i.renameProvider.onDidChange(n)),this._register(i.documentFormattingEditProvider.onDidChange(n)),this._register(i.documentRangeFormattingEditProvider.onDidChange(n)),this._register(i.signatureHelpProvider.onDidChange(n)),this._register(i.inlayHintsProvider.onDidChange(n)),n()}dispose(){super.dispose()}reset(){this._contextKeyService.bufferChangeEvents(()=>{this._langId.reset(),this._hasCompletionItemProvider.reset(),this._hasCodeActionsProvider.reset(),this._hasCodeLensProvider.reset(),this._hasDefinitionProvider.reset(),this._hasDeclarationProvider.reset(),this._hasImplementationProvider.reset(),this._hasTypeDefinitionProvider.reset(),this._hasHoverProvider.reset(),this._hasDocumentHighlightProvider.reset(),this._hasDocumentSymbolProvider.reset(),this._hasReferenceProvider.reset(),this._hasRenameProvider.reset(),this._hasDocumentFormattingProvider.reset(),this._hasDocumentSelectionFormattingProvider.reset(),this._hasSignatureHelpProvider.reset(),this._isInWalkThrough.reset()})}_update(){const e=this._editor.getModel();if(!e){this.reset();return}this._contextKeyService.bufferChangeEvents(()=>{this._langId.set(e.getLanguageId()),this._hasCompletionItemProvider.set(this._languageFeaturesService.completionProvider.has(e)),this._hasCodeActionsProvider.set(this._languageFeaturesService.codeActionProvider.has(e)),this._hasCodeLensProvider.set(this._languageFeaturesService.codeLensProvider.has(e)),this._hasDefinitionProvider.set(this._languageFeaturesService.definitionProvider.has(e)),this._hasDeclarationProvider.set(this._languageFeaturesService.declarationProvider.has(e)),this._hasImplementationProvider.set(this._languageFeaturesService.implementationProvider.has(e)),this._hasTypeDefinitionProvider.set(this._languageFeaturesService.typeDefinitionProvider.has(e)),this._hasHoverProvider.set(this._languageFeaturesService.hoverProvider.has(e)),this._hasDocumentHighlightProvider.set(this._languageFeaturesService.documentHighlightProvider.has(e)),this._hasDocumentSymbolProvider.set(this._languageFeaturesService.documentSymbolProvider.has(e)),this._hasReferenceProvider.set(this._languageFeaturesService.referenceProvider.has(e)),this._hasRenameProvider.set(this._languageFeaturesService.renameProvider.has(e)),this._hasSignatureHelpProvider.set(this._languageFeaturesService.signatureHelpProvider.has(e)),this._hasInlayHintsProvider.set(this._languageFeaturesService.inlayHintsProvider.has(e)),this._hasDocumentFormattingProvider.set(this._languageFeaturesService.documentFormattingEditProvider.has(e)||this._languageFeaturesService.documentRangeFormattingEditProvider.has(e)),this._hasDocumentSelectionFormattingProvider.set(this._languageFeaturesService.documentRangeFormattingEditProvider.has(e)),this._hasMultipleDocumentFormattingProvider.set(this._languageFeaturesService.documentFormattingEditProvider.all(e).length+this._languageFeaturesService.documentRangeFormattingEditProvider.all(e).length>1),this._hasMultipleDocumentSelectionFormattingProvider.set(this._languageFeaturesService.documentRangeFormattingEditProvider.all(e).length>1),this._isInWalkThrough.set(e.uri.scheme===Ce.walkThroughSnippet)})}}class o9 extends W{constructor(e){super(),this._onChange=this._register(new M),this.onChange=this._onChange.event,this._hasFocus=!1,this._domFocusTracker=this._register(Ga(e)),this._register(this._domFocusTracker.onDidFocus(()=>{this._hasFocus=!0,this._onChange.fire(void 0)})),this._register(this._domFocusTracker.onDidBlur(()=>{this._hasFocus=!1,this._onChange.fire(void 0)}))}hasFocus(){return this._hasFocus}}const r9=encodeURIComponent("");function ym(s){return r9+encodeURIComponent(s.toString())+a9}const l9=encodeURIComponent('');function h9(s){return l9+encodeURIComponent(s.toString())+c9}ni((s,e)=>{const t=s.getColor(bT);t&&e.addRule(`.monaco-editor .squiggly-error { border-bottom: 4px double ${t}; }`);const i=s.getColor(cr);i&&e.addRule(`.monaco-editor .squiggly-error { background: url("data:image/svg+xml,${ym(i)}") repeat-x bottom left; }`);const n=s.getColor(_T);n&&e.addRule(`.monaco-editor .squiggly-error::before { display: block; content: ''; width: 100%; height: 100%; background: ${n}; }`);const o=s.getColor(R0);o&&e.addRule(`.monaco-editor .squiggly-warning { border-bottom: 4px double ${o}; }`);const r=s.getColor(yn);r&&e.addRule(`.monaco-editor .squiggly-warning { background: url("data:image/svg+xml,${ym(r)}") repeat-x bottom left; }`);const a=s.getColor(CT);a&&e.addRule(`.monaco-editor .squiggly-warning::before { display: block; content: ''; width: 100%; height: 100%; background: ${a}; }`);const l=s.getColor(UL);l&&e.addRule(`.monaco-editor .squiggly-info { border-bottom: 4px double ${l}; }`);const c=s.getColor(As);c&&e.addRule(`.monaco-editor .squiggly-info { background: url("data:image/svg+xml,${ym(c)}") repeat-x bottom left; }`);const h=s.getColor(wT);h&&e.addRule(`.monaco-editor .squiggly-info::before { display: block; content: ''; width: 100%; height: 100%; background: ${h}; }`);const d=s.getColor(ST);d&&e.addRule(`.monaco-editor .squiggly-hint { border-bottom: 2px dotted ${d}; }`);const u=s.getColor(vT);u&&e.addRule(`.monaco-editor .squiggly-hint { background: url("data:image/svg+xml,${h9(u)}") no-repeat bottom left; }`);const f=s.getColor(dM);f&&e.addRule(`.monaco-editor.showUnused .squiggly-inline-unnecessary { opacity: ${f.rgba.a}; }`);const m=s.getColor(hM);m&&e.addRule(`.monaco-editor.showUnused .squiggly-unnecessary { border-bottom: 2px dashed ${m}; }`);const _=s.getColor(xh)||"inherit";e.addRule(`.monaco-editor.showDeprecated .squiggly-inline-deprecated { text-decoration: line-through; text-decoration-color: ${_}}`)});class Te{constructor(e,t,i){const n=o=>this.emitter.fire(o);this.emitter=new M({onFirstListenerAdd:()=>e.addEventListener(t,n,i),onLastListenerRemove:()=>e.removeEventListener(t,n,i)})}get event(){return this.emitter.event}dispose(){this.emitter.dispose()}}function rv(s){return s.preventDefault(),s.stopPropagation(),s}var xl=globalThis&&globalThis.__decorate||function(s,e,t,i){var n=arguments.length,o=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o};let d9=!1;var av;(function(s){s.North="north",s.South="south",s.East="east",s.West="west"})(av||(av={}));let u9=4;const f9=new M;let g9=300;const m9=new M;class sb{constructor(){this.disposables=new se}get onPointerMove(){return this.disposables.add(new Te(window,"mousemove")).event}get onPointerUp(){return this.disposables.add(new Te(window,"mouseup")).event}dispose(){this.disposables.dispose()}}xl([rt],sb.prototype,"onPointerMove",null);xl([rt],sb.prototype,"onPointerUp",null);class ob{constructor(e){this.el=e,this.disposables=new se}get onPointerMove(){return this.disposables.add(new Te(this.el,Ae.Change)).event}get onPointerUp(){return this.disposables.add(new Te(this.el,Ae.End)).event}dispose(){this.disposables.dispose()}}xl([rt],ob.prototype,"onPointerMove",null);xl([rt],ob.prototype,"onPointerUp",null);class Zu{constructor(e){this.factory=e}get onPointerMove(){return this.factory.onPointerMove}get onPointerUp(){return this.factory.onPointerUp}dispose(){}}xl([rt],Zu.prototype,"onPointerMove",null);xl([rt],Zu.prototype,"onPointerUp",null);const lv="pointer-events-disabled";class gi extends W{constructor(e,t,i){super(),this.hoverDelay=g9,this.hoverDelayer=this._register(new bl(this.hoverDelay)),this._state=3,this.onDidEnablementChange=this._register(new M),this._onDidStart=this._register(new M),this._onDidChange=this._register(new M),this._onDidReset=this._register(new M),this._onDidEnd=this._register(new M),this.orthogonalStartSashDisposables=this._register(new se),this.orthogonalStartDragHandleDisposables=this._register(new se),this.orthogonalEndSashDisposables=this._register(new se),this.orthogonalEndDragHandleDisposables=this._register(new se),this.onDidStart=this._onDidStart.event,this.onDidChange=this._onDidChange.event,this.onDidReset=this._onDidReset.event,this.onDidEnd=this._onDidEnd.event,this.linkedSash=void 0,this.el=U(e,J(".monaco-sash")),i.orthogonalEdge&&this.el.classList.add(`orthogonal-edge-${i.orthogonalEdge}`),me&&this.el.classList.add("mac");const n=this._register(new Te(this.el,"mousedown")).event;this._register(n(d=>this.onPointerStart(d,new sb),this));const o=this._register(new Te(this.el,"dblclick")).event;this._register(o(this.onPointerDoublePress,this));const r=this._register(new Te(this.el,"mouseenter")).event;this._register(r(()=>gi.onMouseEnter(this)));const a=this._register(new Te(this.el,"mouseleave")).event;this._register(a(()=>gi.onMouseLeave(this))),this._register(Se.addTarget(this.el));const l=K.map(this._register(new Te(this.el,Ae.Start)).event,d=>{var u;return Object.assign(Object.assign({},d),{target:(u=d.initialTarget)!==null&&u!==void 0?u:null})});this._register(l(d=>this.onPointerStart(d,new ob(this.el)),this));const c=this._register(new Te(this.el,Ae.Tap)).event,h=K.map(K.filter(K.debounce(c,(d,u)=>{var f;return{event:u,count:((f=d==null?void 0:d.count)!==null&&f!==void 0?f:0)+1}},250),({count:d})=>d===2),({event:d})=>{var u;return Object.assign(Object.assign({},d),{target:(u=d.initialTarget)!==null&&u!==void 0?u:null})});this._register(h(this.onPointerDoublePress,this)),typeof i.size=="number"?(this.size=i.size,i.orientation===0?this.el.style.width=`${this.size}px`:this.el.style.height=`${this.size}px`):(this.size=u9,this._register(f9.event(d=>{this.size=d,this.layout()}))),this._register(m9.event(d=>this.hoverDelay=d)),this.layoutProvider=t,this.orthogonalStartSash=i.orthogonalStartSash,this.orthogonalEndSash=i.orthogonalEndSash,this.orientation=i.orientation||0,this.orientation===1?(this.el.classList.add("horizontal"),this.el.classList.remove("vertical")):(this.el.classList.remove("horizontal"),this.el.classList.add("vertical")),this.el.classList.toggle("debug",d9),this.layout()}get state(){return this._state}get orthogonalStartSash(){return this._orthogonalStartSash}get orthogonalEndSash(){return this._orthogonalEndSash}set state(e){this._state!==e&&(this.el.classList.toggle("disabled",e===0),this.el.classList.toggle("minimum",e===1),this.el.classList.toggle("maximum",e===2),this._state=e,this.onDidEnablementChange.fire(e))}set orthogonalStartSash(e){if(this.orthogonalStartDragHandleDisposables.clear(),this.orthogonalStartSashDisposables.clear(),e){const t=i=>{this.orthogonalStartDragHandleDisposables.clear(),i!==0&&(this._orthogonalStartDragHandle=U(this.el,J(".orthogonal-drag-handle.start")),this.orthogonalStartDragHandleDisposables.add(Pe(()=>this._orthogonalStartDragHandle.remove())),this.orthogonalStartDragHandleDisposables.add(new Te(this._orthogonalStartDragHandle,"mouseenter")).event(()=>gi.onMouseEnter(e),void 0,this.orthogonalStartDragHandleDisposables),this.orthogonalStartDragHandleDisposables.add(new Te(this._orthogonalStartDragHandle,"mouseleave")).event(()=>gi.onMouseLeave(e),void 0,this.orthogonalStartDragHandleDisposables))};this.orthogonalStartSashDisposables.add(e.onDidEnablementChange.event(t,this)),t(e.state)}this._orthogonalStartSash=e}set orthogonalEndSash(e){if(this.orthogonalEndDragHandleDisposables.clear(),this.orthogonalEndSashDisposables.clear(),e){const t=i=>{this.orthogonalEndDragHandleDisposables.clear(),i!==0&&(this._orthogonalEndDragHandle=U(this.el,J(".orthogonal-drag-handle.end")),this.orthogonalEndDragHandleDisposables.add(Pe(()=>this._orthogonalEndDragHandle.remove())),this.orthogonalEndDragHandleDisposables.add(new Te(this._orthogonalEndDragHandle,"mouseenter")).event(()=>gi.onMouseEnter(e),void 0,this.orthogonalEndDragHandleDisposables),this.orthogonalEndDragHandleDisposables.add(new Te(this._orthogonalEndDragHandle,"mouseleave")).event(()=>gi.onMouseLeave(e),void 0,this.orthogonalEndDragHandleDisposables))};this.orthogonalEndSashDisposables.add(e.onDidEnablementChange.event(t,this)),t(e.state)}this._orthogonalEndSash=e}onPointerStart(e,t){Ie.stop(e);let i=!1;if(!e.__orthogonalSashEvent){const m=this.getOrthogonalSash(e);m&&(i=!0,e.__orthogonalSashEvent=!0,m.onPointerStart(e,new Zu(t)))}if(this.linkedSash&&!e.__linkedSashEvent&&(e.__linkedSashEvent=!0,this.linkedSash.onPointerStart(e,new Zu(t))),!this.state)return;const n=T4("iframe");for(const m of n)m.classList.add(lv);const o=e.pageX,r=e.pageY,a=e.altKey,l={startX:o,currentX:o,startY:r,currentY:r,altKey:a};this.el.classList.add("active"),this._onDidStart.fire(l);const c=xn(this.el),h=()=>{let m="";i?m="all-scroll":this.orientation===1?this.state===1?m="s-resize":this.state===2?m="n-resize":m=me?"row-resize":"ns-resize":this.state===1?m="e-resize":this.state===2?m="w-resize":m=me?"col-resize":"ew-resize",c.textContent=`* { cursor: ${m} !important; }`},d=new se;h(),i||this.onDidEnablementChange.event(h,null,d);const u=m=>{Ie.stop(m,!1);const _={startX:o,currentX:m.pageX,startY:r,currentY:m.pageY,altKey:a};this._onDidChange.fire(_)},f=m=>{Ie.stop(m,!1),this.el.removeChild(c),this.el.classList.remove("active"),this._onDidEnd.fire(),d.dispose();for(const _ of n)_.classList.remove(lv)};t.onPointerMove(u,null,d),t.onPointerUp(f,null,d),d.add(t)}onPointerDoublePress(e){const t=this.getOrthogonalSash(e);t&&t._onDidReset.fire(),this.linkedSash&&this.linkedSash._onDidReset.fire(),this._onDidReset.fire()}static onMouseEnter(e,t=!1){e.el.classList.contains("active")?(e.hoverDelayer.cancel(),e.el.classList.add("hover")):e.hoverDelayer.trigger(()=>e.el.classList.add("hover"),e.hoverDelay).then(void 0,()=>{}),!t&&e.linkedSash&&gi.onMouseEnter(e.linkedSash,!0)}static onMouseLeave(e,t=!1){e.hoverDelayer.cancel(),e.el.classList.remove("hover"),!t&&e.linkedSash&&gi.onMouseLeave(e.linkedSash,!0)}clearSashHoverState(){gi.onMouseLeave(this)}layout(){if(this.orientation===0){const e=this.layoutProvider;this.el.style.left=e.getVerticalSashLeft(this)-this.size/2+"px",e.getVerticalSashTop&&(this.el.style.top=e.getVerticalSashTop(this)+"px"),e.getVerticalSashHeight&&(this.el.style.height=e.getVerticalSashHeight(this)+"px")}else{const e=this.layoutProvider;this.el.style.top=e.getHorizontalSashTop(this)-this.size/2+"px",e.getHorizontalSashLeft&&(this.el.style.left=e.getHorizontalSashLeft(this)+"px"),e.getHorizontalSashWidth&&(this.el.style.width=e.getHorizontalSashWidth(this)+"px")}}getOrthogonalSash(e){if(!(!e.target||!(e.target instanceof HTMLElement))&&e.target.classList.contains("orthogonal-drag-handle"))return e.target.classList.contains("start")?this.orthogonalStartSash:this.orthogonalEndSash}dispose(){super.dispose(),this.el.remove()}}class rb{constructor(e,t,i){this._visiblePosition=e,this._visiblePositionScrollDelta=t,this._cursorPosition=i}static capture(e){let t=null,i=0;if(e.getScrollTop()!==0){const n=e.getVisibleRanges();if(n.length>0){t=n[0].getStartPosition();const o=e.getTopForPosition(t.lineNumber,t.column);i=e.getScrollTop()-o}}return new rb(t,i,e.getPosition())}restore(e){if(this._visiblePosition){const t=e.getTopForPosition(this._visiblePosition.lineNumber,this._visiblePosition.column);e.setScrollTop(t+this._visiblePositionScrollDelta)}}restoreRelativeVerticalPositionOfCursor(e){const t=e.getPosition();if(!this._cursorPosition||!t)return;const i=e.getTopForLineNumber(t.lineNumber)-e.getTopForLineNumber(this._cursorPosition.lineNumber);e.setScrollTop(e.getScrollTop()+i)}}const Wk={RESOURCES:"ResourceURLs",DOWNLOAD_URL:"DownloadURL",FILES:"Files",TEXT:bn.text,TERMINALS:"Terminals"};class p9{constructor(e){this.data=e}update(){}getData(){return this.data}}const Cs={CurrentDragAndDropData:void 0};class Qs extends W{constructor(e,t,i={}){super(),this.options=i,this._context=e||this,this._action=t,t instanceof qn&&this._register(t.onDidChange(n=>{!this.element||this.handleActionChangeEvent(n)}))}handleActionChangeEvent(e){e.enabled!==void 0&&this.updateEnabled(),e.checked!==void 0&&this.updateChecked(),e.class!==void 0&&this.updateClass(),e.label!==void 0&&(this.updateLabel(),this.updateTooltip()),e.tooltip!==void 0&&this.updateTooltip()}get actionRunner(){return this._actionRunner||(this._actionRunner=this._register(new x0)),this._actionRunner}set actionRunner(e){this._actionRunner=e}getAction(){return this._action}isEnabled(){return this._action.enabled}setActionContext(e){this._context=e}render(e){const t=this.element=e;this._register(Se.addTarget(e));const i=this.options&&this.options.draggable;i&&(e.draggable=!0,Oi&&this._register(V(e,Y.DRAG_START,n=>{var o;return(o=n.dataTransfer)===null||o===void 0?void 0:o.setData(Wk.TEXT,this._action.label)}))),this._register(V(t,Ae.Tap,n=>this.onClick(n,!0))),this._register(V(t,Y.MOUSE_DOWN,n=>{i||Ie.stop(n,!0),this._action.enabled&&n.button===0&&t.classList.add("active")})),me&&this._register(V(t,Y.CONTEXT_MENU,n=>{n.button===0&&n.ctrlKey===!0&&this.onClick(n)})),this._register(V(t,Y.CLICK,n=>{Ie.stop(n,!0),this.options&&this.options.isMenu||this.onClick(n)})),this._register(V(t,Y.DBLCLICK,n=>{Ie.stop(n,!0)})),[Y.MOUSE_UP,Y.MOUSE_OUT].forEach(n=>{this._register(V(t,n,o=>{Ie.stop(o),t.classList.remove("active")}))})}onClick(e,t=!1){var i;Ie.stop(e,!0);const n=Gi(this._context)?!((i=this.options)===null||i===void 0)&&i.useEventAsContext?e:{preserveFocus:t}:this._context;this.actionRunner.run(this._action,n)}focus(){this.element&&(this.element.tabIndex=0,this.element.focus(),this.element.classList.add("focused"))}blur(){this.element&&(this.element.blur(),this.element.tabIndex=-1,this.element.classList.remove("focused"))}setFocusable(e){this.element&&(this.element.tabIndex=e?0:-1)}get trapsArrowNavigation(){return!1}updateEnabled(){}updateLabel(){}updateTooltip(){}updateClass(){}updateChecked(){}dispose(){this.element&&(this.element.remove(),this.element=void 0),super.dispose()}}class Hk extends Qs{constructor(e,t,i={}){super(e,t,i),this.options=i,this.options.icon=i.icon!==void 0?i.icon:!1,this.options.label=i.label!==void 0?i.label:!0,this.cssClass=""}render(e){super.render(e),this.element&&(this.label=U(this.element,J("a.action-label"))),this.label&&(this._action.id===Or.ID?this.label.setAttribute("role","presentation"):this.options.isMenu?this.label.setAttribute("role","menuitem"):this.label.setAttribute("role","button")),this.options.label&&this.options.keybinding&&this.element&&(U(this.element,J("span.keybinding")).textContent=this.options.keybinding),this.updateClass(),this.updateLabel(),this.updateTooltip(),this.updateEnabled(),this.updateChecked()}focus(){this.label&&(this.label.tabIndex=0,this.label.focus())}blur(){this.label&&(this.label.tabIndex=-1)}setFocusable(e){this.label&&(this.label.tabIndex=e?0:-1)}updateLabel(){this.options.label&&this.label&&(this.label.textContent=this.getAction().label)}updateTooltip(){let e=null;this.getAction().tooltip?e=this.getAction().tooltip:!this.options.label&&this.getAction().label&&this.options.icon&&(e=this.getAction().label,this.options.keybinding&&(e=p({key:"titleLabel",comment:["action title","action keybinding"]},"{0} ({1})",e,this.options.keybinding))),e&&this.label&&(this.label.title=e)}updateClass(){this.cssClass&&this.label&&this.label.classList.remove(...this.cssClass.split(" ")),this.options.icon?(this.cssClass=this.getAction().class,this.label&&(this.label.classList.add("codicon"),this.cssClass&&this.label.classList.add(...this.cssClass.split(" "))),this.updateEnabled()):this.label&&this.label.classList.remove("codicon")}updateEnabled(){this.getAction().enabled?(this.label&&(this.label.removeAttribute("aria-disabled"),this.label.classList.remove("disabled")),this.element&&this.element.classList.remove("disabled")):(this.label&&(this.label.setAttribute("aria-disabled","true"),this.label.classList.add("disabled")),this.element&&this.element.classList.add("disabled"))}updateChecked(){this.label&&(this.getAction().checked?this.label.classList.add("checked"):this.label.classList.remove("checked"))}}var _9=globalThis&&globalThis.__awaiter||function(s,e,t,i){function n(o){return o instanceof t?o:new t(function(r){r(o)})}return new(t||(t=Promise))(function(o,r){function a(h){try{c(i.next(h))}catch(d){r(d)}}function l(h){try{c(i.throw(h))}catch(d){r(d)}}function c(h){h.done?o(h.value):n(h.value).then(a,l)}c((i=i.apply(s,e||[])).next())})};class ol extends W{constructor(e,t={}){var i,n,o,r,a,l;super(),this.triggerKeyDown=!1,this.focusable=!0,this._onDidBlur=this._register(new M),this.onDidBlur=this._onDidBlur.event,this._onDidCancel=this._register(new M({onFirstListenerAdd:()=>this.cancelHasListener=!0})),this.onDidCancel=this._onDidCancel.event,this.cancelHasListener=!1,this._onDidRun=this._register(new M),this.onDidRun=this._onDidRun.event,this._onBeforeRun=this._register(new M),this.onBeforeRun=this._onBeforeRun.event,this.options=t,this._context=(i=t.context)!==null&&i!==void 0?i:null,this._orientation=(n=this.options.orientation)!==null&&n!==void 0?n:0,this._triggerKeys={keyDown:(r=(o=this.options.triggerKeys)===null||o===void 0?void 0:o.keyDown)!==null&&r!==void 0?r:!1,keys:(l=(a=this.options.triggerKeys)===null||a===void 0?void 0:a.keys)!==null&&l!==void 0?l:[3,10]},this.options.actionRunner?this._actionRunner=this.options.actionRunner:(this._actionRunner=new x0,this._register(this._actionRunner)),this._register(this._actionRunner.onDidRun(d=>this._onDidRun.fire(d))),this._register(this._actionRunner.onBeforeRun(d=>this._onBeforeRun.fire(d))),this._actionIds=[],this.viewItems=[],this.focusedItem=void 0,this.domNode=document.createElement("div"),this.domNode.className="monaco-action-bar",t.animated!==!1&&this.domNode.classList.add("animated");let c,h;switch(this._orientation){case 0:c=[15],h=[17];break;case 1:c=[16],h=[18],this.domNode.className+=" vertical";break}this._register(V(this.domNode,Y.KEY_DOWN,d=>{const u=new He(d);let f=!0;const m=typeof this.focusedItem=="number"?this.viewItems[this.focusedItem]:void 0;c&&(u.equals(c[0])||u.equals(c[1]))?f=this.focusPrevious():h&&(u.equals(h[0])||u.equals(h[1]))?f=this.focusNext():u.equals(9)&&this.cancelHasListener?this._onDidCancel.fire():u.equals(14)?f=this.focusFirst():u.equals(13)?f=this.focusLast():u.equals(2)&&m instanceof Qs&&m.trapsArrowNavigation?f=this.focusNext():this.isTriggerKeyEvent(u)?this._triggerKeys.keyDown?this.doTrigger(u):this.triggerKeyDown=!0:f=!1,f&&(u.preventDefault(),u.stopPropagation())})),this._register(V(this.domNode,Y.KEY_UP,d=>{const u=new He(d);this.isTriggerKeyEvent(u)?(!this._triggerKeys.keyDown&&this.triggerKeyDown&&(this.triggerKeyDown=!1,this.doTrigger(u)),u.preventDefault(),u.stopPropagation()):(u.equals(2)||u.equals(1026))&&this.updateFocusedItem()})),this.focusTracker=this._register(Ga(this.domNode)),this._register(this.focusTracker.onDidBlur(()=>{(ka()===this.domNode||!Rs(ka(),this.domNode))&&(this._onDidBlur.fire(),this.focusedItem=void 0,this.previouslyFocusedItem=void 0,this.triggerKeyDown=!1)})),this._register(this.focusTracker.onDidFocus(()=>this.updateFocusedItem())),this.actionsList=document.createElement("ul"),this.actionsList.className="actions-container",this.actionsList.setAttribute("role","toolbar"),this.options.ariaLabel&&this.actionsList.setAttribute("aria-label",this.options.ariaLabel),this.domNode.appendChild(this.actionsList),e.appendChild(this.domNode)}refreshRole(){this.length()>=2?this.actionsList.setAttribute("role","toolbar"):this.actionsList.setAttribute("role","presentation")}setFocusable(e){if(this.focusable=e,this.focusable){const t=this.viewItems.find(i=>i instanceof Qs&&i.isEnabled());t instanceof Qs&&t.setFocusable(!0)}else this.viewItems.forEach(t=>{t instanceof Qs&&t.setFocusable(!1)})}isTriggerKeyEvent(e){let t=!1;return this._triggerKeys.keys.forEach(i=>{t=t||e.equals(i)}),t}updateFocusedItem(){for(let e=0;et.setActionContext(e))}get actionRunner(){return this._actionRunner}set actionRunner(e){e&&(this._actionRunner=e,this.viewItems.forEach(t=>t.actionRunner=e))}getContainer(){return this.domNode}push(e,t={}){const i=Array.isArray(e)?e:[e];let n=mh(t.index)?t.index:null;i.forEach(o=>{const r=document.createElement("li");r.className="action-item",r.setAttribute("role","presentation"),this.options.allowContextMenu||this._register(V(r,Y.CONTEXT_MENU,l=>{Ie.stop(l,!0)}));let a;this.options.actionViewItemProvider&&(a=this.options.actionViewItemProvider(o)),a||(a=new Hk(this.context,o,t)),a.actionRunner=this._actionRunner,a.setActionContext(this.context),a.render(r),this.focusable&&a instanceof Qs&&this.viewItems.length===0&&a.setFocusable(!0),n===null||n<0||n>=this.actionsList.children.length?(this.actionsList.appendChild(r),this.viewItems.push(a),this._actionIds.push(o.id)):(this.actionsList.insertBefore(r,this.actionsList.children[n]),this.viewItems.splice(n,0,a),this._actionIds.splice(n,0,o.id),n++)}),typeof this.focusedItem=="number"&&this.focus(this.focusedItem),this.refreshRole()}clear(){Me(this.viewItems),this.viewItems=[],this._actionIds=[],Pi(this.actionsList),this.refreshRole()}length(){return this.viewItems.length}focus(e){let t=!1,i;if(e===void 0?t=!0:typeof e=="number"?i=e:typeof e=="boolean"&&(t=e),t&&typeof this.focusedItem=="undefined"){const n=this.viewItems.findIndex(o=>o.isEnabled());this.focusedItem=n===-1?void 0:n,this.updateFocus(void 0,void 0,!0)}else i!==void 0&&(this.focusedItem=i),this.updateFocus(void 0,void 0,!0)}focusFirst(){return this.focusedItem=this.length()-1,this.focusNext(!0)}focusLast(){return this.focusedItem=0,this.focusPrevious(!0)}focusNext(e){if(typeof this.focusedItem=="undefined")this.focusedItem=this.viewItems.length-1;else if(this.viewItems.length<=1)return!1;const t=this.focusedItem;let i;do{if(!e&&this.options.preventLoopNavigation&&this.focusedItem+1>=this.viewItems.length)return this.focusedItem=t,!1;this.focusedItem=(this.focusedItem+1)%this.viewItems.length,i=this.viewItems[this.focusedItem]}while(this.focusedItem!==t&&this.options.focusOnlyEnabledItems&&!i.isEnabled());return this.updateFocus(),!0}focusPrevious(e){if(typeof this.focusedItem=="undefined")this.focusedItem=0;else if(this.viewItems.length<=1)return!1;const t=this.focusedItem;let i;do{if(this.focusedItem=this.focusedItem-1,this.focusedItem<0){if(!e&&this.options.preventLoopNavigation)return this.focusedItem=t,!1;this.focusedItem=this.viewItems.length-1}i=this.viewItems[this.focusedItem]}while(this.focusedItem!==t&&this.options.focusOnlyEnabledItems&&!i.isEnabled());return this.updateFocus(!0),!0}updateFocus(e,t,i=!1){var n;typeof this.focusedItem=="undefined"&&this.actionsList.focus({preventScroll:t}),this.previouslyFocusedItem!==void 0&&this.previouslyFocusedItem!==this.focusedItem&&((n=this.viewItems[this.previouslyFocusedItem])===null||n===void 0||n.blur());const o=this.focusedItem!==void 0&&this.viewItems[this.focusedItem];if(o){let r=!0;nu(o.focus)||(r=!1),this.options.focusOnlyEnabledItems&&nu(o.isEnabled)&&!o.isEnabled()&&(r=!1),r?(i||this.previouslyFocusedItem!==this.focusedItem)&&(o.focus(e),this.previouslyFocusedItem=this.focusedItem):(this.actionsList.focus({preventScroll:t}),this.previouslyFocusedItem=void 0)}}doTrigger(e){if(typeof this.focusedItem=="undefined")return;const t=this.viewItems[this.focusedItem];if(t instanceof Qs){const i=t._context===null||t._context===void 0?e:t._context;this.run(t._action,i)}}run(e,t){return _9(this,void 0,void 0,function*(){yield this._actionRunner.run(e,t)})}dispose(){Me(this.viewItems),this.viewItems=[],this._actionIds=[],this.getContainer().remove(),super.dispose()}}const b9={IconContribution:"base.contributions.icons"};var cv;(function(s){function e(t,i){let n=t.defaults;for(;St.isThemeIcon(n);){const o=Wr.getIcon(n.id);if(!o)return;n=o.defaults}return n}s.getDefinition=e})(cv||(cv={}));class C9{constructor(){this._onDidChange=new M,this.onDidChange=this._onDidChange.event,this.iconSchema={definitions:{icons:{type:"object",properties:{fontId:{type:"string",description:p("iconDefinition.fontId","The id of the font to use. If not set, the font that is defined first is used.")},fontCharacter:{type:"string",description:p("iconDefinition.fontCharacter","The font character associated with the icon definition.")}},additionalProperties:!1,defaultSnippets:[{body:{fontCharacter:"\\\\e030"}}]}},type:"object",properties:{}},this.iconReferenceSchema={type:"string",pattern:`^${ei.iconNameExpression}$`,enum:[],enumDescriptions:[]},this.iconsById={},this.iconFontsById={}}registerIcon(e,t,i,n){const o=this.iconsById[e];if(o){if(i&&!o.description){o.description=i,this.iconSchema.properties[e].markdownDescription=`${i} $(${e})`;const l=this.iconReferenceSchema.enum.indexOf(e);l!==-1&&(this.iconReferenceSchema.enumDescriptions[l]=i),this._onDidChange.fire()}return o}let r={id:e,description:i,defaults:t,deprecationMessage:n};this.iconsById[e]=r;let a={$ref:"#/definitions/icons"};return n&&(a.deprecationMessage=n),i&&(a.markdownDescription=`${i}: $(${e})`),this.iconSchema.properties[e]=a,this.iconReferenceSchema.enum.push(e),this.iconReferenceSchema.enumDescriptions.push(i||""),this._onDidChange.fire(),{id:e}}getIcons(){return Object.keys(this.iconsById).map(e=>this.iconsById[e])}getIcon(e){return this.iconsById[e]}getIconSchema(){return this.iconSchema}toString(){const e=(o,r)=>o.id.localeCompare(r.id),t=o=>{for(;St.isThemeIcon(o.defaults);)o=this.iconsById[o.defaults.id];return`codicon codicon-${o?o.id:""}`};let i=[];i.push("| preview | identifier | default codicon ID | description"),i.push("| ----------- | --------------------------------- | --------------------------------- | --------------------------------- |");const n=Object.keys(this.iconsById).map(o=>this.iconsById[o]);for(const o of n.filter(r=>!!r.description).sort(e))i.push(`||${o.id}|${St.isThemeIcon(o.defaults)?o.defaults.id:o.id}|${o.description||""}|`);i.push("| preview | identifier "),i.push("| ----------- | --------------------------------- |");for(const o of n.filter(r=>!St.isThemeIcon(r.defaults)).sort(e))i.push(`||${o.id}|`);return i.join(` +`)}}const Wr=new C9;xt.add(b9.IconContribution,Wr);function hi(s,e,t,i){return Wr.registerIcon(s,e,t,i)}function zk(){return Wr}function w9(){for(const s of g.getAll())Wr.registerIcon(s.id,s.definition,s.description)}w9();const Uk="vscode://schemas/icons";let $k=xt.as(Hf.JSONContribution);$k.registerSchema(Uk,Wr.getIconSchema());const hv=new Tt(()=>$k.notifySchemaChanged(Uk),200);Wr.onDidChange(()=>{hv.isScheduled()||hv.schedule()});const v9=hi("widget-close",g.close,p("widgetClose","Icon for the close action in widgets."));hi("goto-previous-location",g.arrowUp,p("previousChangeIcon","Icon for goto previous editor location."));hi("goto-next-location",g.arrowDown,p("nextChangeIcon","Icon for goto next editor location."));St.modify(g.sync,"spin");St.modify(g.loading,"spin");var S9=globalThis&&globalThis.__decorate||function(s,e,t,i){var n=arguments.length,o=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},y9=globalThis&&globalThis.__param||function(s,e){return function(t,i){e(t,i,s)}},L9=globalThis&&globalThis.__awaiter||function(s,e,t,i){function n(o){return o instanceof t?o:new t(function(r){r(o)})}return new(t||(t=Promise))(function(o,r){function a(h){try{c(i.next(h))}catch(d){r(d)}}function l(h){try{c(i.throw(h))}catch(d){r(d)}}function c(h){h.done?o(h.value):n(h.value).then(a,l)}c((i=i.apply(s,e||[])).next())})},Lm;const ad=3;class Hl{constructor(e,t,i,n){this.originalLineStart=e,this.originalLineEnd=t,this.modifiedLineStart=i,this.modifiedLineEnd=n}getType(){return this.originalLineStart===0?1:this.modifiedLineStart===0?2:0}}class km{constructor(e){this.entries=e}}const k9=hi("diff-review-insert",g.add,p("diffReviewInsertIcon","Icon for 'Insert' in diff review.")),x9=hi("diff-review-remove",g.remove,p("diffReviewRemoveIcon","Icon for 'Remove' in diff review.")),I9=hi("diff-review-close",g.close,p("diffReviewCloseIcon","Icon for 'Close' in diff review."));let Yu=class Ho extends W{constructor(e,t){super(),this._languageService=t,this._width=0,this._diffEditor=e,this._isVisible=!1,this.shadow=ue(document.createElement("div")),this.shadow.setClassName("diff-review-shadow"),this.actionBarContainer=ue(document.createElement("div")),this.actionBarContainer.setClassName("diff-review-actions"),this._actionBar=this._register(new ol(this.actionBarContainer.domNode)),this._actionBar.push(new qn("diffreview.close",p("label.close","Close"),"close-diff-review "+St.asClassName(I9),!0,()=>L9(this,void 0,void 0,function*(){return this.hide()})),{label:!1,icon:!0}),this.domNode=ue(document.createElement("div")),this.domNode.setClassName("diff-review monaco-editor-background"),this._content=ue(document.createElement("div")),this._content.setClassName("diff-review-content"),this._content.setAttribute("role","code"),this.scrollbar=this._register(new _k(this._content.domNode,{})),this.domNode.domNode.appendChild(this.scrollbar.getDomNode()),this._register(e.onDidUpdateDiff(()=>{!this._isVisible||(this._diffs=this._compute(),this._render())})),this._register(e.getModifiedEditor().onDidChangeCursorPosition(()=>{!this._isVisible||this._render()})),this._register(wi(this.domNode.domNode,"click",i=>{i.preventDefault();const n=cL(i.target,"diff-review-row");n&&this._goToRow(n)})),this._register(wi(this.domNode.domNode,"keydown",i=>{(i.equals(18)||i.equals(2066)||i.equals(530))&&(i.preventDefault(),this._goToRow(this._getNextRow())),(i.equals(16)||i.equals(2064)||i.equals(528))&&(i.preventDefault(),this._goToRow(this._getPrevRow())),(i.equals(9)||i.equals(2057)||i.equals(521)||i.equals(1033))&&(i.preventDefault(),this.hide()),(i.equals(10)||i.equals(3))&&(i.preventDefault(),this.accept())})),this._diffs=[],this._currentDiff=null}prev(){let e=0;if(this._isVisible||(this._diffs=this._compute()),this._isVisible){let i=-1;for(let n=0,o=this._diffs.length;n0){const y=e[c-1];y.originalEndLineNumber===0?S=y.originalStartLineNumber+1:S=y.originalEndLineNumber+1,y.modifiedEndLineNumber===0?k=y.modifiedStartLineNumber+1:k=y.modifiedEndLineNumber+1}let x=C-ad+1,L=v-ad+1;if(xS){const y=S-x;x=x+y,L=L+y}if(L>k){const y=k-L;x=x+y,L=L+y}b[w++]=new Hl(C,x,v,L)}n[o++]=new km(b)}let r=n[0].entries;const a=[];let l=0;for(let c=1,h=n.length;cd)&&(d=T),P!==0&&(u===0||Pf)&&(f=F)}const m=document.createElement("div");m.className="diff-review-row";const _=document.createElement("div");_.className="diff-review-cell diff-review-summary";const b=d-h+1,w=f-u+1;_.appendChild(document.createTextNode(`${a+1}/${this._diffs.length}: @@ -${h},${b} +${u},${w} @@`)),m.setAttribute("data-line",String(u));const C=L=>L===0?p("no_lines_changed","no lines changed"):L===1?p("one_line_changed","1 line changed"):p("more_lines_changed","{0} lines changed",L),v=C(b),S=C(w);m.setAttribute("aria-label",p({key:"header",comment:["This is the ARIA label for a git diff header.","A git diff header looks like this: @@ -154,12 +159,39 @@.","That encodes that at original line 154 (which is now line 159), 12 lines were removed/changed with 39 lines.","Variables 0 and 1 refer to the diff index out of total number of diffs.","Variables 2 and 4 will be numbers (a line number).",'Variables 3 and 5 will be "no lines changed", "1 line changed" or "X lines changed", localized separately.']},"Difference {0} of {1}: original line {2}, {3}, modified line {4}, {5}",a+1,this._diffs.length,h,v,u,S)),m.appendChild(_),m.setAttribute("role","listitem"),c.appendChild(m);const k=t.get(59);let x=u;for(let L=0,y=l.length;Ls});Yu=S9([y9(1,Wt)],Yu);ni((s,e)=>{const t=s.getColor(ik);t&&e.addRule(`.monaco-diff-editor .diff-review-line-number { color: ${t}; }`);const i=s.getColor(vl);i&&e.addRule(`.monaco-diff-editor .diff-review-shadow { box-shadow: ${i} 0 -6px 6px -6px inset; }`)});class E9 extends Fs{constructor(){super({id:"editor.action.diffReview.next",label:p("editor.action.diffReview.next","Go to Next Difference"),alias:"Go to Next Difference",precondition:Oe.has("isInDiffEditor"),kbOpts:{kbExpr:null,primary:65,weight:100}})}run(e,t){const i=jk(e);i&&i.diffReviewNext()}}class D9 extends Fs{constructor(){super({id:"editor.action.diffReview.prev",label:p("editor.action.diffReview.prev","Go to Previous Difference"),alias:"Go to Previous Difference",precondition:Oe.has("isInDiffEditor"),kbOpts:{kbExpr:null,primary:1089,weight:100}})}run(e,t){const i=jk(e);i&&i.diffReviewPrev()}}function jk(s){const e=s.get(kt),t=e.listDiffEditors(),i=e.getActiveCodeEditor();if(!i)return null;for(let n=0,o=t.length;nn.modifiedStartLineNumber?p("diff.clipboard.copyDeletedLinesContent.label","Copy deleted lines"):p("diff.clipboard.copyDeletedLinesContent.single.label","Copy deleted line"):n.originalEndLineNumber>n.modifiedStartLineNumber?p("diff.clipboard.copyChangedLinesContent.label","Copy changed lines"):p("diff.clipboard.copyChangedLinesContent.single.label","Copy changed line"),void 0,!0,()=>xm(this,void 0,void 0,function*(){const _=new D(n.originalStartLineNumber,1,n.originalEndLineNumber+1,1),b=n.originalModel.getValueInRange(_);yield this._clipboardService.writeText(b)})));let d=0,u;n.originalEndLineNumber>n.modifiedStartLineNumber&&(u=new qn("diff.clipboard.copyDeletedLineContent",h?p("diff.clipboard.copyDeletedLineContent.label","Copy deleted line ({0})",n.originalStartLineNumber):p("diff.clipboard.copyChangedLineContent.label","Copy changed line ({0})",n.originalStartLineNumber),void 0,!0,()=>xm(this,void 0,void 0,function*(){const _=n.originalModel.getLineContent(n.originalStartLineNumber+d);if(_===""){const b=n.originalModel.getEndOfLineSequence();yield this._clipboardService.writeText(b===0?` +`:`\r +`)}else yield this._clipboardService.writeText(_)})),c.push(u)),i.getOption(81)||c.push(new qn("diff.inline.revertChange",p("diff.inline.revertChange.label","Revert this change"),void 0,!0,()=>xm(this,void 0,void 0,function*(){const _=new D(n.originalStartLineNumber,1,n.originalEndLineNumber,n.originalModel.getLineMaxColumn(n.originalEndLineNumber)),b=n.originalModel.getValueInRange(_);if(n.modifiedEndLineNumber===0){const w=i.getModel().getLineMaxColumn(n.modifiedStartLineNumber);i.executeEdits("diffEditor",[{range:new D(n.modifiedStartLineNumber,w,n.modifiedStartLineNumber,w),text:l+b}])}else{const w=i.getModel().getLineMaxColumn(n.modifiedEndLineNumber);i.executeEdits("diffEditor",[{range:new D(n.modifiedStartLineNumber,1,n.modifiedEndLineNumber,w),text:b}])}})));const m=(_,b)=>{this._contextMenuService.showContextMenu({getAnchor:()=>({x:_,y:b}),getActions:()=>(u&&(u.label=h?p("diff.clipboard.copyDeletedLineContent.label","Copy deleted line ({0})",n.originalStartLineNumber+d):p("diff.clipboard.copyChangedLineContent.label","Copy changed line ({0})",n.originalStartLineNumber+d)),c),autoSelectFirstItem:!0})};this._register(wi(this._diffActions,"mousedown",_=>{const{top:b,height:w}=en(this._diffActions),C=Math.floor(a/3);_.preventDefault(),m(_.posx,b+w+C)})),this._register(i.onMouseMove(_=>{_.target.type===8||_.target.type===5?_.target.detail.viewZoneId===this._viewZoneId?(this.visibility=!0,d=this._updateLightBulbPosition(this._marginDomNode,_.event.browserEvent.y,a)):this.visibility=!1:this.visibility=!1})),this._register(i.onMouseDown(_=>{!_.event.rightButton||(_.target.type===8||_.target.type===5)&&_.target.detail.viewZoneId===this._viewZoneId&&(_.event.preventDefault(),d=this._updateLightBulbPosition(this._marginDomNode,_.event.browserEvent.y,a),m(_.event.posx,_.event.posy+a))}))}get visibility(){return this._visibility}set visibility(e){this._visibility!==e&&(this._visibility=e,e?this._diffActions.style.visibility="visible":this._diffActions.style.visibility="hidden")}_updateLightBulbPosition(e,t,i){const{top:n}=en(e),o=t-n,r=Math.floor(o/i),a=r*i;if(this._diffActions.style.top=`${a}px`,this.diff.viewLineCounts){let l=0;for(let c=0;c=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},fs=globalThis&&globalThis.__param||function(s,e){return function(t,i){e(t,i,s)}},Im;class dv{constructor(e,t){this._contextMenuService=e,this._clipboardService=t,this._zones=[],this._inlineDiffMargins=[],this._zonesMap={},this._decorations=[]}getForeignViewZones(e){return e.filter(t=>!this._zonesMap[String(t.id)])}clean(e){this._zones.length>0&&e.changeViewZones(t=>{for(const i of this._zones)t.removeZone(i)}),this._zones=[],this._zonesMap={},this._decorations=e.deltaDecorations(this._decorations,[])}apply(e,t,i,n){const o=n?rb.capture(e):null;e.changeViewZones(r=>{var a;for(const l of this._zones)r.removeZone(l);for(const l of this._inlineDiffMargins)l.dispose();this._zones=[],this._zonesMap={},this._inlineDiffMargins=[];for(let l=0,c=i.zones.length;ls});let ko=class It extends W{constructor(e,t,i,n,o,r,a,l,c,h,d,u){super(),this._editorProgressService=u,this._onDidDispose=this._register(new M),this.onDidDispose=this._onDidDispose.event,this._onDidUpdateDiff=this._register(new M),this.onDidUpdateDiff=this._onDidUpdateDiff.event,this._onDidContentSizeChange=this._register(new M),this._lastOriginalWarning=null,this._lastModifiedWarning=null,this._editorWorkerService=o,this._codeEditorService=l,this._contextKeyService=this._register(r.createScoped(e)),this._instantiationService=a.createChild(new Zf([Ne,this._contextKeyService])),this._contextKeyService.createKey("isInDiffEditor",!0),this._themeService=c,this._notificationService=h,this._id=++R9,this._state=0,this._updatingDiffProgress=null,this._domElement=e,t=t||{},this._options=mv(t,{enableSplitViewResizing:!0,renderSideBySide:!0,maxComputationTime:5e3,maxFileSize:50,ignoreTrimWhitespace:!0,renderIndicators:!0,originalEditable:!1,diffCodeLens:!1,renderOverviewRuler:!0,diffWordWrap:"inherit"}),typeof t.isInEmbeddedEditor!="undefined"?this._contextKeyService.createKey("isInEmbeddedDiffEditor",t.isInEmbeddedEditor):this._contextKeyService.createKey("isInEmbeddedDiffEditor",!1),this._updateDecorationsRunner=this._register(new Tt(()=>this._updateDecorations(),0)),this._containerDomElement=document.createElement("div"),this._containerDomElement.className=It._getClassName(this._themeService.getColorTheme(),this._options.renderSideBySide),this._containerDomElement.style.position="relative",this._containerDomElement.style.height="100%",this._domElement.appendChild(this._containerDomElement),this._overviewViewportDomElement=ue(document.createElement("div")),this._overviewViewportDomElement.setClassName("diffViewport"),this._overviewViewportDomElement.setPosition("absolute"),this._overviewDomElement=document.createElement("div"),this._overviewDomElement.className="diffOverview",this._overviewDomElement.style.position="absolute",this._overviewDomElement.appendChild(this._overviewViewportDomElement.domNode),this._register(wi(this._overviewDomElement,"mousedown",m=>{this._modifiedEditor.delegateVerticalScrollbarMouseDown(m)})),this._options.renderOverviewRuler&&this._containerDomElement.appendChild(this._overviewDomElement),this._originalDomNode=document.createElement("div"),this._originalDomNode.className="editor original",this._originalDomNode.style.position="absolute",this._originalDomNode.style.height="100%",this._containerDomElement.appendChild(this._originalDomNode),this._modifiedDomNode=document.createElement("div"),this._modifiedDomNode.className="editor modified",this._modifiedDomNode.style.position="absolute",this._modifiedDomNode.style.height="100%",this._containerDomElement.appendChild(this._modifiedDomNode),this._beginUpdateDecorationsTimeout=-1,this._currentlyChangingViewZones=!1,this._diffComputationToken=0,this._originalEditorState=new dv(d,n),this._modifiedEditorState=new dv(d,n),this._isVisible=!0,this._isHandlingScrollEvent=!1,this._elementSizeObserver=this._register(new DL(this._containerDomElement,t.dimension)),this._register(this._elementSizeObserver.onDidChange(()=>this._onDidContainerSizeChanged())),t.automaticLayout&&this._elementSizeObserver.startObserving(),this._diffComputationResult=null,this._originalEditor=this._createLeftHandSideEditor(t,i.originalEditor||{}),this._modifiedEditor=this._createRightHandSideEditor(t,i.modifiedEditor||{}),this._originalOverviewRuler=null,this._modifiedOverviewRuler=null,this._reviewPane=a.createInstance(Yu,this),this._containerDomElement.appendChild(this._reviewPane.domNode.domNode),this._containerDomElement.appendChild(this._reviewPane.shadow.domNode),this._containerDomElement.appendChild(this._reviewPane.actionBarContainer.domNode),this._options.renderSideBySide?this._setStrategy(new Es(this._createDataSource(),this._options.enableSplitViewResizing)):this._setStrategy(new gv(this._createDataSource(),this._options.enableSplitViewResizing)),this._register(c.onDidColorThemeChange(m=>{this._strategy&&this._strategy.applyColors(m)&&this._updateDecorationsRunner.schedule(),this._containerDomElement.className=It._getClassName(this._themeService.getColorTheme(),this._options.renderSideBySide)}));const f=Ia.getDiffEditorContributions();for(const m of f)try{this._register(a.createInstance(m.ctor,this))}catch(_){Ze(_)}this._codeEditorService.addDiffEditor(this)}_setState(e){this._state!==e&&(this._state=e,this._updatingDiffProgress&&(this._updatingDiffProgress.done(),this._updatingDiffProgress=null),this._state===1&&(this._updatingDiffProgress=this._editorProgressService.show(!0,1e3)))}diffReviewNext(){this._reviewPane.next()}diffReviewPrev(){this._reviewPane.prev()}static _getClassName(e,t){let i="monaco-diff-editor monaco-editor-background ";return t&&(i+="side-by-side "),i+=Iu(e.type),i}_recreateOverviewRulers(){!this._options.renderOverviewRuler||(this._originalOverviewRuler&&(this._overviewDomElement.removeChild(this._originalOverviewRuler.getDomNode()),this._originalOverviewRuler.dispose()),this._originalEditor.hasModel()&&(this._originalOverviewRuler=this._originalEditor.createOverviewRuler("original diffOverviewRuler"),this._overviewDomElement.appendChild(this._originalOverviewRuler.getDomNode())),this._modifiedOverviewRuler&&(this._overviewDomElement.removeChild(this._modifiedOverviewRuler.getDomNode()),this._modifiedOverviewRuler.dispose()),this._modifiedEditor.hasModel()&&(this._modifiedOverviewRuler=this._modifiedEditor.createOverviewRuler("modified diffOverviewRuler"),this._overviewDomElement.appendChild(this._modifiedOverviewRuler.getDomNode())),this._layoutOverviewRulers())}_createLeftHandSideEditor(e,t){const i=this._createInnerEditor(this._instantiationService,this._originalDomNode,this._adjustOptionsForLeftHandSide(e),t);this._register(i.onDidScrollChange(o=>{this._isHandlingScrollEvent||!o.scrollTopChanged&&!o.scrollLeftChanged&&!o.scrollHeightChanged||(this._isHandlingScrollEvent=!0,this._modifiedEditor.setScrollPosition({scrollLeft:o.scrollLeft,scrollTop:o.scrollTop}),this._isHandlingScrollEvent=!1,this._layoutOverviewViewport())})),this._register(i.onDidChangeViewZones(()=>{this._onViewZonesChanged()})),this._register(i.onDidChangeConfiguration(o=>{!i.getModel()||(o.hasChanged(44)&&this._updateDecorationsRunner.schedule(),o.hasChanged(132)&&(this._updateDecorationsRunner.cancel(),this._updateDecorations()))})),this._register(i.onDidChangeHiddenAreas(()=>{this._updateDecorationsRunner.cancel(),this._updateDecorations()})),this._register(i.onDidChangeModelContent(()=>{this._isVisible&&this._beginUpdateDecorationsSoon()}));const n=this._contextKeyService.createKey("isInDiffLeftEditor",i.hasWidgetFocus());return this._register(i.onDidFocusEditorWidget(()=>n.set(!0))),this._register(i.onDidBlurEditorWidget(()=>n.set(!1))),this._register(i.onDidContentSizeChange(o=>{const r=this._originalEditor.getContentWidth()+this._modifiedEditor.getContentWidth()+It.ONE_OVERVIEW_WIDTH,a=Math.max(this._modifiedEditor.getContentHeight(),this._originalEditor.getContentHeight());this._onDidContentSizeChange.fire({contentHeight:a,contentWidth:r,contentHeightChanged:o.contentHeightChanged,contentWidthChanged:o.contentWidthChanged})})),i}_createRightHandSideEditor(e,t){const i=this._createInnerEditor(this._instantiationService,this._modifiedDomNode,this._adjustOptionsForRightHandSide(e),t);this._register(i.onDidScrollChange(o=>{this._isHandlingScrollEvent||!o.scrollTopChanged&&!o.scrollLeftChanged&&!o.scrollHeightChanged||(this._isHandlingScrollEvent=!0,this._originalEditor.setScrollPosition({scrollLeft:o.scrollLeft,scrollTop:o.scrollTop}),this._isHandlingScrollEvent=!1,this._layoutOverviewViewport())})),this._register(i.onDidChangeViewZones(()=>{this._onViewZonesChanged()})),this._register(i.onDidChangeConfiguration(o=>{!i.getModel()||(o.hasChanged(44)&&this._updateDecorationsRunner.schedule(),o.hasChanged(132)&&(this._updateDecorationsRunner.cancel(),this._updateDecorations()))})),this._register(i.onDidChangeHiddenAreas(()=>{this._updateDecorationsRunner.cancel(),this._updateDecorations()})),this._register(i.onDidChangeModelContent(()=>{this._isVisible&&this._beginUpdateDecorationsSoon()})),this._register(i.onDidChangeModelOptions(o=>{o.tabSize&&this._updateDecorationsRunner.schedule()}));const n=this._contextKeyService.createKey("isInDiffRightEditor",i.hasWidgetFocus());return this._register(i.onDidFocusEditorWidget(()=>n.set(!0))),this._register(i.onDidBlurEditorWidget(()=>n.set(!1))),this._register(i.onDidContentSizeChange(o=>{const r=this._originalEditor.getContentWidth()+this._modifiedEditor.getContentWidth()+It.ONE_OVERVIEW_WIDTH,a=Math.max(this._modifiedEditor.getContentHeight(),this._originalEditor.getContentHeight());this._onDidContentSizeChange.fire({contentHeight:a,contentWidth:r,contentHeightChanged:o.contentHeightChanged,contentWidthChanged:o.contentWidthChanged})})),i}_createInnerEditor(e,t,i,n){return e.createInstance(Gu,t,i,n)}dispose(){this._codeEditorService.removeDiffEditor(this),this._beginUpdateDecorationsTimeout!==-1&&(window.clearTimeout(this._beginUpdateDecorationsTimeout),this._beginUpdateDecorationsTimeout=-1),this._cleanViewZonesAndDecorations(),this._originalOverviewRuler&&(this._overviewDomElement.removeChild(this._originalOverviewRuler.getDomNode()),this._originalOverviewRuler.dispose()),this._modifiedOverviewRuler&&(this._overviewDomElement.removeChild(this._modifiedOverviewRuler.getDomNode()),this._modifiedOverviewRuler.dispose()),this._overviewDomElement.removeChild(this._overviewViewportDomElement.domNode),this._options.renderOverviewRuler&&this._containerDomElement.removeChild(this._overviewDomElement),this._containerDomElement.removeChild(this._originalDomNode),this._originalEditor.dispose(),this._containerDomElement.removeChild(this._modifiedDomNode),this._modifiedEditor.dispose(),this._strategy.dispose(),this._containerDomElement.removeChild(this._reviewPane.domNode.domNode),this._containerDomElement.removeChild(this._reviewPane.shadow.domNode),this._containerDomElement.removeChild(this._reviewPane.actionBarContainer.domNode),this._reviewPane.dispose(),this._domElement.removeChild(this._containerDomElement),this._onDidDispose.fire(),super.dispose()}getId(){return this.getEditorType()+":"+this._id}getEditorType(){return d0.IDiffEditor}getLineChanges(){return this._diffComputationResult?this._diffComputationResult.changes:null}getOriginalEditor(){return this._originalEditor}getModifiedEditor(){return this._modifiedEditor}updateOptions(e){const t=mv(e,this._options),i=B9(this._options,t);this._options=t;const n=i.ignoreTrimWhitespace||i.renderIndicators,o=this._isVisible&&(i.maxComputationTime||i.maxFileSize);n?this._beginUpdateDecorations():o&&this._beginUpdateDecorationsSoon(),this._modifiedEditor.updateOptions(this._adjustOptionsForRightHandSide(e)),this._originalEditor.updateOptions(this._adjustOptionsForLeftHandSide(e)),this._strategy.setEnableSplitViewResizing(this._options.enableSplitViewResizing),i.renderSideBySide&&(this._options.renderSideBySide?this._setStrategy(new Es(this._createDataSource(),this._options.enableSplitViewResizing)):this._setStrategy(new gv(this._createDataSource(),this._options.enableSplitViewResizing)),this._containerDomElement.className=It._getClassName(this._themeService.getColorTheme(),this._options.renderSideBySide)),i.renderOverviewRuler&&(this._options.renderOverviewRuler?this._containerDomElement.appendChild(this._overviewDomElement):this._containerDomElement.removeChild(this._overviewDomElement))}getModel(){return{original:this._originalEditor.getModel(),modified:this._modifiedEditor.getModel()}}setModel(e){if(e&&(!e.original||!e.modified))throw new Error(e.original?"DiffEditorWidget.setModel: Modified model is null":"DiffEditorWidget.setModel: Original model is null");this._cleanViewZonesAndDecorations(),this._originalEditor.setModel(e?e.original:null),this._modifiedEditor.setModel(e?e.modified:null),this._updateDecorationsRunner.cancel(),e&&(this._originalEditor.setScrollTop(0),this._modifiedEditor.setScrollTop(0)),this._diffComputationResult=null,this._diffComputationToken++,this._setState(0),e&&(this._recreateOverviewRulers(),this._beginUpdateDecorations()),this._layoutOverviewViewport()}getContainerDomNode(){return this._domElement}getVisibleColumnFromPosition(e){return this._modifiedEditor.getVisibleColumnFromPosition(e)}getPosition(){return this._modifiedEditor.getPosition()}setPosition(e,t="api"){this._modifiedEditor.setPosition(e,t)}revealLine(e,t=0){this._modifiedEditor.revealLine(e,t)}revealLineInCenter(e,t=0){this._modifiedEditor.revealLineInCenter(e,t)}revealLineInCenterIfOutsideViewport(e,t=0){this._modifiedEditor.revealLineInCenterIfOutsideViewport(e,t)}revealLineNearTop(e,t=0){this._modifiedEditor.revealLineNearTop(e,t)}revealPosition(e,t=0){this._modifiedEditor.revealPosition(e,t)}revealPositionInCenter(e,t=0){this._modifiedEditor.revealPositionInCenter(e,t)}revealPositionInCenterIfOutsideViewport(e,t=0){this._modifiedEditor.revealPositionInCenterIfOutsideViewport(e,t)}revealPositionNearTop(e,t=0){this._modifiedEditor.revealPositionNearTop(e,t)}getSelection(){return this._modifiedEditor.getSelection()}getSelections(){return this._modifiedEditor.getSelections()}setSelection(e,t="api"){this._modifiedEditor.setSelection(e,t)}setSelections(e,t="api"){this._modifiedEditor.setSelections(e,t)}revealLines(e,t,i=0){this._modifiedEditor.revealLines(e,t,i)}revealLinesInCenter(e,t,i=0){this._modifiedEditor.revealLinesInCenter(e,t,i)}revealLinesInCenterIfOutsideViewport(e,t,i=0){this._modifiedEditor.revealLinesInCenterIfOutsideViewport(e,t,i)}revealLinesNearTop(e,t,i=0){this._modifiedEditor.revealLinesNearTop(e,t,i)}revealRange(e,t=0,i=!1,n=!0){this._modifiedEditor.revealRange(e,t,i,n)}revealRangeInCenter(e,t=0){this._modifiedEditor.revealRangeInCenter(e,t)}revealRangeInCenterIfOutsideViewport(e,t=0){this._modifiedEditor.revealRangeInCenterIfOutsideViewport(e,t)}revealRangeNearTop(e,t=0){this._modifiedEditor.revealRangeNearTop(e,t)}revealRangeNearTopIfOutsideViewport(e,t=0){this._modifiedEditor.revealRangeNearTopIfOutsideViewport(e,t)}revealRangeAtTop(e,t=0){this._modifiedEditor.revealRangeAtTop(e,t)}getSupportedActions(){return this._modifiedEditor.getSupportedActions()}saveViewState(){const e=this._originalEditor.saveViewState(),t=this._modifiedEditor.saveViewState();return{original:e,modified:t}}restoreViewState(e){if(e&&e.original&&e.modified){const t=e;this._originalEditor.restoreViewState(t.original),this._modifiedEditor.restoreViewState(t.modified)}}layout(e){this._elementSizeObserver.observe(e)}focus(){this._modifiedEditor.focus()}hasTextFocus(){return this._originalEditor.hasTextFocus()||this._modifiedEditor.hasTextFocus()}trigger(e,t,i){this._modifiedEditor.trigger(e,t,i)}changeDecorations(e){return this._modifiedEditor.changeDecorations(e)}_onDidContainerSizeChanged(){this._doLayout()}_getReviewHeight(){return this._reviewPane.isVisible()?this._elementSizeObserver.getHeight():0}_layoutOverviewRulers(){if(!this._options.renderOverviewRuler||!this._originalOverviewRuler||!this._modifiedOverviewRuler)return;const e=this._elementSizeObserver.getHeight(),t=this._getReviewHeight(),i=It.ENTIRE_DIFF_OVERVIEW_WIDTH-2*It.ONE_OVERVIEW_WIDTH;this._modifiedEditor.getLayoutInfo()&&(this._originalOverviewRuler.setLayout({top:0,width:It.ONE_OVERVIEW_WIDTH,right:i+It.ONE_OVERVIEW_WIDTH,height:e-t}),this._modifiedOverviewRuler.setLayout({top:0,right:0,width:It.ONE_OVERVIEW_WIDTH,height:e-t}))}_onViewZonesChanged(){this._currentlyChangingViewZones||this._updateDecorationsRunner.schedule()}_beginUpdateDecorationsSoon(){this._beginUpdateDecorationsTimeout!==-1&&(window.clearTimeout(this._beginUpdateDecorationsTimeout),this._beginUpdateDecorationsTimeout=-1),this._beginUpdateDecorationsTimeout=window.setTimeout(()=>this._beginUpdateDecorations(),It.UPDATE_DIFF_DECORATIONS_DELAY)}static _equals(e,t){return!e&&!t?!0:!e||!t?!1:e.toString()===t.toString()}_beginUpdateDecorations(){this._beginUpdateDecorationsTimeout=-1;const e=this._originalEditor.getModel(),t=this._modifiedEditor.getModel();if(!e||!t)return;this._diffComputationToken++;const i=this._diffComputationToken,n=this._options.maxFileSize*1024*1024,o=r=>{const a=r.getValueLength();return n===0||a<=n};if(!o(e)||!o(t)){(!It._equals(e.uri,this._lastOriginalWarning)||!It._equals(t.uri,this._lastModifiedWarning))&&(this._lastOriginalWarning=e.uri,this._lastModifiedWarning=t.uri,this._notificationService.warn(p("diff.tooLarge","Cannot compare files because one file is too large.")));return}this._setState(1),this._editorWorkerService.computeDiff(e.uri,t.uri,this._options.ignoreTrimWhitespace,this._options.maxComputationTime).then(r=>{i===this._diffComputationToken&&e===this._originalEditor.getModel()&&t===this._modifiedEditor.getModel()&&(this._setState(2),this._diffComputationResult=r,this._updateDecorationsRunner.schedule(),this._onDidUpdateDiff.fire())},r=>{i===this._diffComputationToken&&e===this._originalEditor.getModel()&&t===this._modifiedEditor.getModel()&&(this._setState(2),this._diffComputationResult=null,this._updateDecorationsRunner.schedule())})}_cleanViewZonesAndDecorations(){this._originalEditorState.clean(this._originalEditor),this._modifiedEditorState.clean(this._modifiedEditor)}_updateDecorations(){if(!this._originalEditor.getModel()||!this._modifiedEditor.getModel())return;const e=this._diffComputationResult?this._diffComputationResult.changes:[],t=this._originalEditorState.getForeignViewZones(this._originalEditor.getWhitespaces()),i=this._modifiedEditorState.getForeignViewZones(this._modifiedEditor.getWhitespaces()),n=this._strategy.getEditorsDiffDecorations(e,this._options.ignoreTrimWhitespace,this._options.renderIndicators,t,i);try{this._currentlyChangingViewZones=!0,this._originalEditorState.apply(this._originalEditor,this._originalOverviewRuler,n.original,!1),this._modifiedEditorState.apply(this._modifiedEditor,this._modifiedOverviewRuler,n.modified,!0)}finally{this._currentlyChangingViewZones=!1}}_adjustOptionsForSubEditor(e){const t=Object.assign({},e);return t.inDiffEditor=!0,t.automaticLayout=!1,t.scrollbar=Object.assign({},t.scrollbar||{}),t.scrollbar.vertical="visible",t.folding=!1,t.codeLens=this._options.diffCodeLens,t.fixedOverflowWidgets=!0,t.minimap=Object.assign({},t.minimap||{}),t.minimap.enabled=!1,t}_adjustOptionsForLeftHandSide(e){const t=this._adjustOptionsForSubEditor(e);return this._options.renderSideBySide?t.wordWrapOverride1=this._options.diffWordWrap:(t.wordWrapOverride1="off",t.wordWrapOverride2="off"),e.originalAriaLabel&&(t.ariaLabel=e.originalAriaLabel),t.readOnly=!this._options.originalEditable,t.extraEditorClassName="original-in-monaco-diff-editor",Object.assign(Object.assign({},t),{dimension:{height:0,width:0}})}_adjustOptionsForRightHandSide(e){const t=this._adjustOptionsForSubEditor(e);return e.modifiedAriaLabel&&(t.ariaLabel=e.modifiedAriaLabel),t.wordWrapOverride1=this._options.diffWordWrap,t.revealHorizontalRightPadding=Mr.revealHorizontalRightPadding.defaultValue+It.ENTIRE_DIFF_OVERVIEW_WIDTH,t.scrollbar.verticalHasArrows=!1,t.extraEditorClassName="modified-in-monaco-diff-editor",Object.assign(Object.assign({},t),{dimension:{height:0,width:0}})}doLayout(){this._elementSizeObserver.observe(),this._doLayout()}_doLayout(){const e=this._elementSizeObserver.getWidth(),t=this._elementSizeObserver.getHeight(),i=this._getReviewHeight(),n=this._strategy.layout();this._originalDomNode.style.width=n+"px",this._originalDomNode.style.left="0px",this._modifiedDomNode.style.width=e-n+"px",this._modifiedDomNode.style.left=n+"px",this._overviewDomElement.style.top="0px",this._overviewDomElement.style.height=t-i+"px",this._overviewDomElement.style.width=It.ENTIRE_DIFF_OVERVIEW_WIDTH+"px",this._overviewDomElement.style.left=e-It.ENTIRE_DIFF_OVERVIEW_WIDTH+"px",this._overviewViewportDomElement.setWidth(It.ENTIRE_DIFF_OVERVIEW_WIDTH),this._overviewViewportDomElement.setHeight(30),this._originalEditor.layout({width:n,height:t-i}),this._modifiedEditor.layout({width:e-n-(this._options.renderOverviewRuler?It.ENTIRE_DIFF_OVERVIEW_WIDTH:0),height:t-i}),(this._originalOverviewRuler||this._modifiedOverviewRuler)&&this._layoutOverviewRulers(),this._reviewPane.layout(t-i,e,i),this._layoutOverviewViewport()}_layoutOverviewViewport(){const e=this._computeOverviewViewport();e?(this._overviewViewportDomElement.setTop(e.top),this._overviewViewportDomElement.setHeight(e.height)):(this._overviewViewportDomElement.setTop(0),this._overviewViewportDomElement.setHeight(0))}_computeOverviewViewport(){const e=this._modifiedEditor.getLayoutInfo();if(!e)return null;const t=this._modifiedEditor.getScrollTop(),i=this._modifiedEditor.getScrollHeight(),n=Math.max(0,e.height),o=Math.max(0,n-2*0),r=i>0?o/i:0,a=Math.max(0,Math.floor(e.height*r)),l=Math.floor(t*r);return{height:a,top:l}}_createDataSource(){return{getWidth:()=>this._elementSizeObserver.getWidth(),getHeight:()=>this._elementSizeObserver.getHeight()-this._getReviewHeight(),getOptions:()=>({renderOverviewRuler:this._options.renderOverviewRuler}),getContainerDomNode:()=>this._containerDomElement,relayoutEditors:()=>{this._doLayout()},getOriginalEditor:()=>this._originalEditor,getModifiedEditor:()=>this._modifiedEditor}}_setStrategy(e){this._strategy&&this._strategy.dispose(),this._strategy=e,e.applyColors(this._themeService.getColorTheme()),this._diffComputationResult&&this._updateDecorations(),this._doLayout()}_getLineChangeAtOrBeforeLineNumber(e,t){const i=this._diffComputationResult?this._diffComputationResult.changes:[];if(i.length===0||e=l?n=r+1:(n=r,o=r)}return i[n]}_getEquivalentLineForOriginalLineNumber(e){const t=this._getLineChangeAtOrBeforeLineNumber(e,l=>l.originalStartLineNumber);if(!t)return e;const i=t.originalStartLineNumber+(t.originalEndLineNumber>0?-1:0),n=t.modifiedStartLineNumber+(t.modifiedEndLineNumber>0?-1:0),o=t.originalEndLineNumber>0?t.originalEndLineNumber-t.originalStartLineNumber+1:0,r=t.modifiedEndLineNumber>0?t.modifiedEndLineNumber-t.modifiedStartLineNumber+1:0,a=e-i;return a<=o?n+Math.min(a,r):n+r-o+a}_getEquivalentLineForModifiedLineNumber(e){const t=this._getLineChangeAtOrBeforeLineNumber(e,l=>l.modifiedStartLineNumber);if(!t)return e;const i=t.originalStartLineNumber+(t.originalEndLineNumber>0?-1:0),n=t.modifiedStartLineNumber+(t.modifiedEndLineNumber>0?-1:0),o=t.originalEndLineNumber>0?t.originalEndLineNumber-t.originalStartLineNumber+1:0,r=t.modifiedEndLineNumber>0?t.modifiedEndLineNumber-t.modifiedStartLineNumber+1:0,a=e-n;return a<=r?i+Math.min(a,o):i+o-r+a}getDiffLineInformationForOriginal(e){return this._diffComputationResult?{equivalentLineNumber:this._getEquivalentLineForOriginalLineNumber(e)}:null}getDiffLineInformationForModified(e){return this._diffComputationResult?{equivalentLineNumber:this._getEquivalentLineForModifiedLineNumber(e)}:null}};ko.ONE_OVERVIEW_WIDTH=15;ko.ENTIRE_DIFF_OVERVIEW_WIDTH=30;ko.UPDATE_DIFF_DECORATIONS_DELAY=200;ko=M9([fs(3,Nh),fs(4,Il),fs(5,Ne),fs(6,rn),fs(7,kt),fs(8,ot),fs(9,Dn),fs(10,ab),fs(11,lb)],ko);class qk extends W{constructor(e){super(),this._dataSource=e,this._insertColor=null,this._removeColor=null}applyColors(e){const t=e.getColor(HT)||(e.getColor(jL)||b_).transparent(2),i=e.getColor(zT)||(e.getColor(KL)||C_).transparent(2),n=!t.equals(this._insertColor)||!i.equals(this._removeColor);return this._insertColor=t,this._removeColor=i,n}getEditorsDiffDecorations(e,t,i,n,o){o=o.sort((c,h)=>c.afterLineNumber-h.afterLineNumber),n=n.sort((c,h)=>c.afterLineNumber-h.afterLineNumber);const r=this._getViewZones(e,n,o,i),a=this._getOriginalEditorDecorations(r,e,t,i),l=this._getModifiedEditorDecorations(r,e,t,i);return{original:{decorations:a.decorations,overviewZones:a.overviewZones,zones:r.original},modified:{decorations:l.decorations,overviewZones:l.overviewZones,zones:r.modified}}}}class fv{constructor(e){this._source=e,this._index=-1,this.current=null,this.advance()}advance(){this._index++,this._indexx.afterLineNumber-L.afterLineNumber,w=(x,L)=>{if(L.domNode===null&&x.length>0){const y=x[x.length-1];if(y.afterLineNumber===L.afterLineNumber&&y.domNode===null){y.heightInLines+=L.heightInLines;return}}x.push(L)},C=new fv(this._modifiedForeignVZ),v=new fv(this._originalForeignVZ);let S=1,k=1;for(let x=0,L=this._lineChanges.length;x<=L;x++){const y=x0?-1:0),f=y.modifiedStartLineNumber+(y.modifiedEndLineNumber>0?-1:0),d=y.originalEndLineNumber>0?nr._getViewLineCount(this._originalEditor,y.originalStartLineNumber,y.originalEndLineNumber):0,h=y.modifiedEndLineNumber>0?nr._getViewLineCount(this._modifiedEditor,y.modifiedStartLineNumber,y.modifiedEndLineNumber):0,m=Math.max(y.originalStartLineNumber,y.originalEndLineNumber),_=Math.max(y.modifiedStartLineNumber,y.modifiedEndLineNumber)):(u+=1e7+d,f+=1e7+h,m=u,_=f);let I=[],R=[];if(o){let F;y?y.originalEndLineNumber>0?F=y.originalStartLineNumber-S:F=y.modifiedStartLineNumber-k:F=r.getLineCount()-S+1;for(let j=0;jee&&R.push({afterLineNumber:Q,heightInLines:ie-ee,domNode:null,marginDomNode:null})}y&&(S=(y.originalEndLineNumber>0?y.originalEndLineNumber:y.originalStartLineNumber)+1,k=(y.modifiedEndLineNumber>0?y.modifiedEndLineNumber:y.modifiedStartLineNumber)+1)}for(;C.current&&C.current.afterLineNumber<=_;){let F;C.current.afterLineNumber<=f?F=u-f+C.current.afterLineNumber:F=m;let j=null;y&&y.modifiedStartLineNumber<=C.current.afterLineNumber&&C.current.afterLineNumber<=y.modifiedEndLineNumber&&(j=this._createOriginalMarginDomNodeForModifiedForeignViewZoneInAddedRegion()),I.push({afterLineNumber:F,heightInLines:C.current.height/t,domNode:null,marginDomNode:j}),C.advance()}for(;v.current&&v.current.afterLineNumber<=m;){let F;v.current.afterLineNumber<=u?F=f-u+v.current.afterLineNumber:F=_,R.push({afterLineNumber:F,heightInLines:v.current.height/e,domNode:null}),v.advance()}if(y!==null&&Ba(y)){const F=this._produceOriginalFromDiff(y,d,h);F&&I.push(F)}if(y!==null&&Va(y)){const F=this._produceModifiedFromDiff(y,d,h);F&&R.push(F)}let T=0,P=0;for(I=I.sort(b),R=R.sort(b);T=j.heightInLines?(F.heightInLines-=j.heightInLines,P++):(j.heightInLines-=F.heightInLines,T++)}for(;T(t.domNode||(t.domNode=Gk()),t))}}function ys(s,e,t,i,n){return{range:new D(s,e,t,i),options:n}}const Xt={charDelete:qe.register({description:"diff-editor-char-delete",className:"char-delete"}),charDeleteWholeLine:qe.register({description:"diff-editor-char-delete-whole-line",className:"char-delete",isWholeLine:!0}),charInsert:qe.register({description:"diff-editor-char-insert",className:"char-insert"}),charInsertWholeLine:qe.register({description:"diff-editor-char-insert-whole-line",className:"char-insert",isWholeLine:!0}),lineInsert:qe.register({description:"diff-editor-line-insert",className:"line-insert",marginClassName:"gutter-insert",isWholeLine:!0}),lineInsertWithSign:qe.register({description:"diff-editor-line-insert-with-sign",className:"line-insert",linesDecorationsClassName:"insert-sign "+St.asClassName(A9),marginClassName:"gutter-insert",isWholeLine:!0}),lineDelete:qe.register({description:"diff-editor-line-delete",className:"line-delete",marginClassName:"gutter-delete",isWholeLine:!0}),lineDeleteWithSign:qe.register({description:"diff-editor-line-delete-with-sign",className:"line-delete",linesDecorationsClassName:"delete-sign "+St.asClassName(Kk),marginClassName:"gutter-delete",isWholeLine:!0}),lineDeleteMargin:qe.register({description:"diff-editor-line-delete-margin",marginClassName:"gutter-delete"})};class Es extends qk{constructor(e,t){super(e),this._disableSash=t===!1,this._sashRatio=null,this._sashPosition=null,this._startSashPosition=null,this._sash=this._register(new gi(this._dataSource.getContainerDomNode(),this,{orientation:0})),this._disableSash&&(this._sash.state=0),this._sash.onDidStart(()=>this._onSashDragStart()),this._sash.onDidChange(i=>this._onSashDrag(i)),this._sash.onDidEnd(()=>this._onSashDragEnd()),this._sash.onDidReset(()=>this._onSashReset())}setEnableSplitViewResizing(e){const t=e===!1;this._disableSash!==t&&(this._disableSash=t,this._sash.state=this._disableSash?0:3)}layout(e=this._sashRatio){const i=this._dataSource.getWidth()-(this._dataSource.getOptions().renderOverviewRuler?ko.ENTIRE_DIFF_OVERVIEW_WIDTH:0);let n=Math.floor((e||.5)*i);const o=Math.floor(.5*i);return n=this._disableSash?o:n||o,i>Es.MINIMUM_EDITOR_WIDTH*2?(ni-Es.MINIMUM_EDITOR_WIDTH&&(n=i-Es.MINIMUM_EDITOR_WIDTH)):n=o,this._sashPosition!==n&&(this._sashPosition=n),this._sash.layout(),this._sashPosition}_onSashDragStart(){this._startSashPosition=this._sashPosition}_onSashDrag(e){const i=this._dataSource.getWidth()-(this._dataSource.getOptions().renderOverviewRuler?ko.ENTIRE_DIFF_OVERVIEW_WIDTH:0),n=this.layout((this._startSashPosition+(e.currentX-e.startX))/i);this._sashRatio=n/i,this._dataSource.relayoutEditors()}_onSashDragEnd(){this._sash.layout()}_onSashReset(){this._sashRatio=.5,this._dataSource.relayoutEditors(),this._sash.layout()}getVerticalSashTop(e){return 0}getVerticalSashLeft(e){return this._sashPosition}getVerticalSashHeight(e){return this._dataSource.getHeight()}_getViewZones(e,t,i){const n=this._dataSource.getOriginalEditor(),o=this._dataSource.getModifiedEditor();return new O9(e,t,i,n,o).getViewZones()}_getOriginalEditorDecorations(e,t,i,n){const o=this._dataSource.getOriginalEditor(),r=String(this._removeColor),a={decorations:[],overviewZones:[]},l=o.getModel(),c=o._getViewModel();for(const h of t)if(Va(h)){a.decorations.push({range:new D(h.originalStartLineNumber,1,h.originalEndLineNumber,1073741824),options:n?Xt.lineDeleteWithSign:Xt.lineDelete}),(!Ba(h)||!h.charChanges)&&a.decorations.push(ys(h.originalStartLineNumber,1,h.originalEndLineNumber,1073741824,Xt.charDeleteWholeLine));const d=Jc(l,c,h.originalStartLineNumber,h.originalEndLineNumber);if(a.overviewZones.push(new jc(d.startLineNumber,d.endLineNumber,0,r)),h.charChanges){for(const u of h.charChanges)if(Va(u))if(i)for(let f=u.originalStartLineNumber;f<=u.originalEndLineNumber;f++){let m,_;f===u.originalStartLineNumber?m=u.originalStartColumn:m=l.getLineFirstNonWhitespaceColumn(f),f===u.originalEndLineNumber?_=u.originalEndColumn:_=l.getLineLastNonWhitespaceColumn(f),a.decorations.push(ys(f,m,f,_,Xt.charDelete))}else a.decorations.push(ys(u.originalStartLineNumber,u.originalStartColumn,u.originalEndLineNumber,u.originalEndColumn,Xt.charDelete))}}return a}_getModifiedEditorDecorations(e,t,i,n){const o=this._dataSource.getModifiedEditor(),r=String(this._insertColor),a={decorations:[],overviewZones:[]},l=o.getModel(),c=o._getViewModel();for(const h of t)if(Ba(h)){a.decorations.push({range:new D(h.modifiedStartLineNumber,1,h.modifiedEndLineNumber,1073741824),options:n?Xt.lineInsertWithSign:Xt.lineInsert}),(!Va(h)||!h.charChanges)&&a.decorations.push(ys(h.modifiedStartLineNumber,1,h.modifiedEndLineNumber,1073741824,Xt.charInsertWholeLine));const d=Jc(l,c,h.modifiedStartLineNumber,h.modifiedEndLineNumber);if(a.overviewZones.push(new jc(d.startLineNumber,d.endLineNumber,0,r)),h.charChanges){for(const u of h.charChanges)if(Ba(u))if(i)for(let f=u.modifiedStartLineNumber;f<=u.modifiedEndLineNumber;f++){let m,_;f===u.modifiedStartLineNumber?m=u.modifiedStartColumn:m=l.getLineFirstNonWhitespaceColumn(f),f===u.modifiedEndLineNumber?_=u.modifiedEndColumn:_=l.getLineLastNonWhitespaceColumn(f),a.decorations.push(ys(f,m,f,_,Xt.charInsert))}else a.decorations.push(ys(u.modifiedStartLineNumber,u.modifiedStartColumn,u.modifiedEndLineNumber,u.modifiedEndColumn,Xt.charInsert))}}return a}}Es.MINIMUM_EDITOR_WIDTH=100;class O9 extends nr{constructor(e,t,i,n,o){super(e,t,i,n,o)}_createOriginalMarginDomNodeForModifiedForeignViewZoneInAddedRegion(){return null}_produceOriginalFromDiff(e,t,i){return i>t?{afterLineNumber:Math.max(e.originalStartLineNumber,e.originalEndLineNumber),heightInLines:i-t,domNode:null}:null}_produceModifiedFromDiff(e,t,i){return t>i?{afterLineNumber:Math.max(e.modifiedStartLineNumber,e.modifiedEndLineNumber),heightInLines:t-i,domNode:null}:null}}class gv extends qk{constructor(e,t){super(e),this._decorationsLeft=e.getOriginalEditor().getLayoutInfo().decorationsLeft,this._register(e.getOriginalEditor().onDidLayoutChange(i=>{this._decorationsLeft!==i.decorationsLeft&&(this._decorationsLeft=i.decorationsLeft,e.relayoutEditors())}))}setEnableSplitViewResizing(e){}_getViewZones(e,t,i,n){const o=this._dataSource.getOriginalEditor(),r=this._dataSource.getModifiedEditor();return new P9(e,t,i,o,r,n).getViewZones()}_getOriginalEditorDecorations(e,t,i,n){const o=String(this._removeColor),r={decorations:[],overviewZones:[]},a=this._dataSource.getOriginalEditor(),l=a.getModel(),c=a._getViewModel();let h=0;for(const d of t)if(Va(d)){for(r.decorations.push({range:new D(d.originalStartLineNumber,1,d.originalEndLineNumber,1073741824),options:Xt.lineDeleteMargin});h=d.originalStartLineNumber)break;h++}let u=0;if(h0,R=ja(1e4);let T=0,P=0,F=null;for(let Q=S.originalStartLineNumber;Q<=S.originalEndLineNumber;Q++){const ie=Q-S.originalStartLineNumber,ee=this._originalModel.getLineTokens(Q),ae=ee.getLineContent(),nt=w[C++],Xe=Qi.filter(y,Q,1,ae.length+1);if(nt){let ln=0;for(const zt of nt.breakOffsets){const cs=ee.sliceAndInflate(ln,zt,0),Fh=ae.substring(ln,zt);T=Math.max(T,this._renderOriginalLine(P++,Fh,cs,Qi.extractWrapped(Xe,ln,zt),I,l,c,n,o,h,u,f,m,_,b,i,R,L)),ln=zt}for(F||(F=[]);F.lengthv.afterLineNumber-S.afterLineNumber)}_renderOriginalLine(e,t,i,n,o,r,a,l,c,h,d,u,f,m,_,b,w,C){w.appendASCIIString('
    ');const v=vi.isBasicASCII(t,r),S=vi.containsRTL(t,v,a),k=C0(new Cl(l.isMonospace&&!c,l.canUseHalfwidthRightwardsArrow,t,!1,v,S,0,i,n,b,0,l.spaceWidth,l.middotWidth,l.wsmiddotWidth,u,f,m,_!==Ii.OFF,null),w);if(w.appendASCIIString("
    "),this._renderIndicators){const x=document.createElement("div");x.className=`delete-sign ${St.asClassName(Kk)}`,x.setAttribute("style",`position:absolute;top:${e*h}px;width:${d}px;height:${h}px;right:0;`),C.appendChild(x)}return k.characterMapping.getAbsoluteOffset(k.characterMapping.length)}}function F9(s,e){return Jt(s,e,["off","on","inherit"])}function Ba(s){return s.modifiedEndLineNumber>0}function Va(s){return s.originalEndLineNumber>0}function Gk(){const s=document.createElement("div");return s.className="diagonal-fill",s}function Jc(s,e,t,i){const n=s.getLineCount();return t=Math.min(n,Math.max(1,t)),i=Math.min(n,Math.max(1,i)),e.coordinatesConverter.convertModelRangeToViewRange(new D(t,s.getLineMinColumn(t),i,s.getLineMaxColumn(i)))}function mv(s,e){return{enableSplitViewResizing:$(s.enableSplitViewResizing,e.enableSplitViewResizing),renderSideBySide:$(s.renderSideBySide,e.renderSideBySide),maxComputationTime:Zm(s.maxComputationTime,e.maxComputationTime,0,1073741824),maxFileSize:Zm(s.maxFileSize,e.maxFileSize,0,1073741824),ignoreTrimWhitespace:$(s.ignoreTrimWhitespace,e.ignoreTrimWhitespace),renderIndicators:$(s.renderIndicators,e.renderIndicators),originalEditable:$(s.originalEditable,e.originalEditable),diffCodeLens:$(s.diffCodeLens,e.diffCodeLens),renderOverviewRuler:$(s.renderOverviewRuler,e.renderOverviewRuler),diffWordWrap:F9(s.diffWordWrap,e.diffWordWrap)}}function B9(s,e){return{enableSplitViewResizing:s.enableSplitViewResizing!==e.enableSplitViewResizing,renderSideBySide:s.renderSideBySide!==e.renderSideBySide,maxComputationTime:s.maxComputationTime!==e.maxComputationTime,maxFileSize:s.maxFileSize!==e.maxFileSize,ignoreTrimWhitespace:s.ignoreTrimWhitespace!==e.ignoreTrimWhitespace,renderIndicators:s.renderIndicators!==e.renderIndicators,originalEditable:s.originalEditable!==e.originalEditable,diffCodeLens:s.diffCodeLens!==e.diffCodeLens,renderOverviewRuler:s.renderOverviewRuler!==e.renderOverviewRuler,diffWordWrap:s.diffWordWrap!==e.diffWordWrap}}ni((s,e)=>{const t=s.getColor(jL);t&&e.addRule(`.monaco-editor .char-insert, .monaco-diff-editor .char-insert { background-color: ${t}; }`);const i=s.getColor(FT)||t;i&&e.addRule(`.monaco-editor .line-insert, .monaco-diff-editor .line-insert { background-color: ${i}; }`);const n=s.getColor(VT)||i;n&&(e.addRule(`.monaco-editor .inline-added-margin-view-zone { background-color: ${n}; }`),e.addRule(`.monaco-editor .gutter-insert, .monaco-diff-editor .gutter-insert { background-color: ${n}; }`));const o=s.getColor(KL);o&&e.addRule(`.monaco-editor .char-delete, .monaco-diff-editor .char-delete { background-color: ${o}; }`);const r=s.getColor(BT)||o;r&&e.addRule(`.monaco-editor .line-delete, .monaco-diff-editor .line-delete { background-color: ${r}; }`);const a=s.getColor(WT)||r;a&&(e.addRule(`.monaco-editor .inline-deleted-margin-view-zone { background-color: ${a}; }`),e.addRule(`.monaco-editor .gutter-delete, .monaco-diff-editor .gutter-delete { background-color: ${a}; }`));const l=s.getColor(UT);l&&e.addRule(`.monaco-editor .line-insert, .monaco-editor .char-insert { border: 1px ${s.type==="hc"?"dashed":"solid"} ${l}; }`);const c=s.getColor($T);c&&e.addRule(`.monaco-editor .line-delete, .monaco-editor .char-delete { border: 1px ${s.type==="hc"?"dashed":"solid"} ${c}; }`);const h=s.getColor(vl);h&&e.addRule(`.monaco-diff-editor.side-by-side .editor.modified { box-shadow: -6px 0 5px -5px ${h}; }`);const d=s.getColor(jT);d&&e.addRule(`.monaco-diff-editor.side-by-side .editor.modified { border-left: 1px solid ${d}; }`);const u=s.getColor(Ea);u&&e.addRule(` + .monaco-diff-editor .diffViewport { + background: ${u}; + } + `);const f=s.getColor(Da);f&&e.addRule(` + .monaco-diff-editor .diffViewport:hover { + background: ${f}; + } + `);const m=s.getColor(Na);m&&e.addRule(` + .monaco-diff-editor .diffViewport:active { + background: ${m}; + } + `);const _=s.getColor(KT);e.addRule(` + .monaco-editor .diagonal-fill { + background-image: linear-gradient( + -45deg, + ${_} 12.5%, + #0000 12.5%, #0000 50%, + ${_} 50%, ${_} 62.5%, + #0000 62.5%, #0000 100% + ); + background-size: 8px 8px; + } + `)});var V9=globalThis&&globalThis.__decorate||function(s,e,t,i){var n=arguments.length,o=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},W9=globalThis&&globalThis.__param||function(s,e){return function(t,i){e(t,i,s)}};let P_=class extends W{constructor(e){super(),this._themeService=e,this._onCodeEditorAdd=this._register(new M),this.onCodeEditorAdd=this._onCodeEditorAdd.event,this._onCodeEditorRemove=this._register(new M),this.onCodeEditorRemove=this._onCodeEditorRemove.event,this._onDiffEditorAdd=this._register(new M),this.onDiffEditorAdd=this._onDiffEditorAdd.event,this._onDiffEditorRemove=this._register(new M),this.onDiffEditorRemove=this._onDiffEditorRemove.event,this._decorationOptionProviders=new Map,this._modelProperties=new Map,this._codeEditors=Object.create(null),this._diffEditors=Object.create(null),this._globalStyleSheet=null}addCodeEditor(e){this._codeEditors[e.getId()]=e,this._onCodeEditorAdd.fire(e)}removeCodeEditor(e){delete this._codeEditors[e.getId()]&&this._onCodeEditorRemove.fire(e)}listCodeEditors(){return Object.keys(this._codeEditors).map(e=>this._codeEditors[e])}addDiffEditor(e){this._diffEditors[e.getId()]=e,this._onDiffEditorAdd.fire(e)}removeDiffEditor(e){delete this._diffEditors[e.getId()]&&this._onDiffEditorRemove.fire(e)}listDiffEditors(){return Object.keys(this._diffEditors).map(e=>this._diffEditors[e])}getFocusedCodeEditor(){let e=null;const t=this.listCodeEditors();for(const i of t){if(i.hasTextFocus())return i;i.hasWidgetFocus()&&(e=i)}return e}removeDecorationType(e){const t=this._decorationOptionProviders.get(e);t&&(t.refCount--,t.refCount<=0&&(this._decorationOptionProviders.delete(e),t.dispose(),this.listCodeEditors().forEach(i=>i.removeDecorations(e))))}setModelProperty(e,t,i){const n=e.toString();let o;this._modelProperties.has(n)?o=this._modelProperties.get(n):(o=new Map,this._modelProperties.set(n,o)),o.set(t,i)}getModelProperty(e,t){const i=e.toString();if(this._modelProperties.has(i))return this._modelProperties.get(i).get(t)}};P_=V9([W9(0,ot)],P_);var H9=globalThis&&globalThis.__decorate||function(s,e,t,i){var n=arguments.length,o=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},pv=globalThis&&globalThis.__param||function(s,e){return function(t,i){e(t,i,s)}};let Xu=class extends P_{constructor(e,t){super(t),this.onCodeEditorAdd(()=>this._checkContextKey()),this.onCodeEditorRemove(()=>this._checkContextKey()),this._editorIsOpen=e.createKey("editorIsOpen",!1),this._activeCodeEditor=null}_checkContextKey(){let e=!1;for(const t of this.listCodeEditors())if(!t.isSimpleWidget){e=!0;break}this._editorIsOpen.set(e)}setActiveCodeEditor(e){this._activeCodeEditor=e}getActiveCodeEditor(){return this._activeCodeEditor}openCodeEditor(e,t,i){return t?Promise.resolve(this.doOpenEditor(t,e)):Promise.resolve(null)}doOpenEditor(e,t){if(!this.findModel(e,t.resource)){if(t.resource){const o=t.resource.scheme;if(o===Ce.http||o===Ce.https)return gL(t.resource.toString()),e}return null}const n=t.options?t.options.selection:null;if(n)if(typeof n.endLineNumber=="number"&&typeof n.endColumn=="number")e.setSelection(n),e.revealRangeInCenter(n,1);else{const o={lineNumber:n.startLineNumber,column:n.startColumn};e.setPosition(o),e.revealPositionInCenter(o,1)}return e}findModel(e,t){const i=e.getModel();return i&&i.uri.toString()!==t.toString()?null:i}};Xu=H9([pv(0,Ne),pv(1,ot)],Xu);ve(kt,Xu);const Th=pe("layoutService");var Zk=globalThis&&globalThis.__decorate||function(s,e,t,i){var n=arguments.length,o=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},Yk=globalThis&&globalThis.__param||function(s,e){return function(t,i){e(t,i,s)}};let Qu=class{constructor(e){this._codeEditorService=e,this.onDidLayout=K.None}get dimension(){return this._dimension||(this._dimension=aL(window.document.body)),this._dimension}get hasContainer(){return!1}get container(){throw new Error("ILayoutService.container is not available in the standalone editor!")}focus(){var e;(e=this._codeEditorService.getFocusedCodeEditor())===null||e===void 0||e.focus()}};Qu=Zk([Yk(0,kt)],Qu);let F_=class extends Qu{constructor(e,t){super(t),this._container=e}get hasContainer(){return!1}get container(){return this._container}};F_=Zk([Yk(1,kt)],F_);ve(Th,Qu);const Xk=pe("dialogService");var z9=globalThis&&globalThis.__decorate||function(s,e,t,i){var n=arguments.length,o=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},_v=globalThis&&globalThis.__param||function(s,e){return function(t,i){e(t,i,s)}},ld=globalThis&&globalThis.__awaiter||function(s,e,t,i){function n(o){return o instanceof t?o:new t(function(r){r(o)})}return new(t||(t=Promise))(function(o,r){function a(h){try{c(i.next(h))}catch(d){r(d)}}function l(h){try{c(i.throw(h))}catch(d){r(d)}}function c(h){h.done?o(h.value):n(h.value).then(a,l)}c((i=i.apply(s,e||[])).next())})};function cd(s){return s.scheme===Ce.file?s.fsPath:s.path}let Qk=0;class hd{constructor(e,t,i,n,o,r,a){this.id=++Qk,this.type=0,this.actual=e,this.label=e.label,this.confirmBeforeUndo=e.confirmBeforeUndo||!1,this.resourceLabel=t,this.strResource=i,this.resourceLabels=[this.resourceLabel],this.strResources=[this.strResource],this.groupId=n,this.groupOrder=o,this.sourceId=r,this.sourceOrder=a,this.isValid=!0}setValid(e){this.isValid=e}toString(){return`[id:${this.id}] [group:${this.groupId}] [${this.isValid?" VALID":"INVALID"}] ${this.actual.constructor.name} - ${this.actual}`}}class bv{constructor(e,t){this.resourceLabel=e,this.reason=t}}class Cv{constructor(){this.elements=new Map}createMessage(){const e=[],t=[];for(const[,n]of this.elements)(n.reason===0?e:t).push(n.resourceLabel);let i=[];return e.length>0&&i.push(p({key:"externalRemoval",comment:["{0} is a list of filenames"]},"The following files have been closed and modified on disk: {0}.",e.join(", "))),t.length>0&&i.push(p({key:"noParallelUniverses",comment:["{0} is a list of filenames"]},"The following files have been modified in an incompatible way: {0}.",t.join(", "))),i.join(` +`)}get size(){return this.elements.size}has(e){return this.elements.has(e)}set(e,t){this.elements.set(e,t)}delete(e){return this.elements.delete(e)}}class U9{constructor(e,t,i,n,o,r,a){this.id=++Qk,this.type=1,this.actual=e,this.label=e.label,this.confirmBeforeUndo=e.confirmBeforeUndo||!1,this.resourceLabels=t,this.strResources=i,this.groupId=n,this.groupOrder=o,this.sourceId=r,this.sourceOrder=a,this.removedResources=null,this.invalidatedResources=null}canSplit(){return typeof this.actual.split=="function"}removeResource(e,t,i){this.removedResources||(this.removedResources=new Cv),this.removedResources.has(t)||this.removedResources.set(t,new bv(e,i))}setValid(e,t,i){i?this.invalidatedResources&&(this.invalidatedResources.delete(t),this.invalidatedResources.size===0&&(this.invalidatedResources=null)):(this.invalidatedResources||(this.invalidatedResources=new Cv),this.invalidatedResources.has(t)||this.invalidatedResources.set(t,new bv(e,0)))}toString(){return`[id:${this.id}] [group:${this.groupId}] [${this.invalidatedResources?"INVALID":" VALID"}] ${this.actual.constructor.name} - ${this.actual}`}}class Jk{constructor(e,t){this.resourceLabel=e,this.strResource=t,this._past=[],this._future=[],this.locked=!1,this.versionId=1}dispose(){for(const e of this._past)e.type===1&&e.removeResource(this.resourceLabel,this.strResource,0);for(const e of this._future)e.type===1&&e.removeResource(this.resourceLabel,this.strResource,0);this.versionId++}toString(){let e=[];e.push(`* ${this.strResource}:`);for(let t=0;t=0;t--)e.push(` * [REDO] ${this._future[t]}`);return e.join(` +`)}flushAllElements(){this._past=[],this._future=[],this.versionId++}_setElementValidFlag(e,t){e.type===1?e.setValid(this.resourceLabel,this.strResource,t):e.setValid(t)}setElementsValidFlag(e,t){for(const i of this._past)t(i.actual)&&this._setElementValidFlag(i,e);for(const i of this._future)t(i.actual)&&this._setElementValidFlag(i,e)}pushElement(e){for(const t of this._future)t.type===1&&t.removeResource(this.resourceLabel,this.strResource,1);this._future=[],this._past.push(e),this.versionId++}createSnapshot(e){const t=[];for(let i=0,n=this._past.length;i=0;i--)t.push(this._future[i].id);return new Fk(e,t)}restoreSnapshot(e){const t=e.elements.length;let i=!0,n=0,o=-1;for(let a=0,l=this._past.length;a=t||c.id!==e.elements[n])&&(i=!1,o=0),!i&&c.type===1&&c.removeResource(this.resourceLabel,this.strResource,0)}let r=-1;for(let a=this._future.length-1;a>=0;a--,n++){const l=this._future[a];i&&(n>=t||l.id!==e.elements[n])&&(i=!1,r=a),!i&&l.type===1&&l.removeResource(this.resourceLabel,this.strResource,0)}o!==-1&&(this._past=this._past.slice(0,o)),r!==-1&&(this._future=this._future.slice(r+1)),this.versionId++}getElements(){const e=[],t=[];for(const i of this._past)e.push(i.actual);for(const i of this._future)t.push(i.actual);return{past:e,future:t}}getClosestPastElement(){return this._past.length===0?null:this._past[this._past.length-1]}getSecondClosestPastElement(){return this._past.length<2?null:this._past[this._past.length-2]}getClosestFutureElement(){return this._future.length===0?null:this._future[this._future.length-1]}hasPastElements(){return this._past.length>0}hasFutureElements(){return this._future.length>0}splitPastWorkspaceElement(e,t){for(let i=this._past.length-1;i>=0;i--)if(this._past[i]===e){t.has(this.strResource)?this._past[i]=t.get(this.strResource):this._past.splice(i,1);break}this.versionId++}splitFutureWorkspaceElement(e,t){for(let i=this._future.length-1;i>=0;i--)if(this._future[i]===e){t.has(this.strResource)?this._future[i]=t.get(this.strResource):this._future.splice(i,1);break}this.versionId++}moveBackward(e){this._past.pop(),this._future.push(e),this.versionId++}moveForward(e){this._future.pop(),this._past.push(e),this.versionId++}}class Em{constructor(e){this.editStacks=e,this._versionIds=[];for(let t=0,i=this.editStacks.length;tt.sourceOrder)&&(t=r,i=n)}return[t,i]}canUndo(e){if(e instanceof $n){const[,i]=this._findClosestUndoElementWithSource(e.id);return!!i}const t=this.getUriComparisonKey(e);return this._editStacks.has(t)?this._editStacks.get(t).hasPastElements():!1}_onError(e,t){Ze(e);for(const i of t.strResources)this.removeElements(i);this._notificationService.error(e)}_acquireLocks(e){for(const t of e.editStacks)if(t.locked)throw new Error("Cannot acquire edit stack lock");for(const t of e.editStacks)t.locked=!0;return()=>{for(const t of e.editStacks)t.locked=!1}}_safeInvokeWithLocks(e,t,i,n,o){const r=this._acquireLocks(i);let a;try{a=t()}catch(l){return r(),n.dispose(),this._onError(l,e)}return a?a.then(()=>(r(),n.dispose(),o()),l=>(r(),n.dispose(),this._onError(l,e))):(r(),n.dispose(),o())}_invokeWorkspacePrepare(e){return ld(this,void 0,void 0,function*(){if(typeof e.actual.prepareUndoRedo=="undefined")return W.None;const t=e.actual.prepareUndoRedo();return typeof t=="undefined"?W.None:t})}_invokeResourcePrepare(e,t){if(e.actual.type!==1||typeof e.actual.prepareUndoRedo=="undefined")return t(W.None);const i=e.actual.prepareUndoRedo();return i?aE(i)?t(i):i.then(n=>t(n)):t(W.None)}_getAffectedEditStacks(e){const t=[];for(const i of e.strResources)t.push(this._editStacks.get(i)||e2);return new Em(t)}_tryToSplitAndUndo(e,t,i,n){if(t.canSplit())return this._splitPastWorkspaceElement(t,i),this._notificationService.warn(n),new dd(this._undo(e,0,!0));for(const o of t.strResources)this.removeElements(o);return this._notificationService.warn(n),new dd}_checkWorkspaceUndo(e,t,i,n){if(t.removedResources)return this._tryToSplitAndUndo(e,t,t.removedResources,p({key:"cannotWorkspaceUndo",comment:["{0} is a label for an operation. {1} is another message."]},"Could not undo '{0}' across all files. {1}",t.label,t.removedResources.createMessage()));if(n&&t.invalidatedResources)return this._tryToSplitAndUndo(e,t,t.invalidatedResources,p({key:"cannotWorkspaceUndo",comment:["{0} is a label for an operation. {1} is another message."]},"Could not undo '{0}' across all files. {1}",t.label,t.invalidatedResources.createMessage()));const o=[];for(const a of i.editStacks)a.getClosestPastElement()!==t&&o.push(a.resourceLabel);if(o.length>0)return this._tryToSplitAndUndo(e,t,null,p({key:"cannotWorkspaceUndoDueToChanges",comment:["{0} is a label for an operation. {1} is a list of filenames."]},"Could not undo '{0}' across all files because changes were made to {1}",t.label,o.join(", ")));const r=[];for(const a of i.editStacks)a.locked&&r.push(a.resourceLabel);return r.length>0?this._tryToSplitAndUndo(e,t,null,p({key:"cannotWorkspaceUndoDueToInProgressUndoRedo",comment:["{0} is a label for an operation. {1} is a list of filenames."]},"Could not undo '{0}' across all files because there is already an undo or redo operation running on {1}",t.label,r.join(", "))):i.isValid()?null:this._tryToSplitAndUndo(e,t,null,p({key:"cannotWorkspaceUndoDueToInMeantimeUndoRedo",comment:["{0} is a label for an operation. {1} is a list of filenames."]},"Could not undo '{0}' across all files because an undo or redo operation occurred in the meantime",t.label))}_workspaceUndo(e,t,i){const n=this._getAffectedEditStacks(t),o=this._checkWorkspaceUndo(e,t,n,!1);return o?o.returnValue:this._confirmAndExecuteWorkspaceUndo(e,t,n,i)}_isPartOfUndoGroup(e){if(!e.groupId)return!1;for(const[,t]of this._editStacks){const i=t.getClosestPastElement();if(!!i){if(i===e){const n=t.getSecondClosestPastElement();if(n&&n.groupId===e.groupId)return!0}if(i.groupId===e.groupId)return!0}}return!1}_confirmAndExecuteWorkspaceUndo(e,t,i,n){return ld(this,void 0,void 0,function*(){if(t.canSplit()&&!this._isPartOfUndoGroup(t)){const a=yield this._dialogService.show(at.Info,p("confirmWorkspace","Would you like to undo '{0}' across all files?",t.label),[p({key:"ok",comment:["{0} denotes a number that is > 1"]},"Undo in {0} Files",i.editStacks.length),p("nok","Undo this File"),p("cancel","Cancel")],{cancelId:2});if(a.choice===2)return;if(a.choice===1)return this._splitPastWorkspaceElement(t,null),this._undo(e,0,!0);const l=this._checkWorkspaceUndo(e,t,i,!1);if(l)return l.returnValue;n=!0}let o;try{o=yield this._invokeWorkspacePrepare(t)}catch(a){return this._onError(a,t)}const r=this._checkWorkspaceUndo(e,t,i,!0);if(r)return o.dispose(),r.returnValue;for(const a of i.editStacks)a.moveBackward(t);return this._safeInvokeWithLocks(t,()=>t.actual.undo(),i,o,()=>this._continueUndoInGroup(t.groupId,n))})}_resourceUndo(e,t,i){if(!t.isValid){e.flushAllElements();return}if(e.locked){const n=p({key:"cannotResourceUndoDueToInProgressUndoRedo",comment:["{0} is a label for an operation."]},"Could not undo '{0}' because there is already an undo or redo operation running.",t.label);this._notificationService.warn(n);return}return this._invokeResourcePrepare(t,n=>(e.moveBackward(t),this._safeInvokeWithLocks(t,()=>t.actual.undo(),new Em([e]),n,()=>this._continueUndoInGroup(t.groupId,i))))}_findClosestUndoElementInGroup(e){if(!e)return[null,null];let t=null,i=null;for(const[n,o]of this._editStacks){const r=o.getClosestPastElement();!r||r.groupId===e&&(!t||r.groupOrder>t.groupOrder)&&(t=r,i=n)}return[t,i]}_continueUndoInGroup(e,t){if(!e)return;const[,i]=this._findClosestUndoElementInGroup(e);if(i)return this._undo(i,0,t)}undo(e){if(e instanceof $n){const[,t]=this._findClosestUndoElementWithSource(e.id);return t?this._undo(t,e.id,!1):void 0}return typeof e=="string"?this._undo(e,0,!1):this._undo(this.getUriComparisonKey(e),0,!1)}_undo(e,t=0,i){if(!this._editStacks.has(e))return;const n=this._editStacks.get(e),o=n.getClosestPastElement();if(!o)return;if(o.groupId){const[a,l]=this._findClosestUndoElementInGroup(o.groupId);if(o!==a&&l)return this._undo(l,t,i)}if((o.sourceId!==t||o.confirmBeforeUndo)&&!i)return this._confirmAndContinueUndo(e,t,o);try{return o.type===1?this._workspaceUndo(e,o,i):this._resourceUndo(n,o,i)}finally{}}_confirmAndContinueUndo(e,t,i){return ld(this,void 0,void 0,function*(){if((yield this._dialogService.show(at.Info,p("confirmDifferentSource","Would you like to undo '{0}'?",i.label),[p("confirmDifferentSource.yes","Yes"),p("confirmDifferentSource.no","No")],{cancelId:1})).choice!==1)return this._undo(e,t,!0)})}_findClosestRedoElementWithSource(e){if(!e)return[null,null];let t=null,i=null;for(const[n,o]of this._editStacks){const r=o.getClosestFutureElement();!r||r.sourceId===e&&(!t||r.sourceOrder0)return this._tryToSplitAndRedo(e,t,null,p({key:"cannotWorkspaceRedoDueToChanges",comment:["{0} is a label for an operation. {1} is a list of filenames."]},"Could not redo '{0}' across all files because changes were made to {1}",t.label,o.join(", ")));const r=[];for(const a of i.editStacks)a.locked&&r.push(a.resourceLabel);return r.length>0?this._tryToSplitAndRedo(e,t,null,p({key:"cannotWorkspaceRedoDueToInProgressUndoRedo",comment:["{0} is a label for an operation. {1} is a list of filenames."]},"Could not redo '{0}' across all files because there is already an undo or redo operation running on {1}",t.label,r.join(", "))):i.isValid()?null:this._tryToSplitAndRedo(e,t,null,p({key:"cannotWorkspaceRedoDueToInMeantimeUndoRedo",comment:["{0} is a label for an operation. {1} is a list of filenames."]},"Could not redo '{0}' across all files because an undo or redo operation occurred in the meantime",t.label))}_workspaceRedo(e,t){const i=this._getAffectedEditStacks(t),n=this._checkWorkspaceRedo(e,t,i,!1);return n?n.returnValue:this._executeWorkspaceRedo(e,t,i)}_executeWorkspaceRedo(e,t,i){return ld(this,void 0,void 0,function*(){let n;try{n=yield this._invokeWorkspacePrepare(t)}catch(r){return this._onError(r,t)}const o=this._checkWorkspaceRedo(e,t,i,!0);if(o)return n.dispose(),o.returnValue;for(const r of i.editStacks)r.moveForward(t);return this._safeInvokeWithLocks(t,()=>t.actual.redo(),i,n,()=>this._continueRedoInGroup(t.groupId))})}_resourceRedo(e,t){if(!t.isValid){e.flushAllElements();return}if(e.locked){const i=p({key:"cannotResourceRedoDueToInProgressUndoRedo",comment:["{0} is a label for an operation."]},"Could not redo '{0}' because there is already an undo or redo operation running.",t.label);this._notificationService.warn(i);return}return this._invokeResourcePrepare(t,i=>(e.moveForward(t),this._safeInvokeWithLocks(t,()=>t.actual.redo(),new Em([e]),i,()=>this._continueRedoInGroup(t.groupId))))}_findClosestRedoElementInGroup(e){if(!e)return[null,null];let t=null,i=null;for(const[n,o]of this._editStacks){const r=o.getClosestFutureElement();!r||r.groupId===e&&(!t||r.groupOrder=0;t--,this._valueLen--){const i=this._value.charCodeAt(t);if(!(i===47||this._splitOnBackslash&&i===92))break}return this.next()}hasNext(){return this._to!1){return new Cc(new q9(e))}static forStrings(){return new Cc(new $9)}static forConfigKeys(){return new Cc(new j9)}clear(){this._root=void 0}set(e,t){const i=this._iter.reset(e);let n;this._root||(this._root=new ud,this._root.segment=i.value());const o=[];for(n=this._root;;){const a=i.cmp(n.segment);if(a>0)n.left||(n.left=new ud,n.left.segment=i.value()),o.push([-1,n]),n=n.left;else if(a<0)n.right||(n.right=new ud,n.right.segment=i.value()),o.push([1,n]),n=n.right;else if(i.hasNext())i.next(),n.mid||(n.mid=new ud,n.mid.segment=i.value()),o.push([0,n]),n=n.mid;else break}const r=n.value;n.value=t,n.key=e;for(let a=o.length-1;a>=0;a--){const l=o[a][1];l.updateHeight();const c=l.balanceFactor();if(c<-1||c>1){const h=o[a][0],d=o[a+1][0];if(h===1&&d===1)o[a][1]=l.rotateLeft();else if(h===-1&&d===-1)o[a][1]=l.rotateRight();else if(h===1&&d===-1)l.right=o[a+1][1]=o[a+1][1].rotateRight(),o[a][1]=l.rotateLeft();else if(h===-1&&d===1)l.left=o[a+1][1]=o[a+1][1].rotateLeft(),o[a][1]=l.rotateRight();else throw new Error;if(a>0)switch(o[a-1][0]){case-1:o[a-1][1].left=o[a][1];break;case 1:o[a-1][1].right=o[a][1];break;case 0:o[a-1][1].mid=o[a][1];break}else this._root=o[0][1]}}return r}get(e){var t;return(t=this._getNode(e))===null||t===void 0?void 0:t.value}_getNode(e){const t=this._iter.reset(e);let i=this._root;for(;i;){const n=t.cmp(i.segment);if(n>0)i=i.left;else if(n<0)i=i.right;else if(t.hasNext())t.next(),i=i.mid;else break}return i}has(e){const t=this._getNode(e);return!((t==null?void 0:t.value)===void 0&&(t==null?void 0:t.mid)===void 0)}delete(e){return this._delete(e,!1)}deleteSuperstr(e){return this._delete(e,!0)}_delete(e,t){var i;const n=this._iter.reset(e),o=[];let r=this._root;for(;r;){const a=n.cmp(r.segment);if(a>0)o.push([-1,r]),r=r.left;else if(a<0)o.push([1,r]),r=r.right;else if(n.hasNext())n.next(),o.push([0,r]),r=r.mid;else break}if(!!r){if(t?(r.left=void 0,r.mid=void 0,r.right=void 0,r.height=1):(r.key=void 0,r.value=void 0),!r.mid&&!r.value)if(r.left&&r.right){const a=this._min(r.right),{key:l,value:c,segment:h}=a;this._delete(a.key,!1),r.key=l,r.value=c,r.segment=h}else{const a=(i=r.left)!==null&&i!==void 0?i:r.right;if(o.length>0){const[l,c]=o[o.length-1];switch(l){case-1:c.left=a;break;case 0:c.mid=a;break;case 1:c.right=a;break}}else this._root=a}for(let a=o.length-1;a>=0;a--){const l=o[a][1];l.updateHeight();const c=l.balanceFactor();if(c>1?(l.right.balanceFactor()>=0||(l.right=l.right.rotateRight()),o[a][1]=l.rotateLeft()):c<-1&&(l.left.balanceFactor()<=0||(l.left=l.left.rotateLeft()),o[a][1]=l.rotateRight()),a>0)switch(o[a-1][0]){case-1:o[a-1][1].left=o[a][1];break;case 1:o[a-1][1].right=o[a][1];break;case 0:o[a-1][1].mid=o[a][1];break}else this._root=o[0][1]}}}_min(e){for(;e.left;)e=e.left;return e}findSubstr(e){const t=this._iter.reset(e);let i=this._root,n;for(;i;){const o=t.cmp(i.segment);if(o>0)i=i.left;else if(o<0)i=i.right;else if(t.hasNext())t.next(),n=i.value||n,i=i.mid;else break}return i&&i.value||n}findSuperstr(e){const t=this._iter.reset(e);let i=this._root;for(;i;){const n=t.cmp(i.segment);if(n>0)i=i.left;else if(n<0)i=i.right;else if(t.hasNext())t.next(),i=i.mid;else return i.mid?this._entries(i.mid):void 0}}forEach(e){for(const[t,i]of this)e(i,t)}*[Symbol.iterator](){yield*this._entries(this._root)}*_entries(e){!e||(e.left&&(yield*this._entries(e.left)),e.value&&(yield[e.key,e.value]),e.mid&&(yield*this._entries(e.mid)),e.right&&(yield*this._entries(e.right)))}}class G9{constructor(e,t){this.uri=e,this.value=t}}class ti{constructor(e,t){this[wv]="ResourceMap",e instanceof ti?(this.map=new Map(e.map),this.toKey=t!=null?t:ti.defaultToKey):(this.map=new Map,this.toKey=e!=null?e:ti.defaultToKey)}set(e,t){return this.map.set(this.toKey(e),new G9(e,t)),this}get(e){var t;return(t=this.map.get(this.toKey(e)))===null||t===void 0?void 0:t.value}has(e){return this.map.has(this.toKey(e))}get size(){return this.map.size}clear(){this.map.clear()}delete(e){return this.map.delete(this.toKey(e))}forEach(e,t){typeof t!="undefined"&&(e=e.bind(t));for(let[i,n]of this.map)e(n.value,n.uri,this)}*values(){for(let e of this.map.values())yield e.value}*keys(){for(let e of this.map.values())yield e.uri}*entries(){for(let e of this.map.values())yield[e.uri,e.value]}*[(wv=Symbol.toStringTag,Symbol.iterator)](){for(let[,e]of this.map)yield[e.uri,e.value]}}ti.defaultToKey=s=>s.toString();class Z9{constructor(){this[vv]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){var e;return(e=this._head)===null||e===void 0?void 0:e.value}get last(){var e;return(e=this._tail)===null||e===void 0?void 0:e.value}has(e){return this._map.has(e)}get(e,t=0){const i=this._map.get(e);if(!!i)return t!==0&&this.touch(i,t),i.value}set(e,t,i=0){let n=this._map.get(e);if(n)n.value=t,i!==0&&this.touch(n,i);else{switch(n={key:e,value:t,next:void 0,previous:void 0},i){case 0:this.addItemLast(n);break;case 1:this.addItemFirst(n);break;case 2:this.addItemLast(n);break;default:this.addItemLast(n);break}this._map.set(e,n),this._size++}return this}delete(e){return!!this.remove(e)}remove(e){const t=this._map.get(e);if(!!t)return this._map.delete(e),this.removeItem(t),this._size--,t.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");const e=this._head;return this._map.delete(e.key),this.removeItem(e),this._size--,e.value}forEach(e,t){const i=this._state;let n=this._head;for(;n;){if(t?e.bind(t)(n.value,n.key,this):e(n.value,n.key,this),this._state!==i)throw new Error("LinkedMap got modified during iteration.");n=n.next}}keys(){const e=this,t=this._state;let i=this._head;const n={[Symbol.iterator](){return n},next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(i){const o={value:i.key,done:!1};return i=i.next,o}else return{value:void 0,done:!0}}};return n}values(){const e=this,t=this._state;let i=this._head;const n={[Symbol.iterator](){return n},next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(i){const o={value:i.value,done:!1};return i=i.next,o}else return{value:void 0,done:!0}}};return n}entries(){const e=this,t=this._state;let i=this._head;const n={[Symbol.iterator](){return n},next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(i){const o={value:[i.key,i.value],done:!1};return i=i.next,o}else return{value:void 0,done:!0}}};return n}[(vv=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(e){if(e>=this.size)return;if(e===0){this.clear();return}let t=this._head,i=this.size;for(;t&&i>e;)this._map.delete(t.key),t=t.next,i--;this._head=t,this._size=i,t&&(t.previous=void 0),this._state++}addItemFirst(e){if(!this._head&&!this._tail)this._tail=e;else if(this._head)e.next=this._head,this._head.previous=e;else throw new Error("Invalid list");this._head=e,this._state++}addItemLast(e){if(!this._head&&!this._tail)this._head=e;else if(this._tail)e.previous=this._tail,this._tail.next=e;else throw new Error("Invalid list");this._tail=e,this._state++}removeItem(e){if(e===this._head&&e===this._tail)this._head=void 0,this._tail=void 0;else if(e===this._head){if(!e.next)throw new Error("Invalid list");e.next.previous=void 0,this._head=e.next}else if(e===this._tail){if(!e.previous)throw new Error("Invalid list");e.previous.next=void 0,this._tail=e.previous}else{const t=e.next,i=e.previous;if(!t||!i)throw new Error("Invalid list");t.previous=i,i.next=t}e.next=void 0,e.previous=void 0,this._state++}touch(e,t){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(t!==1&&t!==2)){if(t===1){if(e===this._head)return;const i=e.next,n=e.previous;e===this._tail?(n.next=void 0,this._tail=n):(i.previous=n,n.next=i),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e,this._state++}else if(t===2){if(e===this._tail)return;const i=e.next,n=e.previous;e===this._head?(i.previous=void 0,this._head=i):(i.previous=n,n.next=i),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}}toJSON(){const e=[];return this.forEach((t,i)=>{e.push([i,t])}),e}fromJSON(e){this.clear();for(const[t,i]of e)this.set(t,i)}}class cb extends Z9{constructor(e,t=1){super(),this._limit=e,this._ratio=Math.min(Math.max(0,t),1)}get limit(){return this._limit}set limit(e){this._limit=e,this.checkTrim()}get(e,t=2){return super.get(e,t)}peek(e){return super.get(e,0)}set(e,t){return super.set(e,t,2),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}}function mi(s,e,t){return Math.min(Math.max(s,e),t)}class t2{constructor(){this._n=1,this._val=0}update(e){return this._val=this._val+(e-this._val)/this._n,this._n+=1,this._val}get value(){return this._val}}class Y9{constructor(e){this._n=0,this._val=0,this._values=[],this._index=0,this._sum=0,this._values=new Array(e),this._values.fill(0,0,e)}update(e){const t=this._values[this._index];return this._values[this._index]=e,this._index=(this._index+1)%this._values.length,this._sum-=t,this._sum+=e,this._n=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},Q9=globalThis&&globalThis.__param||function(s,e){return function(t,i){e(t,i,s)}};const Xf=pe("ILanguageFeatureDebounceService");var Ju;(function(s){const e=new WeakMap;let t=0;function i(n){let o=e.get(n);return o===void 0&&(o=++t,e.set(n,o)),o}s.of=i})(Ju||(Ju={}));class J9{constructor(e,t,i,n,o,r){this._logService=e,this._name=t,this._registry=i,this._default=n,this._min=o,this._max=r,this._cache=new cb(50,.7)}_key(e){return e.id+this._registry.all(e).reduce((t,i)=>g0(Ju.of(i),t),0)}get(e){const t=this._key(e),i=this._cache.get(t);return i?mi(i.value,this._min,this._max):this.default()}update(e,t){const i=this._key(e);let n=this._cache.get(i);n||(n=new Y9(6),this._cache.set(i,n));const o=mi(n.update(t),this._min,this._max);return this._logService.trace(`[DEBOUNCE: ${this._name}] for ${e.uri.toString()} is ${o}ms`),o}_overall(){const e=new t2;for(const[,t]of this._cache)e.update(t.value);return e.value}default(){const e=this._overall()|0||this._default;return mi(e,this._min,this._max)}}let V_=class{constructor(e){this._logService=e,this._data=new Map}for(e,t,i){var n,o,r;const a=(n=i==null?void 0:i.min)!==null&&n!==void 0?n:50,l=(o=i==null?void 0:i.max)!==null&&o!==void 0?o:Math.pow(a,2),c=(r=i==null?void 0:i.key)!==null&&r!==void 0?r:void 0,h=`${Ju.of(e)},${a}${c?","+c:""}`;let d=this._data.get(h);return d||(d=new J9(this._logService,t,e,this._overallAverage()|0||a*1.5,a,l),this._data.set(h,d)),d}_overallAverage(){let e=new t2;for(let t of this._data.values())e.update(t.default());return e.value}};V_=X9([Q9(0,Do)],V_);ve(Xf,V_,!0);const eO=pe("IWorkspaceEditService");function tO(s){return Ti(s)&&(Boolean(s.newUri)||Boolean(s.oldUri))}function iO(s){return Ti(s)&&we.isUri(s.resource)&&Ti(s.edit)}class i2{constructor(e){this.metadata=e}static convert(e){return e.edits.map(t=>{if(iO(t))return new n2(t.resource,t.edit,t.modelVersionId,t.metadata);if(tO(t))return new nO(t.oldUri,t.newUri,t.options,t.metadata);throw new Error("Unsupported edit")})}}class n2 extends i2{constructor(e,t,i,n){super(n),this.resource=e,this.textEdit=t,this.versionId=i}}class nO extends i2{constructor(e,t,i,n){super(n),this.oldResource=e,this.newResource=t,this.options=i}}const sO=Object.freeze({id:"editor",order:5,type:"object",title:p("editorConfigurationTitle","Editor"),scope:5}),ef=Object.assign(Object.assign({},sO),{properties:{"editor.tabSize":{type:"number",default:Bt.tabSize,minimum:1,markdownDescription:p("tabSize","The number of spaces a tab is equal to. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.")},"editor.insertSpaces":{type:"boolean",default:Bt.insertSpaces,markdownDescription:p("insertSpaces","Insert spaces when pressing `Tab`. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.")},"editor.detectIndentation":{type:"boolean",default:Bt.detectIndentation,markdownDescription:p("detectIndentation","Controls whether `#editor.tabSize#` and `#editor.insertSpaces#` will be automatically detected when a file is opened based on the file contents.")},"editor.trimAutoWhitespace":{type:"boolean",default:Bt.trimAutoWhitespace,description:p("trimAutoWhitespace","Remove trailing auto inserted whitespace.")},"editor.largeFileOptimizations":{type:"boolean",default:Bt.largeFileOptimizations,description:p("largeFileOptimizations","Special handling for large files to disable certain memory intensive features.")},"editor.wordBasedSuggestions":{type:"boolean",default:!0,description:p("wordBasedSuggestions","Controls whether completions should be computed based on words in the document.")},"editor.wordBasedSuggestionsMode":{enum:["currentDocument","matchingDocuments","allDocuments"],default:"matchingDocuments",enumDescriptions:[p("wordBasedSuggestionsMode.currentDocument","Only suggest words from the active document."),p("wordBasedSuggestionsMode.matchingDocuments","Suggest words from all open documents of the same language."),p("wordBasedSuggestionsMode.allDocuments","Suggest words from all open documents.")],description:p("wordBasedSuggestionsMode","Controls from which documents word based completions are computed.")},"editor.semanticHighlighting.enabled":{enum:[!0,!1,"configuredByTheme"],enumDescriptions:[p("semanticHighlighting.true","Semantic highlighting enabled for all color themes."),p("semanticHighlighting.false","Semantic highlighting disabled for all color themes."),p("semanticHighlighting.configuredByTheme","Semantic highlighting is configured by the current color theme's `semanticHighlighting` setting.")],default:"configuredByTheme",description:p("semanticHighlighting.enabled","Controls whether the semanticHighlighting is shown for the languages that support it.")},"editor.stablePeek":{type:"boolean",default:!1,markdownDescription:p("stablePeek","Keep peek editors open even when double clicking their content or when hitting `Escape`.")},"editor.maxTokenizationLineLength":{type:"integer",default:2e4,description:p("maxTokenizationLineLength","Lines above this length will not be tokenized for performance reasons")},"editor.language.brackets":{type:"array",default:!1,description:p("schema.brackets","Defines the bracket symbols that increase or decrease the indentation."),items:{type:"array",items:[{type:"string",description:p("schema.openBracket","The opening bracket character or string sequence.")},{type:"string",description:p("schema.closeBracket","The closing bracket character or string sequence.")}]}},"editor.language.colorizedBracketPairs":{type:"array",default:!1,description:p("schema.colorizedBracketPairs","Defines the bracket pairs that are colorized by their nesting level if bracket pair colorization is enabled."),items:{type:"array",items:[{type:"string",description:p("schema.openBracket","The opening bracket character or string sequence.")},{type:"string",description:p("schema.closeBracket","The closing bracket character or string sequence.")}]}},"diffEditor.maxComputationTime":{type:"number",default:5e3,description:p("maxComputationTime","Timeout in milliseconds after which diff computation is cancelled. Use 0 for no timeout.")},"diffEditor.maxFileSize":{type:"number",default:50,description:p("maxFileSize","Maximum file size in MB for which to compute diffs. Use 0 for no limit.")},"diffEditor.renderSideBySide":{type:"boolean",default:!0,description:p("sideBySide","Controls whether the diff editor shows the diff side by side or inline.")},"diffEditor.ignoreTrimWhitespace":{type:"boolean",default:!0,description:p("ignoreTrimWhitespace","When enabled, the diff editor ignores changes in leading or trailing whitespace.")},"diffEditor.renderIndicators":{type:"boolean",default:!0,description:p("renderIndicators","Controls whether the diff editor shows +/- indicators for added/removed changes.")},"diffEditor.codeLens":{type:"boolean",default:!1,description:p("codeLens","Controls whether the editor shows CodeLens.")},"diffEditor.wordWrap":{type:"string",enum:["off","on","inherit"],default:"inherit",markdownEnumDescriptions:[p("wordWrap.off","Lines will never wrap."),p("wordWrap.on","Lines will wrap at the viewport width."),p("wordWrap.inherit","Lines will wrap according to the `#editor.wordWrap#` setting.")]}}});function oO(s){return typeof s.type!="undefined"||typeof s.anyOf!="undefined"}for(const s of oa){const e=s.schema;if(typeof e!="undefined")if(oO(e))ef.properties[`editor.${s.name}`]=e;else for(const t in e)Object.hasOwnProperty.call(e,t)&&(ef.properties[t]=e[t])}let fd=null;function s2(){return fd===null&&(fd=Object.create(null),Object.keys(ef.properties).forEach(s=>{fd[s]=!0})),fd}function rO(s){return s2()[`editor.${s}`]||!1}function aO(s){return s2()[`diffEditor.${s}`]||!1}const lO=xt.as(kl.Configuration);lO.registerConfiguration(ef);class cO{static insert(e,t){return{range:new D(e.lineNumber,e.column,e.lineNumber,e.column),text:t,forceMoveMarkers:!0}}static delete(e){return{range:e,text:null}}static replace(e,t){return{range:e,text:t}}static replaceMove(e,t){return{range:e,text:t,forceMoveMarkers:!0}}}class xi{constructor(e={},t=[],i=[]){this._contents=e,this._keys=t,this._overrides=i,this.isFrozen=!1,this.overrideConfigurations=new Map}get contents(){return this.checkAndFreeze(this._contents)}get overrides(){return this.checkAndFreeze(this._overrides)}get keys(){return this.checkAndFreeze(this._keys)}isEmpty(){return this._keys.length===0&&Object.keys(this._contents).length===0&&this._overrides.length===0}getValue(e){return e?mC(this.contents,e):this.contents}getOverrideValue(e,t){const i=this.getContentsForOverrideIdentifer(t);return i?e?mC(i,e):i:void 0}override(e){let t=this.overrideConfigurations.get(e);return t||(t=this.createOverrideConfigurationModel(e),this.overrideConfigurations.set(e,t)),t}merge(...e){const t=Ys(this.contents),i=Ys(this.overrides),n=[...this.keys];for(const o of e){this.mergeContents(t,o.contents);for(const r of o.overrides){const[a]=i.filter(l=>Kn(l.identifiers,r.identifiers));a?(this.mergeContents(a.contents,r.contents),a.keys.push(...r.keys),a.keys=wo(a.keys)):i.push(Ys(r))}for(const r of o.keys)n.indexOf(r)===-1&&n.push(r)}return new xi(t,n,i)}freeze(){return this.isFrozen=!0,this}createOverrideConfigurationModel(e){const t=this.getContentsForOverrideIdentifer(e);if(!t||typeof t!="object"||!Object.keys(t).length)return this;let i={};for(const n of wo([...Object.keys(this.contents),...Object.keys(t)])){let o=this.contents[n],r=t[n];r&&(typeof o=="object"&&typeof r=="object"?(o=Ys(o),this.mergeContents(o,r)):o=r),i[n]=o}return new xi(i,this.keys,this.overrides)}mergeContents(e,t){for(const i of Object.keys(t)){if(i in e&&Ti(e[i])&&Ti(t[i])){this.mergeContents(e[i],t[i]);continue}e[i]=Ys(t[i])}}checkAndFreeze(e){return this.isFrozen&&!Object.isFrozen(e)?bI(e):e}getContentsForOverrideIdentifer(e){let t=null,i=null;const n=o=>{o&&(i?this.mergeContents(i,o):i=Ys(o))};for(const o of this.overrides)Kn(o.identifiers,[e])?t=o.contents:o.identifiers.includes(e)&&n(o.contents);return n(t),i}toJSON(){return{contents:this.contents,overrides:this.overrides,keys:this.keys}}setValue(e,t){this.addKey(e),f0(this.contents,e,t,i=>{throw new Error(i)})}removeValue(e){this.removeKey(e)&&AD(this.contents,e)}addKey(e){let t=this.keys.length;for(let i=0;iconsole.error(`Conflict in default settings: ${c}`))}for(const r of Object.keys(n))qc.test(r)&&o.push({identifiers:yk(r),keys:Object.keys(n[r]),contents:Fy(n[r],a=>console.error(`Conflict in default settings file: ${a}`))});super(n,i,o)}}class Qf{constructor(e,t,i=new xi,n=new xi,o=new ti,r=new xi,a=new ti,l=!0){this._defaultConfiguration=e,this._localUserConfiguration=t,this._remoteUserConfiguration=i,this._workspaceConfiguration=n,this._folderConfigurations=o,this._memoryConfiguration=r,this._memoryConfigurationByResource=a,this._freeze=l,this._workspaceConsolidatedConfiguration=null,this._foldersConsolidatedConfigurations=new ti,this._userConfiguration=null}getValue(e,t,i){return this.getConsolidateConfigurationModel(t,i).getValue(e)}updateValue(e,t,i={}){let n;i.resource?(n=this._memoryConfigurationByResource.get(i.resource),n||(n=new xi,this._memoryConfigurationByResource.set(i.resource,n))):n=this._memoryConfiguration,t===void 0?n.removeValue(e):n.setValue(e,t),i.resource||(this._workspaceConsolidatedConfiguration=null)}inspect(e,t,i){const n=this.getConsolidateConfigurationModel(t,i),o=this.getFolderConfigurationModelForResource(t.resource,i),r=t.resource?this._memoryConfigurationByResource.get(t.resource)||this._memoryConfiguration:this._memoryConfiguration,a=t.overrideIdentifier?this._defaultConfiguration.freeze().override(t.overrideIdentifier).getValue(e):this._defaultConfiguration.freeze().getValue(e),l=t.overrideIdentifier?this.userConfiguration.freeze().override(t.overrideIdentifier).getValue(e):this.userConfiguration.freeze().getValue(e),c=t.overrideIdentifier?this.localUserConfiguration.freeze().override(t.overrideIdentifier).getValue(e):this.localUserConfiguration.freeze().getValue(e),h=t.overrideIdentifier?this.remoteUserConfiguration.freeze().override(t.overrideIdentifier).getValue(e):this.remoteUserConfiguration.freeze().getValue(e),d=i?t.overrideIdentifier?this._workspaceConfiguration.freeze().override(t.overrideIdentifier).getValue(e):this._workspaceConfiguration.freeze().getValue(e):void 0,u=o?t.overrideIdentifier?o.freeze().override(t.overrideIdentifier).getValue(e):o.freeze().getValue(e):void 0,f=t.overrideIdentifier?r.override(t.overrideIdentifier).getValue(e):r.getValue(e),m=n.getValue(e),_=wo(lI(n.overrides.map(b=>b.identifiers))).filter(b=>n.getOverrideValue(e,b)!==void 0);return{defaultValue:a,userValue:l,userLocalValue:c,userRemoteValue:h,workspaceValue:d,workspaceFolderValue:u,memoryValue:f,value:m,default:a!==void 0?{value:this._defaultConfiguration.freeze().getValue(e),override:t.overrideIdentifier?this._defaultConfiguration.freeze().getOverrideValue(e,t.overrideIdentifier):void 0}:void 0,user:l!==void 0?{value:this.userConfiguration.freeze().getValue(e),override:t.overrideIdentifier?this.userConfiguration.freeze().getOverrideValue(e,t.overrideIdentifier):void 0}:void 0,userLocal:c!==void 0?{value:this.localUserConfiguration.freeze().getValue(e),override:t.overrideIdentifier?this.localUserConfiguration.freeze().getOverrideValue(e,t.overrideIdentifier):void 0}:void 0,userRemote:h!==void 0?{value:this.remoteUserConfiguration.freeze().getValue(e),override:t.overrideIdentifier?this.remoteUserConfiguration.freeze().getOverrideValue(e,t.overrideIdentifier):void 0}:void 0,workspace:d!==void 0?{value:this._workspaceConfiguration.freeze().getValue(e),override:t.overrideIdentifier?this._workspaceConfiguration.freeze().getOverrideValue(e,t.overrideIdentifier):void 0}:void 0,workspaceFolder:u!==void 0?{value:o==null?void 0:o.freeze().getValue(e),override:t.overrideIdentifier?o==null?void 0:o.freeze().getOverrideValue(e,t.overrideIdentifier):void 0}:void 0,memory:f!==void 0?{value:r.getValue(e),override:t.overrideIdentifier?r.getOverrideValue(e,t.overrideIdentifier):void 0}:void 0,overrideIdentifiers:_.length?_:void 0}}get userConfiguration(){return this._userConfiguration||(this._userConfiguration=this._remoteUserConfiguration.isEmpty()?this._localUserConfiguration:this._localUserConfiguration.merge(this._remoteUserConfiguration),this._freeze&&this._userConfiguration.freeze()),this._userConfiguration}get localUserConfiguration(){return this._localUserConfiguration}get remoteUserConfiguration(){return this._remoteUserConfiguration}getConsolidateConfigurationModel(e,t){let i=this.getConsolidatedConfigurationModelForResource(e,t);return e.overrideIdentifier?i.override(e.overrideIdentifier):i}getConsolidatedConfigurationModelForResource({resource:e},t){let i=this.getWorkspaceConsolidatedConfiguration();if(t&&e){const n=t.getFolder(e);n&&(i=this.getFolderConsolidatedConfiguration(n.uri)||i);const o=this._memoryConfigurationByResource.get(e);o&&(i=i.merge(o))}return i}getWorkspaceConsolidatedConfiguration(){return this._workspaceConsolidatedConfiguration||(this._workspaceConsolidatedConfiguration=this._defaultConfiguration.merge(this.userConfiguration,this._workspaceConfiguration,this._memoryConfiguration),this._freeze&&(this._workspaceConfiguration=this._workspaceConfiguration.freeze())),this._workspaceConsolidatedConfiguration}getFolderConsolidatedConfiguration(e){let t=this._foldersConsolidatedConfigurations.get(e);if(!t){const i=this.getWorkspaceConsolidatedConfiguration(),n=this._folderConfigurations.get(e);n?(t=i.merge(n),this._freeze&&(t=t.freeze()),this._foldersConsolidatedConfigurations.set(e,t)):t=i}return t}getFolderConfigurationModelForResource(e,t){if(t&&e){const i=t.getFolder(e);if(i)return this._folderConfigurations.get(i.uri)}}toData(){return{defaults:{contents:this._defaultConfiguration.contents,overrides:this._defaultConfiguration.overrides,keys:this._defaultConfiguration.keys},user:{contents:this.userConfiguration.contents,overrides:this.userConfiguration.overrides,keys:this.userConfiguration.keys},workspace:{contents:this._workspaceConfiguration.contents,overrides:this._workspaceConfiguration.overrides,keys:this._workspaceConfiguration.keys},folders:[...this._folderConfigurations.keys()].reduce((e,t)=>{const{contents:i,overrides:n,keys:o}=this._folderConfigurations.get(t);return e.push([t,{contents:i,overrides:n,keys:o}]),e},[])}}static parse(e){const t=this.parseConfigurationModel(e.defaults),i=this.parseConfigurationModel(e.user),n=this.parseConfigurationModel(e.workspace),o=e.folders.reduce((r,a)=>(r.set(we.revive(a[0]),this.parseConfigurationModel(a[1])),r),new ti);return new Qf(t,i,new xi,n,o,new xi,new ti,!1)}static parseConfigurationModel(e){return new xi(e.contents,e.keys,e.overrides).freeze()}}class dO{constructor(e,t,i,n){this.change=e,this.previous=t,this.currentConfiguraiton=i,this.currentWorkspace=n,this._previousConfiguration=void 0;const o=new Set;e.keys.forEach(a=>o.add(a)),e.overrides.forEach(([,a])=>a.forEach(l=>o.add(l))),this.affectedKeys=[...o.values()];const r=new xi;this.affectedKeys.forEach(a=>r.setValue(a,{})),this.affectedKeysTree=r.contents}get previousConfiguration(){return!this._previousConfiguration&&this.previous&&(this._previousConfiguration=Qf.parse(this.previous.data)),this._previousConfiguration}affectsConfiguration(e,t){var i;if(this.doesAffectedKeysTreeContains(this.affectedKeysTree,e)){if(t){const n=this.previousConfiguration?this.previousConfiguration.getValue(e,t,(i=this.previous)===null||i===void 0?void 0:i.workspace):void 0,o=this.currentConfiguraiton.getValue(e,t,this.currentWorkspace);return!Ri(n,o)}return!0}return!1}doesAffectedKeysTreeContains(e,t){let i=Fy({[t]:!0},()=>{}),n;for(;typeof i=="object"&&(n=Object.keys(i)[0]);){if(e=e[n],!e)return!1;i=i[n]}return!0}}const uO=/^(cursor|delete)/;class fO extends W{constructor(e,t,i,n,o){super(),this._contextKeyService=e,this._commandService=t,this._telemetryService=i,this._notificationService=n,this._logService=o,this._onDidUpdateKeybindings=this._register(new M),this._currentChord=null,this._currentChordChecker=new vh,this._currentChordStatusMessage=null,this._ignoreSingleModifiers=pa.EMPTY,this._currentSingleModifier=null,this._currentSingleModifierClearTimeout=new os,this._logging=!1}get onDidUpdateKeybindings(){return this._onDidUpdateKeybindings?this._onDidUpdateKeybindings.event:K.None}dispose(){super.dispose()}_log(e){this._logging&&this._logService.info(`[KeybindingService]: ${e}`)}getKeybindings(){return this._getResolver().getKeybindings()}lookupKeybinding(e,t){const i=this._getResolver().lookupPrimaryKeybinding(e,t||this._contextKeyService);if(!!i)return i.resolvedKeybinding}dispatchEvent(e,t){return this._dispatch(e,t)}softDispatch(e,t){const i=this.resolveKeyboardEvent(e);if(i.isChord())return console.warn("Unexpected keyboard event mapped to a chord"),null;const[n]=i.getDispatchParts();if(n===null)return null;const o=this._contextKeyService.getContext(t),r=this._currentChord?this._currentChord.keypress:null;return this._getResolver().resolve(o,r,n)}_enterChordMode(e,t){this._currentChord={keypress:e,label:t},this._currentChordStatusMessage=this._notificationService.status(p("first.chord","({0}) was pressed. Waiting for second key of chord...",t));const i=Date.now();this._currentChordChecker.cancelAndSet(()=>{if(!this._documentHasFocus()){this._leaveChordMode();return}Date.now()-i>5e3&&this._leaveChordMode()},500)}_leaveChordMode(){this._currentChordStatusMessage&&(this._currentChordStatusMessage.dispose(),this._currentChordStatusMessage=null),this._currentChordChecker.cancel(),this._currentChord=null}_dispatch(e,t){return this._doDispatch(this.resolveKeyboardEvent(e),t,!1)}_singleModifierDispatch(e,t){const i=this.resolveKeyboardEvent(e),[n]=i.getSingleModifierDispatchParts();if(n)return this._ignoreSingleModifiers.has(n)?(this._log(`+ Ignoring single modifier ${n} due to it being pressed together with other keys.`),this._ignoreSingleModifiers=pa.EMPTY,this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1):(this._ignoreSingleModifiers=pa.EMPTY,this._currentSingleModifier===null?(this._log(`+ Storing single modifier for possible chord ${n}.`),this._currentSingleModifier=n,this._currentSingleModifierClearTimeout.cancelAndSet(()=>{this._log("+ Clearing single modifier due to 300ms elapsed."),this._currentSingleModifier=null},300),!1):n===this._currentSingleModifier?(this._log(`/ Dispatching single modifier chord ${n} ${n}`),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,this._doDispatch(i,t,!0)):(this._log(`+ Clearing single modifier due to modifier mismatch: ${this._currentSingleModifier} ${n}`),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1));const[o]=i.getParts();return this._ignoreSingleModifiers=new pa(o),this._currentSingleModifier!==null&&this._log("+ Clearing single modifier due to other key up."),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1}_doDispatch(e,t,i=!1){let n=!1;if(e.isChord())return console.warn("Unexpected keyboard event mapped to a chord"),!1;let o=null,r=null;if(i){const[h]=e.getSingleModifierDispatchParts();o=h,r=h}else[o]=e.getDispatchParts(),r=this._currentChord?this._currentChord.keypress:null;if(o===null)return this._log("\\ Keyboard event cannot be dispatched in keydown phase."),n;const a=this._contextKeyService.getContext(t),l=e.getLabel(),c=this._getResolver().resolve(a,r,o);return this._logService.trace("KeybindingService#dispatch",l,c==null?void 0:c.commandId),c&&c.enterChord?(n=!0,this._enterChordMode(o,l),n):(this._currentChord&&(!c||!c.commandId)&&(this._notificationService.status(p("missing.chord","The key combination ({0}, {1}) is not a command.",this._currentChord.label,l),{hideAfter:10*1e3}),n=!0),this._leaveChordMode(),c&&c.commandId&&(c.bubble||(n=!0),typeof c.commandArgs=="undefined"?this._commandService.executeCommand(c.commandId).then(void 0,h=>this._notificationService.warn(h)):this._commandService.executeCommand(c.commandId,c.commandArgs).then(void 0,h=>this._notificationService.warn(h)),uO.test(c.commandId)||this._telemetryService.publicLog2("workbenchActionExecuted",{id:c.commandId,from:"keybinding"})),n)}mightProducePrintableCharacter(e){return e.ctrlKey||e.metaKey?!1:e.keyCode>=31&&e.keyCode<=56||e.keyCode>=21&&e.keyCode<=30}}class pa{constructor(e){this._ctrlKey=e?e.ctrlKey:!1,this._shiftKey=e?e.shiftKey:!1,this._altKey=e?e.altKey:!1,this._metaKey=e?e.metaKey:!1}has(e){switch(e){case"ctrl":return this._ctrlKey;case"shift":return this._shiftKey;case"alt":return this._altKey;case"meta":return this._metaKey}}}pa.EMPTY=new pa(null);const Li=pe("keybindingService");class wc{constructor(e,t,i){this._log=i,this._defaultKeybindings=e,this._defaultBoundCommands=new Map;for(const n of e){const o=n.command;o&&o.charAt(0)!=="-"&&this._defaultBoundCommands.set(o,!0)}this._map=new Map,this._lookupMap=new Map,this._keybindings=wc.handleRemovals([].concat(e).concat(t));for(let n=0,o=this._keybindings.length;n=0;n--){let o=i[n];if(o.command===t.command)continue;const r=o.keypressParts.length>1,a=t.keypressParts.length>1;r&&a&&o.keypressParts[1]!==t.keypressParts[1]||wc.whenIsEntirelyIncluded(o.when,t.when)&&this._removeFromLookupMap(o)}i.push(t),this._addToLookupMap(t)}_addToLookupMap(e){if(!e.command)return;let t=this._lookupMap.get(e.command);typeof t=="undefined"?(t=[e],this._lookupMap.set(e.command,t)):t.push(e)}_removeFromLookupMap(e){if(!e.command)return;let t=this._lookupMap.get(e.command);if(typeof t!="undefined"){for(let i=0,n=t.length;i=0;n--){const o=i[n];if(t.contextMatchesRules(o.when))return o}return i[i.length-1]}resolve(e,t,i){this._log(`| Resolving ${i}${t?` chorded from ${t}`:""}`);let n=null;if(t!==null){const r=this._map.get(t);if(typeof r=="undefined")return this._log("\\ No keybinding entries."),null;n=[];for(let a=0,l=r.length;a1&&o.keypressParts[1]!==null?(this._log(`\\ From ${n.length} keybinding entries, matched chord, when: ${Sv(o.when)}, source: ${yv(o)}.`),{enterChord:!0,leaveChord:!1,commandId:null,commandArgs:null,bubble:!1}):(this._log(`\\ From ${n.length} keybinding entries, matched ${o.command}, when: ${Sv(o.when)}, source: ${yv(o)}.`),{enterChord:!1,leaveChord:o.keypressParts.length>1,commandId:o.command,commandArgs:o.commandArgs,bubble:o.bubble}):(this._log(`\\ From ${n.length} keybinding entries, no when clauses matched the context.`),null)}_findCommand(e,t){for(let i=t.length-1;i>=0;i--){let n=t[i];if(!!wc._contextMatchesRules(e,n.when))return n}return null}static _contextMatchesRules(e,t){return t?t.evaluate(e):!0}}function Sv(s){return s?`${s.serialize()}`:"no when condition"}function yv(s){return s.extensionId?s.isBuiltinExtension?`built-in extension ${s.extensionId}`:`user extension ${s.extensionId}`:s.isDefault?"built-in":"user"}class Lv{constructor(e,t,i,n,o,r,a){this._resolvedKeybindingItemBrand=void 0,this.resolvedKeybinding=e,this.keypressParts=e?W_(e.getDispatchParts()):[],e&&this.keypressParts.length===0&&(this.keypressParts=W_(e.getSingleModifierDispatchParts())),this.bubble=t?t.charCodeAt(0)===94:!1,this.command=this.bubble?t.substr(1):t,this.commandArgs=i,this.when=n,this.isDefault=o,this.extensionId=r,this.isBuiltinExtension=a}}function W_(s){let e=[];for(let t=0,i=s.length;tthis._getLabel(e))}getAriaLabel(){return gO.toLabel(this._os,this._parts,e=>this._getAriaLabel(e))}getElectronAccelerator(){return this._parts.length>1||this._parts[0].isDuplicateModifierCase()?null:mO.toLabel(this._os,this._parts,e=>this._getElectronAccelerator(e))}isChord(){return this._parts.length>1}getParts(){return this._parts.map(e=>this._getPart(e))}_getPart(e){return new l4(e.ctrlKey,e.shiftKey,e.altKey,e.metaKey,this._getLabel(e),this._getAriaLabel(e))}getDispatchParts(){return this._parts.map(e=>this._getDispatchPart(e))}getSingleModifierDispatchParts(){return this._parts.map(e=>this._getSingleModifierDispatchPart(e))}}class eh extends _O{constructor(e,t){super(t,e.parts)}_keyCodeToUILabel(e){if(this._os===2)switch(e){case 15:return"\u2190";case 16:return"\u2191";case 17:return"\u2192";case 18:return"\u2193"}return Jo.toString(e)}_getLabel(e){return e.isDuplicateModifierCase()?"":this._keyCodeToUILabel(e.keyCode)}_getAriaLabel(e){return e.isDuplicateModifierCase()?"":Jo.toString(e.keyCode)}_getElectronAccelerator(e){return Jo.toElectronAccelerator(e.keyCode)}_getDispatchPart(e){return eh.getDispatchStr(e)}static getDispatchStr(e){if(e.isModifierKey())return null;let t="";return e.ctrlKey&&(t+="ctrl+"),e.shiftKey&&(t+="shift+"),e.altKey&&(t+="alt+"),e.metaKey&&(t+="meta+"),t+=Jo.toString(e.keyCode),t}_getSingleModifierDispatchPart(e){return e.keyCode===5&&!e.shiftKey&&!e.altKey&&!e.metaKey?"ctrl":e.keyCode===4&&!e.ctrlKey&&!e.altKey&&!e.metaKey?"shift":e.keyCode===6&&!e.ctrlKey&&!e.shiftKey&&!e.metaKey?"alt":e.keyCode===57&&!e.ctrlKey&&!e.shiftKey&&!e.altKey?"meta":null}static _scanCodeToKeyCode(e){const t=X1[e];if(t!==-1)return t;switch(e){case 10:return 31;case 11:return 32;case 12:return 33;case 13:return 34;case 14:return 35;case 15:return 36;case 16:return 37;case 17:return 38;case 18:return 39;case 19:return 40;case 20:return 41;case 21:return 42;case 22:return 43;case 23:return 44;case 24:return 45;case 25:return 46;case 26:return 47;case 27:return 48;case 28:return 49;case 29:return 50;case 30:return 51;case 31:return 52;case 32:return 53;case 33:return 54;case 34:return 55;case 35:return 56;case 36:return 22;case 37:return 23;case 38:return 24;case 39:return 25;case 40:return 26;case 41:return 27;case 42:return 28;case 43:return 29;case 44:return 30;case 45:return 21;case 51:return 83;case 52:return 81;case 53:return 87;case 54:return 89;case 55:return 88;case 56:return 0;case 57:return 80;case 58:return 90;case 59:return 86;case 60:return 82;case 61:return 84;case 62:return 85;case 106:return 92}return 0}static _resolveSimpleUserBinding(e){if(!e)return null;if(e instanceof Oc)return e;const t=this._scanCodeToKeyCode(e.scanCode);return t===0?null:new Oc(e.ctrlKey,e.shiftKey,e.altKey,e.metaKey,t)}static resolveUserBinding(e,t){const i=W_(e.map(n=>this._resolveSimpleUserBinding(n)));return i.length>0?[new eh(new vu(i),t)]:[]}}const bO=pe("labelService"),CO=pe("contextService");class wO{constructor(e,t){this.raw=t,this.uri=e.uri,this.index=e.index,this.name=e.name}toJSON(){return{uri:this.uri,name:this.name,index:this.index}}}const vO="code-workspace";p("codeWorkspace","Code Workspace");var kv;(function(s){s.noSelection=p("noSelection","No selection"),s.singleSelectionRange=p("singleSelectionRange","Line {0}, Column {1} ({2} selected)"),s.singleSelection=p("singleSelection","Line {0}, Column {1}"),s.multiSelectionRange=p("multiSelectionRange","{0} selections ({1} characters selected)"),s.multiSelection=p("multiSelection","{0} selections"),s.emergencyConfOn=p("emergencyConfOn","Now changing the setting `accessibilitySupport` to 'on'."),s.openingDocs=p("openingDocs","Now opening the Editor Accessibility documentation page."),s.readonlyDiffEditor=p("readonlyDiffEditor"," in a read-only pane of a diff editor."),s.editableDiffEditor=p("editableDiffEditor"," in a pane of a diff editor."),s.readonlyEditor=p("readonlyEditor"," in a read-only code editor"),s.editableEditor=p("editableEditor"," in a code editor"),s.changeConfigToOnMac=p("changeConfigToOnMac","To configure the editor to be optimized for usage with a Screen Reader press Command+E now."),s.changeConfigToOnWinLinux=p("changeConfigToOnWinLinux","To configure the editor to be optimized for usage with a Screen Reader press Control+E now."),s.auto_on=p("auto_on","The editor is configured to be optimized for usage with a Screen Reader."),s.auto_off=p("auto_off","The editor is configured to never be optimized for usage with a Screen Reader, which is not the case at this time."),s.tabFocusModeOnMsg=p("tabFocusModeOnMsg","Pressing Tab in the current editor will move focus to the next focusable element. Toggle this behavior by pressing {0}."),s.tabFocusModeOnMsgNoKb=p("tabFocusModeOnMsgNoKb","Pressing Tab in the current editor will move focus to the next focusable element. The command {0} is currently not triggerable by a keybinding."),s.tabFocusModeOffMsg=p("tabFocusModeOffMsg","Pressing Tab in the current editor will insert the tab character. Toggle this behavior by pressing {0}."),s.tabFocusModeOffMsgNoKb=p("tabFocusModeOffMsgNoKb","Pressing Tab in the current editor will insert the tab character. The command {0} is currently not triggerable by a keybinding."),s.openDocMac=p("openDocMac","Press Command+H now to open a browser window with more information related to editor accessibility."),s.openDocWinLinux=p("openDocWinLinux","Press Control+H now to open a browser window with more information related to editor accessibility."),s.outroMsg=p("outroMsg","You can dismiss this tooltip and return to the editor by pressing Escape or Shift+Escape."),s.showAccessibilityHelpAction=p("showAccessibilityHelpAction","Show Accessibility Help")})(kv||(kv={}));var xv;(function(s){s.inspectTokensAction=p("inspectTokens","Developer: Inspect Tokens")})(xv||(xv={}));var Iv;(function(s){s.gotoLineActionLabel=p("gotoLineActionLabel","Go to Line/Column...")})(Iv||(Iv={}));var Ev;(function(s){s.helpQuickAccessActionLabel=p("helpQuickAccess","Show all Quick Access Providers")})(Ev||(Ev={}));var Dv;(function(s){s.quickCommandActionLabel=p("quickCommandActionLabel","Command Palette"),s.quickCommandHelp=p("quickCommandActionHelp","Show And Run Commands")})(Dv||(Dv={}));var Nv;(function(s){s.quickOutlineActionLabel=p("quickOutlineActionLabel","Go to Symbol..."),s.quickOutlineByCategoryActionLabel=p("quickOutlineByCategoryActionLabel","Go to Symbol by Category...")})(Nv||(Nv={}));var tf;(function(s){s.editorViewAccessibleLabel=p("editorViewAccessibleLabel","Editor content"),s.accessibilityHelpMessage=p("accessibilityHelpMessage","Press Alt+F1 for Accessibility Options.")})(tf||(tf={}));var Tv;(function(s){s.toggleHighContrast=p("toggleHighContrast","Toggle High Contrast Theme")})(Tv||(Tv={}));var H_;(function(s){s.bulkEditServiceSummary=p("bulkEditServiceSummary","Made {0} edits in {1} files")})(H_||(H_={}));const SO=pe("workspaceTrustManagementService");var Dt;(function(s){function e(o,r){if(o.start>=r.end||r.start>=o.end)return{start:0,end:0};const a=Math.max(o.start,r.start),l=Math.min(o.end,r.end);return l-a<=0?{start:0,end:0}:{start:a,end:l}}s.intersect=e;function t(o){return o.end-o.start<=0}s.isEmpty=t;function i(o,r){return!t(e(o,r))}s.intersects=i;function n(o,r){const a=[],l={start:o.start,end:Math.min(r.start,o.end)},c={start:Math.max(r.end,o.start),end:o.end};return t(l)||a.push(l),t(c)||a.push(c),a}s.relativeComplement=n})(Dt||(Dt={}));var ro;(function(s){s[s.AVOID=0]="AVOID",s[s.ALIGN=1]="ALIGN"})(ro||(ro={}));function _a(s,e,t){const i=t.mode===ro.ALIGN?t.offset:t.offset+t.size,n=t.mode===ro.ALIGN?t.offset+t.size:t.offset;return t.position===0?e<=s-i?i:e<=n?n-e:Math.max(s-e,0):e<=n?n-e:e<=s-i?i:0}class rl extends W{constructor(e,t){super(),this.container=null,this.delegate=null,this.toDisposeOnClean=W.None,this.toDisposeOnSetContainer=W.None,this.shadowRoot=null,this.shadowRootHostElement=null,this.view=J(".context-view"),this.useFixedPosition=!1,this.useShadowDOM=!1,zC(this.view),this.setContainer(e,t),this._register(Pe(()=>this.setContainer(null,1)))}setContainer(e,t){var i;if(this.container&&(this.toDisposeOnSetContainer.dispose(),this.shadowRoot?(this.shadowRoot.removeChild(this.view),this.shadowRoot=null,(i=this.shadowRootHostElement)===null||i===void 0||i.remove(),this.shadowRootHostElement=null):this.container.removeChild(this.view),this.container=null),e){if(this.container=e,this.useFixedPosition=t!==1,this.useShadowDOM=t===3,this.useShadowDOM){this.shadowRootHostElement=J(".shadow-root-host"),this.container.appendChild(this.shadowRootHostElement),this.shadowRoot=this.shadowRootHostElement.attachShadow({mode:"open"});const o=document.createElement("style");o.textContent=yO,this.shadowRoot.appendChild(o),this.shadowRoot.appendChild(this.view),this.shadowRoot.appendChild(J("slot"))}else this.container.appendChild(this.view);const n=new se;rl.BUBBLE_UP_EVENTS.forEach(o=>{n.add(wi(this.container,o,r=>{this.onDOMEvent(r,!1)}))}),rl.BUBBLE_DOWN_EVENTS.forEach(o=>{n.add(wi(this.container,o,r=>{this.onDOMEvent(r,!0)},!0))}),this.toDisposeOnSetContainer=n}}show(e){this.isVisible()&&this.hide(),Pi(this.view),this.view.className="context-view",this.view.style.top="0px",this.view.style.left="0px",this.view.style.zIndex="2500",this.view.style.position=this.useFixedPosition?"fixed":"absolute",fL(this.view),this.toDisposeOnClean=e.render(this.view)||W.None,this.delegate=e,this.doLayout(),this.delegate.focus&&this.delegate.focus()}getViewElement(){return this.view}layout(){if(!!this.isVisible()){if(this.delegate.canRelayout===!1&&!(pr&&nL.pointerEvents)){this.hide();return}this.delegate.layout&&this.delegate.layout(),this.doLayout()}}doLayout(){if(!this.isVisible())return;let e=this.delegate.getAnchor(),t;if(dL(e)){let d=en(e);t={top:d.top,left:d.left,width:d.width,height:d.height}}else t={top:e.y,left:e.x,width:e.width||1,height:e.height||2};const i=ji(this.view),n=o_(this.view),o=this.delegate.anchorPosition||0,r=this.delegate.anchorAlignment||0,a=this.delegate.anchorAxisAlignment||0;let l,c;if(a===0){const d={offset:t.top-window.pageYOffset,size:t.height,position:o===0?0:1},u={offset:t.left,size:t.width,position:r===0?0:1,mode:ro.ALIGN};l=_a(window.innerHeight,n,d)+window.pageYOffset,Dt.intersects({start:l,end:l+n},{start:d.offset,end:d.offset+d.size})&&(u.mode=ro.AVOID),c=_a(window.innerWidth,i,u)}else{const d={offset:t.left,size:t.width,position:r===0?0:1},u={offset:t.top,size:t.height,position:o===0?0:1,mode:ro.ALIGN};c=_a(window.innerWidth,i,d),Dt.intersects({start:c,end:c+i},{start:d.offset,end:d.offset+d.size})&&(u.mode=ro.AVOID),l=_a(window.innerHeight,n,u)+window.pageYOffset}this.view.classList.remove("top","bottom","left","right"),this.view.classList.add(o===0?"bottom":"top"),this.view.classList.add(r===0?"left":"right"),this.view.classList.toggle("fixed",this.useFixedPosition);const h=en(this.container);this.view.style.top=`${l-(this.useFixedPosition?en(this.view).top:h.top)}px`,this.view.style.left=`${c-(this.useFixedPosition?en(this.view).left:h.left)}px`,this.view.style.width="initial"}hide(e){const t=this.delegate;this.delegate=null,t!=null&&t.onHide&&t.onHide(e),this.toDisposeOnClean.dispose(),zC(this.view)}isVisible(){return!!this.delegate}onDOMEvent(e,t){this.delegate&&(this.delegate.onDOMEvent?this.delegate.onDOMEvent(e,document.activeElement):t&&!Rs(e.target,this.container)&&this.hide())}dispose(){this.hide(),super.dispose()}}rl.BUBBLE_UP_EVENTS=["click","keydown","focus","blur"];rl.BUBBLE_DOWN_EVENTS=["click"];let yO=` + :host { + all: initial; /* 1st rule so subsequent properties are reset. */ + } + + @font-face { + font-family: "codicon"; + font-display: block; + src: url("./codicon.ttf?5d4d76ab2ce5108968ad644d591a16a6") format("truetype"); + } + + .codicon[class*='codicon-'] { + font: normal normal normal 16px/1 codicon; + display: inline-block; + text-decoration: none; + text-rendering: auto; + text-align: center; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + } + + :host { + font-family: -apple-system, BlinkMacSystemFont, "Segoe WPC", "Segoe UI", "HelveticaNeue-Light", system-ui, "Ubuntu", "Droid Sans", sans-serif; + } + + :host-context(.mac) { font-family: -apple-system, BlinkMacSystemFont, sans-serif; } + :host-context(.mac:lang(zh-Hans)) { font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", sans-serif; } + :host-context(.mac:lang(zh-Hant)) { font-family: -apple-system, BlinkMacSystemFont, "PingFang TC", sans-serif; } + :host-context(.mac:lang(ja)) { font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic Pro", sans-serif; } + :host-context(.mac:lang(ko)) { font-family: -apple-system, BlinkMacSystemFont, "Nanum Gothic", "Apple SD Gothic Neo", "AppleGothic", sans-serif; } + + :host-context(.windows) { font-family: "Segoe WPC", "Segoe UI", sans-serif; } + :host-context(.windows:lang(zh-Hans)) { font-family: "Segoe WPC", "Segoe UI", "Microsoft YaHei", sans-serif; } + :host-context(.windows:lang(zh-Hant)) { font-family: "Segoe WPC", "Segoe UI", "Microsoft Jhenghei", sans-serif; } + :host-context(.windows:lang(ja)) { font-family: "Segoe WPC", "Segoe UI", "Yu Gothic UI", "Meiryo UI", sans-serif; } + :host-context(.windows:lang(ko)) { font-family: "Segoe WPC", "Segoe UI", "Malgun Gothic", "Dotom", sans-serif; } + + :host-context(.linux) { font-family: system-ui, "Ubuntu", "Droid Sans", sans-serif; } + :host-context(.linux:lang(zh-Hans)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans SC", "Source Han Sans CN", "Source Han Sans", sans-serif; } + :host-context(.linux:lang(zh-Hant)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans TC", "Source Han Sans TW", "Source Han Sans", sans-serif; } + :host-context(.linux:lang(ja)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans J", "Source Han Sans JP", "Source Han Sans", sans-serif; } + :host-context(.linux:lang(ko)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans K", "Source Han Sans JR", "Source Han Sans", "UnDotum", "FBaekmuk Gulim", sans-serif; } +`;var LO=globalThis&&globalThis.__decorate||function(s,e,t,i){var n=arguments.length,o=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},kO=globalThis&&globalThis.__param||function(s,e){return function(t,i){e(t,i,s)}};let z_=class extends W{constructor(e){super(),this.layoutService=e,this.currentViewDisposable=W.None,this.container=e.hasContainer?e.container:null,this.contextView=this._register(new rl(this.container,1)),this.layout(),this._register(e.onDidLayout(()=>this.layout()))}setContainer(e,t){this.contextView.setContainer(e,t||1)}showContextView(e,t,i){t?t!==this.container&&(this.container=t,this.setContainer(t,i?3:2)):this.layoutService.hasContainer&&this.container!==this.layoutService.container&&(this.container=this.layoutService.container,this.setContainer(this.container,1)),this.contextView.show(e);const n=Pe(()=>{this.currentViewDisposable===n&&this.hideContextView()});return this.currentViewDisposable=n,n}getContextViewElement(){return this.contextView.getViewElement()}layout(){this.contextView.layout()}hideContextView(e){this.contextView.hide(e)}};z_=LO([kO(0,Th)],z_);const Dm="**",Mv="/",Kd="[/\\\\]",qd="[^/\\\\]",xO=/\//g;function Rv(s){switch(s){case 0:return"";case 1:return`${qd}*?`;default:return`(?:${Kd}|${qd}+${Kd}|${Kd}${qd}+)*?`}}function Av(s,e){if(!s)return[];const t=[];let i=!1,n=!1,o="";for(const r of s){switch(r){case e:if(!i&&!n){t.push(o),o="";continue}break;case"{":i=!0;break;case"}":i=!1;break;case"[":n=!0;break;case"]":n=!1;break}o+=r}return o&&t.push(o),t}function r2(s){if(!s)return"";let e="";const t=Av(s,Mv);if(t.every(i=>i===Dm))e=".*";else{let i=!1;t.forEach((n,o)=>{if(n===Dm){i||(e+=Rv(2),i=!0);return}let r=!1,a="",l=!1,c="";for(const h of n){if(h!=="}"&&r){a+=h;continue}if(l&&(h!=="]"||!c)){let d;h==="-"?d=h:(h==="^"||h==="!")&&!c?d="^":h===Mv?d="":d=Qn(h),c+=d;continue}switch(h){case"{":r=!0;continue;case"[":l=!0;continue;case"}":{e+=`(?:${Av(a,",").map(f=>r2(f)).join("|")})`,r=!1,a="";break}case"]":e+="["+c+"]",l=!1,c="";break;case"?":e+=qd;continue;case"*":e+=Rv(1);continue;default:e+=Qn(h)}}ohb(a,e)).filter(a=>a!==Yn),s),i=t.length;if(!i)return Yn;if(i===1)return t[0];const n=function(a,l){for(let c=0,h=t.length;c!!a.allBasenames);o&&(n.allBasenames=o.allBasenames);const r=t.reduce((a,l)=>l.allPaths?a.concat(l.allPaths):a,[]);return r.length&&(n.allPaths=r),n}function Bv(s,e,t){const i=rr===tt.sep,n=i?s:s.replace(xO,rr),o=rr+n,r=tt.sep+s,a=t?function(l,c){return typeof l=="string"&&(l===n||l.endsWith(o)||!i&&(l===s||l.endsWith(r)))?e:null}:function(l,c){return typeof l=="string"&&(l===n||!i&&l===s)?e:null};return a.allPaths=[(t?"*/":"./")+s],a}function OO(s){try{const e=new RegExp(`^${r2(s)}$`);return function(t){return e.lastIndex=0,typeof t=="string"&&e.test(t)?s:null}}catch{return Yn}}function PO(s,e,t){return!s||typeof e!="string"?!1:a2(s)(e,void 0,t)}function a2(s,e={}){if(!s)return Pv;if(typeof s=="string"||FO(s)){const t=hb(s,e);if(t===Yn)return Pv;const i=function(n,o){return!!t(n,o)};return t.allBasenames&&(i.allBasenames=t.allBasenames),t.allPaths&&(i.allPaths=t.allPaths),i}return BO(s,e)}function FO(s){const e=s;return e?typeof e.base=="string"&&typeof e.pattern=="string":!1}function BO(s,e){const t=l2(Object.getOwnPropertyNames(s).map(a=>VO(a,s[a],e)).filter(a=>a!==Yn)),i=t.length;if(!i)return Yn;if(!t.some(a=>!!a.requiresSiblings)){if(i===1)return t[0];const a=function(h,d){for(let u=0,f=t.length;u!!h.allBasenames);l&&(a.allBasenames=l.allBasenames);const c=t.reduce((h,d)=>d.allPaths?h.concat(d.allPaths):h,[]);return c.length&&(a.allPaths=c),a}const n=function(a,l,c){let h;for(let d=0,u=t.length;d!!a.allBasenames);o&&(n.allBasenames=o.allBasenames);const r=t.reduce((a,l)=>l.allPaths?a.concat(l.allPaths):a,[]);return r.length&&(n.allPaths=r),n}function VO(s,e,t){if(e===!1)return Yn;const i=hb(s,t);if(i===Yn)return Yn;if(typeof e=="boolean")return i;if(e){const n=e.when;if(typeof n=="string"){const o=(r,a,l,c)=>{if(!c||!i(r,a))return null;const h=n.replace("$(basename)",l),d=c(h);return zD(d)?d.then(u=>u?s:null):d?s:null};return o.requiresSiblings=!0,o}}return i}function l2(s,e){const t=s.filter(a=>!!a.basenames);if(t.length<2)return s;const i=t.reduce((a,l)=>{const c=l.basenames;return c?a.concat(c):a},[]);let n;if(e){n=[];for(let a=0,l=i.length;a{const c=l.patterns;return c?a.concat(c):a},[]);const o=function(a,l){if(typeof a!="string")return null;if(!l){let h;for(h=a.length;h>0;h--){const d=a.charCodeAt(h-1);if(d===47||d===92)break}l=a.substr(h)}const c=i.indexOf(l);return c!==-1?n[c]:null};o.basenames=i,o.patterns=n,o.allBasenames=i;const r=s.filter(a=>!a.basenames);return r.push(o),r}let al=[],db=[],c2=[];function gd(s,e=!1){WO(s,!1,e)}function WO(s,e,t){const i=HO(s,e);al.push(i),i.userConfigured?c2.push(i):db.push(i),t&&!i.userConfigured&&al.forEach(n=>{n.mime===i.mime||n.userConfigured||(i.extension&&n.extension===i.extension&&console.warn(`Overwriting extension <<${i.extension}>> to now point to mime <<${i.mime}>>`),i.filename&&n.filename===i.filename&&console.warn(`Overwriting filename <<${i.filename}>> to now point to mime <<${i.mime}>>`),i.filepattern&&n.filepattern===i.filepattern&&console.warn(`Overwriting filepattern <<${i.filepattern}>> to now point to mime <<${i.mime}>>`),i.firstline&&n.firstline===i.firstline&&console.warn(`Overwriting firstline <<${i.firstline}>> to now point to mime <<${i.mime}>>`))})}function HO(s,e){return{id:s.id,mime:s.mime,filename:s.filename,extension:s.extension,filepattern:s.filepattern,firstline:s.firstline,userConfigured:e,filenameLowercase:s.filename?s.filename.toLowerCase():void 0,extensionLowercase:s.extension?s.extension.toLowerCase():void 0,filepatternLowercase:s.filepattern?a2(s.filepattern.toLowerCase()):void 0,filepatternOnPath:s.filepattern?s.filepattern.indexOf(tt.sep)>=0:!1}}function zO(){al=al.filter(s=>s.userConfigured),db=[]}function UO(s,e){let t;if(s)switch(s.scheme){case Ce.file:t=s.fsPath;break;case Ce.data:{t=$u.parseMetaData(s).get($u.META_DATA_LABEL);break}default:t=s.path}if(!t)return[bn.unknown];t=t.toLowerCase();const i=gy(t),n=Vv(t,i,c2);if(n)return[n,bn.text];const o=Vv(t,i,db);if(o)return[o,bn.text];if(e){const r=$O(e);if(r)return[r,bn.text]}return[bn.unknown]}function Vv(s,e,t){var i;let n,o,r;for(let a=t.length-1;a>=0;a--){const l=t[a];if(e===l.filenameLowercase){n=l;break}if(l.filepattern&&(!o||l.filepattern.length>o.filepattern.length)){const c=l.filepatternOnPath?s:e;!((i=l.filepatternLowercase)===null||i===void 0)&&i.call(l,c)&&(o=l)}l.extension&&(!r||l.extension.length>r.extension.length)&&e.endsWith(l.extensionLowercase)&&(r=l)}if(n)return n.mime;if(o)return o.mime;if(r)return r.mime}function $O(s){if(a0(s)&&(s=s.substr(1)),s.length>0)for(let e=al.length-1;e>=0;e--){const t=al[e];if(!t.firstline)continue;const i=s.match(t.firstline);if(i&&i.length>0)return t.mime}}const md=Object.prototype.hasOwnProperty,U_="vs.editor.nullLanguage";Ki.register(U_,{});class jO{constructor(){this._languageIdToLanguage=[],this._languageToLanguageId=new Map,this._register(U_,0),this._register(Vr,1),this._nextLanguageId=2}_register(e,t){this._languageIdToLanguage[t]=e,this._languageToLanguageId.set(e,t)}register(e){if(this._languageToLanguageId.has(e))return;const t=this._nextLanguageId++;this._register(e,t)}encodeLanguageId(e){return this._languageToLanguageId.get(e)||0}decodeLanguageId(e){return this._languageIdToLanguage[e]||U_}}class th extends W{constructor(e=!0,t=!1){super(),this._onDidChange=this._register(new M),this.onDidChange=this._onDidChange.event,th.instanceCount++,this._warnOnOverwrite=t,this.languageIdCodec=new jO,this._dynamicLanguages=[],this._languages={},this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},e&&(this._initializeFromRegistry(),this._register(il.onDidChangeLanguages(i=>{this._initializeFromRegistry()})))}dispose(){th.instanceCount--,super.dispose()}_initializeFromRegistry(){this._languages={},this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},zO();const e=[].concat(il.getLanguages()).concat(this._dynamicLanguages);this._registerLanguages(e)}_registerLanguages(e){for(const t of e)this._registerLanguage(t);this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},Object.keys(this._languages).forEach(t=>{const i=this._languages[t];i.name&&(this._nameMap[i.name]=i.identifier),i.aliases.forEach(n=>{this._lowercaseNameMap[n.toLowerCase()]=i.identifier}),i.mimetypes.forEach(n=>{this._mimeTypesMap[n]=i.identifier})}),xt.as(kl.Configuration).registerOverrideIdentifiers(this.getRegisteredLanguageIds()),this._onDidChange.fire()}_registerLanguage(e){const t=e.id;let i;md.call(this._languages,t)?i=this._languages[t]:(this.languageIdCodec.register(t),i={identifier:t,name:null,mimetypes:[],aliases:[],extensions:[],filenames:[],configurationFiles:[],icons:[]},this._languages[t]=i),this._mergeLanguage(i,e)}_mergeLanguage(e,t){const i=t.id;let n=null;if(Array.isArray(t.mimetypes)&&t.mimetypes.length>0&&(e.mimetypes.push(...t.mimetypes),n=t.mimetypes[0]),n||(n=`text/x-${i}`,e.mimetypes.push(n)),Array.isArray(t.extensions)){t.configuration?e.extensions=t.extensions.concat(e.extensions):e.extensions=e.extensions.concat(t.extensions);for(let a of t.extensions)gd({id:i,mime:n,extension:a},this._warnOnOverwrite)}if(Array.isArray(t.filenames))for(let a of t.filenames)gd({id:i,mime:n,filename:a},this._warnOnOverwrite),e.filenames.push(a);if(Array.isArray(t.filenamePatterns))for(let a of t.filenamePatterns)gd({id:i,mime:n,filepattern:a},this._warnOnOverwrite);if(typeof t.firstLine=="string"&&t.firstLine.length>0){let a=t.firstLine;a.charAt(0)!=="^"&&(a="^"+a);try{const l=new RegExp(a);$E(l)||gd({id:i,mime:n,firstline:l},this._warnOnOverwrite)}catch(l){Ze(l)}}e.aliases.push(i);let o=null;if(typeof t.aliases!="undefined"&&Array.isArray(t.aliases)&&(t.aliases.length===0?o=[null]:o=t.aliases),o!==null)for(const a of o)!a||a.length===0||e.aliases.push(a);const r=o!==null&&o.length>0;if(!(r&&o[0]===null)){const a=(r?o[0]:null)||i;(r||!e.name)&&(e.name=a)}t.configuration&&e.configurationFiles.push(t.configuration),t.icon&&e.icons.push(t.icon)}isRegisteredLanguageId(e){return e?md.call(this._languages,e):!1}getRegisteredLanguageIds(){return Object.keys(this._languages)}getLanguageIdByLanguageName(e){const t=e.toLowerCase();return md.call(this._lowercaseNameMap,t)?this._lowercaseNameMap[t]:null}getLanguageIdByMimeType(e){return e&&md.call(this._mimeTypesMap,e)?this._mimeTypesMap[e]:null}guessLanguageIdByFilepathOrFirstLine(e,t){if(!e&&!t)return[];const i=UO(e,t);return ty(i.map(n=>this.getLanguageIdByMimeType(n)))}}th.instanceCount=0;class ih extends W{constructor(e=!1){super(),this._onDidEncounterLanguage=this._register(new M),this.onDidEncounterLanguage=this._onDidEncounterLanguage.event,this._onDidChange=this._register(new M({leakWarningThreshold:200})),this.onDidChange=this._onDidChange.event,ih.instanceCount++,this._encounteredLanguages=new Set,this._registry=this._register(new th(!0,e)),this.languageIdCodec=this._registry.languageIdCodec,this._register(this._registry.onDidChange(()=>this._onDidChange.fire()))}dispose(){ih.instanceCount--,super.dispose()}isRegisteredLanguageId(e){return this._registry.isRegisteredLanguageId(e)}getLanguageIdByLanguageName(e){return this._registry.getLanguageIdByLanguageName(e)}getLanguageIdByMimeType(e){return this._registry.getLanguageIdByMimeType(e)}guessLanguageIdByFilepathOrFirstLine(e,t){const i=this._registry.guessLanguageIdByFilepathOrFirstLine(e,t);return iy(i,null)}createById(e){return new Wv(this.onDidChange,()=>this._createAndGetLanguageIdentifier(e))}createByFilepathOrFirstLine(e,t){return new Wv(this.onDidChange,()=>{const i=this.guessLanguageIdByFilepathOrFirstLine(e,t);return this._createAndGetLanguageIdentifier(i)})}_createAndGetLanguageIdentifier(e){return(!e||!this.isRegisteredLanguageId(e))&&(e=Vr),this._encounteredLanguages.has(e)||(this._encounteredLanguages.add(e),et.getOrCreate(e),this._onDidEncounterLanguage.fire(e)),e}}ih.instanceCount=0;class Wv{constructor(e,t){this._onDidChangeLanguages=e,this._selector=t,this._listener=null,this._emitter=null,this.languageId=this._selector()}_dispose(){this._listener&&(this._listener.dispose(),this._listener=null),this._emitter&&(this._emitter.dispose(),this._emitter=null)}get onDidChange(){return this._listener||(this._listener=this._onDidChangeLanguages(()=>this._evaluate())),this._emitter||(this._emitter=new M({onLastListenerRemove:()=>{this._dispose()}})),this._emitter.event}_evaluate(){const e=this._selector();e!==this.languageId&&(this.languageId=e,this._emitter&&this._emitter.fire(this.languageId))}}function Hv(s){let e=s.definition;for(;e instanceof g;)e=e.definition;return`.codicon-${s.id}:before { content: '${e.fontCharacter}'; }`}function h2(...s){return function(e,t){for(let i=0,n=s.length;i0?[{start:0,end:e.length}]:[]:null}function KO(s,e){const t=e.toLowerCase().indexOf(s.toLowerCase());return t===-1?null:[{start:t,end:t+s.length}]}function qO(s,e){return $_(s.toLowerCase(),e.toLowerCase(),0,0)}function $_(s,e,t,i){if(t===s.length)return[];if(i===e.length)return null;if(s[t]===e[i]){let n=null;return(n=$_(s,e,t+1,i+1))?f2({start:i,end:i+1},n):null}return $_(s,e,t,i+1)}function fb(s){return 97<=s&&s<=122}function eg(s){return 65<=s&&s<=90}function gb(s){return 48<=s&&s<=57}function GO(s){return s===32||s===9||s===10||s===13}const ZO=new Set;"()[]{}<>`'\"-/;:,.?!".split("").forEach(s=>ZO.add(s.charCodeAt(0)));function u2(s){return fb(s)||eg(s)||gb(s)}function f2(s,e){return e.length===0?e=[s]:s.end===e[0].start?e[0].start=s.start:e.unshift(s),e}function g2(s,e){for(let t=e;t0&&!u2(s.charCodeAt(t-1)))return t}return s.length}function j_(s,e,t,i){if(t===s.length)return[];if(i===e.length)return null;if(s[t]!==e[i].toLowerCase())return null;{let n=null,o=i+1;for(n=j_(s,e,t+1,i+1);!n&&(o=g2(e,o)).6}function QO(s){const{upperPercent:e,lowerPercent:t,alphaPercent:i,numericPercent:n}=s;return t>.2&&e<.8&&i>.6&&n<.2}function JO(s){let e=0,t=0,i=0,n=0;for(let o=0;o60)return null;const t=YO(e);if(!QO(t)){if(!XO(t))return null;e=e.toLowerCase()}let i=null,n=0;for(s=s.toLowerCase();n=s.length)return!1;const t=s.codePointAt(e);switch(t){case 95:case 45:case 46:case 32:case 47:case 92:case 39:case 34:case 58:case 36:case 60:case 40:case 91:return!0;case void 0:return!1;default:return!!r0(t)}}function $v(s,e){if(e<0||e>=s.length)return!1;switch(s.charCodeAt(e)){case 32:case 9:return!0;default:return!1}}function Gd(s,e,t){return e[s]!==t[s]}function iP(s,e,t,i,n,o,r=!1){for(;eao?ao:s.length,l=i.length>ao?ao:i.length;if(t>=a||o>=l||a-t>l-o||!iP(e,t,a,n,o,l,!0))return;sP(a,l,t,o,e,n);let c=1,h=1,d=t,u=o;const f=[!1];for(c=1,d=t;dC,I=y?Po[c][h-1]+(gs[c][h-1]>0?-5:0):0,R=u>C+1&&gs[c][h-1]>0,T=R?Po[c][h-2]+(gs[c][h-2]>0?-5:0):0;if(R&&(!y||T>=I)&&(!x||T>=L))Po[c][h]=T,pd[c][h]=3,gs[c][h]=0;else if(y&&(!x||I>=L))Po[c][h]=I,pd[c][h]=2,gs[c][h]=0;else if(x)Po[c][h]=L,pd[c][h]=1,gs[c][h]=gs[c-1][h-1]+1;else throw new Error("not possible")}}if(!f[0]&&!r)return;c--,h--;const m=[Po[c][h],o];let _=0,b=0;for(;c>=1;){let C=h;do{const v=pd[c][C];if(v===3)C=C-2;else if(v===2)C=C-1;else break}while(C>=1);_>1&&e[t+c-1]===n[o+h-1]&&!Gd(C+o-1,i,n)&&_+1>gs[c][C]&&(C=h),C===h?_++:_=1,b||(b=C),c--,h=C-1,m.push(h)}l===a&&(m[0]+=2);const w=b-a;return m[0]-=w,m}function sP(s,e,t,i,n,o){let r=s-1,a=e-1;for(;r>=t&&a>=i;)n[r]===o[a]&&(K_[r]=a,r--),a--}function oP(s,e,t,i,n,o,r,a,l,c,h){if(e[t]!==o[r])return Number.MIN_SAFE_INTEGER;let d=1,u=!1;return r===t-i?d=s[t]===n[r]?7:5:Gd(r,n,o)&&(r===0||!Gd(r-1,n,o))?(d=s[t]===n[r]?7:5,u=!0):_d(o,r)&&(r===0||!_d(o,r-1))?d=5:(_d(o,r-1)||$v(o,r-1))&&(d=5,u=!0),d>1&&t===i&&(h[0]=!0),u||(u=Gd(r,n,o)||_d(o,r-1)||$v(o,r-1)),t===i?r>l&&(d-=u?3:5):c?d+=u?2:0:d+=u?0:1,r+1===a&&(d-=u?3:5),d}const vc="$(",pb=new RegExp(`\\$\\(${ei.iconNameExpression}(?:${ei.iconModifierExpression})?\\)`,"g"),rP=new RegExp(ei.iconNameCharacter),aP=new RegExp(`(\\\\)?${pb.source}`,"g");function lP(s){return s.replace(aP,(e,t)=>t?e:`\\${e}`)}new RegExp(`\\\\${pb.source}`,"g");const cP=new RegExp(`(\\s)?(\\\\)?${pb.source}(\\s)?`,"g");function b2(s){return s.indexOf(vc)===-1?s:s.replace(cP,(e,t,i,n)=>i?e:t||n||"")}function bd(s){const e=s.indexOf(vc);return e===-1?{text:s}:hP(s,e)}function hP(s,e){const t=[];let i="";function n(u){if(u){i+=u;for(const f of u)t.push(a)}}let o=-1,r="",a=0,l,c,h=e;const d=s.length;for(n(s.substr(0,e));hthis.doGetActionViewItem(a,i,o),context:i.context,actionRunner:i.actionRunner,ariaLabel:i.ariaLabel,focusOnlyEnabledItems:!0,triggerKeys:{keys:[3,...me||qt?[10]:[]],keyDown:!0}}),this.menuElement=n,this.actionsList.setAttribute("role","menu"),this.actionsList.tabIndex=0,this.menuDisposables=this._register(new se),this.initializeOrUpdateStyleSheet(e,{}),this._register(Se.addTarget(n)),V(n,Y.KEY_DOWN,a=>{new He(a).equals(2)&&a.preventDefault()}),i.enableMnemonics&&this.menuDisposables.add(V(n,Y.KEY_DOWN,a=>{const l=a.key.toLocaleLowerCase();if(this.mnemonics.has(l)){Ie.stop(a,!0);const c=this.mnemonics.get(l);if(c.length===1&&(c[0]instanceof jv&&c[0].container&&this.focusItemByElement(c[0].container),c[0].onClick(a)),c.length>1){const h=c.shift();h&&h.container&&(this.focusItemByElement(h.container),c.push(h)),this.mnemonics.set(l,c)}}})),qt&&this._register(V(n,Y.KEY_DOWN,a=>{const l=new He(a);l.equals(14)||l.equals(11)?(this.focusedItem=this.viewItems.length-1,this.focusNext(),Ie.stop(a,!0)):(l.equals(13)||l.equals(12))&&(this.focusedItem=0,this.focusPrevious(),Ie.stop(a,!0))})),this._register(V(this.domNode,Y.MOUSE_OUT,a=>{let l=a.relatedTarget;Rs(l,this.domNode)||(this.focusedItem=void 0,this.updateFocus(),a.stopPropagation())})),this._register(V(this.actionsList,Y.MOUSE_OVER,a=>{let l=a.target;if(!(!l||!Rs(l,this.actionsList)||l===this.actionsList)){for(;l.parentElement!==this.actionsList&&l.parentElement!==null;)l=l.parentElement;if(l.classList.contains("action-item")){const c=this.focusedItem;this.setFocusedItem(l),c!==this.focusedItem&&this.updateFocus()}}})),this._register(Se.addTarget(this.actionsList)),this._register(V(this.actionsList,Ae.Tap,a=>{let l=a.initialTarget;if(!(!l||!Rs(l,this.actionsList)||l===this.actionsList)){for(;l.parentElement!==this.actionsList&&l.parentElement!==null;)l=l.parentElement;if(l.classList.contains("action-item")){const c=this.focusedItem;this.setFocusedItem(l),c!==this.focusedItem&&this.updateFocus()}}}));let o={parent:this};this.mnemonics=new Map,this.scrollableElement=this._register(new _k(n,{alwaysConsumeMouseWheel:!0,horizontal:2,vertical:3,verticalScrollbarSize:7,handleMouseWheel:!0,useShadows:!0}));const r=this.scrollableElement.getDomNode();r.style.position="",this._register(V(n,Ae.Change,a=>{Ie.stop(a,!0);const l=this.scrollableElement.getScrollPosition().scrollTop;this.scrollableElement.setScrollPosition({scrollTop:l-a.translationY})})),this._register(V(r,Y.MOUSE_UP,a=>{a.preventDefault()})),n.style.maxHeight=`${Math.max(10,window.innerHeight-e.getBoundingClientRect().top-35)}px`,t=t.filter(a=>{var l;return!((l=i.submenuIds)===null||l===void 0)&&l.has(a.id)?(console.warn(`Found submenu cycle: ${a.id}`),!1):!0}),this.push(t,{icon:!0,label:!0,isMenu:!0}),e.appendChild(this.scrollableElement.getDomNode()),this.scrollableElement.scanDomNode(),this.viewItems.filter(a=>!(a instanceof Mm)).forEach((a,l,c)=>{a.updatePositionInSet(l+1,c.length)})}initializeOrUpdateStyleSheet(e,t){this.styleSheet||(r_(e)?this.styleSheet=xn(e):(Wa.globalStyleSheet||(Wa.globalStyleSheet=xn()),this.styleSheet=Wa.globalStyleSheet)),this.styleSheet.textContent=uP(t,r_(e))}style(e){const t=this.getContainer();this.initializeOrUpdateStyleSheet(t,e);const i=e.foregroundColor?`${e.foregroundColor}`:"",n=e.backgroundColor?`${e.backgroundColor}`:"",o=e.borderColor?`1px solid ${e.borderColor}`:"",r=e.shadowColor?`0 2px 4px ${e.shadowColor}`:"";t.style.border=o,this.domNode.style.color=i,this.domNode.style.backgroundColor=n,t.style.boxShadow=r,this.viewItems&&this.viewItems.forEach(a=>{(a instanceof G_||a instanceof Mm)&&a.style(e)})}getContainer(){return this.scrollableElement.getDomNode()}get onScroll(){return this.scrollableElement.onScroll}focusItemByElement(e){const t=this.focusedItem;this.setFocusedItem(e),t!==this.focusedItem&&this.updateFocus()}setFocusedItem(e){for(let t=0;t{!this.element||(this._register(V(this.element,Y.MOUSE_UP,n=>{if(Ie.stop(n,!0),Oi){if(new Ji(n).rightButton)return;this.onClick(n)}else setTimeout(()=>{this.onClick(n)},0)})),this._register(V(this.element,Y.CONTEXT_MENU,n=>{Ie.stop(n,!0)})))},100),this._register(this.runOnceToEnableMouseUp)}render(e){super.render(e),this.element&&(this.container=e,this.item=U(this.element,J("a.action-menu-item")),this._action.id===Or.ID?this.item.setAttribute("role","presentation"):(this.item.setAttribute("role","menuitem"),this.mnemonic&&this.item.setAttribute("aria-keyshortcuts",`${this.mnemonic}`)),this.check=U(this.item,J("span.menu-item-check"+g.menuSelection.cssSelector)),this.check.setAttribute("role","none"),this.label=U(this.item,J("span.action-label")),this.options.label&&this.options.keybinding&&(U(this.item,J("span.keybinding")).textContent=this.options.keybinding),this.runOnceToEnableMouseUp.schedule(),this.updateClass(),this.updateLabel(),this.updateTooltip(),this.updateEnabled(),this.updateChecked())}blur(){super.blur(),this.applyStyle()}focus(){super.focus(),this.item&&this.item.focus(),this.applyStyle()}updatePositionInSet(e,t){this.item&&(this.item.setAttribute("aria-posinset",`${e}`),this.item.setAttribute("aria-setsize",`${t}`))}updateLabel(){if(!!this.label&&this.options.label){Pi(this.label);let e=b2(this.getAction().label);if(e){const t=dP(e);this.options.enableMnemonics||(e=t),this.label.setAttribute("aria-label",t.replace(/&&/g,"&"));const i=q_.exec(e);if(i){e=HE(e),Tm.lastIndex=0;let n=Tm.exec(e);for(;n&&n[1];)n=Tm.exec(e);const o=r=>r.replace(/&&/g,"&");n?this.label.append(vy(o(e.substr(0,n.index))," "),J("u",{"aria-hidden":"true"},n[3]),zE(o(e.substr(n.index+n[0].length))," ")):this.label.innerText=o(e).trim(),this.item&&this.item.setAttribute("aria-keyshortcuts",(i[1]?i[1]:i[3]).toLocaleLowerCase())}else this.label.innerText=e.replace(/&&/g,"&").trim()}}}updateTooltip(){}updateClass(){this.cssClass&&this.item&&this.item.classList.remove(...this.cssClass.split(" ")),this.options.icon&&this.label?(this.cssClass=this.getAction().class||"",this.label.classList.add("icon"),this.cssClass&&this.label.classList.add(...this.cssClass.split(" ")),this.updateEnabled()):this.label&&this.label.classList.remove("icon")}updateEnabled(){this.getAction().enabled?(this.element&&(this.element.classList.remove("disabled"),this.element.removeAttribute("aria-disabled")),this.item&&(this.item.classList.remove("disabled"),this.item.removeAttribute("aria-disabled"),this.item.tabIndex=0)):(this.element&&(this.element.classList.add("disabled"),this.element.setAttribute("aria-disabled","true")),this.item&&(this.item.classList.add("disabled"),this.item.setAttribute("aria-disabled","true")))}updateChecked(){if(!this.item)return;const e=this.getAction().checked;this.item.classList.toggle("checked",!!e),e!==void 0?(this.item.setAttribute("role","menuitemcheckbox"),this.item.setAttribute("aria-checked",e?"true":"false")):(this.item.setAttribute("role","menuitem"),this.item.setAttribute("aria-checked",""))}getMnemonic(){return this.mnemonic}applyStyle(){if(!this.menuStyle)return;const e=this.element&&this.element.classList.contains("focused"),t=e&&this.menuStyle.selectionForegroundColor?this.menuStyle.selectionForegroundColor:this.menuStyle.foregroundColor,i=e&&this.menuStyle.selectionBackgroundColor?this.menuStyle.selectionBackgroundColor:void 0,n=e&&this.menuStyle.selectionBorderColor?`thin solid ${this.menuStyle.selectionBorderColor}`:"";this.item&&(this.item.style.color=t?t.toString():"",this.item.style.backgroundColor=i?i.toString():""),this.check&&(this.check.style.color=t?t.toString():""),this.container&&(this.container.style.border=n)}style(e){this.menuStyle=e,this.applyStyle()}}class jv extends G_{constructor(e,t,i,n){super(e,e,n),this.submenuActions=t,this.parentData=i,this.submenuOptions=n,this.mysubmenu=null,this.submenuDisposables=this._register(new se),this.mouseOver=!1,this.expandDirection=n&&n.expandDirection!==void 0?n.expandDirection:nf.Right,this.showScheduler=new Tt(()=>{this.mouseOver&&(this.cleanupExistingSubmenu(!1),this.createSubmenu(!1))},250),this.hideScheduler=new Tt(()=>{this.element&&!Rs(ka(),this.element)&&this.parentData.submenu===this.mysubmenu&&(this.parentData.parent.focus(!1),this.cleanupExistingSubmenu(!0))},750)}render(e){super.render(e),this.element&&(this.item&&(this.item.classList.add("monaco-submenu-item"),this.item.tabIndex=0,this.item.setAttribute("aria-haspopup","true"),this.updateAriaExpanded("false"),this.submenuIndicator=U(this.item,J("span.submenu-indicator"+g.menuSubmenu.cssSelector)),this.submenuIndicator.setAttribute("aria-hidden","true")),this._register(V(this.element,Y.KEY_UP,t=>{let i=new He(t);(i.equals(17)||i.equals(3))&&(Ie.stop(t,!0),this.createSubmenu(!0))})),this._register(V(this.element,Y.KEY_DOWN,t=>{let i=new He(t);ka()===this.item&&(i.equals(17)||i.equals(3))&&Ie.stop(t,!0)})),this._register(V(this.element,Y.MOUSE_OVER,t=>{this.mouseOver||(this.mouseOver=!0,this.showScheduler.schedule())})),this._register(V(this.element,Y.MOUSE_LEAVE,t=>{this.mouseOver=!1})),this._register(V(this.element,Y.FOCUS_OUT,t=>{this.element&&!Rs(ka(),this.element)&&this.hideScheduler.schedule()})),this._register(this.parentData.parent.onScroll(()=>{this.parentData.parent.focus(!1),this.cleanupExistingSubmenu(!1)})))}updateEnabled(){}onClick(e){Ie.stop(e,!0),this.cleanupExistingSubmenu(!1),this.createSubmenu(!0)}cleanupExistingSubmenu(e){if(this.parentData.submenu&&(e||this.parentData.submenu!==this.mysubmenu)){try{this.parentData.submenu.dispose()}catch{}this.parentData.submenu=void 0,this.updateAriaExpanded("false"),this.submenuContainer&&(this.submenuDisposables.clear(),this.submenuContainer=void 0)}}calculateSubmenuMenuLayout(e,t,i,n){const o={top:0,left:0};return o.left=_a(e.width,t.width,{position:n===nf.Right?0:1,offset:i.left,size:i.width}),o.left>=i.left&&o.left{new He(c).equals(15)&&(Ie.stop(c,!0),this.parentData.parent.focus(),this.cleanupExistingSubmenu(!0))})),this.submenuDisposables.add(V(this.submenuContainer,Y.KEY_DOWN,c=>{new He(c).equals(15)&&Ie.stop(c,!0)})),this.submenuDisposables.add(this.parentData.submenu.onDidCancel(()=>{this.parentData.parent.focus(),this.cleanupExistingSubmenu(!0)})),this.parentData.submenu.focus(e),this.mysubmenu=this.parentData.submenu}}updateAriaExpanded(e){var t;this.item&&((t=this.item)===null||t===void 0||t.setAttribute("aria-expanded",e))}applyStyle(){if(super.applyStyle(),!this.menuStyle)return;const t=this.element&&this.element.classList.contains("focused")&&this.menuStyle.selectionForegroundColor?this.menuStyle.selectionForegroundColor:this.menuStyle.foregroundColor;this.submenuIndicator&&(this.submenuIndicator.style.color=t?`${t}`:""),this.parentData.submenu&&this.parentData.submenu.style(this.menuStyle)}dispose(){super.dispose(),this.hideScheduler.dispose(),this.mysubmenu&&(this.mysubmenu.dispose(),this.mysubmenu=null),this.submenuContainer&&(this.submenuContainer=void 0)}}class Mm extends Hk{style(e){this.label&&(this.label.style.borderBottomColor=e.separatorColor?`${e.separatorColor}`:"")}}function dP(s){const e=q_,t=e.exec(s);if(!t)return s;const i=!t[1];return s.replace(e,i?"$2$3":"").trim()}function uP(s,e){let t=` +.monaco-menu { + font-size: 13px; + +} + +${Hv(g.menuSelection)} +${Hv(g.menuSubmenu)} + +.monaco-menu .monaco-action-bar { + text-align: right; + overflow: hidden; + white-space: nowrap; +} + +.monaco-menu .monaco-action-bar .actions-container { + display: flex; + margin: 0 auto; + padding: 0; + width: 100%; + justify-content: flex-end; +} + +.monaco-menu .monaco-action-bar.vertical .actions-container { + display: inline-block; +} + +.monaco-menu .monaco-action-bar.reverse .actions-container { + flex-direction: row-reverse; +} + +.monaco-menu .monaco-action-bar .action-item { + cursor: pointer; + display: inline-block; + transition: transform 50ms ease; + position: relative; /* DO NOT REMOVE - this is the key to preventing the ghosting icon bug in Chrome 42 */ +} + +.monaco-menu .monaco-action-bar .action-item.disabled { + cursor: default; +} + +.monaco-menu .monaco-action-bar.animated .action-item.active { + transform: scale(1.272019649, 1.272019649); /* 1.272019649 = \u221A\u03C6 */ +} + +.monaco-menu .monaco-action-bar .action-item .icon, +.monaco-menu .monaco-action-bar .action-item .codicon { + display: inline-block; +} + +.monaco-menu .monaco-action-bar .action-item .codicon { + display: flex; + align-items: center; +} + +.monaco-menu .monaco-action-bar .action-label { + font-size: 11px; + margin-right: 4px; +} + +.monaco-menu .monaco-action-bar .action-item.disabled .action-label, +.monaco-menu .monaco-action-bar .action-item.disabled .action-label:hover { + opacity: 0.4; +} + +/* Vertical actions */ + +.monaco-menu .monaco-action-bar.vertical { + text-align: left; +} + +.monaco-menu .monaco-action-bar.vertical .action-item { + display: block; +} + +.monaco-menu .monaco-action-bar.vertical .action-label.separator { + display: block; + border-bottom: 1px solid #bbb; + padding-top: 1px; + margin-left: .8em; + margin-right: .8em; +} + +.monaco-menu .secondary-actions .monaco-action-bar .action-label { + margin-left: 6px; +} + +/* Action Items */ +.monaco-menu .monaco-action-bar .action-item.select-container { + overflow: hidden; /* somehow the dropdown overflows its container, we prevent it here to not push */ + flex: 1; + max-width: 170px; + min-width: 60px; + display: flex; + align-items: center; + justify-content: center; + margin-right: 10px; +} + +.monaco-menu .monaco-action-bar.vertical { + margin-left: 0; + overflow: visible; +} + +.monaco-menu .monaco-action-bar.vertical .actions-container { + display: block; +} + +.monaco-menu .monaco-action-bar.vertical .action-item { + padding: 0; + transform: none; + display: flex; +} + +.monaco-menu .monaco-action-bar.vertical .action-item.active { + transform: none; +} + +.monaco-menu .monaco-action-bar.vertical .action-menu-item { + flex: 1 1 auto; + display: flex; + height: 2em; + align-items: center; + position: relative; +} + +.monaco-menu .monaco-action-bar.vertical .action-label { + flex: 1 1 auto; + text-decoration: none; + padding: 0 1em; + background: none; + font-size: 12px; + line-height: 1; +} + +.monaco-menu .monaco-action-bar.vertical .keybinding, +.monaco-menu .monaco-action-bar.vertical .submenu-indicator { + display: inline-block; + flex: 2 1 auto; + padding: 0 1em; + text-align: right; + font-size: 12px; + line-height: 1; +} + +.monaco-menu .monaco-action-bar.vertical .submenu-indicator { + height: 100%; +} + +.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon { + font-size: 16px !important; + display: flex; + align-items: center; +} + +.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon::before { + margin-left: auto; + margin-right: -20px; +} + +.monaco-menu .monaco-action-bar.vertical .action-item.disabled .keybinding, +.monaco-menu .monaco-action-bar.vertical .action-item.disabled .submenu-indicator { + opacity: 0.4; +} + +.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator) { + display: inline-block; + box-sizing: border-box; + margin: 0; +} + +.monaco-menu .monaco-action-bar.vertical .action-item { + position: static; + overflow: visible; +} + +.monaco-menu .monaco-action-bar.vertical .action-item .monaco-submenu { + position: absolute; +} + +.monaco-menu .monaco-action-bar.vertical .action-label.separator { + padding: 0.5em 0 0 0; + margin-bottom: 0.5em; + width: 100%; + height: 0px !important; + margin-left: .8em !important; + margin-right: .8em !important; +} + +.monaco-menu .monaco-action-bar.vertical .action-label.separator.text { + padding: 0.7em 1em 0.1em 1em; + font-weight: bold; + opacity: 1; +} + +.monaco-menu .monaco-action-bar.vertical .action-label:hover { + color: inherit; +} + +.monaco-menu .monaco-action-bar.vertical .menu-item-check { + position: absolute; + visibility: hidden; + width: 1em; + height: 100%; +} + +.monaco-menu .monaco-action-bar.vertical .action-menu-item.checked .menu-item-check { + visibility: visible; + display: flex; + align-items: center; + justify-content: center; +} + +/* Context Menu */ + +.context-view.monaco-menu-container { + outline: 0; + border: none; + animation: fadeIn 0.083s linear; + -webkit-app-region: no-drag; +} + +.context-view.monaco-menu-container :focus, +.context-view.monaco-menu-container .monaco-action-bar.vertical:focus, +.context-view.monaco-menu-container .monaco-action-bar.vertical :focus { + outline: 0; +} + +.monaco-menu .monaco-action-bar.vertical .action-item { + border: thin solid transparent; /* prevents jumping behaviour on hover or focus */ +} + + +/* High Contrast Theming */ +:host-context(.hc-black) .context-view.monaco-menu-container { + box-shadow: none; +} + +:host-context(.hc-black) .monaco-menu .monaco-action-bar.vertical .action-item.focused { + background: none; +} + +/* Vertical Action Bar Styles */ + +.monaco-menu .monaco-action-bar.vertical { + padding: .5em 0; +} + +.monaco-menu .monaco-action-bar.vertical .action-menu-item { + height: 1.8em; +} + +.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator), +.monaco-menu .monaco-action-bar.vertical .keybinding { + font-size: inherit; + padding: 0 2em; +} + +.monaco-menu .monaco-action-bar.vertical .menu-item-check { + font-size: inherit; + width: 2em; +} + +.monaco-menu .monaco-action-bar.vertical .action-label.separator { + font-size: inherit; + padding: 0.2em 0 0 0; + margin-bottom: 0.2em; +} + +:host-context(.linux) .monaco-menu .monaco-action-bar.vertical .action-label.separator { + margin-left: 0; + margin-right: 0; +} + +.monaco-menu .monaco-action-bar.vertical .submenu-indicator { + font-size: 60%; + padding: 0 1.8em; +} + +:host-context(.linux) .monaco-menu .monaco-action-bar.vertical .submenu-indicator { + height: 100%; + mask-size: 10px 10px; + -webkit-mask-size: 10px 10px; +} + +.monaco-menu .action-item { + cursor: default; +}`;if(e){t+=` + /* Arrows */ + .monaco-scrollable-element > .scrollbar > .scra { + cursor: pointer; + font-size: 11px !important; + } + + .monaco-scrollable-element > .visible { + opacity: 1; + + /* Background rule added for IE9 - to allow clicks on dom node */ + background:rgba(0,0,0,0); + + transition: opacity 100ms linear; + } + .monaco-scrollable-element > .invisible { + opacity: 0; + pointer-events: none; + } + .monaco-scrollable-element > .invisible.fade { + transition: opacity 800ms linear; + } + + /* Scrollable Content Inset Shadow */ + .monaco-scrollable-element > .shadow { + position: absolute; + display: none; + } + .monaco-scrollable-element > .shadow.top { + display: block; + top: 0; + left: 3px; + height: 3px; + width: 100%; + } + .monaco-scrollable-element > .shadow.left { + display: block; + top: 3px; + left: 0; + height: 100%; + width: 3px; + } + .monaco-scrollable-element > .shadow.top-left-corner { + display: block; + top: 0; + left: 0; + height: 3px; + width: 3px; + } + `;const i=s.scrollbarShadow;i&&(t+=` + .monaco-scrollable-element > .shadow.top { + box-shadow: ${i} 0 6px 6px -6px inset; + } + + .monaco-scrollable-element > .shadow.left { + box-shadow: ${i} 6px 0 6px -6px inset; + } + + .monaco-scrollable-element > .shadow.top.left { + box-shadow: ${i} 6px 6px 6px -6px inset; + } + `);const n=s.scrollbarSliderBackground;n&&(t+=` + .monaco-scrollable-element > .scrollbar > .slider { + background: ${n}; + } + `);const o=s.scrollbarSliderHoverBackground;o&&(t+=` + .monaco-scrollable-element > .scrollbar > .slider:hover { + background: ${o}; + } + `);const r=s.scrollbarSliderActiveBackground;r&&(t+=` + .monaco-scrollable-element > .scrollbar > .slider.active { + background: ${r}; + } + `)}return t}function gn(s,e){const t=Object.create(null);for(let i in e){const n=e[i];n&&(t[i]=ps(n,s))}return t}function C2(s,e,t){function i(){const n=gn(s.getColorTheme(),e);typeof t=="function"?t(n):t.style(n)}return i(),s.onDidColorThemeChange(i)}function ll(s,e,t){return C2(e,Object.assign(Object.assign({},tg),t||{}),s)}const tg={listFocusBackground:qT,listFocusForeground:GT,listFocusOutline:ZT,listActiveSelectionBackground:_o,listActiveSelectionForeground:bo,listActiveSelectionIconForeground:Wd,listFocusAndSelectionBackground:_o,listFocusAndSelectionForeground:bo,listInactiveSelectionBackground:YT,listInactiveSelectionIconForeground:QT,listInactiveSelectionForeground:XT,listInactiveFocusBackground:JT,listInactiveFocusOutline:e5,listHoverBackground:t5,listHoverForeground:i5,listDropBackground:n5,listSelectionOutline:yi,listHoverOutline:yi,listFilterWidgetBackground:s5,listFilterWidgetOutline:o5,listFilterWidgetNoMatchesOutline:r5,listMatchesShadow:Ya,treeIndentGuidesStroke:a5,tableColumnsBorder:l5,tableOddRowsBackgroundColor:c5},fP={shadowColor:Ya,borderColor:f5,foregroundColor:g5,backgroundColor:m5,selectionForegroundColor:p5,selectionBackgroundColor:_5,selectionBorderColor:b5,separatorColor:C5,scrollbarShadow:vl,scrollbarSliderBackground:Ea,scrollbarSliderHoverBackground:Da,scrollbarSliderActiveBackground:Na};function gP(s,e,t){return C2(e,Object.assign(Object.assign({},fP),t),s)}class mP{constructor(e,t,i,n,o){this.contextViewService=e,this.telemetryService=t,this.notificationService=i,this.keybindingService=n,this.themeService=o,this.focusToReturn=null,this.block=null,this.options={blockMouse:!0}}configure(e){this.options=e}showContextMenu(e){const t=e.getActions();if(!t.length)return;this.focusToReturn=document.activeElement;let i,n=dL(e.domForShadowRoot)?e.domForShadowRoot:void 0;this.contextViewService.showContextView({getAnchor:()=>e.getAnchor(),canRelayout:!1,anchorAlignment:e.anchorAlignment,anchorAxisAlignment:e.anchorAxisAlignment,render:o=>{let r=e.getMenuClassName?e.getMenuClassName():"";r&&(o.className+=" "+r),this.options.blockMouse&&(this.block=o.appendChild(J(".context-view-block")),this.block.style.position="fixed",this.block.style.cursor="initial",this.block.style.left="0",this.block.style.top="0",this.block.style.width="100%",this.block.style.height="100%",this.block.style.zIndex="-1",V(this.block,Y.MOUSE_DOWN,c=>c.stopPropagation()));const a=new se,l=e.actionRunner||new x0;return l.onBeforeRun(this.onActionRun,this,a),l.onDidRun(this.onDidActionRun,this,a),i=new Wa(o,t,{actionViewItemProvider:e.getActionViewItem,context:e.getActionsContext?e.getActionsContext():null,actionRunner:l,getKeyBinding:e.getKeyBinding?e.getKeyBinding:c=>this.keybindingService.lookupKeybinding(c.id)}),a.add(gP(i,this.themeService)),i.onDidCancel(()=>this.contextViewService.hideContextView(!0),null,a),i.onDidBlur(()=>this.contextViewService.hideContextView(!0),null,a),a.add(V(window,Y.BLUR,()=>this.contextViewService.hideContextView(!0))),a.add(V(window,Y.MOUSE_DOWN,c=>{if(c.defaultPrevented)return;let h=new Ji(c),d=h.target;if(!h.rightButton){for(;d;){if(d===o)return;d=d.parentElement}this.contextViewService.hideContextView(!0)}})),or(a,i)},focus:()=>{i&&i.focus(!!e.autoSelectFirstItem)},onHide:o=>{e.onHide&&e.onHide(!!o),this.block&&(this.block.remove(),this.block=null),this.focusToReturn&&this.focusToReturn.focus()}},n,!!n)}onActionRun(e){this.telemetryService.publicLog2("workbenchActionExecuted",{id:e.action.id,from:"contextMenu"}),this.contextViewService.hideContextView(!1),this.focusToReturn&&this.focusToReturn.focus()}onDidActionRun(e){e.error&&!ph(e.error)&&this.notificationService.error(e.error)}}var pP=globalThis&&globalThis.__decorate||function(s,e,t,i){var n=arguments.length,o=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},zl=globalThis&&globalThis.__param||function(s,e){return function(t,i){e(t,i,s)}};let Z_=class extends W{constructor(e,t,i,n,o){super(),this._onDidShowContextMenu=new M,this._onDidHideContextMenu=new M,this.contextMenuHandler=new mP(i,e,t,n,o)}configure(e){this.contextMenuHandler.configure(e)}showContextMenu(e){this.contextMenuHandler.showContextMenu(Object.assign(Object.assign({},e),{onHide:t=>{e.onHide&&e.onHide(t),this._onDidHideContextMenu.fire()}})),da.getInstance().resetKeyStatus(),this._onDidShowContextMenu.fire()}};Z_=pP([zl(0,Lh),zl(1,Dn),zl(2,Yf),zl(3,Li),zl(4,ot)],Z_);function Kv(s){let e=JSON.parse(s);return e=Y_(e),e}function Y_(s,e=0){if(!s||e>200)return s;if(typeof s=="object"){switch(s.$mid){case 1:return we.revive(s);case 2:return new RegExp(s.source,s.flags);case 14:return new Date(s.source)}if(s instanceof Sf||s instanceof Uint8Array)return s;if(Array.isArray(s))for(let t=0;tw2(s,t))}function bP(s){let e;const t=/^L?(\d+)(?:,(\d+))?(-L?(\d+)(?:,(\d+))?)?/.exec(s.fragment);return t&&(e={startLineNumber:parseInt(t[1]),startColumn:t[2]?parseInt(t[2]):1,endLineNumber:t[4]?parseInt(t[4]):void 0,endColumn:t[4]?t[5]?parseInt(t[5]):1:void 0},s=s.with({fragment:""})),{selection:e,uri:s}}var _b=globalThis&&globalThis.__decorate||function(s,e,t,i){var n=arguments.length,o=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},of=globalThis&&globalThis.__param||function(s,e){return function(t,i){e(t,i,s)}},Zo=globalThis&&globalThis.__awaiter||function(s,e,t,i){function n(o){return o instanceof t?o:new t(function(r){r(o)})}return new(t||(t=Promise))(function(o,r){function a(h){try{c(i.next(h))}catch(d){r(d)}}function l(h){try{c(i.throw(h))}catch(d){r(d)}}function c(h){h.done?o(h.value):n(h.value).then(a,l)}c((i=i.apply(s,e||[])).next())})};let X_=class{constructor(e){this._commandService=e}open(e,t){return Zo(this,void 0,void 0,function*(){if(!w2(e,Ce.command))return!1;if(!(t!=null&&t.allowCommands))return!0;typeof e=="string"&&(e=we.parse(e));let i=[];try{i=Kv(decodeURIComponent(e.query))}catch{try{i=Kv(e.query)}catch{}}return Array.isArray(i)||(i=[i]),yield this._commandService.executeCommand(e.path,...i),!0})}};X_=_b([of(0,Bi)],X_);let Q_=class{constructor(e){this._editorService=e}open(e,t){return Zo(this,void 0,void 0,function*(){typeof e=="string"&&(e=we.parse(e));const{selection:i,uri:n}=bP(e);return e=n,e.scheme===Ce.file&&(e=JA(e)),yield this._editorService.openCodeEditor({resource:e,options:Object.assign({selection:i,source:t!=null&&t.fromUserGesture?sf.USER:sf.API},t==null?void 0:t.editorOptions)},this._editorService.getFocusedCodeEditor(),t==null?void 0:t.openToSide),!0})}};Q_=_b([of(0,kt)],Q_);let J_=class{constructor(e,t){this._openers=new Xi,this._validators=new Xi,this._resolvers=new Xi,this._resolvedUriTargets=new ti(i=>i.with({path:null,fragment:null,query:null}).toString()),this._externalOpeners=new Xi,this._defaultExternalOpener={openExternal:i=>Zo(this,void 0,void 0,function*(){return Gv(i,Ce.http,Ce.https)?gL(i):window.location.href=i,!0})},this._openers.push({open:(i,n)=>Zo(this,void 0,void 0,function*(){return(n==null?void 0:n.openExternal)||Gv(i,Ce.mailto,Ce.http,Ce.https,Ce.vsls)?(yield this._doOpenExternal(i,n),!0):!1})}),this._openers.push(new X_(t)),this._openers.push(new Q_(e))}registerOpener(e){return{dispose:this._openers.unshift(e)}}registerValidator(e){return{dispose:this._validators.push(e)}}registerExternalUriResolver(e){return{dispose:this._resolvers.push(e)}}setDefaultExternalOpener(e){this._defaultExternalOpener=e}registerExternalOpener(e){return{dispose:this._externalOpeners.push(e)}}open(e,t){var i;return Zo(this,void 0,void 0,function*(){const n=typeof e=="string"?we.parse(e):e,o=(i=this._resolvedUriTargets.get(n))!==null&&i!==void 0?i:e;for(const r of this._validators)if(!(yield r.shouldOpen(o)))return!1;for(const r of this._openers)if(yield r.open(e,t))return!0;return!1})}resolveExternalUri(e,t){return Zo(this,void 0,void 0,function*(){for(const i of this._resolvers)try{const n=yield i.resolveExternalUri(e,t);if(n)return this._resolvedUriTargets.has(n.resolved)||this._resolvedUriTargets.set(n.resolved,e),n}catch{}throw new Error("Could not resolve external URI: "+e.toString())})}_doOpenExternal(e,t){return Zo(this,void 0,void 0,function*(){const i=typeof e=="string"?we.parse(e):e;let n;try{n=(yield this.resolveExternalUri(i,t)).resolved}catch{n=i}let o;if(typeof e=="string"&&i.toString()===n.toString()?o=e:o=encodeURI(n.toString(!0)),t!=null&&t.allowContributedOpeners){const r=typeof(t==null?void 0:t.allowContributedOpeners)=="string"?t==null?void 0:t.allowContributedOpeners:void 0;for(const a of this._externalOpeners)if(yield a.openExternal(o,{sourceUri:i,preferredOpenerId:r},ci.None))return!0}return this._defaultExternalOpener.openExternal(o,{sourceUri:i},ci.None)})}dispose(){this._validators.clear()}};J_=_b([of(0,kt),of(1,Bi)],J_);var Di;(function(s){s[s.Hint=1]="Hint",s[s.Info=2]="Info",s[s.Warning=4]="Warning",s[s.Error=8]="Error"})(Di||(Di={}));(function(s){function e(r,a){return a-r}s.compare=e;const t=Object.create(null);t[s.Error]=p("sev.error","Error"),t[s.Warning]=p("sev.warning","Warning"),t[s.Info]=p("sev.info","Info");function i(r){return t[r]||""}s.toString=i;function n(r){switch(r){case at.Error:return s.Error;case at.Warning:return s.Warning;case at.Info:return s.Info;case at.Ignore:return s.Hint}}s.fromSeverity=n;function o(r){switch(r){case s.Error:return at.Error;case s.Warning:return at.Warning;case s.Info:return at.Info;case s.Hint:return at.Ignore}}s.toSeverity=o})(Di||(Di={}));var Zv;(function(s){const e="";function t(n){return i(n,!0)}s.makeKey=t;function i(n,o){let r=[e];return n.source?r.push(n.source.replace("\xA6","\\\xA6")):r.push(e),n.code?typeof n.code=="string"?r.push(n.code.replace("\xA6","\\\xA6")):r.push(n.code.value.replace("\xA6","\\\xA6")):r.push(e),n.severity!==void 0&&n.severity!==null?r.push(Di.toString(n.severity)):r.push(e),n.message&&o?r.push(n.message.replace("\xA6","\\\xA6")):r.push(e),n.startLineNumber!==void 0&&n.startLineNumber!==null?r.push(n.startLineNumber.toString()):r.push(e),n.startColumn!==void 0&&n.startColumn!==null?r.push(n.startColumn.toString()):r.push(e),n.endLineNumber!==void 0&&n.endLineNumber!==null?r.push(n.endLineNumber.toString()):r.push(e),n.endColumn!==void 0&&n.endColumn!==null?r.push(n.endColumn.toString()):r.push(e),r.push(e),r.join("\xA6")}s.makeKeyOptionalMessage=i})(Zv||(Zv={}));const El=pe("markerService");var CP=globalThis&&globalThis.__decorate||function(s,e,t,i){var n=arguments.length,o=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},Yv=globalThis&&globalThis.__param||function(s,e){return function(t,i){e(t,i,s)}};class wP extends W{constructor(e){super(),this.model=e,this._markersData=new Map,this._register(Pe(()=>{this.model.deltaDecorations([...this._markersData.keys()],[]),this._markersData.clear()}))}update(e,t){const i=[...this._markersData.keys()];this._markersData.clear();const n=this.model.deltaDecorations(i,t);for(let o=0;othis._onModelAdded(i)),this._register(e.onModelAdded(this._onModelAdded,this)),this._register(e.onModelRemoved(this._onModelRemoved,this)),this._register(this._markerService.onMarkerChanged(this._handleMarkerChange,this))}dispose(){super.dispose(),this._markerDecorations.forEach(e=>e.dispose()),this._markerDecorations.clear()}getMarker(e,t){const i=this._markerDecorations.get(e);return i&&i.getMarker(t)||null}_handleMarkerChange(e){e.forEach(t=>{const i=this._markerDecorations.get(t);i&&this._updateDecorations(i)})}_onModelAdded(e){const t=new wP(e);this._markerDecorations.set(e.uri,t),this._updateDecorations(t)}_onModelRemoved(e){const t=this._markerDecorations.get(e.uri);t&&(t.dispose(),this._markerDecorations.delete(e.uri)),(e.uri.scheme===Ce.inMemory||e.uri.scheme===Ce.internal||e.uri.scheme===Ce.vscode)&&this._markerService&&this._markerService.read({resource:e.uri}).map(i=>i.owner).forEach(i=>this._markerService.remove(i,[e.uri]))}_updateDecorations(e){const t=this._markerService.read({resource:e.model.uri,take:500}),i=t.map(n=>({range:this._createDecorationRange(e.model,n),options:this._createDecorationOption(n)}));e.update(t,i)&&this._onDidChangeMarker.fire(e.model)}_createDecorationRange(e,t){let i=D.lift(t);if(t.severity===Di.Hint&&!this._hasMarkerTag(t,1)&&!this._hasMarkerTag(t,2)&&(i=i.setEndPosition(i.startLineNumber,i.startColumn+2)),i=e.validateRange(i),i.isEmpty()){const n=e.getLineLastNonWhitespaceColumn(i.startLineNumber)||e.getLineMaxColumn(i.startLineNumber);if(n===1||i.endColumn>=n)return i;const o=e.getWordAtPosition(i.getStartPosition());o&&(i=new D(i.startLineNumber,o.startColumn,i.endLineNumber,o.endColumn))}else if(t.endColumn===Number.MAX_VALUE&&t.startColumn===1&&i.startLineNumber===i.endLineNumber){let n=e.getLineFirstNonWhitespaceColumn(t.startLineNumber);n=0:!1}};e1=CP([Yv(0,At),Yv(1,El)],e1);class Sc{constructor(e,t){this._startLineNumber=e,this._tokens=t,this._endLineNumber=this._startLineNumber+this._tokens.getMaxDeltaLine()}static create(e,t){return new Sc(e,new rf(t))}get startLineNumber(){return this._startLineNumber}get endLineNumber(){return this._endLineNumber}toString(){return this._tokens.toString(this._startLineNumber)}_updateEndLineNumber(){this._endLineNumber=this._startLineNumber+this._tokens.getMaxDeltaLine()}isEmpty(){return this._tokens.isEmpty()}getLineTokens(e){return this._startLineNumber<=e&&e<=this._endLineNumber?this._tokens.getLineTokens(e-this._startLineNumber):null}getRange(){const e=this._tokens.getRange();return e&&new D(this._startLineNumber+e.startLineNumber,e.startColumn,this._startLineNumber+e.endLineNumber,e.endColumn)}removeTokens(e){const t=e.startLineNumber-this._startLineNumber,i=e.endLineNumber-this._startLineNumber;this._startLineNumber+=this._tokens.removeTokens(t,e.startColumn-1,i,e.endColumn-1),this._updateEndLineNumber()}split(e){const t=e.startLineNumber-this._startLineNumber,i=e.endLineNumber-this._startLineNumber,[n,o,r]=this._tokens.split(t,e.startColumn-1,i,e.endColumn-1);return[new Sc(this._startLineNumber,n),new Sc(this._startLineNumber+r,o)]}applyEdit(e,t){const[i,n,o]=nl(t);this.acceptEdit(e,i,n,o,t.length>0?t.charCodeAt(0):0)}acceptEdit(e,t,i,n,o){this._acceptDeleteRange(e),this._acceptInsertText(new A(e.startLineNumber,e.startColumn),t,i,n,o),this._updateEndLineNumber()}_acceptDeleteRange(e){if(e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn)return;const t=e.startLineNumber-this._startLineNumber,i=e.endLineNumber-this._startLineNumber;if(i<0){const o=i-t;this._startLineNumber-=o;return}const n=this._tokens.getMaxDeltaLine();if(!(t>=n+1)){if(t<0&&i>=n+1){this._startLineNumber=0,this._tokens.clear();return}if(t<0){const o=-t;this._startLineNumber-=o,this._tokens.acceptDeleteRange(e.startColumn-1,0,0,i,e.endColumn-1)}else this._tokens.acceptDeleteRange(0,t,e.startColumn-1,i,e.endColumn-1)}}_acceptInsertText(e,t,i,n,o){if(t===0&&i===0)return;const r=e.lineNumber-this._startLineNumber;if(r<0){this._startLineNumber+=t;return}const a=this._tokens.getMaxDeltaLine();r>=a+1||this._tokens.acceptInsertText(r,e.column-1,t,i,n,o)}}class rf{constructor(e){this._tokens=e,this._tokenCount=e.length/4}toString(e){const t=[];for(let i=0;ie)i=n-1;else{let r=n;for(;r>t&&this._getDeltaLine(r-1)===e;)r--;let a=n;for(;ae||u===e&&m>=t)&&(ue||m===e&&b>=t){if(mo?_-=o-i:_=i;else if(f===t&&m===i)if(f===n&&_>o)_-=o-i;else{h=!0;continue}else if(fo)f===t?(m=i,_=m+(_-o)):(m=0,_=m+(_-o));else{h=!0;continue}else if(f>n){if(l===0&&!h){c=a;break}f-=l}else if(f===n&&m>=o)e&&f===0&&(m+=e,_+=e),f-=l,m-=o-i,_-=o-i;else throw new Error("Not possible!");const w=4*c;r[w]=f,r[w+1]=m,r[w+2]=_,r[w+3]=b,c++}this._tokenCount=c}acceptInsertText(e,t,i,n,o,r){const a=i===0&&n===1&&(r>=48&&r<=57||r>=65&&r<=90||r>=97&&r<=122),l=this._tokens,c=this._tokenCount;for(let h=0;h=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},Rm=globalThis&&globalThis.__param||function(s,e){return function(t,i){e(t,i,s)}};let t1=class{constructor(e,t,i,n){this._legend=e,this._themeService=t,this._languageService=i,this._logService=n,this._hashTable=new Ls,this._hasWarnedOverlappingTokens=!1}getMetadata(e,t,i){const n=this._languageService.languageIdCodec.encodeLanguageId(i),o=this._hashTable.get(e,t,n);let r;if(o)r=o.metadata,this._logService.getLevel()===wn.Trace&&this._logService.trace(`SemanticTokensProviderStyling [CACHED] ${e} / ${t}: foreground ${pi.getForeground(r)}, fontStyle ${pi.getFontStyle(r).toString(2)}`);else{let a=this._legend.tokenTypes[e];const l=[];if(a){let c=t;for(let d=0;c>0&&d>1;c>0&&this._logService.getLevel()===wn.Trace&&(this._logService.trace(`SemanticTokensProviderStyling: unknown token modifier index: ${t.toString(2)} for legend: ${JSON.stringify(this._legend.tokenModifiers)}`),l.push("not-in-legend"));const h=this._themeService.getColorTheme().getTokenStyleMetadata(a,l,i);typeof h=="undefined"?r=2147483647:(r=0,typeof h.italic!="undefined"&&(r|=(h.italic?1:0)<<10|1),typeof h.bold!="undefined"&&(r|=(h.bold?2:0)<<10|2),typeof h.underline!="undefined"&&(r|=(h.underline?4:0)<<10|4),typeof h.strikethrough!="undefined"&&(r|=(h.strikethrough?8:0)<<10|8),h.foreground&&(r|=h.foreground<<14|16),r===0&&(r=2147483647))}else this._logService.getLevel()===wn.Trace&&this._logService.trace(`SemanticTokensProviderStyling: unknown token type index: ${e} for legend: ${JSON.stringify(this._legend.tokenTypes)}`),r=2147483647,a="not-in-legend";this._hashTable.add(e,t,n,r),this._logService.getLevel()===wn.Trace&&this._logService.trace(`SemanticTokensProviderStyling ${e} (${a}) / ${t} (${l.join(" ")}): foreground ${pi.getForeground(r)}, fontStyle ${pi.getFontStyle(r).toString(2)}`)}return r}warnOverlappingSemanticTokens(e,t){this._hasWarnedOverlappingTokens||(this._hasWarnedOverlappingTokens=!0,console.warn(`Overlapping semantic tokens detected at lineNumber ${e}, column ${t}`))}};t1=vP([Rm(1,ot),Rm(2,Wt),Rm(3,Do)],t1);function SP(s,e,t){const i=s.data,n=s.data.length/5|0,o=Math.max(Math.ceil(n/1024),400),r=[];let a=0,l=1,c=0;for(;ah&&i[5*v]===0;)v--;if(v-1===h){let S=d;for(;S+1L&&(e.warnOverlappingSemanticTokens(x,L+1),b=this._growCount){const o=this._elements;this._currentLengthIndex++,this._currentLength=Ls._SIZES[this._currentLengthIndex],this._growCount=Math.round(this._currentLengthIndex+10?t[0]:[]}function L2(s,e,t,i,n){return xo(this,void 0,void 0,function*(){const o=EP(s,e),r=yield Promise.all(o.map(a=>xo(this,void 0,void 0,function*(){let l,c=null;try{l=yield a.provideDocumentSemanticTokens(e,a===t?i:null,n)}catch(h){c=h,l=null}return(!l||!ig(l)&&!S2(l))&&(l=null),new IP(a,l,c)})));for(const a of r){if(a.error)throw a.error;if(a.tokens)return a}return r.length>0?r[0]:null})}function DP(s,e){const t=s.orderedGroups(e);return t.length>0?t[0]:null}class NP{constructor(e,t){this.provider=e,this.tokens=t}}function k2(s,e){const t=s.orderedGroups(e);return t.length>0?t[0]:[]}function x2(s,e,t,i){return xo(this,void 0,void 0,function*(){const n=k2(s,e),o=yield Promise.all(n.map(r=>xo(this,void 0,void 0,function*(){let a;try{a=yield r.provideDocumentRangeSemanticTokens(e,t,i)}catch(l){bf(l),a=null}return(!a||!ig(a))&&(a=null),new NP(r,a)})));for(const r of o)if(r.tokens)return r;return o.length>0?o[0]:null})}Ht.registerCommand("_provideDocumentSemanticTokensLegend",(s,...e)=>xo(void 0,void 0,void 0,function*(){const[t]=e;Sn(t instanceof we);const i=s.get(At).getModel(t);if(!i)return;const{documentSemanticTokensProvider:n}=s.get(be),o=DP(n,i);return o?o[0].getLegend():s.get(Bi).executeCommand("_provideDocumentRangeSemanticTokensLegend",t)}));Ht.registerCommand("_provideDocumentSemanticTokens",(s,...e)=>xo(void 0,void 0,void 0,function*(){const[t]=e;Sn(t instanceof we);const i=s.get(At).getModel(t);if(!i)return;const{documentSemanticTokensProvider:n}=s.get(be);if(!y2(n,i))return s.get(Bi).executeCommand("_provideDocumentRangeSemanticTokens",t,i.getFullModelRange());const o=yield L2(n,i,null,null,ci.None);if(!o)return;const{provider:r,tokens:a}=o;if(!a||!ig(a))return;const l=v2({id:0,type:"full",data:a.data});return a.resultId&&r.releaseDocumentSemanticTokens(a.resultId),l}));Ht.registerCommand("_provideDocumentRangeSemanticTokensLegend",(s,...e)=>xo(void 0,void 0,void 0,function*(){const[t,i]=e;Sn(t instanceof we);const n=s.get(At).getModel(t);if(!n)return;const{documentRangeSemanticTokensProvider:o}=s.get(be),r=k2(o,n);if(r.length===0)return;if(r.length===1)return r[0].getLegend();if(!i||!D.isIRange(i))return console.warn("provideDocumentRangeSemanticTokensLegend might be out-of-sync with provideDocumentRangeSemanticTokens unless a range argument is passed in"),r[0].getLegend();const a=yield x2(o,n,D.lift(i),ci.None);if(!!a)return a.provider.getLegend()}));Ht.registerCommand("_provideDocumentRangeSemanticTokens",(s,...e)=>xo(void 0,void 0,void 0,function*(){const[t,i]=e;Sn(t instanceof we),Sn(D.isIRange(i));const n=s.get(At).getModel(t);if(!n)return;const{documentRangeSemanticTokensProvider:o}=s.get(be),r=yield x2(o,n,D.lift(i),ci.None);if(!(!r||!r.tokens))return v2({id:0,type:"full",data:r.tokens.data})}));var bb=globalThis&&globalThis.__decorate||function(s,e,t,i){var n=arguments.length,o=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},Kt=globalThis&&globalThis.__param||function(s,e){return function(t,i){e(t,i,s)}};function Us(s){return s.toString()}function Qv(s){const e=new If,t=s.createSnapshot();let i;for(;i=t.read();)e.update(i);return e.digest()}class TP{constructor(e,t,i){this._modelEventListeners=new se,this.model=e,this._languageSelection=null,this._languageSelectionListener=null,this._modelEventListeners.add(e.onWillDispose(()=>t(e))),this._modelEventListeners.add(e.onDidChangeLanguage(n=>i(e,n)))}_disposeLanguageSelection(){this._languageSelectionListener&&(this._languageSelectionListener.dispose(),this._languageSelectionListener=null)}dispose(){this._modelEventListeners.dispose(),this._disposeLanguageSelection()}setLanguage(e){this._disposeLanguageSelection(),this._languageSelection=e,this._languageSelectionListener=this._languageSelection.onDidChange(()=>this.model.setMode(e.languageId)),this.model.setMode(e.languageId)}}const MP=qt||me?1:2;class RP{constructor(e,t,i,n,o,r,a,l){this.uri=e,this.initialUndoRedoSnapshot=t,this.time=i,this.sharesUndoRedoStack=n,this.heapSize=o,this.sha1=r,this.versionId=a,this.alternativeVersionId=l}}let af=class Yl extends W{constructor(e,t,i,n,o,r,a,l,c){super(),this._configurationService=e,this._resourcePropertiesService=t,this._themeService=i,this._logService=n,this._undoRedoService=o,this._languageService=r,this._languageConfigurationService=a,this._languageFeatureDebounceService=l,this._onModelAdded=this._register(new M),this.onModelAdded=this._onModelAdded.event,this._onModelRemoved=this._register(new M),this.onModelRemoved=this._onModelRemoved.event,this._onModelModeChanged=this._register(new M),this.onModelLanguageChanged=this._onModelModeChanged.event,this._modelCreationOptionsByLanguageAndResource=Object.create(null),this._models={},this._disposedModels=new Map,this._disposedModelsHeapSize=0,this._semanticStyling=this._register(new AP(this._themeService,this._languageService,this._logService)),this._register(this._configurationService.onDidChangeConfiguration(()=>this._updateModelOptions())),this._updateModelOptions(),this._register(new i1(this._semanticStyling,this,this._themeService,this._configurationService,this._languageFeatureDebounceService,c))}static _readModelOptions(e,t){var i;let n=Bt.tabSize;if(e.editor&&typeof e.editor.tabSize!="undefined"){const f=parseInt(e.editor.tabSize,10);isNaN(f)||(n=f),n<1&&(n=1)}let o=n;if(e.editor&&typeof e.editor.indentSize!="undefined"&&e.editor.indentSize!=="tabSize"){const f=parseInt(e.editor.indentSize,10);isNaN(f)||(o=f),o<1&&(o=1)}let r=Bt.insertSpaces;e.editor&&typeof e.editor.insertSpaces!="undefined"&&(r=e.editor.insertSpaces==="false"?!1:Boolean(e.editor.insertSpaces));let a=MP;const l=e.eol;l===`\r +`?a=2:l===` +`&&(a=1);let c=Bt.trimAutoWhitespace;e.editor&&typeof e.editor.trimAutoWhitespace!="undefined"&&(c=e.editor.trimAutoWhitespace==="false"?!1:Boolean(e.editor.trimAutoWhitespace));let h=Bt.detectIndentation;e.editor&&typeof e.editor.detectIndentation!="undefined"&&(h=e.editor.detectIndentation==="false"?!1:Boolean(e.editor.detectIndentation));let d=Bt.largeFileOptimizations;e.editor&&typeof e.editor.largeFileOptimizations!="undefined"&&(d=e.editor.largeFileOptimizations==="false"?!1:Boolean(e.editor.largeFileOptimizations));let u=Bt.bracketPairColorizationOptions;return((i=e.editor)===null||i===void 0?void 0:i.bracketPairColorization)&&typeof e.editor.bracketPairColorization=="object"&&(u={enabled:!!e.editor.bracketPairColorization.enabled}),{isForSimpleWidget:t,tabSize:n,indentSize:o,insertSpaces:r,detectIndentation:h,defaultEOL:a,trimAutoWhitespace:c,largeFileOptimizations:d,bracketPairColorizationOptions:u}}_getEOL(e,t){if(e)return this._resourcePropertiesService.getEOL(e,t);const i=this._configurationService.getValue("files.eol",{overrideIdentifier:t});return i&&typeof i=="string"&&i!=="auto"?i:qi===3||qi===2?` +`:`\r +`}_shouldRestoreUndoStack(){const e=this._configurationService.getValue("files.restoreUndoStack");return typeof e=="boolean"?e:!0}getCreationOptions(e,t,i){let n=this._modelCreationOptionsByLanguageAndResource[e+t];if(!n){const o=this._configurationService.getValue("editor",{overrideIdentifier:e,resource:t}),r=this._getEOL(t,e);n=Yl._readModelOptions({editor:o,eol:r},i),this._modelCreationOptionsByLanguageAndResource[e+t]=n}return n}_updateModelOptions(){const e=this._modelCreationOptionsByLanguageAndResource;this._modelCreationOptionsByLanguageAndResource=Object.create(null);const t=Object.keys(this._models);for(let i=0,n=t.length;ie){const t=[];for(this._disposedModels.forEach(i=>{i.sharesUndoRedoStack||t.push(i)}),t.sort((i,n)=>i.time-n.time);t.length>0&&this._disposedModelsHeapSize>e;){const i=t.shift();this._removeDisposedModel(i.uri),i.initialUndoRedoSnapshot!==null&&this._undoRedoService.restoreSnapshot(i.initialUndoRedoSnapshot)}}}_createModelData(e,t,i,n){const o=this.getCreationOptions(t,i,n),r=new Ir(e,t,o,i,this._undoRedoService,this._languageService,this._languageConfigurationService);if(i&&this._disposedModels.has(Us(i))){const c=this._removeDisposedModel(i),h=this._undoRedoService.getElements(i),d=Qv(r)===c.sha1;if(d||c.sharesUndoRedoStack){for(const u of h.past)Ss(u)&&u.matchesResource(i)&&u.setModel(r);for(const u of h.future)Ss(u)&&u.matchesResource(i)&&u.setModel(r);this._undoRedoService.setElementsValidFlag(i,!0,u=>Ss(u)&&u.matchesResource(i)),d&&(r._overwriteVersionId(c.versionId),r._overwriteAlternativeVersionId(c.alternativeVersionId),r._overwriteInitialUndoRedoSnapshot(c.initialUndoRedoSnapshot))}else c.initialUndoRedoSnapshot!==null&&this._undoRedoService.restoreSnapshot(c.initialUndoRedoSnapshot)}const a=Us(r.uri);if(this._models[a])throw new Error("ModelService: Cannot add model because it already exists!");const l=new TP(r,c=>this._onWillDispose(c),(c,h)=>this._onDidChangeLanguage(c,h));return this._models[a]=l,l}createModel(e,t,i,n=!1){let o;return t?(o=this._createModelData(e,t.languageId,i,n),this.setMode(o.model,t)):o=this._createModelData(e,Vr,i,n),this._onModelAdded.fire(o.model),o.model}setMode(e,t){if(!t)return;const i=this._models[Us(e.uri)];!i||i.setLanguage(t)}getModels(){const e=[],t=Object.keys(this._models);for(let i=0,n=t.length;i0||l.future.length>0){for(const c of l.past)Ss(c)&&c.matchesResource(e.uri)&&(o=!0,r+=c.heapSize(e.uri),c.setModel(e.uri));for(const c of l.future)Ss(c)&&c.matchesResource(e.uri)&&(o=!0,r+=c.heapSize(e.uri),c.setModel(e.uri))}}const a=Yl.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK;if(o)if(!n&&r>a){const l=i.model.getInitialUndoRedoSnapshot();l!==null&&this._undoRedoService.restoreSnapshot(l)}else this._ensureDisposedModelsHeapSize(a-r),this._undoRedoService.setElementsValidFlag(e.uri,!1,l=>Ss(l)&&l.matchesResource(e.uri)),this._insertDisposedModel(new RP(e.uri,i.model.getInitialUndoRedoSnapshot(),Date.now(),n,r,Qv(e),e.getVersionId(),e.getAlternativeVersionId()));else if(!n){const l=i.model.getInitialUndoRedoSnapshot();l!==null&&this._undoRedoService.restoreSnapshot(l)}delete this._models[t],i.dispose(),delete this._modelCreationOptionsByLanguageAndResource[e.getLanguageId()+e.uri],this._onModelRemoved.fire(e)}_onDidChangeLanguage(e,t){const i=t.oldLanguage,n=e.getLanguageId(),o=this.getCreationOptions(i,e.uri,e.isForSimpleWidget),r=this.getCreationOptions(n,e.uri,e.isForSimpleWidget);Yl._setModelOptionsForModel(e,r,o),this._onModelModeChanged.fire({model:e,oldLanguageId:i})}};af.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK=20*1024*1024;af=bb([Kt(0,Rt),Kt(1,Zy),Kt(2,ot),Kt(3,Do),Kt(4,tb),Kt(5,Wt),Kt(6,Eo),Kt(7,Xf),Kt(8,be)],af);const I2="editor.semanticHighlighting";function Jv(s,e,t){var i;const n=(i=t.getValue(I2,{overrideIdentifier:s.getLanguageId(),resource:s.uri}))===null||i===void 0?void 0:i.enabled;return typeof n=="boolean"?n:e.getColorTheme().semanticHighlighting}let i1=class extends W{constructor(e,t,i,n,o,r){super(),this._watchers=Object.create(null),this._semanticStyling=e;const a=h=>{this._watchers[h.uri.toString()]=new nh(h,this._semanticStyling,i,o,r)},l=(h,d)=>{d.dispose(),delete this._watchers[h.uri.toString()]},c=()=>{for(let h of t.getModels()){const d=this._watchers[h.uri.toString()];Jv(h,i,n)?d||a(h):d&&l(h,d)}};this._register(t.onModelAdded(h=>{Jv(h,i,n)&&a(h)})),this._register(t.onModelRemoved(h=>{const d=this._watchers[h.uri.toString()];d&&l(h,d)})),this._register(n.onDidChangeConfiguration(h=>{h.affectsConfiguration(I2)&&c()})),this._register(i.onDidColorThemeChange(c))}};i1=bb([Kt(1,At),Kt(2,ot),Kt(3,Rt),Kt(4,Xf),Kt(5,be)],i1);class AP extends W{constructor(e,t,i){super(),this._themeService=e,this._languageService=t,this._logService=i,this._caches=new WeakMap,this._register(this._themeService.onDidColorThemeChange(()=>{this._caches=new WeakMap}))}get(e){return this._caches.has(e)||this._caches.set(e,new t1(e.getLegend(),this._themeService,this._languageService,this._logService)),this._caches.get(e)}}class OP{constructor(e,t,i){this.provider=e,this.resultId=t,this.data=i}dispose(){this.provider.releaseDocumentSemanticTokens(this.resultId)}}let nh=class zo extends W{constructor(e,t,i,n,o){super(),this._isDisposed=!1,this._model=e,this._semanticStyling=t,this._provider=o.documentSemanticTokensProvider,this._debounceInformation=n.for(this._provider,"DocumentSemanticTokens",{min:zo.REQUEST_MIN_DELAY,max:zo.REQUEST_MAX_DELAY}),this._fetchDocumentSemanticTokens=this._register(new Tt(()=>this._fetchDocumentSemanticTokensNow(),zo.REQUEST_MIN_DELAY)),this._currentDocumentResponse=null,this._currentDocumentRequestCancellationTokenSource=null,this._documentProvidersChangeListeners=[],this._register(this._model.onDidChangeContent(()=>{this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(this._model.onDidChangeLanguage(()=>{this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._currentDocumentRequestCancellationTokenSource&&(this._currentDocumentRequestCancellationTokenSource.cancel(),this._currentDocumentRequestCancellationTokenSource=null),this._setDocumentSemanticTokens(null,null,null,[]),this._fetchDocumentSemanticTokens.schedule(0)}));const r=()=>{Me(this._documentProvidersChangeListeners),this._documentProvidersChangeListeners=[];for(const a of this._provider.all(e))typeof a.onDidChange=="function"&&this._documentProvidersChangeListeners.push(a.onDidChange(()=>this._fetchDocumentSemanticTokens.schedule(0)))};r(),this._register(this._provider.onDidChange(()=>{r(),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(i.onDidColorThemeChange(a=>{this._setDocumentSemanticTokens(null,null,null,[]),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._fetchDocumentSemanticTokens.schedule(0)}dispose(){this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._currentDocumentRequestCancellationTokenSource&&(this._currentDocumentRequestCancellationTokenSource.cancel(),this._currentDocumentRequestCancellationTokenSource=null),this._setDocumentSemanticTokens(null,null,null,[]),this._isDisposed=!0,super.dispose()}_fetchDocumentSemanticTokensNow(){if(this._currentDocumentRequestCancellationTokenSource)return;if(!y2(this._provider,this._model)){this._currentDocumentResponse&&this._model.setSemanticTokens(null,!1);return}const e=new ml,t=this._currentDocumentResponse?this._currentDocumentResponse.provider:null,i=this._currentDocumentResponse&&this._currentDocumentResponse.resultId||null,n=L2(this._provider,this._model,t,i,e.token);this._currentDocumentRequestCancellationTokenSource=e;const o=[],r=this._model.onDidChangeContent(l=>{o.push(l)}),a=new Rr(!1);n.then(l=>{if(this._debounceInformation.update(this._model,a.elapsed()),this._currentDocumentRequestCancellationTokenSource=null,r.dispose(),!l)this._setDocumentSemanticTokens(null,null,null,o);else{const{provider:c,tokens:h}=l,d=this._semanticStyling.get(c);this._setDocumentSemanticTokens(c,h||null,d,o)}},l=>{l&&(ph(l)||typeof l.message=="string"&&l.message.indexOf("busy")!==-1)||Ze(l),this._currentDocumentRequestCancellationTokenSource=null,r.dispose(),o.length>0&&(this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model)))})}static _copy(e,t,i,n,o){for(let r=0;r{n.length>0&&!this._fetchDocumentSemanticTokens.isScheduled()&&this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))};if(this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._isDisposed){e&&t&&e.releaseDocumentSemanticTokens(t.resultId);return}if(!e||!i){this._model.setSemanticTokens(null,!1);return}if(!t){this._model.setSemanticTokens(null,!0),r();return}if(S2(t)){if(!o){this._model.setSemanticTokens(null,!0);return}if(t.edits.length===0)t={resultId:t.resultId,data:o.data};else{let a=0;for(const u of t.edits)a+=(u.data?u.data.length:0)-u.deleteCount;const l=o.data,c=new Uint32Array(l.length+a);let h=l.length,d=c.length;for(let u=t.edits.length-1;u>=0;u--){const f=t.edits[u],m=h-(f.start+f.deleteCount);m>0&&(zo._copy(l,h-m,c,d-m,m),d-=m),f.data&&(zo._copy(f.data,0,c,d-f.data.length,f.data.length),d-=f.data.length),h=f.start}h>0&&zo._copy(l,0,c,0,h),t={resultId:t.resultId,data:c}}}if(ig(t)){this._currentDocumentResponse=new OP(e,t.resultId,t.data);const a=SP(t,i,this._model.getLanguageId());if(n.length>0)for(const l of n)for(const c of a)for(const h of l.changes)c.applyEdit(h.range,h.text);this._model.setSemanticTokens(a,!0)}else this._model.setSemanticTokens(null,!0);r()}};nh.REQUEST_MIN_DELAY=300;nh.REQUEST_MAX_DELAY=2e3;nh=bb([Kt(2,ot),Kt(3,Xf),Kt(4,be)],nh);const PP=new RegExp(`(\\\\)?\\$\\((${ei.iconNameExpression}(?:${ei.iconModifierExpression})?)\\)`,"g");function yc(s){const e=new Array;let t,i=0,n=0;for(;(t=PP.exec(s))!==null;){n=t.index||0,e.push(s.substring(i,n)),i=(t.index||0)+t[0].length;const[,o,r]=t;e.push(o?`$(${r})`:FP({id:r}))}return i{this._register(V(this._element,i,n=>{if(!this.enabled){Ie.stop(n);return}this._onDidClick.fire(n)}))}),this._register(V(this._element,Y.KEY_DOWN,i=>{const n=new He(i);let o=!1;this.enabled&&(n.equals(3)||n.equals(10))?(this._onDidClick.fire(i),o=!0):n.equals(9)&&(this._element.blur(),o=!0),o&&Ie.stop(n,!0)})),this._register(V(this._element,Y.MOUSE_OVER,i=>{this._element.classList.contains("disabled")||this.setHoverBackground()})),this._register(V(this._element,Y.MOUSE_OUT,i=>{this.applyStyles()})),this.focusTracker=this._register(Ga(this._element)),this._register(this.focusTracker.onDidFocus(()=>this.setHoverBackground())),this._register(this.focusTracker.onDidBlur(()=>this.applyStyles())),this.applyStyles()}get onDidClick(){return this._onDidClick.event}setHoverBackground(){let e;this.options.secondary?e=this.buttonSecondaryHoverBackground?this.buttonSecondaryHoverBackground.toString():null:e=this.buttonHoverBackground?this.buttonHoverBackground.toString():null,e&&(this._element.style.backgroundColor=e)}style(e){this.buttonForeground=e.buttonForeground,this.buttonBackground=e.buttonBackground,this.buttonHoverBackground=e.buttonHoverBackground,this.buttonSecondaryForeground=e.buttonSecondaryForeground,this.buttonSecondaryBackground=e.buttonSecondaryBackground,this.buttonSecondaryHoverBackground=e.buttonSecondaryHoverBackground,this.buttonBorder=e.buttonBorder,this.applyStyles()}applyStyles(){if(this._element){let e,t;this.options.secondary?(t=this.buttonSecondaryForeground?this.buttonSecondaryForeground.toString():"",e=this.buttonSecondaryBackground?this.buttonSecondaryBackground.toString():""):(t=this.buttonForeground?this.buttonForeground.toString():"",e=this.buttonBackground?this.buttonBackground.toString():"");const i=this.buttonBorder?this.buttonBorder.toString():"";this._element.style.color=t,this._element.style.backgroundColor=e,this._element.style.borderWidth=i?"1px":"",this._element.style.borderStyle=i?"solid":"",this._element.style.borderColor=i}}get element(){return this._element}set label(e){this._element.classList.add("monaco-text-button"),this.options.supportIcons?Df(this._element,...yc(e)):this._element.textContent=e,typeof this.options.title=="string"?this._element.title=this.options.title:this.options.title&&(this._element.title=e)}set enabled(e){e?(this._element.classList.remove("disabled"),this._element.setAttribute("aria-disabled",String(!1)),this._element.tabIndex=0):(this._element.classList.add("disabled"),this._element.setAttribute("aria-disabled",String(!0)))}get enabled(){return!this._element.classList.contains("disabled")}}const VP={badgeBackground:O.fromHex("#4D4D4D"),badgeForeground:O.fromHex("#FFFFFF")};class tS{constructor(e,t){this.count=0,this.options=t||Object.create(null),Nr(this.options,VP,!1),this.badgeBackground=this.options.badgeBackground,this.badgeForeground=this.options.badgeForeground,this.badgeBorder=this.options.badgeBorder,this.element=U(e,J(".monaco-count-badge")),this.countFormat=this.options.countFormat||"{0}",this.titleFormat=this.options.titleFormat||"",this.setCount(this.options.count||0)}setCount(e){this.count=e,this.render()}setTitleFormat(e){this.titleFormat=e,this.render()}render(){this.element.textContent=cu(this.countFormat,this.count),this.element.title=cu(this.titleFormat,this.count),this.applyStyles()}style(e){this.badgeBackground=e.badgeBackground,this.badgeForeground=e.badgeForeground,this.badgeBorder=e.badgeBorder,this.applyStyles()}applyStyles(){if(this.element){const e=this.badgeBackground?this.badgeBackground.toString():"",t=this.badgeForeground?this.badgeForeground.toString():"",i=this.badgeBorder?this.badgeBorder.toString():"";this.element.style.backgroundColor=e,this.element.style.color=t,this.element.style.borderWidth=i?"1px":"",this.element.style.borderStyle=i?"solid":"",this.element.style.borderColor=i}}}const iS="done",nS="active",Am="infinite",Om="infinite-long-running",sS="discrete",WP={progressBarBackground:O.fromHex("#0E70C0")};class ng extends W{constructor(e,t){super(),this.options=t||Object.create(null),Nr(this.options,WP,!1),this.workedVal=0,this.progressBarBackground=this.options.progressBarBackground,this.showDelayedScheduler=this._register(new Tt(()=>fL(this.element),0)),this.longRunningScheduler=this._register(new Tt(()=>this.infiniteLongRunning(),ng.LONG_RUNNING_INFINITE_THRESHOLD)),this.create(e)}create(e){this.element=document.createElement("div"),this.element.classList.add("monaco-progress-container"),this.element.setAttribute("role","progressbar"),this.element.setAttribute("aria-valuemin","0"),e.appendChild(this.element),this.bit=document.createElement("div"),this.bit.classList.add("progress-bit"),this.element.appendChild(this.bit),this.applyStyles()}off(){this.bit.style.width="inherit",this.bit.style.opacity="1",this.element.classList.remove(nS,Am,Om,sS),this.workedVal=0,this.totalWork=void 0,this.longRunningScheduler.cancel()}stop(){return this.doDone(!1)}doDone(e){return this.element.classList.add(iS),this.element.classList.contains(Am)?(this.bit.style.opacity="0",e?setTimeout(()=>this.off(),200):this.off()):(this.bit.style.width="inherit",e?setTimeout(()=>this.off(),200):this.off()),this}infinite(){return this.bit.style.width="2%",this.bit.style.opacity="1",this.element.classList.remove(sS,iS,Om),this.element.classList.add(nS,Am),this.longRunningScheduler.schedule(),this}infiniteLongRunning(){this.element.classList.add(Om)}getContainer(){return this.element}style(e){this.progressBarBackground=e.progressBarBackground,this.applyStyles()}applyStyles(){if(this.bit){const e=this.progressBarBackground?this.progressBarBackground.toString():"";this.bit.style.backgroundColor=e}}}ng.LONG_RUNNING_INFINITE_THRESHOLD=1e4;class E2{constructor(e){this._prefix=e,this._lastId=0}nextId(){return this._prefix+ ++this._lastId}}new E2("id#");const Pm={},HP=new E2("quick-input-button-icon-");function n1(s){if(!s)return;let e;const t=s.dark.toString();return Pm[t]?e=Pm[t]:(e=HP.nextId(),HC(`.${e}`,`background-image: ${a_(s.light||s.dark)}`),HC(`.vs-dark .${e}, .hc-black .${e}`,`background-image: ${a_(s.dark)}`),Pm[t]=e),e}const zP={ctrlCmd:!1,alt:!1};var sh;(function(s){s[s.Blur=1]="Blur",s[s.Gesture=2]="Gesture",s[s.Other=3]="Other"})(sh||(sh={}));var fn;(function(s){s[s.NONE=0]="NONE",s[s.FIRST=1]="FIRST",s[s.SECOND=2]="SECOND",s[s.LAST=3]="LAST"})(fn||(fn={}));function UP(s,e={}){const t=D2(e);return t.textContent=s,t}function $P(s,e={}){const t=D2(e);return N2(t,KP(s,!!e.renderCodeSegments),e.actionHandler,e.renderCodeSegments),t}function D2(s){const e=s.inline?"span":"div",t=document.createElement(e);return s.className&&(t.className=s.className),t}class jP{constructor(e){this.source=e,this.index=0}eos(){return this.index>=this.source.length}next(){const e=this.peek();return this.advance(),e}peek(){return this.source[this.index]}advance(){this.index++}}function N2(s,e,t,i){let n;if(e.type===2)n=document.createTextNode(e.content||"");else if(e.type===3)n=document.createElement("b");else if(e.type===4)n=document.createElement("i");else if(e.type===7&&i)n=document.createElement("code");else if(e.type===5&&t){const o=document.createElement("a");t.disposables.add(wi(o,"click",r=>{t.callback(String(e.index),r)})),n=o}else e.type===8?n=document.createElement("br"):e.type===1&&(n=s);n&&s!==n&&s.appendChild(n),n&&Array.isArray(e.children)&&e.children.forEach(o=>{N2(n,o,t,i)})}function KP(s,e){const t={type:1,children:[]};let i=0,n=t;const o=[],r=new jP(s);for(;!r.eos();){let a=r.next();const l=a==="\\"&&s1(r.peek(),e)!==0;if(l&&(a=r.next()),!l&&qP(a,e)&&a===r.peek()){r.advance(),n.type===2&&(n=o.pop());const c=s1(a,e);if(n.type===c||n.type===5&&c===6)n=o.pop();else{const h={type:c,children:[]};c===5&&(h.index=i,i++),n.children.push(h),o.push(n),n=h}}else if(a===` +`)n.type===2&&(n=o.pop()),n.children.push({type:8});else if(n.type!==2){const c={type:2,content:a};n.children.push(c),o.push(n),n=c}else n.content+=a}return n.type===2&&(n=o.pop()),t}function qP(s,e){return s1(s,e)!==0}function s1(s,e){switch(s){case"*":return 3;case"_":return 4;case"[":return 5;case"]":return 6;case"`":return e?7:0;default:return 0}}class GP{constructor(e,t=0,i=e.length,n=t-1){this.items=e,this.start=t,this.end=i,this.index=n}current(){return this.index===this.start-1||this.index===this.end?null:this.items[this.index]}next(){return this.index=Math.min(this.index+1,this.end),this.current()}previous(){return this.index=Math.max(this.index-1,this.start-1),this.current()}first(){return this.index=this.start,this.current()}last(){return this.index=this.end-1,this.current()}}class ZP{constructor(e=[],t=10){this._initialize(e),this._limit=t,this._onChange()}getHistory(){return this._elements}add(e){this._history.delete(e),this._history.add(e),this._onChange()}next(){return this._currentPosition()!==this._elements.length-1?this._navigator.next():null}previous(){return this._currentPosition()!==0?this._navigator.previous():null}current(){return this._navigator.current()}first(){return this._navigator.first()}last(){return this._navigator.last()}has(e){return this._history.has(e)}_onChange(){this._reduceToLimit();const e=this._elements;this._navigator=new GP(e,0,e.length,e.length)}_reduceToLimit(){const e=this._elements;e.length>this._limit&&this._initialize(e.slice(e.length-this._limit))}_currentPosition(){const e=this._navigator.current();return e?this._elements.indexOf(e):-1}_initialize(e){this._history=new Set;for(const t of e)this._history.add(t)}get _elements(){const e=[];return this._history.forEach(t=>e.push(t)),e}}const Ul=J,YP={inputBackground:O.fromHex("#3C3C3C"),inputForeground:O.fromHex("#CCCCCC"),inputValidationInfoBorder:O.fromHex("#55AAFF"),inputValidationInfoBackground:O.fromHex("#063B49"),inputValidationWarningBorder:O.fromHex("#B89500"),inputValidationWarningBackground:O.fromHex("#352A05"),inputValidationErrorBorder:O.fromHex("#BE1100"),inputValidationErrorBackground:O.fromHex("#5A1D1D")};class T2 extends rs{constructor(e,t,i){var n;super(),this.state="idle",this.maxHeight=Number.POSITIVE_INFINITY,this._onDidChange=this._register(new M),this.onDidChange=this._onDidChange.event,this._onDidHeightChange=this._register(new M),this.onDidHeightChange=this._onDidHeightChange.event,this.contextViewProvider=t,this.options=i||Object.create(null),Nr(this.options,YP,!1),this.message=null,this.placeholder=this.options.placeholder||"",this.tooltip=(n=this.options.tooltip)!==null&&n!==void 0?n:this.placeholder||"",this.ariaLabel=this.options.ariaLabel||"",this.inputBackground=this.options.inputBackground,this.inputForeground=this.options.inputForeground,this.inputBorder=this.options.inputBorder,this.inputValidationInfoBorder=this.options.inputValidationInfoBorder,this.inputValidationInfoBackground=this.options.inputValidationInfoBackground,this.inputValidationInfoForeground=this.options.inputValidationInfoForeground,this.inputValidationWarningBorder=this.options.inputValidationWarningBorder,this.inputValidationWarningBackground=this.options.inputValidationWarningBackground,this.inputValidationWarningForeground=this.options.inputValidationWarningForeground,this.inputValidationErrorBorder=this.options.inputValidationErrorBorder,this.inputValidationErrorBackground=this.options.inputValidationErrorBackground,this.inputValidationErrorForeground=this.options.inputValidationErrorForeground,this.options.validationOptions&&(this.validation=this.options.validationOptions.validation),this.element=U(e,Ul(".monaco-inputbox.idle"));let o=this.options.flexibleHeight?"textarea":"input",r=U(this.element,Ul(".ibwrapper"));if(this.input=U(r,Ul(o+".input.empty")),this.input.setAttribute("autocorrect","off"),this.input.setAttribute("autocapitalize","off"),this.input.setAttribute("spellcheck","false"),this.onfocus(this.input,()=>this.element.classList.add("synthetic-focus")),this.onblur(this.input,()=>this.element.classList.remove("synthetic-focus")),this.options.flexibleHeight){this.maxHeight=typeof this.options.flexibleMaxHeight=="number"?this.options.flexibleMaxHeight:Number.POSITIVE_INFINITY,this.mirror=U(r,Ul("div.mirror")),this.mirror.innerText="\xA0",this.scrollableElement=new oR(this.element,{vertical:1}),this.options.flexibleWidth&&(this.input.setAttribute("wrap","off"),this.mirror.style.whiteSpace="pre",this.mirror.style.wordWrap="initial"),U(e,this.scrollableElement.getDomNode()),this._register(this.scrollableElement),this._register(this.scrollableElement.onScroll(c=>this.input.scrollTop=c.scrollTop));const a=this._register(new Te(document,"selectionchange")),l=K.filter(a.event,()=>{const c=document.getSelection();return(c==null?void 0:c.anchorNode)===r});this._register(l(this.updateScrollDimensions,this)),this._register(this.onDidHeightChange(this.updateScrollDimensions,this))}else this.input.type=this.options.type||"text",this.input.setAttribute("wrap","off");this.ariaLabel&&this.input.setAttribute("aria-label",this.ariaLabel),this.placeholder&&!this.options.showPlaceholderOnFocus&&this.setPlaceHolder(this.placeholder),this.tooltip&&this.setTooltip(this.tooltip),this.oninput(this.input,()=>this.onValueChange()),this.onblur(this.input,()=>this.onBlur()),this.onfocus(this.input,()=>this.onFocus()),this.ignoreGesture(this.input),setTimeout(()=>this.updateMirror(),0),this.options.actions&&(this.actionbar=this._register(new ol(this.element)),this.actionbar.push(this.options.actions,{icon:!0,label:!1})),this.applyStyles()}onBlur(){this._hideMessage(),this.options.showPlaceholderOnFocus&&this.input.setAttribute("placeholder","")}onFocus(){this._showMessage(),this.options.showPlaceholderOnFocus&&this.input.setAttribute("placeholder",this.placeholder||"")}setPlaceHolder(e){this.placeholder=e,this.input.setAttribute("placeholder",e)}setTooltip(e){this.tooltip=e,this.input.title=e}setAriaLabel(e){this.ariaLabel=e,e?this.input.setAttribute("aria-label",this.ariaLabel):this.input.removeAttribute("aria-label")}getAriaLabel(){return this.ariaLabel}get inputElement(){return this.input}get value(){return this.input.value}set value(e){this.input.value!==e&&(this.input.value=e,this.onValueChange())}get height(){return typeof this.cachedHeight=="number"?this.cachedHeight:o_(this.element)}focus(){this.input.focus()}blur(){this.input.blur()}hasFocus(){return document.activeElement===this.input}select(e=null){this.input.select(),e&&(this.input.setSelectionRange(e.start,e.end),e.end===this.input.value.length&&(this.input.scrollLeft=this.input.scrollWidth))}isSelectionAtEnd(){return this.input.selectionEnd===this.input.value.length&&this.input.selectionStart===this.input.selectionEnd}enable(){this.input.removeAttribute("disabled")}disable(){this.blur(),this.input.disabled=!0,this._hideMessage()}get width(){return ji(this.input)}set width(e){if(this.options.flexibleHeight&&this.options.flexibleWidth){let t=0;if(this.mirror){const i=parseFloat(this.mirror.style.paddingLeft||"")||0,n=parseFloat(this.mirror.style.paddingRight||"")||0;t=i+n}this.input.style.width=e-t+"px"}else this.input.style.width=e+"px";this.mirror&&(this.mirror.style.width=e+"px")}set paddingRight(e){this.input.style.width=`calc(100% - ${e}px)`,this.mirror&&(this.mirror.style.paddingRight=e+"px")}updateScrollDimensions(){if(typeof this.cachedContentHeight!="number"||typeof this.cachedHeight!="number"||!this.scrollableElement)return;const e=this.cachedContentHeight,t=this.cachedHeight,i=this.input.scrollTop;this.scrollableElement.setScrollDimensions({scrollHeight:e,height:t}),this.scrollableElement.setScrollPosition({scrollTop:i})}showMessage(e,t){this.message=e,this.element.classList.remove("idle"),this.element.classList.remove("info"),this.element.classList.remove("warning"),this.element.classList.remove("error"),this.element.classList.add(this.classForType(e.type));const i=this.stylesForType(this.message.type);this.element.style.border=i.border?`1px solid ${i.border}`:"",(this.hasFocus()||t)&&this._showMessage()}hideMessage(){this.message=null,this.element.classList.remove("info"),this.element.classList.remove("warning"),this.element.classList.remove("error"),this.element.classList.add("idle"),this._hideMessage(),this.applyStyles()}validate(){let e=null;return this.validation&&(e=this.validation(this.value),e?(this.inputElement.setAttribute("aria-invalid","true"),this.showMessage(e)):this.inputElement.hasAttribute("aria-invalid")&&(this.inputElement.removeAttribute("aria-invalid"),this.hideMessage())),e==null?void 0:e.type}stylesForType(e){switch(e){case 1:return{border:this.inputValidationInfoBorder,background:this.inputValidationInfoBackground,foreground:this.inputValidationInfoForeground};case 2:return{border:this.inputValidationWarningBorder,background:this.inputValidationWarningBackground,foreground:this.inputValidationWarningForeground};default:return{border:this.inputValidationErrorBorder,background:this.inputValidationErrorBackground,foreground:this.inputValidationErrorForeground}}}classForType(e){switch(e){case 1:return"info";case 2:return"warning";default:return"error"}}_showMessage(){if(!this.contextViewProvider||!this.message)return;let e,t=()=>e.style.width=ji(this.element)+"px";this.contextViewProvider.showContextView({getAnchor:()=>this.element,anchorAlignment:1,render:n=>{if(!this.message)return null;e=U(n,Ul(".monaco-inputbox-container")),t();const o={inline:!0,className:"monaco-inputbox-message"},r=this.message.formatContent?$P(this.message.content,o):UP(this.message.content,o);r.classList.add(this.classForType(this.message.type));const a=this.stylesForType(this.message.type);return r.style.backgroundColor=a.background?a.background.toString():"",r.style.color=a.foreground?a.foreground.toString():"",r.style.border=a.border?`1px solid ${a.border}`:"",U(e,r),null},onHide:()=>{this.state="closed"},layout:t});let i;this.message.type===3?i=p("alertErrorMessage","Error: {0}",this.message.content):this.message.type===2?i=p("alertWarningMessage","Warning: {0}",this.message.content):i=p("alertInfoMessage","Info: {0}",this.message.content),Nf(i),this.state="open"}_hideMessage(){!this.contextViewProvider||(this.state==="open"&&this.contextViewProvider.hideContextView(),this.state="idle")}onValueChange(){this._onDidChange.fire(this.value),this.validate(),this.updateMirror(),this.input.classList.toggle("empty",!this.value),this.state==="open"&&this.contextViewProvider&&this.contextViewProvider.layout()}updateMirror(){if(!this.mirror)return;const e=this.value,i=e.charCodeAt(e.length-1)===10?" ":"";(e+i).replace(/\u000c/g,"")?this.mirror.textContent=e+i:this.mirror.innerText="\xA0",this.layout()}style(e){this.inputBackground=e.inputBackground,this.inputForeground=e.inputForeground,this.inputBorder=e.inputBorder,this.inputValidationInfoBackground=e.inputValidationInfoBackground,this.inputValidationInfoForeground=e.inputValidationInfoForeground,this.inputValidationInfoBorder=e.inputValidationInfoBorder,this.inputValidationWarningBackground=e.inputValidationWarningBackground,this.inputValidationWarningForeground=e.inputValidationWarningForeground,this.inputValidationWarningBorder=e.inputValidationWarningBorder,this.inputValidationErrorBackground=e.inputValidationErrorBackground,this.inputValidationErrorForeground=e.inputValidationErrorForeground,this.inputValidationErrorBorder=e.inputValidationErrorBorder,this.applyStyles()}applyStyles(){const e=this.inputBackground?this.inputBackground.toString():"",t=this.inputForeground?this.inputForeground.toString():"",i=this.inputBorder?this.inputBorder.toString():"";this.element.style.backgroundColor=e,this.element.style.color=t,this.input.style.backgroundColor="inherit",this.input.style.color=t,this.element.style.borderWidth=i?"1px":"",this.element.style.borderStyle=i?"solid":"",this.element.style.borderColor=i}layout(){if(!this.mirror)return;const e=this.cachedContentHeight;this.cachedContentHeight=o_(this.mirror),e!==this.cachedContentHeight&&(this.cachedHeight=Math.min(this.cachedContentHeight,this.maxHeight),this.input.style.height=this.cachedHeight+"px",this._onDidHeightChange.fire(this.cachedContentHeight))}insertAtCursor(e){const t=this.inputElement,i=t.selectionStart,n=t.selectionEnd,o=t.value;i!==null&&n!==null&&(this.value=o.substr(0,i)+e+o.substr(n),t.setSelectionRange(i+1,i+1),this.layout())}dispose(){this._hideMessage(),this.message=null,this.actionbar&&this.actionbar.dispose(),super.dispose()}}class M2 extends T2{constructor(e,t,i){const n=p({key:"history.inputbox.hint",comment:["Text will be prefixed with \u21C5 plus a single space, then used as a hint where input field keeps history"]},"for history"),o=` or \u21C5 ${n}`,r=` (\u21C5 ${n})`;super(e,t,i),this.history=new ZP(i.history,100);const a=()=>{if(i.showHistoryHint&&i.showHistoryHint()&&!this.placeholder.endsWith(o)&&!this.placeholder.endsWith(r)&&this.history.getHistory().length){const l=this.placeholder.endsWith(")")?o:r,c=this.placeholder+l;i.showPlaceholderOnFocus&&document.activeElement!==this.input?this.placeholder=c:this.setPlaceHolder(c)}};this.observer=new MutationObserver((l,c)=>{l.forEach(h=>{h.target.textContent||a()})}),this.observer.observe(this.input,{attributeFilter:["class"]}),this.onfocus(this.input,()=>a()),this.onblur(this.input,()=>{const l=c=>{if(this.placeholder.endsWith(c)){const h=this.placeholder.slice(0,this.placeholder.length-c.length);return i.showPlaceholderOnFocus?this.placeholder=h:this.setPlaceHolder(h),!0}else return!1};l(r)||l(o)})}dispose(){super.dispose(),this.observer&&(this.observer.disconnect(),this.observer=void 0)}addToHistory(){this.value&&this.value!==this.getCurrentValue()&&this.history.add(this.value)}showNextValue(){this.history.has(this.value)||this.addToHistory();let e=this.getNextValue();e&&(e=e===this.value?this.getNextValue():e),e&&(this.value=e,h_(this.value))}showPreviousValue(){this.history.has(this.value)||this.addToHistory();let e=this.getPreviousValue();e&&(e=e===this.value?this.getPreviousValue():e),e&&(this.value=e,h_(this.value))}getCurrentValue(){let e=this.history.current();return e||(e=this.history.last(),this.history.next()),e}getPreviousValue(){return this.history.previous()||this.history.first()}getNextValue(){return this.history.next()||this.history.last()}}const XP=J;class QP extends W{constructor(e){super(),this.parent=e,this.onKeyDown=t=>V(this.inputBox.inputElement,Y.KEY_DOWN,i=>{t(new He(i))}),this.onMouseDown=t=>V(this.inputBox.inputElement,Y.MOUSE_DOWN,i=>{t(new Ji(i))}),this.onDidChange=t=>this.inputBox.onDidChange(t),this.container=U(this.parent,XP(".quick-input-box")),this.inputBox=this._register(new T2(this.container,void 0))}get value(){return this.inputBox.value}set value(e){this.inputBox.value=e}select(e=null){this.inputBox.select(e)}isSelectionAtEnd(){return this.inputBox.isSelectionAtEnd()}get placeholder(){return this.inputBox.inputElement.getAttribute("placeholder")||""}set placeholder(e){this.inputBox.setPlaceHolder(e)}get ariaLabel(){return this.inputBox.getAriaLabel()}set ariaLabel(e){this.inputBox.setAriaLabel(e)}get password(){return this.inputBox.inputElement.type==="password"}set password(e){this.inputBox.inputElement.type=e?"password":"text"}setAttribute(e,t){this.inputBox.inputElement.setAttribute(e,t)}removeAttribute(e){this.inputBox.inputElement.removeAttribute(e)}showDecoration(e){e===at.Ignore?this.inputBox.hideMessage():this.inputBox.showMessage({type:e===at.Info?1:e===at.Warning?2:3,content:""})}stylesForType(e){return this.inputBox.stylesForType(e===at.Info?1:e===at.Warning?2:3)}setFocus(){this.inputBox.focus()}layout(){this.inputBox.layout()}style(e){this.inputBox.style(e)}}class cl{constructor(e,t){var i;this.text="",this.title="",this.highlights=[],this.didEverRender=!1,this.supportIcons=(i=t==null?void 0:t.supportIcons)!==null&&i!==void 0?i:!1,this.domNode=U(e,J("span.monaco-highlighted-label"))}get element(){return this.domNode}set(e,t=[],i="",n){e||(e=""),n&&(e=cl.escapeNewLines(e,t)),!(this.didEverRender&&this.text===e&&this.title===i&&Ri(this.highlights,t))&&(this.text=e,this.title=i,this.highlights=t,this.render())}render(){const e=[];let t=0;for(const i of this.highlights){if(i.end===i.start)continue;if(t{n=o===`\r +`?-1:0,r+=i;for(const a of t)a.end<=r||(a.start>=r&&(a.start+=n),a.end>=r&&(a.end+=n));return i+=n,"\u23CE"})}}class JP{constructor(e="",t=!1){var i,n,o;if(this.value=e,typeof this.value!="string")throw q1("value");typeof t=="boolean"?(this.isTrusted=t,this.supportThemeIcons=!1,this.supportHtml=!1):(this.isTrusted=(i=t.isTrusted)!==null&&i!==void 0?i:void 0,this.supportThemeIcons=(n=t.supportThemeIcons)!==null&&n!==void 0?n:!1,this.supportHtml=(o=t.supportHtml)!==null&&o!==void 0?o:!1)}appendText(e,t=0){return this.value+=t8(this.supportThemeIcons?lP(e):e).replace(/([ \t]+)/g,(i,n)=>" ".repeat(n.length)).replace(/\>/gm,"\\>").replace(/\n/g,t===1?`\\ +`:` + +`),this}appendMarkdown(e){return this.value+=e,this}appendCodeblock(e,t){return this.value+="\n```",this.value+=e,this.value+=` +`,this.value+=t,this.value+="\n```\n",this}}function e8(s){return s instanceof JP?!0:s&&typeof s=="object"?typeof s.value=="string"&&(typeof s.isTrusted=="boolean"||s.isTrusted===void 0)&&(typeof s.supportThemeIcons=="boolean"||s.supportThemeIcons===void 0):!1}function t8(s){return s.replace(/[\\`*_{}[\]()#+\-!]/g,"\\$&")}var o1=globalThis&&globalThis.__awaiter||function(s,e,t,i){function n(o){return o instanceof t?o:new t(function(r){r(o)})}return new(t||(t=Promise))(function(o,r){function a(h){try{c(i.next(h))}catch(d){r(d)}}function l(h){try{c(i.throw(h))}catch(d){r(d)}}function c(h){h.done?o(h.value):n(h.value).then(a,l)}c((i=i.apply(s,e||[])).next())})};function i8(s,e){Ln(e)?s.title=b2(e):e!=null&&e.markdownNotSupportedFallback?s.title=e.markdownNotSupportedFallback:s.removeAttribute("title")}class n8{constructor(e,t,i){this.hoverDelegate=e,this.target=t,this.fadeInAnimation=i}update(e,t){var i;return o1(this,void 0,void 0,function*(){if(this._cancellationTokenSource&&(this._cancellationTokenSource.dispose(!0),this._cancellationTokenSource=void 0),this.isDisposed)return;let n;if(e===void 0||Ln(e)||e instanceof HTMLElement)n=e;else if(!nu(e.markdown))n=(i=e.markdown)!==null&&i!==void 0?i:e.markdownNotSupportedFallback;else{this._hoverWidget||this.show(p("iconLabel.loading","Loading..."),t),this._cancellationTokenSource=new ml;const o=this._cancellationTokenSource.token;if(n=yield e.markdown(o),n===void 0&&(n=e.markdownNotSupportedFallback),this.isDisposed||o.isCancellationRequested)return}this.show(n,t)})}show(e,t){const i=this._hoverWidget;if(this.hasContent(e)){const n={content:e,target:this.target,showPointer:this.hoverDelegate.placement==="element",hoverPosition:2,skipFadeInAnimation:!this.fadeInAnimation||!!i};this._hoverWidget=this.hoverDelegate.showHover(n,t)}i==null||i.dispose()}hasContent(e){return e?e8(e)?!!e.value:!0:!1}get isDisposed(){var e;return(e=this._hoverWidget)===null||e===void 0?void 0:e.isDisposed}dispose(){var e,t;(e=this._hoverWidget)===null||e===void 0||e.dispose(),(t=this._cancellationTokenSource)===null||t===void 0||t.dispose(!0),this._cancellationTokenSource=void 0}}function s8(s,e,t){let i,n;const o=(h,d)=>{var u;h&&(n==null||n.dispose(),n=void 0),d&&(i==null||i.dispose(),i=void 0),(u=s.onDidHideHover)===null||u===void 0||u.call(s)},r=(h,d,u)=>new os(()=>o1(this,void 0,void 0,function*(){(!n||n.isDisposed)&&(n=new n8(s,u||e,h>0),yield n.update(t,d))}),h),a=()=>{if(i)return;const h=new se,d=m=>o(!1,m.fromElement===e);h.add(V(e,Y.MOUSE_LEAVE,d,!0));const u=()=>o(!0,!0);h.add(V(e,Y.MOUSE_DOWN,u,!0));const f={targetElements:[e],dispose:()=>{}};if(s.placement===void 0||s.placement==="mouse"){const m=_=>f.x=_.x+10;h.add(V(e,Y.MOUSE_MOVE,m,!0))}h.add(r(s.delay,!1,f)),i=h},l=V(e,Y.MOUSE_OVER,a,!0);return{show:h=>{o(!1,!0),r(0,h)},hide:()=>{o(!0,!0)},update:h=>o1(this,void 0,void 0,function*(){t=h,yield n==null?void 0:n.update(t)}),dispose:()=>{l.dispose(),o(!0,!0)}}}class Fm{constructor(e){this._element=e}get element(){return this._element}set textContent(e){this.disposed||e===this._textContent||(this._textContent=e,this._element.textContent=e)}set className(e){this.disposed||e===this._className||(this._className=e,this._element.className=e)}set empty(e){this.disposed||e===this._empty||(this._empty=e,this._element.style.marginLeft=e?"0":"")}dispose(){this.disposed=!0}}class oS extends W{constructor(e,t){super(),this.customHovers=new Map,this.domNode=this._register(new Fm(U(e,J(".monaco-icon-label")))),this.labelContainer=U(this.domNode.element,J(".monaco-icon-label-container"));const i=U(this.labelContainer,J("span.monaco-icon-name-container"));this.descriptionContainer=this._register(new Fm(U(this.labelContainer,J("span.monaco-icon-description-container")))),(t==null?void 0:t.supportHighlights)||(t==null?void 0:t.supportIcons)?this.nameNode=new a8(i,!!t.supportIcons):this.nameNode=new o8(i),t!=null&&t.supportDescriptionHighlights?this.descriptionNodeFactory=()=>new cl(U(this.descriptionContainer.element,J("span.label-description")),{supportIcons:!!t.supportIcons}):this.descriptionNodeFactory=()=>this._register(new Fm(U(this.descriptionContainer.element,J("span.label-description")))),this.hoverDelegate=t==null?void 0:t.hoverDelegate}get element(){return this.domNode.element}setLabel(e,t,i){const n=["monaco-icon-label"];i&&(i.extraClasses&&n.push(...i.extraClasses),i.italic&&n.push("italic"),i.strikethrough&&n.push("strikethrough")),this.domNode.className=n.join(" "),this.setupHover(i!=null&&i.descriptionTitle?this.labelContainer:this.element,i==null?void 0:i.title),this.nameNode.setLabel(e,i),(t||this.descriptionNode)&&(this.descriptionNode||(this.descriptionNode=this.descriptionNodeFactory()),this.descriptionNode instanceof cl?(this.descriptionNode.set(t||"",i?i.descriptionMatches:void 0),this.setupHover(this.descriptionNode.element,i==null?void 0:i.descriptionTitle)):(this.descriptionNode.textContent=t||"",this.setupHover(this.descriptionNode.element,(i==null?void 0:i.descriptionTitle)||""),this.descriptionNode.empty=!t))}setupHover(e,t){const i=this.customHovers.get(e);if(i&&(i.dispose(),this.customHovers.delete(e)),!t){e.removeAttribute("title");return}if(!this.hoverDelegate)i8(e,t);else{const n=s8(this.hoverDelegate,e,t);n&&this.customHovers.set(e,n)}}dispose(){super.dispose();for(const e of this.customHovers.values())e.dispose();this.customHovers.clear()}}class o8{constructor(e){this.container=e,this.label=void 0,this.singleLabel=void 0}setLabel(e,t){if(!(this.label===e&&Ri(this.options,t)))if(this.label=e,this.options=t,typeof e=="string")this.singleLabel||(this.container.innerText="",this.container.classList.remove("multiple"),this.singleLabel=U(this.container,J("a.label-name",{id:t==null?void 0:t.domId}))),this.singleLabel.textContent=e;else{this.container.innerText="",this.container.classList.add("multiple"),this.singleLabel=void 0;for(let i=0;i{const o={start:i,end:i+n.length},r=t.map(a=>Dt.intersect(o,a)).filter(a=>!Dt.isEmpty(a)).map(({start:a,end:l})=>({start:a-i,end:l-i}));return i=o.end+e.length,r})}class a8{constructor(e,t){this.container=e,this.supportIcons=t,this.label=void 0,this.singleLabel=void 0}setLabel(e,t){if(!(this.label===e&&Ri(this.options,t)))if(this.label=e,this.options=t,typeof e=="string")this.singleLabel||(this.container.innerText="",this.container.classList.remove("multiple"),this.singleLabel=new cl(U(this.container,J("a.label-name",{id:t==null?void 0:t.domId})),{supportIcons:this.supportIcons})),this.singleLabel.set(e,t==null?void 0:t.matches,void 0,t==null?void 0:t.labelEscapeNewLines);else{this.container.innerText="",this.container.classList.add("multiple"),this.singleLabel=void 0;const i=(t==null?void 0:t.separator)||"/",n=r8(e,i,t==null?void 0:t.matches);for(let o=0;o{const s=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});return{collator:s,collatorIsNumeric:s.resolvedOptions().numeric}});new kf(()=>({collator:new Intl.Collator(void 0,{numeric:!0})}));new kf(()=>({collator:new Intl.Collator(void 0,{numeric:!0,sensitivity:"accent"})}));function l8(s,e,t=!1){const i=s||"",n=e||"",o=rS.value.collator.compare(i,n);return rS.value.collatorIsNumeric&&o===0&&i!==n?in.length)return 1}return 0}var R2=globalThis&&globalThis.__decorate||function(s,e,t,i){var n=arguments.length,o=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},d8=globalThis&&globalThis.__awaiter||function(s,e,t,i){function n(o){return o instanceof t?o:new t(function(r){r(o)})}return new(t||(t=Promise))(function(o,r){function a(h){try{c(i.next(h))}catch(d){r(d)}}function l(h){try{c(i.throw(h))}catch(d){r(d)}}function c(h){h.done?o(h.value):n(h.value).then(a,l)}c((i=i.apply(s,e||[])).next())})};const Pn=J;class u8{constructor(e){this.hidden=!1,this._onChecked=new M,this.onChecked=this._onChecked.event,Object.assign(this,e)}get checked(){return!!this._checked}set checked(e){e!==this._checked&&(this._checked=e,this._onChecked.fire(e))}dispose(){this._onChecked.dispose()}}class Mh{get templateId(){return Mh.ID}renderTemplate(e){const t=Object.create(null);t.toDisposeElement=[],t.toDisposeTemplate=[],t.entry=U(e,Pn(".quick-input-list-entry"));const i=U(t.entry,Pn("label.quick-input-list-label"));t.toDisposeTemplate.push(wi(i,Y.CLICK,c=>{t.checkbox.offsetParent||c.preventDefault()})),t.checkbox=U(i,Pn("input.quick-input-list-checkbox")),t.checkbox.type="checkbox",t.toDisposeTemplate.push(wi(t.checkbox,Y.CHANGE,c=>{t.element.checked=t.checkbox.checked}));const n=U(i,Pn(".quick-input-list-rows")),o=U(n,Pn(".quick-input-list-row")),r=U(n,Pn(".quick-input-list-row"));t.label=new oS(o,{supportHighlights:!0,supportDescriptionHighlights:!0,supportIcons:!0});const a=U(o,Pn(".quick-input-list-entry-keybinding"));t.keybinding=new Cb(a,qi);const l=U(r,Pn(".quick-input-list-label-meta"));return t.detail=new oS(l,{supportHighlights:!0,supportIcons:!0}),t.separator=U(t.entry,Pn(".quick-input-list-separator")),t.actionBar=new ol(t.entry),t.actionBar.domNode.classList.add("quick-input-list-entry-action-bar"),t.toDisposeTemplate.push(t.actionBar),t}renderElement(e,t,i){i.toDisposeElement=Me(i.toDisposeElement),i.element=e,i.checkbox.checked=e.checked,i.toDisposeElement.push(e.onChecked(c=>i.checkbox.checked=c));const{labelHighlights:n,descriptionHighlights:o,detailHighlights:r}=e,a=Object.create(null);a.matches=n||[],a.descriptionTitle=e.saneDescription,a.descriptionMatches=o||[],a.extraClasses=e.item.iconClasses,a.italic=e.item.italic,a.strikethrough=e.item.strikethrough,i.label.setLabel(e.saneLabel,e.saneDescription,a),i.keybinding.set(e.item.keybinding),e.saneDetail&&i.detail.setLabel(e.saneDetail,void 0,{matches:r,title:e.saneDetail}),e.separator&&e.separator.label?(i.separator.textContent=e.separator.label,i.separator.style.display=""):i.separator.style.display="none",i.entry.classList.toggle("quick-input-list-separator-border",!!e.separator),i.actionBar.clear();const l=e.item.buttons;l&&l.length?(i.actionBar.push(l.map((c,h)=>{let d=c.iconClass||(c.iconPath?n1(c.iconPath):void 0);c.alwaysVisible&&(d=d?`${d} always-visible`:"always-visible");const u=new qn(`id-${h}`,"",d,!0,()=>d8(this,void 0,void 0,function*(){e.fireButtonTriggered({button:c,item:e.item})}));return u.tooltip=c.tooltip||"",u}),{icon:!0,label:!1}),i.entry.classList.add("has-actions")):i.entry.classList.remove("has-actions")}disposeElement(e,t,i){i.toDisposeElement=Me(i.toDisposeElement)}disposeTemplate(e){e.toDisposeElement=Me(e.toDisposeElement),e.toDisposeTemplate=Me(e.toDisposeTemplate)}}Mh.ID="listelement";class f8{getHeight(e){return e.saneDetail?44:22}getTemplateId(e){return Mh.ID}}var Ye;(function(s){s[s.First=1]="First",s[s.Second=2]="Second",s[s.Last=3]="Last",s[s.Next=4]="Next",s[s.Previous=5]="Previous",s[s.NextPage=6]="NextPage",s[s.PreviousPage=7]="PreviousPage"})(Ye||(Ye={}));class wb{constructor(e,t,i){this.parent=e,this.inputElements=[],this.elements=[],this.elementsToIndexes=new Map,this.matchOnDescription=!1,this.matchOnDetail=!1,this.matchOnLabel=!0,this.matchOnMeta=!0,this.sortByLabel=!0,this._onChangedAllVisibleChecked=new M,this.onChangedAllVisibleChecked=this._onChangedAllVisibleChecked.event,this._onChangedCheckedCount=new M,this.onChangedCheckedCount=this._onChangedCheckedCount.event,this._onChangedVisibleCount=new M,this.onChangedVisibleCount=this._onChangedVisibleCount.event,this._onChangedCheckedElements=new M,this.onChangedCheckedElements=this._onChangedCheckedElements.event,this._onButtonTriggered=new M,this.onButtonTriggered=this._onButtonTriggered.event,this._onKeyDown=new M,this.onKeyDown=this._onKeyDown.event,this._onLeave=new M,this.onLeave=this._onLeave.event,this._fireCheckedEvents=!0,this.elementDisposables=[],this.disposables=[],this.id=t,this.container=U(this.parent,Pn(".quick-input-list"));const n=new f8,o=new m8;this.list=i.createList("QuickInput",this.container,n,[new Mh],{identityProvider:{getId:r=>r.saneLabel},setRowLineHeight:!1,multipleSelectionSupport:!1,horizontalScrolling:!1,accessibilityProvider:o}),this.list.getHTMLElement().id=t,this.disposables.push(this.list),this.disposables.push(this.list.onKeyDown(r=>{const a=new He(r);switch(a.keyCode){case 10:this.toggleCheckbox();break;case 31:(me?r.metaKey:r.ctrlKey)&&this.list.setFocus($t(this.list.length));break;case 16:{const l=this.list.getFocus();l.length===1&&l[0]===0&&this._onLeave.fire();break}case 18:{const l=this.list.getFocus();l.length===1&&l[0]===this.list.length-1&&this._onLeave.fire();break}}this._onKeyDown.fire(a)})),this.disposables.push(this.list.onMouseDown(r=>{r.browserEvent.button!==2&&r.browserEvent.preventDefault()})),this.disposables.push(V(this.container,Y.CLICK,r=>{(r.x||r.y)&&this._onLeave.fire()})),this.disposables.push(this.list.onMouseMiddleClick(r=>{this._onLeave.fire()})),this.disposables.push(this.list.onContextMenu(r=>{typeof r.index=="number"&&(r.browserEvent.preventDefault(),this.list.setSelection([r.index]))})),this.disposables.push(this._onChangedAllVisibleChecked,this._onChangedCheckedCount,this._onChangedVisibleCount,this._onChangedCheckedElements,this._onButtonTriggered,this._onLeave,this._onKeyDown)}get onDidChangeFocus(){return K.map(this.list.onDidChangeFocus,e=>e.elements.map(t=>t.item))}get onDidChangeSelection(){return K.map(this.list.onDidChangeSelection,e=>({items:e.elements.map(t=>t.item),event:e.browserEvent}))}get scrollTop(){return this.list.scrollTop}set scrollTop(e){this.list.scrollTop=e}getAllVisibleChecked(){return this.allVisibleChecked(this.elements,!1)}allVisibleChecked(e,t=!0){for(let i=0,n=e.length;i{t.hidden||(t.checked=e)})}finally{this._fireCheckedEvents=!0,this.fireCheckedEvents()}}setElements(e){this.elementDisposables=Me(this.elementDisposables);const t=i=>this.fireButtonTriggered(i);this.inputElements=e,this.elements=e.reduce((i,n,o)=>{var r,a,l;if(n.type!=="separator"){const c=o&&e[o-1],h=n.label&&n.label.replace(/\r?\n/g," "),d=n.meta&&n.meta.replace(/\r?\n/g," "),u=n.description&&n.description.replace(/\r?\n/g," "),f=n.detail&&n.detail.replace(/\r?\n/g," "),m=n.ariaLabel||[h,u,f].map(b=>FE(b)).filter(b=>!!b).join(", "),_=this.parent.classList.contains("show-checkboxes");i.push(new u8({hasCheckbox:_,index:o,item:n,saneLabel:h,saneMeta:d,saneAriaLabel:m,saneDescription:u,saneDetail:f,labelHighlights:(r=n.highlights)===null||r===void 0?void 0:r.label,descriptionHighlights:(a=n.highlights)===null||a===void 0?void 0:a.description,detailHighlights:(l=n.highlights)===null||l===void 0?void 0:l.detail,checked:!1,separator:c&&c.type==="separator"?c:void 0,fireButtonTriggered:t}))}return i},[]),this.elementDisposables.push(...this.elements),this.elementDisposables.push(...this.elements.map(i=>i.onChecked(()=>this.fireCheckedEvents()))),this.elementsToIndexes=this.elements.reduce((i,n,o)=>(i.set(n.item,o),i),new Map),this.list.splice(0,this.list.length),this.list.splice(0,this.list.length,this.elements),this._onChangedVisibleCount.fire(this.elements.length)}getFocusedElements(){return this.list.getFocusedElements().map(e=>e.item)}setFocusedElements(e){if(this.list.setFocus(e.filter(t=>this.elementsToIndexes.has(t)).map(t=>this.elementsToIndexes.get(t))),e.length>0){const t=this.list.getFocus()[0];typeof t=="number"&&this.list.reveal(t)}}getActiveDescendant(){return this.list.getHTMLElement().getAttribute("aria-activedescendant")}setSelectedElements(e){this.list.setSelection(e.filter(t=>this.elementsToIndexes.has(t)).map(t=>this.elementsToIndexes.get(t)))}getCheckedElements(){return this.elements.filter(e=>e.checked).map(e=>e.item)}setCheckedElements(e){try{this._fireCheckedEvents=!1;const t=new Set;for(const i of e)t.add(i);for(const i of this.elements)i.checked=t.has(i.item)}finally{this._fireCheckedEvents=!0,this.fireCheckedEvents()}}set enabled(e){this.list.getHTMLElement().style.pointerEvents=e?"":"none"}focus(e){if(!this.list.length)return;switch(e===Ye.Next&&this.list.getFocus()[0]===this.list.length-1&&(e=Ye.First),e===Ye.Previous&&this.list.getFocus()[0]===0&&(e=Ye.Last),e===Ye.Second&&this.list.length<2&&(e=Ye.First),e){case Ye.First:this.list.focusFirst();break;case Ye.Second:this.list.focusNth(1);break;case Ye.Last:this.list.focusLast();break;case Ye.Next:this.list.focusNext();break;case Ye.Previous:this.list.focusPrevious();break;case Ye.NextPage:this.list.focusNextPage();break;case Ye.PreviousPage:this.list.focusPreviousPage();break}const t=this.list.getFocus()[0];typeof t=="number"&&this.list.reveal(t)}clearFocus(){this.list.setFocus([])}domFocus(){this.list.domFocus()}layout(e){this.list.getHTMLElement().style.maxHeight=e?`calc(${Math.floor(e/44)*44}px)`:"",this.list.layout()}filter(e){if(!(this.sortByLabel||this.matchOnLabel||this.matchOnDescription||this.matchOnDetail))return this.list.layout(),!1;if(e=e.trim(),!e||!(this.matchOnLabel||this.matchOnDescription||this.matchOnDetail))this.elements.forEach(i=>{i.labelHighlights=void 0,i.descriptionHighlights=void 0,i.detailHighlights=void 0,i.hidden=!1;const n=i.index&&this.inputElements[i.index-1];i.separator=n&&n.type==="separator"?n:void 0});else{let i;this.elements.forEach(n=>{const o=this.matchOnLabel?Qo(Cd(e,bd(n.saneLabel))):void 0,r=this.matchOnDescription?Qo(Cd(e,bd(n.saneDescription||""))):void 0,a=this.matchOnDetail?Qo(Cd(e,bd(n.saneDetail||""))):void 0,l=this.matchOnMeta?Qo(Cd(e,bd(n.saneMeta||""))):void 0;if(o||r||a||l?(n.labelHighlights=o,n.descriptionHighlights=r,n.detailHighlights=a,n.hidden=!1):(n.labelHighlights=void 0,n.descriptionHighlights=void 0,n.detailHighlights=void 0,n.hidden=!n.item.alwaysShow),n.separator=void 0,!this.sortByLabel){const c=n.index&&this.inputElements[n.index-1];i=c&&c.type==="separator"?c:i,i&&!n.hidden&&(n.separator=i,i=void 0)}})}const t=this.elements.filter(i=>!i.hidden);if(this.sortByLabel&&e){const i=e.toLowerCase();t.sort((n,o)=>g8(n,o,i))}return this.elementsToIndexes=t.reduce((i,n,o)=>(i.set(n.item,o),i),new Map),this.list.splice(0,this.list.length,t),this.list.setFocus([]),this.list.layout(),this._onChangedAllVisibleChecked.fire(this.getAllVisibleChecked()),this._onChangedVisibleCount.fire(t.length),!0}toggleCheckbox(){try{this._fireCheckedEvents=!1;const e=this.list.getFocusedElements(),t=this.allVisibleChecked(e);for(const i of e)i.checked=!t}finally{this._fireCheckedEvents=!0,this.fireCheckedEvents()}}display(e){this.container.style.display=e?"":"none"}isDisplayed(){return this.container.style.display!=="none"}dispose(){this.elementDisposables=Me(this.elementDisposables),this.disposables=Me(this.disposables)}fireCheckedEvents(){this._fireCheckedEvents&&(this._onChangedAllVisibleChecked.fire(this.getAllVisibleChecked()),this._onChangedCheckedCount.fire(this.getCheckedCount()),this._onChangedCheckedElements.fire(this.getCheckedElements()))}fireButtonTriggered(e){this._onButtonTriggered.fire(e)}style(e){this.list.style(e)}}R2([rt],wb.prototype,"onDidChangeFocus",null);R2([rt],wb.prototype,"onDidChangeSelection",null);function g8(s,e,t){const i=s.labelHighlights||[],n=e.labelHighlights||[];return i.length&&!n.length?-1:!i.length&&n.length?1:i.length===0&&n.length===0?0:c8(s.saneLabel,e.saneLabel,t)}class m8{getWidgetAriaLabel(){return p("quickInput","Quick Input")}getAriaLabel(e){return e.saneAriaLabel}getWidgetRole(){return"listbox"}getRole(e){return e.hasCheckbox?"checkbox":"option"}isChecked(e){if(!!e.hasCheckbox)return{value:e.checked,onDidChange:e.onChecked}}}var aS=globalThis&&globalThis.__awaiter||function(s,e,t,i){function n(o){return o instanceof t?o:new t(function(r){r(o)})}return new(t||(t=Promise))(function(o,r){function a(h){try{c(i.next(h))}catch(d){r(d)}}function l(h){try{c(i.throw(h))}catch(d){r(d)}}function c(h){h.done?o(h.value):n(h.value).then(a,l)}c((i=i.apply(s,e||[])).next())})};const di=J,r1={iconClass:g.quickInputBack.classNames,tooltip:p("quickInput.back","Back"),handle:-1};class sg extends W{constructor(e){super(),this.ui=e,this.visible=!1,this._enabled=!0,this._busy=!1,this._ignoreFocusOut=!1,this._buttons=[],this.noValidationMessage=sg.noPromptMessage,this._severity=at.Ignore,this.buttonsUpdated=!1,this.onDidTriggerButtonEmitter=this._register(new M),this.onDidHideEmitter=this._register(new M),this.onDisposeEmitter=this._register(new M),this.visibleDisposables=this._register(new se),this.onDidHide=this.onDidHideEmitter.event}get title(){return this._title}set title(e){this._title=e,this.update()}get description(){return this._description}set description(e){this._description=e,this.update()}get step(){return this._steps}set step(e){this._steps=e,this.update()}get totalSteps(){return this._totalSteps}set totalSteps(e){this._totalSteps=e,this.update()}get enabled(){return this._enabled}set enabled(e){this._enabled=e,this.update()}get contextKey(){return this._contextKey}set contextKey(e){this._contextKey=e,this.update()}get busy(){return this._busy}set busy(e){this._busy=e,this.update()}get ignoreFocusOut(){return this._ignoreFocusOut}set ignoreFocusOut(e){const t=this._ignoreFocusOut!==e&&!pr;this._ignoreFocusOut=e&&!pr,t&&this.update()}get buttons(){return this._buttons}set buttons(e){this._buttons=e,this.buttonsUpdated=!0,this.update()}get validationMessage(){return this._validationMessage}set validationMessage(e){this._validationMessage=e,this.update()}get severity(){return this._severity}set severity(e){this._severity=e,this.update()}show(){this.visible||(this.visibleDisposables.add(this.ui.onDidTriggerButton(e=>{this.buttons.indexOf(e)!==-1&&this.onDidTriggerButtonEmitter.fire(e)})),this.ui.show(this),this.visible=!0,this._lastValidationMessage=void 0,this._lastSeverity=void 0,this.buttons.length&&(this.buttonsUpdated=!0),this.update())}hide(){!this.visible||this.ui.hide()}didHide(e=sh.Other){this.visible=!1,this.visibleDisposables.clear(),this.onDidHideEmitter.fire({reason:e})}update(){if(!this.visible)return;const e=this.getTitle();e&&this.ui.title.textContent!==e?this.ui.title.textContent=e:!e&&this.ui.title.innerHTML!==" "&&(this.ui.title.innerText="\xA0");const t=this.getDescription();if(this.ui.description1.textContent!==t&&(this.ui.description1.textContent=t),this.ui.description2.textContent!==t&&(this.ui.description2.textContent=t),this.busy&&!this.busyDelay&&(this.busyDelay=new os,this.busyDelay.setIfNotSet(()=>{this.visible&&this.ui.progressBar.infinite()},800)),!this.busy&&this.busyDelay&&(this.ui.progressBar.stop(),this.busyDelay.cancel(),this.busyDelay=void 0),this.buttonsUpdated){this.buttonsUpdated=!1,this.ui.leftActionBar.clear();const n=this.buttons.filter(r=>r===r1);this.ui.leftActionBar.push(n.map((r,a)=>{const l=new qn(`id-${a}`,"",r.iconClass||n1(r.iconPath),!0,()=>aS(this,void 0,void 0,function*(){this.onDidTriggerButtonEmitter.fire(r)}));return l.tooltip=r.tooltip||"",l}),{icon:!0,label:!1}),this.ui.rightActionBar.clear();const o=this.buttons.filter(r=>r!==r1);this.ui.rightActionBar.push(o.map((r,a)=>{const l=new qn(`id-${a}`,"",r.iconClass||n1(r.iconPath),!0,()=>aS(this,void 0,void 0,function*(){this.onDidTriggerButtonEmitter.fire(r)}));return l.tooltip=r.tooltip||"",l}),{icon:!0,label:!1})}this.ui.ignoreFocusOut=this.ignoreFocusOut,this.ui.setEnabled(this.enabled),this.ui.setContextKey(this.contextKey);const i=this.validationMessage||this.noValidationMessage;this._lastValidationMessage!==i&&(this._lastValidationMessage=i,Df(this.ui.message,...yc(i))),this._lastSeverity!==this.severity&&(this._lastSeverity=this.severity,this.showMessageDecoration(this.severity))}getTitle(){return this.title&&this.step?`${this.title} (${this.getSteps()})`:this.title?this.title:this.step?this.getSteps():""}getDescription(){return this.description||""}getSteps(){return this.step&&this.totalSteps?p("quickInput.steps","{0}/{1}",this.step,this.totalSteps):this.step?String(this.step):""}showMessageDecoration(e){if(this.ui.inputBox.showDecoration(e),e!==at.Ignore){const t=this.ui.inputBox.stylesForType(e);this.ui.message.style.color=t.foreground?`${t.foreground}`:"",this.ui.message.style.backgroundColor=t.background?`${t.background}`:"",this.ui.message.style.border=t.border?`1px solid ${t.border}`:"",this.ui.message.style.marginBottom="-2px"}else this.ui.message.style.color="",this.ui.message.style.backgroundColor="",this.ui.message.style.border="",this.ui.message.style.marginBottom=""}dispose(){this.hide(),this.onDisposeEmitter.fire(),super.dispose()}}sg.noPromptMessage=p("inputModeEntry","Press 'Enter' to confirm your input or 'Escape' to cancel");class oh extends sg{constructor(){super(...arguments),this._value="",this.onDidChangeValueEmitter=this._register(new M),this.onWillAcceptEmitter=this._register(new M),this.onDidAcceptEmitter=this._register(new M),this.onDidCustomEmitter=this._register(new M),this._items=[],this.itemsUpdated=!1,this._canSelectMany=!1,this._canAcceptInBackground=!1,this._matchOnDescription=!1,this._matchOnDetail=!1,this._matchOnLabel=!0,this._sortByLabel=!0,this._autoFocusOnList=!0,this._keepScrollPosition=!1,this._itemActivation=this.ui.isScreenReaderOptimized()?fn.NONE:fn.FIRST,this._activeItems=[],this.activeItemsUpdated=!1,this.activeItemsToConfirm=[],this.onDidChangeActiveEmitter=this._register(new M),this._selectedItems=[],this.selectedItemsUpdated=!1,this.selectedItemsToConfirm=[],this.onDidChangeSelectionEmitter=this._register(new M),this.onDidTriggerItemButtonEmitter=this._register(new M),this.valueSelectionUpdated=!0,this._ok="default",this._customButton=!1,this.filterValue=e=>e,this.onDidChangeValue=this.onDidChangeValueEmitter.event,this.onWillAccept=this.onWillAcceptEmitter.event,this.onDidAccept=this.onDidAcceptEmitter.event,this.onDidChangeActive=this.onDidChangeActiveEmitter.event,this.onDidChangeSelection=this.onDidChangeSelectionEmitter.event,this.onDidTriggerItemButton=this.onDidTriggerItemButtonEmitter.event}get quickNavigate(){return this._quickNavigate}set quickNavigate(e){this._quickNavigate=e,this.update()}get value(){return this._value}set value(e){this.doSetValue(e)}doSetValue(e,t){this._value!==e&&(this._value=e,t||this.update(),this.visible&&this.ui.list.filter(this.filterValue(this._value))&&this.trySelectFirst(),this.onDidChangeValueEmitter.fire(this._value))}set ariaLabel(e){this._ariaLabel=e,this.update()}get ariaLabel(){return this._ariaLabel}get placeholder(){return this._placeholder}set placeholder(e){this._placeholder=e,this.update()}get items(){return this._items}get scrollTop(){return this.ui.list.scrollTop}set scrollTop(e){this.ui.list.scrollTop=e}set items(e){this._items=e,this.itemsUpdated=!0,this.update()}get canSelectMany(){return this._canSelectMany}set canSelectMany(e){this._canSelectMany=e,this.update()}get canAcceptInBackground(){return this._canAcceptInBackground}set canAcceptInBackground(e){this._canAcceptInBackground=e}get matchOnDescription(){return this._matchOnDescription}set matchOnDescription(e){this._matchOnDescription=e,this.update()}get matchOnDetail(){return this._matchOnDetail}set matchOnDetail(e){this._matchOnDetail=e,this.update()}get matchOnLabel(){return this._matchOnLabel}set matchOnLabel(e){this._matchOnLabel=e,this.update()}get sortByLabel(){return this._sortByLabel}set sortByLabel(e){this._sortByLabel=e,this.update()}get autoFocusOnList(){return this._autoFocusOnList}set autoFocusOnList(e){this._autoFocusOnList=e,this.update()}get keepScrollPosition(){return this._keepScrollPosition}set keepScrollPosition(e){this._keepScrollPosition=e}get itemActivation(){return this._itemActivation}set itemActivation(e){this._itemActivation=e}get activeItems(){return this._activeItems}set activeItems(e){this._activeItems=e,this.activeItemsUpdated=!0,this.update()}get selectedItems(){return this._selectedItems}set selectedItems(e){this._selectedItems=e,this.selectedItemsUpdated=!0,this.update()}get keyMods(){return this._quickNavigate?zP:this.ui.keyMods}set valueSelection(e){this._valueSelection=e,this.valueSelectionUpdated=!0,this.update()}get customButton(){return this._customButton}set customButton(e){this._customButton=e,this.update()}get customLabel(){return this._customButtonLabel}set customLabel(e){this._customButtonLabel=e,this.update()}get customHover(){return this._customButtonHover}set customHover(e){this._customButtonHover=e,this.update()}get ok(){return this._ok}set ok(e){this._ok=e,this.update()}get hideInput(){return!!this._hideInput}set hideInput(e){this._hideInput=e,this.update()}trySelectFirst(){this.autoFocusOnList&&(this.canSelectMany||this.ui.list.focus(Ye.First))}show(){this.visible||(this.visibleDisposables.add(this.ui.inputBox.onDidChange(e=>{this.doSetValue(e,!0)})),this.visibleDisposables.add(this.ui.inputBox.onMouseDown(e=>{this.autoFocusOnList||this.ui.list.clearFocus()})),this.visibleDisposables.add((this._hideInput?this.ui.list:this.ui.inputBox).onKeyDown(e=>{switch(e.keyCode){case 18:this.ui.list.focus(Ye.Next),this.canSelectMany&&this.ui.list.domFocus(),Ie.stop(e,!0);break;case 16:this.ui.list.getFocusedElements().length?this.ui.list.focus(Ye.Previous):this.ui.list.focus(Ye.Last),this.canSelectMany&&this.ui.list.domFocus(),Ie.stop(e,!0);break;case 12:this.ui.list.focus(Ye.NextPage),this.canSelectMany&&this.ui.list.domFocus(),Ie.stop(e,!0);break;case 11:this.ui.list.focus(Ye.PreviousPage),this.canSelectMany&&this.ui.list.domFocus(),Ie.stop(e,!0);break;case 17:if(!this._canAcceptInBackground||!this.ui.inputBox.isSelectionAtEnd())return;this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems),this.handleAccept(!0));break;case 14:(e.ctrlKey||e.metaKey)&&!e.shiftKey&&!e.altKey&&(this.ui.list.focus(Ye.First),Ie.stop(e,!0));break;case 13:(e.ctrlKey||e.metaKey)&&!e.shiftKey&&!e.altKey&&(this.ui.list.focus(Ye.Last),Ie.stop(e,!0));break}})),this.visibleDisposables.add(this.ui.onDidAccept(()=>{this.canSelectMany?this.ui.list.getCheckedElements().length||(this._selectedItems=[],this.onDidChangeSelectionEmitter.fire(this.selectedItems)):this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems)),this.handleAccept(!1)})),this.visibleDisposables.add(this.ui.onDidCustom(()=>{this.onDidCustomEmitter.fire()})),this.visibleDisposables.add(this.ui.list.onDidChangeFocus(e=>{this.activeItemsUpdated||this.activeItemsToConfirm!==this._activeItems&&Kn(e,this._activeItems,(t,i)=>t===i)||(this._activeItems=e,this.onDidChangeActiveEmitter.fire(e))})),this.visibleDisposables.add(this.ui.list.onDidChangeSelection(({items:e,event:t})=>{if(this.canSelectMany){e.length&&this.ui.list.setSelectedElements([]);return}this.selectedItemsToConfirm!==this._selectedItems&&Kn(e,this._selectedItems,(i,n)=>i===n)||(this._selectedItems=e,this.onDidChangeSelectionEmitter.fire(e),e.length&&this.handleAccept(t instanceof MouseEvent&&t.button===1))})),this.visibleDisposables.add(this.ui.list.onChangedCheckedElements(e=>{!this.canSelectMany||this.selectedItemsToConfirm!==this._selectedItems&&Kn(e,this._selectedItems,(t,i)=>t===i)||(this._selectedItems=e,this.onDidChangeSelectionEmitter.fire(e))})),this.visibleDisposables.add(this.ui.list.onButtonTriggered(e=>this.onDidTriggerItemButtonEmitter.fire(e))),this.visibleDisposables.add(this.registerQuickNavigation()),this.valueSelectionUpdated=!0),super.show()}handleAccept(e){let t=!1;this.onWillAcceptEmitter.fire({veto:()=>t=!0}),t||this.onDidAcceptEmitter.fire({inBackground:e})}registerQuickNavigation(){return V(this.ui.container,Y.KEY_UP,e=>{if(this.canSelectMany||!this._quickNavigate)return;const t=new He(e),i=t.keyCode;this._quickNavigate.keybindings.some(r=>{const[a,l]=r.getParts();return l?!1:a.shiftKey&&i===4?!(t.ctrlKey||t.altKey||t.metaKey):!!(a.altKey&&i===6||a.ctrlKey&&i===5||a.metaKey&&i===57)})&&(this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems),this.handleAccept(!1)),this._quickNavigate=void 0)})}update(){if(!this.visible)return;const e=this.keepScrollPosition?this.scrollTop:0,t=!!this._hideInput&&this._items.length>0;this.ui.container.classList.toggle("hidden-input",t&&!this.description);const i={title:!!this.title||!!this.step||!!this.buttons.length,description:!!this.description,checkAll:this.canSelectMany&&!this._hideCheckAll,checkBox:this.canSelectMany,inputBox:!t,progressBar:!t,visibleCount:!0,count:this.canSelectMany,ok:this.ok==="default"?this.canSelectMany:this.ok,list:!0,message:!!this.validationMessage,customButton:this.customButton};this.ui.setVisibilities(i),super.update(),this.ui.inputBox.value!==this.value&&(this.ui.inputBox.value=this.value),this.valueSelectionUpdated&&(this.valueSelectionUpdated=!1,this.ui.inputBox.select(this._valueSelection&&{start:this._valueSelection[0],end:this._valueSelection[1]})),this.ui.inputBox.placeholder!==(this.placeholder||"")&&(this.ui.inputBox.placeholder=this.placeholder||"");const n=this.ariaLabel||this.placeholder||oh.DEFAULT_ARIA_LABEL;if(this.ui.inputBox.ariaLabel!==n&&(this.ui.inputBox.ariaLabel=n),this.ui.list.matchOnDescription=this.matchOnDescription,this.ui.list.matchOnDetail=this.matchOnDetail,this.ui.list.matchOnLabel=this.matchOnLabel,this.ui.list.sortByLabel=this.sortByLabel,this.itemsUpdated)switch(this.itemsUpdated=!1,this.ui.list.setElements(this.items),this.ui.list.filter(this.filterValue(this.ui.inputBox.value)),this.ui.checkAll.checked=this.ui.list.getAllVisibleChecked(),this.ui.visibleCount.setCount(this.ui.list.getVisibleCount()),this.ui.count.setCount(this.ui.list.getCheckedCount()),this._itemActivation){case fn.NONE:this._itemActivation=fn.FIRST;break;case fn.SECOND:this.ui.list.focus(Ye.Second),this._itemActivation=fn.FIRST;break;case fn.LAST:this.ui.list.focus(Ye.Last),this._itemActivation=fn.FIRST;break;default:this.trySelectFirst();break}this.ui.container.classList.contains("show-checkboxes")!==!!this.canSelectMany&&(this.canSelectMany?this.ui.list.clearFocus():this.trySelectFirst()),this.activeItemsUpdated&&(this.activeItemsUpdated=!1,this.activeItemsToConfirm=this._activeItems,this.ui.list.setFocusedElements(this.activeItems),this.activeItemsToConfirm===this._activeItems&&(this.activeItemsToConfirm=null)),this.selectedItemsUpdated&&(this.selectedItemsUpdated=!1,this.selectedItemsToConfirm=this._selectedItems,this.canSelectMany?this.ui.list.setCheckedElements(this.selectedItems):this.ui.list.setSelectedElements(this.selectedItems),this.selectedItemsToConfirm===this._selectedItems&&(this.selectedItemsToConfirm=null)),this.ui.customButton.label=this.customLabel||"",this.ui.customButton.element.title=this.customHover||"",this.ui.setComboboxAccessibility(!0),i.inputBox||(this.ui.list.domFocus(),this.canSelectMany&&this.ui.list.focus(Ye.First)),this.keepScrollPosition&&(this.scrollTop=e)}}oh.DEFAULT_ARIA_LABEL=p("quickInputBox.ariaLabel","Type to narrow down results.");class og extends W{constructor(e){super(),this.options=e,this.comboboxAccessibility=!1,this.enabled=!0,this.onDidAcceptEmitter=this._register(new M),this.onDidCustomEmitter=this._register(new M),this.onDidTriggerButtonEmitter=this._register(new M),this.keyMods={ctrlCmd:!1,alt:!1},this.controller=null,this.onShowEmitter=this._register(new M),this.onShow=this.onShowEmitter.event,this.onHideEmitter=this._register(new M),this.onHide=this.onHideEmitter.event,this.idPrefix=e.idPrefix,this.parentElement=e.container,this.styles=e.styles,this.registerKeyModsListeners()}registerKeyModsListeners(){const e=t=>{this.keyMods.ctrlCmd=t.ctrlKey||t.metaKey,this.keyMods.alt=t.altKey};this._register(V(window,Y.KEY_DOWN,e,!0)),this._register(V(window,Y.KEY_UP,e,!0)),this._register(V(window,Y.MOUSE_DOWN,e,!0))}getUI(){if(this.ui)return this.ui;const e=U(this.parentElement,di(".quick-input-widget.show-file-icons"));e.tabIndex=-1,e.style.display="none";const t=xn(e),i=U(e,di(".quick-input-titlebar")),n=this._register(new ol(i));n.domNode.classList.add("quick-input-left-action-bar");const o=U(i,di(".quick-input-title")),r=this._register(new ol(i));r.domNode.classList.add("quick-input-right-action-bar");const a=U(e,di(".quick-input-description")),l=U(e,di(".quick-input-header")),c=U(l,di("input.quick-input-check-all"));c.type="checkbox",this._register(wi(c,Y.CHANGE,R=>{const T=c.checked;L.setAllVisibleChecked(T)})),this._register(V(c,Y.CLICK,R=>{(R.x||R.y)&&f.setFocus()}));const h=U(l,di(".quick-input-description")),d=U(l,di(".quick-input-and-message")),u=U(d,di(".quick-input-filter")),f=this._register(new QP(u));f.setAttribute("aria-describedby",`${this.idPrefix}message`);const m=U(u,di(".quick-input-visible-count"));m.setAttribute("aria-live","polite"),m.setAttribute("aria-atomic","true");const _=new tS(m,{countFormat:p({key:"quickInput.visibleCount",comment:["This tells the user how many items are shown in a list of items to select from. The items can be anything. Currently not visible, but read by screen readers."]},"{0} Results")}),b=U(u,di(".quick-input-count"));b.setAttribute("aria-live","polite");const w=new tS(b,{countFormat:p({key:"quickInput.countSelected",comment:["This tells the user how many items are selected in a list of items to select from. The items can be anything."]},"{0} Selected")}),C=U(l,di(".quick-input-action")),v=new eS(C);v.label=p("ok","OK"),this._register(v.onDidClick(R=>{this.onDidAcceptEmitter.fire()}));const S=U(l,di(".quick-input-action")),k=new eS(S);k.label=p("custom","Custom"),this._register(k.onDidClick(R=>{this.onDidCustomEmitter.fire()}));const x=U(d,di(`#${this.idPrefix}message.quick-input-message`)),L=this._register(new wb(e,this.idPrefix+"list",this.options));this._register(L.onChangedAllVisibleChecked(R=>{c.checked=R})),this._register(L.onChangedVisibleCount(R=>{_.setCount(R)})),this._register(L.onChangedCheckedCount(R=>{w.setCount(R)})),this._register(L.onLeave(()=>{setTimeout(()=>{f.setFocus(),this.controller instanceof oh&&this.controller.canSelectMany&&L.clearFocus()},0)})),this._register(L.onDidChangeFocus(()=>{this.comboboxAccessibility&&this.getUI().inputBox.setAttribute("aria-activedescendant",this.getUI().list.getActiveDescendant()||"")}));const y=new ng(e);y.getContainer().classList.add("quick-input-progress");const I=Ga(e);return this._register(I),this._register(V(e,Y.FOCUS,R=>{this.previousFocusElement=R.relatedTarget instanceof HTMLElement?R.relatedTarget:void 0},!0)),this._register(I.onDidBlur(()=>{!this.getUI().ignoreFocusOut&&!this.options.ignoreFocusOut()&&this.hide(sh.Blur),this.previousFocusElement=void 0})),this._register(V(e,Y.FOCUS,R=>{f.setFocus()})),this._register(V(e,Y.KEY_DOWN,R=>{const T=new He(R);switch(T.keyCode){case 3:Ie.stop(R,!0),this.onDidAcceptEmitter.fire();break;case 9:Ie.stop(R,!0),this.hide(sh.Gesture);break;case 2:if(!T.altKey&&!T.ctrlKey&&!T.metaKey){const P=[".action-label.codicon"];e.classList.contains("show-checkboxes")?P.push("input"):P.push("input[type=text]"),this.getUI().list.isDisplayed()&&P.push(".monaco-list");const F=e.querySelectorAll(P.join(", "));T.shiftKey&&T.target===F[0]?(Ie.stop(R,!0),F[F.length-1].focus()):!T.shiftKey&&T.target===F[F.length-1]&&(Ie.stop(R,!0),F[0].focus())}break}})),this.ui={container:e,styleSheet:t,leftActionBar:n,titleBar:i,title:o,description1:a,description2:h,rightActionBar:r,checkAll:c,filterContainer:u,inputBox:f,visibleCountContainer:m,visibleCount:_,countContainer:b,count:w,okContainer:C,ok:v,message:x,customButtonContainer:S,customButton:k,list:L,progressBar:y,onDidAccept:this.onDidAcceptEmitter.event,onDidCustom:this.onDidCustomEmitter.event,onDidTriggerButton:this.onDidTriggerButtonEmitter.event,ignoreFocusOut:!1,keyMods:this.keyMods,isScreenReaderOptimized:()=>this.options.isScreenReaderOptimized(),show:R=>this.show(R),hide:()=>this.hide(),setVisibilities:R=>this.setVisibilities(R),setComboboxAccessibility:R=>this.setComboboxAccessibility(R),setEnabled:R=>this.setEnabled(R),setContextKey:R=>this.options.setContextKey(R)},this.updateStyles(),this.ui}pick(e,t={},i=ci.None){return new Promise((n,o)=>{let r=h=>{r=n,t.onKeyMods&&t.onKeyMods(a.keyMods),n(h)};if(i.isCancellationRequested){r(void 0);return}const a=this.createQuickPick();let l;const c=[a,a.onDidAccept(()=>{if(a.canSelectMany)r(a.selectedItems.slice()),a.hide();else{const h=a.activeItems[0];h&&(r(h),a.hide())}}),a.onDidChangeActive(h=>{const d=h[0];d&&t.onDidFocus&&t.onDidFocus(d)}),a.onDidChangeSelection(h=>{if(!a.canSelectMany){const d=h[0];d&&(r(d),a.hide())}}),a.onDidTriggerItemButton(h=>t.onDidTriggerItemButton&&t.onDidTriggerItemButton(Object.assign(Object.assign({},h),{removeItem:()=>{const d=a.items.indexOf(h.item);if(d!==-1){const u=a.items.slice(),f=u.splice(d,1),m=a.activeItems.filter(b=>b!==f[0]),_=a.keepScrollPosition;a.keepScrollPosition=!0,a.items=u,m&&(a.activeItems=m),a.keepScrollPosition=_}}}))),a.onDidChangeValue(h=>{l&&!h&&(a.activeItems.length!==1||a.activeItems[0]!==l)&&(a.activeItems=[l])}),i.onCancellationRequested(()=>{a.hide()}),a.onDidHide(()=>{Me(c),r(void 0)})];a.title=t.title,a.canSelectMany=!!t.canPickMany,a.placeholder=t.placeHolder,a.ignoreFocusOut=!!t.ignoreFocusLost,a.matchOnDescription=!!t.matchOnDescription,a.matchOnDetail=!!t.matchOnDetail,a.matchOnLabel=t.matchOnLabel===void 0||t.matchOnLabel,a.autoFocusOnList=t.autoFocusOnList===void 0||t.autoFocusOnList,a.quickNavigate=t.quickNavigate,a.contextKey=t.contextKey,a.busy=!0,Promise.all([e,t.activeItem]).then(([h,d])=>{l=d,a.busy=!1,a.items=h,a.canSelectMany&&(a.selectedItems=h.filter(u=>u.type!=="separator"&&u.picked)),l&&(a.activeItems=[l])}),a.show(),Promise.resolve(e).then(void 0,h=>{o(h),a.hide()})})}createQuickPick(){const e=this.getUI();return new oh(e)}show(e){const t=this.getUI();this.onShowEmitter.fire();const i=this.controller;this.controller=e,i&&i.didHide(),this.setEnabled(!0),t.leftActionBar.clear(),t.title.textContent="",t.description1.textContent="",t.description2.textContent="",t.rightActionBar.clear(),t.checkAll.checked=!1,t.inputBox.placeholder="",t.inputBox.password=!1,t.inputBox.showDecoration(at.Ignore),t.visibleCount.setCount(0),t.count.setCount(0),Df(t.message),t.progressBar.stop(),t.list.setElements([]),t.list.matchOnDescription=!1,t.list.matchOnDetail=!1,t.list.matchOnLabel=!0,t.list.sortByLabel=!0,t.ignoreFocusOut=!1,this.setComboboxAccessibility(!1),t.inputBox.ariaLabel="";const n=this.options.backKeybindingLabel();r1.tooltip=n?p("quickInput.backWithKeybinding","Back ({0})",n):p("quickInput.back","Back"),t.container.style.display="",this.updateLayout(),t.inputBox.setFocus()}setVisibilities(e){const t=this.getUI();t.title.style.display=e.title?"":"none",t.description1.style.display=e.description&&(e.inputBox||e.checkAll)?"":"none",t.description2.style.display=e.description&&!(e.inputBox||e.checkAll)?"":"none",t.checkAll.style.display=e.checkAll?"":"none",t.filterContainer.style.display=e.inputBox?"":"none",t.visibleCountContainer.style.display=e.visibleCount?"":"none",t.countContainer.style.display=e.count?"":"none",t.okContainer.style.display=e.ok?"":"none",t.customButtonContainer.style.display=e.customButton?"":"none",t.message.style.display=e.message?"":"none",t.progressBar.getContainer().style.display=e.progressBar?"":"none",t.list.display(!!e.list),t.container.classList[e.checkBox?"add":"remove"]("show-checkboxes"),this.updateLayout()}setComboboxAccessibility(e){if(e!==this.comboboxAccessibility){const t=this.getUI();this.comboboxAccessibility=e,this.comboboxAccessibility?(t.inputBox.setAttribute("role","combobox"),t.inputBox.setAttribute("aria-haspopup","true"),t.inputBox.setAttribute("aria-autocomplete","list"),t.inputBox.setAttribute("aria-activedescendant",t.list.getActiveDescendant()||"")):(t.inputBox.removeAttribute("role"),t.inputBox.removeAttribute("aria-haspopup"),t.inputBox.removeAttribute("aria-autocomplete"),t.inputBox.removeAttribute("aria-activedescendant"))}}setEnabled(e){if(e!==this.enabled){this.enabled=e;for(const t of this.getUI().leftActionBar.viewItems)t.getAction().enabled=e;for(const t of this.getUI().rightActionBar.viewItems)t.getAction().enabled=e;this.getUI().checkAll.disabled=!e,this.getUI().ok.enabled=e,this.getUI().list.enabled=e}}hide(e){var t;const i=this.controller;if(i){const n=!(!((t=this.ui)===null||t===void 0)&&t.container.contains(document.activeElement));if(this.controller=null,this.onHideEmitter.fire(),this.getUI().container.style.display="none",!n){let o=this.previousFocusElement;for(;o&&!o.offsetParent;)o=Qo(o.parentElement);o!=null&&o.offsetParent?(o.focus(),this.previousFocusElement=void 0):this.options.returnFocus()}i.didHide(e)}}layout(e,t){this.dimension=e,this.titleBarOffset=t,this.updateLayout()}updateLayout(){if(this.ui){this.ui.container.style.top=`${this.titleBarOffset}px`;const e=this.ui.container.style,t=Math.min(this.dimension.width*.62,og.MAX_WIDTH);e.width=t+"px",e.marginLeft="-"+t/2+"px",this.ui.inputBox.layout(),this.ui.list.layout(this.dimension&&this.dimension.height*.4)}}applyStyles(e){this.styles=e,this.updateStyles()}updateStyles(){if(this.ui){const{quickInputTitleBackground:e,quickInputBackground:t,quickInputForeground:i,contrastBorder:n,widgetShadow:o}=this.styles.widget;this.ui.titleBar.style.backgroundColor=e?e.toString():"",this.ui.container.style.backgroundColor=t?t.toString():"",this.ui.container.style.color=i?i.toString():"",this.ui.container.style.border=n?`1px solid ${n}`:"",this.ui.container.style.boxShadow=o?`0 0 8px 2px ${o}`:"",this.ui.inputBox.style(this.styles.inputBox),this.ui.count.style(this.styles.countBadge),this.ui.ok.style(this.styles.button),this.ui.customButton.style(this.styles.button),this.ui.progressBar.style(this.styles.progressBar),this.ui.list.style(this.styles.list);const r=[];this.styles.list.pickerGroupBorder&&r.push(`.quick-input-list .quick-input-list-entry { border-top-color: ${this.styles.list.pickerGroupBorder}; }`),this.styles.list.pickerGroupForeground&&r.push(`.quick-input-list .quick-input-list-separator { color: ${this.styles.list.pickerGroupForeground}; }`),(this.styles.keybindingLabel.keybindingLabelBackground||this.styles.keybindingLabel.keybindingLabelBorder||this.styles.keybindingLabel.keybindingLabelBottomBorder||this.styles.keybindingLabel.keybindingLabelShadow||this.styles.keybindingLabel.keybindingLabelForeground)&&(r.push(".quick-input-list .monaco-keybinding > .monaco-keybinding-key {"),this.styles.keybindingLabel.keybindingLabelBackground&&r.push(`background-color: ${this.styles.keybindingLabel.keybindingLabelBackground};`),this.styles.keybindingLabel.keybindingLabelBorder&&r.push(`border-color: ${this.styles.keybindingLabel.keybindingLabelBorder};`),this.styles.keybindingLabel.keybindingLabelBottomBorder&&r.push(`border-bottom-color: ${this.styles.keybindingLabel.keybindingLabelBottomBorder};`),this.styles.keybindingLabel.keybindingLabelShadow&&r.push(`box-shadow: inset 0 -1px 0 ${this.styles.keybindingLabel.keybindingLabelShadow};`),this.styles.keybindingLabel.keybindingLabelForeground&&r.push(`color: ${this.styles.keybindingLabel.keybindingLabelForeground};`),r.push("}"));const a=r.join(` +`);a!==this.ui.styleSheet.textContent&&(this.ui.styleSheet.textContent=a)}}}og.MAX_WIDTH=600;class p8{constructor(e){this.spliceables=e}splice(e,t,i){this.spliceables.forEach(n=>n.splice(e,t,i))}}class Fo extends Error{constructor(e,t){super(`ListError [${e}] ${t}`)}}function lS(s,e){const t=[];for(let i of e){if(s.start>=i.range.end)continue;if(s.ende.concat(t),[]))}class cS{constructor(){this.groups=[],this._size=0}splice(e,t,i=[]){const n=i.length-t,o=lS({start:0,end:e},this.groups),r=lS({start:e+t,end:Number.POSITIVE_INFINITY},this.groups).map(l=>({range:a1(l.range,n),size:l.size})),a=i.map((l,c)=>({range:{start:e+c,end:e+c+1},size:l.size}));this.groups=b8(o,a,r),this._size=this.groups.reduce((l,c)=>l+c.size*(c.range.end-c.range.start),0)}get count(){const e=this.groups.length;return e?this.groups[e-1].range.end:0}get size(){return this._size}indexAt(e){if(e<0)return-1;let t=0,i=0;for(let n of this.groups){const o=n.range.end-n.range.start,r=i+o*n.size;if(e{for(const i of e)this.getRenderer(t).disposeTemplate(i.templateData),i.templateData=null}),this.cache.clear()}getRenderer(e){const t=this.renderers.get(e);if(!t)throw new Error(`No renderer found for ${e}`);return t}}var Hr=globalThis&&globalThis.__decorate||function(s,e,t,i){var n=arguments.length,o=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o};const Rn={useShadows:!0,verticalScrollMode:1,setRowLineHeight:!0,setRowHeight:!0,supportDynamicHeights:!1,dnd:{getDragElements(s){return[s]},getDragURI(){return null},onDragStart(){},onDragOver(){return!1},drop(){}},horizontalScrolling:!1,transformOptimization:!0,alwaysConsumeMouseWheel:!0};class Rh{constructor(e){this.elements=e}update(){}getData(){return this.elements}}class v8{constructor(e){this.elements=e}update(){}getData(){return this.elements}}class S8{constructor(){this.types=[],this.files=[]}update(e){if(e.types&&this.types.splice(0,this.types.length,...e.types),e.files){this.files.splice(0,this.files.length);for(let t=0;tn,e!=null&&e.getPosInSet?this.getPosInSet=e.getPosInSet.bind(e):this.getPosInSet=(t,i)=>i+1,e!=null&&e.getRole?this.getRole=e.getRole.bind(e):this.getRole=t=>"listitem",e!=null&&e.isChecked?this.isChecked=e.isChecked.bind(e):this.isChecked=t=>{}}}class Nn{constructor(e,t,i,n=Rn){if(this.virtualDelegate=t,this.domId=`list_id_${++Nn.InstanceCount}`,this.renderers=new Map,this.renderWidth=0,this._scrollHeight=0,this.scrollableElementUpdateDisposable=null,this.scrollableElementWidthDelayer=new bl(50),this.splicing=!1,this.dragOverAnimationStopDisposable=W.None,this.dragOverMouseY=0,this.canDrop=!1,this.currentDragFeedbackDisposable=W.None,this.onDragLeaveTimeout=W.None,this.disposables=new se,this._onDidChangeContentHeight=new M,this._horizontalScrolling=!1,n.horizontalScrolling&&n.supportDynamicHeights)throw new Error("Horizontal scrolling and dynamic heights not supported simultaneously");this.items=[],this.itemId=0,this.rangeMap=new cS;for(const r of i)this.renderers.set(r.templateId,r);this.cache=this.disposables.add(new w8(this.renderers)),this.lastRenderTop=0,this.lastRenderHeight=0,this.domNode=document.createElement("div"),this.domNode.className="monaco-list",this.domNode.classList.add(this.domId),this.domNode.tabIndex=0,this.domNode.classList.toggle("mouse-support",typeof n.mouseSupport=="boolean"?n.mouseSupport:!0),this._horizontalScrolling=Mn(n,r=>r.horizontalScrolling,Rn.horizontalScrolling),this.domNode.classList.toggle("horizontal-scrolling",this._horizontalScrolling),this.additionalScrollHeight=typeof n.additionalScrollHeight=="undefined"?0:n.additionalScrollHeight,this.accessibilityProvider=new L8(n.accessibilityProvider),this.rowsContainer=document.createElement("div"),this.rowsContainer.className="monaco-list-rows",Mn(n,r=>r.transformOptimization,Rn.transformOptimization)&&(this.rowsContainer.style.transform="translate3d(0px, 0px, 0px)"),this.disposables.add(Se.addTarget(this.rowsContainer)),this.scrollable=new Eh({forceIntegerValues:!0,smoothScrollDuration:Mn(n,r=>r.smoothScrolling,!1)?125:0,scheduleAtNextAnimationFrame:r=>kn(r)}),this.scrollableElement=this.disposables.add(new W0(this.rowsContainer,{alwaysConsumeMouseWheel:Mn(n,r=>r.alwaysConsumeMouseWheel,Rn.alwaysConsumeMouseWheel),horizontal:1,vertical:Mn(n,r=>r.verticalScrollMode,Rn.verticalScrollMode),useShadows:Mn(n,r=>r.useShadows,Rn.useShadows),mouseWheelScrollSensitivity:n.mouseWheelScrollSensitivity,fastScrollSensitivity:n.fastScrollSensitivity},this.scrollable)),this.domNode.appendChild(this.scrollableElement.getDomNode()),e.appendChild(this.domNode),this.scrollableElement.onScroll(this.onScroll,this,this.disposables),this.disposables.add(V(this.rowsContainer,Ae.Change,r=>this.onTouchChange(r))),this.disposables.add(V(this.scrollableElement.getDomNode(),"scroll",r=>r.target.scrollTop=0)),this.disposables.add(V(this.domNode,"dragover",r=>this.onDragOver(this.toDragEvent(r)))),this.disposables.add(V(this.domNode,"drop",r=>this.onDrop(this.toDragEvent(r)))),this.disposables.add(V(this.domNode,"dragleave",r=>this.onDragLeave(this.toDragEvent(r)))),this.disposables.add(V(this.domNode,"dragend",r=>this.onDragEnd(r))),this.setRowLineHeight=Mn(n,r=>r.setRowLineHeight,Rn.setRowLineHeight),this.setRowHeight=Mn(n,r=>r.setRowHeight,Rn.setRowHeight),this.supportDynamicHeights=Mn(n,r=>r.supportDynamicHeights,Rn.supportDynamicHeights),this.dnd=Mn(n,r=>r.dnd,Rn.dnd),this.layout()}get contentHeight(){return this.rangeMap.size}get horizontalScrolling(){return this._horizontalScrolling}set horizontalScrolling(e){if(e!==this._horizontalScrolling){if(e&&this.supportDynamicHeights)throw new Error("Horizontal scrolling and dynamic heights not supported simultaneously");if(this._horizontalScrolling=e,this.domNode.classList.toggle("horizontal-scrolling",this._horizontalScrolling),this._horizontalScrolling){for(const t of this.items)this.measureItemWidth(t);this.updateScrollWidth(),this.scrollableElement.setScrollDimensions({width:zg(this.domNode)}),this.rowsContainer.style.width=`${Math.max(this.scrollWidth||0,this.renderWidth)}px`}else this.scrollableElementWidthDelayer.cancel(),this.scrollableElement.setScrollDimensions({width:this.renderWidth,scrollWidth:this.renderWidth}),this.rowsContainer.style.width=""}}updateOptions(e){e.additionalScrollHeight!==void 0&&(this.additionalScrollHeight=e.additionalScrollHeight,this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight})),e.smoothScrolling!==void 0&&this.scrollable.setSmoothScrollDuration(e.smoothScrolling?125:0),e.horizontalScrolling!==void 0&&(this.horizontalScrolling=e.horizontalScrolling),e.mouseWheelScrollSensitivity!==void 0&&this.scrollableElement.updateOptions({mouseWheelScrollSensitivity:e.mouseWheelScrollSensitivity}),e.fastScrollSensitivity!==void 0&&this.scrollableElement.updateOptions({fastScrollSensitivity:e.fastScrollSensitivity})}splice(e,t,i=[]){if(this.splicing)throw new Error("Can't run recursive splices.");this.splicing=!0;try{return this._splice(e,t,i)}finally{this.splicing=!1,this._onDidChangeContentHeight.fire(this.contentHeight)}}_splice(e,t,i=[]){const n=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),o={start:e,end:e+t},r=Dt.intersect(n,o),a=new Map;for(let x=r.end-1;x>=r.start;x--){const L=this.items[x];if(L.dragStartDisposable.dispose(),L.row){let y=a.get(L.templateId);y||(y=[],a.set(L.templateId,y));const I=this.renderers.get(L.templateId);I&&I.disposeElement&&I.disposeElement(L.element,x,L.row.templateData,L.size),y.push(L.row)}L.row=null}const l={start:e+t,end:this.items.length},c=Dt.intersect(l,n),h=Dt.relativeComplement(l,n),d=i.map(x=>({id:String(this.itemId++),element:x,templateId:this.virtualDelegate.getTemplateId(x),size:this.virtualDelegate.getHeight(x),width:void 0,hasDynamicHeight:!!this.virtualDelegate.hasDynamicHeight&&this.virtualDelegate.hasDynamicHeight(x),lastDynamicHeightWidth:void 0,row:null,uri:void 0,dropTarget:!1,dragStartDisposable:W.None,checkedDisposable:W.None}));let u;e===0&&t>=this.items.length?(this.rangeMap=new cS,this.rangeMap.splice(0,0,d),u=this.items,this.items=d):(this.rangeMap.splice(e,t,d),u=this.items.splice(e,t,...d));const f=i.length-t,m=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),_=a1(c,f),b=Dt.intersect(m,_);for(let x=b.start;xa1(x,f)),S=[{start:e,end:e+i.length},...C].map(x=>Dt.intersect(m,x)),k=this.getNextToLastElement(S);for(const x of S)for(let L=x.start;Lx.element)}eventuallyUpdateScrollDimensions(){this._scrollHeight=this.contentHeight,this.rowsContainer.style.height=`${this._scrollHeight}px`,this.scrollableElementUpdateDisposable||(this.scrollableElementUpdateDisposable=kn(()=>{this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight}),this.updateScrollWidth(),this.scrollableElementUpdateDisposable=null}))}eventuallyUpdateScrollWidth(){if(!this.horizontalScrolling){this.scrollableElementWidthDelayer.cancel();return}this.scrollableElementWidthDelayer.trigger(()=>this.updateScrollWidth())}updateScrollWidth(){if(!this.horizontalScrolling)return;let e=0;for(const t of this.items)typeof t.width!="undefined"&&(e=Math.max(e,t.width));this.scrollWidth=e,this.scrollableElement.setScrollDimensions({scrollWidth:e===0?0:e+10})}rerender(){if(!!this.supportDynamicHeights){for(const e of this.items)e.lastDynamicHeightWidth=void 0;this._rerender(this.lastRenderTop,this.lastRenderHeight)}}get length(){return this.items.length}get renderHeight(){return this.scrollableElement.getScrollDimensions().height}element(e){return this.items[e].element}domElement(e){const t=this.items[e].row;return t&&t.domNode}elementHeight(e){return this.items[e].size}elementTop(e){return this.rangeMap.positionAt(e)}indexAt(e){return this.rangeMap.indexAt(e)}indexAfter(e){return this.rangeMap.indexAfter(e)}layout(e,t){let i={height:typeof e=="number"?e:x4(this.domNode)};this.scrollableElementUpdateDisposable&&(this.scrollableElementUpdateDisposable.dispose(),this.scrollableElementUpdateDisposable=null,i.scrollHeight=this.scrollHeight),this.scrollableElement.setScrollDimensions(i),typeof t!="undefined"&&(this.renderWidth=t,this.supportDynamicHeights&&this._rerender(this.scrollTop,this.renderHeight)),this.horizontalScrolling&&this.scrollableElement.setScrollDimensions({width:typeof t=="number"?t:zg(this.domNode)})}render(e,t,i,n,o,r=!1){const a=this.getRenderRange(t,i),l=Dt.relativeComplement(a,e),c=Dt.relativeComplement(e,a),h=this.getNextToLastElement(l);if(r){const d=Dt.intersect(e,a);for(let u=d.start;un.row.domNode.setAttribute("aria-checked",String(!!h));c(r.value),n.checkedDisposable=r.onDidChange(c)}n.row.domNode.parentElement||(t?this.rowsContainer.insertBefore(n.row.domNode,t):this.rowsContainer.appendChild(n.row.domNode)),this.updateItemInDOM(n,e);const a=this.renderers.get(n.templateId);if(!a)throw new Error(`No renderer found for template id ${n.templateId}`);a&&a.renderElement(n.element,e,n.row.templateData,n.size);const l=this.dnd.getDragURI(n.element);n.dragStartDisposable.dispose(),n.row.domNode.draggable=!!l,l&&(n.dragStartDisposable=V(n.row.domNode,"dragstart",c=>this.onDragStart(n.element,l,c))),this.horizontalScrolling&&(this.measureItemWidth(n),this.eventuallyUpdateScrollWidth())}measureItemWidth(e){if(!e.row||!e.row.domNode)return;e.row.domNode.style.width=Oi?"-moz-fit-content":"fit-content",e.width=zg(e.row.domNode);const t=window.getComputedStyle(e.row.domNode);t.paddingLeft&&(e.width+=parseFloat(t.paddingLeft)),t.paddingRight&&(e.width+=parseFloat(t.paddingRight)),e.row.domNode.style.width=""}updateItemInDOM(e,t){e.row.domNode.style.top=`${this.elementTop(t)}px`,this.setRowHeight&&(e.row.domNode.style.height=`${e.size}px`),this.setRowLineHeight&&(e.row.domNode.style.lineHeight=`${e.size}px`),e.row.domNode.setAttribute("data-index",`${t}`),e.row.domNode.setAttribute("data-last-element",t===this.length-1?"true":"false"),e.row.domNode.setAttribute("data-parity",t%2===0?"even":"odd"),e.row.domNode.setAttribute("aria-setsize",String(this.accessibilityProvider.getSetSize(e.element,t,this.length))),e.row.domNode.setAttribute("aria-posinset",String(this.accessibilityProvider.getPosInSet(e.element,t))),e.row.domNode.setAttribute("id",this.getElementDomId(t)),e.row.domNode.classList.toggle("drop-target",e.dropTarget)}removeItemFromDOM(e){const t=this.items[e];if(t.dragStartDisposable.dispose(),t.checkedDisposable.dispose(),t.row){const i=this.renderers.get(t.templateId);i&&i.disposeElement&&i.disposeElement(t.element,e,t.row.templateData,t.size),this.cache.release(t.row),t.row=null}this.horizontalScrolling&&this.eventuallyUpdateScrollWidth()}getScrollTop(){return this.scrollableElement.getScrollPosition().scrollTop}setScrollTop(e,t){this.scrollableElementUpdateDisposable&&(this.scrollableElementUpdateDisposable.dispose(),this.scrollableElementUpdateDisposable=null,this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight})),this.scrollableElement.setScrollPosition({scrollTop:e,reuseAnimation:t})}get scrollTop(){return this.getScrollTop()}set scrollTop(e){this.setScrollTop(e)}get scrollHeight(){return this._scrollHeight+(this.horizontalScrolling?10:0)+this.additionalScrollHeight}get onMouseClick(){return K.map(this.disposables.add(new Te(this.domNode,"click")).event,e=>this.toMouseEvent(e))}get onMouseDblClick(){return K.map(this.disposables.add(new Te(this.domNode,"dblclick")).event,e=>this.toMouseEvent(e))}get onMouseMiddleClick(){return K.filter(K.map(this.disposables.add(new Te(this.domNode,"auxclick")).event,e=>this.toMouseEvent(e)),e=>e.browserEvent.button===1)}get onMouseDown(){return K.map(this.disposables.add(new Te(this.domNode,"mousedown")).event,e=>this.toMouseEvent(e))}get onContextMenu(){return K.any(K.map(this.disposables.add(new Te(this.domNode,"contextmenu")).event,e=>this.toMouseEvent(e)),K.map(this.disposables.add(new Te(this.domNode,Ae.Contextmenu)).event,e=>this.toGestureEvent(e)))}get onTouchStart(){return K.map(this.disposables.add(new Te(this.domNode,"touchstart")).event,e=>this.toTouchEvent(e))}get onTap(){return K.map(this.disposables.add(new Te(this.rowsContainer,Ae.Tap)).event,e=>this.toGestureEvent(e))}toMouseEvent(e){const t=this.getItemIndexFromEventTarget(e.target||null),i=typeof t=="undefined"?void 0:this.items[t],n=i&&i.element;return{browserEvent:e,index:t,element:n}}toTouchEvent(e){const t=this.getItemIndexFromEventTarget(e.target||null),i=typeof t=="undefined"?void 0:this.items[t],n=i&&i.element;return{browserEvent:e,index:t,element:n}}toGestureEvent(e){const t=this.getItemIndexFromEventTarget(e.initialTarget||null),i=typeof t=="undefined"?void 0:this.items[t],n=i&&i.element;return{browserEvent:e,index:t,element:n}}toDragEvent(e){const t=this.getItemIndexFromEventTarget(e.target||null),i=typeof t=="undefined"?void 0:this.items[t],n=i&&i.element;return{browserEvent:e,index:t,element:n}}onScroll(e){try{const t=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight);this.render(t,e.scrollTop,e.height,e.scrollLeft,e.scrollWidth),this.supportDynamicHeights&&this._rerender(e.scrollTop,e.height,e.inSmoothScrolling)}catch(t){throw console.error("Got bad scroll event:",e),t}}onTouchChange(e){e.preventDefault(),e.stopPropagation(),this.scrollTop-=e.translationY}onDragStart(e,t,i){if(!i.dataTransfer)return;const n=this.dnd.getDragElements(e);if(i.dataTransfer.effectAllowed="copyMove",i.dataTransfer.setData(Wk.TEXT,t),i.dataTransfer.setDragImage){let o;this.dnd.getDragLabel&&(o=this.dnd.getDragLabel(n,i)),typeof o=="undefined"&&(o=String(n.length));const r=J(".monaco-drag-image");r.textContent=o,document.body.appendChild(r),i.dataTransfer.setDragImage(r,-10,-10),setTimeout(()=>document.body.removeChild(r),0)}this.currentDragData=new Rh(n),Cs.CurrentDragAndDropData=new v8(n),this.dnd.onDragStart&&this.dnd.onDragStart(this.currentDragData,i)}onDragOver(e){if(e.browserEvent.preventDefault(),this.onDragLeaveTimeout.dispose(),Cs.CurrentDragAndDropData&&Cs.CurrentDragAndDropData.getData()==="vscode-ui"||(this.setupDragAndDropScrollTopAnimation(e.browserEvent),!e.browserEvent.dataTransfer))return!1;if(!this.currentDragData)if(Cs.CurrentDragAndDropData)this.currentDragData=Cs.CurrentDragAndDropData;else{if(!e.browserEvent.dataTransfer.types)return!1;this.currentDragData=new S8}const t=this.dnd.onDragOver(this.currentDragData,e.element,e.index,e.browserEvent);if(this.canDrop=typeof t=="boolean"?t:t.accept,!this.canDrop)return this.currentDragFeedback=void 0,this.currentDragFeedbackDisposable.dispose(),!1;e.browserEvent.dataTransfer.dropEffect=typeof t!="boolean"&&t.effect===0?"copy":"move";let i;if(typeof t!="boolean"&&t.feedback?i=t.feedback:typeof e.index=="undefined"?i=[-1]:i=[e.index],i=wo(i).filter(n=>n>=-1&&nn-o),i=i[0]===-1?[-1]:i,y8(this.currentDragFeedback,i))return!0;if(this.currentDragFeedback=i,this.currentDragFeedbackDisposable.dispose(),i[0]===-1)this.domNode.classList.add("drop-target"),this.rowsContainer.classList.add("drop-target"),this.currentDragFeedbackDisposable=Pe(()=>{this.domNode.classList.remove("drop-target"),this.rowsContainer.classList.remove("drop-target")});else{for(const n of i){const o=this.items[n];o.dropTarget=!0,o.row&&o.row.domNode.classList.add("drop-target")}this.currentDragFeedbackDisposable=Pe(()=>{for(const n of i){const o=this.items[n];o.dropTarget=!1,o.row&&o.row.domNode.classList.remove("drop-target")}})}return!0}onDragLeave(e){var t,i;this.onDragLeaveTimeout.dispose(),this.onDragLeaveTimeout=qp(()=>this.clearDragOverFeedback(),100),this.currentDragData&&((i=(t=this.dnd).onDragLeave)===null||i===void 0||i.call(t,this.currentDragData,e.element,e.index,e.browserEvent))}onDrop(e){if(!this.canDrop)return;const t=this.currentDragData;this.teardownDragAndDropScrollTopAnimation(),this.clearDragOverFeedback(),this.currentDragData=void 0,Cs.CurrentDragAndDropData=void 0,!(!t||!e.browserEvent.dataTransfer)&&(e.browserEvent.preventDefault(),t.update(e.browserEvent.dataTransfer),this.dnd.drop(t,e.element,e.index,e.browserEvent))}onDragEnd(e){this.canDrop=!1,this.teardownDragAndDropScrollTopAnimation(),this.clearDragOverFeedback(),this.currentDragData=void 0,Cs.CurrentDragAndDropData=void 0,this.dnd.onDragEnd&&this.dnd.onDragEnd(e)}clearDragOverFeedback(){this.currentDragFeedback=void 0,this.currentDragFeedbackDisposable.dispose(),this.currentDragFeedbackDisposable=W.None}setupDragAndDropScrollTopAnimation(e){if(!this.dragOverAnimationDisposable){const t=lL(this.domNode).top;this.dragOverAnimationDisposable=M4(this.animateDragAndDropScrollTop.bind(this,t))}this.dragOverAnimationStopDisposable.dispose(),this.dragOverAnimationStopDisposable=qp(()=>{this.dragOverAnimationDisposable&&(this.dragOverAnimationDisposable.dispose(),this.dragOverAnimationDisposable=void 0)},1e3),this.dragOverMouseY=e.pageY}animateDragAndDropScrollTop(e){if(this.dragOverMouseY===void 0)return;const t=this.dragOverMouseY-e,i=this.renderHeight-35;t<35?this.scrollTop+=Math.max(-14,Math.floor(.3*(t-35))):t>i&&(this.scrollTop+=Math.min(14,Math.floor(.3*(t-i))))}teardownDragAndDropScrollTopAnimation(){this.dragOverAnimationStopDisposable.dispose(),this.dragOverAnimationDisposable&&(this.dragOverAnimationDisposable.dispose(),this.dragOverAnimationDisposable=void 0)}getItemIndexFromEventTarget(e){const t=this.scrollableElement.getDomNode();let i=e;for(;i instanceof HTMLElement&&i!==this.rowsContainer&&t.contains(i);){const n=i.getAttribute("data-index");if(n){const o=Number(n);if(!isNaN(o))return o}i=i.parentElement}}getRenderRange(e,t){return{start:this.rangeMap.indexAt(e),end:this.rangeMap.indexAfter(e+t-1)}}_rerender(e,t,i){const n=this.getRenderRange(e,t);let o,r;e===this.elementTop(n.start)?(o=n.start,r=0):n.end-n.start>1&&(o=n.start+1,r=this.elementTop(o)-e);let a=0;for(;;){const l=this.getRenderRange(e,t);let c=!1;for(let h=l.start;h=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},hS=globalThis&&globalThis.__awaiter||function(s,e,t,i){function n(o){return o instanceof t?o:new t(function(r){r(o)})}return new(t||(t=Promise))(function(o,r){function a(h){try{c(i.next(h))}catch(d){r(d)}}function l(h){try{c(i.throw(h))}catch(d){r(d)}}function c(h){h.done?o(h.value):n(h.value).then(a,l)}c((i=i.apply(s,e||[])).next())})};class k8{constructor(e){this.trait=e,this.renderedElements=[]}get templateId(){return`template:${this.trait.name}`}renderTemplate(e){return e}renderElement(e,t,i){const n=this.renderedElements.findIndex(o=>o.templateData===i);if(n>=0){const o=this.renderedElements[n];this.trait.unrender(i),o.index=t}else{const o={index:t,templateData:i};this.renderedElements.push(o)}this.trait.renderIndex(t,i)}splice(e,t,i){const n=[];for(const o of this.renderedElements)o.index=e+t&&n.push({index:o.index+i-t,templateData:o.templateData});this.renderedElements=n}renderIndexes(e){for(const{index:t,templateData:i}of this.renderedElements)e.indexOf(t)>-1&&this.trait.renderIndex(t,i)}disposeTemplate(e){const t=this.renderedElements.findIndex(i=>i.templateData===e);t<0||this.renderedElements.splice(t,1)}}class lf{constructor(e){this._trait=e,this.length=0,this.indexes=[],this.sortedIndexes=[],this._onChange=new M,this.onChange=this._onChange.event}get name(){return this._trait}get renderer(){return new k8(this)}splice(e,t,i){var n;t=Math.max(0,Math.min(t,this.length-e));const o=i.length-t,r=e+t,a=[...this.sortedIndexes.filter(c=>cc?h+e:-1).filter(c=>c!==-1),...this.sortedIndexes.filter(c=>c>=r).map(c=>c+o)],l=this.length+o;if(this.sortedIndexes.length>0&&a.length===0&&l>0){const c=(n=this.sortedIndexes.find(h=>h>=e))!==null&&n!==void 0?n:l-1;a.push(Math.min(c,l-1))}this.renderer.splice(e,t,i.length),this._set(a,a),this.length=l}renderIndex(e,t){t.classList.toggle(this._trait,this.contains(e))}unrender(e){e.classList.remove(this._trait)}set(e,t){return this._set(e,[...e].sort(uS),t)}_set(e,t,i){const n=this.indexes,o=this.sortedIndexes;this.indexes=e,this.sortedIndexes=t;const r=l1(o,e);return this.renderer.renderIndexes(r),this._onChange.fire({indexes:e,browserEvent:i}),n}get(){return this.indexes}contains(e){return nI(this.sortedIndexes,e,uS)>=0}dispose(){Me(this._onChange)}}zr([rt],lf.prototype,"renderer",null);class x8 extends lf{constructor(e){super("selected"),this.setAriaSelected=e}renderIndex(e,t){super.renderIndex(e,t),this.setAriaSelected&&(this.contains(e)?t.setAttribute("aria-selected","true"):t.setAttribute("aria-selected","false"))}}class Bm{constructor(e,t,i){this.trait=e,this.view=t,this.identityProvider=i}splice(e,t,i){if(!this.identityProvider)return this.trait.splice(e,t,i.map(()=>!1));const n=this.trait.get().map(r=>this.identityProvider.getId(this.view.element(r)).toString()),o=i.map(r=>n.indexOf(this.identityProvider.getId(r).toString())>-1);this.trait.splice(e,t,o)}}function Io(s){return s.tagName==="INPUT"||s.tagName==="TEXTAREA"}function ba(s){return s.classList.contains("monaco-editor")?!0:s.classList.contains("monaco-list")||!s.parentElement?!1:ba(s.parentElement)}class A2{constructor(e,t,i){this.list=e,this.view=t,this.disposables=new se,this.multipleSelectionDisposables=new se,this.onKeyDown.filter(n=>n.keyCode===3).on(this.onEnter,this,this.disposables),this.onKeyDown.filter(n=>n.keyCode===16).on(this.onUpArrow,this,this.disposables),this.onKeyDown.filter(n=>n.keyCode===18).on(this.onDownArrow,this,this.disposables),this.onKeyDown.filter(n=>n.keyCode===11).on(this.onPageUpArrow,this,this.disposables),this.onKeyDown.filter(n=>n.keyCode===12).on(this.onPageDownArrow,this,this.disposables),this.onKeyDown.filter(n=>n.keyCode===9).on(this.onEscape,this,this.disposables),i.multipleSelectionSupport!==!1&&this.onKeyDown.filter(n=>(me?n.metaKey:n.ctrlKey)&&n.keyCode===31).on(this.onCtrlA,this,this.multipleSelectionDisposables)}get onKeyDown(){return K.chain(this.disposables.add(new Te(this.view.domNode,"keydown")).event).filter(e=>!Io(e.target)).map(e=>new He(e))}updateOptions(e){e.multipleSelectionSupport!==void 0&&(this.multipleSelectionDisposables.clear(),e.multipleSelectionSupport&&this.onKeyDown.filter(t=>(me?t.metaKey:t.ctrlKey)&&t.keyCode===31).on(this.onCtrlA,this,this.multipleSelectionDisposables))}onEnter(e){e.preventDefault(),e.stopPropagation(),this.list.setSelection(this.list.getFocus(),e.browserEvent)}onUpArrow(e){e.preventDefault(),e.stopPropagation(),this.list.focusPrevious(1,!1,e.browserEvent);const t=this.list.getFocus()[0];this.list.setAnchor(t),this.list.reveal(t),this.view.domNode.focus()}onDownArrow(e){e.preventDefault(),e.stopPropagation(),this.list.focusNext(1,!1,e.browserEvent);const t=this.list.getFocus()[0];this.list.setAnchor(t),this.list.reveal(t),this.view.domNode.focus()}onPageUpArrow(e){e.preventDefault(),e.stopPropagation(),this.list.focusPreviousPage(e.browserEvent);const t=this.list.getFocus()[0];this.list.setAnchor(t),this.list.reveal(t),this.view.domNode.focus()}onPageDownArrow(e){e.preventDefault(),e.stopPropagation(),this.list.focusNextPage(e.browserEvent);const t=this.list.getFocus()[0];this.list.setAnchor(t),this.list.reveal(t),this.view.domNode.focus()}onCtrlA(e){e.preventDefault(),e.stopPropagation(),this.list.setSelection($t(this.list.length),e.browserEvent),this.list.setAnchor(void 0),this.view.domNode.focus()}onEscape(e){this.list.getSelection().length&&(e.preventDefault(),e.stopPropagation(),this.list.setSelection([],e.browserEvent),this.list.setAnchor(void 0),this.view.domNode.focus())}dispose(){this.disposables.dispose(),this.multipleSelectionDisposables.dispose()}}zr([rt],A2.prototype,"onKeyDown",null);var Ca;(function(s){s[s.Idle=0]="Idle",s[s.Typing=1]="Typing"})(Ca||(Ca={}));const O2=new class{mightProducePrintableCharacter(s){return s.ctrlKey||s.metaKey||s.altKey?!1:s.keyCode>=31&&s.keyCode<=56||s.keyCode>=21&&s.keyCode<=30||s.keyCode>=93&&s.keyCode<=102||s.keyCode>=80&&s.keyCode<=90}};class I8{constructor(e,t,i,n){this.list=e,this.view=t,this.keyboardNavigationLabelProvider=i,this.delegate=n,this.enabled=!1,this.state=Ca.Idle,this.automaticKeyboardNavigation=!0,this.triggered=!1,this.previouslyFocused=-1,this.enabledDisposables=new se,this.disposables=new se,this.updateOptions(e.options)}updateOptions(e){(typeof e.enableKeyboardNavigation=="undefined"?!0:!!e.enableKeyboardNavigation)?this.enable():this.disable(),typeof e.automaticKeyboardNavigation!="undefined"&&(this.automaticKeyboardNavigation=e.automaticKeyboardNavigation)}enable(){if(this.enabled)return;const e=K.chain(this.enabledDisposables.add(new Te(this.view.domNode,"keydown")).event).filter(n=>!Io(n.target)).filter(()=>this.automaticKeyboardNavigation||this.triggered).map(n=>new He(n)).filter(n=>this.delegate.mightProducePrintableCharacter(n)).forEach(n=>n.preventDefault()).map(n=>n.browserEvent.key).event,t=K.debounce(e,()=>null,800);K.reduce(K.any(e,t),(n,o)=>o===null?null:(n||"")+o)(this.onInput,this,this.enabledDisposables),t(this.onClear,this,this.enabledDisposables),this.enabled=!0,this.triggered=!1}disable(){!this.enabled||(this.enabledDisposables.clear(),this.enabled=!1,this.triggered=!1)}onClear(){var e;const t=this.list.getFocus();if(t.length>0&&t[0]===this.previouslyFocused){const i=(e=this.list.options.accessibilityProvider)===null||e===void 0?void 0:e.getAriaLabel(this.list.element(t[0]));i&&Nf(i)}this.previouslyFocused=-1}onInput(e){if(!e){this.state=Ca.Idle,this.triggered=!1;return}const t=this.list.getFocus(),i=t.length>0?t[0]:0,n=this.state===Ca.Idle?1:0;this.state=Ca.Typing;for(let o=0;o!Io(n.target)).map(n=>new He(n)).filter(n=>n.keyCode===2&&!n.ctrlKey&&!n.metaKey&&!n.shiftKey&&!n.altKey).on(this.onTab,this,this.disposables)}onTab(e){if(e.target!==this.view.domNode)return;const t=this.list.getFocus();if(t.length===0)return;const i=this.view.domElement(t[0]);if(!i)return;const n=i.querySelector("[tabIndex]");if(!n||!(n instanceof HTMLElement)||n.tabIndex===-1)return;const o=window.getComputedStyle(n);o.visibility==="hidden"||o.display==="none"||(e.preventDefault(),e.stopPropagation(),n.focus())}dispose(){this.disposables.dispose()}}function P2(s){return me?s.browserEvent.metaKey:s.browserEvent.ctrlKey}function F2(s){return s.browserEvent.shiftKey}function D8(s){return s instanceof MouseEvent&&s.button===2}const dS={isSelectionSingleChangeEvent:P2,isSelectionRangeChangeEvent:F2};class B2{constructor(e){this.list=e,this.disposables=new se,this._onPointer=new M,this.onPointer=this._onPointer.event,e.options.multipleSelectionSupport!==!1&&(this.multipleSelectionController=this.list.options.multipleSelectionController||dS),this.mouseSupport=typeof e.options.mouseSupport=="undefined"||!!e.options.mouseSupport,this.mouseSupport&&(e.onMouseDown(this.onMouseDown,this,this.disposables),e.onContextMenu(this.onContextMenu,this,this.disposables),e.onMouseDblClick(this.onDoubleClick,this,this.disposables),e.onTouchStart(this.onMouseDown,this,this.disposables),this.disposables.add(Se.addTarget(e.getHTMLElement()))),K.any(e.onMouseClick,e.onMouseMiddleClick,e.onTap)(this.onViewPointer,this,this.disposables)}updateOptions(e){e.multipleSelectionSupport!==void 0&&(this.multipleSelectionController=void 0,e.multipleSelectionSupport&&(this.multipleSelectionController=this.list.options.multipleSelectionController||dS))}isSelectionSingleChangeEvent(e){return this.multipleSelectionController?this.multipleSelectionController.isSelectionSingleChangeEvent(e):!1}isSelectionRangeChangeEvent(e){return this.multipleSelectionController?this.multipleSelectionController.isSelectionRangeChangeEvent(e):!1}isSelectionChangeEvent(e){return this.isSelectionSingleChangeEvent(e)||this.isSelectionRangeChangeEvent(e)}onMouseDown(e){ba(e.browserEvent.target)||document.activeElement!==e.browserEvent.target&&this.list.domFocus()}onContextMenu(e){if(ba(e.browserEvent.target))return;const t=typeof e.index=="undefined"?[]:[e.index];this.list.setFocus(t,e.browserEvent)}onViewPointer(e){if(!this.mouseSupport||Io(e.browserEvent.target)||ba(e.browserEvent.target))return;const t=e.index;if(typeof t=="undefined"){this.list.setFocus([],e.browserEvent),this.list.setSelection([],e.browserEvent),this.list.setAnchor(void 0);return}if(this.isSelectionRangeChangeEvent(e))return this.changeSelection(e);if(this.isSelectionChangeEvent(e))return this.changeSelection(e);this.list.setFocus([t],e.browserEvent),this.list.setAnchor(t),D8(e.browserEvent)||this.list.setSelection([t],e.browserEvent),this._onPointer.fire(e)}onDoubleClick(e){if(Io(e.browserEvent.target)||ba(e.browserEvent.target)||this.isSelectionChangeEvent(e))return;const t=this.list.getFocus();this.list.setSelection(t,e.browserEvent)}changeSelection(e){const t=e.index;let i=this.list.getAnchor();if(this.isSelectionRangeChangeEvent(e)){if(typeof i=="undefined"){const h=this.list.getFocus()[0];i=h!=null?h:t,this.list.setAnchor(i)}const n=Math.min(i,t),o=Math.max(i,t),r=$t(n,o+1),a=this.list.getSelection(),l=M8(l1(a,[i]),i);if(l.length===0)return;const c=l1(r,R8(a,l));this.list.setSelection(c,e.browserEvent),this.list.setFocus([t],e.browserEvent)}else if(this.isSelectionSingleChangeEvent(e)){const n=this.list.getSelection(),o=n.filter(r=>r!==t);this.list.setFocus([t]),this.list.setAnchor(t),n.length===o.length?this.list.setSelection([...o,t],e.browserEvent):this.list.setSelection(o,e.browserEvent)}}dispose(){this.disposables.dispose()}}class V2{constructor(e,t){this.styleElement=e,this.selectorSuffix=t}style(e){const t=this.selectorSuffix&&`.${this.selectorSuffix}`,i=[];e.listBackground&&(e.listBackground.isOpaque()?i.push(`.monaco-list${t} .monaco-list-rows { background: ${e.listBackground}; }`):me||console.warn(`List with id '${this.selectorSuffix}' was styled with a non-opaque background color. This will break sub-pixel antialiasing.`)),e.listFocusBackground&&(i.push(`.monaco-list${t}:focus .monaco-list-row.focused { background-color: ${e.listFocusBackground}; }`),i.push(`.monaco-list${t}:focus .monaco-list-row.focused:hover { background-color: ${e.listFocusBackground}; }`)),e.listFocusForeground&&i.push(`.monaco-list${t}:focus .monaco-list-row.focused { color: ${e.listFocusForeground}; }`),e.listActiveSelectionBackground&&(i.push(`.monaco-list${t}:focus .monaco-list-row.selected { background-color: ${e.listActiveSelectionBackground}; }`),i.push(`.monaco-list${t}:focus .monaco-list-row.selected:hover { background-color: ${e.listActiveSelectionBackground}; }`)),e.listActiveSelectionForeground&&i.push(`.monaco-list${t}:focus .monaco-list-row.selected { color: ${e.listActiveSelectionForeground}; }`),e.listActiveSelectionIconForeground&&i.push(`.monaco-list${t}:focus .monaco-list-row.selected .codicon { color: ${e.listActiveSelectionIconForeground}; }`),e.listFocusAndSelectionBackground&&i.push(` + .monaco-drag-image, + .monaco-list${t}:focus .monaco-list-row.selected.focused { background-color: ${e.listFocusAndSelectionBackground}; } + `),e.listFocusAndSelectionForeground&&i.push(` + .monaco-drag-image, + .monaco-list${t}:focus .monaco-list-row.selected.focused { color: ${e.listFocusAndSelectionForeground}; } + `),e.listInactiveFocusForeground&&(i.push(`.monaco-list${t} .monaco-list-row.focused { color: ${e.listInactiveFocusForeground}; }`),i.push(`.monaco-list${t} .monaco-list-row.focused:hover { color: ${e.listInactiveFocusForeground}; }`)),e.listInactiveSelectionIconForeground&&i.push(`.monaco-list${t} .monaco-list-row.focused .codicon { color: ${e.listInactiveSelectionIconForeground}; }`),e.listInactiveFocusBackground&&(i.push(`.monaco-list${t} .monaco-list-row.focused { background-color: ${e.listInactiveFocusBackground}; }`),i.push(`.monaco-list${t} .monaco-list-row.focused:hover { background-color: ${e.listInactiveFocusBackground}; }`)),e.listInactiveSelectionBackground&&(i.push(`.monaco-list${t} .monaco-list-row.selected { background-color: ${e.listInactiveSelectionBackground}; }`),i.push(`.monaco-list${t} .monaco-list-row.selected:hover { background-color: ${e.listInactiveSelectionBackground}; }`)),e.listInactiveSelectionForeground&&i.push(`.monaco-list${t} .monaco-list-row.selected { color: ${e.listInactiveSelectionForeground}; }`),e.listHoverBackground&&i.push(`.monaco-list${t}:not(.drop-target) .monaco-list-row:hover:not(.selected):not(.focused) { background-color: ${e.listHoverBackground}; }`),e.listHoverForeground&&i.push(`.monaco-list${t} .monaco-list-row:hover:not(.selected):not(.focused) { color: ${e.listHoverForeground}; }`),e.listSelectionOutline&&i.push(`.monaco-list${t} .monaco-list-row.selected { outline: 1px dotted ${e.listSelectionOutline}; outline-offset: -1px; }`),e.listFocusOutline&&i.push(` + .monaco-drag-image, + .monaco-list${t}:focus .monaco-list-row.focused { outline: 1px solid ${e.listFocusOutline}; outline-offset: -1px; } + .monaco-workbench.context-menu-visible .monaco-list${t}.last-focused .monaco-list-row.focused { outline: 1px solid ${e.listFocusOutline}; outline-offset: -1px; } + `),e.listInactiveFocusOutline&&i.push(`.monaco-list${t} .monaco-list-row.focused { outline: 1px dotted ${e.listInactiveFocusOutline}; outline-offset: -1px; }`),e.listHoverOutline&&i.push(`.monaco-list${t} .monaco-list-row:hover { outline: 1px dashed ${e.listHoverOutline}; outline-offset: -1px; }`),e.listDropBackground&&i.push(` + .monaco-list${t}.drop-target, + .monaco-list${t} .monaco-list-rows.drop-target, + .monaco-list${t} .monaco-list-row.drop-target { background-color: ${e.listDropBackground} !important; color: inherit !important; } + `),e.listFilterWidgetBackground&&i.push(`.monaco-list-type-filter { background-color: ${e.listFilterWidgetBackground} }`),e.listFilterWidgetOutline&&i.push(`.monaco-list-type-filter { border: 1px solid ${e.listFilterWidgetOutline}; }`),e.listFilterWidgetNoMatchesOutline&&i.push(`.monaco-list-type-filter.no-matches { border: 1px solid ${e.listFilterWidgetNoMatchesOutline}; }`),e.listMatchesShadow&&i.push(`.monaco-list-type-filter { box-shadow: 1px 1px 1px ${e.listMatchesShadow}; }`),e.tableColumnsBorder&&i.push(` + .monaco-table:hover > .monaco-split-view2, + .monaco-table:hover > .monaco-split-view2 .monaco-sash.vertical::before { + border-color: ${e.tableColumnsBorder}; + }`),e.tableOddRowsBackgroundColor&&i.push(` + .monaco-table .monaco-list-row[data-parity=odd]:not(.focused):not(.selected):not(:hover) .monaco-table-tr, + .monaco-table .monaco-list:not(:focus) .monaco-list-row[data-parity=odd].focused:not(.selected):not(:hover) .monaco-table-tr, + .monaco-table .monaco-list:not(.focused) .monaco-list-row[data-parity=odd].focused:not(.selected):not(:hover) .monaco-table-tr { + background-color: ${e.tableOddRowsBackgroundColor}; + } + `),this.styleElement.textContent=i.join(` +`)}}const N8={listFocusBackground:O.fromHex("#7FB0D0"),listActiveSelectionBackground:O.fromHex("#0E639C"),listActiveSelectionForeground:O.fromHex("#FFFFFF"),listActiveSelectionIconForeground:O.fromHex("#FFFFFF"),listFocusAndSelectionBackground:O.fromHex("#094771"),listFocusAndSelectionForeground:O.fromHex("#FFFFFF"),listInactiveSelectionBackground:O.fromHex("#3F3F46"),listInactiveSelectionIconForeground:O.fromHex("#FFFFFF"),listHoverBackground:O.fromHex("#2A2D2E"),listDropBackground:O.fromHex("#383B3D"),treeIndentGuidesStroke:O.fromHex("#a9a9a9"),tableColumnsBorder:O.fromHex("#cccccc").transparent(.2),tableOddRowsBackgroundColor:O.fromHex("#cccccc").transparent(.04)},T8={keyboardSupport:!0,mouseSupport:!0,multipleSelectionSupport:!0,dnd:{getDragURI(){return null},onDragStart(){},onDragOver(){return!1},drop(){}}};function M8(s,e){const t=s.indexOf(e);if(t===-1)return[];const i=[];let n=t-1;for(;n>=0&&s[n]===e-(t-n);)i.push(s[n--]);for(i.reverse(),n=t;n=s.length)t.push(e[n++]);else if(n>=e.length)t.push(s[i++]);else if(s[i]===e[n]){t.push(s[i]),i++,n++;continue}else s[i]=s.length)t.push(e[n++]);else if(n>=e.length)t.push(s[i++]);else if(s[i]===e[n]){i++,n++;continue}else s[i]s-e;class A8{constructor(e,t){this._templateId=e,this.renderers=t}get templateId(){return this._templateId}renderTemplate(e){return this.renderers.map(t=>t.renderTemplate(e))}renderElement(e,t,i,n){let o=0;for(const r of this.renderers)r.renderElement(e,t,i[o++],n)}disposeElement(e,t,i,n){let o=0;for(const r of this.renderers)r.disposeElement&&r.disposeElement(e,t,i[o],n),o+=1}disposeTemplate(e){let t=0;for(const i of this.renderers)i.disposeTemplate(e[t++])}}class O8{constructor(e){this.accessibilityProvider=e,this.templateId="a18n"}renderTemplate(e){return e}renderElement(e,t,i){const n=this.accessibilityProvider.getAriaLabel(e);n?i.setAttribute("aria-label",n):i.removeAttribute("aria-label");const o=this.accessibilityProvider.getAriaLevel&&this.accessibilityProvider.getAriaLevel(e);typeof o=="number"?i.setAttribute("aria-level",`${o}`):i.removeAttribute("aria-level")}disposeTemplate(e){}}class P8{constructor(e,t){this.list=e,this.dnd=t}getDragElements(e){const t=this.list.getSelectedElements();return t.indexOf(e)>-1?t:[e]}getDragURI(e){return this.dnd.getDragURI(e)}getDragLabel(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e,t)}onDragStart(e,t){this.dnd.onDragStart&&this.dnd.onDragStart(e,t)}onDragOver(e,t,i,n){return this.dnd.onDragOver(e,t,i,n)}onDragLeave(e,t,i,n){var o,r;(r=(o=this.dnd).onDragLeave)===null||r===void 0||r.call(o,e,t,i,n)}onDragEnd(e){this.dnd.onDragEnd&&this.dnd.onDragEnd(e)}drop(e,t,i,n){this.dnd.drop(e,t,i,n)}}class Bs{constructor(e,t,i,n,o=T8){var r;this.user=e,this._options=o,this.focus=new lf("focused"),this.anchor=new lf("anchor"),this.eventBufferer=new Z1,this._ariaLabel="",this.disposables=new se,this._onDidDispose=new M,this.onDidDispose=this._onDidDispose.event;const a=this._options.accessibilityProvider&&this._options.accessibilityProvider.getWidgetRole?(r=this._options.accessibilityProvider)===null||r===void 0?void 0:r.getWidgetRole():"list";this.selection=new x8(a!=="listbox"),Nr(o,N8,!1);const l=[this.focus.renderer,this.selection.renderer];this.accessibilityProvider=o.accessibilityProvider,this.accessibilityProvider&&(l.push(new O8(this.accessibilityProvider)),this.accessibilityProvider.onDidChangeActiveDescendant&&this.accessibilityProvider.onDidChangeActiveDescendant(this.onDidChangeActiveDescendant,this,this.disposables)),n=n.map(h=>new A8(h.templateId,[...l,h]));const c=Object.assign(Object.assign({},o),{dnd:o.dnd&&new P8(this,o.dnd)});if(this.view=new Nn(t,i,n,c),this.view.domNode.setAttribute("role",a),o.styleController)this.styleController=o.styleController(this.view.domId);else{const h=xn(this.view.domNode);this.styleController=new V2(h,this.view.domId)}if(this.spliceable=new p8([new Bm(this.focus,this.view,o.identityProvider),new Bm(this.selection,this.view,o.identityProvider),new Bm(this.anchor,this.view,o.identityProvider),this.view]),this.disposables.add(this.focus),this.disposables.add(this.selection),this.disposables.add(this.anchor),this.disposables.add(this.view),this.disposables.add(this._onDidDispose),this.disposables.add(new E8(this,this.view)),(typeof o.keyboardSupport!="boolean"||o.keyboardSupport)&&(this.keyboardController=new A2(this,this.view,o),this.disposables.add(this.keyboardController)),o.keyboardNavigationLabelProvider){const h=o.keyboardNavigationDelegate||O2;this.typeLabelController=new I8(this,this.view,o.keyboardNavigationLabelProvider,h),this.disposables.add(this.typeLabelController)}this.mouseController=this.createMouseController(o),this.disposables.add(this.mouseController),this.onDidChangeFocus(this._onFocusChange,this,this.disposables),this.onDidChangeSelection(this._onSelectionChange,this,this.disposables),this.accessibilityProvider&&(this.ariaLabel=this.accessibilityProvider.getWidgetAriaLabel()),this._options.multipleSelectionSupport!==!1&&this.view.domNode.setAttribute("aria-multiselectable","true")}get onDidChangeFocus(){return K.map(this.eventBufferer.wrapEvent(this.focus.onChange),e=>this.toListEvent(e))}get onDidChangeSelection(){return K.map(this.eventBufferer.wrapEvent(this.selection.onChange),e=>this.toListEvent(e))}get domId(){return this.view.domId}get onMouseClick(){return this.view.onMouseClick}get onMouseDblClick(){return this.view.onMouseDblClick}get onMouseMiddleClick(){return this.view.onMouseMiddleClick}get onPointer(){return this.mouseController.onPointer}get onMouseDown(){return this.view.onMouseDown}get onTouchStart(){return this.view.onTouchStart}get onTap(){return this.view.onTap}get onContextMenu(){let e=!1;const t=K.chain(this.disposables.add(new Te(this.view.domNode,"keydown")).event).map(o=>new He(o)).filter(o=>e=o.keyCode===58||o.shiftKey&&o.keyCode===68).map(rv).filter(()=>!1).event,i=K.chain(this.disposables.add(new Te(this.view.domNode,"keyup")).event).forEach(()=>e=!1).map(o=>new He(o)).filter(o=>o.keyCode===58||o.shiftKey&&o.keyCode===68).map(rv).map(({browserEvent:o})=>{const r=this.getFocus(),a=r.length?r[0]:void 0,l=typeof a!="undefined"?this.view.element(a):void 0,c=typeof a!="undefined"?this.view.domElement(a):this.view.domNode;return{index:a,element:l,anchor:c,browserEvent:o}}).event,n=K.chain(this.view.onContextMenu).filter(o=>!e).map(({element:o,index:r,browserEvent:a})=>({element:o,index:r,anchor:{x:a.pageX+1,y:a.pageY},browserEvent:a})).event;return K.any(t,i,n)}get onKeyDown(){return this.disposables.add(new Te(this.view.domNode,"keydown")).event}get onDidFocus(){return K.signal(this.disposables.add(new Te(this.view.domNode,"focus",!0)).event)}createMouseController(e){return new B2(this)}updateOptions(e={}){var t;this._options=Object.assign(Object.assign({},this._options),e),this.typeLabelController&&this.typeLabelController.updateOptions(this._options),this._options.multipleSelectionController!==void 0&&(this._options.multipleSelectionSupport?this.view.domNode.setAttribute("aria-multiselectable","true"):this.view.domNode.removeAttribute("aria-multiselectable")),this.mouseController.updateOptions(e),(t=this.keyboardController)===null||t===void 0||t.updateOptions(e),this.view.updateOptions(e)}get options(){return this._options}splice(e,t,i=[]){if(e<0||e>this.view.length)throw new Fo(this.user,`Invalid start index: ${e}`);if(t<0)throw new Fo(this.user,`Invalid delete count: ${t}`);t===0&&i.length===0||this.eventBufferer.bufferEvents(()=>this.spliceable.splice(e,t,i))}rerender(){this.view.rerender()}element(e){return this.view.element(e)}get length(){return this.view.length}get contentHeight(){return this.view.contentHeight}get scrollTop(){return this.view.getScrollTop()}set scrollTop(e){this.view.setScrollTop(e)}get ariaLabel(){return this._ariaLabel}set ariaLabel(e){this._ariaLabel=e,this.view.domNode.setAttribute("aria-label",e)}domFocus(){this.view.domNode.focus({preventScroll:!0})}layout(e,t){this.view.layout(e,t)}setSelection(e,t){for(const i of e)if(i<0||i>=this.length)throw new Fo(this.user,`Invalid index ${i}`);this.selection.set(e,t)}getSelection(){return this.selection.get()}getSelectedElements(){return this.getSelection().map(e=>this.view.element(e))}setAnchor(e){if(typeof e=="undefined"){this.anchor.set([]);return}if(e<0||e>=this.length)throw new Fo(this.user,`Invalid index ${e}`);this.anchor.set([e])}getAnchor(){return iy(this.anchor.get(),void 0)}getAnchorElement(){const e=this.getAnchor();return typeof e=="undefined"?void 0:this.element(e)}setFocus(e,t){for(const i of e)if(i<0||i>=this.length)throw new Fo(this.user,`Invalid index ${i}`);this.focus.set(e,t)}focusNext(e=1,t=!1,i,n){if(this.length===0)return;const o=this.focus.get(),r=this.findNextIndex(o.length>0?o[0]+e:0,t,n);r>-1&&this.setFocus([r],i)}focusPrevious(e=1,t=!1,i,n){if(this.length===0)return;const o=this.focus.get(),r=this.findPreviousIndex(o.length>0?o[0]-e:0,t,n);r>-1&&this.setFocus([r],i)}focusNextPage(e,t){return hS(this,void 0,void 0,function*(){let i=this.view.indexAt(this.view.getScrollTop()+this.view.renderHeight);i=i===0?0:i-1;const n=this.view.element(i),o=this.getFocusedElements()[0];if(o!==n){const r=this.findPreviousIndex(i,!1,t);r>-1&&o!==this.view.element(r)?this.setFocus([r],e):this.setFocus([i],e)}else{const r=this.view.getScrollTop();this.view.setScrollTop(r+this.view.renderHeight-this.view.elementHeight(i)),this.view.getScrollTop()!==r&&(this.setFocus([]),yield Mc(0),yield this.focusNextPage(e,t))}})}focusPreviousPage(e,t){return hS(this,void 0,void 0,function*(){let i;const n=this.view.getScrollTop();n===0?i=this.view.indexAt(n):i=this.view.indexAfter(n-1);const o=this.view.element(i),r=this.getFocusedElements()[0];if(r!==o){const a=this.findNextIndex(i,!1,t);a>-1&&r!==this.view.element(a)?this.setFocus([a],e):this.setFocus([i],e)}else{const a=n;this.view.setScrollTop(n-this.view.renderHeight),this.view.getScrollTop()!==a&&(this.setFocus([]),yield Mc(0),yield this.focusPreviousPage(e,t))}})}focusLast(e,t){if(this.length===0)return;const i=this.findPreviousIndex(this.length-1,!1,t);i>-1&&this.setFocus([i],e)}focusFirst(e,t){this.focusNth(0,e,t)}focusNth(e,t,i){if(this.length===0)return;const n=this.findNextIndex(e,!1,i);n>-1&&this.setFocus([n],t)}findNextIndex(e,t=!1,i){for(let n=0;n=this.length&&!t)return-1;if(e=e%this.length,!i||i(this.element(e)))return e;e++}return-1}findPreviousIndex(e,t=!1,i){for(let n=0;nthis.view.element(e))}reveal(e,t){if(e<0||e>=this.length)throw new Fo(this.user,`Invalid index ${e}`);const i=this.view.getScrollTop(),n=this.view.elementTop(e),o=this.view.elementHeight(e);if(mh(t)){const r=o-this.view.renderHeight;this.view.setScrollTop(r*mi(t,0,1)+n)}else{const r=n+o,a=i+this.view.renderHeight;n=a||(n=a&&o>=this.view.renderHeight?this.view.setScrollTop(n):r>=a&&this.view.setScrollTop(r-this.view.renderHeight))}}getRelativeTop(e){if(e<0||e>=this.length)throw new Fo(this.user,`Invalid index ${e}`);const t=this.view.getScrollTop(),i=this.view.elementTop(e),n=this.view.elementHeight(e);if(it+this.view.renderHeight)return null;const o=n-this.view.renderHeight;return Math.abs((t-i)/o)}getHTMLElement(){return this.view.domNode}style(e){this.styleController.style(e)}toListEvent({indexes:e,browserEvent:t}){return{indexes:e,elements:e.map(i=>this.view.element(i)),browserEvent:t}}_onFocusChange(){const e=this.focus.get();this.view.domNode.classList.toggle("element-focused",e.length>0),this.onDidChangeActiveDescendant()}onDidChangeActiveDescendant(){var e;const t=this.focus.get();if(t.length>0){let i;!((e=this.accessibilityProvider)===null||e===void 0)&&e.getActiveDescendantId&&(i=this.accessibilityProvider.getActiveDescendantId(this.view.element(t[0]))),this.view.domNode.setAttribute("aria-activedescendant",i||this.view.getElementDomId(t[0]))}else this.view.domNode.removeAttribute("aria-activedescendant")}_onSelectionChange(){const e=this.selection.get();this.view.domNode.classList.toggle("selection-none",e.length===0),this.view.domNode.classList.toggle("selection-single",e.length===1),this.view.domNode.classList.toggle("selection-multiple",e.length>1)}dispose(){this._onDidDispose.fire(),this.disposables.dispose(),this._onDidDispose.dispose()}}zr([rt],Bs.prototype,"onDidChangeFocus",null);zr([rt],Bs.prototype,"onDidChangeSelection",null);zr([rt],Bs.prototype,"onContextMenu",null);zr([rt],Bs.prototype,"onKeyDown",null);zr([rt],Bs.prototype,"onDidFocus",null);class F8{constructor(e,t){this.renderer=e,this.modelProvider=t}get templateId(){return this.renderer.templateId}renderTemplate(e){return{data:this.renderer.renderTemplate(e),disposable:W.None}}renderElement(e,t,i,n){if(i.disposable&&i.disposable.dispose(),!i.data)return;const o=this.modelProvider();if(o.isResolved(e))return this.renderer.renderElement(o.get(e),e,i.data,n);const r=new ml,a=o.resolve(e,r.token);i.disposable={dispose:()=>r.cancel()},this.renderer.renderPlaceholder(e,i.data),a.then(l=>this.renderer.renderElement(l,e,i.data,n))}disposeTemplate(e){e.disposable&&(e.disposable.dispose(),e.disposable=void 0),e.data&&(this.renderer.disposeTemplate(e.data),e.data=void 0)}}class B8{constructor(e,t){this.modelProvider=e,this.accessibilityProvider=t}getWidgetAriaLabel(){return this.accessibilityProvider.getWidgetAriaLabel()}getAriaLabel(e){const t=this.modelProvider();return t.isResolved(e)?this.accessibilityProvider.getAriaLabel(t.get(e)):null}}function V8(s,e){return Object.assign(Object.assign({},e),{accessibilityProvider:e.accessibilityProvider&&new B8(s,e.accessibilityProvider)})}class W8{constructor(e,t,i,n,o={}){const r=()=>this.model,a=n.map(l=>new F8(l,r));this.list=new Bs(e,t,i,a,V8(r,o))}updateOptions(e){this.list.updateOptions(e)}getHTMLElement(){return this.list.getHTMLElement()}get onDidFocus(){return this.list.onDidFocus}get onDidDispose(){return this.list.onDidDispose}get onMouseDblClick(){return K.map(this.list.onMouseDblClick,({element:e,index:t,browserEvent:i})=>({element:e===void 0?void 0:this._model.get(e),index:t,browserEvent:i}))}get onPointer(){return K.map(this.list.onPointer,({element:e,index:t,browserEvent:i})=>({element:e===void 0?void 0:this._model.get(e),index:t,browserEvent:i}))}get onDidChangeSelection(){return K.map(this.list.onDidChangeSelection,({elements:e,indexes:t,browserEvent:i})=>({elements:e.map(n=>this._model.get(n)),indexes:t,browserEvent:i}))}get model(){return this._model}set model(e){this._model=e,this.list.splice(0,this.list.length,$t(e.length))}getFocus(){return this.list.getFocus()}getSelection(){return this.list.getSelection()}getSelectedElements(){return this.getSelection().map(e=>this.model.get(e))}style(e){this.list.style(e)}dispose(){this.list.dispose()}}const H8={separatorBorder:O.transparent};class W2{constructor(e,t,i,n){this.container=e,this.view=t,this.disposable=n,this._cachedVisibleSize=void 0,typeof i=="number"?(this._size=i,this._cachedVisibleSize=void 0,e.classList.add("visible")):(this._size=0,this._cachedVisibleSize=i.cachedVisibleSize)}set size(e){this._size=e}get size(){return this._size}get visible(){return typeof this._cachedVisibleSize=="undefined"}setVisible(e,t){e!==this.visible&&(e?(this.size=mi(this._cachedVisibleSize,this.viewMinimumSize,this.viewMaximumSize),this._cachedVisibleSize=void 0):(this._cachedVisibleSize=typeof t=="number"?t:this.size,this.size=0),this.container.classList.toggle("visible",e),this.view.setVisible&&this.view.setVisible(e))}get minimumSize(){return this.visible?this.view.minimumSize:0}get viewMinimumSize(){return this.view.minimumSize}get maximumSize(){return this.visible?this.view.maximumSize:0}get viewMaximumSize(){return this.view.maximumSize}get priority(){return this.view.priority}get snap(){return!!this.view.snap}set enabled(e){this.container.style.pointerEvents=e?"":"none"}layout(e,t){this.layoutContainer(e),this.view.layout(this.size,e,t)}dispose(){return this.disposable.dispose(),this.view}}class z8 extends W2{layoutContainer(e){this.container.style.top=`${e}px`,this.container.style.height=`${this.size}px`}}class U8 extends W2{layoutContainer(e){this.container.style.left=`${e}px`,this.container.style.width=`${this.size}px`}}var ws;(function(s){s[s.Idle=0]="Idle",s[s.Busy=1]="Busy"})(ws||(ws={}));var fS;(function(s){s.Distribute={type:"distribute"};function e(i){return{type:"split",index:i}}s.Split=e;function t(i){return{type:"invisible",cachedVisibleSize:i}}s.Invisible=t})(fS||(fS={}));class $8 extends W{constructor(e,t={}){var i,n,o,r,a;super(),this.size=0,this.contentSize=0,this.proportions=void 0,this.viewItems=[],this.sashItems=[],this.state=ws.Idle,this._onDidSashChange=this._register(new M),this._onDidSashReset=this._register(new M),this._startSnappingEnabled=!0,this._endSnappingEnabled=!0,this.onDidSashChange=this._onDidSashChange.event,this.onDidSashReset=this._onDidSashReset.event,this.orientation=(i=t.orientation)!==null&&i!==void 0?i:0,this.inverseAltBehavior=(n=t.inverseAltBehavior)!==null&&n!==void 0?n:!1,this.proportionalLayout=(o=t.proportionalLayout)!==null&&o!==void 0?o:!0,this.getSashOrthogonalSize=t.getSashOrthogonalSize,this.el=document.createElement("div"),this.el.classList.add("monaco-split-view2"),this.el.classList.add(this.orientation===0?"vertical":"horizontal"),e.appendChild(this.el),this.sashContainer=U(this.el,J(".sash-container")),this.viewContainer=J(".split-view-container"),this.scrollable=new Eh({forceIntegerValues:!0,smoothScrollDuration:125,scheduleAtNextAnimationFrame:kn}),this.scrollableElement=this._register(new W0(this.viewContainer,{vertical:this.orientation===0?(r=t.scrollbarVisibility)!==null&&r!==void 0?r:1:2,horizontal:this.orientation===1?(a=t.scrollbarVisibility)!==null&&a!==void 0?a:1:2},this.scrollable)),this.onDidScroll=this.scrollableElement.onScroll,this._register(this.onDidScroll(l=>{this.viewContainer.scrollTop=l.scrollTop,this.viewContainer.scrollLeft=l.scrollLeft})),U(this.el,this.scrollableElement.getDomNode()),this.style(t.styles||H8),t.descriptor&&(this.size=t.descriptor.size,t.descriptor.views.forEach((l,c)=>{const h=vn(l.visible)||l.visible?l.size:{type:"invisible",cachedVisibleSize:l.size},d=l.view;this.doAddView(d,h,c,!0)}),this.contentSize=this.viewItems.reduce((l,c)=>l+c.size,0),this.saveProportions())}get orthogonalStartSash(){return this._orthogonalStartSash}get orthogonalEndSash(){return this._orthogonalEndSash}get startSnappingEnabled(){return this._startSnappingEnabled}get endSnappingEnabled(){return this._endSnappingEnabled}set orthogonalStartSash(e){for(const t of this.sashItems)t.sash.orthogonalStartSash=e;this._orthogonalStartSash=e}set orthogonalEndSash(e){for(const t of this.sashItems)t.sash.orthogonalEndSash=e;this._orthogonalEndSash=e}set startSnappingEnabled(e){this._startSnappingEnabled!==e&&(this._startSnappingEnabled=e,this.updateSashEnablement())}set endSnappingEnabled(e){this._endSnappingEnabled!==e&&(this._endSnappingEnabled=e,this.updateSashEnablement())}style(e){e.separatorBorder.isTransparent()?(this.el.classList.remove("separator-border"),this.el.style.removeProperty("--separator-border")):(this.el.classList.add("separator-border"),this.el.style.setProperty("--separator-border",e.separatorBorder.toString()))}addView(e,t,i=this.viewItems.length,n){this.doAddView(e,t,i,n)}layout(e,t){const i=Math.max(this.size,this.contentSize);if(this.size=e,this.layoutContext=t,this.proportions)for(let n=0;nthis.viewItems[a].priority===1),r=n.filter(a=>this.viewItems[a].priority===2);this.resize(this.viewItems.length-1,e-i,void 0,o,r)}this.distributeEmptySpace(),this.layoutViews()}saveProportions(){this.proportionalLayout&&this.contentSize>0&&(this.proportions=this.viewItems.map(e=>e.size/this.contentSize))}onSashStart({sash:e,start:t,alt:i}){for(const a of this.viewItems)a.enabled=!1;const n=this.sashItems.findIndex(a=>a.sash===e),o=or(V(document.body,"keydown",a=>r(this.sashDragState.current,a.altKey)),V(document.body,"keyup",()=>r(this.sashDragState.current,!1))),r=(a,l)=>{const c=this.viewItems.map(m=>m.size);let h=Number.NEGATIVE_INFINITY,d=Number.POSITIVE_INFINITY;if(this.inverseAltBehavior&&(l=!l),l)if(n===this.sashItems.length-1){const _=this.viewItems[n];h=(_.minimumSize-_.size)/2,d=(_.maximumSize-_.size)/2}else{const _=this.viewItems[n+1];h=(_.size-_.maximumSize)/2,d=(_.size-_.minimumSize)/2}let u,f;if(!l){const m=$t(n,-1),_=$t(n+1,this.viewItems.length),b=m.reduce((y,I)=>y+(this.viewItems[I].minimumSize-c[I]),0),w=m.reduce((y,I)=>y+(this.viewItems[I].viewMaximumSize-c[I]),0),C=_.length===0?Number.POSITIVE_INFINITY:_.reduce((y,I)=>y+(c[I]-this.viewItems[I].minimumSize),0),v=_.length===0?Number.NEGATIVE_INFINITY:_.reduce((y,I)=>y+(c[I]-this.viewItems[I].viewMaximumSize),0),S=Math.max(b,v),k=Math.min(C,w),x=this.findFirstSnapIndex(m),L=this.findFirstSnapIndex(_);if(typeof x=="number"){const y=this.viewItems[x],I=Math.floor(y.viewMinimumSize/2);u={index:x,limitDelta:y.visible?S-I:S+I,size:y.size}}if(typeof L=="number"){const y=this.viewItems[L],I=Math.floor(y.viewMinimumSize/2);f={index:L,limitDelta:y.visible?k+I:k-I,size:y.size}}}this.sashDragState={start:a,current:a,index:n,sizes:c,minDelta:h,maxDelta:d,alt:l,snapBefore:u,snapAfter:f,disposable:o}};r(t,i)}onSashChange({current:e}){const{index:t,start:i,sizes:n,alt:o,minDelta:r,maxDelta:a,snapBefore:l,snapAfter:c}=this.sashDragState;this.sashDragState.current=e;const h=e-i,d=this.resize(t,h,n,void 0,void 0,r,a,l,c);if(o){const u=t===this.sashItems.length-1,f=this.viewItems.map(v=>v.size),m=u?t:t+1,_=this.viewItems[m],b=_.size-_.maximumSize,w=_.size-_.minimumSize,C=u?t-1:t+1;this.resize(C,-d,f,void 0,void 0,b,w)}this.distributeEmptySpace(),this.layoutViews()}onSashEnd(e){this._onDidSashChange.fire(e),this.sashDragState.disposable.dispose(),this.saveProportions();for(const t of this.viewItems)t.enabled=!0}onViewChange(e,t){const i=this.viewItems.indexOf(e);i<0||i>=this.viewItems.length||(t=typeof t=="number"?t:e.size,t=mi(t,e.minimumSize,e.maximumSize),this.inverseAltBehavior&&i>0?(this.resize(i-1,Math.floor((e.size-t)/2)),this.distributeEmptySpace(),this.layoutViews()):(e.size=t,this.relayout([i],void 0)))}resizeView(e,t){if(this.state!==ws.Idle)throw new Error("Cant modify splitview");if(this.state=ws.Busy,e<0||e>=this.viewItems.length)return;const i=$t(this.viewItems.length).filter(a=>a!==e),n=[...i.filter(a=>this.viewItems[a].priority===1),e],o=i.filter(a=>this.viewItems[a].priority===2),r=this.viewItems[e];t=Math.round(t),t=mi(t,r.minimumSize,Math.min(r.maximumSize,this.size)),r.size=t,this.relayout(n,o),this.state=ws.Idle}distributeViewSizes(){const e=[];let t=0;for(const a of this.viewItems)a.maximumSize-a.minimumSize>0&&(e.push(a),t+=a.size);const i=Math.floor(t/e.length);for(const a of e)a.size=mi(i,a.minimumSize,a.maximumSize);const n=$t(this.viewItems.length),o=n.filter(a=>this.viewItems[a].priority===1),r=n.filter(a=>this.viewItems[a].priority===2);this.relayout(o,r)}getViewSize(e){return e<0||e>=this.viewItems.length?-1:this.viewItems[e].size}doAddView(e,t,i=this.viewItems.length,n){if(this.state!==ws.Idle)throw new Error("Cant modify splitview");this.state=ws.Busy;const o=J(".split-view-view");i===this.viewItems.length?this.viewContainer.appendChild(o):this.viewContainer.insertBefore(o,this.viewContainer.children.item(i));const r=e.onDidChange(u=>this.onViewChange(h,u)),a=Pe(()=>this.viewContainer.removeChild(o)),l=or(r,a);let c;typeof t=="number"?c=t:t.type==="split"?c=this.getViewSize(t.index)/2:t.type==="invisible"?c={cachedVisibleSize:t.cachedVisibleSize}:c=e.minimumSize;const h=this.orientation===0?new z8(o,e,c,l):new U8(o,e,c,l);if(this.viewItems.splice(i,0,h),this.viewItems.length>1){let u={orthogonalStartSash:this.orthogonalStartSash,orthogonalEndSash:this.orthogonalEndSash};const f=this.orientation===0?new gi(this.sashContainer,{getHorizontalSashTop:y=>this.getSashPosition(y),getHorizontalSashWidth:this.getSashOrthogonalSize},Object.assign(Object.assign({},u),{orientation:1})):new gi(this.sashContainer,{getVerticalSashLeft:y=>this.getSashPosition(y),getVerticalSashHeight:this.getSashOrthogonalSize},Object.assign(Object.assign({},u),{orientation:0})),m=this.orientation===0?y=>({sash:f,start:y.startY,current:y.currentY,alt:y.altKey}):y=>({sash:f,start:y.startX,current:y.currentX,alt:y.altKey}),b=K.map(f.onDidStart,m)(this.onSashStart,this),C=K.map(f.onDidChange,m)(this.onSashChange,this),S=K.map(f.onDidEnd,()=>this.sashItems.findIndex(y=>y.sash===f))(this.onSashEnd,this),k=f.onDidReset(()=>{const y=this.sashItems.findIndex(F=>F.sash===f),I=$t(y,-1),R=$t(y+1,this.viewItems.length),T=this.findFirstSnapIndex(I),P=this.findFirstSnapIndex(R);typeof T=="number"&&!this.viewItems[T].visible||typeof P=="number"&&!this.viewItems[P].visible||this._onDidSashReset.fire(y)}),x=or(b,C,S,k,f),L={sash:f,disposable:x};this.sashItems.splice(i-1,0,L)}o.appendChild(e.element);let d;typeof t!="number"&&t.type==="split"&&(d=[t.index]),n||this.relayout([i],d),this.state=ws.Idle,!n&&typeof t!="number"&&t.type==="distribute"&&this.distributeViewSizes()}relayout(e,t){const i=this.viewItems.reduce((n,o)=>n+o.size,0);this.resize(this.viewItems.length-1,this.size-i,void 0,e,t),this.distributeEmptySpace(),this.layoutViews(),this.saveProportions()}resize(e,t,i=this.viewItems.map(h=>h.size),n,o,r=Number.NEGATIVE_INFINITY,a=Number.POSITIVE_INFINITY,l,c){if(e<0||e>=this.viewItems.length)return 0;const h=$t(e,-1),d=$t(e+1,this.viewItems.length);if(o)for(const L of o)Sg(h,L),Sg(d,L);if(n)for(const L of n)Vh(h,L),Vh(d,L);const u=h.map(L=>this.viewItems[L]),f=h.map(L=>i[L]),m=d.map(L=>this.viewItems[L]),_=d.map(L=>i[L]),b=h.reduce((L,y)=>L+(this.viewItems[y].minimumSize-i[y]),0),w=h.reduce((L,y)=>L+(this.viewItems[y].maximumSize-i[y]),0),C=d.length===0?Number.POSITIVE_INFINITY:d.reduce((L,y)=>L+(i[y]-this.viewItems[y].minimumSize),0),v=d.length===0?Number.NEGATIVE_INFINITY:d.reduce((L,y)=>L+(i[y]-this.viewItems[y].maximumSize),0),S=Math.max(b,v,r),k=Math.min(C,w,a);let x=!1;if(l){const L=this.viewItems[l.index],y=t>=l.limitDelta;x=y!==L.visible,L.setVisible(y,l.size)}if(!x&&c){const L=this.viewItems[c.index],y=ta+l.size,0);let i=this.size-t;const n=$t(this.viewItems.length-1,-1),o=n.filter(a=>this.viewItems[a].priority===1),r=n.filter(a=>this.viewItems[a].priority===2);for(const a of r)Sg(n,a);for(const a of o)Vh(n,a);typeof e=="number"&&Vh(n,e);for(let a=0;i!==0&&at+i.size,0);let e=0;for(const t of this.viewItems)t.layout(e,this.layoutContext),e+=t.size;this.sashItems.forEach(t=>t.sash.layout()),this.updateSashEnablement(),this.updateScrollableElement()}updateScrollableElement(){this.orientation===0?this.scrollableElement.setScrollDimensions({height:this.size,scrollHeight:this.contentSize}):this.scrollableElement.setScrollDimensions({width:this.size,scrollWidth:this.contentSize})}updateSashEnablement(){let e=!1;const t=this.viewItems.map(l=>e=l.size-l.minimumSize>0||e);e=!1;const i=this.viewItems.map(l=>e=l.maximumSize-l.size>0||e),n=[...this.viewItems].reverse();e=!1;const o=n.map(l=>e=l.size-l.minimumSize>0||e).reverse();e=!1;const r=n.map(l=>e=l.maximumSize-l.size>0||e).reverse();let a=0;for(let l=0;l0||this.startSnappingEnabled)?c.state=1:C&&t[l]&&(a0)return;if(!i.visible&&i.snap)return t}}dispose(){super.dispose(),Me(this.viewItems),this.viewItems=[],this.sashItems.forEach(e=>e.disposable.dispose()),this.sashItems=[]}}class Ah{constructor(e,t,i){this.columns=e,this.getColumnSize=i,this.templateId=Ah.TemplateId,this.renderedTemplates=new Set;const n=new Map(t.map(o=>[o.templateId,o]));this.renderers=[];for(const o of e){const r=n.get(o.templateId);if(!r)throw new Error(`Table cell renderer for template id ${o.templateId} not found.`);this.renderers.push(r)}}renderTemplate(e){const t=U(e,J(".monaco-table-tr")),i=[],n=[];for(let r=0;rnew K8(h,d)),l={size:a.reduce((h,d)=>h+d.column.weight,0),views:a.map(h=>({size:h.column.weight,view:h}))};this.splitview=this.disposables.add(new $8(this.domNode,{orientation:1,scrollbarVisibility:2,getSashOrthogonalSize:()=>this.cachedHeight,descriptor:l})),this.splitview.el.style.height=`${i.headerRowHeight}px`,this.splitview.el.style.lineHeight=`${i.headerRowHeight}px`;const c=new Ah(n,o,h=>this.splitview.getViewSize(h));this.list=this.disposables.add(new Bs(e,this.domNode,j8(i),[c],r)),K.any(...a.map(h=>h.onDidLayout))(([h,d])=>c.layoutColumn(h,d),null,this.disposables),this.splitview.onDidSashReset(h=>{const d=n.reduce((f,m)=>f+m.weight,0),u=n[h].weight/d*this.cachedWidth;this.splitview.resizeView(h,u)},null,this.disposables),this.styleElement=xn(this.domNode),this.style({})}get onDidChangeFocus(){return this.list.onDidChangeFocus}get onDidChangeSelection(){return this.list.onDidChangeSelection}get onMouseDblClick(){return this.list.onMouseDblClick}get onPointer(){return this.list.onPointer}get onDidFocus(){return this.list.onDidFocus}get onDidDispose(){return this.list.onDidDispose}updateOptions(e){this.list.updateOptions(e)}splice(e,t,i=[]){this.list.splice(e,t,i)}getHTMLElement(){return this.domNode}style(e){const t=[];t.push(`.monaco-table.${this.domId} > .monaco-split-view2 .monaco-sash.vertical::before { + top: ${this.virtualDelegate.headerRowHeight+1}px; + height: calc(100% - ${this.virtualDelegate.headerRowHeight}px); + }`),this.styleElement.textContent=t.join(` +`),this.list.style(e)}getSelectedElements(){return this.list.getSelectedElements()}getSelection(){return this.list.getSelection()}getFocus(){return this.list.getFocus()}dispose(){this.disposables.dispose()}}rg.InstanceCount=0;var Lc;(function(s){s[s.Unknown=0]="Unknown",s[s.Twistie=1]="Twistie",s[s.Element=2]="Element"})(Lc||(Lc={}));class Ni extends Error{constructor(e,t){super(`TreeError [${e}] ${t}`)}}class vb{constructor(e){this.fn=e,this._map=new WeakMap}map(e){let t=this._map.get(e);return t||(t=this.fn(e),this._map.set(e,t)),t}}function Sb(s){return typeof s=="object"&&"visibility"in s&&"data"in s}function rh(s){switch(s){case!0:return 1;case!1:return 0;default:return s}}function Vm(s){return typeof s.collapsible=="boolean"}class q8{constructor(e,t,i,n={}){this.user=e,this.list=t,this.rootRef=[],this.eventBufferer=new Z1,this._onDidChangeCollapseState=new M,this.onDidChangeCollapseState=this.eventBufferer.wrapEvent(this._onDidChangeCollapseState.event),this._onDidChangeRenderNodeCount=new M,this.onDidChangeRenderNodeCount=this.eventBufferer.wrapEvent(this._onDidChangeRenderNodeCount.event),this._onDidSplice=new M,this.onDidSplice=this._onDidSplice.event,this.refilterDelayer=new bl(zy),this.collapseByDefault=typeof n.collapseByDefault=="undefined"?!1:n.collapseByDefault,this.filter=n.filter,this.autoExpandSingleChildren=typeof n.autoExpandSingleChildren=="undefined"?!1:n.autoExpandSingleChildren,this.root={parent:void 0,element:i,children:[],depth:0,visibleChildrenCount:0,visibleChildIndex:-1,collapsible:!1,collapsed:!1,renderNodeCount:0,visibility:1,visible:!0,filterData:void 0}}splice(e,t,i=he.empty(),n={}){if(e.length===0)throw new Ni(this.user,"Invalid tree location");n.diffIdentityProvider?this.spliceSmart(n.diffIdentityProvider,e,t,i,n):this.spliceSimple(e,t,i,n)}spliceSmart(e,t,i,n,o,r){var a;n===void 0&&(n=he.empty()),r===void 0&&(r=(a=o.diffDepth)!==null&&a!==void 0?a:0);const{parentNode:l}=this.getParentNodeWithListIndex(t);if(!l.lastDiffIds)return this.spliceSimple(t,i,n,o);const c=[...n],h=t[t.length-1],d=new ks({getElements:()=>l.lastDiffIds},{getElements:()=>[...l.children.slice(0,h),...c,...l.children.slice(h+i)].map(b=>e.getId(b.element).toString())}).ComputeDiff(!1);if(d.quitEarly)return l.lastDiffIds=void 0,this.spliceSimple(t,i,c,o);const u=t.slice(0,-1),f=(b,w,C)=>{if(r>0)for(let v=0;vC.originalStart-w.originalStart))f(m,_,m-(b.originalStart+b.originalLength)),m=b.originalStart,_=b.modifiedStart-h,this.spliceSimple([...u,m],b.originalLength,he.slice(c,_,_+b.modifiedLength),o);f(m,_,m)}spliceSimple(e,t,i=he.empty(),{onDidCreateNode:n,onDidDeleteNode:o,diffIdentityProvider:r}){const{parentNode:a,listIndex:l,revealed:c,visible:h}=this.getParentNodeWithListIndex(e),d=[],u=he.map(i,L=>this.createTreeNode(L,a,a.visible?1:0,c,d,n)),f=e[e.length-1],m=a.children.length>0;let _=0;for(let L=f;L>=0&&Lr.getId(L.element).toString())):a.lastDiffIds=a.children.map(L=>r.getId(L.element).toString()):a.lastDiffIds=void 0;let S=0;for(const L of v)L.visible&&S++;if(S!==0)for(let L=f+b.length;Ly+(I.visible?I.renderNodeCount:0),0);this._updateAncestorsRenderNodeCount(a,C-L),this.list.splice(l,L,d)}if(v.length>0&&o){const L=y=>{o(y),y.children.forEach(L)};v.forEach(L)}this._onDidSplice.fire({insertedNodes:b,deletedNodes:v});const k=a.children.length>0;m!==k&&this.setCollapsible(e.slice(0,-1),k);let x=a;for(;x;){if(x.visibility===2){this.refilterDelayer.trigger(()=>this.refilter());break}x=x.parent}}rerender(e){if(e.length===0)throw new Ni(this.user,"Invalid tree location");const{node:t,listIndex:i,revealed:n}=this.getTreeNodeWithListIndex(e);t.visible&&n&&this.list.splice(i,1,[t])}has(e){return this.hasTreeNode(e)}getListIndex(e){const{listIndex:t,visible:i,revealed:n}=this.getTreeNodeWithListIndex(e);return i&&n?t:-1}getListRenderCount(e){return this.getTreeNode(e).renderNodeCount}isCollapsible(e){return this.getTreeNode(e).collapsible}setCollapsible(e,t){const i=this.getTreeNode(e);typeof t=="undefined"&&(t=!i.collapsible);const n={collapsible:t};return this.eventBufferer.bufferEvents(()=>this._setCollapseState(e,n))}isCollapsed(e){return this.getTreeNode(e).collapsed}setCollapsed(e,t,i){const n=this.getTreeNode(e);typeof t=="undefined"&&(t=!n.collapsed);const o={collapsed:t,recursive:i||!1};return this.eventBufferer.bufferEvents(()=>this._setCollapseState(e,o))}_setCollapseState(e,t){const{node:i,listIndex:n,revealed:o}=this.getTreeNodeWithListIndex(e),r=this._setListNodeCollapseState(i,n,o,t);if(i!==this.root&&this.autoExpandSingleChildren&&r&&!Vm(t)&&i.collapsible&&!i.collapsed&&!t.recursive){let a=-1;for(let l=0;l-1){a=-1;break}else a=l;a>-1&&this._setCollapseState([...e,a],t)}return r}_setListNodeCollapseState(e,t,i,n){const o=this._setNodeCollapseState(e,n,!1);if(!i||!e.visible||!o)return o;const r=e.renderNodeCount,a=this.updateNodeAfterCollapseChange(e),l=r-(t===-1?0:1);return this.list.splice(t+1,l,a.slice(1)),o}_setNodeCollapseState(e,t,i){let n;if(e===this.root?n=!1:(Vm(t)?(n=e.collapsible!==t.collapsible,e.collapsible=t.collapsible):e.collapsible?(n=e.collapsed!==t.collapsed,e.collapsed=t.collapsed):n=!1,n&&this._onDidChangeCollapseState.fire({node:e,deep:i})),!Vm(t)&&t.recursive)for(const o of e.children)n=this._setNodeCollapseState(o,t,!0)||n;return n}expandTo(e){this.eventBufferer.bufferEvents(()=>{let t=this.getTreeNode(e);for(;t.parent;)t=t.parent,e=e.slice(0,e.length-1),t.collapsed&&this._setCollapseState(e,{collapsed:!1,recursive:!1})})}refilter(){const e=this.root.renderNodeCount,t=this.updateNodeAfterFilterChange(this.root);this.list.splice(0,e,t),this.refilterDelayer.cancel()}createTreeNode(e,t,i,n,o,r){const a={parent:t,element:e.element,children:[],depth:t.depth+1,visibleChildrenCount:0,visibleChildIndex:-1,collapsible:typeof e.collapsible=="boolean"?e.collapsible:typeof e.collapsed!="undefined",collapsed:typeof e.collapsed=="undefined"?this.collapseByDefault:e.collapsed,renderNodeCount:1,visibility:1,visible:!0,filterData:void 0},l=this._filterNode(a,i);a.visibility=l,n&&o.push(a);const c=e.children||he.empty(),h=n&&l!==0&&!a.collapsed,d=he.map(c,m=>this.createTreeNode(m,a,l,h,o,r));let u=0,f=1;for(const m of d)a.children.push(m),f+=m.renderNodeCount,m.visible&&(m.visibleChildIndex=u++);return a.collapsible=a.collapsible||a.children.length>0,a.visibleChildrenCount=u,a.visible=l===2?u>0:l===1,a.visible?a.collapsed||(a.renderNodeCount=f):(a.renderNodeCount=0,n&&o.pop()),r&&r(a),a}updateNodeAfterCollapseChange(e){const t=e.renderNodeCount,i=[];return this._updateNodeAfterCollapseChange(e,i),this._updateAncestorsRenderNodeCount(e.parent,i.length-t),i}_updateNodeAfterCollapseChange(e,t){if(e.visible===!1)return 0;if(t.push(e),e.renderNodeCount=1,!e.collapsed)for(const i of e.children)e.renderNodeCount+=this._updateNodeAfterCollapseChange(i,t);return this._onDidChangeRenderNodeCount.fire(e),e.renderNodeCount}updateNodeAfterFilterChange(e){const t=e.renderNodeCount,i=[];return this._updateNodeAfterFilterChange(e,e.visible?1:0,i),this._updateAncestorsRenderNodeCount(e.parent,i.length-t),i}_updateNodeAfterFilterChange(e,t,i,n=!0){let o;if(e!==this.root){if(o=this._filterNode(e,t),o===0)return e.visible=!1,e.renderNodeCount=0,!1;n&&i.push(e)}const r=i.length;e.renderNodeCount=e===this.root?0:1;let a=!1;if(!e.collapsed||o!==0){let l=0;for(const c of e.children)a=this._updateNodeAfterFilterChange(c,o,i,n&&!e.collapsed)||a,c.visible&&(c.visibleChildIndex=l++);e.visibleChildrenCount=l}else e.visibleChildrenCount=0;return e!==this.root&&(e.visible=o===2?a:o===1,e.visibility=o),e.visible?e.collapsed||(e.renderNodeCount+=i.length-r):(e.renderNodeCount=0,n&&i.pop()),this._onDidChangeRenderNodeCount.fire(e),e.visible}_updateAncestorsRenderNodeCount(e,t){if(t!==0)for(;e;)e.renderNodeCount+=t,this._onDidChangeRenderNodeCount.fire(e),e=e.parent}_filterNode(e,t){const i=this.filter?this.filter.filter(e.element,t):1;return typeof i=="boolean"?(e.filterData=void 0,i?1:0):Sb(i)?(e.filterData=i.data,rh(i.visibility)):(e.filterData=void 0,rh(i))}hasTreeNode(e,t=this.root){if(!e||e.length===0)return!0;const[i,...n]=e;return i<0||i>t.children.length?!1:this.hasTreeNode(n,t.children[i])}getTreeNode(e,t=this.root){if(!e||e.length===0)return t;const[i,...n]=e;if(i<0||i>t.children.length)throw new Ni(this.user,"Invalid tree location");return this.getTreeNode(n,t.children[i])}getTreeNodeWithListIndex(e){if(e.length===0)return{node:this.root,listIndex:-1,revealed:!0,visible:!1};const{parentNode:t,listIndex:i,revealed:n,visible:o}=this.getParentNodeWithListIndex(e),r=e[e.length-1];if(r<0||r>t.children.length)throw new Ni(this.user,"Invalid tree location");const a=t.children[r];return{node:a,listIndex:i,revealed:n,visible:o&&a.visible}}getParentNodeWithListIndex(e,t=this.root,i=0,n=!0,o=!0){const[r,...a]=e;if(r<0||r>t.children.length)throw new Ni(this.user,"Invalid tree location");for(let l=0;lt.element)),this.data=e}}function Wm(s){return s instanceof Rh?new G8(s):s}class Z8{constructor(e,t){this.modelProvider=e,this.dnd=t,this.autoExpandDisposable=W.None}getDragURI(e){return this.dnd.getDragURI(e.element)}getDragLabel(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e.map(i=>i.element),t)}onDragStart(e,t){this.dnd.onDragStart&&this.dnd.onDragStart(Wm(e),t)}onDragOver(e,t,i,n,o=!0){const r=this.dnd.onDragOver(Wm(e),t&&t.element,i,n),a=this.autoExpandNode!==t;if(a&&(this.autoExpandDisposable.dispose(),this.autoExpandNode=t),typeof t=="undefined")return r;if(a&&typeof r!="boolean"&&r.autoExpand&&(this.autoExpandDisposable=qp(()=>{const u=this.modelProvider(),f=u.getNodeLocation(t);u.isCollapsed(f)&&u.setCollapsed(f,!1),this.autoExpandNode=void 0},500)),typeof r=="boolean"||!r.accept||typeof r.bubble=="undefined"||r.feedback){if(!o){const u=typeof r=="boolean"?r:r.accept,f=typeof r=="boolean"?void 0:r.effect;return{accept:u,effect:f,feedback:[i]}}return r}if(r.bubble===1){const u=this.modelProvider(),f=u.getNodeLocation(t),m=u.getParentNodeLocation(f),_=u.getNode(m),b=m&&u.getListIndex(m);return this.onDragOver(e,_,b,n,!1)}const l=this.modelProvider(),c=l.getNodeLocation(t),h=l.getListIndex(c),d=l.getListRenderCount(c);return Object.assign(Object.assign({},r),{feedback:$t(h,h+d)})}drop(e,t,i,n){this.autoExpandDisposable.dispose(),this.autoExpandNode=void 0,this.dnd.drop(Wm(e),t&&t.element,i,n)}onDragEnd(e){this.dnd.onDragEnd&&this.dnd.onDragEnd(e)}}function Y8(s,e){return e&&Object.assign(Object.assign({},e),{identityProvider:e.identityProvider&&{getId(t){return e.identityProvider.getId(t.element)}},dnd:e.dnd&&new Z8(s,e.dnd),multipleSelectionController:e.multipleSelectionController&&{isSelectionSingleChangeEvent(t){return e.multipleSelectionController.isSelectionSingleChangeEvent(Object.assign(Object.assign({},t),{element:t.element}))},isSelectionRangeChangeEvent(t){return e.multipleSelectionController.isSelectionRangeChangeEvent(Object.assign(Object.assign({},t),{element:t.element}))}},accessibilityProvider:e.accessibilityProvider&&Object.assign(Object.assign({},e.accessibilityProvider),{getSetSize(t){const i=s(),n=i.getNodeLocation(t),o=i.getParentNodeLocation(n);return i.getNode(o).visibleChildrenCount},getPosInSet(t){return t.visibleChildIndex+1},isChecked:e.accessibilityProvider&&e.accessibilityProvider.isChecked?t=>e.accessibilityProvider.isChecked(t.element):void 0,getRole:e.accessibilityProvider&&e.accessibilityProvider.getRole?t=>e.accessibilityProvider.getRole(t.element):()=>"treeitem",getAriaLabel(t){return e.accessibilityProvider.getAriaLabel(t.element)},getWidgetAriaLabel(){return e.accessibilityProvider.getWidgetAriaLabel()},getWidgetRole:e.accessibilityProvider&&e.accessibilityProvider.getWidgetRole?()=>e.accessibilityProvider.getWidgetRole():()=>"tree",getAriaLevel:e.accessibilityProvider&&e.accessibilityProvider.getAriaLevel?t=>e.accessibilityProvider.getAriaLevel(t.element):t=>t.depth,getActiveDescendantId:e.accessibilityProvider.getActiveDescendantId&&(t=>e.accessibilityProvider.getActiveDescendantId(t.element))}),keyboardNavigationLabelProvider:e.keyboardNavigationLabelProvider&&Object.assign(Object.assign({},e.keyboardNavigationLabelProvider),{getKeyboardNavigationLabel(t){return e.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(t.element)}}),enableKeyboardNavigation:e.simpleKeyboardNavigation})}class yb{constructor(e){this.delegate=e}getHeight(e){return this.delegate.getHeight(e.element)}getTemplateId(e){return this.delegate.getTemplateId(e.element)}hasDynamicHeight(e){return!!this.delegate.hasDynamicHeight&&this.delegate.hasDynamicHeight(e.element)}setDynamicHeight(e,t){this.delegate.setDynamicHeight&&this.delegate.setDynamicHeight(e.element,t)}}var ah;(function(s){s.None="none",s.OnHover="onHover",s.Always="always"})(ah||(ah={}));class X8{constructor(e,t=[]){this._elements=t,this.onDidChange=K.forEach(e,i=>this._elements=i)}get elements(){return this._elements}}class lh{constructor(e,t,i,n,o={}){this.renderer=e,this.modelProvider=t,this.activeNodes=n,this.renderedElements=new Map,this.renderedNodes=new Map,this.indent=lh.DefaultIndent,this.hideTwistiesOfChildlessElements=!1,this.shouldRenderIndentGuides=!1,this.renderedIndentGuides=new X4,this.activeIndentNodes=new Set,this.indentGuidesDisposable=W.None,this.disposables=new se,this.templateId=e.templateId,this.updateOptions(o),K.map(i,r=>r.node)(this.onDidChangeNodeTwistieState,this,this.disposables),e.onDidChangeTwistieState&&e.onDidChangeTwistieState(this.onDidChangeTwistieState,this,this.disposables)}updateOptions(e={}){if(typeof e.indent!="undefined"&&(this.indent=mi(e.indent,0,40)),typeof e.renderIndentGuides!="undefined"){const t=e.renderIndentGuides!==ah.None;if(t!==this.shouldRenderIndentGuides&&(this.shouldRenderIndentGuides=t,this.indentGuidesDisposable.dispose(),t)){const i=new se;this.activeNodes.onDidChange(this._onDidChangeActiveNodes,this,i),this.indentGuidesDisposable=i,this._onDidChangeActiveNodes(this.activeNodes.elements)}}typeof e.hideTwistiesOfChildlessElements!="undefined"&&(this.hideTwistiesOfChildlessElements=e.hideTwistiesOfChildlessElements)}renderTemplate(e){const t=U(e,J(".monaco-tl-row")),i=U(t,J(".monaco-tl-indent")),n=U(t,J(".monaco-tl-twistie")),o=U(t,J(".monaco-tl-contents")),r=this.renderer.renderTemplate(o);return{container:e,indent:i,twistie:n,indentGuidesDisposable:W.None,templateData:r}}renderElement(e,t,i,n){typeof n=="number"&&(this.renderedNodes.set(e,{templateData:i,height:n}),this.renderedElements.set(e.element,e));const o=lh.DefaultIndent+(e.depth-1)*this.indent;i.twistie.style.paddingLeft=`${o}px`,i.indent.style.width=`${o+this.indent-16}px`,this.renderTwistie(e,i),typeof n=="number"&&this.renderIndentGuides(e,i),this.renderer.renderElement(e,t,i.templateData,n)}disposeElement(e,t,i,n){i.indentGuidesDisposable.dispose(),this.renderer.disposeElement&&this.renderer.disposeElement(e,t,i.templateData,n),typeof n=="number"&&(this.renderedNodes.delete(e),this.renderedElements.delete(e.element))}disposeTemplate(e){this.renderer.disposeTemplate(e.templateData)}onDidChangeTwistieState(e){const t=this.renderedElements.get(e);!t||this.onDidChangeNodeTwistieState(t)}onDidChangeNodeTwistieState(e){const t=this.renderedNodes.get(e);!t||(this.renderTwistie(e,t.templateData),this._onDidChangeActiveNodes(this.activeNodes.elements),this.renderIndentGuides(e,t.templateData))}renderTwistie(e,t){t.twistie.classList.remove(...g.treeItemExpanded.classNamesArray);let i=!1;this.renderer.renderTwistie&&(i=this.renderer.renderTwistie(e.element,t.twistie)),e.collapsible&&(!this.hideTwistiesOfChildlessElements||e.visibleChildrenCount>0)?(i||t.twistie.classList.add(...g.treeItemExpanded.classNamesArray),t.twistie.classList.add("collapsible"),t.twistie.classList.toggle("collapsed",e.collapsed)):t.twistie.classList.remove("collapsible","collapsed"),e.collapsible?t.container.setAttribute("aria-expanded",String(!e.collapsed)):t.container.removeAttribute("aria-expanded")}renderIndentGuides(e,t){if(Pi(t.indent),t.indentGuidesDisposable.dispose(),!this.shouldRenderIndentGuides)return;const i=new se,n=this.modelProvider();let o=e;for(;;){const r=n.getNodeLocation(o),a=n.getParentNodeLocation(r);if(!a)break;const l=n.getNode(a),c=J(".indent-guide",{style:`width: ${this.indent}px`});this.activeIndentNodes.has(l)&&c.classList.add("active"),t.indent.childElementCount===0?t.indent.appendChild(c):t.indent.insertBefore(c,t.indent.firstElementChild),this.renderedIndentGuides.add(l,c),i.add(Pe(()=>this.renderedIndentGuides.delete(l,c))),o=l}t.indentGuidesDisposable=i}_onDidChangeActiveNodes(e){if(!this.shouldRenderIndentGuides)return;const t=new Set,i=this.modelProvider();e.forEach(n=>{const o=i.getNodeLocation(n);try{const r=i.getParentNodeLocation(o);n.collapsible&&n.children.length>0&&!n.collapsed?t.add(n):r&&t.add(i.getNode(r))}catch{}}),this.activeIndentNodes.forEach(n=>{t.has(n)||this.renderedIndentGuides.forEach(n,o=>o.classList.remove("active"))}),t.forEach(n=>{this.activeIndentNodes.has(n)||this.renderedIndentGuides.forEach(n,o=>o.classList.add("active"))}),this.activeIndentNodes=t}dispose(){this.renderedNodes.clear(),this.renderedElements.clear(),this.indentGuidesDisposable.dispose(),Me(this.disposables)}}lh.DefaultIndent=8;class Q8{constructor(e,t,i){this.tree=e,this.keyboardNavigationLabelProvider=t,this._filter=i,this._totalCount=0,this._matchCount=0,this._pattern="",this._lowercasePattern="",this.disposables=new se,e.onWillRefilter(this.reset,this,this.disposables)}get totalCount(){return this._totalCount}get matchCount(){return this._matchCount}set pattern(e){this._pattern=e,this._lowercasePattern=e.toLowerCase()}filter(e,t){if(this._filter){const o=this._filter.filter(e,t);if(this.tree.options.simpleKeyboardNavigation)return o;let r;if(typeof o=="boolean"?r=o?1:0:Sb(o)?r=rh(o.visibility):r=o,r===0)return!1}if(this._totalCount++,this.tree.options.simpleKeyboardNavigation||!this._pattern)return this._matchCount++,{data:gr.Default,visibility:!0};const i=this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e),n=Array.isArray(i)?i:[i];for(const o of n){const r=o&&o.toString();if(typeof r=="undefined")return{data:gr.Default,visibility:!0};const a=nP(this._pattern,this._lowercasePattern,0,r,r.toLowerCase(),0,!0);if(a)return this._matchCount++,n.length===1?{data:a,visibility:!0}:{data:{label:r,score:a},visibility:!0}}return this.tree.options.filterOnType?2:{data:gr.Default,visibility:!0}}reset(){this._totalCount=0,this._matchCount=0}dispose(){Me(this.disposables)}}class J8{constructor(e,t,i,n,o){this.tree=e,this.view=i,this.filter=n,this.keyboardNavigationDelegate=o,this._enabled=!1,this._pattern="",this._empty=!1,this._onDidChangeEmptyState=new M,this.positionClassName="ne",this.automaticKeyboardNavigation=!0,this.triggered=!1,this._onDidChangePattern=new M,this.enabledDisposables=new se,this.disposables=new se,this.domNode=J(`.monaco-list-type-filter.${this.positionClassName}`),this.domNode.draggable=!0,this.disposables.add(V(this.domNode,"dragstart",()=>this.onDragStart())),this.messageDomNode=U(i.getHTMLElement(),J(".monaco-list-type-filter-message")),this.labelDomNode=U(this.domNode,J("span.label"));const r=U(this.domNode,J(".controls"));this._filterOnType=!!e.options.filterOnType,this.filterOnTypeDomNode=U(r,J("input.filter")),this.filterOnTypeDomNode.type="checkbox",this.filterOnTypeDomNode.checked=this._filterOnType,this.filterOnTypeDomNode.tabIndex=-1,this.updateFilterOnTypeTitleAndIcon(),this.disposables.add(V(this.filterOnTypeDomNode,"input",()=>this.onDidChangeFilterOnType())),this.clearDomNode=U(r,J("button.clear"+g.treeFilterClear.cssSelector)),this.clearDomNode.tabIndex=-1,this.clearDomNode.title=p("clear","Clear"),this.keyboardNavigationEventFilter=e.options.keyboardNavigationEventFilter,t.onDidSplice(this.onDidSpliceModel,this,this.disposables),this.updateOptions(e.options)}get enabled(){return this._enabled}get pattern(){return this._pattern}get filterOnType(){return this._filterOnType}updateOptions(e){e.simpleKeyboardNavigation?this.disable():this.enable(),typeof e.filterOnType!="undefined"&&(this._filterOnType=!!e.filterOnType,this.filterOnTypeDomNode.checked=this._filterOnType,this.updateFilterOnTypeTitleAndIcon()),typeof e.automaticKeyboardNavigation!="undefined"&&(this.automaticKeyboardNavigation=e.automaticKeyboardNavigation),this.tree.refilter(),this.render(),this.automaticKeyboardNavigation||this.onEventOrInput("")}enable(){if(this._enabled)return;const e=this.enabledDisposables.add(new Te(this.view.getHTMLElement(),"keydown")),t=K.chain(e.event).filter(n=>!Io(n.target)||n.target===this.filterOnTypeDomNode).filter(n=>n.key!=="Dead"&&!/^Media/.test(n.key)).map(n=>new He(n)).filter(this.keyboardNavigationEventFilter||(()=>!0)).filter(()=>this.automaticKeyboardNavigation||this.triggered).filter(n=>this.keyboardNavigationDelegate.mightProducePrintableCharacter(n)&&!(n.keyCode===18||n.keyCode===16||n.keyCode===15||n.keyCode===17)||(this.pattern.length>0||this.triggered)&&(n.keyCode===9||n.keyCode===1)&&!n.altKey&&!n.ctrlKey&&!n.metaKey||n.keyCode===1&&(me?n.altKey&&!n.metaKey:n.ctrlKey)&&!n.shiftKey).forEach(n=>{n.stopPropagation(),n.preventDefault()}).event,i=this.enabledDisposables.add(new Te(this.clearDomNode,"click"));K.chain(K.any(t,i.event)).event(this.onEventOrInput,this,this.enabledDisposables),this.filter.pattern="",this.tree.refilter(),this.render(),this._enabled=!0,this.triggered=!1}disable(){!this._enabled||(this.domNode.remove(),this.enabledDisposables.clear(),this.tree.refilter(),this.render(),this._enabled=!1,this.triggered=!1)}onEventOrInput(e){typeof e=="string"?this.onInput(e):e instanceof MouseEvent||e.keyCode===9||e.keyCode===1&&(me?e.altKey:e.ctrlKey)?this.onInput(""):e.keyCode===1?this.onInput(this.pattern.length===0?"":this.pattern.substr(0,this.pattern.length-1)):this.onInput(this.pattern+e.browserEvent.key)}onInput(e){const t=this.view.getHTMLElement();e&&!this.domNode.parentElement?t.append(this.domNode):!e&&this.domNode.parentElement&&(this.domNode.remove(),this.tree.domFocus()),this._pattern=e,this._onDidChangePattern.fire(e),this.filter.pattern=e,this.tree.refilter(),e&&this.tree.focusNext(0,!0,void 0,n=>!gr.isDefault(n.filterData));const i=this.tree.getFocus();if(i.length>0){const n=i[0];this.tree.getRelativeTop(n)===null&&this.tree.reveal(n,.5)}this.render(),e||(this.triggered=!1)}onDragStart(){const e=this.view.getHTMLElement(),{left:t}=en(e),i=e.clientWidth,n=i/2,o=this.domNode.clientWidth,r=new se;let a=this.positionClassName;const l=()=>{switch(a){case"nw":this.domNode.style.top="4px",this.domNode.style.left="4px";break;case"ne":this.domNode.style.top="4px",this.domNode.style.left=`${i-o-6}px`;break}},c=d=>{d.preventDefault();const u=d.clientX-t;d.dataTransfer&&(d.dataTransfer.dropEffect="none"),u{this.positionClassName=a,this.domNode.className=`monaco-list-type-filter ${this.positionClassName}`,this.domNode.style.top="",this.domNode.style.left="",Me(r)};l(),this.domNode.classList.remove(a),this.domNode.classList.add("dragging"),r.add(Pe(()=>this.domNode.classList.remove("dragging"))),r.add(V(document,"dragover",d=>c(d))),r.add(V(this.domNode,"dragend",()=>h())),Cs.CurrentDragAndDropData=new p9("vscode-ui"),r.add(Pe(()=>Cs.CurrentDragAndDropData=void 0))}onDidSpliceModel(){!this._enabled||this.pattern.length===0||(this.tree.refilter(),this.render())}onDidChangeFilterOnType(){this.tree.updateOptions({filterOnType:this.filterOnTypeDomNode.checked}),this.tree.refilter(),this.tree.domFocus(),this.render(),this.updateFilterOnTypeTitleAndIcon()}updateFilterOnTypeTitleAndIcon(){this.filterOnType?(this.filterOnTypeDomNode.classList.remove(...g.treeFilterOnTypeOff.classNamesArray),this.filterOnTypeDomNode.classList.add(...g.treeFilterOnTypeOn.classNamesArray),this.filterOnTypeDomNode.title=p("disable filter on type","Disable Filter on Type")):(this.filterOnTypeDomNode.classList.remove(...g.treeFilterOnTypeOn.classNamesArray),this.filterOnTypeDomNode.classList.add(...g.treeFilterOnTypeOff.classNamesArray),this.filterOnTypeDomNode.title=p("enable filter on type","Enable Filter on Type"))}render(){const e=this.filter.totalCount>0&&this.filter.matchCount===0;this.pattern&&this.tree.options.filterOnType&&e?(this.messageDomNode.textContent=p("empty","No elements found"),this._empty=!0):(this.messageDomNode.innerText="",this._empty=!1),this.domNode.classList.toggle("no-matches",e),this.domNode.title=p("found","Matched {0} out of {1} elements",this.filter.matchCount,this.filter.totalCount),this.labelDomNode.textContent=this.pattern.length>16?"\u2026"+this.pattern.substr(this.pattern.length-16):this.pattern,this._onDidChangeEmptyState.fire(this._empty)}shouldAllowFocus(e){return!this.enabled||!this.pattern||this.filterOnType||this.filter.totalCount>0&&this.filter.matchCount<=1?!0:!gr.isDefault(e.filterData)}dispose(){this._enabled&&(this.domNode.remove(),this.enabledDisposables.dispose(),this._enabled=!1,this.triggered=!1),this._onDidChangePattern.dispose(),Me(this.disposables)}}function gS(s){let e=Lc.Unknown;return WC(s.browserEvent.target,"monaco-tl-twistie","monaco-tl-row")?e=Lc.Twistie:WC(s.browserEvent.target,"monaco-tl-contents","monaco-tl-row")&&(e=Lc.Element),{browserEvent:s.browserEvent,element:s.element?s.element.element:null,target:e}}function Zd(s,e){e(s),s.children.forEach(t=>Zd(t,e))}class Hm{constructor(e,t){this.getFirstViewElementWithTrait=e,this.identityProvider=t,this.nodes=[],this._onDidChange=new M,this.onDidChange=this._onDidChange.event}get nodeSet(){return this._nodeSet||(this._nodeSet=this.createNodeSet()),this._nodeSet}set(e,t){!(t!=null&&t.__forceEvent)&&Kn(this.nodes,e)||this._set(e,!1,t)}_set(e,t,i){if(this.nodes=[...e],this.elements=void 0,this._nodeSet=void 0,!t){const n=this;this._onDidChange.fire({get elements(){return n.get()},browserEvent:i})}}get(){return this.elements||(this.elements=this.nodes.map(e=>e.element)),[...this.elements]}getNodes(){return this.nodes}has(e){return this.nodeSet.has(e)}onDidModelSplice({insertedNodes:e,deletedNodes:t}){if(!this.identityProvider){const l=this.createNodeSet(),c=h=>l.delete(h);t.forEach(h=>Zd(h,c)),this.set([...l.values()]);return}const i=new Set,n=l=>i.add(this.identityProvider.getId(l.element).toString());t.forEach(l=>Zd(l,n));const o=new Map,r=l=>o.set(this.identityProvider.getId(l.element).toString(),l);e.forEach(l=>Zd(l,r));const a=[];for(const l of this.nodes){const c=this.identityProvider.getId(l.element).toString();if(!i.has(c))a.push(l);else{const d=o.get(c);d&&a.push(d)}}if(this.nodes.length>0&&a.length===0){const l=this.getFirstViewElementWithTrait();l&&a.push(l)}this._set(a,!0)}createNodeSet(){const e=new Set;for(const t of this.nodes)e.add(t);return e}}class e3 extends B2{constructor(e,t){super(e),this.tree=t}onViewPointer(e){if(Io(e.browserEvent.target)||ba(e.browserEvent.target))return;const t=e.element;if(!t)return super.onViewPointer(e);if(this.isSelectionRangeChangeEvent(e)||this.isSelectionSingleChangeEvent(e))return super.onViewPointer(e);const i=e.browserEvent.target,n=i.classList.contains("monaco-tl-twistie")||i.classList.contains("monaco-icon-label")&&i.classList.contains("folder-icon")&&e.browserEvent.offsetX<16;let o=!1;if(typeof this.tree.expandOnlyOnTwistieClick=="function"?o=this.tree.expandOnlyOnTwistieClick(t.element):o=!!this.tree.expandOnlyOnTwistieClick,o&&!n&&e.browserEvent.detail!==2)return super.onViewPointer(e);if(!this.tree.expandOnDoubleClick&&e.browserEvent.detail===2)return super.onViewPointer(e);if(t.collapsible){const r=this.tree.model,a=r.getNodeLocation(t),l=e.browserEvent.altKey;if(this.tree.setFocus([a]),r.setCollapsed(a,void 0,l),o&&n)return}super.onViewPointer(e)}onDoubleClick(e){e.browserEvent.target.classList.contains("monaco-tl-twistie")||!this.tree.expandOnDoubleClick||super.onDoubleClick(e)}}class t3 extends Bs{constructor(e,t,i,n,o,r,a,l){super(e,t,i,n,l),this.focusTrait=o,this.selectionTrait=r,this.anchorTrait=a}createMouseController(e){return new e3(this,e.tree)}splice(e,t,i=[]){if(super.splice(e,t,i),i.length===0)return;const n=[],o=[];let r;i.forEach((a,l)=>{this.focusTrait.has(a)&&n.push(e+l),this.selectionTrait.has(a)&&o.push(e+l),this.anchorTrait.has(a)&&(r=e+l)}),n.length>0&&super.setFocus(wo([...super.getFocus(),...n])),o.length>0&&super.setSelection(wo([...super.getSelection(),...o])),typeof r=="number"&&super.setAnchor(r)}setFocus(e,t,i=!1){super.setFocus(e,t),i||this.focusTrait.set(e.map(n=>this.element(n)),t)}setSelection(e,t,i=!1){super.setSelection(e,t),i||this.selectionTrait.set(e.map(n=>this.element(n)),t)}setAnchor(e,t=!1){super.setAnchor(e),t||(typeof e=="undefined"?this.anchorTrait.set([]):this.anchorTrait.set([this.element(e)]))}}class H2{constructor(e,t,i,n,o={}){this._user=e,this._options=o,this.eventBufferer=new Z1,this.disposables=new se,this._onWillRefilter=new M,this.onWillRefilter=this._onWillRefilter.event,this._onDidUpdateOptions=new M;const r=new yb(i),a=new Zb,l=new Zb,c=new X8(l.event);this.renderers=n.map(u=>new lh(u,()=>this.model,a.event,c,o));for(let u of this.renderers)this.disposables.add(u);let h;o.keyboardNavigationLabelProvider&&(h=new Q8(this,o.keyboardNavigationLabelProvider,o.filter),o=Object.assign(Object.assign({},o),{filter:h}),this.disposables.add(h)),this.focus=new Hm(()=>this.view.getFocusedElements()[0],o.identityProvider),this.selection=new Hm(()=>this.view.getSelectedElements()[0],o.identityProvider),this.anchor=new Hm(()=>this.view.getAnchorElement(),o.identityProvider),this.view=new t3(e,t,r,this.renderers,this.focus,this.selection,this.anchor,Object.assign(Object.assign({},Y8(()=>this.model,o)),{tree:this})),this.model=this.createModel(e,this.view,o),a.input=this.model.onDidChangeCollapseState;const d=K.forEach(this.model.onDidSplice,u=>{this.eventBufferer.bufferEvents(()=>{this.focus.onDidModelSplice(u),this.selection.onDidModelSplice(u)})});if(d(()=>null,null,this.disposables),l.input=K.chain(K.any(d,this.focus.onDidChange,this.selection.onDidChange)).debounce(()=>null,0).map(()=>{const u=new Set;for(const f of this.focus.getNodes())u.add(f);for(const f of this.selection.getNodes())u.add(f);return[...u.values()]}).event,o.keyboardSupport!==!1){const u=K.chain(this.view.onKeyDown).filter(f=>!Io(f.target)).map(f=>new He(f));u.filter(f=>f.keyCode===15).on(this.onLeftArrow,this,this.disposables),u.filter(f=>f.keyCode===17).on(this.onRightArrow,this,this.disposables),u.filter(f=>f.keyCode===10).on(this.onSpace,this,this.disposables)}if(o.keyboardNavigationLabelProvider){const u=o.keyboardNavigationDelegate||O2;this.typeFilterController=new J8(this,this.model,this.view,h,u),this.focusNavigationFilter=f=>this.typeFilterController.shouldAllowFocus(f),this.disposables.add(this.typeFilterController)}this.styleElement=xn(this.view.getHTMLElement()),this.getHTMLElement().classList.toggle("always",this._options.renderIndentGuides===ah.Always)}get onDidChangeFocus(){return this.eventBufferer.wrapEvent(this.focus.onDidChange)}get onDidChangeSelection(){return this.eventBufferer.wrapEvent(this.selection.onDidChange)}get onMouseDblClick(){return K.map(this.view.onMouseDblClick,gS)}get onPointer(){return K.map(this.view.onPointer,gS)}get onDidFocus(){return this.view.onDidFocus}get onDidChangeModel(){return K.signal(this.model.onDidSplice)}get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}get expandOnDoubleClick(){return typeof this._options.expandOnDoubleClick=="undefined"?!0:this._options.expandOnDoubleClick}get expandOnlyOnTwistieClick(){return typeof this._options.expandOnlyOnTwistieClick=="undefined"?!0:this._options.expandOnlyOnTwistieClick}get onDidDispose(){return this.view.onDidDispose}updateOptions(e={}){this._options=Object.assign(Object.assign({},this._options),e);for(const t of this.renderers)t.updateOptions(e);this.view.updateOptions(Object.assign(Object.assign({},this._options),{enableKeyboardNavigation:this._options.simpleKeyboardNavigation})),this.typeFilterController&&this.typeFilterController.updateOptions(this._options),this._onDidUpdateOptions.fire(this._options),this.getHTMLElement().classList.toggle("always",this._options.renderIndentGuides===ah.Always)}get options(){return this._options}getHTMLElement(){return this.view.getHTMLElement()}get scrollTop(){return this.view.scrollTop}set scrollTop(e){this.view.scrollTop=e}domFocus(){this.view.domFocus()}layout(e,t){this.view.layout(e,t)}style(e){const t=`.${this.view.domId}`,i=[];e.treeIndentGuidesStroke&&(i.push(`.monaco-list${t}:hover .monaco-tl-indent > .indent-guide, .monaco-list${t}.always .monaco-tl-indent > .indent-guide { border-color: ${e.treeIndentGuidesStroke.transparent(.4)}; }`),i.push(`.monaco-list${t} .monaco-tl-indent > .indent-guide.active { border-color: ${e.treeIndentGuidesStroke}; }`)),this.styleElement.textContent=i.join(` +`),this.view.style(e)}getParentElement(e){const t=this.model.getParentNodeLocation(e);return this.model.getNode(t).element}getFirstElementChild(e){return this.model.getFirstElementChild(e)}getNode(e){return this.model.getNode(e)}collapse(e,t=!1){return this.model.setCollapsed(e,!0,t)}expand(e,t=!1){return this.model.setCollapsed(e,!1,t)}isCollapsible(e){return this.model.isCollapsible(e)}setCollapsible(e,t){return this.model.setCollapsible(e,t)}isCollapsed(e){return this.model.isCollapsed(e)}refilter(){this._onWillRefilter.fire(void 0),this.model.refilter()}setSelection(e,t){const i=e.map(o=>this.model.getNode(o));this.selection.set(i,t);const n=e.map(o=>this.model.getListIndex(o)).filter(o=>o>-1);this.view.setSelection(n,t,!0)}getSelection(){return this.selection.get()}setFocus(e,t){const i=e.map(o=>this.model.getNode(o));this.focus.set(i,t);const n=e.map(o=>this.model.getListIndex(o)).filter(o=>o>-1);this.view.setFocus(n,t,!0)}focusNext(e=1,t=!1,i,n=this.focusNavigationFilter){this.view.focusNext(e,t,i,n)}getFocus(){return this.focus.get()}reveal(e,t){this.model.expandTo(e);const i=this.model.getListIndex(e);i!==-1&&this.view.reveal(i,t)}getRelativeTop(e){const t=this.model.getListIndex(e);return t===-1?null:this.view.getRelativeTop(t)}onLeftArrow(e){e.preventDefault(),e.stopPropagation();const t=this.view.getFocusedElements();if(t.length===0)return;const i=t[0],n=this.model.getNodeLocation(i);if(!this.model.setCollapsed(n,!0)){const r=this.model.getParentNodeLocation(n);if(!r)return;const a=this.model.getListIndex(r);this.view.reveal(a),this.view.setFocus([a])}}onRightArrow(e){e.preventDefault(),e.stopPropagation();const t=this.view.getFocusedElements();if(t.length===0)return;const i=t[0],n=this.model.getNodeLocation(i);if(!this.model.setCollapsed(n,!1)){if(!i.children.some(l=>l.visible))return;const[r]=this.view.getFocus(),a=r+1;this.view.reveal(a),this.view.setFocus([a])}}onSpace(e){e.preventDefault(),e.stopPropagation();const t=this.view.getFocusedElements();if(t.length===0)return;const i=t[0],n=this.model.getNodeLocation(i),o=e.browserEvent.altKey;this.model.setCollapsed(n,void 0,o)}dispose(){Me(this.disposables),this.view.dispose()}}class Lb{constructor(e,t,i={}){this.user=e,this.rootRef=null,this.nodes=new Map,this.nodesByIdentity=new Map,this.model=new q8(e,t,null,i),this.onDidSplice=this.model.onDidSplice,this.onDidChangeCollapseState=this.model.onDidChangeCollapseState,this.onDidChangeRenderNodeCount=this.model.onDidChangeRenderNodeCount,i.sorter&&(this.sorter={compare(n,o){return i.sorter.compare(n.element,o.element)}}),this.identityProvider=i.identityProvider}setChildren(e,t=he.empty(),i={}){const n=this.getElementLocation(e);this._setChildren(n,this.preserveCollapseState(t),i)}_setChildren(e,t=he.empty(),i){const n=new Set,o=new Set,r=l=>{var c;if(l.element===null)return;const h=l;if(n.add(h.element),this.nodes.set(h.element,h),this.identityProvider){const d=this.identityProvider.getId(h.element).toString();o.add(d),this.nodesByIdentity.set(d,h)}(c=i.onDidCreateNode)===null||c===void 0||c.call(i,h)},a=l=>{var c;if(l.element===null)return;const h=l;if(n.has(h.element)||this.nodes.delete(h.element),this.identityProvider){const d=this.identityProvider.getId(h.element).toString();o.has(d)||this.nodesByIdentity.delete(d)}(c=i.onDidDeleteNode)===null||c===void 0||c.call(i,h)};this.model.splice([...e,0],Number.MAX_VALUE,t,Object.assign(Object.assign({},i),{onDidCreateNode:r,onDidDeleteNode:a}))}preserveCollapseState(e=he.empty()){return this.sorter&&(e=[...e].sort(this.sorter.compare.bind(this.sorter))),he.map(e,t=>{let i=this.nodes.get(t.element);if(!i&&this.identityProvider){const r=this.identityProvider.getId(t.element).toString();i=this.nodesByIdentity.get(r)}if(!i)return Object.assign(Object.assign({},t),{children:this.preserveCollapseState(t.children)});const n=typeof t.collapsible=="boolean"?t.collapsible:i.collapsible,o=typeof t.collapsed!="undefined"?t.collapsed:i.collapsed;return Object.assign(Object.assign({},t),{collapsible:n,collapsed:o,children:this.preserveCollapseState(t.children)})})}rerender(e){const t=this.getElementLocation(e);this.model.rerender(t)}getFirstElementChild(e=null){const t=this.getElementLocation(e);return this.model.getFirstElementChild(t)}has(e){return this.nodes.has(e)}getListIndex(e){const t=this.getElementLocation(e);return this.model.getListIndex(t)}getListRenderCount(e){const t=this.getElementLocation(e);return this.model.getListRenderCount(t)}isCollapsible(e){const t=this.getElementLocation(e);return this.model.isCollapsible(t)}setCollapsible(e,t){const i=this.getElementLocation(e);return this.model.setCollapsible(i,t)}isCollapsed(e){const t=this.getElementLocation(e);return this.model.isCollapsed(t)}setCollapsed(e,t,i){const n=this.getElementLocation(e);return this.model.setCollapsed(n,t,i)}expandTo(e){const t=this.getElementLocation(e);this.model.expandTo(t)}refilter(){this.model.refilter()}getNode(e=null){if(e===null)return this.model.getNode(this.model.rootRef);const t=this.nodes.get(e);if(!t)throw new Ni(this.user,`Tree element not found: ${e}`);return t}getNodeLocation(e){return e.element}getParentNodeLocation(e){if(e===null)throw new Ni(this.user,"Invalid getParentNodeLocation call");const t=this.nodes.get(e);if(!t)throw new Ni(this.user,`Tree element not found: ${e}`);const i=this.model.getNodeLocation(t),n=this.model.getParentNodeLocation(i);return this.model.getNode(n).element}getElementLocation(e){if(e===null)return[];const t=this.nodes.get(e);if(!t)throw new Ni(this.user,`Tree element not found: ${e}`);return this.model.getNodeLocation(t)}}function Yd(s){const e=[s.element],t=s.incompressible||!1;return{element:{elements:e,incompressible:t},children:he.map(he.from(s.children),Yd),collapsible:s.collapsible,collapsed:s.collapsed}}function Xd(s){const e=[s.element],t=s.incompressible||!1;let i,n;for(;[n,i]=he.consume(he.from(s.children),2),!(n.length!==1||n[0].incompressible);)s=n[0],e.push(s.element);return{element:{elements:e,incompressible:t},children:he.map(he.concat(n,i),Xd),collapsible:s.collapsible,collapsed:s.collapsed}}function c1(s,e=0){let t;return ec1(i,0)),e===0&&s.element.incompressible?{element:s.element.elements[e],children:t,incompressible:!0,collapsible:s.collapsible,collapsed:s.collapsed}:{element:s.element.elements[e],children:t,collapsible:s.collapsible,collapsed:s.collapsed}}function mS(s){return c1(s,0)}function z2(s,e,t){return s.element===e?Object.assign(Object.assign({},s),{children:t}):Object.assign(Object.assign({},s),{children:he.map(he.from(s.children),i=>z2(i,e,t))})}const i3=s=>({getId(e){return e.elements.map(t=>s.getId(t).toString()).join("\0")}});class n3{constructor(e,t,i={}){this.user=e,this.rootRef=null,this.nodes=new Map,this.model=new Lb(e,t,i),this.enabled=typeof i.compressionEnabled=="undefined"?!0:i.compressionEnabled,this.identityProvider=i.identityProvider}get onDidSplice(){return this.model.onDidSplice}get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}get onDidChangeRenderNodeCount(){return this.model.onDidChangeRenderNodeCount}setChildren(e,t=he.empty(),i){const n=i.diffIdentityProvider&&i3(i.diffIdentityProvider);if(e===null){const f=he.map(t,this.enabled?Xd:Yd);this._setChildren(null,f,{diffIdentityProvider:n,diffDepth:1/0});return}const o=this.nodes.get(e);if(!o)throw new Error("Unknown compressed tree node");const r=this.model.getNode(o),a=this.model.getParentNodeLocation(o),l=this.model.getNode(a),c=mS(r),h=z2(c,e,t),d=(this.enabled?Xd:Yd)(h),u=l.children.map(f=>f===r?d:f);this._setChildren(l.element,u,{diffIdentityProvider:n,diffDepth:r.depth-l.depth})}setCompressionEnabled(e){if(e===this.enabled)return;this.enabled=e;const i=this.model.getNode().children,n=he.map(i,mS),o=he.map(n,e?Xd:Yd);this._setChildren(null,o,{diffIdentityProvider:this.identityProvider,diffDepth:1/0})}_setChildren(e,t,i){const n=new Set,o=a=>{for(const l of a.element.elements)n.add(l),this.nodes.set(l,a.element)},r=a=>{for(const l of a.element.elements)n.has(l)||this.nodes.delete(l)};this.model.setChildren(e,t,Object.assign(Object.assign({},i),{onDidCreateNode:o,onDidDeleteNode:r}))}has(e){return this.nodes.has(e)}getListIndex(e){const t=this.getCompressedNode(e);return this.model.getListIndex(t)}getListRenderCount(e){const t=this.getCompressedNode(e);return this.model.getListRenderCount(t)}getNode(e){if(typeof e=="undefined")return this.model.getNode();const t=this.getCompressedNode(e);return this.model.getNode(t)}getNodeLocation(e){const t=this.model.getNodeLocation(e);return t===null?null:t.elements[t.elements.length-1]}getParentNodeLocation(e){const t=this.getCompressedNode(e),i=this.model.getParentNodeLocation(t);return i===null?null:i.elements[i.elements.length-1]}getFirstElementChild(e){const t=this.getCompressedNode(e);return this.model.getFirstElementChild(t)}isCollapsible(e){const t=this.getCompressedNode(e);return this.model.isCollapsible(t)}setCollapsible(e,t){const i=this.getCompressedNode(e);return this.model.setCollapsible(i,t)}isCollapsed(e){const t=this.getCompressedNode(e);return this.model.isCollapsed(t)}setCollapsed(e,t,i){const n=this.getCompressedNode(e);return this.model.setCollapsed(n,t,i)}expandTo(e){const t=this.getCompressedNode(e);this.model.expandTo(t)}rerender(e){const t=this.getCompressedNode(e);this.model.rerender(t)}refilter(){this.model.refilter()}getCompressedNode(e){if(e===null)return null;const t=this.nodes.get(e);if(!t)throw new Ni(this.user,`Tree element not found: ${e}`);return t}}const s3=s=>s[s.length-1];class kb{constructor(e,t){this.unwrapper=e,this.node=t}get element(){return this.node.element===null?null:this.unwrapper(this.node.element)}get children(){return this.node.children.map(e=>new kb(this.unwrapper,e))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}}function o3(s,e){return{splice(t,i,n){e.splice(t,i,n.map(o=>s.map(o)))},updateElementHeight(t,i){e.updateElementHeight(t,i)}}}function r3(s,e){return Object.assign(Object.assign({},e),{identityProvider:e.identityProvider&&{getId(t){return e.identityProvider.getId(s(t))}},sorter:e.sorter&&{compare(t,i){return e.sorter.compare(t.elements[0],i.elements[0])}},filter:e.filter&&{filter(t,i){return e.filter.filter(s(t),i)}}})}class a3{constructor(e,t,i={}){this.rootRef=null,this.elementMapper=i.elementMapper||s3;const n=o=>this.elementMapper(o.elements);this.nodeMapper=new vb(o=>new kb(n,o)),this.model=new n3(e,o3(this.nodeMapper,t),r3(n,i))}get onDidSplice(){return K.map(this.model.onDidSplice,({insertedNodes:e,deletedNodes:t})=>({insertedNodes:e.map(i=>this.nodeMapper.map(i)),deletedNodes:t.map(i=>this.nodeMapper.map(i))}))}get onDidChangeCollapseState(){return K.map(this.model.onDidChangeCollapseState,({node:e,deep:t})=>({node:this.nodeMapper.map(e),deep:t}))}get onDidChangeRenderNodeCount(){return K.map(this.model.onDidChangeRenderNodeCount,e=>this.nodeMapper.map(e))}setChildren(e,t=he.empty(),i={}){this.model.setChildren(e,t,i)}setCompressionEnabled(e){this.model.setCompressionEnabled(e)}has(e){return this.model.has(e)}getListIndex(e){return this.model.getListIndex(e)}getListRenderCount(e){return this.model.getListRenderCount(e)}getNode(e){return this.nodeMapper.map(this.model.getNode(e))}getNodeLocation(e){return e.element}getParentNodeLocation(e){return this.model.getParentNodeLocation(e)}getFirstElementChild(e){const t=this.model.getFirstElementChild(e);return t===null||typeof t=="undefined"?t:this.elementMapper(t.elements)}isCollapsible(e){return this.model.isCollapsible(e)}setCollapsible(e,t){return this.model.setCollapsible(e,t)}isCollapsed(e){return this.model.isCollapsed(e)}setCollapsed(e,t,i){return this.model.setCollapsed(e,t,i)}expandTo(e){return this.model.expandTo(e)}rerender(e){return this.model.rerender(e)}refilter(){return this.model.refilter()}getCompressedTreeNode(e=null){return this.model.getNode(e)}}var l3=globalThis&&globalThis.__decorate||function(s,e,t,i){var n=arguments.length,o=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o};class xb extends H2{constructor(e,t,i,n,o={}){super(e,t,i,n,o),this.user=e}get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}setChildren(e,t=he.empty(),i){this.model.setChildren(e,t,i)}rerender(e){if(e===void 0){this.view.rerender();return}this.model.rerender(e)}hasElement(e){return this.model.has(e)}createModel(e,t,i){return new Lb(e,t,i)}}class U2{constructor(e,t){this._compressedTreeNodeProvider=e,this.renderer=t,this.templateId=t.templateId,t.onDidChangeTwistieState&&(this.onDidChangeTwistieState=t.onDidChangeTwistieState)}get compressedTreeNodeProvider(){return this._compressedTreeNodeProvider()}renderTemplate(e){const t=this.renderer.renderTemplate(e);return{compressedTreeNode:void 0,data:t}}renderElement(e,t,i,n){const o=this.compressedTreeNodeProvider.getCompressedTreeNode(e.element);o.element.elements.length===1?(i.compressedTreeNode=void 0,this.renderer.renderElement(e,t,i.data,n)):(i.compressedTreeNode=o,this.renderer.renderCompressedElements(o,t,i.data,n))}disposeElement(e,t,i,n){i.compressedTreeNode?this.renderer.disposeCompressedElements&&this.renderer.disposeCompressedElements(i.compressedTreeNode,t,i.data,n):this.renderer.disposeElement&&this.renderer.disposeElement(e,t,i.data,n)}disposeTemplate(e){this.renderer.disposeTemplate(e.data)}renderTwistie(e,t){return this.renderer.renderTwistie?this.renderer.renderTwistie(e,t):!1}}l3([rt],U2.prototype,"compressedTreeNodeProvider",null);function c3(s,e){return e&&Object.assign(Object.assign({},e),{keyboardNavigationLabelProvider:e.keyboardNavigationLabelProvider&&{getKeyboardNavigationLabel(t){let i;try{i=s().getCompressedTreeNode(t)}catch{return e.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(t)}return i.element.elements.length===1?e.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(t):e.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(i.element.elements)}}})}class $2 extends xb{constructor(e,t,i,n,o={}){const r=()=>this,a=n.map(l=>new U2(r,l));super(e,t,i,a,c3(r,o))}setChildren(e,t=he.empty(),i){this.model.setChildren(e,t,i)}createModel(e,t,i){return new a3(e,t,i)}updateOptions(e={}){super.updateOptions(e),typeof e.compressionEnabled!="undefined"&&this.model.setCompressionEnabled(e.compressionEnabled)}getCompressedTreeNode(e=null){return this.model.getCompressedTreeNode(e)}}var $s=globalThis&&globalThis.__awaiter||function(s,e,t,i){function n(o){return o instanceof t?o:new t(function(r){r(o)})}return new(t||(t=Promise))(function(o,r){function a(h){try{c(i.next(h))}catch(d){r(d)}}function l(h){try{c(i.throw(h))}catch(d){r(d)}}function c(h){h.done?o(h.value):n(h.value).then(a,l)}c((i=i.apply(s,e||[])).next())})};function zm(s){return Object.assign(Object.assign({},s),{children:[],refreshPromise:void 0,stale:!0,slow:!1,collapsedByDefault:void 0})}function h1(s,e){return e.parent?e.parent===s?!0:h1(s,e.parent):!1}function h3(s,e){return s===e||h1(s,e)||h1(e,s)}class Ib{constructor(e){this.node=e}get element(){return this.node.element.element}get children(){return this.node.children.map(e=>new Ib(e))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}}class d3{constructor(e,t,i){this.renderer=e,this.nodeMapper=t,this.onDidChangeTwistieState=i,this.renderedNodes=new Map,this.templateId=e.templateId}renderTemplate(e){return{templateData:this.renderer.renderTemplate(e)}}renderElement(e,t,i,n){this.renderer.renderElement(this.nodeMapper.map(e),t,i.templateData,n)}renderTwistie(e,t){return e.slow?(t.classList.add(...g.treeItemLoading.classNamesArray),!0):(t.classList.remove(...g.treeItemLoading.classNamesArray),!1)}disposeElement(e,t,i,n){this.renderer.disposeElement&&this.renderer.disposeElement(this.nodeMapper.map(e),t,i.templateData,n)}disposeTemplate(e){this.renderer.disposeTemplate(e.templateData)}dispose(){this.renderedNodes.clear()}}function pS(s){return{browserEvent:s.browserEvent,elements:s.elements.map(e=>e.element)}}function _S(s){return{browserEvent:s.browserEvent,element:s.element&&s.element.element,target:s.target}}class u3 extends Rh{constructor(e){super(e.elements.map(t=>t.element)),this.data=e}}function Um(s){return s instanceof Rh?new u3(s):s}class f3{constructor(e){this.dnd=e}getDragURI(e){return this.dnd.getDragURI(e.element)}getDragLabel(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e.map(i=>i.element),t)}onDragStart(e,t){this.dnd.onDragStart&&this.dnd.onDragStart(Um(e),t)}onDragOver(e,t,i,n,o=!0){return this.dnd.onDragOver(Um(e),t&&t.element,i,n)}drop(e,t,i,n){this.dnd.drop(Um(e),t&&t.element,i,n)}onDragEnd(e){this.dnd.onDragEnd&&this.dnd.onDragEnd(e)}}function j2(s){return s&&Object.assign(Object.assign({},s),{collapseByDefault:!0,identityProvider:s.identityProvider&&{getId(e){return s.identityProvider.getId(e.element)}},dnd:s.dnd&&new f3(s.dnd),multipleSelectionController:s.multipleSelectionController&&{isSelectionSingleChangeEvent(e){return s.multipleSelectionController.isSelectionSingleChangeEvent(Object.assign(Object.assign({},e),{element:e.element}))},isSelectionRangeChangeEvent(e){return s.multipleSelectionController.isSelectionRangeChangeEvent(Object.assign(Object.assign({},e),{element:e.element}))}},accessibilityProvider:s.accessibilityProvider&&Object.assign(Object.assign({},s.accessibilityProvider),{getPosInSet:void 0,getSetSize:void 0,getRole:s.accessibilityProvider.getRole?e=>s.accessibilityProvider.getRole(e.element):()=>"treeitem",isChecked:s.accessibilityProvider.isChecked?e=>{var t;return!!(!((t=s.accessibilityProvider)===null||t===void 0)&&t.isChecked(e.element))}:void 0,getAriaLabel(e){return s.accessibilityProvider.getAriaLabel(e.element)},getWidgetAriaLabel(){return s.accessibilityProvider.getWidgetAriaLabel()},getWidgetRole:s.accessibilityProvider.getWidgetRole?()=>s.accessibilityProvider.getWidgetRole():()=>"tree",getAriaLevel:s.accessibilityProvider.getAriaLevel&&(e=>s.accessibilityProvider.getAriaLevel(e.element)),getActiveDescendantId:s.accessibilityProvider.getActiveDescendantId&&(e=>s.accessibilityProvider.getActiveDescendantId(e.element))}),filter:s.filter&&{filter(e,t){return s.filter.filter(e.element,t)}},keyboardNavigationLabelProvider:s.keyboardNavigationLabelProvider&&Object.assign(Object.assign({},s.keyboardNavigationLabelProvider),{getKeyboardNavigationLabel(e){return s.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e.element)}}),sorter:void 0,expandOnlyOnTwistieClick:typeof s.expandOnlyOnTwistieClick=="undefined"?void 0:typeof s.expandOnlyOnTwistieClick!="function"?s.expandOnlyOnTwistieClick:e=>s.expandOnlyOnTwistieClick(e.element),additionalScrollHeight:s.additionalScrollHeight})}function d1(s,e){e(s),s.children.forEach(t=>d1(t,e))}class K2{constructor(e,t,i,n,o,r={}){this.user=e,this.dataSource=o,this.nodes=new Map,this.subTreeRefreshPromises=new Map,this.refreshPromises=new Map,this._onDidRender=new M,this._onDidChangeNodeSlowState=new M,this.nodeMapper=new vb(a=>new Ib(a)),this.disposables=new se,this.identityProvider=r.identityProvider,this.autoExpandSingleChildren=typeof r.autoExpandSingleChildren=="undefined"?!1:r.autoExpandSingleChildren,this.sorter=r.sorter,this.collapseByDefault=r.collapseByDefault,this.tree=this.createTree(e,t,i,n,r),this.root=zm({element:void 0,parent:null,hasChildren:!0}),this.identityProvider&&(this.root=Object.assign(Object.assign({},this.root),{id:null})),this.nodes.set(null,this.root),this.tree.onDidChangeCollapseState(this._onDidChangeCollapseState,this,this.disposables)}get onDidChangeFocus(){return K.map(this.tree.onDidChangeFocus,pS)}get onDidChangeSelection(){return K.map(this.tree.onDidChangeSelection,pS)}get onMouseDblClick(){return K.map(this.tree.onMouseDblClick,_S)}get onPointer(){return K.map(this.tree.onPointer,_S)}get onDidFocus(){return this.tree.onDidFocus}get onDidChangeModel(){return this.tree.onDidChangeModel}get onDidChangeCollapseState(){return this.tree.onDidChangeCollapseState}get onDidDispose(){return this.tree.onDidDispose}createTree(e,t,i,n,o){const r=new yb(i),a=n.map(c=>new d3(c,this.nodeMapper,this._onDidChangeNodeSlowState.event)),l=j2(o)||{};return new xb(e,t,r,a,l)}updateOptions(e={}){this.tree.updateOptions(e)}getHTMLElement(){return this.tree.getHTMLElement()}get scrollTop(){return this.tree.scrollTop}set scrollTop(e){this.tree.scrollTop=e}domFocus(){this.tree.domFocus()}layout(e,t){this.tree.layout(e,t)}style(e){this.tree.style(e)}getInput(){return this.root.element}setInput(e,t){return $s(this,void 0,void 0,function*(){this.refreshPromises.forEach(n=>n.cancel()),this.refreshPromises.clear(),this.root.element=e;const i=t&&{viewState:t,focus:[],selection:[]};yield this._updateChildren(e,!0,!1,i),i&&(this.tree.setFocus(i.focus),this.tree.setSelection(i.selection)),t&&typeof t.scrollTop=="number"&&(this.scrollTop=t.scrollTop)})}_updateChildren(e=this.root.element,t=!0,i=!1,n,o){return $s(this,void 0,void 0,function*(){if(typeof this.root.element=="undefined")throw new Ni(this.user,"Tree input not set");this.root.refreshPromise&&(yield this.root.refreshPromise,yield K.toPromise(this._onDidRender.event));const r=this.getDataNode(e);if(yield this.refreshAndRenderNode(r,t,n,o),i)try{this.tree.rerender(r)}catch{}})}rerender(e){if(e===void 0||e===this.root.element){this.tree.rerender();return}const t=this.getDataNode(e);this.tree.rerender(t)}getNode(e=this.root.element){const t=this.getDataNode(e),i=this.tree.getNode(t===this.root?null:t);return this.nodeMapper.map(i)}collapse(e,t=!1){const i=this.getDataNode(e);return this.tree.collapse(i===this.root?null:i,t)}expand(e,t=!1){return $s(this,void 0,void 0,function*(){if(typeof this.root.element=="undefined")throw new Ni(this.user,"Tree input not set");this.root.refreshPromise&&(yield this.root.refreshPromise,yield K.toPromise(this._onDidRender.event));const i=this.getDataNode(e);if(this.tree.hasElement(i)&&!this.tree.isCollapsible(i)||(i.refreshPromise&&(yield this.root.refreshPromise,yield K.toPromise(this._onDidRender.event)),i!==this.root&&!i.refreshPromise&&!this.tree.isCollapsed(i)))return!1;const n=this.tree.expand(i===this.root?null:i,t);return i.refreshPromise&&(yield this.root.refreshPromise,yield K.toPromise(this._onDidRender.event)),n})}setSelection(e,t){const i=e.map(n=>this.getDataNode(n));this.tree.setSelection(i,t)}getSelection(){return this.tree.getSelection().map(t=>t.element)}setFocus(e,t){const i=e.map(n=>this.getDataNode(n));this.tree.setFocus(i,t)}getFocus(){return this.tree.getFocus().map(t=>t.element)}reveal(e,t){this.tree.reveal(this.getDataNode(e),t)}getParentElement(e){const t=this.tree.getParentElement(this.getDataNode(e));return t&&t.element}getFirstElementChild(e=this.root.element){const t=this.getDataNode(e),i=this.tree.getFirstElementChild(t===this.root?null:t);return i&&i.element}getDataNode(e){const t=this.nodes.get(e===this.root.element?null:e);if(!t)throw new Ni(this.user,`Data tree node not found: ${e}`);return t}refreshAndRenderNode(e,t,i,n){return $s(this,void 0,void 0,function*(){yield this.refreshNode(e,t,i),this.render(e,i,n)})}refreshNode(e,t,i){return $s(this,void 0,void 0,function*(){let n;return this.subTreeRefreshPromises.forEach((o,r)=>{!n&&h3(r,e)&&(n=o.then(()=>this.refreshNode(e,t,i)))}),n||this.doRefreshSubTree(e,t,i)})}doRefreshSubTree(e,t,i){return $s(this,void 0,void 0,function*(){let n;e.refreshPromise=new Promise(o=>n=o),this.subTreeRefreshPromises.set(e,e.refreshPromise),e.refreshPromise.finally(()=>{e.refreshPromise=void 0,this.subTreeRefreshPromises.delete(e)});try{const o=yield this.doRefreshNode(e,t,i);e.stale=!1,yield Gp.settled(o.map(r=>this.doRefreshSubTree(r,t,i)))}finally{n()}})}doRefreshNode(e,t,i){return $s(this,void 0,void 0,function*(){e.hasChildren=!!this.dataSource.hasChildren(e.element);let n;if(!e.hasChildren)n=Promise.resolve(he.empty());else{const o=this.doGetChildren(e);if(Kb(o))n=Promise.resolve(o);else{const r=Mc(800);r.then(()=>{e.slow=!0,this._onDidChangeNodeSlowState.fire(e)},a=>null),n=o.finally(()=>r.cancel())}}try{const o=yield n;return this.setChildren(e,o,t,i)}catch(o){if(e!==this.root&&this.tree.hasElement(e)&&this.tree.collapse(e),ph(o))return[];throw o}finally{e.slow&&(e.slow=!1,this._onDidChangeNodeSlowState.fire(e))}})}doGetChildren(e){let t=this.refreshPromises.get(e);if(t)return t;const i=this.dataSource.getChildren(e.element);return Kb(i)?this.processChildren(i):(t=Hy(()=>$s(this,void 0,void 0,function*(){return this.processChildren(yield i)})),this.refreshPromises.set(e,t),t.finally(()=>{this.refreshPromises.delete(e)}))}_onDidChangeCollapseState({node:e,deep:t}){e.element!==null&&!e.collapsed&&e.element.stale&&(t?this.collapse(e.element.element):this.refreshAndRenderNode(e.element,!1).catch(Ze))}setChildren(e,t,i,n){const o=[...t];if(e.children.length===0&&o.length===0)return[];const r=new Map,a=new Map;for(const h of e.children)if(r.set(h.element,h),this.identityProvider){const d=this.tree.isCollapsed(h);a.set(h.id,{node:h,collapsed:d})}const l=[],c=o.map(h=>{const d=!!this.dataSource.hasChildren(h);if(!this.identityProvider){const _=zm({element:h,parent:e,hasChildren:d});return d&&this.collapseByDefault&&!this.collapseByDefault(h)&&(_.collapsedByDefault=!1,l.push(_)),_}const u=this.identityProvider.getId(h).toString(),f=a.get(u);if(f){const _=f.node;return r.delete(_.element),this.nodes.delete(_.element),this.nodes.set(h,_),_.element=h,_.hasChildren=d,i?f.collapsed?(_.children.forEach(b=>d1(b,w=>this.nodes.delete(w.element))),_.children.splice(0,_.children.length),_.stale=!0):l.push(_):d&&this.collapseByDefault&&!this.collapseByDefault(h)&&(_.collapsedByDefault=!1,l.push(_)),_}const m=zm({element:h,parent:e,id:u,hasChildren:d});return n&&n.viewState.focus&&n.viewState.focus.indexOf(u)>-1&&n.focus.push(m),n&&n.viewState.selection&&n.viewState.selection.indexOf(u)>-1&&n.selection.push(m),n&&n.viewState.expanded&&n.viewState.expanded.indexOf(u)>-1?l.push(m):d&&this.collapseByDefault&&!this.collapseByDefault(h)&&(m.collapsedByDefault=!1,l.push(m)),m});for(const h of r.values())d1(h,d=>this.nodes.delete(d.element));for(const h of c)this.nodes.set(h.element,h);return e.children.splice(0,e.children.length,...c),e!==this.root&&this.autoExpandSingleChildren&&c.length===1&&l.length===0&&(c[0].collapsedByDefault=!1,l.push(c[0])),l}render(e,t,i){const n=e.children.map(r=>this.asTreeElement(r,t)),o=i&&Object.assign(Object.assign({},i),{diffIdentityProvider:i.diffIdentityProvider&&{getId(r){return i.diffIdentityProvider.getId(r.element)}}});this.tree.setChildren(e===this.root?null:e,n,o),e!==this.root&&this.tree.setCollapsible(e,e.hasChildren),this._onDidRender.fire()}asTreeElement(e,t){if(e.stale)return{element:e,collapsible:e.hasChildren,collapsed:!0};let i;return t&&t.viewState.expanded&&e.id&&t.viewState.expanded.indexOf(e.id)>-1?i=!1:i=e.collapsedByDefault,e.collapsedByDefault=void 0,{element:e,children:e.hasChildren?he.map(e.children,n=>this.asTreeElement(n,t)):[],collapsible:e.hasChildren,collapsed:i}}processChildren(e){return this.sorter&&(e=[...e].sort(this.sorter.compare.bind(this.sorter))),e}dispose(){this.disposables.dispose()}}class Eb{constructor(e){this.node=e}get element(){return{elements:this.node.element.elements.map(e=>e.element),incompressible:this.node.element.incompressible}}get children(){return this.node.children.map(e=>new Eb(e))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}}class g3{constructor(e,t,i,n){this.renderer=e,this.nodeMapper=t,this.compressibleNodeMapperProvider=i,this.onDidChangeTwistieState=n,this.renderedNodes=new Map,this.disposables=[],this.templateId=e.templateId}renderTemplate(e){return{templateData:this.renderer.renderTemplate(e)}}renderElement(e,t,i,n){this.renderer.renderElement(this.nodeMapper.map(e),t,i.templateData,n)}renderCompressedElements(e,t,i,n){this.renderer.renderCompressedElements(this.compressibleNodeMapperProvider().map(e),t,i.templateData,n)}renderTwistie(e,t){return e.slow?(t.classList.add(...g.treeItemLoading.classNamesArray),!0):(t.classList.remove(...g.treeItemLoading.classNamesArray),!1)}disposeElement(e,t,i,n){this.renderer.disposeElement&&this.renderer.disposeElement(this.nodeMapper.map(e),t,i.templateData,n)}disposeCompressedElements(e,t,i,n){this.renderer.disposeCompressedElements&&this.renderer.disposeCompressedElements(this.compressibleNodeMapperProvider().map(e),t,i.templateData,n)}disposeTemplate(e){this.renderer.disposeTemplate(e.templateData)}dispose(){this.renderedNodes.clear(),this.disposables=Me(this.disposables)}}function m3(s){const e=s&&j2(s);return e&&Object.assign(Object.assign({},e),{keyboardNavigationLabelProvider:e.keyboardNavigationLabelProvider&&Object.assign(Object.assign({},e.keyboardNavigationLabelProvider),{getCompressedNodeKeyboardNavigationLabel(t){return s.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(t.map(i=>i.element))}})})}class p3 extends K2{constructor(e,t,i,n,o,r,a={}){super(e,t,i,o,r,a),this.compressionDelegate=n,this.compressibleNodeMapper=new vb(l=>new Eb(l)),this.filter=a.filter}createTree(e,t,i,n,o){const r=new yb(i),a=n.map(c=>new g3(c,this.nodeMapper,()=>this.compressibleNodeMapper,this._onDidChangeNodeSlowState.event)),l=m3(o)||{};return new $2(e,t,r,a,l)}asTreeElement(e,t){return Object.assign({incompressible:this.compressionDelegate.isIncompressible(e.element)},super.asTreeElement(e,t))}updateOptions(e={}){this.tree.updateOptions(e)}render(e,t){if(!this.identityProvider)return super.render(e,t);const i=u=>this.identityProvider.getId(u).toString(),n=u=>{const f=new Set;for(const m of u){const _=this.tree.getCompressedTreeNode(m===this.root?null:m);if(!!_.element)for(const b of _.element.elements)f.add(i(b.element))}return f},o=n(this.tree.getSelection()),r=n(this.tree.getFocus());super.render(e,t);const a=this.getSelection();let l=!1;const c=this.getFocus();let h=!1;const d=u=>{const f=u.element;if(f)for(let m=0;m{const i=this.filter.filter(t,1),n=_3(i);if(n===2)throw new Error("Recursive tree visibility not supported in async data compressed trees");return n===1})),super.processChildren(e)}}function _3(s){return typeof s=="boolean"?s?1:0:Sb(s)?rh(s.visibility):rh(s)}class b3 extends H2{constructor(e,t,i,n,o,r={}){super(e,t,i,n,r),this.user=e,this.dataSource=o,this.identityProvider=r.identityProvider}createModel(e,t,i){return new Lb(e,t,i)}}new G("isMac",me,p("isMac","Whether the operating system is macOS"));new G("isLinux",qt,p("isLinux","Whether the operating system is Linux"));new G("isWindows",li,p("isWindows","Whether the operating system is Windows"));new G("isWeb",fl,p("isWeb","Whether the platform is a web browser"));new G("isMacNative",me&&!fl,p("isMacNative","Whether the operating system is macOS on a non-browser platform"));new G("isIOS",pr,p("isIOS","Whether the operating system is iOS"));new G("isDevelopment",!1,!0);const q2="inputFocus";new G(q2,!1,p("inputFocus","Whether keyboard focus is inside an input box"));var as=globalThis&&globalThis.__decorate||function(s,e,t,i){var n=arguments.length,o=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},re=globalThis&&globalThis.__param||function(s,e){return function(t,i){e(t,i,s)}};const ls=pe("listService");let u1=class{constructor(e){this._themeService=e,this.disposables=new se,this.lists=[],this._lastFocusedWidget=void 0,this._hasCreatedStyleController=!1}get lastFocusedList(){return this._lastFocusedWidget}setLastFocusedList(e){var t,i;e!==this._lastFocusedWidget&&((t=this._lastFocusedWidget)===null||t===void 0||t.getHTMLElement().classList.remove("last-focused"),this._lastFocusedWidget=e,(i=this._lastFocusedWidget)===null||i===void 0||i.getHTMLElement().classList.add("last-focused"))}register(e,t){if(!this._hasCreatedStyleController){this._hasCreatedStyleController=!0;const n=new V2(xn(),"");this.disposables.add(ll(n,this._themeService))}if(this.lists.some(n=>n.widget===e))throw new Error("Cannot register the same widget multiple times");const i={widget:e,extraContextKeys:t};return this.lists.push(i),e.getHTMLElement()===document.activeElement&&this.setLastFocusedList(e),or(e.onDidFocus(()=>this.setLastFocusedList(e)),Pe(()=>this.lists.splice(this.lists.indexOf(i),1)),e.onDidDispose(()=>{this.lists=this.lists.filter(n=>n!==i),this._lastFocusedWidget===e&&this.setLastFocusedList(void 0)}))}dispose(){this.disposables.dispose()}};u1=as([re(0,ot)],u1);const G2=new G("listFocus",!0),ag=new G("listSupportsMultiselect",!0);Oe.and(G2,Oe.not(q2));const Db=new G("listHasSelectionOrFocus",!1),Nb=new G("listDoubleSelection",!1),Tb=new G("listMultiSelection",!1),lg=new G("listSelectionNavigation",!1),C3=new G("treeElementCanCollapse",!1),w3=new G("treeElementHasParent",!1),v3=new G("treeElementCanExpand",!1),S3=new G("treeElementHasChild",!1),Z2="listAutomaticKeyboardNavigation";function cg(s,e){const t=s.createScoped(e.getHTMLElement());return G2.bindTo(t),t}const Ur="workbench.list.multiSelectModifier",f1="workbench.list.openMode",Ai="workbench.list.horizontalScrolling",cf="workbench.list.keyboardNavigation",Mb="workbench.list.automaticKeyboardNavigation",ch="workbench.tree.indent",hf="workbench.tree.renderIndentGuides",En="workbench.list.smoothScrolling",is="workbench.list.mouseWheelScrollSensitivity",ns="workbench.list.fastScrollSensitivity",df="workbench.tree.expandMode";function ss(s){return s.getValue(Ur)==="alt"}class y3 extends W{constructor(e){super(),this.configurationService=e,this.useAltAsMultipleSelectionModifier=ss(e),this.registerListeners()}registerListeners(){this._register(this.configurationService.onDidChangeConfiguration(e=>{e.affectsConfiguration(Ur)&&(this.useAltAsMultipleSelectionModifier=ss(this.configurationService))}))}isSelectionSingleChangeEvent(e){return this.useAltAsMultipleSelectionModifier?e.browserEvent.altKey:P2(e)}isSelectionRangeChangeEvent(e){return F2(e)}}function hg(s,e,t){var i;const n=new se;return[Object.assign(Object.assign({},s),{keyboardNavigationDelegate:{mightProducePrintableCharacter(r){return t.mightProducePrintableCharacter(r)}},smoothScrolling:Boolean(e.getValue(En)),mouseWheelScrollSensitivity:e.getValue(is),fastScrollSensitivity:e.getValue(ns),multipleSelectionController:(i=s.multipleSelectionController)!==null&&i!==void 0?i:n.add(new y3(e))}),n]}let g1=class extends Bs{constructor(e,t,i,n,o,r,a,l,c,h){const d=typeof o.horizontalScrolling!="undefined"?o.horizontalScrolling:Boolean(c.getValue(Ai)),[u,f]=hg(o,c,h);super(e,t,i,n,Object.assign(Object.assign(Object.assign({keyboardSupport:!1},gn(l.getColorTheme(),tg)),u),{horizontalScrolling:d})),this.disposables.add(f),this.contextKeyService=cg(r,this),this.themeService=l,this.listSupportsMultiSelect=ag.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(o.multipleSelectionSupport!==!1),lg.bindTo(this.contextKeyService).set(Boolean(o.selectionNavigation)),this.listHasSelectionOrFocus=Db.bindTo(this.contextKeyService),this.listDoubleSelection=Nb.bindTo(this.contextKeyService),this.listMultiSelection=Tb.bindTo(this.contextKeyService),this.horizontalScrolling=o.horizontalScrolling,this._useAltAsMultipleSelectionModifier=ss(c),this.disposables.add(this.contextKeyService),this.disposables.add(a.register(this)),o.overrideStyles&&this.updateStyles(o.overrideStyles),this.disposables.add(this.onDidChangeSelection(()=>{const _=this.getSelection(),b=this.getFocus();this.contextKeyService.bufferChangeEvents(()=>{this.listHasSelectionOrFocus.set(_.length>0||b.length>0),this.listMultiSelection.set(_.length>1),this.listDoubleSelection.set(_.length===2)})})),this.disposables.add(this.onDidChangeFocus(()=>{const _=this.getSelection(),b=this.getFocus();this.listHasSelectionOrFocus.set(_.length>0||b.length>0)})),this.disposables.add(c.onDidChangeConfiguration(_=>{_.affectsConfiguration(Ur)&&(this._useAltAsMultipleSelectionModifier=ss(c));let b={};if(_.affectsConfiguration(Ai)&&this.horizontalScrolling===void 0){const w=Boolean(c.getValue(Ai));b=Object.assign(Object.assign({},b),{horizontalScrolling:w})}if(_.affectsConfiguration(En)){const w=Boolean(c.getValue(En));b=Object.assign(Object.assign({},b),{smoothScrolling:w})}if(_.affectsConfiguration(is)){const w=c.getValue(is);b=Object.assign(Object.assign({},b),{mouseWheelScrollSensitivity:w})}if(_.affectsConfiguration(ns)){const w=c.getValue(ns);b=Object.assign(Object.assign({},b),{fastScrollSensitivity:w})}Object.keys(b).length>0&&this.updateOptions(b)})),this.navigator=new Y2(this,Object.assign({configurationService:c},o)),this.disposables.add(this.navigator)}updateOptions(e){super.updateOptions(e),e.overrideStyles&&this.updateStyles(e.overrideStyles),e.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)}updateStyles(e){var t;(t=this._styler)===null||t===void 0||t.dispose(),this._styler=ll(this,this.themeService,e)}dispose(){var e;(e=this._styler)===null||e===void 0||e.dispose(),super.dispose()}};g1=as([re(5,Ne),re(6,ls),re(7,ot),re(8,Rt),re(9,Li)],g1);let bS=class extends W8{constructor(e,t,i,n,o,r,a,l,c,h){const d=typeof o.horizontalScrolling!="undefined"?o.horizontalScrolling:Boolean(c.getValue(Ai)),[u,f]=hg(o,c,h);super(e,t,i,n,Object.assign(Object.assign(Object.assign({keyboardSupport:!1},gn(l.getColorTheme(),tg)),u),{horizontalScrolling:d})),this.disposables=new se,this.disposables.add(f),this.contextKeyService=cg(r,this),this.themeService=l,this.horizontalScrolling=o.horizontalScrolling,this.listSupportsMultiSelect=ag.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(o.multipleSelectionSupport!==!1),lg.bindTo(this.contextKeyService).set(Boolean(o.selectionNavigation)),this._useAltAsMultipleSelectionModifier=ss(c),this.disposables.add(this.contextKeyService),this.disposables.add(a.register(this)),o.overrideStyles&&this.updateStyles(o.overrideStyles),o.overrideStyles&&this.disposables.add(ll(this,l,o.overrideStyles)),this.disposables.add(c.onDidChangeConfiguration(_=>{_.affectsConfiguration(Ur)&&(this._useAltAsMultipleSelectionModifier=ss(c));let b={};if(_.affectsConfiguration(Ai)&&this.horizontalScrolling===void 0){const w=Boolean(c.getValue(Ai));b=Object.assign(Object.assign({},b),{horizontalScrolling:w})}if(_.affectsConfiguration(En)){const w=Boolean(c.getValue(En));b=Object.assign(Object.assign({},b),{smoothScrolling:w})}if(_.affectsConfiguration(is)){const w=c.getValue(is);b=Object.assign(Object.assign({},b),{mouseWheelScrollSensitivity:w})}if(_.affectsConfiguration(ns)){const w=c.getValue(ns);b=Object.assign(Object.assign({},b),{fastScrollSensitivity:w})}Object.keys(b).length>0&&this.updateOptions(b)})),this.navigator=new Y2(this,Object.assign({configurationService:c},o)),this.disposables.add(this.navigator)}updateOptions(e){super.updateOptions(e),e.overrideStyles&&this.updateStyles(e.overrideStyles),e.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)}updateStyles(e){var t;(t=this._styler)===null||t===void 0||t.dispose(),this._styler=ll(this,this.themeService,e)}dispose(){var e;(e=this._styler)===null||e===void 0||e.dispose(),this.disposables.dispose(),super.dispose()}};bS=as([re(5,Ne),re(6,ls),re(7,ot),re(8,Rt),re(9,Li)],bS);let CS=class extends rg{constructor(e,t,i,n,o,r,a,l,c,h,d){const u=typeof r.horizontalScrolling!="undefined"?r.horizontalScrolling:Boolean(h.getValue(Ai)),[f,m]=hg(r,h,d);super(e,t,i,n,o,Object.assign(Object.assign(Object.assign({keyboardSupport:!1},gn(c.getColorTheme(),tg)),f),{horizontalScrolling:u})),this.disposables.add(m),this.contextKeyService=cg(a,this),this.themeService=c,this.listSupportsMultiSelect=ag.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(r.multipleSelectionSupport!==!1),lg.bindTo(this.contextKeyService).set(Boolean(r.selectionNavigation)),this.listHasSelectionOrFocus=Db.bindTo(this.contextKeyService),this.listDoubleSelection=Nb.bindTo(this.contextKeyService),this.listMultiSelection=Tb.bindTo(this.contextKeyService),this.horizontalScrolling=r.horizontalScrolling,this._useAltAsMultipleSelectionModifier=ss(h),this.disposables.add(this.contextKeyService),this.disposables.add(l.register(this)),r.overrideStyles&&this.updateStyles(r.overrideStyles),this.disposables.add(this.onDidChangeSelection(()=>{const b=this.getSelection(),w=this.getFocus();this.contextKeyService.bufferChangeEvents(()=>{this.listHasSelectionOrFocus.set(b.length>0||w.length>0),this.listMultiSelection.set(b.length>1),this.listDoubleSelection.set(b.length===2)})})),this.disposables.add(this.onDidChangeFocus(()=>{const b=this.getSelection(),w=this.getFocus();this.listHasSelectionOrFocus.set(b.length>0||w.length>0)})),this.disposables.add(h.onDidChangeConfiguration(b=>{b.affectsConfiguration(Ur)&&(this._useAltAsMultipleSelectionModifier=ss(h));let w={};if(b.affectsConfiguration(Ai)&&this.horizontalScrolling===void 0){const C=Boolean(h.getValue(Ai));w=Object.assign(Object.assign({},w),{horizontalScrolling:C})}if(b.affectsConfiguration(En)){const C=Boolean(h.getValue(En));w=Object.assign(Object.assign({},w),{smoothScrolling:C})}if(b.affectsConfiguration(is)){const C=h.getValue(is);w=Object.assign(Object.assign({},w),{mouseWheelScrollSensitivity:C})}if(b.affectsConfiguration(ns)){const C=h.getValue(ns);w=Object.assign(Object.assign({},w),{fastScrollSensitivity:C})}Object.keys(w).length>0&&this.updateOptions(w)})),this.navigator=new L3(this,Object.assign({configurationService:h},r)),this.disposables.add(this.navigator)}updateOptions(e){super.updateOptions(e),e.overrideStyles&&this.updateStyles(e.overrideStyles),e.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)}updateStyles(e){var t;(t=this._styler)===null||t===void 0||t.dispose(),this._styler=ll(this,this.themeService,e)}dispose(){var e;(e=this._styler)===null||e===void 0||e.dispose(),this.disposables.dispose(),super.dispose()}};CS=as([re(6,Ne),re(7,ls),re(8,ot),re(9,Rt),re(10,Li)],CS);class Rb extends W{constructor(e,t){var i;super(),this.widget=e,this._onDidOpen=this._register(new M),this.onDidOpen=this._onDidOpen.event,this._register(K.filter(this.widget.onDidChangeSelection,n=>n.browserEvent instanceof KeyboardEvent)(n=>this.onSelectionFromKeyboard(n))),this._register(this.widget.onPointer(n=>this.onPointer(n.element,n.browserEvent))),this._register(this.widget.onMouseDblClick(n=>this.onMouseDblClick(n.element,n.browserEvent))),typeof(t==null?void 0:t.openOnSingleClick)!="boolean"&&(t==null?void 0:t.configurationService)?(this.openOnSingleClick=(t==null?void 0:t.configurationService.getValue(f1))!=="doubleClick",this._register(t==null?void 0:t.configurationService.onDidChangeConfiguration(()=>{this.openOnSingleClick=(t==null?void 0:t.configurationService.getValue(f1))!=="doubleClick"}))):this.openOnSingleClick=(i=t==null?void 0:t.openOnSingleClick)!==null&&i!==void 0?i:!0}onSelectionFromKeyboard(e){if(e.elements.length!==1)return;const t=e.browserEvent,i=typeof t.preserveFocus=="boolean"?t.preserveFocus:!0,n=typeof t.pinned=="boolean"?t.pinned:!i,o=!1;this._open(this.getSelectedElement(),i,n,o,e.browserEvent)}onPointer(e,t){if(!this.openOnSingleClick||t.detail===2)return;const n=t.button===1,o=!0,r=n,a=t.ctrlKey||t.metaKey||t.altKey;this._open(e,o,r,a,t)}onMouseDblClick(e,t){if(!t)return;const i=t.target;if(i.classList.contains("monaco-tl-twistie")||i.classList.contains("monaco-icon-label")&&i.classList.contains("folder-icon")&&t.offsetX<16)return;const o=!1,r=!0,a=t.ctrlKey||t.metaKey||t.altKey;this._open(e,o,r,a,t)}_open(e,t,i,n,o){!e||this._onDidOpen.fire({editorOptions:{preserveFocus:t,pinned:i,revealIfVisible:!0},sideBySide:n,element:e,browserEvent:o})}}class Y2 extends Rb{constructor(e,t){super(e,t),this.widget=e}getSelectedElement(){return this.widget.getSelectedElements()[0]}}class L3 extends Rb{constructor(e,t){super(e,t)}getSelectedElement(){return this.widget.getSelectedElements()[0]}}class k3 extends Rb{constructor(e,t){super(e,t)}getSelectedElement(){var e;return(e=this.widget.getSelection()[0])!==null&&e!==void 0?e:void 0}}function x3(s,e){let t=!1;return i=>{if(i.toKeybinding().isModifierKey())return!1;if(t)return t=!1,!1;const n=e.softDispatch(i,s);return n&&n.enterChord?(t=!0,!1):(t=!1,!0)}}let wS=class extends xb{constructor(e,t,i,n,o,r,a,l,c,h,d){const{options:u,getAutomaticKeyboardNavigation:f,disposable:m}=Oh(t,o,r,c,h,d);super(e,t,i,n,u),this.disposables.add(m),this.internals=new Er(this,o,f,o.overrideStyles,r,a,l,c,d),this.disposables.add(this.internals)}updateOptions(e){super.updateOptions(e),this.internals.updateOptions(e)}};wS=as([re(5,Ne),re(6,ls),re(7,ot),re(8,Rt),re(9,Li),re(10,Vi)],wS);let vS=class extends $2{constructor(e,t,i,n,o,r,a,l,c,h,d){const{options:u,getAutomaticKeyboardNavigation:f,disposable:m}=Oh(t,o,r,c,h,d);super(e,t,i,n,u),this.disposables.add(m),this.internals=new Er(this,o,f,o.overrideStyles,r,a,l,c,d),this.disposables.add(this.internals)}updateOptions(e={}){super.updateOptions(e),e.overrideStyles&&this.internals.updateStyleOverrides(e.overrideStyles),this.internals.updateOptions(e)}};vS=as([re(5,Ne),re(6,ls),re(7,ot),re(8,Rt),re(9,Li),re(10,Vi)],vS);let SS=class extends b3{constructor(e,t,i,n,o,r,a,l,c,h,d,u){const{options:f,getAutomaticKeyboardNavigation:m,disposable:_}=Oh(t,r,a,h,d,u);super(e,t,i,n,o,f),this.disposables.add(_),this.internals=new Er(this,r,m,r.overrideStyles,a,l,c,h,u),this.disposables.add(this.internals)}updateOptions(e={}){super.updateOptions(e),e.overrideStyles&&this.internals.updateStyleOverrides(e.overrideStyles),this.internals.updateOptions(e)}};SS=as([re(6,Ne),re(7,ls),re(8,ot),re(9,Rt),re(10,Li),re(11,Vi)],SS);let yS=class extends K2{constructor(e,t,i,n,o,r,a,l,c,h,d,u){const{options:f,getAutomaticKeyboardNavigation:m,disposable:_}=Oh(t,r,a,h,d,u);super(e,t,i,n,o,f),this.disposables.add(_),this.internals=new Er(this,r,m,r.overrideStyles,a,l,c,h,u),this.disposables.add(this.internals)}get onDidOpen(){return this.internals.onDidOpen}updateOptions(e={}){super.updateOptions(e),e.overrideStyles&&this.internals.updateStyleOverrides(e.overrideStyles),this.internals.updateOptions(e)}};yS=as([re(6,Ne),re(7,ls),re(8,ot),re(9,Rt),re(10,Li),re(11,Vi)],yS);let LS=class extends p3{constructor(e,t,i,n,o,r,a,l,c,h,d,u,f){const{options:m,getAutomaticKeyboardNavigation:_,disposable:b}=Oh(t,a,l,d,u,f);super(e,t,i,n,o,r,m),this.disposables.add(b),this.internals=new Er(this,a,_,a.overrideStyles,l,c,h,d,f),this.disposables.add(this.internals)}updateOptions(e){super.updateOptions(e),this.internals.updateOptions(e)}};LS=as([re(7,Ne),re(8,ls),re(9,ot),re(10,Rt),re(11,Li),re(12,Vi)],LS);function Oh(s,e,t,i,n,o){var r;const a=()=>{let m=Boolean(t.getContextKeyValue(Z2));return m&&(m=Boolean(i.getValue(Mb))),m},l=o.isScreenReaderOptimized(),c=e.simpleKeyboardNavigation||l?"simple":i.getValue(cf),h=e.horizontalScrolling!==void 0?e.horizontalScrolling:Boolean(i.getValue(Ai)),[d,u]=hg(e,i,n),f=e.additionalScrollHeight;return{getAutomaticKeyboardNavigation:a,disposable:u,options:Object.assign(Object.assign({keyboardSupport:!1},d),{indent:typeof i.getValue(ch)=="number"?i.getValue(ch):void 0,renderIndentGuides:i.getValue(hf),smoothScrolling:Boolean(i.getValue(En)),automaticKeyboardNavigation:a(),simpleKeyboardNavigation:c==="simple",filterOnType:c==="filter",horizontalScrolling:h,keyboardNavigationEventFilter:x3(s,n),additionalScrollHeight:f,hideTwistiesOfChildlessElements:e.hideTwistiesOfChildlessElements,expandOnlyOnTwistieClick:(r=e.expandOnlyOnTwistieClick)!==null&&r!==void 0?r:i.getValue(df)==="doubleClick"})}}let Er=class{constructor(e,t,i,n,o,r,a,l,c){this.tree=e,this.themeService=a,this.disposables=[],this.contextKeyService=cg(o,e),this.listSupportsMultiSelect=ag.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(t.multipleSelectionSupport!==!1),lg.bindTo(this.contextKeyService).set(Boolean(t.selectionNavigation)),this.hasSelectionOrFocus=Db.bindTo(this.contextKeyService),this.hasDoubleSelection=Nb.bindTo(this.contextKeyService),this.hasMultiSelection=Tb.bindTo(this.contextKeyService),this.treeElementCanCollapse=C3.bindTo(this.contextKeyService),this.treeElementHasParent=w3.bindTo(this.contextKeyService),this.treeElementCanExpand=v3.bindTo(this.contextKeyService),this.treeElementHasChild=S3.bindTo(this.contextKeyService),this._useAltAsMultipleSelectionModifier=ss(l);const d=new Set;d.add(Z2);const u=()=>{const _=c.isScreenReaderOptimized()?"simple":l.getValue(cf);e.updateOptions({simpleKeyboardNavigation:_==="simple",filterOnType:_==="filter"})};this.updateStyleOverrides(n);const f=()=>{const m=e.getFocus()[0];if(!m)return;const _=e.getNode(m);this.treeElementCanCollapse.set(_.collapsible&&!_.collapsed),this.treeElementHasParent.set(!!e.getParentElement(m)),this.treeElementCanExpand.set(_.collapsible&&_.collapsed),this.treeElementHasChild.set(!!e.getFirstElementChild(m))};this.disposables.push(this.contextKeyService,r.register(e),e.onDidChangeSelection(()=>{const m=e.getSelection(),_=e.getFocus();this.contextKeyService.bufferChangeEvents(()=>{this.hasSelectionOrFocus.set(m.length>0||_.length>0),this.hasMultiSelection.set(m.length>1),this.hasDoubleSelection.set(m.length===2)})}),e.onDidChangeFocus(()=>{const m=e.getSelection(),_=e.getFocus();this.hasSelectionOrFocus.set(m.length>0||_.length>0),f()}),e.onDidChangeCollapseState(f),e.onDidChangeModel(f),l.onDidChangeConfiguration(m=>{let _={};if(m.affectsConfiguration(Ur)&&(this._useAltAsMultipleSelectionModifier=ss(l)),m.affectsConfiguration(ch)){const b=l.getValue(ch);_=Object.assign(Object.assign({},_),{indent:b})}if(m.affectsConfiguration(hf)){const b=l.getValue(hf);_=Object.assign(Object.assign({},_),{renderIndentGuides:b})}if(m.affectsConfiguration(En)){const b=Boolean(l.getValue(En));_=Object.assign(Object.assign({},_),{smoothScrolling:b})}if(m.affectsConfiguration(cf)&&u(),m.affectsConfiguration(Mb)&&(_=Object.assign(Object.assign({},_),{automaticKeyboardNavigation:i()})),m.affectsConfiguration(Ai)&&t.horizontalScrolling===void 0){const b=Boolean(l.getValue(Ai));_=Object.assign(Object.assign({},_),{horizontalScrolling:b})}if(m.affectsConfiguration(df)&&t.expandOnlyOnTwistieClick===void 0&&(_=Object.assign(Object.assign({},_),{expandOnlyOnTwistieClick:l.getValue(df)==="doubleClick"})),m.affectsConfiguration(is)){const b=l.getValue(is);_=Object.assign(Object.assign({},_),{mouseWheelScrollSensitivity:b})}if(m.affectsConfiguration(ns)){const b=l.getValue(ns);_=Object.assign(Object.assign({},_),{fastScrollSensitivity:b})}Object.keys(_).length>0&&e.updateOptions(_)}),this.contextKeyService.onDidChangeContext(m=>{m.affectsSome(d)&&e.updateOptions({automaticKeyboardNavigation:i()})}),c.onDidChangeScreenReaderOptimized(()=>u())),this.navigator=new k3(e,Object.assign({configurationService:l},t)),this.disposables.push(this.navigator)}get onDidOpen(){return this.navigator.onDidOpen}updateOptions(e){e.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)}updateStyleOverrides(e){Me(this.styler),this.styler=e?ll(this.tree,this.themeService,e):W.None}dispose(){this.disposables=Me(this.disposables),Me(this.styler),this.styler=void 0}};Er=as([re(4,Ne),re(5,ls),re(6,ot),re(7,Rt),re(8,Vi)],Er);const I3=xt.as(kl.Configuration);I3.registerConfiguration({id:"workbench",order:7,title:p("workbenchConfigurationTitle","Workbench"),type:"object",properties:{[Ur]:{type:"string",enum:["ctrlCmd","alt"],enumDescriptions:[p("multiSelectModifier.ctrlCmd","Maps to `Control` on Windows and Linux and to `Command` on macOS."),p("multiSelectModifier.alt","Maps to `Alt` on Windows and Linux and to `Option` on macOS.")],default:"ctrlCmd",description:p({key:"multiSelectModifier",comment:["- `ctrlCmd` refers to a value the setting can take and should not be localized.","- `Control` and `Command` refer to the modifier keys Ctrl or Cmd on the keyboard and can be localized."]},"The modifier to be used to add an item in trees and lists to a multi-selection with the mouse (for example in the explorer, open editors and scm view). The 'Open to Side' mouse gestures - if supported - will adapt such that they do not conflict with the multiselect modifier.")},[f1]:{type:"string",enum:["singleClick","doubleClick"],default:"singleClick",description:p({key:"openModeModifier",comment:["`singleClick` and `doubleClick` refers to a value the setting can take and should not be localized."]},"Controls how to open items in trees and lists using the mouse (if supported). Note that some trees and lists might choose to ignore this setting if it is not applicable.")},[Ai]:{type:"boolean",default:!1,description:p("horizontalScrolling setting","Controls whether lists and trees support horizontal scrolling in the workbench. Warning: turning on this setting has a performance implication.")},[ch]:{type:"number",default:8,minimum:4,maximum:40,description:p("tree indent setting","Controls tree indentation in pixels.")},[hf]:{type:"string",enum:["none","onHover","always"],default:"onHover",description:p("render tree indent guides","Controls whether the tree should render indent guides.")},[En]:{type:"boolean",default:!1,description:p("list smoothScrolling setting","Controls whether lists and trees have smooth scrolling.")},[is]:{type:"number",default:1,description:p("Mouse Wheel Scroll Sensitivity","A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.")},[ns]:{type:"number",default:5,description:p("Fast Scroll Sensitivity","Scrolling speed multiplier when pressing `Alt`.")},[cf]:{type:"string",enum:["simple","highlight","filter"],enumDescriptions:[p("keyboardNavigationSettingKey.simple","Simple keyboard navigation focuses elements which match the keyboard input. Matching is done only on prefixes."),p("keyboardNavigationSettingKey.highlight","Highlight keyboard navigation highlights elements which match the keyboard input. Further up and down navigation will traverse only the highlighted elements."),p("keyboardNavigationSettingKey.filter","Filter keyboard navigation will filter out and hide all the elements which do not match the keyboard input.")],default:"highlight",description:p("keyboardNavigationSettingKey","Controls the keyboard navigation style for lists and trees in the workbench. Can be simple, highlight and filter.")},[Mb]:{type:"boolean",default:!0,markdownDescription:p("automatic keyboard navigation setting","Controls whether keyboard navigation in lists and trees is automatically triggered simply by typing. If set to `false`, keyboard navigation is only triggered when executing the `list.toggleKeyboardNavigation` command, for which you can assign a keyboard shortcut.")},[df]:{type:"string",enum:["singleClick","doubleClick"],default:"singleClick",description:p("expand mode","Controls how tree folders are expanded when clicking the folder names. Note that some trees and lists might choose to ignore this setting if it is not applicable.")}}});var m1;(function(s){s[s.PRESERVE=0]="PRESERVE",s[s.LAST=1]="LAST"})(m1||(m1={}));const X2={Quickaccess:"workbench.contributions.quickaccess"};class E3{constructor(){this.providers=[],this.defaultProvider=void 0}registerQuickAccessProvider(e){return e.prefix.length===0?this.defaultProvider=e:this.providers.push(e),this.providers.sort((t,i)=>i.prefix.length-t.prefix.length),Pe(()=>{this.providers.splice(this.providers.indexOf(e),1),this.defaultProvider===e&&(this.defaultProvider=void 0)})}getQuickAccessProviders(){return ty([this.defaultProvider,...this.providers])}getQuickAccessProvider(e){return e&&this.providers.find(i=>e.startsWith(i.prefix))||void 0||this.defaultProvider}}xt.add(X2.Quickaccess,new E3);const Q2=pe("quickInputService");var D3=globalThis&&globalThis.__decorate||function(s,e,t,i){var n=arguments.length,o=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},kS=globalThis&&globalThis.__param||function(s,e){return function(t,i){e(t,i,s)}};let p1=class extends W{constructor(e,t){super(),this.quickInputService=e,this.instantiationService=t,this.registry=xt.as(X2.Quickaccess),this.mapProviderToDescriptor=new Map,this.lastAcceptedPickerValues=new Map,this.visibleQuickAccess=void 0}show(e="",t){this.doShowOrPick(e,!1,t)}doShowOrPick(e,t,i){var n;const[o,r]=this.getOrInstantiateProvider(e),a=this.visibleQuickAccess,l=a==null?void 0:a.descriptor;if(a&&r&&l===r){e!==r.prefix&&!(i!=null&&i.preserveValue)&&(a.picker.value=e),this.adjustValueSelection(a.picker,r,i);return}if(r&&!(i!=null&&i.preserveValue)){let f;if(a&&l&&l!==r){const m=a.value.substr(l.prefix.length);m&&(f=`${r.prefix}${m}`)}if(!f){const m=o==null?void 0:o.defaultFilterValue;m===m1.LAST?f=this.lastAcceptedPickerValues.get(r):typeof m=="string"&&(f=`${r.prefix}${m}`)}typeof f=="string"&&(e=f)}const c=new se,h=c.add(this.quickInputService.createQuickPick());h.value=e,this.adjustValueSelection(h,r,i),h.placeholder=r==null?void 0:r.placeholder,h.quickNavigate=i==null?void 0:i.quickNavigateConfiguration,h.hideInput=!!h.quickNavigate&&!a,(typeof(i==null?void 0:i.itemActivation)=="number"||(i==null?void 0:i.quickNavigateConfiguration))&&(h.itemActivation=(n=i==null?void 0:i.itemActivation)!==null&&n!==void 0?n:fn.SECOND),h.contextKey=r==null?void 0:r.contextKey,h.filterValue=f=>f.substring(r?r.prefix.length:0),r!=null&&r.placeholder&&(h.ariaLabel=r==null?void 0:r.placeholder);let d;t&&(d=new Uy,c.add(_r(h.onWillAccept)(f=>{f.veto(),h.hide()}))),c.add(this.registerPickerListeners(h,o,r,e));const u=c.add(new ml);if(o&&c.add(o.provide(h,u.token)),_r(h.onDidHide)(()=>{h.selectedItems.length===0&&u.cancel(),c.dispose(),d==null||d.complete(h.selectedItems.slice(0))}),h.show(),t)return d==null?void 0:d.p}adjustValueSelection(e,t,i){var n;let o;i!=null&&i.preserveValue?o=[e.value.length,e.value.length]:o=[(n=t==null?void 0:t.prefix.length)!==null&&n!==void 0?n:0,e.value.length],e.valueSelection=o}registerPickerListeners(e,t,i,n){const o=new se,r=this.visibleQuickAccess={picker:e,descriptor:i,value:n};return o.add(Pe(()=>{r===this.visibleQuickAccess&&(this.visibleQuickAccess=void 0)})),o.add(e.onDidChangeValue(a=>{const[l]=this.getOrInstantiateProvider(a);l!==t?this.show(a,{preserveValue:!0}):r.value=a})),i&&o.add(e.onDidAccept(()=>{this.lastAcceptedPickerValues.set(i,e.value)})),o}getOrInstantiateProvider(e){const t=this.registry.getQuickAccessProvider(e);if(!t)return[void 0,void 0];let i=this.mapProviderToDescriptor.get(t);return i||(i=this.instantiationService.createInstance(t.ctor),this.mapProviderToDescriptor.set(t,i)),[i,t]}};p1=D3([kS(0,Q2),kS(1,rn)],p1);var N3=globalThis&&globalThis.__decorate||function(s,e,t,i){var n=arguments.length,o=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},$l=globalThis&&globalThis.__param||function(s,e){return function(t,i){e(t,i,s)}};let _1=class extends W4{constructor(e,t,i,n,o){super(i),this.instantiationService=e,this.contextKeyService=t,this.accessibilityService=n,this.layoutService=o,this.contexts=new Map}get controller(){return this._controller||(this._controller=this._register(this.createController())),this._controller}get quickAccess(){return this._quickAccess||(this._quickAccess=this._register(this.instantiationService.createInstance(p1))),this._quickAccess}createController(e=this.layoutService,t){var i,n;const o={idPrefix:"quickInput_",container:e.container,ignoreFocusOut:()=>!1,isScreenReaderOptimized:()=>this.accessibilityService.isScreenReaderOptimized(),backKeybindingLabel:()=>{},setContextKey:a=>this.setContextKey(a),returnFocus:()=>e.focus(),createList:(a,l,c,h,d)=>this.instantiationService.createInstance(g1,a,l,c,h,d),styles:this.computeStyles()},r=this._register(new og(Object.assign(Object.assign({},o),t)));return r.layout(e.dimension,(n=(i=e.offset)===null||i===void 0?void 0:i.top)!==null&&n!==void 0?n:0),this._register(e.onDidLayout(a=>{var l,c;return r.layout(a,(c=(l=e.offset)===null||l===void 0?void 0:l.top)!==null&&c!==void 0?c:0)})),this._register(r.onShow(()=>this.resetContextKeys())),this._register(r.onHide(()=>this.resetContextKeys())),r}setContextKey(e){let t;e&&(t=this.contexts.get(e),t||(t=new G(e,!1).bindTo(this.contextKeyService),this.contexts.set(e,t))),!(t&&t.get())&&(this.resetContextKeys(),t&&t.set(!0))}resetContextKeys(){this.contexts.forEach(e=>{e.get()&&e.reset()})}pick(e,t={},i=ci.None){return this.controller.pick(e,t,i)}createQuickPick(){return this.controller.createQuickPick()}updateStyles(){this.controller.applyStyles(this.computeStyles())}computeStyles(){return{widget:Object.assign({},gn(this.theme,{quickInputBackground:YC,quickInputForeground:LT,quickInputTitleBackground:kT,contrastBorder:it,widgetShadow:Ya})),inputBox:gn(this.theme,{inputForeground:ML,inputBackground:TL,inputBorder:RL,inputValidationInfoBackground:AL,inputValidationInfoForeground:OL,inputValidationInfoBorder:PL,inputValidationWarningBackground:FL,inputValidationWarningForeground:BL,inputValidationWarningBorder:VL,inputValidationErrorBackground:WL,inputValidationErrorForeground:HL,inputValidationErrorBorder:zL}),countBadge:gn(this.theme,{badgeBackground:Fd,badgeForeground:Bd,badgeBorder:it}),button:gn(this.theme,{buttonForeground:gT,buttonBackground:__,buttonHoverBackground:mT,buttonBorder:it}),progressBar:gn(this.theme,{progressBarBackground:pT}),keybindingLabel:gn(this.theme,{keybindingLabelBackground:ET,keybindingLabelForeground:DT,keybindingLabelBorder:NT,keybindingLabelBottomBorder:TT,keybindingLabelShadow:Ya}),list:gn(this.theme,{listBackground:YC,listInactiveFocusForeground:h5,listInactiveSelectionIconForeground:d5,listInactiveFocusBackground:u5,listFocusOutline:yi,listInactiveFocusOutline:yi,pickerGroupBorder:IT,pickerGroupForeground:xT})}}};_1=N3([$l(0,rn),$l(1,Ne),$l(2,ot),$l(3,Vi),$l(4,Th)],_1);var J2=globalThis&&globalThis.__decorate||function(s,e,t,i){var n=arguments.length,o=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},Yo=globalThis&&globalThis.__param||function(s,e){return function(t,i){e(t,i,s)}};let b1=class extends _1{constructor(e,t,i,n,o,r){super(t,i,n,o,new F_(e.getContainerDomNode(),r)),this.host=void 0;const a=hl.get(e);if(a){const l=a.widget;this.host={_serviceBrand:void 0,get hasContainer(){return!0},get container(){return l.getDomNode()},get dimension(){return e.getLayoutInfo()},get onDidLayout(){return e.onDidLayoutChange},focus:()=>e.focus()}}else this.host=void 0}createController(){return super.createController(this.host)}};b1=J2([Yo(1,rn),Yo(2,Ne),Yo(3,ot),Yo(4,Vi),Yo(5,kt)],b1);let C1=class{constructor(e,t){this.instantiationService=e,this.codeEditorService=t,this.mapEditorToService=new Map}get activeService(){const e=this.codeEditorService.getFocusedCodeEditor();if(!e)throw new Error("Quick input service needs a focused editor to work.");let t=this.mapEditorToService.get(e);if(!t){const i=t=this.instantiationService.createInstance(b1,e);this.mapEditorToService.set(e,t),_r(e.onDidDispose)(()=>{i.dispose(),this.mapEditorToService.delete(e)})}return t}get quickAccess(){return this.activeService.quickAccess}pick(e,t={},i=ci.None){return this.activeService.pick(e,t,i)}createQuickPick(){return this.activeService.createQuickPick()}};C1=J2([Yo(0,rn),Yo(1,kt)],C1);class hl{constructor(e){this.editor=e,this.widget=new dg(this.editor)}static get(e){return e.getContribution(hl.ID)}dispose(){this.widget.dispose()}}hl.ID="editor.controller.quickInput";class dg{constructor(e){this.codeEditor=e,this.domNode=document.createElement("div"),this.codeEditor.addOverlayWidget(this)}getId(){return dg.ID}getDomNode(){return this.domNode}getPosition(){return{preference:2}}dispose(){this.codeEditor.removeOverlayWidget(this)}}dg.ID="editor.contrib.quickInputWidget";T0(hl.ID,hl);class T3{constructor(e,t,i,n,o){this._parsedThemeRuleBrand=void 0,this.token=e,this.index=t,this.fontStyle=i,this.foreground=n,this.background=o}}function M3(s){if(!s||!Array.isArray(s))return[];const e=[];let t=0;for(let i=0,n=s.length;i{const u=B3(h.token,d.token);return u!==0?u:h.index-d.index});let t=0,i="000000",n="ffffff";for(;s.length>=1&&s[0].token==="";){const h=s.shift();h.fontStyle!==-1&&(t=h.fontStyle),h.foreground!==null&&(i=h.foreground),h.background!==null&&(n=h.background)}const o=new O3;for(let h of e)o.getId(h);const r=o.getId(i),a=o.getId(n),l=new Ab(t,r,a),c=new Ob(l);for(let h=0,d=s.length;h>>0,this._cache.set(t,i)}return(i|e<<0)>>>0}}const P3=/\b(comment|string|regex|regexp)\b/;function F3(s){const e=s.match(P3);if(!e)return 0;switch(e[1]){case"comment":return 1;case"string":return 2;case"regex":return 3;case"regexp":return 3}throw new Error("Unexpected match for standard token type!")}function B3(s,e){return se?1:0}class Ab{constructor(e,t,i){this._themeTrieElementRuleBrand=void 0,this._fontStyle=e,this._foreground=t,this._background=i,this.metadata=(this._fontStyle<<10|this._foreground<<14|this._background<<23)>>>0}clone(){return new Ab(this._fontStyle,this._foreground,this._background)}acceptOverwrite(e,t,i){e!==-1&&(this._fontStyle=e),t!==0&&(this._foreground=t),i!==0&&(this._background=i),this.metadata=(this._fontStyle<<10|this._foreground<<14|this._background<<23)>>>0}}class Ob{constructor(e){this._themeTrieElementBrand=void 0,this._mainRule=e,this._children=new Map}match(e){if(e==="")return this._mainRule;const t=e.indexOf(".");let i,n;t===-1?(i=e,n=""):(i=e.substring(0,t),n=e.substring(t+1));const o=this._children.get(i);return typeof o!="undefined"?o.match(n):this._mainRule}insert(e,t,i,n){if(e===""){this._mainRule.acceptOverwrite(t,i,n);return}const o=e.indexOf(".");let r,a;o===-1?(r=e,a=""):(r=e.substring(0,o),a=e.substring(o+1));let l=this._children.get(r);typeof l=="undefined"&&(l=new Ob(this._mainRule.clone()),this._children.set(r,l)),l.insert(a,t,i,n)}}function V3(s){const e=[];for(let t=1,i=s.length;te.fire()),s==null||s.onDidProductIconThemeChange(()=>e.fire()),{onDidChange:e.event,getCSS(){const i=s?s.getProductIconTheme():new tx,n={},o=a=>{const l=i.getIcon(a);if(!l)return;const c=l.font;return c?(n[c.id]=c.definition,`.codicon-${a.id}:before { content: '${l.fontCharacter}'; font-family: ${$C(c.id)}; }`):`.codicon-${a.id}:before { content: '${l.fontCharacter}'; }`},r=[];for(let a of t.getIcons()){const l=o(a);l&&r.push(l)}for(let a in n){const l=n[a],c=l.weight?`font-weight: ${l.weight};`:"",h=l.style?`font-style: ${l.style};`:"",d=l.src.map(u=>`${a_(u.location)} format('${u.format}')`).join(", ");r.push(`@font-face { src: ${d}; font-family: ${$C(a)};${c}${h} font-display: block; }`)}return r.join(` +`)}}}class tx{getIcon(e){const t=zk();let i=e.defaults;for(;St.isThemeIcon(i);){const n=t.getIcon(i.id);if(!n)return;i=n.defaults}return i}}const sr="vs",uf="vs-dark",Ha="hc-black",ix=xt.as(NL.ColorContribution),$3=xt.as(wL.ThemingContribution);class nx{constructor(e,t){this.semanticHighlighting=!1,this.themeData=t;const i=t.base;e.length>0?(Qd(e)?this.id=e:this.id=i+" "+e,this.themeName=e):(this.id=i,this.themeName=i),this.colors=null,this.defaultColors=Object.create(null),this._tokenTheme=null}get base(){return this.themeData.base}notifyBaseUpdated(){this.themeData.inherit&&(this.colors=null,this._tokenTheme=null)}getColors(){if(!this.colors){const e=new Map;for(let t in this.themeData.colors)e.set(t,O.fromHex(this.themeData.colors[t]));if(this.themeData.inherit){const t=w1(this.themeData.base);for(let i in t.colors)e.has(i)||e.set(i,O.fromHex(t.colors[i]))}this.colors=e}return this.colors}getColor(e,t){const i=this.getColors().get(e);if(i)return i;if(t!==!1)return this.getDefault(e)}getDefault(e){let t=this.defaultColors[e];return t||(t=ix.resolveDefaultColor(e,this),this.defaultColors[e]=t,t)}defines(e){return Object.prototype.hasOwnProperty.call(this.getColors(),e)}get type(){switch(this.base){case sr:return Gn.LIGHT;case Ha:return Gn.HIGH_CONTRAST;default:return Gn.DARK}}get tokenTheme(){if(!this._tokenTheme){let e=[],t=[];if(this.themeData.inherit){const o=w1(this.themeData.base);e=o.rules,o.encodedTokensColors&&(t=o.encodedTokensColors)}const i=this.themeData.colors["editor.foreground"],n=this.themeData.colors["editor.background"];if(i||n){const o={token:""};i&&(o.foreground=i),n&&(o.background=n),e.push(o)}e=e.concat(this.themeData.rules),this.themeData.encodedTokensColors&&(t=this.themeData.encodedTokensColors),this._tokenTheme=ex.createFromRawTokenTheme(e,t)}return this._tokenTheme}getTokenStyleMetadata(e,t,i){const o=this.tokenTheme._match([e].concat(t).join(".")).metadata,r=pi.getForeground(o),a=pi.getFontStyle(o);return{foreground:r,italic:Boolean(a&1),bold:Boolean(a&2),underline:Boolean(a&4),strikethrough:Boolean(a&8)}}}function Qd(s){return s===sr||s===uf||s===Ha}function w1(s){switch(s){case sr:return W3;case uf:return H3;case Ha:return z3}}function $m(s){const e=w1(s);return new nx(s,e)}class j3 extends W{constructor(){super(),this._onColorThemeChange=this._register(new M),this.onDidColorThemeChange=this._onColorThemeChange.event,this._onProductIconThemeChange=this._register(new M),this.onDidProductIconThemeChange=this._onProductIconThemeChange.event,this._environment=Object.create(null),this._builtInProductIconTheme=new tx,this._autoDetectHighContrast=!0,this._knownThemes=new Map,this._knownThemes.set(sr,$m(sr)),this._knownThemes.set(uf,$m(uf)),this._knownThemes.set(Ha,$m(Ha));const e=U3(this);this._codiconCSS=e.getCSS(),this._themeCSS="",this._allCSS=`${this._codiconCSS} +${this._themeCSS}`,this._globalStyleElement=null,this._styleElements=[],this._colorMapOverride=null,this.setTheme(sr),e.onDidChange(()=>{this._codiconCSS=e.getCSS(),this._updateCSS()}),R4("(forced-colors: active)",()=>{this._updateActualTheme()})}registerEditorContainer(e){return r_(e)?this._registerShadowDomContainer(e):this._registerRegularEditorContainer()}_registerRegularEditorContainer(){return this._globalStyleElement||(this._globalStyleElement=xn(),this._globalStyleElement.className="monaco-colors",this._globalStyleElement.textContent=this._allCSS,this._styleElements.push(this._globalStyleElement)),W.None}_registerShadowDomContainer(e){const t=xn(e);return t.className="monaco-colors",t.textContent=this._allCSS,this._styleElements.push(t),{dispose:()=>{for(let i=0;i{i.base===e&&i.notifyBaseUpdated()}),this._theme.themeName===e&&this.setTheme(e)}getColorTheme(){return this._theme}setColorMapOverride(e){this._colorMapOverride=e,this._updateThemeOrColorMap()}setTheme(e){let t;this._knownThemes.has(e)?t=this._knownThemes.get(e):t=this._knownThemes.get(sr),this._desiredTheme=t,this._updateActualTheme()}_updateActualTheme(){const e=this._autoDetectHighContrast&&window.matchMedia("(forced-colors: active)").matches?this._knownThemes.get(Ha):this._desiredTheme;this._theme!==e&&(this._theme=e,this._updateThemeOrColorMap())}setAutoDetectHighContrast(e){this._autoDetectHighContrast=e,this._updateActualTheme()}_updateThemeOrColorMap(){const e=[],t={},i={addRule:r=>{t[r]||(e.push(r),t[r]=!0)}};$3.getThemingParticipants().forEach(r=>r(this._theme,i,this._environment));const n=[];for(const r of ix.getColors()){const a=this._theme.getColor(r.id,!0);a&&n.push(`${dT(r.id)}: ${a.toString()};`)}i.addRule(`.monaco-editor { ${n.join(` +`)} }`);const o=this._colorMapOverride||this._theme.tokenTheme.getColorMap();i.addRule(V3(o)),this._themeCSS=e.join(` +`),this._updateCSS(),et.setColorMap(o),this._onColorThemeChange.fire(this._theme)}_updateCSS(){this._allCSS=`${this._codiconCSS} +${this._themeCSS}`,this._styleElements.forEach(e=>e.textContent=this._allCSS)}getFileIconTheme(){return{hasFileIcons:!1,hasFolderIcons:!1,hidesExplorerArrows:!1}}getProductIconTheme(){return this._builtInProductIconTheme}}const an=pe("themeService");var K3=globalThis&&globalThis.__decorate||function(s,e,t,i){var n=arguments.length,o=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},xS=globalThis&&globalThis.__param||function(s,e){return function(t,i){e(t,i,s)}};let v1=class extends W{constructor(e,t){super(),this._contextKeyService=e,this._configurationService=t,this._accessibilitySupport=0,this._onDidChangeScreenReaderOptimized=new M,this._accessibilityModeEnabledContext=eT.bindTo(this._contextKeyService);const i=()=>this._accessibilityModeEnabledContext.set(this.isScreenReaderOptimized());this._register(this._configurationService.onDidChangeConfiguration(n=>{n.affectsConfiguration("editor.accessibilitySupport")&&(i(),this._onDidChangeScreenReaderOptimized.fire())})),i(),this.onDidChangeScreenReaderOptimized(()=>i())}get onDidChangeScreenReaderOptimized(){return this._onDidChangeScreenReaderOptimized.event}isScreenReaderOptimized(){const e=this._configurationService.getValue("editor.accessibilitySupport");return e==="on"||e==="auto"&&this._accessibilitySupport===2}getAccessibilitySupport(){return this._accessibilitySupport}};v1=K3([xS(0,Ne),xS(1,Rt)],v1);var sx=globalThis&&globalThis.__decorate||function(s,e,t,i){var n=arguments.length,o=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},Jd=globalThis&&globalThis.__param||function(s,e){return function(t,i){e(t,i,s)}};let S1=class{constructor(e){this._commandService=e}createMenu(e,t,i){return new y1(e,Object.assign({emitEventsForSubmenuChanges:!1,eventDebounceDelay:50},i),this._commandService,t,this)}};S1=sx([Jd(0,Bi)],S1);let y1=class sa{constructor(e,t,i,n,o){this._id=e,this._options=t,this._commandService=i,this._contextKeyService=n,this._menuService=o,this._disposables=new se,this._menuGroups=[],this._contextKeys=new Set,this._build();const r=new Tt(()=>{this._build(),this._onDidChange.fire(this)},t.eventDebounceDelay);this._disposables.add(r),this._disposables.add(sc.onDidChangeMenu(c=>{c.has(e)&&r.schedule()}));const a=this._disposables.add(new se),l=()=>{const c=new Tt(()=>this._onDidChange.fire(this),t.eventDebounceDelay);a.add(c),a.add(n.onDidChangeContext(h=>{h.affectsSome(this._contextKeys)&&c.schedule()}))};this._onDidChange=new M({onFirstListenerAdd:l,onLastListenerRemove:a.clear.bind(a)}),this.onDidChange=this._onDidChange.event}dispose(){this._disposables.dispose(),this._onDidChange.dispose()}_build(){this._menuGroups.length=0,this._contextKeys.clear();const e=sc.getMenuItems(this._id);let t;e.sort(sa._compareMenuItems);for(const i of e){const n=i.group||"";(!t||t[0]!==n)&&(t=[n,[]],this._menuGroups.push(t)),t[1].push(i),this._collectContextKeys(i)}}_collectContextKeys(e){if(sa._fillInKbExprKeys(e.when,this._contextKeys),ql(e)){if(e.command.precondition&&sa._fillInKbExprKeys(e.command.precondition,this._contextKeys),e.command.toggled){const t=e.command.toggled.condition||e.command.toggled;sa._fillInKbExprKeys(t,this._contextKeys)}}else this._options.emitEventsForSubmenuChanges&&sc.getMenuItems(e.submenu).forEach(this._collectContextKeys,this)}getActions(e){const t=[];for(let i of this._menuGroups){const[n,o]=i,r=[];for(const a of o)if(this._contextKeyService.contextMatchesRules(a.when)){const l=ql(a)?new u_(a.command,a.alt,e,this._contextKeyService,this._commandService):new z4(a,this._menuService,this._contextKeyService,e);r.push(l)}r.length>0&&t.push([n,r])}return t}static _fillInKbExprKeys(e,t){if(e)for(let i of e.keys())t.add(i)}static _compareMenuItems(e,t){let i=e.group,n=t.group;if(i!==n){if(i){if(!n)return-1}else return 1;if(i==="navigation")return-1;if(n==="navigation")return 1;let a=i.localeCompare(n);if(a!==0)return a}let o=e.order||0,r=t.order||0;return or?1:sa._compareTitles(ql(e)?e.command.title:e.title,ql(t)?t.command.title:t.title)}static _compareTitles(e,t){const i=typeof e=="string"?e:e.original,n=typeof t=="string"?t:t.original;return i.localeCompare(n)}};y1=sx([Jd(2,Bi),Jd(3,Ne),Jd(4,SL)],y1);var q3=globalThis&&globalThis.__decorate||function(s,e,t,i){var n=arguments.length,o=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},IS=globalThis&&globalThis.__param||function(s,e){return function(t,i){e(t,i,s)}},jl=globalThis&&globalThis.__awaiter||function(s,e,t,i){function n(o){return o instanceof t?o:new t(function(r){r(o)})}return new(t||(t=Promise))(function(o,r){function a(h){try{c(i.next(h))}catch(d){r(d)}}function l(h){try{c(i.throw(h))}catch(d){r(d)}}function c(h){h.done?o(h.value):n(h.value).then(a,l)}c((i=i.apply(s,e||[])).next())})};let L1=class extends W{constructor(e,t){super(),this.layoutService=e,this.logService=t,this.mapTextToType=new Map,this.findText="",(Jn||c0)&&this.installWebKitWriteTextWorkaround()}installWebKitWriteTextWorkaround(){const e=()=>{const t=new Uy;this.webKitPendingClipboardWritePromise&&!this.webKitPendingClipboardWritePromise.isSettled&&this.webKitPendingClipboardWritePromise.cancel(),this.webKitPendingClipboardWritePromise=t,navigator.clipboard.write([new ClipboardItem({"text/plain":t.p})]).catch(i=>jl(this,void 0,void 0,function*(){(!(i instanceof Error)||i.name!=="NotAllowedError"||!t.isRejected)&&this.logService.error(i)}))};this.layoutService.hasContainer&&(this._register(V(this.layoutService.container,"click",e)),this._register(V(this.layoutService.container,"keydown",e)))}writeText(e,t){return jl(this,void 0,void 0,function*(){if(t){this.mapTextToType.set(t,e);return}if(this.webKitPendingClipboardWritePromise)return this.webKitPendingClipboardWritePromise.complete(e);try{return yield navigator.clipboard.writeText(e)}catch(o){console.error(o)}const i=document.activeElement,n=document.body.appendChild(J("textarea",{"aria-hidden":!0}));n.style.height="1px",n.style.width="1px",n.style.position="absolute",n.value=e,n.focus(),n.select(),document.execCommand("copy"),i instanceof HTMLElement&&i.focus(),document.body.removeChild(n)})}readText(e){return jl(this,void 0,void 0,function*(){if(e)return this.mapTextToType.get(e)||"";try{return yield navigator.clipboard.readText()}catch(t){return console.error(t),""}})}readFindText(){return jl(this,void 0,void 0,function*(){return this.findText})}writeFindText(e){return jl(this,void 0,void 0,function*(){this.findText=e})}};L1=q3([IS(0,Th),IS(1,Do)],L1);var G3=globalThis&&globalThis.__decorate||function(s,e,t,i){var n=arguments.length,o=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},Z3=globalThis&&globalThis.__param||function(s,e){return function(t,i){e(t,i,s)}};const kc="data-keybinding-context";class Pb{constructor(e,t){this._id=e,this._parent=t,this._value=Object.create(null),this._value._contextId=e}setValue(e,t){return this._value[e]!==t?(this._value[e]=t,!0):!1}removeValue(e){return e in this._value?(delete this._value[e],!0):!1}getValue(e){const t=this._value[e];return typeof t=="undefined"&&this._parent?this._parent.getValue(e):t}}class dl extends Pb{constructor(){super(-1,null)}setValue(e,t){return!1}removeValue(e){return!1}getValue(e){}}dl.INSTANCE=new dl;class hh extends Pb{constructor(e,t,i){super(e,null),this._configurationService=t,this._values=Cc.forConfigKeys(),this._listener=this._configurationService.onDidChangeConfiguration(n=>{if(n.source===6){const o=Array.from(he.map(this._values,([r])=>r));this._values.clear(),i.fire(new DS(o))}else{const o=[];for(const r of n.affectedKeys){const a=`config.${r}`,l=this._values.findSuperstr(a);l!==void 0&&(o.push(...he.map(l,([c])=>c)),this._values.deleteSuperstr(a)),this._values.has(a)&&(o.push(a),this._values.delete(a))}i.fire(new DS(o))}})}dispose(){this._listener.dispose()}getValue(e){if(e.indexOf(hh._keyPrefix)!==0)return super.getValue(e);if(this._values.has(e))return this._values.get(e);const t=e.substr(hh._keyPrefix.length),i=this._configurationService.getValue(t);let n;switch(typeof i){case"number":case"boolean":case"string":n=i;break;default:Array.isArray(i)?n=JSON.stringify(i):n=i}return this._values.set(e,n),n}setValue(e,t){return super.setValue(e,t)}removeValue(e){return super.removeValue(e)}}hh._keyPrefix="config.";class Y3{constructor(e,t,i){this._service=e,this._key=t,this._defaultValue=i,this.reset()}set(e){this._service.setContext(this._key,e)}reset(){typeof this._defaultValue=="undefined"?this._service.removeContext(this._key):this._service.setContext(this._key,this._defaultValue)}get(){return this._service.getContextKeyValue(this._key)}}class ES{constructor(e){this.key=e}affectsSome(e){return e.has(this.key)}}class DS{constructor(e){this.keys=e}affectsSome(e){for(const t of this.keys)if(e.has(t))return!0;return!1}}class X3{constructor(e){this.events=e}affectsSome(e){for(const t of this.events)if(t.affectsSome(e))return!0;return!1}}class ox{constructor(e){this._onDidChangeContext=new ru({merge:t=>new X3(t)}),this.onDidChangeContext=this._onDidChangeContext.event,this._isDisposed=!1,this._myContextId=e}createKey(e,t){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");return new Y3(this,e,t)}bufferChangeEvents(e){this._onDidChangeContext.pause();try{e()}finally{this._onDidChangeContext.resume()}}createScoped(e){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");return new Q3(this,e)}contextMatchesRules(e){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");const t=this.getContextValuesContainer(this._myContextId);return e?e.evaluate(t):!0}getContextKeyValue(e){if(!this._isDisposed)return this.getContextValuesContainer(this._myContextId).getValue(e)}setContext(e,t){if(this._isDisposed)return;const i=this.getContextValuesContainer(this._myContextId);!i||i.setValue(e,t)&&this._onDidChangeContext.fire(new ES(e))}removeContext(e){this._isDisposed||this.getContextValuesContainer(this._myContextId).removeValue(e)&&this._onDidChangeContext.fire(new ES(e))}getContext(e){return this._isDisposed?dl.INSTANCE:this.getContextValuesContainer(J3(e))}}let k1=class extends ox{constructor(e){super(0),this._contexts=new Map,this._toDispose=new se,this._lastContextId=0;const t=new hh(this._myContextId,e,this._onDidChangeContext);this._contexts.set(this._myContextId,t),this._toDispose.add(t)}dispose(){this._onDidChangeContext.dispose(),this._isDisposed=!0,this._toDispose.dispose()}getContextValuesContainer(e){return this._isDisposed?dl.INSTANCE:this._contexts.get(e)||dl.INSTANCE}createChildContext(e=this._myContextId){if(this._isDisposed)throw new Error("ContextKeyService has been disposed");let t=++this._lastContextId;return this._contexts.set(t,new Pb(t,this.getContextValuesContainer(e))),t}disposeContext(e){this._isDisposed||this._contexts.delete(e)}};k1=G3([Z3(0,Rt)],k1);class Q3 extends ox{constructor(e,t){if(super(e.createChildContext()),this._parentChangeListener=new ly,this._parent=e,this._updateParentChangeListener(),this._domNode=t,this._domNode.hasAttribute(kc)){let i="";this._domNode.classList&&(i=Array.from(this._domNode.classList.values()).join(", ")),console.error(`Element already has context attribute${i?": "+i:""}`)}this._domNode.setAttribute(kc,String(this._myContextId))}_updateParentChangeListener(){this._parentChangeListener.value=this._parent.onDidChangeContext(this._onDidChangeContext.fire,this._onDidChangeContext)}dispose(){this._isDisposed||(this._onDidChangeContext.dispose(),this._parent.disposeContext(this._myContextId),this._parentChangeListener.dispose(),this._domNode.removeAttribute(kc),this._isDisposed=!0)}getContextValuesContainer(e){return this._isDisposed?dl.INSTANCE:this._parent.getContextValuesContainer(e)}createChildContext(e=this._myContextId){if(this._isDisposed)throw new Error("ScopedContextKeyService has been disposed");return this._parent.createChildContext(e)}disposeContext(e){this._isDisposed||this._parent.disposeContext(e)}}function J3(s){for(;s;){if(s.hasAttribute(kc)){const e=s.getAttribute(kc);return e?parseInt(e,10):NaN}s=s.parentElement}return 0}Ht.registerCommand(F4,function(s,e,t){s.get(Ne).createKey(String(e),t)});Ht.registerCommand({id:"getContextKeyInfo",handler(){return[...G.all()].sort((s,e)=>s.key.localeCompare(e.key))},description:{description:p("getContextKeyInfo","A command that returns information about context keys"),args:[]}});Ht.registerCommand("_generateContextKeyInfo",function(){const s=[],e=new Set;for(let t of G.all())e.has(t.key)||(e.add(t.key),s.push(t));s.sort((t,i)=>t.key.localeCompare(i.key)),console.log(JSON.stringify(s,void 0,2))});class e6{constructor(e){this.incoming=new Map,this.outgoing=new Map,this.data=e}}class t6{constructor(e){this._hashFn=e,this._nodes=new Map}roots(){const e=[];for(let t of this._nodes.values())t.outgoing.size===0&&e.push(t);return e}insertEdge(e,t){const i=this.lookupOrInsertNode(e),n=this.lookupOrInsertNode(t);i.outgoing.set(this._hashFn(t),n),n.incoming.set(this._hashFn(e),i)}removeNode(e){const t=this._hashFn(e);this._nodes.delete(t);for(let i of this._nodes.values())i.outgoing.delete(t),i.incoming.delete(t)}lookupOrInsertNode(e){const t=this._hashFn(e);let i=this._nodes.get(t);return i||(i=new e6(e),this._nodes.set(t,i)),i}isEmpty(){return this._nodes.size===0}toString(){let e=[];for(let[t,i]of this._nodes)e.push(`${t}, (incoming)[${[...i.incoming.keys()].join(", ")}], (outgoing)[${[...i.outgoing.keys()].join(",")}]`);return e.join(` +`)}findCycleSlow(){for(let[e,t]of this._nodes){const i=new Set([e]),n=this._findCycle(t,i);if(n)return n}}_findCycle(e,t){for(let[i,n]of e.outgoing){if(t.has(i))return[...t,i].join(" -> ");t.add(i);const o=this._findCycle(n,t);if(o)return o;t.delete(i)}}}class NS extends Error{constructor(e){var t;super("cyclic dependency between services"),this.message=(t=e.findCycleSlow())!==null&&t!==void 0?t:`UNABLE to detect cycle, dumping graph: +${e.toString()}`}}class Fb{constructor(e=new Zf,t=!1,i){this._activeInstantiations=new Set,this._services=e,this._strict=t,this._parent=i,this._services.set(rn,this)}createChild(e){return new Fb(e,this._strict,this)}invokeFunction(e,...t){let i=Yi.traceInvocation(e),n=!1;try{return e({get:r=>{if(n)throw sE("service accessor is only valid during the invocation of its target method");const a=this._getOrCreateServiceInstance(r,i);if(!a)throw new Error(`[invokeFunction] unknown service '${r}'`);return a}},...t)}finally{n=!0,i.stop()}}createInstance(e,...t){let i,n;return e instanceof Wn?(i=Yi.traceCreation(e.ctor),n=this._createInstance(e.ctor,e.staticArguments.concat(t),i)):(i=Yi.traceCreation(e),n=this._createInstance(e,t,i)),i.stop(),n}_createInstance(e,t=[],i){let n=Cn.getServiceDependencies(e).sort((a,l)=>a.index-l.index),o=[];for(const a of n){let l=this._getOrCreateServiceInstance(a.id,i);l||this._throwIfStrict(`[createInstance] ${e.name} depends on UNKNOWN service ${a.id}.`,!1),o.push(l)}let r=n.length>0?n[0].index:t.length;if(t.length!==r){console.warn(`[createInstance] First service dependency of ${e.name} at position ${r+1} conflicts with ${t.length} static arguments`);let a=r-t.length;a>0?t=t.concat(new Array(a)):t=t.slice(0,r)}return new e(...t,...o)}_setServiceInstance(e,t){if(this._services.get(e)instanceof Wn)this._services.set(e,t);else if(this._parent)this._parent._setServiceInstance(e,t);else throw new Error("illegalState - setting UNKNOWN service instance")}_getServiceInstanceOrDescriptor(e){let t=this._services.get(e);return!t&&this._parent?this._parent._getServiceInstanceOrDescriptor(e):t}_getOrCreateServiceInstance(e,t){let i=this._getServiceInstanceOrDescriptor(e);return i instanceof Wn?this._safeCreateAndCacheServiceInstance(e,i,t.branch(e,!0)):(t.branch(e,!1),i)}_safeCreateAndCacheServiceInstance(e,t,i){if(this._activeInstantiations.has(e))throw new Error(`illegal state - RECURSIVELY instantiating service '${e}'`);this._activeInstantiations.add(e);try{return this._createAndCacheServiceInstance(e,t,i)}finally{this._activeInstantiations.delete(e)}}_createAndCacheServiceInstance(e,t,i){const n=new t6(a=>a.id.toString());let o=0;const r=[{id:e,desc:t,_trace:i}];for(;r.length;){const a=r.pop();if(n.lookupOrInsertNode(a),o++>1e3)throw new NS(n);for(let l of Cn.getServiceDependencies(a.desc.ctor)){let c=this._getServiceInstanceOrDescriptor(l.id);if(c||this._throwIfStrict(`[createInstance] ${e} depends on ${l.id} which is NOT registered.`,!0),c instanceof Wn){const h={id:l.id,desc:c,_trace:a._trace.branch(l.id,!0)};n.insertEdge(a,h),r.push(h)}}}for(;;){const a=n.roots();if(a.length===0){if(!n.isEmpty())throw new NS(n);break}for(const{data:l}of a){if(this._getServiceInstanceOrDescriptor(l.id)instanceof Wn){const h=this._createServiceInstanceWithOwner(l.id,l.desc.ctor,l.desc.staticArguments,l.desc.supportsDelayedInstantiation,l._trace);this._setServiceInstance(l.id,h)}n.removeNode(l)}}return this._getServiceInstanceOrDescriptor(e)}_createServiceInstanceWithOwner(e,t,i=[],n,o){if(this._services.get(e)instanceof Wn)return this._createServiceInstance(t,i,n,o);if(this._parent)return this._parent._createServiceInstanceWithOwner(e,t,i,n,o);throw new Error(`illegalState - creating UNKNOWN service instance ${t.name}`)}_createServiceInstance(e,t=[],i,n){if(i){const o=new kf(()=>this._createInstance(e,t,n));return new Proxy(Object.create(null),{get(r,a){if(a in r)return r[a];let l=o.value,c=l[a];return typeof c!="function"||(c=c.bind(l),r[a]=c),c},set(r,a,l){return o.value[a]=l,!0}})}else return this._createInstance(e,t,n)}_throwIfStrict(e,t){if(t&&console.warn(t),this._strict)throw new Error(e)}}class Yi{constructor(e,t){this.type=e,this.name=t,this._start=Date.now(),this._dep=[]}static traceInvocation(e){return Yi._None}static traceCreation(e){return Yi._None}branch(e,t){let i=new Yi(2,e.toString());return this._dep.push([e,t,i]),i}stop(){let e=Date.now()-this._start;Yi._totals+=e;let t=!1;function i(o,r){let a=[],l=new Array(o+1).join(" ");for(const[c,h,d]of r._dep)if(h&&d){t=!0,a.push(`${l}CREATES -> ${c}`);let u=i(o+1,d);u&&a.push(u)}else a.push(`${l}uses -> ${c}`);return a.join(` +`)}let n=[`${this.type===0?"CREATE":"CALL"} ${this.name}`,`${i(1,this)}`,`DONE, took ${e.toFixed(2)}ms (grand total ${Yi._totals.toFixed(2)}ms)`];(e>2||t)&&console.log(n.join(` +`))}}Yi._None=new class extends Yi{constructor(){super(-1,null)}stop(){}branch(){return this}};Yi._totals=0;class i6{constructor(){this._byResource=new ti,this._byOwner=new Map}set(e,t,i){let n=this._byResource.get(e);n||(n=new Map,this._byResource.set(e,n)),n.set(t,i);let o=this._byOwner.get(t);o||(o=new ti,this._byOwner.set(t,o)),o.set(e,i)}get(e,t){let i=this._byResource.get(e);return i==null?void 0:i.get(t)}delete(e,t){let i=!1,n=!1,o=this._byResource.get(e);o&&(i=o.delete(t));let r=this._byOwner.get(t);if(r&&(n=r.delete(e)),i!==n)throw new Error("illegal state");return i&&n}values(e){var t,i,n,o;return typeof e=="string"?(i=(t=this._byOwner.get(e))===null||t===void 0?void 0:t.values())!==null&&i!==void 0?i:he.empty():we.isUri(e)?(o=(n=this._byResource.get(e))===null||n===void 0?void 0:n.values())!==null&&o!==void 0?o:he.empty():he.map(he.concat(...this._byOwner.values()),r=>r[1])}}class n6{constructor(e){this.errors=0,this.infos=0,this.warnings=0,this.unknowns=0,this._data=new ti,this._service=e,this._subscription=e.onMarkerChanged(this._update,this)}dispose(){this._subscription.dispose()}_update(e){for(const t of e){const i=this._data.get(t);i&&this._substract(i);const n=this._resourceStats(t);this._add(n),this._data.set(t,n)}}_resourceStats(e){const t={errors:0,warnings:0,infos:0,unknowns:0};if(e.scheme===Ce.inMemory||e.scheme===Ce.walkThrough||e.scheme===Ce.walkThroughSnippet)return t;for(const{severity:i}of this._service.read({resource:e}))i===Di.Error?t.errors+=1:i===Di.Warning?t.warnings+=1:i===Di.Info?t.infos+=1:t.unknowns+=1;return t}_substract(e){this.errors-=e.errors,this.warnings-=e.warnings,this.infos-=e.infos,this.unknowns-=e.unknowns}_add(e){this.errors+=e.errors,this.warnings+=e.warnings,this.infos+=e.infos,this.unknowns+=e.unknowns}}class Xo{constructor(){this._onMarkerChanged=new uE({delay:0,merge:Xo._merge}),this.onMarkerChanged=this._onMarkerChanged.event,this._data=new i6,this._stats=new n6(this)}dispose(){this._stats.dispose(),this._onMarkerChanged.dispose()}remove(e,t){for(const i of t||[])this.changeOne(e,i,[])}changeOne(e,t,i){if(oI(i))this._data.delete(t,e)&&this._onMarkerChanged.fire([t]);else{const n=[];for(const o of i){const r=Xo._toMarker(e,t,o);r&&n.push(r)}this._data.set(t,e,n),this._onMarkerChanged.fire([t])}}static _toMarker(e,t,i){let{code:n,severity:o,message:r,source:a,startLineNumber:l,startColumn:c,endLineNumber:h,endColumn:d,relatedInformation:u,tags:f}=i;if(!!r)return l=l>0?l:1,c=c>0?c:1,h=h>=l?h:l,d=d>0?d:c,{resource:t,owner:e,code:n,severity:o,message:r,source:a,startLineNumber:l,startColumn:c,endLineNumber:h,endColumn:d,relatedInformation:u,tags:f}}read(e=Object.create(null)){let{owner:t,resource:i,severities:n,take:o}=e;if((!o||o<0)&&(o=-1),t&&i){const r=this._data.get(i,t);if(r){const a=[];for(const l of r)if(Xo._accept(l,n)){const c=a.push(l);if(o>0&&c===o)break}return a}else return[]}else if(!t&&!i){const r=[];for(let a of this._data.values())for(let l of a)if(Xo._accept(l,n)){const c=r.push(l);if(o>0&&c===o)return r}return r}else{const r=this._data.values(i!=null?i:t),a=[];for(const l of r)for(const c of l)if(Xo._accept(c,n)){const h=a.push(c);if(o>0&&h===o)return a}return a}}static _accept(e,t){return t===void 0||(t&e.severity)===e.severity}static _merge(e){const t=new ti;for(let i of e)for(let n of i)t.set(n,!0);return Array.from(t.keys())}}var Xl=globalThis&&globalThis.__awaiter||function(s,e,t,i){function n(o){return o instanceof t?o:new t(function(r){r(o)})}return new(t||(t=Promise))(function(o,r){function a(h){try{c(i.next(h))}catch(d){r(d)}}function l(h){try{c(i.throw(h))}catch(d){r(d)}}function c(h){h.done?o(h.value):n(h.value).then(a,l)}c((i=i.apply(s,e||[])).next())})},wa;(function(s){s[s.None=0]="None",s[s.Initialized=1]="Initialized",s[s.Closed=2]="Closed"})(wa||(wa={}));class dh extends W{constructor(e,t=Object.create(null)){super(),this.database=e,this.options=t,this._onDidChangeStorage=this._register(new M),this.onDidChangeStorage=this._onDidChangeStorage.event,this.state=wa.None,this.cache=new Map,this.flushDelayer=new KD(dh.DEFAULT_FLUSH_DELAY),this.pendingDeletes=new Set,this.pendingInserts=new Map,this.whenFlushedCallbacks=[],this.registerListeners()}registerListeners(){this._register(this.database.onDidChangeItemsExternal(e=>this.onDidChangeItemsExternal(e)))}onDidChangeItemsExternal(e){var t,i;(t=e.changed)===null||t===void 0||t.forEach((n,o)=>this.accept(o,n)),(i=e.deleted)===null||i===void 0||i.forEach(n=>this.accept(n,void 0))}accept(e,t){if(this.state===wa.Closed)return;let i=!1;Gi(t)?i=this.cache.delete(e):this.cache.get(e)!==t&&(this.cache.set(e,t),i=!0),i&&this._onDidChangeStorage.fire(e)}get(e,t){const i=this.cache.get(e);return Gi(i)?t:i}getBoolean(e,t){const i=this.get(e);return Gi(i)?t:i==="true"}getNumber(e,t){const i=this.get(e);return Gi(i)?t:parseInt(i,10)}set(e,t){return Xl(this,void 0,void 0,function*(){if(this.state===wa.Closed)return;if(Gi(t))return this.delete(e);const i=String(t);if(this.cache.get(e)!==i)return this.cache.set(e,i),this.pendingInserts.set(e,i),this.pendingDeletes.delete(e),this._onDidChangeStorage.fire(e),this.doFlush()})}delete(e){return Xl(this,void 0,void 0,function*(){if(!(this.state===wa.Closed||!this.cache.delete(e)))return this.pendingDeletes.has(e)||this.pendingDeletes.add(e),this.pendingInserts.delete(e),this._onDidChangeStorage.fire(e),this.doFlush()})}get hasPending(){return this.pendingInserts.size>0||this.pendingDeletes.size>0}flushPending(){return Xl(this,void 0,void 0,function*(){if(!this.hasPending)return;const e={insert:this.pendingInserts,delete:this.pendingDeletes};return this.pendingDeletes=new Set,this.pendingInserts=new Map,this.database.updateItems(e).finally(()=>{var t;if(!this.hasPending)for(;this.whenFlushedCallbacks.length;)(t=this.whenFlushedCallbacks.pop())===null||t===void 0||t()})})}doFlush(e){return Xl(this,void 0,void 0,function*(){return this.flushDelayer.trigger(()=>this.flushPending(),e)})}dispose(){this.flushDelayer.dispose(),super.dispose()}}dh.DEFAULT_FLUSH_DELAY=100;class TS{constructor(){this.onDidChangeItemsExternal=K.None,this.items=new Map}updateItems(e){return Xl(this,void 0,void 0,function*(){e.insert&&e.insert.forEach((t,i)=>this.items.set(i,t)),e.delete&&e.delete.forEach(t=>this.items.delete(t))})}}const vd="__$__targetStorageMarker",Bb=pe("storageService");var MS;(function(s){s[s.NONE=0]="NONE",s[s.SHUTDOWN=1]="SHUTDOWN"})(MS||(MS={}));class ug extends W{constructor(e={flushInterval:ug.DEFAULT_FLUSH_INTERVAL}){super(),this.options=e,this._onDidChangeValue=this._register(new ru),this._onDidChangeTarget=this._register(new ru),this._onWillSaveState=this._register(new M),this.onWillSaveState=this._onWillSaveState.event,this._workspaceKeyTargets=void 0,this._globalKeyTargets=void 0}emitDidChangeValue(e,t){t===vd?(e===0?this._globalKeyTargets=void 0:e===1&&(this._workspaceKeyTargets=void 0),this._onDidChangeTarget.fire({scope:e})):this._onDidChangeValue.fire({scope:e,key:t,target:this.getKeyTargets(e)[t]})}get(e,t,i){var n;return(n=this.getStorage(t))===null||n===void 0?void 0:n.get(e,i)}getBoolean(e,t,i){var n;return(n=this.getStorage(t))===null||n===void 0?void 0:n.getBoolean(e,i)}getNumber(e,t,i){var n;return(n=this.getStorage(t))===null||n===void 0?void 0:n.getNumber(e,i)}store(e,t,i,n){if(Gi(t)){this.remove(e,i);return}this.withPausedEmitters(()=>{var o;this.updateKeyTarget(e,i,n),(o=this.getStorage(i))===null||o===void 0||o.set(e,t)})}remove(e,t){this.withPausedEmitters(()=>{var i;this.updateKeyTarget(e,t,void 0),(i=this.getStorage(t))===null||i===void 0||i.delete(e)})}withPausedEmitters(e){this._onDidChangeValue.pause(),this._onDidChangeTarget.pause();try{e()}finally{this._onDidChangeValue.resume(),this._onDidChangeTarget.resume()}}updateKeyTarget(e,t,i){var n,o;const r=this.getKeyTargets(t);typeof i=="number"?r[e]!==i&&(r[e]=i,(n=this.getStorage(t))===null||n===void 0||n.set(vd,JSON.stringify(r))):typeof r[e]=="number"&&(delete r[e],(o=this.getStorage(t))===null||o===void 0||o.set(vd,JSON.stringify(r)))}get workspaceKeyTargets(){return this._workspaceKeyTargets||(this._workspaceKeyTargets=this.loadKeyTargets(1)),this._workspaceKeyTargets}get globalKeyTargets(){return this._globalKeyTargets||(this._globalKeyTargets=this.loadKeyTargets(0)),this._globalKeyTargets}getKeyTargets(e){return e===0?this.globalKeyTargets:this.workspaceKeyTargets}loadKeyTargets(e){const t=this.get(vd,e);if(t)try{return JSON.parse(t)}catch{}return Object.create(null)}}ug.DEFAULT_FLUSH_INTERVAL=60*1e3;class s6 extends ug{constructor(){super(),this.globalStorage=this._register(new dh(new TS)),this.workspaceStorage=this._register(new dh(new TS)),this._register(this.workspaceStorage.onDidChangeStorage(e=>this.emitDidChangeValue(1,e))),this._register(this.globalStorage.onDidChangeStorage(e=>this.emitDidChangeValue(0,e)))}getStorage(e){return e===0?this.globalStorage:this.workspaceStorage}}function rx(s,e,t,i,n){if(Array.isArray(s)){let o=0;for(const r of s){const a=rx(r,e,t,i,n);if(a===10)return a;a>o&&(o=a)}return o}else{if(typeof s=="string")return i?s==="*"?5:s===t?10:0:0;if(s){const{language:o,pattern:r,scheme:a,hasAccessToAllModels:l,notebookType:c}=s;if(!i&&!l)return 0;let h=0;if(a)if(a===e.scheme)h=10;else if(a==="*")h=5;else return 0;if(o)if(o===t)h=10;else if(o==="*")h=Math.max(h,5);else return 0;if(c)if(c===n)h=10;else if(c==="*")h=Math.max(h,5);else return 0;if(r){let d;if(typeof r=="string"?d=r:d=Object.assign(Object.assign({},r),{base:fy(r.base)}),d===e.fsPath||PO(d,e.fsPath))h=10;else return 0}return h}else return 0}}function ax(s){return typeof s=="string"?!1:Array.isArray(s)?s.every(ax):!!s.exclusive}class Ue{constructor(e){this._notebookTypeResolver=e,this._clock=0,this._entries=[],this._onDidChange=new M,this.onDidChange=this._onDidChange.event}register(e,t){let i={selector:e,provider:t,_score:-1,_time:this._clock++};return this._entries.push(i),this._lastCandidate=void 0,this._onDidChange.fire(this._entries.length),Pe(()=>{if(i){const n=this._entries.indexOf(i);n>=0&&(this._entries.splice(n,1),this._lastCandidate=void 0,this._onDidChange.fire(this._entries.length),i=void 0)}})}has(e){return this.all(e).length>0}all(e){if(!e)return[];this._updateScores(e);const t=[];for(let i of this._entries)i._score>0&&t.push(i.provider);return t}ordered(e){const t=[];return this._orderedForEach(e,i=>t.push(i.provider)),t}orderedGroups(e){const t=[];let i,n;return this._orderedForEach(e,o=>{i&&n===o._score?i.push(o.provider):(n=o._score,i=[o.provider],t.push(i))}),t}_orderedForEach(e,t){if(!!e){this._updateScores(e);for(const i of this._entries)i._score>0&&t(i)}}_updateScores(e){var t;const i=(t=this._notebookTypeResolver)===null||t===void 0?void 0:t.call(this,e.uri),n={uri:e.uri.toString(),language:e.getLanguageId(),notebookType:i};if(!(this._lastCandidate&&this._lastCandidate.language===n.language&&this._lastCandidate.uri===n.uri&&this._lastCandidate.notebookType===n.notebookType)){this._lastCandidate=n;for(let o of this._entries)if(o._score=rx(o.selector,e.uri,e.getLanguageId(),pD(e),i),ax(o.selector)&&o._score>0){for(let r of this._entries)r._score=0;o._score=1e3;break}this._entries.sort(Ue._compareByScoreAndTime)}}static _compareByScoreAndTime(e,t){return e._scoret._score?-1:e._timet._time?-1:0}}class o6{constructor(){this.referenceProvider=new Ue(this._score.bind(this)),this.renameProvider=new Ue(this._score.bind(this)),this.codeActionProvider=new Ue(this._score.bind(this)),this.definitionProvider=new Ue(this._score.bind(this)),this.typeDefinitionProvider=new Ue(this._score.bind(this)),this.declarationProvider=new Ue(this._score.bind(this)),this.implementationProvider=new Ue(this._score.bind(this)),this.documentSymbolProvider=new Ue(this._score.bind(this)),this.inlayHintsProvider=new Ue(this._score.bind(this)),this.colorProvider=new Ue(this._score.bind(this)),this.codeLensProvider=new Ue(this._score.bind(this)),this.documentFormattingEditProvider=new Ue(this._score.bind(this)),this.documentRangeFormattingEditProvider=new Ue(this._score.bind(this)),this.onTypeFormattingEditProvider=new Ue(this._score.bind(this)),this.signatureHelpProvider=new Ue(this._score.bind(this)),this.hoverProvider=new Ue(this._score.bind(this)),this.documentHighlightProvider=new Ue(this._score.bind(this)),this.selectionRangeProvider=new Ue(this._score.bind(this)),this.foldingRangeProvider=new Ue(this._score.bind(this)),this.linkProvider=new Ue(this._score.bind(this)),this.inlineCompletionsProvider=new Ue(this._score.bind(this)),this.completionProvider=new Ue(this._score.bind(this)),this.linkedEditingRangeProvider=new Ue(this._score.bind(this)),this.documentRangeSemanticTokensProvider=new Ue(this._score.bind(this)),this.documentSemanticTokensProvider=new Ue(this._score.bind(this))}_score(e){var t;return(t=this._notebookTypeResolver)===null||t===void 0?void 0:t.call(this,e)}}ve(be,o6,!0);var To=globalThis&&globalThis.__decorate||function(s,e,t,i){var n=arguments.length,o=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},Vt=globalThis&&globalThis.__param||function(s,e){return function(t,i){e(t,i,s)}},lx=globalThis&&globalThis.__awaiter||function(s,e,t,i){function n(o){return o instanceof t?o:new t(function(r){r(o)})}return new(t||(t=Promise))(function(o,r){function a(h){try{c(i.next(h))}catch(d){r(d)}}function l(h){try{c(i.throw(h))}catch(d){r(d)}}function c(h){h.done?o(h.value):n(h.value).then(a,l)}c((i=i.apply(s,e||[])).next())})};class r6{constructor(e){this.disposed=!1,this.model=e,this._onWillDispose=new M}get textEditorModel(){return this.model}dispose(){this.disposed=!0,this._onWillDispose.fire()}}let x1=class{constructor(e){this.modelService=e}createModelReference(e){const t=this.modelService.getModel(e);return t?Promise.resolve(new cE(new r6(t))):Promise.reject(new Error("Model not found"))}};x1=To([Vt(0,At)],x1);class fg{show(){return fg.NULL_PROGRESS_RUNNER}showWhile(e,t){return lx(this,void 0,void 0,function*(){yield e})}}fg.NULL_PROGRESS_RUNNER={done:()=>{},total:()=>{},worked:()=>{}};class a6{confirm(e){return this.doConfirm(e).then(t=>({confirmed:t,checkboxChecked:!1}))}doConfirm(e){let t=e.message;return e.detail&&(t=t+` + +`+e.detail),Promise.resolve(window.confirm(t))}show(e,t,i,n){return Promise.resolve({choice:0})}}class gg{info(e){return this.notify({severity:at.Info,message:e})}warn(e){return this.notify({severity:at.Warning,message:e})}error(e){return this.notify({severity:at.Error,message:e})}notify(e){switch(e.severity){case at.Error:console.error(e.message);break;case at.Warning:console.warn(e.message);break;default:console.log(e.message);break}return gg.NO_OP}status(e,t){return W.None}}gg.NO_OP=new q7;let I1=class{constructor(e){this._onWillExecuteCommand=new M,this._onDidExecuteCommand=new M,this.onWillExecuteCommand=this._onWillExecuteCommand.event,this.onDidExecuteCommand=this._onDidExecuteCommand.event,this._instantiationService=e}executeCommand(e,...t){const i=Ht.getCommand(e);if(!i)return Promise.reject(new Error(`command '${e}' not found`));try{this._onWillExecuteCommand.fire({commandId:e,args:t});const n=this._instantiationService.invokeFunction.apply(this._instantiationService,[i.handler,...t]);return this._onDidExecuteCommand.fire({commandId:e,args:t}),Promise.resolve(n)}catch(n){return Promise.reject(n)}}};I1=To([Vt(0,rn)],I1);let ff=class extends fO{constructor(e,t,i,n,o,r){super(e,t,i,n,o),this._cachedResolver=null,this._dynamicKeybindings=[],this._domNodeListeners=[];const a=f=>{const m=new se;m.add(V(f,Y.KEY_DOWN,_=>{const b=new He(_);this._dispatch(b,b.target)&&(b.preventDefault(),b.stopPropagation())})),m.add(V(f,Y.KEY_UP,_=>{const b=new He(_);this._singleModifierDispatch(b,b.target)&&b.preventDefault()})),this._domNodeListeners.push(new l6(f,m))},l=f=>{for(let m=0;m{f.getOption(54)||a(f.getContainerDomNode())},h=f=>{f.getOption(54)||l(f.getContainerDomNode())};this._register(r.onCodeEditorAdd(c)),this._register(r.onCodeEditorRemove(h)),r.listCodeEditors().forEach(c);const d=f=>{a(f.getContainerDomNode())},u=f=>{l(f.getContainerDomNode())};this._register(r.onDiffEditorAdd(d)),this._register(r.onDiffEditorRemove(u)),r.listDiffEditors().forEach(d)}addDynamicKeybinding(e,t,i,n){const o=i_(t,qi),r=new se;return o&&(this._dynamicKeybindings.push({keybinding:o.parts,command:e,when:n,weight1:1e3,weight2:0,extensionId:null,isBuiltinExtension:!1}),r.add(Pe(()=>{for(let a=0;athis._log(i))}return this._cachedResolver}_documentHasFocus(){return document.hasFocus()}_toNormalizedKeybindingItems(e,t){const i=[];let n=0;for(const o of e){const r=o.when||void 0,a=o.keybinding;if(!a)i[n++]=new Lv(void 0,o.command,o.commandArgs,r,t,null,!1);else{const l=eh.resolveUserBinding(a,qi);for(const c of l)i[n++]=new Lv(c,o.command,o.commandArgs,r,t,null,!1)}}return i}resolveKeyboardEvent(e){const t=new Oc(e.ctrlKey,e.shiftKey,e.altKey,e.metaKey,e.keyCode).toChord();return new eh(t,qi)}};ff=To([Vt(0,Ne),Vt(1,Bi),Vt(2,Lh),Vt(3,Dn),Vt(4,Do),Vt(5,kt)],ff);class l6 extends W{constructor(e,t){super(),this.domNode=e,this._register(t)}}function RS(s){return s&&typeof s=="object"&&(!s.overrideIdentifier||typeof s.overrideIdentifier=="string")&&(!s.resource||s.resource instanceof we)}class cx{constructor(){this._onDidChangeConfiguration=new M,this.onDidChangeConfiguration=this._onDidChangeConfiguration.event,this._configuration=new Qf(new hO,new xi)}getValue(e,t){const i=typeof e=="string"?e:void 0,n=RS(e)?e:RS(t)?t:{};return this._configuration.getValue(i,n,void 0)}updateValues(e){const t={data:this._configuration.toData()},i=[];for(const n of e){const[o,r]=n;this.getValue(o)!==r&&(this._configuration.updateValue(o,r),i.push(o))}if(i.length>0){const n=new dO({keys:i,overrides:[]},t,this._configuration);n.source=7,n.sourceConfig=null,this._onDidChangeConfiguration.fire(n)}return Promise.resolve()}updateValue(e,t,i,n){return this.updateValues([[e,t]])}inspect(e,t={}){return this._configuration.inspect(e,t,void 0)}}let E1=class{constructor(e){this.configurationService=e,this._onDidChangeConfiguration=new M,this.configurationService.onDidChangeConfiguration(t=>{this._onDidChangeConfiguration.fire({affectedKeys:t.affectedKeys,affectsConfiguration:(i,n)=>t.affectsConfiguration(n)})})}getValue(e,t,i){const o=(A.isIPosition(t)?t:null)?typeof i=="string"?i:void 0:typeof t=="string"?t:void 0;return typeof o=="undefined"?this.configurationService.getValue():this.configurationService.getValue(o)}};E1=To([Vt(0,Rt)],E1);let D1=class{constructor(e){this.configurationService=e}getEOL(e,t){const i=this.configurationService.getValue("files.eol",{overrideIdentifier:t,resource:e});return i&&typeof i=="string"&&i!=="auto"?i:qt||me?` +`:`\r +`}};D1=To([Vt(0,Rt)],D1);class c6{publicLog(e,t){return Promise.resolve(void 0)}publicLog2(e,t){return this.publicLog(e,t)}}class mg{constructor(){const e=we.from({scheme:mg.SCHEME,authority:"model",path:"/"});this.workspace={id:"4064f6ec-cb38-4ad0-af64-ee6467e63c82",folders:[new wO({uri:e,name:"",index:0})]}}getWorkspace(){return this.workspace}}mg.SCHEME="inmemory";function gf(s,e,t){if(!e||!(s instanceof cx))return;const i=[];Object.keys(e).forEach(n=>{rO(n)&&i.push([`editor.${n}`,e[n]]),t&&aO(n)&&i.push([`diffEditor.${n}`,e[n]])}),i.length>0&&s.updateValues(i)}let N1=class{constructor(e){this._modelService=e}hasPreviewHandler(){return!1}apply(e,t){return lx(this,void 0,void 0,function*(){const i=new Map;for(let r of e){if(!(r instanceof n2))throw new Error("bad edit - only text edits are supported");const a=this._modelService.getModel(r.resource);if(!a)throw new Error("bad edit - model not found");if(typeof r.versionId=="number"&&a.getVersionId()!==r.versionId)throw new Error("bad state - model changed in the meantime");let l=i.get(a);l||(l=[],i.set(a,l)),l.push(cO.replaceMove(D.lift(r.textEdit.range),r.textEdit.text))}let n=0,o=0;for(const[r,a]of i)r.pushStackElement(),r.pushEditOperations([],a,()=>[]),r.pushStackElement(),o+=1,n+=a.length;return{ariaSummary:cu(H_.bulkEditServiceSummary,n,o)}})}};N1=To([Vt(0,At)],N1);class h6{getUriLabel(e,t){return e.scheme==="file"?e.fsPath:e.path}}let T1=class extends z_{constructor(e,t){super(e),this._codeEditorService=t}showContextView(e,t,i){if(!t){const n=this._codeEditorService.getFocusedCodeEditor()||this._codeEditorService.getActiveCodeEditor();n&&(t=n.getContainerDomNode())}return super.showContextView(e,t,i)}};T1=To([Vt(0,Th),Vt(1,kt)],T1);class d6{constructor(){this._neverEmitter=new M,this.onDidChangeTrust=this._neverEmitter.event}isWorkspaceTrusted(){return!0}}class u6 extends ih{constructor(){super()}}class f6 extends MN{constructor(){super(new TN)}}let M1=class extends Z_{constructor(e,t,i,n,o){super(e,t,i,n,o),this.configure({blockMouse:!1})}};M1=To([Vt(0,Lh),Vt(1,Dn),Vt(2,Yf),Vt(3,Li),Vt(4,ot)],M1);ve(Rt,cx);ve(Gy,E1);ve(Zy,D1);ve(CO,mg);ve(bO,h6);ve(Lh,c6);ve(Xk,a6);ve(Dn,gg);ve(El,Xo);ve(Wt,u6);ve(an,j3);ve(Do,f6);ve(At,af);ve(mL,e1);ve(Ne,k1);ve(lb,fg);ve(Bb,s6);ve(Il,e_);ve(eO,N1);ve(SO,d6);ve(Tf,x1);ve(Vi,v1);ve(ls,u1);ve(Bi,I1);ve(Li,ff);ve(Q2,C1);ve(Yf,T1);ve(_P,J_);ve(Nh,L1);ve(ab,M1);ve(SL,S1);var X;(function(s){const e=new Zf;for(const[r,a]of pC())e.set(r,a);const t=new Fb(e,!0);e.set(rn,t);function i(r){const a=e.get(r);if(!a)throw new Error("Missing service "+r);return a instanceof Wn?t.invokeFunction(l=>l.get(r)):a}s.get=i;let n=!1;function o(r){if(n)return t;n=!0;for(const[a,l]of pC())e.get(a)||e.set(a,l);for(const a in r)if(r.hasOwnProperty(a)){const l=pe(a);e.get(l)instanceof Wn&&e.set(l,r[a])}return t}s.initialize=o})(X||(X={}));var Vb=globalThis&&globalThis.__decorate||function(s,e,t,i){var n=arguments.length,o=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},De=globalThis&&globalThis.__param||function(s,e){return function(t,i){e(t,i,s)}};let g6=0,AS=!1;function m6(s){if(!s){if(AS)return;AS=!0}A4(s||document.body)}let mf=class extends Gu{constructor(e,t,i,n,o,r,a,l,c,h,d,u){const f=Object.assign({},t);f.ariaLabel=f.ariaLabel||tf.editorViewAccessibleLabel,f.ariaLabel=f.ariaLabel+";"+tf.accessibilityHelpMessage,super(e,f,{},i,n,o,r,l,c,h,d,u),a instanceof ff?this._standaloneKeybindingService=a:this._standaloneKeybindingService=null,m6(f.ariaContainerElement)}addCommand(e,t,i){if(!this._standaloneKeybindingService)return console.warn("Cannot add command because the editor is configured with an unrecognized KeybindingService"),null;const n="DYNAMIC_"+ ++g6,o=Oe.deserialize(i);return this._standaloneKeybindingService.addDynamicKeybinding(n,e,t,o),n}createContextKey(e,t){return this._contextKeyService.createKey(e,t)}addAction(e){if(typeof e.id!="string"||typeof e.label!="string"||typeof e.run!="function")throw new Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");if(!this._standaloneKeybindingService)return console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),W.None;const t=e.id,i=e.label,n=Oe.and(Oe.equals("editorId",this.getId()),Oe.deserialize(e.precondition)),o=e.keybindings,r=Oe.and(n,Oe.deserialize(e.keybindingContext)),a=e.contextMenuGroupId||null,l=e.contextMenuOrder||0,c=(f,...m)=>Promise.resolve(e.run(this,...m)),h=new se,d=this.getId()+":"+t;if(h.add(Ht.registerCommand(d,c)),a){const f={command:{id:d,title:i},when:n,group:a,order:l};h.add(sc.appendMenuItem(N.EditorContext,f))}if(Array.isArray(o))for(const f of o)h.add(this._standaloneKeybindingService.addDynamicKeybinding(d,f,c,r));const u=new vk(d,i,i,n,c,this._contextKeyService);return this._actions[t]=u,h.add(Pe(()=>{delete this._actions[t]})),h}_triggerCommand(e,t){if(this._codeEditorService instanceof Xu)try{this._codeEditorService.setActiveCodeEditor(this),super._triggerCommand(e,t)}finally{this._codeEditorService.setActiveCodeEditor(null)}else super._triggerCommand(e,t)}};mf=Vb([De(2,rn),De(3,kt),De(4,Bi),De(5,Ne),De(6,Li),De(7,ot),De(8,Dn),De(9,Vi),De(10,Eo),De(11,be)],mf);let R1=class extends mf{constructor(e,t,i,n,o,r,a,l,c,h,d,u,f,m,_){const b=Object.assign({},t);gf(h,b,!1);const w=l.registerEditorContainer(e);typeof b.theme=="string"&&l.setTheme(b.theme),typeof b.autoDetectHighContrast!="undefined"&&l.setAutoDetectHighContrast(Boolean(b.autoDetectHighContrast));const C=b.model;delete b.model,super(e,b,i,n,o,r,a,l,c,d,m,_),this._configurationService=h,this._standaloneThemeService=l,this._register(w);let v;if(typeof C=="undefined"){const S=f.getLanguageIdByMimeType(b.language)||b.language||Vr;v=hx(u,f,b.value||"",S,void 0),this._ownsModel=!0}else v=C,this._ownsModel=!1;if(this._attachModel(v),v){const S={oldModelUrl:null,newModelUrl:v.uri};this._onDidChangeModel.fire(S)}}dispose(){super.dispose()}updateOptions(e){gf(this._configurationService,e,!1),typeof e.theme=="string"&&this._standaloneThemeService.setTheme(e.theme),typeof e.autoDetectHighContrast!="undefined"&&this._standaloneThemeService.setAutoDetectHighContrast(Boolean(e.autoDetectHighContrast)),super.updateOptions(e)}_postDetachModelCleanup(e){super._postDetachModelCleanup(e),e&&this._ownsModel&&(e.dispose(),this._ownsModel=!1)}};R1=Vb([De(2,rn),De(3,kt),De(4,Bi),De(5,Ne),De(6,Li),De(7,an),De(8,Dn),De(9,Rt),De(10,Vi),De(11,At),De(12,Wt),De(13,Eo),De(14,be)],R1);let A1=class extends ko{constructor(e,t,i,n,o,r,a,l,c,h,d,u){const f=Object.assign({},t);gf(c,f,!0);const m=a.registerEditorContainer(e);typeof f.theme=="string"&&a.setTheme(f.theme),typeof f.autoDetectHighContrast!="undefined"&&a.setAutoDetectHighContrast(Boolean(f.autoDetectHighContrast)),super(e,f,{},u,o,n,i,r,a,l,h,d),this._configurationService=c,this._standaloneThemeService=a,this._register(m)}dispose(){super.dispose()}updateOptions(e){gf(this._configurationService,e,!0),typeof e.theme=="string"&&this._standaloneThemeService.setTheme(e.theme),typeof e.autoDetectHighContrast!="undefined"&&this._standaloneThemeService.setAutoDetectHighContrast(Boolean(e.autoDetectHighContrast)),super.updateOptions(e)}_createInnerEditor(e,t,i){return e.createInstance(mf,t,i)}getOriginalEditor(){return super.getOriginalEditor()}getModifiedEditor(){return super.getModifiedEditor()}addCommand(e,t,i){return this.getModifiedEditor().addCommand(e,t,i)}createContextKey(e,t){return this.getModifiedEditor().createContextKey(e,t)}addAction(e){return this.getModifiedEditor().addAction(e)}};A1=Vb([De(2,rn),De(3,Ne),De(4,Il),De(5,kt),De(6,an),De(7,Dn),De(8,Rt),De(9,ab),De(10,lb),De(11,Nh)],A1);function hx(s,e,t,i,n){if(t=t||"",!i){const o=t.indexOf(` +`);let r=t;return o!==-1&&(r=t.substring(0,o)),OS(s,t,e.createByFilepathOrFirstLine(n||null,r),n)}return OS(s,t,e.createById(i),n)}function OS(s,e,t,i){return s.createModel(e,t,i)}function p6(s,e,t){return X.initialize(t||{}).createInstance(R1,s,e)}function _6(s){return X.get(kt).onCodeEditorAdd(t=>{s(t)})}function b6(s,e,t){return X.initialize(t||{}).createInstance(A1,s,e)}function C6(s,e){return new fD(s,e)}function w6(s,e,t){const i=X.get(Wt),n=i.getLanguageIdByMimeType(e)||e;return hx(X.get(At),i,s,n,t)}function v6(s,e){const t=X.get(Wt);X.get(At).setMode(s,t.createById(e))}function S6(s,e,t){s&&X.get(El).changeOne(e,s.uri,t)}function y6(s){return X.get(El).read(s)}function L6(s){return X.get(El).onMarkerChanged(s)}function k6(s){return X.get(At).getModel(s)}function x6(){return X.get(At).getModels()}function I6(s){return X.get(At).onModelAdded(s)}function E6(s){return X.get(At).onModelRemoved(s)}function D6(s){return X.get(At).onModelLanguageChanged(t=>{s({model:t.model,oldLanguage:t.oldLanguageId})})}function N6(s){return FN(X.get(At),X.get(Eo),s)}function T6(s,e){const t=X.get(Wt),i=X.get(an);return i.registerEditorContainer(s),v0.colorizeElement(i,t,s,e)}function M6(s,e,t){const i=X.get(Wt);return X.get(an).registerEditorContainer(document.body),v0.colorize(i,s,e,t)}function R6(s,e,t=4){return X.get(an).registerEditorContainer(document.body),v0.colorizeModelLine(s,e,t)}function A6(s){const e=et.get(s);return e||{getInitialState:()=>mu,tokenize:(t,i,n)=>WD(s,n)}}function O6(s,e){et.getOrCreate(e);const t=A6(e),i=Ch(s),n=[];let o=t.getInitialState();for(let r=0,a=i.length;r=100){i=i-100;const n=t.split(".");if(n.unshift(t),i=0&&(i.tokenSubst=!0),typeof t.bracket=="string")if(t.bracket==="@open")i.bracket=1;else if(t.bracket==="@close")i.bracket=-1;else throw ke(s,"a 'bracket' attribute must be either '@open' or '@close', in rule: "+e);if(t.next){if(typeof t.next!="string")throw ke(s,"the next state must be a string value in rule: "+e);{let n=t.next;if(!/^(@pop|@push|@popall)$/.test(n)&&(n[0]==="@"&&(n=n.substr(1)),n.indexOf("$")<0&&!i4(s,Js(s,n,"",[],""))))throw ke(s,"the next state '"+t.next+"' is not defined in rule: "+e);i.next=n}}return typeof t.goBack=="number"&&(i.goBack=t.goBack),typeof t.switchTo=="string"&&(i.switchTo=t.switchTo),typeof t.log=="string"&&(i.log=t.log),typeof t.nextEmbedded=="string"&&(i.nextEmbedded=t.nextEmbedded,s.usesEmbedded=!0),i}}else if(Array.isArray(t)){const i=[];for(let n=0,o=t.length;n0&&i[0]==="^",this.name=this.name+": "+i,this.regex=O1(e,"^(?:"+(this.matchOnlyAtLineStart?i.substr(1):i)+")")}setAction(e,t){this.action=P1(e,this.name,t)}}function dx(s,e){if(!e||typeof e!="object")throw new Error("Monarch: expecting a language definition object");const t={};t.languageId=s,t.includeLF=Sd(e.includeLF,!1),t.noThrow=!1,t.maxStack=100,t.start=typeof e.start=="string"?e.start:null,t.ignoreCase=Sd(e.ignoreCase,!1),t.unicode=Sd(e.unicode,!1),t.tokenPostfix=PS(e.tokenPostfix,"."+t.languageId),t.defaultToken=PS(e.defaultToken,"source"),t.usesEmbedded=!1;const i=e;i.languageId=s,i.includeLF=t.includeLF,i.ignoreCase=t.ignoreCase,i.unicode=t.unicode,i.noThrow=t.noThrow,i.usesEmbedded=t.usesEmbedded,i.stateNames=e.tokenizer,i.defaultToken=t.defaultToken;function n(r,a,l){for(const c of l){let h=c.include;if(h){if(typeof h!="string")throw ke(t,"an 'include' attribute must be a string at: "+r);if(h[0]==="@"&&(h=h.substr(1)),!e.tokenizer[h])throw ke(t,"include target '"+h+"' is not defined at: "+r);n(r+"."+h,a,e.tokenizer[h])}else{const d=new j6(r);if(Array.isArray(c)&&c.length>=1&&c.length<=3)if(d.setRegex(i,c[0]),c.length>=3)if(typeof c[1]=="string")d.setAction(i,{token:c[1],next:c[2]});else if(typeof c[1]=="object"){const u=c[1];u.next=c[2],d.setAction(i,u)}else throw ke(t,"a next state as the last element of a rule can only be given if the action is either an object or a string, at: "+r);else d.setAction(i,c[1]);else{if(!c.regex)throw ke(t,"a rule must either be an array, or an object with a 'regex' or 'include' field at: "+r);c.name&&typeof c.name=="string"&&(d.name=c.name),c.matchOnlyAtStart&&(d.matchOnlyAtLineStart=Sd(c.matchOnlyAtLineStart,!1)),d.setRegex(i,c.regex),d.setAction(i,c.action)}a.push(d)}}}if(!e.tokenizer||typeof e.tokenizer!="object")throw ke(t,"a language definition must define the 'tokenizer' attribute as an object");t.tokenizer=[];for(let r in e.tokenizer)if(e.tokenizer.hasOwnProperty(r)){t.start||(t.start=r);const a=e.tokenizer[r];t.tokenizer[r]=new Array,n("tokenizer."+r,t.tokenizer[r],a)}if(t.usesEmbedded=i.usesEmbedded,e.brackets){if(!Array.isArray(e.brackets))throw ke(t,"the 'brackets' attribute must be defined as an array")}else e.brackets=[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}];const o=[];for(let r of e.brackets){let a=r;if(a&&Array.isArray(a)&&a.length===3&&(a={token:a[2],open:a[0],close:a[1]}),a.open===a.close)throw ke(t,"open and close brackets in a 'brackets' attribute must be different: "+a.open+` + hint: use the 'bracket' attribute if matching on equal brackets is required.`);if(typeof a.open=="string"&&typeof a.token=="string"&&typeof a.close=="string")o.push({token:a.token+t.tokenPostfix,open:fo(t,a.open),close:fo(t,a.close)});else throw ke(t,"every element in the 'brackets' array must be a '{open,close,token}' object or array")}return t.brackets=o,t.noThrow=!0,t}var K6=globalThis&&globalThis.__awaiter||function(s,e,t,i){function n(o){return o instanceof t?o:new t(function(r){r(o)})}return new(t||(t=Promise))(function(o,r){function a(h){try{c(i.next(h))}catch(d){r(d)}}function l(h){try{c(i.throw(h))}catch(d){r(d)}}function c(h){h.done?o(h.value):n(h.value).then(a,l)}c((i=i.apply(s,e||[])).next())})};function q6(s){il.registerLanguage(s)}function G6(){let s=[];return s=s.concat(il.getLanguages()),s}function Z6(s){return X.get(Wt).languageIdCodec.encodeLanguageId(s)}function Y6(s,e){const i=X.get(Wt).onDidEncounterLanguage(n=>{n===s&&(i.dispose(),e())});return i}function X6(s,e){if(!X.get(Wt).isRegisteredLanguageId(s))throw new Error(`Cannot set configuration for unknown language ${s}`);return Ki.register(s,e,100)}class Q6{constructor(e,t){this._languageId=e,this._actual=t}getInitialState(){return this._actual.getInitialState()}tokenize(e,t,i){if(typeof this._actual.tokenize=="function")return uh.adaptTokenize(this._languageId,this._actual,e,i);throw new Error("Not supported!")}tokenizeEncoded(e,t,i){const n=this._actual.tokenizeEncoded(e,i);return new wf(n.tokens,n.endState)}}class uh{constructor(e,t,i,n){this._languageId=e,this._actual=t,this._languageService=i,this._standaloneThemeService=n}getInitialState(){return this._actual.getInitialState()}static _toClassicTokens(e,t){const i=[];let n=0;for(let o=0,r=e.length;o0&&o[r-1]===u)continue;let f=d.startIndex;c===0?f=0:fK6(this,void 0,void 0,function*(){const i=yield Promise.resolve(e.create());return i?J6(i)?fx(s,i):new yh(X.get(Wt),X.get(an),s,dx(s,i)):null})};return et.registerFactory(s,t)}function iF(s,e){if(!X.get(Wt).isRegisteredLanguageId(s))throw new Error(`Cannot set tokens provider for unknown language ${s}`);return ux(e)?Wb(s,{create:()=>e}):et.register(s,fx(s,e))}function nF(s,e){const t=i=>new yh(X.get(Wt),X.get(an),s,dx(s,i));return ux(e)?Wb(s,{create:()=>e}):et.register(s,t(e))}function sF(s,e){return X.get(be).referenceProvider.register(s,e)}function oF(s,e){return X.get(be).renameProvider.register(s,e)}function rF(s,e){return X.get(be).signatureHelpProvider.register(s,e)}function aF(s,e){return X.get(be).hoverProvider.register(s,{provideHover:(i,n,o)=>{const r=i.getWordAtPosition(n);return Promise.resolve(e.provideHover(i,n,o)).then(a=>{if(!!a)return!a.range&&r&&(a.range=new D(n.lineNumber,r.startColumn,n.lineNumber,r.endColumn)),a.range||(a.range=new D(n.lineNumber,n.column,n.lineNumber,n.column)),a})}})}function lF(s,e){return X.get(be).documentSymbolProvider.register(s,e)}function cF(s,e){return X.get(be).documentHighlightProvider.register(s,e)}function hF(s,e){return X.get(be).linkedEditingRangeProvider.register(s,e)}function dF(s,e){return X.get(be).definitionProvider.register(s,e)}function uF(s,e){return X.get(be).implementationProvider.register(s,e)}function fF(s,e){return X.get(be).typeDefinitionProvider.register(s,e)}function gF(s,e){return X.get(be).codeLensProvider.register(s,e)}function mF(s,e,t){return X.get(be).codeActionProvider.register(s,{providedCodeActionKinds:t==null?void 0:t.providedCodeActionKinds,provideCodeActions:(n,o,r,a)=>{const c=X.get(El).read({resource:n.uri}).filter(h=>D.areIntersectingOrTouching(h,o));return e.provideCodeActions(n,o,{markers:c,only:r.only},a)},resolveCodeAction:e.resolveCodeAction})}function pF(s,e){return X.get(be).documentFormattingEditProvider.register(s,e)}function _F(s,e){return X.get(be).documentRangeFormattingEditProvider.register(s,e)}function bF(s,e){return X.get(be).onTypeFormattingEditProvider.register(s,e)}function CF(s,e){return X.get(be).linkProvider.register(s,e)}function wF(s,e){return X.get(be).completionProvider.register(s,e)}function vF(s,e){return X.get(be).colorProvider.register(s,e)}function SF(s,e){return X.get(be).foldingRangeProvider.register(s,e)}function yF(s,e){return X.get(be).declarationProvider.register(s,e)}function LF(s,e){return X.get(be).selectionRangeProvider.register(s,e)}function kF(s,e){return X.get(be).documentSemanticTokensProvider.register(s,e)}function xF(s,e){return X.get(be).documentRangeSemanticTokensProvider.register(s,e)}function IF(s,e){return X.get(be).inlineCompletionsProvider.register(s,e)}function EF(s,e){return X.get(be).inlayHintsProvider.register(s,e)}function DF(){return{register:q6,getLanguages:G6,onLanguage:Y6,getEncodedLanguageId:Z6,setLanguageConfiguration:X6,setColorMap:tF,registerTokensProviderFactory:Wb,setTokensProvider:iF,setMonarchTokensProvider:nF,registerReferenceProvider:sF,registerRenameProvider:oF,registerCompletionItemProvider:wF,registerSignatureHelpProvider:rF,registerHoverProvider:aF,registerDocumentSymbolProvider:lF,registerDocumentHighlightProvider:cF,registerLinkedEditingRangeProvider:hF,registerDefinitionProvider:dF,registerImplementationProvider:uF,registerTypeDefinitionProvider:fF,registerCodeLensProvider:gF,registerCodeActionProvider:mF,registerDocumentFormattingEditProvider:pF,registerDocumentRangeFormattingEditProvider:_F,registerOnTypeFormattingEditProvider:bF,registerLinkProvider:CF,registerColorProvider:vF,registerFoldingRangeProvider:SF,registerDeclarationProvider:yF,registerSelectionRangeProvider:LF,registerDocumentSemanticTokensProvider:kF,registerDocumentRangeSemanticTokensProvider:xF,registerInlineCompletionsProvider:IF,registerInlayHintsProvider:EF,DocumentHighlightKind:dp,CompletionItemKind:op,CompletionItemTag:rp,CompletionItemInsertTextRule:sp,SymbolKind:Ap,SymbolTag:Op,IndentAction:pp,CompletionTriggerKind:ap,SignatureHelpTriggerKind:Rp,InlayHintKind:bp,InlineCompletionTriggerKind:Cp,FoldingRangeKind:br}}const gx=pe("IEditorCancelService"),mx=new G("cancellableOperation",!1,p("cancellableOperation","Whether the editor runs a cancellable operation, e.g. like 'Peek References'"));ve(gx,class{constructor(){this._tokens=new WeakMap}add(s,e){let t=this._tokens.get(s);t||(t=s.invokeWithinContext(n=>{const o=mx.bindTo(n.get(Ne)),r=new Xi;return{key:o,tokens:r}}),this._tokens.set(s,t));let i;return t.key.set(!0),i=t.tokens.push(e),()=>{i&&(i(),t.key.set(!t.tokens.isEmpty()),i=void 0)}}cancel(s){const e=this._tokens.get(s);if(!e)return;const t=e.tokens.pop();t&&(t.cancel(),e.key.set(!e.tokens.isEmpty()))}},!0);q(new class extends Fr{constructor(){super({id:"editor.cancelOperation",kbOpts:{weight:100,primary:9},precondition:mx})}runEditorCommand(s,e){s.get(gx).cancel(e)}});class jm{constructor(e){this.value=e,this._lower=e.toLowerCase()}static toKey(e){return typeof e=="string"?e.toLowerCase():e._lower}}var Dl=globalThis&&globalThis.__awaiter||function(s,e,t,i){function n(o){return o instanceof t?o:new t(function(r){r(o)})}return new(t||(t=Promise))(function(o,r){function a(h){try{c(i.next(h))}catch(d){r(d)}}function l(h){try{c(i.throw(h))}catch(d){r(d)}}function c(h){h.done?o(h.value):n(h.value).then(a,l)}c((i=i.apply(s,e||[])).next())})};function NF(s,e,t){const i=[],n=new Set,o=s.ordered(t);for(const a of o)i.push(a),a.extensionId&&n.add(jm.toKey(a.extensionId));const r=e.ordered(t);for(const a of r){if(a.extensionId){if(n.has(jm.toKey(a.extensionId)))continue;n.add(jm.toKey(a.extensionId))}i.push({displayName:a.displayName,extensionId:a.extensionId,provideDocumentFormattingEdits(l,c,h){return a.provideDocumentRangeFormattingEdits(l,l.getFullModelRange(),c,h)}})}return i}class fh{static setFormatterSelector(e){return{dispose:fh._selectors.unshift(e)}}static select(e,t,i){return Dl(this,void 0,void 0,function*(){if(e.length===0)return;const n=he.first(fh._selectors);if(n)return yield n(e,t,i)})}}fh._selectors=new Xi;function TF(s,e,t,i,n,o){return Dl(this,void 0,void 0,function*(){const r=e.documentRangeFormattingEditProvider.ordered(t);for(const a of r){let l=yield Promise.resolve(a.provideDocumentRangeFormattingEdits(t,i,n,o)).catch(bf);if($1(l))return yield s.computeMoreMinimalEdits(t.uri,l)}})}function MF(s,e,t,i,n){return Dl(this,void 0,void 0,function*(){const o=NF(e.documentFormattingEditProvider,e.documentRangeFormattingEditProvider,t);for(const r of o){let a=yield Promise.resolve(r.provideDocumentFormattingEdits(t,i,n)).catch(bf);if($1(a))return yield s.computeMoreMinimalEdits(t.uri,a)}})}function RF(s,e,t,i,n,o,r){const a=e.onTypeFormattingEditProvider.ordered(t);return a.length===0||a[0].autoFormatTriggerCharacters.indexOf(n)<0?Promise.resolve(void 0):Promise.resolve(a[0].provideOnTypeFormattingEdits(t,i,n,o,r)).catch(bf).then(l=>s.computeMoreMinimalEdits(t.uri,l))}Ht.registerCommand("_executeFormatRangeProvider",function(s,...e){return Dl(this,void 0,void 0,function*(){const[t,i,n]=e;Sn(we.isUri(t)),Sn(D.isIRange(i));const o=s.get(Tf),r=s.get(Il),a=s.get(be),l=yield o.createModelReference(t);try{return TF(r,a,l.object.textEditorModel,D.lift(i),n,ci.None)}finally{l.dispose()}})});Ht.registerCommand("_executeFormatDocumentProvider",function(s,...e){return Dl(this,void 0,void 0,function*(){const[t,i]=e;Sn(we.isUri(t));const n=s.get(Tf),o=s.get(Il),r=s.get(be),a=yield n.createModelReference(t);try{return MF(o,r,a.object.textEditorModel,i,ci.None)}finally{a.dispose()}})});Ht.registerCommand("_executeFormatOnTypeProvider",function(s,...e){return Dl(this,void 0,void 0,function*(){const[t,i,n,o]=e;Sn(we.isUri(t)),Sn(A.isIPosition(i)),Sn(typeof n=="string");const r=s.get(Tf),a=s.get(Il),l=s.get(be),c=yield r.createModelReference(t);try{return RF(a,l,c.object.textEditorModel,A.lift(i),n,o,ci.None)}finally{c.dispose()}})});var Km;Mr.wrappingIndent.defaultValue=0;Mr.glyphMargin.defaultValue=!1;Mr.autoIndent.defaultValue=3;Mr.overviewRulerLanes.defaultValue=2;fh.setFormatterSelector((s,e,t)=>Promise.resolve(s[0]));const Gt=by();Gt.editor=W6();Gt.languages=DF();const AF=Gt.CancellationTokenSource,OF=Gt.Emitter,PF=Gt.KeyCode,FF=Gt.KeyMod,BF=Gt.Position,VF=Gt.Range,WF=Gt.Selection,HF=Gt.SelectionDirection,zF=Gt.MarkerSeverity,UF=Gt.MarkerTag,px=Gt.Uri,$F=Gt.Token,eu=Gt.editor,jF=Gt.languages;(((Km=Ge.MonacoEnvironment)===null||Km===void 0?void 0:Km.globalAPI)||typeof define=="function"&&define.amd)&&(self.monaco=Gt);typeof self.require!="undefined"&&typeof self.require.config=="function"&&self.require.config({ignoreDuplicateModules:["vscode-languageserver-types","vscode-languageserver-types/main","vscode-languageserver-textdocument","vscode-languageserver-textdocument/main","vscode-nls","vscode-nls/vscode-nls","jsonc-parser","jsonc-parser/main","vscode-uri","vscode-uri/index","vs/basic-languages/typescript/typescript"]});var KF=Object.freeze(Object.defineProperty({__proto__:null,CancellationTokenSource:AF,Emitter:OF,KeyCode:PF,KeyMod:FF,Position:BF,Range:VF,Selection:WF,SelectionDirection:HF,MarkerSeverity:zF,MarkerTag:UF,Uri:px,Token:$F,editor:eu,languages:jF},Symbol.toStringTag,{value:"Module"}));/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.33.0(4b1abad427e58dbedc1215d99a0902ffc885fcd4) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/var qF=Object.defineProperty,GF=Object.getOwnPropertyDescriptor,ZF=Object.getOwnPropertyNames,YF=Object.prototype.hasOwnProperty,XF=(s,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of ZF(e))!YF.call(s,n)&&(t||n!=="default")&&qF(s,n,{get:()=>e[n],enumerable:!(i=GF(e,n))||i.enumerable});return s},Ql={};XF(Ql,KF);var _x={},qm={},bx=class{constructor(s){$r(this,"_languageId");$r(this,"_loadingTriggered");$r(this,"_lazyLoadPromise");$r(this,"_lazyLoadPromiseResolve");$r(this,"_lazyLoadPromiseReject");this._languageId=s,this._loadingTriggered=!1,this._lazyLoadPromise=new Promise((e,t)=>{this._lazyLoadPromiseResolve=e,this._lazyLoadPromiseReject=t})}static getOrCreate(s){return qm[s]||(qm[s]=new bx(s)),qm[s]}load(){return this._loadingTriggered||(this._loadingTriggered=!0,_x[this._languageId].loader().then(s=>this._lazyLoadPromiseResolve(s),s=>this._lazyLoadPromiseReject(s))),this._lazyLoadPromise}};function Ct(s){const e=s.id;_x[e]=s,Ql.languages.register(s);const t=bx.getOrCreate(e);Ql.languages.registerTokensProviderFactory(e,{create:async()=>(await t.load()).language}),Ql.languages.onLanguage(e,async()=>{const i=await t.load();Ql.languages.setLanguageConfiguration(e,i.conf)})}Ct({id:"html",extensions:[".html",".htm",".shtml",".xhtml",".mdoc",".jsp",".asp",".aspx",".jshtm"],aliases:["HTML","htm","html","xhtml"],mimetypes:["text/html","text/x-jshtm","text/template","text/ng-template"],loader:()=>bt(()=>import("./html.b425aed9.js"),["assets/html.b425aed9.js","assets/index.bbf7818f.js","assets/index.b549c954.css","assets/common.6565cdd3.js","assets/request.19cbe8c5.js","assets/base.197bc1e5.js","assets/base.ef3e45d0.css","assets/useFileUpload.ba32a7f8.js","assets/common.d0a2bd7a.js","assets/index.6dd6d04c.js","assets/index.9aca9b8e.js","assets/event.776e7e11.js","assets/index.c66de53e.js","assets/scroll.4cf9bb37.js","assets/event.3ec63147.js","assets/focus-trap.fe4b8179.js","assets/validator.998eeed0.js","assets/index.eeb08216.js","assets/directive.b8a17520.js"])});Ct({id:"css",extensions:[".css"],aliases:["CSS","css"],mimetypes:["text/css"],loader:()=>bt(()=>import("./css.4c22ed20.js"),[])});Ct({id:"scss",extensions:[".scss"],aliases:["Sass","sass","scss"],mimetypes:["text/x-scss","text/scss"],loader:()=>bt(()=>import("./scss.19caa34f.js"),[])});Ct({id:"dockerfile",extensions:[".dockerfile"],filenames:["Dockerfile"],aliases:["Dockerfile"],loader:()=>bt(()=>import("./dockerfile.de6a0f2c.js"),[])});Ct({id:"go",extensions:[".go"],aliases:["Go"],loader:()=>bt(()=>import("./go.1e1292ae.js"),[])});Ct({id:"graphql",extensions:[".graphql",".gql"],aliases:["GraphQL","graphql","gql"],mimetypes:["application/graphql"],loader:()=>bt(()=>import("./graphql.900d9927.js"),[])});Ct({id:"ini",extensions:[".ini",".properties",".gitconfig"],filenames:["config",".gitattributes",".gitconfig",".editorconfig"],aliases:["Ini","ini"],loader:()=>bt(()=>import("./ini.75848fa5.js"),[])});Ct({id:"java",extensions:[".java",".jav"],aliases:["Java","java"],mimetypes:["text/x-java-source","text/x-java"],loader:()=>bt(()=>import("./java.13c44e5c.js"),[])});Ct({id:"javascript",extensions:[".js",".es6",".jsx",".mjs",".cjs"],firstLine:"^#!.*\\bnode",filenames:["jakefile"],aliases:["JavaScript","javascript","js"],mimetypes:["text/javascript"],loader:()=>bt(()=>import("./javascript.f8f21cc3.js"),["assets/javascript.f8f21cc3.js","assets/typescript.47aa7854.js","assets/index.bbf7818f.js","assets/index.b549c954.css","assets/common.6565cdd3.js","assets/request.19cbe8c5.js","assets/base.197bc1e5.js","assets/base.ef3e45d0.css","assets/useFileUpload.ba32a7f8.js","assets/common.d0a2bd7a.js","assets/index.6dd6d04c.js","assets/index.9aca9b8e.js","assets/event.776e7e11.js","assets/index.c66de53e.js","assets/scroll.4cf9bb37.js","assets/event.3ec63147.js","assets/focus-trap.fe4b8179.js","assets/validator.998eeed0.js","assets/index.eeb08216.js","assets/directive.b8a17520.js"])});Ct({id:"kotlin",extensions:[".kt"],aliases:["Kotlin","kotlin"],mimetypes:["text/x-kotlin-source","text/x-kotlin"],loader:()=>bt(()=>import("./kotlin.3399aeb6.js"),[])});Ct({id:"less",extensions:[".less"],aliases:["Less","less"],mimetypes:["text/x-less","text/less"],loader:()=>bt(()=>import("./less.b6aad23a.js"),[])});Ct({id:"markdown",extensions:[".md",".markdown",".mdown",".mkdn",".mkd",".mdwn",".mdtxt",".mdtext"],aliases:["Markdown","markdown"],loader:()=>bt(()=>import("./markdown.236ff8ef.js"),[])});Ct({id:"mysql",extensions:[],aliases:["MySQL","mysql"],loader:()=>bt(()=>import("./mysql.fdc04fe1.js"),[])});Ct({id:"php",extensions:[".php",".php4",".php5",".phtml",".ctp"],aliases:["PHP","php"],mimetypes:["application/x-php"],loader:()=>bt(()=>import("./php.a9540a84.js"),[])});Ct({id:"c",extensions:[".c",".h"],aliases:["C","c"],loader:()=>bt(()=>import("./cpp.337468ce.js"),[])});Ct({id:"cpp",extensions:[".cpp",".cc",".cxx",".hpp",".hh",".hxx"],aliases:["C++","Cpp","cpp"],loader:()=>bt(()=>import("./cpp.337468ce.js"),[])});Ct({id:"python",extensions:[".py",".rpy",".pyw",".cpy",".gyp",".gypi"],aliases:["Python","py"],firstLine:"^#!/.*\\bpython[0-9.-]*\\b",loader:()=>bt(()=>import("./python.b05e1114.js"),["assets/python.b05e1114.js","assets/index.bbf7818f.js","assets/index.b549c954.css","assets/common.6565cdd3.js","assets/request.19cbe8c5.js","assets/base.197bc1e5.js","assets/base.ef3e45d0.css","assets/useFileUpload.ba32a7f8.js","assets/common.d0a2bd7a.js","assets/index.6dd6d04c.js","assets/index.9aca9b8e.js","assets/event.776e7e11.js","assets/index.c66de53e.js","assets/scroll.4cf9bb37.js","assets/event.3ec63147.js","assets/focus-trap.fe4b8179.js","assets/validator.998eeed0.js","assets/index.eeb08216.js","assets/directive.b8a17520.js"])});Ct({id:"xml",extensions:[".xml",".dtd",".ascx",".csproj",".config",".wxi",".wxl",".wxs",".xaml",".svg",".svgz",".opf",".xsl"],firstLine:"(\\<\\?xml.*)|(\\bt(()=>import("./xml.9fe09fd6.js"),["assets/xml.9fe09fd6.js","assets/index.bbf7818f.js","assets/index.b549c954.css","assets/common.6565cdd3.js","assets/request.19cbe8c5.js","assets/base.197bc1e5.js","assets/base.ef3e45d0.css","assets/useFileUpload.ba32a7f8.js","assets/common.d0a2bd7a.js","assets/index.6dd6d04c.js","assets/index.9aca9b8e.js","assets/event.776e7e11.js","assets/index.c66de53e.js","assets/scroll.4cf9bb37.js","assets/event.3ec63147.js","assets/focus-trap.fe4b8179.js","assets/validator.998eeed0.js","assets/index.eeb08216.js","assets/directive.b8a17520.js"])});Ct({id:"sql",extensions:[".sql"],aliases:["SQL"],loader:()=>bt(()=>import("./sql.5f2f7ebd.js"),[])});Ct({id:"yaml",extensions:[".yaml",".yml"],aliases:["YAML","yaml","YML","yml"],mimetypes:["application/x-yaml","text/x-yaml"],loader:()=>bt(()=>import("./yaml.7d8c6ae6.js"),[])});Ct({id:"typescript",extensions:[".ts",".tsx"],aliases:["TypeScript","ts","typescript"],mimetypes:["text/typescript"],loader:()=>bt(()=>import("./typescript.47aa7854.js"),["assets/typescript.47aa7854.js","assets/index.bbf7818f.js","assets/index.b549c954.css","assets/common.6565cdd3.js","assets/request.19cbe8c5.js","assets/base.197bc1e5.js","assets/base.ef3e45d0.css","assets/useFileUpload.ba32a7f8.js","assets/common.d0a2bd7a.js","assets/index.6dd6d04c.js","assets/index.9aca9b8e.js","assets/event.776e7e11.js","assets/index.c66de53e.js","assets/scroll.4cf9bb37.js","assets/event.3ec63147.js","assets/focus-trap.fe4b8179.js","assets/validator.998eeed0.js","assets/index.eeb08216.js","assets/directive.b8a17520.js"])});class Ft{constructor(e){this._editor=e,this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null,this._startPosition=this._editor.getPosition()}dispose(){this._editor.deltaDecorations(this._allDecorations(),[]),this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}reset(){this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}getCount(){return this._decorations.length}getFindScope(){return this._findScopeDecorationIds[0]?this._editor.getModel().getDecorationRange(this._findScopeDecorationIds[0]):null}getFindScopes(){if(this._findScopeDecorationIds.length){const e=this._findScopeDecorationIds.map(t=>this._editor.getModel().getDecorationRange(t)).filter(t=>!!t);if(e.length)return e}return null}getStartPosition(){return this._startPosition}setStartPosition(e){this._startPosition=e,this.setCurrentFindMatch(null)}_getDecorationIndex(e){const t=this._decorations.indexOf(e);return t>=0?t+1:1}getCurrentMatchesPosition(e){let t=this._editor.getModel().getDecorationsInRange(e);for(const i of t){const n=i.options;if(n===Ft._FIND_MATCH_DECORATION||n===Ft._CURRENT_FIND_MATCH_DECORATION)return this._getDecorationIndex(i.id)}return 0}setCurrentFindMatch(e){let t=null,i=0;if(e)for(let n=0,o=this._decorations.length;n{if(this._highlightedDecorationId!==null&&(n.changeDecorationOptions(this._highlightedDecorationId,Ft._FIND_MATCH_DECORATION),this._highlightedDecorationId=null),t!==null&&(this._highlightedDecorationId=t,n.changeDecorationOptions(this._highlightedDecorationId,Ft._CURRENT_FIND_MATCH_DECORATION)),this._rangeHighlightDecorationId!==null&&(n.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null),t!==null){let o=this._editor.getModel().getDecorationRange(t);if(o.startLineNumber!==o.endLineNumber&&o.endColumn===1){let r=o.endLineNumber-1,a=this._editor.getModel().getLineMaxColumn(r);o=new D(o.startLineNumber,o.startColumn,r,a)}this._rangeHighlightDecorationId=n.addDecoration(o,Ft._RANGE_HIGHLIGHT_DECORATION)}}),i}set(e,t){this._editor.changeDecorations(i=>{let n=Ft._FIND_MATCH_DECORATION,o=[];if(e.length>1e3){n=Ft._FIND_MATCH_NO_OVERVIEW_DECORATION;const a=this._editor.getModel().getLineCount(),c=this._editor.getLayoutInfo().height/a,h=Math.max(2,Math.ceil(3/c));let d=e[0].range.startLineNumber,u=e[0].range.endLineNumber;for(let f=1,m=e.length;f=_.startLineNumber?_.endLineNumber>u&&(u=_.endLineNumber):(o.push({range:new D(d,1,u,1),options:Ft._FIND_MATCH_ONLY_OVERVIEW_DECORATION}),d=_.startLineNumber,u=_.endLineNumber)}o.push({range:new D(d,1,u,1),options:Ft._FIND_MATCH_ONLY_OVERVIEW_DECORATION})}let r=new Array(e.length);for(let a=0,l=e.length;ai.removeDecoration(a)),this._findScopeDecorationIds=[]),t!=null&&t.length&&(this._findScopeDecorationIds=t.map(a=>i.addDecoration(a,Ft._FIND_SCOPE_DECORATION)))})}matchBeforePosition(e){if(this._decorations.length===0)return null;for(let t=this._decorations.length-1;t>=0;t--){let i=this._decorations[t],n=this._editor.getModel().getDecorationRange(i);if(!(!n||n.endLineNumber>e.lineNumber)){if(n.endLineNumbere.column))return n}}return this._editor.getModel().getDecorationRange(this._decorations[this._decorations.length-1])}matchAfterPosition(e){if(this._decorations.length===0)return null;for(let t=0,i=this._decorations.length;te.lineNumber)return o;if(!(o.startColumn0){let i=[];for(let r=0;rD.compareRangesUsingStarts(r.range,a.range));let n=[],o=i[0];for(let r=1;r0?e[0].toUpperCase()+e.substr(1):s[0][0].toUpperCase()!==s[0][0]&&e.length>0?e[0].toLowerCase()+e.substr(1):e}else return e}function BS(s,e,t){return s[0].indexOf(t)!==-1&&e.indexOf(t)!==-1&&s[0].split(t).length===e.split(t).length}function VS(s,e,t){const i=e.split(t),n=s[0].split(t);let o="";return i.forEach((r,a)=>{o+=Cx([n[a]],r)+t}),o.slice(0,-1)}class WS{constructor(e){this.staticValue=e,this.kind=0}}class JF{constructor(e){this.pieces=e,this.kind=1}}class ul{constructor(e){!e||e.length===0?this._state=new WS(""):e.length===1&&e[0].staticValue!==null?this._state=new WS(e[0].staticValue):this._state=new JF(e)}static fromStaticValue(e){return new ul([mr.staticValue(e)])}get hasReplacementPatterns(){return this._state.kind===1}buildReplaceString(e,t){if(this._state.kind===0)return t?Cx(e,this._state.staticValue):this._state.staticValue;let i="";for(let n=0,o=this._state.pieces.length;n0){let l=[],c=r.caseOps.length,h=0;for(let d=0,u=a.length;d=c){l.push(a.slice(d));break}switch(r.caseOps[h]){case"U":l.push(a[d].toUpperCase());break;case"u":l.push(a[d].toUpperCase()),h++;break;case"L":l.push(a[d].toLowerCase());break;case"l":l.push(a[d].toLowerCase()),h++;break;default:l.push(a[d])}}a=l.join("")}i+=a}return i}static _substitute(e,t){if(t===null)return"";if(e===0)return t[0];let i="";for(;e>0;){if(e=n)break;let r=s.charCodeAt(i);switch(r){case 92:t.emitUnchanged(i-1),t.emitStatic("\\",i+1);break;case 110:t.emitUnchanged(i-1),t.emitStatic(` +`,i+1);break;case 116:t.emitUnchanged(i-1),t.emitStatic(" ",i+1);break;case 117:case 85:case 108:case 76:t.emitUnchanged(i-1),t.emitStatic("",i+1),e.push(String.fromCharCode(r));break}continue}if(o===36){if(i++,i>=n)break;let r=s.charCodeAt(i);if(r===36){t.emitUnchanged(i-1),t.emitStatic("$",i+1);continue}if(r===48||r===38){t.emitUnchanged(i-1),t.emitMatchIndex(0,i+1,e),e.length=0;continue}if(49<=r&&r<=57){let a=r-48;if(i+1this.research(!1),100),this._toDispose.add(this._updateDecorationsScheduler),this._toDispose.add(this._editor.onDidChangeCursorPosition(i=>{(i.reason===3||i.reason===5||i.reason===6)&&this._decorations.setStartPosition(this._editor.getPosition())})),this._ignoreModelContentChanged=!1,this._toDispose.add(this._editor.onDidChangeModelContent(i=>{this._ignoreModelContentChanged||(i.isFlush&&this._decorations.reset(),this._decorations.setStartPosition(this._editor.getPosition()),this._updateDecorationsScheduler.schedule())})),this._toDispose.add(this._state.onFindReplaceStateChange(i=>this._onStateChanged(i))),this.research(!1,this._state.searchScope)}dispose(){this._isDisposed=!0,Me(this._startSearchingTimer),this._toDispose.dispose()}_onStateChanged(e){this._isDisposed||!this._editor.hasModel()||(e.searchString||e.isReplaceRevealed||e.isRegex||e.wholeWord||e.matchCase||e.searchScope)&&(this._editor.getModel().isTooLargeForSyncing()?(this._startSearchingTimer.cancel(),this._startSearchingTimer.setIfNotSet(()=>{e.searchScope?this.research(e.moveCursor,this._state.searchScope):this.research(e.moveCursor)},iB)):e.searchScope?this.research(e.moveCursor,this._state.searchScope):this.research(e.moveCursor))}static _getSearchRange(e,t){return t||e.getFullModelRange()}research(e,t){let i=null;typeof t!="undefined"?t!==null&&(Array.isArray(t)?i=t:i=[t]):i=this._decorations.getFindScopes(),i!==null&&(i=i.map(a=>{if(a.startLineNumber!==a.endLineNumber){let l=a.endLineNumber;return a.endColumn===1&&(l=l-1),new D(a.startLineNumber,1,l,this._editor.getModel().getLineMaxColumn(l))}return a}));let n=this._findMatches(i,!1,lo);this._decorations.set(n,i);const o=this._editor.getSelection();let r=this._decorations.getCurrentMatchesPosition(o);if(r===0&&n.length>0){const a=sI(n.map(l=>l.range),l=>D.compareRangesUsingStarts(l,o)>=0);r=a>0?a-1+1:r}this._state.changeMatchInfo(r,this._decorations.getCount(),void 0),e&&this._editor.getOption(35).cursorMoveOnType&&this._moveToNextMatch(this._decorations.getStartPosition())}_hasMatches(){return this._state.matchesCount>0}_cannotFind(){if(!this._hasMatches()){let e=this._decorations.getFindScope();return e&&this._editor.revealRangeInCenterIfOutsideViewport(e,0),!0}return!1}_setCurrentFindMatch(e){let t=this._decorations.setCurrentFindMatch(e);this._state.changeMatchInfo(t,this._decorations.getCount(),e),this._editor.setSelection(e),this._editor.revealRangeInCenterIfOutsideViewport(e,0)}_prevSearchPosition(e){let t=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0),{lineNumber:i,column:n}=e,o=this._editor.getModel();return t||n===1?(i===1?i=o.getLineCount():i--,n=o.getLineMaxColumn(i)):n--,new A(i,n)}_moveToPrevMatch(e,t=!1){if(!this._state.canNavigateBack()){const h=this._decorations.matchAfterPosition(e);h&&this._setCurrentFindMatch(h);return}if(this._decorations.getCount()=0||this._state.searchString.indexOf("$")>=0),{lineNumber:i,column:n}=e,o=this._editor.getModel();return t||n===o.getLineMaxColumn(i)?(i===o.getLineCount()?i=1:i++,n=1):n++,new A(i,n)}_moveToNextMatch(e){if(!this._state.canNavigateForward()){const i=this._decorations.matchBeforePosition(e);i&&this._setCurrentFindMatch(i);return}if(this._decorations.getCount()xc._getSearchRange(this._editor.getModel(),o));return this._editor.getModel().findMatches(this._state.searchString,n,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(117):null,t,i)}replaceAll(){if(!this._hasMatches())return;const e=this._decorations.getFindScopes();e===null&&this._state.matchesCount>=lo?this._largeReplaceAll():this._regularReplaceAll(e),this.research(!1)}_largeReplaceAll(){const t=new Bo(this._state.searchString,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(117):null).parseSearchRequest();if(!t)return;let i=t.regex;if(!i.multiline){let d="mu";i.ignoreCase&&(d+="i"),i.global&&(d+="g"),i=new RegExp(i.source,d)}const n=this._editor.getModel(),o=n.getValue(1),r=n.getFullModelRange(),a=this._getReplacePattern();let l;const c=this._state.preserveCase;a.hasReplacementPatterns||c?l=o.replace(i,function(){return a.buildReplaceString(arguments,c)}):l=o.replace(i,a.buildReplaceString(null,c));let h=new hk(r,l,this._editor.getSelection());this._executeEditorCommand("replaceAll",h)}_regularReplaceAll(e){const t=this._getReplacePattern();let i=this._findMatches(e,t.hasReplacementPatterns||this._state.preserveCase,1073741824),n=[];for(let r=0,a=i.length;rr.range),n);this._executeEditorCommand("replaceAll",o)}selectAllMatches(){if(!this._hasMatches())return;let e=this._decorations.getFindScopes(),i=this._findMatches(e,!1,1073741824).map(o=>new ce(o.range.startLineNumber,o.range.startColumn,o.range.endLineNumber,o.range.endColumn)),n=this._editor.getSelection();for(let o=0,r=i.length;o{this.enabled&&(this.checked=!this._checked,this._onChange.fire(!1),i.preventDefault())}),this.ignoreGesture(this.domNode),this.onkeydown(this.domNode,i=>{if(i.keyCode===10||i.keyCode===3){this.checked=!this._checked,this._onChange.fire(!0),i.preventDefault();return}this._onKeyDown.fire(i)})}get enabled(){return this.domNode.getAttribute("aria-disabled")!=="true"}focus(){this.domNode.focus()}get checked(){return this._checked}set checked(e){this._checked=e,this.domNode.setAttribute("aria-checked",String(this._checked)),this.domNode.classList.toggle("checked",this._checked),this.applyStyles()}width(){return 2+2+2+16}style(e){e.inputActiveOptionBorder&&(this._opts.inputActiveOptionBorder=e.inputActiveOptionBorder),e.inputActiveOptionForeground&&(this._opts.inputActiveOptionForeground=e.inputActiveOptionForeground),e.inputActiveOptionBackground&&(this._opts.inputActiveOptionBackground=e.inputActiveOptionBackground),this.applyStyles()}applyStyles(){this.domNode&&(this.domNode.style.borderColor=this._checked&&this._opts.inputActiveOptionBorder?this._opts.inputActiveOptionBorder.toString():"",this.domNode.style.color=this._checked&&this._opts.inputActiveOptionForeground?this._opts.inputActiveOptionForeground.toString():"inherit",this.domNode.style.backgroundColor=this._checked&&this._opts.inputActiveOptionBackground?this._opts.inputActiveOptionBackground.toString():"")}enable(){this.domNode.setAttribute("aria-disabled",String(!1))}disable(){this.domNode.setAttribute("aria-disabled",String(!0))}}const sB=p("caseDescription","Match Case"),oB=p("wordsDescription","Match Whole Word"),rB=p("regexDescription","Use Regular Expression");class wx extends Ph{constructor(e){super({icon:g.caseSensitive,title:sB+e.appendTitle,isChecked:e.isChecked,inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}}class vx extends Ph{constructor(e){super({icon:g.wholeWord,title:oB+e.appendTitle,isChecked:e.isChecked,inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}}class Sx extends Ph{constructor(e){super({icon:g.regex,title:rB+e.appendTitle,isChecked:e.isChecked,inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}}class _g extends rs{constructor(e,t,i,n){super(),this._hideSoon=this._register(new Tt(()=>this._hide(),2e3)),this._isVisible=!1,this._editor=e,this._state=t,this._keybindingService=i,this._domNode=document.createElement("div"),this._domNode.className="findOptionsWidget",this._domNode.style.display="none",this._domNode.style.top="10px",this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true");const o=n.getColorTheme().getColor(g_),r=n.getColorTheme().getColor(p_),a=n.getColorTheme().getColor(m_);this.caseSensitive=this._register(new wx({appendTitle:this._keybindingLabelFor(xe.ToggleCaseSensitiveCommand),isChecked:this._state.matchCase,inputActiveOptionBorder:o,inputActiveOptionForeground:r,inputActiveOptionBackground:a})),this._domNode.appendChild(this.caseSensitive.domNode),this._register(this.caseSensitive.onChange(()=>{this._state.change({matchCase:this.caseSensitive.checked},!1)})),this.wholeWords=this._register(new vx({appendTitle:this._keybindingLabelFor(xe.ToggleWholeWordCommand),isChecked:this._state.wholeWord,inputActiveOptionBorder:o,inputActiveOptionForeground:r,inputActiveOptionBackground:a})),this._domNode.appendChild(this.wholeWords.domNode),this._register(this.wholeWords.onChange(()=>{this._state.change({wholeWord:this.wholeWords.checked},!1)})),this.regex=this._register(new Sx({appendTitle:this._keybindingLabelFor(xe.ToggleRegexCommand),isChecked:this._state.isRegex,inputActiveOptionBorder:o,inputActiveOptionForeground:r,inputActiveOptionBackground:a})),this._domNode.appendChild(this.regex.domNode),this._register(this.regex.onChange(()=>{this._state.change({isRegex:this.regex.checked},!1)})),this._editor.addOverlayWidget(this),this._register(this._state.onFindReplaceStateChange(l=>{let c=!1;l.isRegex&&(this.regex.checked=this._state.isRegex,c=!0),l.wholeWord&&(this.wholeWords.checked=this._state.wholeWord,c=!0),l.matchCase&&(this.caseSensitive.checked=this._state.matchCase,c=!0),!this._state.isRevealed&&c&&this._revealTemporarily()})),this._register(y0(this._domNode,l=>this._onMouseOut())),this._register(V(this._domNode,"mouseover",l=>this._onMouseOver())),this._applyTheme(n.getColorTheme()),this._register(n.onDidColorThemeChange(this._applyTheme.bind(this)))}_keybindingLabelFor(e){let t=this._keybindingService.lookupKeybinding(e);return t?` (${t.getLabel()})`:""}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return _g.ID}getDomNode(){return this._domNode}getPosition(){return{preference:0}}highlightFindOptions(){this._revealTemporarily()}_revealTemporarily(){this._show(),this._hideSoon.schedule()}_onMouseOut(){this._hideSoon.schedule()}_onMouseOver(){this._hideSoon.cancel()}_show(){this._isVisible||(this._isVisible=!0,this._domNode.style.display="block")}_hide(){!this._isVisible||(this._isVisible=!1,this._domNode.style.display="none")}_applyTheme(e){let t={inputActiveOptionBorder:e.getColor(g_),inputActiveOptionForeground:e.getColor(p_),inputActiveOptionBackground:e.getColor(m_)};this.caseSensitive.style(t),this.wholeWords.style(t),this.regex.style(t)}}_g.ID="editor.contrib.findOptionsWidget";ni((s,e)=>{const t=s.getColor(nn);t&&e.addRule(`.monaco-editor .findOptionsWidget { background-color: ${t}; }`);const i=s.getColor(mo);i&&e.addRule(`.monaco-editor .findOptionsWidget { color: ${i}; }`);const n=s.getColor(Ya);n&&e.addRule(`.monaco-editor .findOptionsWidget { box-shadow: 0 0 8px 2px ${n}; }`);const o=s.getColor(it);o&&e.addRule(`.monaco-editor .findOptionsWidget { border: 2px solid ${o}; }`)});function Ed(s,e){return s===1?!0:s===2?!1:e}class aB extends W{constructor(){super(),this._onFindReplaceStateChange=this._register(new M),this.onFindReplaceStateChange=this._onFindReplaceStateChange.event,this._searchString="",this._replaceString="",this._isRevealed=!1,this._isReplaceRevealed=!1,this._isRegex=!1,this._isRegexOverride=0,this._wholeWord=!1,this._wholeWordOverride=0,this._matchCase=!1,this._matchCaseOverride=0,this._preserveCase=!1,this._preserveCaseOverride=0,this._searchScope=null,this._matchesPosition=0,this._matchesCount=0,this._currentMatch=null,this._loop=!0,this._isSearching=!1,this._filters=null}get searchString(){return this._searchString}get replaceString(){return this._replaceString}get isRevealed(){return this._isRevealed}get isReplaceRevealed(){return this._isReplaceRevealed}get isRegex(){return Ed(this._isRegexOverride,this._isRegex)}get wholeWord(){return Ed(this._wholeWordOverride,this._wholeWord)}get matchCase(){return Ed(this._matchCaseOverride,this._matchCase)}get preserveCase(){return Ed(this._preserveCaseOverride,this._preserveCase)}get actualIsRegex(){return this._isRegex}get actualWholeWord(){return this._wholeWord}get actualMatchCase(){return this._matchCase}get actualPreserveCase(){return this._preserveCase}get searchScope(){return this._searchScope}get matchesPosition(){return this._matchesPosition}get matchesCount(){return this._matchesCount}get currentMatch(){return this._currentMatch}changeMatchInfo(e,t,i){let n={moveCursor:!1,updateHistory:!1,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1,isSearching:!1,filters:!1},o=!1;t===0&&(e=0),e>t&&(e=t),this._matchesPosition!==e&&(this._matchesPosition=e,n.matchesPosition=!0,o=!0),this._matchesCount!==t&&(this._matchesCount=t,n.matchesCount=!0,o=!0),typeof i!="undefined"&&(D.equalsRange(this._currentMatch,i)||(this._currentMatch=i,n.currentMatch=!0,o=!0)),o&&this._onFindReplaceStateChange.fire(n)}change(e,t,i=!0){var n;let o={moveCursor:t,updateHistory:i,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1,isSearching:!1,filters:!1},r=!1;const a=this.isRegex,l=this.wholeWord,c=this.matchCase,h=this.preserveCase;typeof e.searchString!="undefined"&&this._searchString!==e.searchString&&(this._searchString=e.searchString,o.searchString=!0,r=!0),typeof e.replaceString!="undefined"&&this._replaceString!==e.replaceString&&(this._replaceString=e.replaceString,o.replaceString=!0,r=!0),typeof e.isRevealed!="undefined"&&this._isRevealed!==e.isRevealed&&(this._isRevealed=e.isRevealed,o.isRevealed=!0,r=!0),typeof e.isReplaceRevealed!="undefined"&&this._isReplaceRevealed!==e.isReplaceRevealed&&(this._isReplaceRevealed=e.isReplaceRevealed,o.isReplaceRevealed=!0,r=!0),typeof e.isRegex!="undefined"&&(this._isRegex=e.isRegex),typeof e.wholeWord!="undefined"&&(this._wholeWord=e.wholeWord),typeof e.matchCase!="undefined"&&(this._matchCase=e.matchCase),typeof e.preserveCase!="undefined"&&(this._preserveCase=e.preserveCase),typeof e.searchScope!="undefined"&&(!((n=e.searchScope)===null||n===void 0)&&n.every(d=>{var u;return(u=this._searchScope)===null||u===void 0?void 0:u.some(f=>!D.equalsRange(f,d))})||(this._searchScope=e.searchScope,o.searchScope=!0,r=!0)),typeof e.loop!="undefined"&&this._loop!==e.loop&&(this._loop=e.loop,o.loop=!0,r=!0),typeof e.isSearching!="undefined"&&this._isSearching!==e.isSearching&&(this._isSearching=e.isSearching,o.isSearching=!0,r=!0),typeof e.filters!="undefined"&&(this._filters?this._filters.update(e.filters):this._filters=e.filters,o.filters=!0,r=!0),this._isRegexOverride=typeof e.isRegexOverride!="undefined"?e.isRegexOverride:0,this._wholeWordOverride=typeof e.wholeWordOverride!="undefined"?e.wholeWordOverride:0,this._matchCaseOverride=typeof e.matchCaseOverride!="undefined"?e.matchCaseOverride:0,this._preserveCaseOverride=typeof e.preserveCaseOverride!="undefined"?e.preserveCaseOverride:0,a!==this.isRegex&&(r=!0,o.isRegex=!0),l!==this.wholeWord&&(r=!0,o.wholeWord=!0),c!==this.matchCase&&(r=!0,o.matchCase=!0),h!==this.preserveCase&&(r=!0,o.preserveCase=!0),r&&this._onFindReplaceStateChange.fire(o)}canNavigateBack(){return this.canNavigateInLoop()||this.matchesPosition!==1}canNavigateForward(){return this.canNavigateInLoop()||this.matchesPosition=lo}}const lB=p("defaultLabel","input");class cB extends rs{constructor(e,t,i,n){super(),this._showOptionButtons=i,this.fixFocusOnOptionClickEnabled=!0,this.imeSessionInProgress=!1,this._onDidOptionChange=this._register(new M),this.onDidOptionChange=this._onDidOptionChange.event,this._onKeyDown=this._register(new M),this.onKeyDown=this._onKeyDown.event,this._onMouseDown=this._register(new M),this.onMouseDown=this._onMouseDown.event,this._onInput=this._register(new M),this._onKeyUp=this._register(new M),this._onCaseSensitiveKeyDown=this._register(new M),this.onCaseSensitiveKeyDown=this._onCaseSensitiveKeyDown.event,this._onRegexKeyDown=this._register(new M),this.onRegexKeyDown=this._onRegexKeyDown.event,this._lastHighlightFindOptions=0,this.contextViewProvider=t,this.placeholder=n.placeholder||"",this.validation=n.validation,this.label=n.label||lB,this.inputActiveOptionBorder=n.inputActiveOptionBorder,this.inputActiveOptionForeground=n.inputActiveOptionForeground,this.inputActiveOptionBackground=n.inputActiveOptionBackground,this.inputBackground=n.inputBackground,this.inputForeground=n.inputForeground,this.inputBorder=n.inputBorder,this.inputValidationInfoBorder=n.inputValidationInfoBorder,this.inputValidationInfoBackground=n.inputValidationInfoBackground,this.inputValidationInfoForeground=n.inputValidationInfoForeground,this.inputValidationWarningBorder=n.inputValidationWarningBorder,this.inputValidationWarningBackground=n.inputValidationWarningBackground,this.inputValidationWarningForeground=n.inputValidationWarningForeground,this.inputValidationErrorBorder=n.inputValidationErrorBorder,this.inputValidationErrorBackground=n.inputValidationErrorBackground,this.inputValidationErrorForeground=n.inputValidationErrorForeground;const o=n.appendCaseSensitiveLabel||"",r=n.appendWholeWordsLabel||"",a=n.appendRegexLabel||"",l=n.history||[],c=!!n.flexibleHeight,h=!!n.flexibleWidth,d=n.flexibleMaxHeight;this.domNode=document.createElement("div"),this.domNode.classList.add("monaco-findInput"),this.inputBox=this._register(new M2(this.domNode,this.contextViewProvider,{placeholder:this.placeholder||"",ariaLabel:this.label||"",validationOptions:{validation:this.validation},inputBackground:this.inputBackground,inputForeground:this.inputForeground,inputBorder:this.inputBorder,inputValidationInfoBackground:this.inputValidationInfoBackground,inputValidationInfoForeground:this.inputValidationInfoForeground,inputValidationInfoBorder:this.inputValidationInfoBorder,inputValidationWarningBackground:this.inputValidationWarningBackground,inputValidationWarningForeground:this.inputValidationWarningForeground,inputValidationWarningBorder:this.inputValidationWarningBorder,inputValidationErrorBackground:this.inputValidationErrorBackground,inputValidationErrorForeground:this.inputValidationErrorForeground,inputValidationErrorBorder:this.inputValidationErrorBorder,history:l,showHistoryHint:n.showHistoryHint,flexibleHeight:c,flexibleWidth:h,flexibleMaxHeight:d})),this.regex=this._register(new Sx({appendTitle:a,isChecked:!1,inputActiveOptionBorder:this.inputActiveOptionBorder,inputActiveOptionForeground:this.inputActiveOptionForeground,inputActiveOptionBackground:this.inputActiveOptionBackground})),this._register(this.regex.onChange(f=>{this._onDidOptionChange.fire(f),!f&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.regex.onKeyDown(f=>{this._onRegexKeyDown.fire(f)})),this.wholeWords=this._register(new vx({appendTitle:r,isChecked:!1,inputActiveOptionBorder:this.inputActiveOptionBorder,inputActiveOptionForeground:this.inputActiveOptionForeground,inputActiveOptionBackground:this.inputActiveOptionBackground})),this._register(this.wholeWords.onChange(f=>{this._onDidOptionChange.fire(f),!f&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this.caseSensitive=this._register(new wx({appendTitle:o,isChecked:!1,inputActiveOptionBorder:this.inputActiveOptionBorder,inputActiveOptionForeground:this.inputActiveOptionForeground,inputActiveOptionBackground:this.inputActiveOptionBackground})),this._register(this.caseSensitive.onChange(f=>{this._onDidOptionChange.fire(f),!f&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.caseSensitive.onKeyDown(f=>{this._onCaseSensitiveKeyDown.fire(f)})),this._showOptionButtons&&(this.inputBox.paddingRight=this.caseSensitive.width()+this.wholeWords.width()+this.regex.width());let u=[this.caseSensitive.domNode,this.wholeWords.domNode,this.regex.domNode];this.onkeydown(this.domNode,f=>{if(f.equals(15)||f.equals(17)||f.equals(9)){let m=u.indexOf(document.activeElement);if(m>=0){let _=-1;f.equals(17)?_=(m+1)%u.length:f.equals(15)&&(m===0?_=u.length-1:_=m-1),f.equals(9)?(u[m].blur(),this.inputBox.focus()):_>=0&&u[_].focus(),Ie.stop(f,!0)}}}),this.controls=document.createElement("div"),this.controls.className="controls",this.controls.style.display=this._showOptionButtons?"block":"none",this.controls.appendChild(this.caseSensitive.domNode),this.controls.appendChild(this.wholeWords.domNode),this.controls.appendChild(this.regex.domNode),this.domNode.appendChild(this.controls),e&&e.appendChild(this.domNode),this._register(V(this.inputBox.inputElement,"compositionstart",f=>{this.imeSessionInProgress=!0})),this._register(V(this.inputBox.inputElement,"compositionend",f=>{this.imeSessionInProgress=!1,this._onInput.fire()})),this.onkeydown(this.inputBox.inputElement,f=>this._onKeyDown.fire(f)),this.onkeyup(this.inputBox.inputElement,f=>this._onKeyUp.fire(f)),this.oninput(this.inputBox.inputElement,f=>this._onInput.fire()),this.onmousedown(this.inputBox.inputElement,f=>this._onMouseDown.fire(f))}enable(){this.domNode.classList.remove("disabled"),this.inputBox.enable(),this.regex.enable(),this.wholeWords.enable(),this.caseSensitive.enable()}disable(){this.domNode.classList.add("disabled"),this.inputBox.disable(),this.regex.disable(),this.wholeWords.disable(),this.caseSensitive.disable()}setFocusInputOnOptionClick(e){this.fixFocusOnOptionClickEnabled=e}setEnabled(e){e?this.enable():this.disable()}getValue(){return this.inputBox.value}setValue(e){this.inputBox.value!==e&&(this.inputBox.value=e)}style(e){this.inputActiveOptionBorder=e.inputActiveOptionBorder,this.inputActiveOptionForeground=e.inputActiveOptionForeground,this.inputActiveOptionBackground=e.inputActiveOptionBackground,this.inputBackground=e.inputBackground,this.inputForeground=e.inputForeground,this.inputBorder=e.inputBorder,this.inputValidationInfoBackground=e.inputValidationInfoBackground,this.inputValidationInfoForeground=e.inputValidationInfoForeground,this.inputValidationInfoBorder=e.inputValidationInfoBorder,this.inputValidationWarningBackground=e.inputValidationWarningBackground,this.inputValidationWarningForeground=e.inputValidationWarningForeground,this.inputValidationWarningBorder=e.inputValidationWarningBorder,this.inputValidationErrorBackground=e.inputValidationErrorBackground,this.inputValidationErrorForeground=e.inputValidationErrorForeground,this.inputValidationErrorBorder=e.inputValidationErrorBorder,this.applyStyles()}applyStyles(){if(this.domNode){const e={inputActiveOptionBorder:this.inputActiveOptionBorder,inputActiveOptionForeground:this.inputActiveOptionForeground,inputActiveOptionBackground:this.inputActiveOptionBackground};this.regex.style(e),this.wholeWords.style(e),this.caseSensitive.style(e);const t={inputBackground:this.inputBackground,inputForeground:this.inputForeground,inputBorder:this.inputBorder,inputValidationInfoBackground:this.inputValidationInfoBackground,inputValidationInfoForeground:this.inputValidationInfoForeground,inputValidationInfoBorder:this.inputValidationInfoBorder,inputValidationWarningBackground:this.inputValidationWarningBackground,inputValidationWarningForeground:this.inputValidationWarningForeground,inputValidationWarningBorder:this.inputValidationWarningBorder,inputValidationErrorBackground:this.inputValidationErrorBackground,inputValidationErrorForeground:this.inputValidationErrorForeground,inputValidationErrorBorder:this.inputValidationErrorBorder};this.inputBox.style(t)}}select(){this.inputBox.select()}focus(){this.inputBox.focus()}getCaseSensitive(){return this.caseSensitive.checked}setCaseSensitive(e){this.caseSensitive.checked=e}getWholeWords(){return this.wholeWords.checked}setWholeWords(e){this.wholeWords.checked=e}getRegex(){return this.regex.checked}setRegex(e){this.regex.checked=e,this.validate()}focusOnCaseSensitive(){this.caseSensitive.focus()}highlightFindOptions(){this.domNode.classList.remove("highlight-"+this._lastHighlightFindOptions),this._lastHighlightFindOptions=1-this._lastHighlightFindOptions,this.domNode.classList.add("highlight-"+this._lastHighlightFindOptions)}validate(){this.inputBox.validate()}clearMessage(){this.inputBox.hideMessage()}}const hB=p("defaultLabel","input"),dB=p("label.preserveCaseCheckbox","Preserve Case");class uB extends Ph{constructor(e){super({icon:g.preserveCase,title:dB+e.appendTitle,isChecked:e.isChecked,inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}}class fB extends rs{constructor(e,t,i,n){super(),this._showOptionButtons=i,this.fixFocusOnOptionClickEnabled=!0,this.cachedOptionsWidth=0,this._onDidOptionChange=this._register(new M),this.onDidOptionChange=this._onDidOptionChange.event,this._onKeyDown=this._register(new M),this.onKeyDown=this._onKeyDown.event,this._onMouseDown=this._register(new M),this._onInput=this._register(new M),this._onKeyUp=this._register(new M),this._onPreserveCaseKeyDown=this._register(new M),this.onPreserveCaseKeyDown=this._onPreserveCaseKeyDown.event,this.contextViewProvider=t,this.placeholder=n.placeholder||"",this.validation=n.validation,this.label=n.label||hB,this.inputActiveOptionBorder=n.inputActiveOptionBorder,this.inputActiveOptionForeground=n.inputActiveOptionForeground,this.inputActiveOptionBackground=n.inputActiveOptionBackground,this.inputBackground=n.inputBackground,this.inputForeground=n.inputForeground,this.inputBorder=n.inputBorder,this.inputValidationInfoBorder=n.inputValidationInfoBorder,this.inputValidationInfoBackground=n.inputValidationInfoBackground,this.inputValidationInfoForeground=n.inputValidationInfoForeground,this.inputValidationWarningBorder=n.inputValidationWarningBorder,this.inputValidationWarningBackground=n.inputValidationWarningBackground,this.inputValidationWarningForeground=n.inputValidationWarningForeground,this.inputValidationErrorBorder=n.inputValidationErrorBorder,this.inputValidationErrorBackground=n.inputValidationErrorBackground,this.inputValidationErrorForeground=n.inputValidationErrorForeground;const o=n.appendPreserveCaseLabel||"",r=n.history||[],a=!!n.flexibleHeight,l=!!n.flexibleWidth,c=n.flexibleMaxHeight;this.domNode=document.createElement("div"),this.domNode.classList.add("monaco-findInput"),this.inputBox=this._register(new M2(this.domNode,this.contextViewProvider,{ariaLabel:this.label||"",placeholder:this.placeholder||"",validationOptions:{validation:this.validation},inputBackground:this.inputBackground,inputForeground:this.inputForeground,inputBorder:this.inputBorder,inputValidationInfoBackground:this.inputValidationInfoBackground,inputValidationInfoForeground:this.inputValidationInfoForeground,inputValidationInfoBorder:this.inputValidationInfoBorder,inputValidationWarningBackground:this.inputValidationWarningBackground,inputValidationWarningForeground:this.inputValidationWarningForeground,inputValidationWarningBorder:this.inputValidationWarningBorder,inputValidationErrorBackground:this.inputValidationErrorBackground,inputValidationErrorForeground:this.inputValidationErrorForeground,inputValidationErrorBorder:this.inputValidationErrorBorder,history:r,showHistoryHint:n.showHistoryHint,flexibleHeight:a,flexibleWidth:l,flexibleMaxHeight:c})),this.preserveCase=this._register(new uB({appendTitle:o,isChecked:!1,inputActiveOptionBorder:this.inputActiveOptionBorder,inputActiveOptionForeground:this.inputActiveOptionForeground,inputActiveOptionBackground:this.inputActiveOptionBackground})),this._register(this.preserveCase.onChange(u=>{this._onDidOptionChange.fire(u),!u&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.preserveCase.onKeyDown(u=>{this._onPreserveCaseKeyDown.fire(u)})),this._showOptionButtons?this.cachedOptionsWidth=this.preserveCase.width():this.cachedOptionsWidth=0;let h=[this.preserveCase.domNode];this.onkeydown(this.domNode,u=>{if(u.equals(15)||u.equals(17)||u.equals(9)){let f=h.indexOf(document.activeElement);if(f>=0){let m=-1;u.equals(17)?m=(f+1)%h.length:u.equals(15)&&(f===0?m=h.length-1:m=f-1),u.equals(9)?(h[f].blur(),this.inputBox.focus()):m>=0&&h[m].focus(),Ie.stop(u,!0)}}});let d=document.createElement("div");d.className="controls",d.style.display=this._showOptionButtons?"block":"none",d.appendChild(this.preserveCase.domNode),this.domNode.appendChild(d),e&&e.appendChild(this.domNode),this.onkeydown(this.inputBox.inputElement,u=>this._onKeyDown.fire(u)),this.onkeyup(this.inputBox.inputElement,u=>this._onKeyUp.fire(u)),this.oninput(this.inputBox.inputElement,u=>this._onInput.fire()),this.onmousedown(this.inputBox.inputElement,u=>this._onMouseDown.fire(u))}enable(){this.domNode.classList.remove("disabled"),this.inputBox.enable(),this.preserveCase.enable()}disable(){this.domNode.classList.add("disabled"),this.inputBox.disable(),this.preserveCase.disable()}setEnabled(e){e?this.enable():this.disable()}style(e){this.inputActiveOptionBorder=e.inputActiveOptionBorder,this.inputActiveOptionForeground=e.inputActiveOptionForeground,this.inputActiveOptionBackground=e.inputActiveOptionBackground,this.inputBackground=e.inputBackground,this.inputForeground=e.inputForeground,this.inputBorder=e.inputBorder,this.inputValidationInfoBackground=e.inputValidationInfoBackground,this.inputValidationInfoForeground=e.inputValidationInfoForeground,this.inputValidationInfoBorder=e.inputValidationInfoBorder,this.inputValidationWarningBackground=e.inputValidationWarningBackground,this.inputValidationWarningForeground=e.inputValidationWarningForeground,this.inputValidationWarningBorder=e.inputValidationWarningBorder,this.inputValidationErrorBackground=e.inputValidationErrorBackground,this.inputValidationErrorForeground=e.inputValidationErrorForeground,this.inputValidationErrorBorder=e.inputValidationErrorBorder,this.applyStyles()}applyStyles(){if(this.domNode){const e={inputActiveOptionBorder:this.inputActiveOptionBorder,inputActiveOptionForeground:this.inputActiveOptionForeground,inputActiveOptionBackground:this.inputActiveOptionBackground};this.preserveCase.style(e);const t={inputBackground:this.inputBackground,inputForeground:this.inputForeground,inputBorder:this.inputBorder,inputValidationInfoBackground:this.inputValidationInfoBackground,inputValidationInfoForeground:this.inputValidationInfoForeground,inputValidationInfoBorder:this.inputValidationInfoBorder,inputValidationWarningBackground:this.inputValidationWarningBackground,inputValidationWarningForeground:this.inputValidationWarningForeground,inputValidationWarningBorder:this.inputValidationWarningBorder,inputValidationErrorBackground:this.inputValidationErrorBackground,inputValidationErrorForeground:this.inputValidationErrorForeground,inputValidationErrorBorder:this.inputValidationErrorBorder};this.inputBox.style(t)}}select(){this.inputBox.select()}focus(){this.inputBox.focus()}getPreserveCase(){return this.preserveCase.checked}setPreserveCase(e){this.preserveCase.checked=e}focusOnPreserve(){this.preserveCase.focus()}validate(){this.inputBox&&this.inputBox.validate()}set width(e){this.inputBox.paddingRight=this.cachedOptionsWidth,this.inputBox.width=e,this.domNode.style.width=e+"px"}dispose(){super.dispose()}}var yx=globalThis&&globalThis.__decorate||function(s,e,t,i){var n=arguments.length,o=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},Lx=globalThis&&globalThis.__param||function(s,e){return function(t,i){e(t,i,s)}};const kx=new G("suggestWidgetVisible",!1,p("suggestWidgetVisible","Whether suggestion are visible")),gh="historyNavigationWidget",xx="historyNavigationForwardsEnabled",Ix="historyNavigationBackwardsEnabled";function gB(s,e,t){new G(t,e).bindTo(s)}function mB(s,e){return s.createScoped(e.target)}function Ex(s,e){return s.getContext(document.activeElement).getValue(e)}function Dx(s,e){const t=mB(s,e);gB(t,e,gh);const i=new G(xx,!0).bindTo(t),n=new G(Ix,!0).bindTo(t);return{scopedContextKeyService:t,historyNavigationForwardsEnablement:i,historyNavigationBackwardsEnablement:n}}let F1=class extends cB{constructor(e,t,i,n,o=!1){super(e,t,o,i),this._register(Dx(n,{target:this.inputBox.element,historyNavigator:this.inputBox}).scopedContextKeyService)}};F1=yx([Lx(3,Ne)],F1);let B1=class extends fB{constructor(e,t,i,n,o=!1){super(e,t,o,i),this._register(Dx(n,{target:this.inputBox.element,historyNavigator:this.inputBox}).scopedContextKeyService)}};B1=yx([Lx(3,Ne)],B1);wl.registerCommandAndKeybindingRule({id:"history.showPrevious",weight:200,when:Oe.and(Oe.has(gh),Oe.equals(Ix,!0),kx.isEqualTo(!1)),primary:16,secondary:[528],handler:s=>{const e=Ex(s.get(Ne),gh);e&&e.historyNavigator.showPreviousValue()}});wl.registerCommandAndKeybindingRule({id:"history.showNext",weight:200,when:Oe.and(Oe.has(gh),Oe.equals(xx,!0),kx.isEqualTo(!1)),primary:18,secondary:[530],handler:s=>{const e=Ex(s.get(Ne),gh);e&&e.historyNavigator.showNextValue()}});function HS(s){var e,t;return((e=s.lookupKeybinding("history.showPrevious"))===null||e===void 0?void 0:e.getElectronAccelerator())==="Up"&&((t=s.lookupKeybinding("history.showNext"))===null||t===void 0?void 0:t.getElectronAccelerator())==="Down"}var pB=globalThis&&globalThis.__awaiter||function(s,e,t,i){function n(o){return o instanceof t?o:new t(function(r){r(o)})}return new(t||(t=Promise))(function(o,r){function a(h){try{c(i.next(h))}catch(d){r(d)}}function l(h){try{c(i.throw(h))}catch(d){r(d)}}function c(h){h.done?o(h.value):n(h.value).then(a,l)}c((i=i.apply(s,e||[])).next())})};const _B=hi("find-selection",g.selection,p("findSelectionIcon","Icon for 'Find in Selection' in the editor find widget.")),zS=hi("find-collapsed",g.chevronRight,p("findCollapsedIcon","Icon to indicate that the editor find widget is collapsed.")),US=hi("find-expanded",g.chevronDown,p("findExpandedIcon","Icon to indicate that the editor find widget is expanded.")),bB=hi("find-replace",g.replace,p("findReplaceIcon","Icon for 'Replace' in the editor find widget.")),CB=hi("find-replace-all",g.replaceAll,p("findReplaceAllIcon","Icon for 'Replace All' in the editor find widget.")),wB=hi("find-previous-match",g.arrowUp,p("findPreviousMatchIcon","Icon for 'Find Previous' in the editor find widget.")),vB=hi("find-next-match",g.arrowDown,p("findNextMatchIcon","Icon for 'Find Next' in the editor find widget.")),SB=p("label.find","Find"),yB=p("placeholder.find","Find"),LB=p("label.previousMatchButton","Previous Match"),kB=p("label.nextMatchButton","Next Match"),xB=p("label.toggleSelectionFind","Find in Selection"),IB=p("label.closeButton","Close"),EB=p("label.replace","Replace"),DB=p("placeholder.replace","Replace"),NB=p("label.replaceButton","Replace"),TB=p("label.replaceAllButton","Replace All"),MB=p("label.toggleReplaceButton","Toggle Replace"),RB=p("title.matchesCountLimit","Only the first {0} results are highlighted, but all find operations work on the entire text.",lo),AB=p("label.matchesLocation","{0} of {1}"),$S=p("label.noResults","No results"),An=419,OB=275,PB=OB-54;let Kl=69;const FB=33,jS="ctrlEnterReplaceAll.windows.donotask",KS=me?256:2048;class Gm{constructor(e){this.afterLineNumber=e,this.heightInPx=FB,this.suppressMouseDown=!1,this.domNode=document.createElement("div"),this.domNode.className="dock-find-viewzone"}}function qS(s,e,t){const i=!!e.match(/\n/);if(t&&i&&t.selectionStart>0){s.stopPropagation();return}}function GS(s,e,t){const i=!!e.match(/\n/);if(t&&i&&t.selectionEndthis._updateHistoryDelayer.cancel())),this._register(this._state.onFindReplaceStateChange(h=>this._onStateChanged(h))),this._buildDomNode(),this._updateButtons(),this._tryUpdateWidgetWidth(),this._findInput.inputBox.layout(),this._register(this._codeEditor.onDidChangeConfiguration(h=>{if(h.hasChanged(81)&&(this._codeEditor.getOption(81)&&this._state.change({isReplaceRevealed:!1},!1),this._updateButtons()),h.hasChanged(131)&&this._tryUpdateWidgetWidth(),h.hasChanged(2)&&this.updateAccessibilitySupport(),h.hasChanged(35)){const d=this._codeEditor.getOption(35).addExtraSpaceOnTop;d&&!this._viewZone&&(this._viewZone=new Gm(0),this._showViewZone()),!d&&this._viewZone&&this._removeViewZone()}})),this.updateAccessibilitySupport(),this._register(this._codeEditor.onDidChangeCursorSelection(()=>{this._isVisible&&this._updateToggleSelectionFindButton()})),this._register(this._codeEditor.onDidFocusEditorWidget(()=>pB(this,void 0,void 0,function*(){if(this._isVisible){let h=yield this._controller.getGlobalBufferTerm();h&&h!==this._state.searchString&&(this._state.change({searchString:h},!1),this._findInput.select())}}))),this._findInputFocused=pg.bindTo(r),this._findFocusTracker=this._register(Ga(this._findInput.inputBox.inputElement)),this._register(this._findFocusTracker.onDidFocus(()=>{this._findInputFocused.set(!0),this._updateSearchScope()})),this._register(this._findFocusTracker.onDidBlur(()=>{this._findInputFocused.set(!1)})),this._replaceInputFocused=Hb.bindTo(r),this._replaceFocusTracker=this._register(Ga(this._replaceInput.inputBox.inputElement)),this._register(this._replaceFocusTracker.onDidFocus(()=>{this._replaceInputFocused.set(!0),this._updateSearchScope()})),this._register(this._replaceFocusTracker.onDidBlur(()=>{this._replaceInputFocused.set(!1)})),this._codeEditor.addOverlayWidget(this),this._codeEditor.getOption(35).addExtraSpaceOnTop&&(this._viewZone=new Gm(0)),this._applyTheme(a.getColorTheme()),this._register(a.onDidColorThemeChange(this._applyTheme.bind(this))),this._register(this._codeEditor.onDidChangeModel(()=>{!this._isVisible||(this._viewZoneId=void 0)})),this._register(this._codeEditor.onDidScrollChange(h=>{if(h.scrollTopChanged){this._layoutViewZone();return}setTimeout(()=>{this._layoutViewZone()},0)}))}getId(){return bg.ID}getDomNode(){return this._domNode}getPosition(){return this._isVisible?{preference:0}:null}_onStateChanged(e){if(e.searchString){try{this._ignoreChangeEvent=!0,this._findInput.setValue(this._state.searchString)}finally{this._ignoreChangeEvent=!1}this._updateButtons()}if(e.replaceString&&(this._replaceInput.inputBox.value=this._state.replaceString),e.isRevealed&&(this._state.isRevealed?this._reveal():this._hide(!0)),e.isReplaceRevealed&&(this._state.isReplaceRevealed?!this._codeEditor.getOption(81)&&!this._isReplaceVisible&&(this._isReplaceVisible=!0,this._replaceInput.width=ji(this._findInput.domNode),this._updateButtons(),this._replaceInput.inputBox.layout()):this._isReplaceVisible&&(this._isReplaceVisible=!1,this._updateButtons())),(e.isRevealed||e.isReplaceRevealed)&&(this._state.isRevealed||this._state.isReplaceRevealed)&&this._tryUpdateHeight()&&this._showViewZone(),e.isRegex&&this._findInput.setRegex(this._state.isRegex),e.wholeWord&&this._findInput.setWholeWords(this._state.wholeWord),e.matchCase&&this._findInput.setCaseSensitive(this._state.matchCase),e.preserveCase&&this._replaceInput.setPreserveCase(this._state.preserveCase),e.searchScope&&(this._state.searchScope?this._toggleSelectionFind.checked=!0:this._toggleSelectionFind.checked=!1,this._updateToggleSelectionFindButton()),e.searchString||e.matchesCount||e.matchesPosition){let t=this._state.searchString.length>0&&this._state.matchesCount===0;this._domNode.classList.toggle("no-results",t),this._updateMatchesCount(),this._updateButtons()}(e.searchString||e.currentMatch)&&this._layoutViewZone(),e.updateHistory&&this._delayedUpdateHistory(),e.loop&&this._updateButtons()}_delayedUpdateHistory(){this._updateHistoryDelayer.trigger(this._updateHistory.bind(this)).then(void 0,Ze)}_updateHistory(){this._state.searchString&&this._findInput.inputBox.addToHistory(),this._state.replaceString&&this._replaceInput.inputBox.addToHistory()}_updateMatchesCount(){this._matchesCount.style.minWidth=Kl+"px",this._state.matchesCount>=lo?this._matchesCount.title=RB:this._matchesCount.title="",this._matchesCount.firstChild&&this._matchesCount.removeChild(this._matchesCount.firstChild);let e;if(this._state.matchesCount>0){let t=String(this._state.matchesCount);this._state.matchesCount>=lo&&(t+="+");let i=String(this._state.matchesPosition);i==="0"&&(i="?"),e=cu(AB,i,t)}else e=$S;this._matchesCount.appendChild(document.createTextNode(e)),Nf(this._getAriaLabel(e,this._state.currentMatch,this._state.searchString)),Kl=Math.max(Kl,this._matchesCount.clientWidth)}_getAriaLabel(e,t,i){if(e===$S)return i===""?p("ariaSearchNoResultEmpty","{0} found",e):p("ariaSearchNoResult","{0} found for '{1}'",e,i);if(t){const n=p("ariaSearchNoResultWithLineNum","{0} found for '{1}', at {2}",e,i,t.startLineNumber+":"+t.startColumn),o=this._codeEditor.getModel();return o&&t.startLineNumber<=o.getLineCount()&&t.startLineNumber>=1?`${o.getLineContent(t.startLineNumber)}, ${n}`:n}return p("ariaSearchNoResultWithLineNumNoCurrentMatch","{0} found for '{1}'",e,i)}_updateToggleSelectionFindButton(){let e=this._codeEditor.getSelection(),t=e?e.startLineNumber!==e.endLineNumber||e.startColumn!==e.endColumn:!1,i=this._toggleSelectionFind.checked;this._isVisible&&(i||t)?this._toggleSelectionFind.enable():this._toggleSelectionFind.disable()}_updateButtons(){this._findInput.setEnabled(this._isVisible),this._replaceInput.setEnabled(this._isVisible&&this._isReplaceVisible),this._updateToggleSelectionFindButton(),this._closeBtn.setEnabled(this._isVisible);let e=this._state.searchString.length>0,t=!!this._state.matchesCount;this._prevBtn.setEnabled(this._isVisible&&e&&t&&this._state.canNavigateBack()),this._nextBtn.setEnabled(this._isVisible&&e&&t&&this._state.canNavigateForward()),this._replaceBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&e),this._replaceAllBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&e),this._domNode.classList.toggle("replaceToggled",this._isReplaceVisible),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible);let i=!this._codeEditor.getOption(81);this._toggleReplaceBtn.setEnabled(this._isVisible&&i)}_reveal(){if(this._revealTimeouts.forEach(e=>{clearTimeout(e)}),this._revealTimeouts=[],!this._isVisible){this._isVisible=!0;const e=this._codeEditor.getSelection();switch(this._codeEditor.getOption(35).autoFindInSelection){case"always":this._toggleSelectionFind.checked=!0;break;case"never":this._toggleSelectionFind.checked=!1;break;case"multiline":{const i=!!e&&e.startLineNumber!==e.endLineNumber;this._toggleSelectionFind.checked=i;break}}this._tryUpdateWidgetWidth(),this._updateButtons(),this._revealTimeouts.push(setTimeout(()=>{this._domNode.classList.add("visible"),this._domNode.setAttribute("aria-hidden","false")},0)),this._revealTimeouts.push(setTimeout(()=>{this._findInput.validate()},200)),this._codeEditor.layoutOverlayWidget(this);let t=!0;if(this._codeEditor.getOption(35).seedSearchStringFromSelection&&e){const i=this._codeEditor.getDomNode();if(i){const n=en(i),o=this._codeEditor.getScrolledVisiblePosition(e.getStartPosition()),r=n.left+(o?o.left:0),a=o?o.top:0;if(this._viewZone&&ae.startLineNumber&&(t=!1);const l=lL(this._domNode).left;r>l&&(t=!1);const c=this._codeEditor.getScrolledVisiblePosition(e.getEndPosition());n.left+(c?c.left:0)>l&&(t=!1)}}}this._showViewZone(t)}}_hide(e){this._revealTimeouts.forEach(t=>{clearTimeout(t)}),this._revealTimeouts=[],this._isVisible&&(this._isVisible=!1,this._updateButtons(),this._domNode.classList.remove("visible"),this._domNode.setAttribute("aria-hidden","true"),this._findInput.clearMessage(),e&&this._codeEditor.focus(),this._codeEditor.layoutOverlayWidget(this),this._removeViewZone())}_layoutViewZone(e){if(!this._codeEditor.getOption(35).addExtraSpaceOnTop){this._removeViewZone();return}if(!this._isVisible)return;const i=this._viewZone;this._viewZoneId!==void 0||!i||this._codeEditor.changeViewZones(n=>{i.heightInPx=this._getHeight(),this._viewZoneId=n.addZone(i),this._codeEditor.setScrollTop(e||this._codeEditor.getScrollTop()+i.heightInPx)})}_showViewZone(e=!0){if(!this._isVisible||!this._codeEditor.getOption(35).addExtraSpaceOnTop)return;this._viewZone===void 0&&(this._viewZone=new Gm(0));const i=this._viewZone;this._codeEditor.changeViewZones(n=>{if(this._viewZoneId!==void 0){const o=this._getHeight();if(o===i.heightInPx)return;let r=o-i.heightInPx;i.heightInPx=o,n.layoutZone(this._viewZoneId),e&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+r);return}else{let o=this._getHeight();if(o-=this._codeEditor.getOption(75).top,o<=0)return;i.heightInPx=o,this._viewZoneId=n.addZone(i),e&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+o)}})}_removeViewZone(){this._codeEditor.changeViewZones(e=>{this._viewZoneId!==void 0&&(e.removeZone(this._viewZoneId),this._viewZoneId=void 0,this._viewZone&&(this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()-this._viewZone.heightInPx),this._viewZone=void 0))})}_applyTheme(e){let t={inputActiveOptionBorder:e.getColor(g_),inputActiveOptionBackground:e.getColor(m_),inputActiveOptionForeground:e.getColor(p_),inputBackground:e.getColor(TL),inputForeground:e.getColor(ML),inputBorder:e.getColor(RL),inputValidationInfoBackground:e.getColor(AL),inputValidationInfoForeground:e.getColor(OL),inputValidationInfoBorder:e.getColor(PL),inputValidationWarningBackground:e.getColor(FL),inputValidationWarningForeground:e.getColor(BL),inputValidationWarningBorder:e.getColor(VL),inputValidationErrorBackground:e.getColor(WL),inputValidationErrorForeground:e.getColor(HL),inputValidationErrorBorder:e.getColor(zL)};this._findInput.style(t),this._replaceInput.style(t),this._toggleSelectionFind.style(t)}_tryUpdateWidgetWidth(){if(!this._isVisible||!S0(this._domNode))return;const e=this._codeEditor.getLayoutInfo();if(e.contentWidth<=0){this._domNode.classList.add("hiddenEditor");return}else this._domNode.classList.contains("hiddenEditor")&&this._domNode.classList.remove("hiddenEditor");const i=e.width,n=e.minimap.minimapWidth;let o=!1,r=!1,a=!1;if(this._resized&&ji(this._domNode)>An){this._domNode.style.maxWidth=`${i-28-n-15}px`,this._replaceInput.width=ji(this._findInput.domNode);return}if(An+28+n>=i&&(r=!0),An+28+n-Kl>=i&&(a=!0),An+28+n-Kl>=i+50&&(o=!0),this._domNode.classList.toggle("collapsed-find-widget",o),this._domNode.classList.toggle("narrow-find-widget",a),this._domNode.classList.toggle("reduced-find-widget",r),!a&&!o&&(this._domNode.style.maxWidth=`${i-28-n-15}px`),this._resized){this._findInput.inputBox.layout();let l=this._findInput.inputBox.element.clientWidth;l>0&&(this._replaceInput.width=l)}else this._isReplaceVisible&&(this._replaceInput.width=ji(this._findInput.domNode))}_getHeight(){let e=0;return e+=4,e+=this._findInput.inputBox.height+2,this._isReplaceVisible&&(e+=4,e+=this._replaceInput.inputBox.height+2),e+=4,e}_tryUpdateHeight(){const e=this._getHeight();return this._cachedHeight!==null&&this._cachedHeight===e?!1:(this._cachedHeight=e,this._domNode.style.height=`${e}px`,!0)}focusFindInput(){this._findInput.select(),this._findInput.focus()}focusReplaceInput(){this._replaceInput.select(),this._replaceInput.focus()}highlightFindOptions(){this._findInput.highlightFindOptions()}_updateSearchScope(){if(!!this._codeEditor.hasModel()&&this._toggleSelectionFind.checked){let e=this._codeEditor.getSelections();e.map(t=>{t.endColumn===1&&t.endLineNumber>t.startLineNumber&&(t=t.setEndPosition(t.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(t.endLineNumber-1)));const i=this._state.currentMatch;return t.startLineNumber!==t.endLineNumber&&!D.equalsRange(t,i)?t:null}).filter(t=>!!t),e.length&&this._state.change({searchScope:e},!0)}}_onFindInputMouseDown(e){e.middleButton&&e.stopPropagation()}_onFindInputKeyDown(e){if(e.equals(KS|3))if(this._keybindingService.dispatchEvent(e,e.target)){e.preventDefault();return}else{this._findInput.inputBox.insertAtCursor(` +`),e.preventDefault();return}if(e.equals(2)){this._isReplaceVisible?this._replaceInput.focus():this._findInput.focusOnCaseSensitive(),e.preventDefault();return}if(e.equals(2066)){this._codeEditor.focus(),e.preventDefault();return}if(e.equals(16))return qS(e,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea"));if(e.equals(18))return GS(e,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea"))}_onReplaceInputKeyDown(e){if(e.equals(KS|3))if(this._keybindingService.dispatchEvent(e,e.target)){e.preventDefault();return}else{li&&va&&!this._ctrlEnterReplaceAllWarningPrompted&&(this._notificationService.info(p("ctrlEnter.keybindingChanged","Ctrl+Enter now inserts line break instead of replacing all. You can modify the keybinding for editor.action.replaceAll to override this behavior.")),this._ctrlEnterReplaceAllWarningPrompted=!0,this._storageService.store(jS,!0,0,0)),this._replaceInput.inputBox.insertAtCursor(` +`),e.preventDefault();return}if(e.equals(2)){this._findInput.focusOnCaseSensitive(),e.preventDefault();return}if(e.equals(1026)){this._findInput.focus(),e.preventDefault();return}if(e.equals(2066)){this._codeEditor.focus(),e.preventDefault();return}if(e.equals(16))return qS(e,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea"));if(e.equals(18))return GS(e,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea"))}getVerticalSashLeft(e){return 0}_keybindingLabelFor(e){let t=this._keybindingService.lookupKeybinding(e);return t?` (${t.getLabel()})`:""}_buildDomNode(){this._findInput=this._register(new F1(null,this._contextViewProvider,{width:PB,label:SB,placeholder:yB,appendCaseSensitiveLabel:this._keybindingLabelFor(xe.ToggleCaseSensitiveCommand),appendWholeWordsLabel:this._keybindingLabelFor(xe.ToggleWholeWordCommand),appendRegexLabel:this._keybindingLabelFor(xe.ToggleRegexCommand),validation:l=>{if(l.length===0||!this._findInput.getRegex())return null;try{return new RegExp(l,"gu"),null}catch(c){return{content:c.message}}},flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showHistoryHint:()=>HS(this._keybindingService)},this._contextKeyService,!0)),this._findInput.setRegex(!!this._state.isRegex),this._findInput.setCaseSensitive(!!this._state.matchCase),this._findInput.setWholeWords(!!this._state.wholeWord),this._register(this._findInput.onKeyDown(l=>this._onFindInputKeyDown(l))),this._register(this._findInput.inputBox.onDidChange(()=>{this._ignoreChangeEvent||this._state.change({searchString:this._findInput.getValue()},!0)})),this._register(this._findInput.onDidOptionChange(()=>{this._state.change({isRegex:this._findInput.getRegex(),wholeWord:this._findInput.getWholeWords(),matchCase:this._findInput.getCaseSensitive()},!0)})),this._register(this._findInput.onCaseSensitiveKeyDown(l=>{l.equals(1026)&&this._isReplaceVisible&&(this._replaceInput.focus(),l.preventDefault())})),this._register(this._findInput.onRegexKeyDown(l=>{l.equals(2)&&this._isReplaceVisible&&(this._replaceInput.focusOnPreserve(),l.preventDefault())})),this._register(this._findInput.inputBox.onDidHeightChange(l=>{this._tryUpdateHeight()&&this._showViewZone()})),qt&&this._register(this._findInput.onMouseDown(l=>this._onFindInputMouseDown(l))),this._matchesCount=document.createElement("div"),this._matchesCount.className="matchesCount",this._updateMatchesCount(),this._prevBtn=this._register(new ea({label:LB+this._keybindingLabelFor(xe.PreviousMatchFindAction),icon:wB,onTrigger:()=>{this._codeEditor.getAction(xe.PreviousMatchFindAction).run().then(void 0,Ze)}})),this._nextBtn=this._register(new ea({label:kB+this._keybindingLabelFor(xe.NextMatchFindAction),icon:vB,onTrigger:()=>{this._codeEditor.getAction(xe.NextMatchFindAction).run().then(void 0,Ze)}}));let i=document.createElement("div");i.className="find-part",i.appendChild(this._findInput.domNode);const n=document.createElement("div");n.className="find-actions",i.appendChild(n),n.appendChild(this._matchesCount),n.appendChild(this._prevBtn.domNode),n.appendChild(this._nextBtn.domNode),this._toggleSelectionFind=this._register(new Ph({icon:_B,title:xB+this._keybindingLabelFor(xe.ToggleSearchScopeCommand),isChecked:!1})),this._register(this._toggleSelectionFind.onChange(()=>{if(this._toggleSelectionFind.checked){if(this._codeEditor.hasModel()){let l=this._codeEditor.getSelections();l.map(c=>(c.endColumn===1&&c.endLineNumber>c.startLineNumber&&(c=c.setEndPosition(c.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(c.endLineNumber-1))),c.isEmpty()?null:c)).filter(c=>!!c),l.length&&this._state.change({searchScope:l},!0)}}else this._state.change({searchScope:null},!0)})),n.appendChild(this._toggleSelectionFind.domNode),this._closeBtn=this._register(new ea({label:IB+this._keybindingLabelFor(xe.CloseFindWidgetCommand),icon:v9,onTrigger:()=>{this._state.change({isRevealed:!1,searchScope:null},!1)},onKeyDown:l=>{l.equals(2)&&this._isReplaceVisible&&(this._replaceBtn.isEnabled()?this._replaceBtn.focus():this._codeEditor.focus(),l.preventDefault())}})),n.appendChild(this._closeBtn.domNode),this._replaceInput=this._register(new B1(null,void 0,{label:EB,placeholder:DB,appendPreserveCaseLabel:this._keybindingLabelFor(xe.TogglePreserveCaseCommand),history:[],flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showHistoryHint:()=>HS(this._keybindingService)},this._contextKeyService,!0)),this._replaceInput.setPreserveCase(!!this._state.preserveCase),this._register(this._replaceInput.onKeyDown(l=>this._onReplaceInputKeyDown(l))),this._register(this._replaceInput.inputBox.onDidChange(()=>{this._state.change({replaceString:this._replaceInput.inputBox.value},!1)})),this._register(this._replaceInput.inputBox.onDidHeightChange(l=>{this._isReplaceVisible&&this._tryUpdateHeight()&&this._showViewZone()})),this._register(this._replaceInput.onDidOptionChange(()=>{this._state.change({preserveCase:this._replaceInput.getPreserveCase()},!0)})),this._register(this._replaceInput.onPreserveCaseKeyDown(l=>{l.equals(2)&&(this._prevBtn.isEnabled()?this._prevBtn.focus():this._nextBtn.isEnabled()?this._nextBtn.focus():this._toggleSelectionFind.enabled?this._toggleSelectionFind.focus():this._closeBtn.isEnabled()&&this._closeBtn.focus(),l.preventDefault())})),this._replaceBtn=this._register(new ea({label:NB+this._keybindingLabelFor(xe.ReplaceOneAction),icon:bB,onTrigger:()=>{this._controller.replace()},onKeyDown:l=>{l.equals(1026)&&(this._closeBtn.focus(),l.preventDefault())}})),this._replaceAllBtn=this._register(new ea({label:TB+this._keybindingLabelFor(xe.ReplaceAllAction),icon:CB,onTrigger:()=>{this._controller.replaceAll()}}));let o=document.createElement("div");o.className="replace-part",o.appendChild(this._replaceInput.domNode);const r=document.createElement("div");r.className="replace-actions",o.appendChild(r),r.appendChild(this._replaceBtn.domNode),r.appendChild(this._replaceAllBtn.domNode),this._toggleReplaceBtn=this._register(new ea({label:MB,className:"codicon toggle left",onTrigger:()=>{this._state.change({isReplaceRevealed:!this._isReplaceVisible},!1),this._isReplaceVisible&&(this._replaceInput.width=ji(this._findInput.domNode),this._replaceInput.inputBox.layout()),this._showViewZone()}})),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible),this._domNode=document.createElement("div"),this._domNode.className="editor-widget find-widget",this._domNode.setAttribute("aria-hidden","true"),this._domNode.style.width=`${An}px`,this._domNode.appendChild(this._toggleReplaceBtn.domNode),this._domNode.appendChild(i),this._domNode.appendChild(o),this._resizeSash=new gi(this._domNode,this,{orientation:0,size:2}),this._resized=!1;let a=An;this._register(this._resizeSash.onDidStart(()=>{a=ji(this._domNode)})),this._register(this._resizeSash.onDidChange(l=>{this._resized=!0;let c=a+l.startX-l.currentX;if(ch||(this._domNode.style.width=`${c}px`,this._isReplaceVisible&&(this._replaceInput.width=ji(this._findInput.domNode)),this._findInput.inputBox.layout(),this._tryUpdateHeight())})),this._register(this._resizeSash.onDidReset(()=>{const l=ji(this._domNode);if(l{this._opts.onTrigger(),i.preventDefault()}),this.onkeydown(this._domNode,i=>{if(i.equals(10)||i.equals(3)){this._opts.onTrigger(),i.preventDefault();return}this._opts.onKeyDown&&this._opts.onKeyDown(i)})}get domNode(){return this._domNode}isEnabled(){return this._domNode.tabIndex>=0}focus(){this._domNode.focus()}setEnabled(e){this._domNode.classList.toggle("disabled",!e),this._domNode.setAttribute("aria-disabled",String(!e)),this._domNode.tabIndex=e?0:-1}setExpanded(e){this._domNode.setAttribute("aria-expanded",String(!!e)),e?(this._domNode.classList.remove(...St.asClassNameArray(zS)),this._domNode.classList.add(...St.asClassNameArray(US))):(this._domNode.classList.remove(...St.asClassNameArray(US)),this._domNode.classList.add(...St.asClassNameArray(zS)))}}ni((s,e)=>{const t=(m,_)=>{_&&e.addRule(`.monaco-editor ${m} { background-color: ${_}; }`)};t(".findMatch",s.getColor(po)),t(".currentFindMatch",s.getColor(RT)),t(".findScope",s.getColor(AT));const i=s.getColor(nn);t(".find-widget",i);const n=s.getColor(Ya);n&&e.addRule(`.monaco-editor .find-widget { box-shadow: 0 0 8px 2px ${n}; }`);const o=s.getColor(Ma);o&&e.addRule(`.monaco-editor .findMatch { border: 1px ${s.type==="hc"?"dotted":"solid"} ${o}; box-sizing: border-box; }`);const r=s.getColor(OT);r&&e.addRule(`.monaco-editor .currentFindMatch { border: 2px solid ${r}; padding: 1px; box-sizing: border-box; }`);const a=s.getColor(PT);a&&e.addRule(`.monaco-editor .findScope { border: 1px ${s.type==="hc"?"dashed":"solid"} ${a}; }`);const l=s.getColor(it);l&&e.addRule(`.monaco-editor .find-widget { border: 1px solid ${l}; }`);const c=s.getColor(mo);c&&e.addRule(`.monaco-editor .find-widget { color: ${c}; }`);const h=s.getColor(fT);h&&e.addRule(`.monaco-editor .find-widget.no-results .matchesCount { color: ${h}; }`);const d=s.getColor(yT);if(d)e.addRule(`.monaco-editor .find-widget .monaco-sash { background-color: ${d}; }`);else{const m=s.getColor(Vd);m&&e.addRule(`.monaco-editor .find-widget .monaco-sash { background-color: ${m}; }`)}const u=s.getColor(w_);u&&e.addRule(` + .monaco-editor .find-widget .button:not(.disabled):hover, + .monaco-editor .find-widget .codicon-find-selection:hover { + background-color: ${u} !important; + } + `);const f=s.getColor(Zn);f&&e.addRule(`.monaco-editor .find-widget .monaco-inputbox.synthetic-focus { outline-color: ${f}; }`)});var Nx=globalThis&&globalThis.__decorate||function(s,e,t,i){var n=arguments.length,o=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},Vn=globalThis&&globalThis.__param||function(s,e){return function(t,i){e(t,i,s)}},Dr=globalThis&&globalThis.__awaiter||function(s,e,t,i){function n(o){return o instanceof t?o:new t(function(r){r(o)})}return new(t||(t=Promise))(function(o,r){function a(h){try{c(i.next(h))}catch(d){r(d)}}function l(h){try{c(i.throw(h))}catch(d){r(d)}}function c(h){h.done?o(h.value):n(h.value).then(a,l)}c((i=i.apply(s,e||[])).next())})};const BB=524288;function V1(s,e="single",t=!1){if(!s.hasModel())return null;const i=s.getSelection();if(e==="single"&&i.startLineNumber===i.endLineNumber||e==="multiple"){if(i.isEmpty()){const n=s.getConfiguredWordAtPosition(i.getStartPosition());if(n&&t===!1)return n.word}else if(s.getModel().getValueLengthInRange(i)this._onStateChanged(o))),this._model=null,this._register(this._editor.onDidChangeModel(()=>{let o=this._editor.getModel()&&this._state.isRevealed;this.disposeModel(),this._state.change({searchScope:null,matchCase:this._storageService.getBoolean("editor.matchCase",1,!1),wholeWord:this._storageService.getBoolean("editor.wholeWord",1,!1),isRegex:this._storageService.getBoolean("editor.isRegex",1,!1),preserveCase:this._storageService.getBoolean("editor.preserveCase",1,!1)},!1),o&&this._start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!1,updateSearchScope:!1,loop:this._editor.getOption(35).loop})}))}get editor(){return this._editor}static get(e){return e.getContribution(Tx.ID)}dispose(){this.disposeModel(),super.dispose()}disposeModel(){this._model&&(this._model.dispose(),this._model=null)}_onStateChanged(e){this.saveQueryState(e),e.isRevealed&&(this._state.isRevealed?this._findWidgetVisible.set(!0):(this._findWidgetVisible.reset(),this.disposeModel())),e.searchString&&this.setGlobalBufferTerm(this._state.searchString)}saveQueryState(e){e.isRegex&&this._storageService.store("editor.isRegex",this._state.actualIsRegex,1,0),e.wholeWord&&this._storageService.store("editor.wholeWord",this._state.actualWholeWord,1,0),e.matchCase&&this._storageService.store("editor.matchCase",this._state.actualMatchCase,1,0),e.preserveCase&&this._storageService.store("editor.preserveCase",this._state.actualPreserveCase,1,0)}loadQueryState(){this._state.change({matchCase:this._storageService.getBoolean("editor.matchCase",1,this._state.matchCase),wholeWord:this._storageService.getBoolean("editor.wholeWord",1,this._state.wholeWord),isRegex:this._storageService.getBoolean("editor.isRegex",1,this._state.isRegex),preserveCase:this._storageService.getBoolean("editor.preserveCase",1,this._state.preserveCase)},!1)}isFindInputFocused(){return!!pg.getValue(this._contextKeyService)}getState(){return this._state}closeFindWidget(){this._state.change({isRevealed:!1,searchScope:null},!1),this._editor.focus()}toggleCaseSensitive(){this._state.change({matchCase:!this._state.matchCase},!1),this._state.isRevealed||this.highlightFindOptions()}toggleWholeWords(){this._state.change({wholeWord:!this._state.wholeWord},!1),this._state.isRevealed||this.highlightFindOptions()}toggleRegex(){this._state.change({isRegex:!this._state.isRegex},!1),this._state.isRevealed||this.highlightFindOptions()}togglePreserveCase(){this._state.change({preserveCase:!this._state.preserveCase},!1),this._state.isRevealed||this.highlightFindOptions()}toggleSearchScope(){if(this._state.searchScope)this._state.change({searchScope:null},!0);else if(this._editor.hasModel()){let e=this._editor.getSelections();e.map(t=>(t.endColumn===1&&t.endLineNumber>t.startLineNumber&&(t=t.setEndPosition(t.endLineNumber-1,this._editor.getModel().getLineMaxColumn(t.endLineNumber-1))),t.isEmpty()?null:t)).filter(t=>!!t),e.length&&this._state.change({searchScope:e},!0)}}setSearchString(e){this._state.isRegex&&(e=Qn(e)),this._state.change({searchString:e},!1)}highlightFindOptions(e=!1){}_start(e,t){return Dr(this,void 0,void 0,function*(){if(this.disposeModel(),!this._editor.hasModel())return;let i=Object.assign(Object.assign({},t),{isRevealed:!0});if(e.seedSearchStringFromSelection==="single"){let n=V1(this._editor,e.seedSearchStringFromSelection,e.seedSearchStringFromNonEmptySelection);n&&(this._state.isRegex?i.searchString=Qn(n):i.searchString=n)}else if(e.seedSearchStringFromSelection==="multiple"&&!e.updateSearchScope){let n=V1(this._editor,e.seedSearchStringFromSelection);n&&(i.searchString=n)}if(!i.searchString&&e.seedSearchStringFromGlobalClipboard){let n=yield this.getGlobalBufferTerm();if(!this._editor.hasModel())return;n&&(i.searchString=n)}if(e.forceRevealReplace||i.isReplaceRevealed?i.isReplaceRevealed=!0:this._findWidgetVisible.get()||(i.isReplaceRevealed=!1),e.updateSearchScope){let n=this._editor.getSelections();n.some(o=>!o.isEmpty())&&(i.searchScope=n)}i.loop=e.loop,this._state.change(i,!1),this._model||(this._model=new xc(this._editor,this._state))})}start(e,t){return this._start(e,t)}moveToNextMatch(){return this._model?(this._model.moveToNextMatch(),!0):!1}moveToPrevMatch(){return this._model?(this._model.moveToPrevMatch(),!0):!1}replace(){return this._model?(this._model.replace(),!0):!1}replaceAll(){return this._model?(this._model.replaceAll(),!0):!1}selectAllMatches(){return this._model?(this._model.selectAllMatches(),this._editor.focus(),!0):!1}getGlobalBufferTerm(){return Dr(this,void 0,void 0,function*(){return this._editor.getOption(35).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()?this._clipboardService.readFindText():""})}setGlobalBufferTerm(e){this._editor.getOption(35).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()&&this._clipboardService.writeFindText(e)}};on.ID="editor.contrib.findController";on=Nx([Vn(1,Ne),Vn(2,Bb),Vn(3,Nh)],on);let W1=class extends on{constructor(e,t,i,n,o,r,a,l){super(e,i,a,l),this._contextViewService=t,this._keybindingService=n,this._themeService=o,this._notificationService=r,this._widget=null,this._findOptionsWidget=null}_start(e,t){const i=Object.create(null,{_start:{get:()=>super._start}});return Dr(this,void 0,void 0,function*(){this._widget||this._createFindWidget();const n=this._editor.getSelection();let o=!1;switch(this._editor.getOption(35).autoFindInSelection){case"always":o=!0;break;case"never":o=!1;break;case"multiline":{o=!!n&&n.startLineNumber!==n.endLineNumber;break}}e.updateSearchScope=e.updateSearchScope||o,yield i._start.call(this,e,t),this._widget&&(e.shouldFocus===2?this._widget.focusReplaceInput():e.shouldFocus===1&&this._widget.focusFindInput())})}highlightFindOptions(e=!1){this._widget||this._createFindWidget(),this._state.isRevealed&&!e?this._widget.highlightFindOptions():this._findOptionsWidget.highlightFindOptions()}_createFindWidget(){this._widget=this._register(new bg(this._editor,this,this._state,this._contextViewService,this._keybindingService,this._contextKeyService,this._themeService,this._storageService,this._notificationService)),this._findOptionsWidget=this._register(new _g(this._editor,this._state,this._keybindingService,this._themeService))}};W1=Nx([Vn(1,Yf),Vn(2,Ne),Vn(3,Li),Vn(4,ot),Vn(5,Dn),Vn(6,Bb),Vn(7,Nh)],W1);const VB=xL(new kL({id:xe.StartFindAction,label:p("startFindAction","Find"),alias:"Find",precondition:Oe.or(H.focus,Oe.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2084,weight:100},menuOpts:{menuId:N.MenubarEditMenu,group:"3_find",title:p({key:"miFind",comment:["&& denotes a mnemonic"]},"&&Find"),order:1}}));VB.addImplementation(0,(s,e,t)=>{const i=on.get(e);return i?i.start({forceRevealReplace:!1,seedSearchStringFromSelection:e.getOption(35).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:e.getOption(35).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:e.getOption(35).globalFindClipboard,shouldFocus:1,shouldAnimate:!0,updateSearchScope:!1,loop:e.getOption(35).loop}):!1});const WB={description:"Open a new In-Editor Find Widget.",args:[{name:"Open a new In-Editor Find Widget args",schema:{properties:{searchString:{type:"string"},replaceString:{type:"string"},regex:{type:"boolean"},regexOverride:{type:"number",description:p("actions.find.isRegexOverride",`Overrides "Use Regular Expression" flag. +The flag will not be saved for the future. +0: Do Nothing +1: True +2: False`)},wholeWord:{type:"boolean"},wholeWordOverride:{type:"number",description:p("actions.find.wholeWordOverride",`Overrides "Match Whole Word" flag. +The flag will not be saved for the future. +0: Do Nothing +1: True +2: False`)},matchCase:{type:"boolean"},matchCaseOverride:{type:"number",description:p("actions.find.matchCaseOverride",`Overrides "Math Case" flag. +The flag will not be saved for the future. +0: Do Nothing +1: True +2: False`)},preserveCase:{type:"boolean"},preserveCaseOverride:{type:"number",description:p("actions.find.preserveCaseOverride",`Overrides "Preserve Case" flag. +The flag will not be saved for the future. +0: Do Nothing +1: True +2: False`)},findInSelection:{type:"boolean"}}}}]};class HB extends Fs{constructor(){super({id:xe.StartFindWithArgs,label:p("startFindWithArgsAction","Find With Arguments"),alias:"Find With Arguments",precondition:void 0,kbOpts:{kbExpr:null,primary:0,weight:100},description:WB})}run(e,t,i){return Dr(this,void 0,void 0,function*(){const n=on.get(t);if(n){const o=i?{searchString:i.searchString,replaceString:i.replaceString,isReplaceRevealed:i.replaceString!==void 0,isRegex:i.isRegex,wholeWord:i.matchWholeWord,matchCase:i.isCaseSensitive,preserveCase:i.preserveCase}:{};yield n.start({forceRevealReplace:!1,seedSearchStringFromSelection:n.getState().searchString.length===0&&t.getOption(35).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:t.getOption(35).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:!0,shouldFocus:1,shouldAnimate:!0,updateSearchScope:(i==null?void 0:i.findInSelection)||!1,loop:t.getOption(35).loop},o),n.setGlobalBufferTerm(n.getState().searchString)}})}}class zB extends Fs{constructor(){super({id:xe.StartFindWithSelection,label:p("startFindWithSelectionAction","Find With Selection"),alias:"Find With Selection",precondition:void 0,kbOpts:{kbExpr:null,primary:0,mac:{primary:2083},weight:100}})}run(e,t){return Dr(this,void 0,void 0,function*(){const i=on.get(t);i&&(yield i.start({forceRevealReplace:!1,seedSearchStringFromSelection:"multiple",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(35).loop}),i.setGlobalBufferTerm(i.getState().searchString))})}}class Mx extends Fs{run(e,t){return Dr(this,void 0,void 0,function*(){const i=on.get(t);i&&!this._run(i)&&(yield i.start({forceRevealReplace:!1,seedSearchStringFromSelection:i.getState().searchString.length===0&&t.getOption(35).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:t.getOption(35).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:!0,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(35).loop}),this._run(i))})}}class UB extends Mx{constructor(){super({id:xe.NextMatchFindAction,label:p("findNextMatchAction","Find Next"),alias:"Find Next",precondition:void 0,kbOpts:[{kbExpr:H.focus,primary:61,mac:{primary:2085,secondary:[61]},weight:100},{kbExpr:Oe.and(H.focus,pg),primary:3,weight:100}]})}_run(e){return e.moveToNextMatch()?(e.editor.pushUndoStop(),!0):!1}}class $B extends Mx{constructor(){super({id:xe.PreviousMatchFindAction,label:p("findPreviousMatchAction","Find Previous"),alias:"Find Previous",precondition:void 0,kbOpts:[{kbExpr:H.focus,primary:1085,mac:{primary:3109,secondary:[1085]},weight:100},{kbExpr:Oe.and(H.focus,pg),primary:1027,weight:100}]})}_run(e){return e.moveToPrevMatch()}}class Rx extends Fs{run(e,t){return Dr(this,void 0,void 0,function*(){const i=on.get(t);if(!i)return;const n=t.getOption(35).seedSearchStringFromSelection==="selection";let o=null;t.getOption(35).seedSearchStringFromSelection!=="never"&&(o=V1(t,"single",n)),o&&i.setSearchString(o),this._run(i)||(yield i.start({forceRevealReplace:!1,seedSearchStringFromSelection:t.getOption(35).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:n,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(35).loop}),this._run(i))})}}class jB extends Rx{constructor(){super({id:xe.NextSelectionMatchFindAction,label:p("nextSelectionMatchFindAction","Find Next Selection"),alias:"Find Next Selection",precondition:void 0,kbOpts:{kbExpr:H.focus,primary:2109,weight:100}})}_run(e){return e.moveToNextMatch()}}class KB extends Rx{constructor(){super({id:xe.PreviousSelectionMatchFindAction,label:p("previousSelectionMatchFindAction","Find Previous Selection"),alias:"Find Previous Selection",precondition:void 0,kbOpts:{kbExpr:H.focus,primary:3133,weight:100}})}_run(e){return e.moveToPrevMatch()}}const qB=xL(new kL({id:xe.StartFindReplaceAction,label:p("startReplace","Replace"),alias:"Replace",precondition:Oe.or(H.focus,Oe.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2086,mac:{primary:2596},weight:100},menuOpts:{menuId:N.MenubarEditMenu,group:"3_find",title:p({key:"miReplace",comment:["&& denotes a mnemonic"]},"&&Replace"),order:2}}));qB.addImplementation(0,(s,e,t)=>{if(!e.hasModel()||e.getOption(81))return!1;const i=on.get(e);if(!i)return!1;const n=e.getSelection(),o=i.isFindInputFocused(),r=!n.isEmpty()&&n.startLineNumber===n.endLineNumber&&e.getOption(35).seedSearchStringFromSelection!=="never"&&!o,a=o||r?2:1;return i.start({forceRevealReplace:!0,seedSearchStringFromSelection:r?"single":"none",seedSearchStringFromNonEmptySelection:e.getOption(35).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:e.getOption(35).seedSearchStringFromSelection!=="never",shouldFocus:a,shouldAnimate:!0,updateSearchScope:!1,loop:e.getOption(35).loop})});T0(on.ID,W1);No(HB);No(zB);No(UB);No($B);No(jB);No(KB);const Tn=Fr.bindToContribution(on.get);q(new Tn({id:xe.CloseFindWidgetCommand,precondition:Mo,handler:s=>s.closeFindWidget(),kbOpts:{weight:100+5,kbExpr:Oe.and(H.focus,Oe.not("isComposing")),primary:9,secondary:[1033]}}));q(new Tn({id:xe.ToggleCaseSensitiveCommand,precondition:void 0,handler:s=>s.toggleCaseSensitive(),kbOpts:{weight:100+5,kbExpr:H.focus,primary:yd.primary,mac:yd.mac,win:yd.win,linux:yd.linux}}));q(new Tn({id:xe.ToggleWholeWordCommand,precondition:void 0,handler:s=>s.toggleWholeWords(),kbOpts:{weight:100+5,kbExpr:H.focus,primary:Ld.primary,mac:Ld.mac,win:Ld.win,linux:Ld.linux}}));q(new Tn({id:xe.ToggleRegexCommand,precondition:void 0,handler:s=>s.toggleRegex(),kbOpts:{weight:100+5,kbExpr:H.focus,primary:kd.primary,mac:kd.mac,win:kd.win,linux:kd.linux}}));q(new Tn({id:xe.ToggleSearchScopeCommand,precondition:void 0,handler:s=>s.toggleSearchScope(),kbOpts:{weight:100+5,kbExpr:H.focus,primary:xd.primary,mac:xd.mac,win:xd.win,linux:xd.linux}}));q(new Tn({id:xe.TogglePreserveCaseCommand,precondition:void 0,handler:s=>s.togglePreserveCase(),kbOpts:{weight:100+5,kbExpr:H.focus,primary:Id.primary,mac:Id.mac,win:Id.win,linux:Id.linux}}));q(new Tn({id:xe.ReplaceOneAction,precondition:Mo,handler:s=>s.replace(),kbOpts:{weight:100+5,kbExpr:H.focus,primary:3094}}));q(new Tn({id:xe.ReplaceOneAction,precondition:Mo,handler:s=>s.replace(),kbOpts:{weight:100+5,kbExpr:Oe.and(H.focus,Hb),primary:3}}));q(new Tn({id:xe.ReplaceAllAction,precondition:Mo,handler:s=>s.replaceAll(),kbOpts:{weight:100+5,kbExpr:H.focus,primary:2563}}));q(new Tn({id:xe.ReplaceAllAction,precondition:Mo,handler:s=>s.replaceAll(),kbOpts:{weight:100+5,kbExpr:Oe.and(H.focus,Hb),primary:void 0,mac:{primary:2051}}}));q(new Tn({id:xe.SelectAllMatchesAction,precondition:Mo,handler:s=>s.selectAllMatches(),kbOpts:{weight:100+5,kbExpr:H.focus,primary:515}}));const GB={class:"editor",id:"zfile-monaco-editor"},ZB={__name:"TextViewer",props:{fileUrl:String,fileName:String},setup(s){const e=s,t=Fx("");Bx(()=>{let o=e.fileUrl;zx(o).then(r=>{t.value=r.data,n()}).catch(r=>{Ux({url:o}).then(a=>{t.value=a.data,n()}).catch(a=>{alert("\u52A0\u8F7D\u6587\u4EF6\u9884\u89C8\u5668\u5931\u8D25\uFF0C\u8BF7\u68C0\u6D4B\u6587\u4EF6\u4E0B\u8F7D\u94FE\u63A5\u662F\u5426\u6B63\u5E38")})})}),Vx(()=>{eu.getModels().forEach(o=>{o.dispose()})});const{isNotMobile:i}=$x();let n=()=>{let o=eu.createModel(t.value,void 0,px.parse(e.fileName));eu.create(document.getElementById("zfile-monaco-editor"),{model:o,tabSize:4,automaticLayout:!0,scrollBeyondLastLine:!1,wordWrap:!0,readOnly:!0,minimap:{enabled:i.value},lineNumbers:i.value?"on":"off"})};return(o,r)=>(Wx(),Hx("div",GB))}};var YB=Px(ZB,[["__scopeId","data-v-44b82c5b"]]),QV=Object.freeze(Object.defineProperty({__proto__:null,default:YB},Symbol.toStringTag,{value:"Module"}));export{QV as T,KF as m}; diff --git a/src/main/resources/static/assets/TextViewer.a4e3072e.css b/src/main/resources/static/assets/TextViewer.a4e3072e.css new file mode 100644 index 0000000..cfeba11 --- /dev/null +++ b/src/main/resources/static/assets/TextViewer.a4e3072e.css @@ -0,0 +1 @@ +.monaco-editor{font-family:-apple-system,BlinkMacSystemFont,Segoe WPC,Segoe UI,HelveticaNeue-Light,system-ui,Ubuntu,Droid Sans,sans-serif;--monaco-monospace-font: "SF Mono", Monaco, Menlo, Consolas, "Ubuntu Mono", "Liberation Mono", "DejaVu Sans Mono", "Courier New", monospace}.monaco-menu .monaco-action-bar.vertical .action-item .action-menu-item:focus .action-label{stroke-width:1.2px}.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.hc-black .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label{stroke-width:1.2px}.monaco-hover p{margin:0}.monaco-aria-container{position:absolute!important;top:0;height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%)}.monaco-editor.hc-black{-ms-high-contrast-adjust:none}@media screen and (-ms-high-contrast:active){.monaco-editor.vs .view-overlays .current-line,.monaco-editor.vs-dark .view-overlays .current-line{border-color:windowtext!important;border-left:0;border-right:0}.monaco-editor.vs .cursor,.monaco-editor.vs-dark .cursor{background-color:windowtext!important}.monaco-editor.vs .dnd-target,.monaco-editor.vs-dark .dnd-target{border-color:windowtext!important}.monaco-editor.vs .selected-text,.monaco-editor.vs-dark .selected-text{background-color:highlight!important}.monaco-editor.vs .view-line,.monaco-editor.vs-dark .view-line{-ms-high-contrast-adjust:none}.monaco-editor.vs .view-line span,.monaco-editor.vs-dark .view-line span{color:windowtext!important}.monaco-editor.vs .view-line span.inline-selected-text,.monaco-editor.vs-dark .view-line span.inline-selected-text{color:highlighttext!important}.monaco-editor.vs .view-overlays,.monaco-editor.vs-dark .view-overlays{-ms-high-contrast-adjust:none}.monaco-editor.vs .selectionHighlight,.monaco-editor.vs-dark .selectionHighlight,.monaco-editor.vs .wordHighlight,.monaco-editor.vs-dark .wordHighlight,.monaco-editor.vs .wordHighlightStrong,.monaco-editor.vs-dark .wordHighlightStrong,.monaco-editor.vs .reference-decoration,.monaco-editor.vs-dark .reference-decoration{border:2px dotted highlight!important;background:transparent!important;box-sizing:border-box}.monaco-editor.vs .rangeHighlight,.monaco-editor.vs-dark .rangeHighlight{background:transparent!important;border:1px dotted activeborder!important;box-sizing:border-box}.monaco-editor.vs .bracket-match,.monaco-editor.vs-dark .bracket-match{border-color:windowtext!important;background:transparent!important}.monaco-editor.vs .findMatch,.monaco-editor.vs-dark .findMatch,.monaco-editor.vs .currentFindMatch,.monaco-editor.vs-dark .currentFindMatch{border:2px dotted activeborder!important;background:transparent!important;box-sizing:border-box}.monaco-editor.vs .find-widget,.monaco-editor.vs-dark .find-widget{border:1px solid windowtext}.monaco-editor.vs .monaco-list .monaco-list-row,.monaco-editor.vs-dark .monaco-list .monaco-list-row{-ms-high-contrast-adjust:none;color:windowtext!important}.monaco-editor.vs .monaco-list .monaco-list-row.focused,.monaco-editor.vs-dark .monaco-list .monaco-list-row.focused{color:highlighttext!important;background-color:highlight!important}.monaco-editor.vs .monaco-list .monaco-list-row:hover,.monaco-editor.vs-dark .monaco-list .monaco-list-row:hover{background:transparent!important;border:1px solid highlight;box-sizing:border-box}.monaco-editor.vs .monaco-scrollable-element>.scrollbar,.monaco-editor.vs-dark .monaco-scrollable-element>.scrollbar{-ms-high-contrast-adjust:none;background:background!important;border:1px solid windowtext;box-sizing:border-box}.monaco-editor.vs .monaco-scrollable-element>.scrollbar>.slider,.monaco-editor.vs-dark .monaco-scrollable-element>.scrollbar>.slider{background:windowtext!important}.monaco-editor.vs .monaco-scrollable-element>.scrollbar>.slider:hover,.monaco-editor.vs-dark .monaco-scrollable-element>.scrollbar>.slider:hover{background:highlight!important}.monaco-editor.vs .monaco-scrollable-element>.scrollbar>.slider.active,.monaco-editor.vs-dark .monaco-scrollable-element>.scrollbar>.slider.active{background:highlight!important}.monaco-editor.vs .decorationsOverviewRuler,.monaco-editor.vs-dark .decorationsOverviewRuler{opacity:0}.monaco-editor.vs .minimap,.monaco-editor.vs-dark .minimap{display:none}.monaco-editor.vs .squiggly-d-error,.monaco-editor.vs-dark .squiggly-d-error{background:transparent!important;border-bottom:4px double #E47777}.monaco-editor.vs .squiggly-c-warning,.monaco-editor.vs-dark .squiggly-c-warning,.monaco-editor.vs .squiggly-b-info,.monaco-editor.vs-dark .squiggly-b-info{border-bottom:4px double #71B771}.monaco-editor.vs .squiggly-a-hint,.monaco-editor.vs-dark .squiggly-a-hint{border-bottom:4px double #6c6c6c}.monaco-editor.vs .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label{-ms-high-contrast-adjust:none;color:highlighttext!important;background-color:highlight!important}.monaco-editor.vs .monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .action-label,.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .action-label{-ms-high-contrast-adjust:none;background:transparent!important;border:1px solid highlight;box-sizing:border-box}.monaco-diff-editor.vs .diffOverviewRuler,.monaco-diff-editor.vs-dark .diffOverviewRuler{display:none}.monaco-editor.vs .line-insert,.monaco-editor.vs-dark .line-insert,.monaco-editor.vs .line-delete,.monaco-editor.vs-dark .line-delete{background:transparent!important;border:1px solid highlight!important;box-sizing:border-box}.monaco-editor.vs .char-insert,.monaco-editor.vs-dark .char-insert,.monaco-editor.vs .char-delete,.monaco-editor.vs-dark .char-delete{background:transparent!important}}.monaco-aria-container{position:absolute;left:-999em}::-ms-clear{display:none}.monaco-editor .editor-widget input{color:inherit}.monaco-editor{position:relative;overflow:visible;-webkit-text-size-adjust:100%}.monaco-editor .overflow-guard{position:relative;overflow:hidden}.monaco-editor .view-overlays{position:absolute;top:0}.monaco-editor .inputarea{min-width:0;min-height:0;margin:0;padding:0;position:absolute;outline:none!important;resize:none;border:none;overflow:hidden;color:transparent;background-color:transparent}.monaco-editor .inputarea.ime-input{z-index:10}.monaco-editor .margin-view-overlays .line-numbers{font-variant-numeric:tabular-nums;position:absolute;text-align:right;display:inline-block;vertical-align:middle;box-sizing:border-box;cursor:default;height:100%}.monaco-editor .relative-current-line-number{text-align:left;display:inline-block;width:100%}.monaco-editor .margin-view-overlays .line-numbers.lh-odd{margin-top:1px}.monaco-mouse-cursor-text{cursor:text}.monaco-editor .view-overlays .current-line,.monaco-editor .margin-view-overlays .current-line{display:block;position:absolute;left:0;top:0;box-sizing:border-box}.monaco-editor .margin-view-overlays .current-line.current-line-margin.current-line-margin-both{border-right:0}.monaco-editor .lines-content .cdr{position:absolute}.monaco-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.monaco-scrollable-element>.visible{opacity:1;background:rgba(0,0,0,0);transition:opacity .1s linear}.monaco-scrollable-element>.invisible{opacity:0;pointer-events:none}.monaco-scrollable-element>.invisible.fade{transition:opacity .8s linear}.monaco-scrollable-element>.shadow{position:absolute;display:none}.monaco-scrollable-element>.shadow.top{display:block;top:0;left:3px;height:3px;width:100%}.monaco-scrollable-element>.shadow.left{display:block;top:3px;left:0;height:100%;width:3px}.monaco-scrollable-element>.shadow.top-left-corner{display:block;top:0;left:0;height:3px;width:3px}.monaco-editor .glyph-margin{position:absolute;top:0}.monaco-editor .margin-view-overlays .cgmr{position:absolute;display:flex;align-items:center;justify-content:center}.monaco-editor .lines-content .core-guide{position:absolute;box-sizing:border-box}.mtkcontrol{color:#fff!important;background:rgb(150,0,0)!important}.monaco-editor.no-user-select .lines-content,.monaco-editor.no-user-select .view-line,.monaco-editor.no-user-select .view-lines{-moz-user-select:none;user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-editor .view-lines{white-space:nowrap}.monaco-editor .view-line{position:absolute;width:100%}.monaco-editor .mtkz{display:inline-block}.monaco-editor .lines-decorations{position:absolute;top:0;background:white}.monaco-editor .margin-view-overlays .cldr{position:absolute;height:100%}.monaco-editor .margin-view-overlays .cmdr{position:absolute;left:0;width:100%;height:100%}.monaco-editor .minimap.slider-mouseover .minimap-slider{opacity:0;transition:opacity .1s linear}.monaco-editor .minimap.slider-mouseover:hover .minimap-slider,.monaco-editor .minimap.slider-mouseover .minimap-slider.active{opacity:1}.monaco-editor .minimap-shadow-hidden{position:absolute;width:0}.monaco-editor .minimap-shadow-visible{position:absolute;left:-6px;width:6px}.monaco-editor.no-minimap-shadow .minimap-shadow-visible{position:absolute;left:-1px;width:1px}.monaco-editor .overlayWidgets{position:absolute;top:0;left:0}.monaco-editor .view-ruler{position:absolute;top:0}.monaco-editor .scroll-decoration{position:absolute;top:0;left:0;height:6px}.monaco-editor .lines-content .cslr{position:absolute}.monaco-editor .top-left-radius{border-top-left-radius:3px}.monaco-editor .bottom-left-radius{border-bottom-left-radius:3px}.monaco-editor .top-right-radius{border-top-right-radius:3px}.monaco-editor .bottom-right-radius{border-bottom-right-radius:3px}.monaco-editor.hc-black .top-left-radius{border-top-left-radius:0}.monaco-editor.hc-black .bottom-left-radius{border-bottom-left-radius:0}.monaco-editor.hc-black .top-right-radius{border-top-right-radius:0}.monaco-editor.hc-black .bottom-right-radius{border-bottom-right-radius:0}.monaco-editor .cursors-layer{position:absolute;top:0}.monaco-editor .cursors-layer>.cursor{position:absolute;overflow:hidden}.monaco-editor .cursors-layer.cursor-smooth-caret-animation>.cursor{transition:all 80ms}.monaco-editor .cursors-layer.cursor-block-outline-style>.cursor{box-sizing:border-box;background:transparent!important;border-style:solid;border-width:1px}.monaco-editor .cursors-layer.cursor-underline-style>.cursor{border-bottom-width:2px;border-bottom-style:solid;background:transparent!important;box-sizing:border-box}.monaco-editor .cursors-layer.cursor-underline-thin-style>.cursor{border-bottom-width:1px;border-bottom-style:solid;background:transparent!important;box-sizing:border-box}@-webkit-keyframes monaco-cursor-smooth{0%,20%{opacity:1}60%,to{opacity:0}}@keyframes monaco-cursor-smooth{0%,20%{opacity:1}60%,to{opacity:0}}@-webkit-keyframes monaco-cursor-phase{0%,20%{opacity:1}90%,to{opacity:0}}@keyframes monaco-cursor-phase{0%,20%{opacity:1}90%,to{opacity:0}}@-webkit-keyframes monaco-cursor-expand{0%,20%{transform:scaleY(1)}80%,to{transform:scaleY(0)}}@keyframes monaco-cursor-expand{0%,20%{transform:scaleY(1)}80%,to{transform:scaleY(0)}}.cursor-smooth{-webkit-animation:monaco-cursor-smooth .5s ease-in-out 0s 20 alternate;animation:monaco-cursor-smooth .5s ease-in-out 0s 20 alternate}.cursor-phase{-webkit-animation:monaco-cursor-phase .5s ease-in-out 0s 20 alternate;animation:monaco-cursor-phase .5s ease-in-out 0s 20 alternate}.cursor-expand>.cursor{-webkit-animation:monaco-cursor-expand .5s ease-in-out 0s 20 alternate;animation:monaco-cursor-expand .5s ease-in-out 0s 20 alternate}.monaco-diff-editor .diffOverview{z-index:9}.monaco-diff-editor .diffOverview .diffViewport{z-index:10}.monaco-diff-editor.vs .diffOverview{background:rgba(0,0,0,.03)}.monaco-diff-editor.vs-dark .diffOverview{background:rgba(255,255,255,.01)}.monaco-scrollable-element.modified-in-monaco-diff-editor.vs .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.vs-dark .scrollbar{background:rgba(0,0,0,0)}.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-black .scrollbar{background:none}.monaco-scrollable-element.modified-in-monaco-diff-editor .slider{z-index:10}.modified-in-monaco-diff-editor .slider.active{background:rgba(171,171,171,.4)}.modified-in-monaco-diff-editor.hc-black .slider.active{background:none}.monaco-editor .insert-sign,.monaco-diff-editor .insert-sign,.monaco-editor .delete-sign,.monaco-diff-editor .delete-sign{font-size:11px!important;opacity:.7!important;display:flex!important;align-items:center}.monaco-editor.hc-black .insert-sign,.monaco-diff-editor.hc-black .insert-sign,.monaco-editor.hc-black .delete-sign,.monaco-diff-editor.hc-black .delete-sign{opacity:1}.monaco-editor .inline-deleted-margin-view-zone,.monaco-editor .inline-added-margin-view-zone{text-align:right}.monaco-editor .view-zones .view-lines .view-line span{display:inline-block}.monaco-editor .margin-view-zones .lightbulb-glyph:hover{cursor:pointer}:root{--sash-size: 4px}.monaco-sash{position:absolute;z-index:35;touch-action:none}.monaco-sash.disabled{pointer-events:none}.monaco-sash.mac.vertical{cursor:col-resize}.monaco-sash.vertical.minimum{cursor:e-resize}.monaco-sash.vertical.maximum{cursor:w-resize}.monaco-sash.mac.horizontal{cursor:row-resize}.monaco-sash.horizontal.minimum{cursor:s-resize}.monaco-sash.horizontal.maximum{cursor:n-resize}.monaco-sash.disabled{cursor:default!important;pointer-events:none!important}.monaco-sash.vertical{cursor:ew-resize;top:0;width:var(--sash-size);height:100%}.monaco-sash.horizontal{cursor:ns-resize;left:0;width:100%;height:var(--sash-size)}.monaco-sash:not(.disabled)>.orthogonal-drag-handle{content:" ";height:calc(var(--sash-size) * 2);width:calc(var(--sash-size) * 2);z-index:100;display:block;cursor:all-scroll;position:absolute}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)>.orthogonal-drag-handle.start,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)>.orthogonal-drag-handle.end{cursor:nwse-resize}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)>.orthogonal-drag-handle.end,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)>.orthogonal-drag-handle.start{cursor:nesw-resize}.monaco-sash.vertical>.orthogonal-drag-handle.start{left:calc(var(--sash-size) * -.5);top:calc(var(--sash-size) * -1)}.monaco-sash.vertical>.orthogonal-drag-handle.end{left:calc(var(--sash-size) * -.5);bottom:calc(var(--sash-size) * -1)}.monaco-sash.horizontal>.orthogonal-drag-handle.start{top:calc(var(--sash-size) * -.5);left:calc(var(--sash-size) * -1)}.monaco-sash.horizontal>.orthogonal-drag-handle.end{top:calc(var(--sash-size) * -.5);right:calc(var(--sash-size) * -1)}.monaco-sash:before{content:"";pointer-events:none;position:absolute;width:100%;height:100%;transition:background-color .1s ease-out;background:transparent}.monaco-sash.vertical:before{width:var(--sash-hover-size);left:calc(50% - (var(--sash-hover-size) / 2))}.monaco-sash.horizontal:before{height:var(--sash-hover-size);top:calc(50% - (var(--sash-hover-size) / 2))}.pointer-events-disabled{pointer-events:none!important}.monaco-sash.debug{background:cyan}.monaco-sash.debug.disabled{background:rgba(0,255,255,.2)}.monaco-sash.debug:not(.disabled)>.orthogonal-drag-handle{background:red}.monaco-diff-editor .diff-review-line-number{text-align:right;display:inline-block}.monaco-diff-editor .diff-review{position:absolute;-moz-user-select:none;user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-diff-editor .diff-review-summary{padding-left:10px}.monaco-diff-editor .diff-review-shadow{position:absolute}.monaco-diff-editor .diff-review-row{white-space:pre}.monaco-diff-editor .diff-review-table{display:table;min-width:100%}.monaco-diff-editor .diff-review-row{display:table-row;width:100%}.monaco-diff-editor .diff-review-spacer{display:inline-block;width:10px;vertical-align:middle}.monaco-diff-editor .diff-review-spacer>.codicon{font-size:9px!important}.monaco-diff-editor .diff-review-actions{display:inline-block;position:absolute;right:10px;top:2px}.monaco-diff-editor .diff-review-actions .action-label{width:16px;height:16px;margin:2px 0}.monaco-action-bar{white-space:nowrap;height:100%}.monaco-action-bar .actions-container{display:flex;margin:0 auto;padding:0;height:100%;width:100%;align-items:center}.monaco-action-bar.vertical .actions-container{display:inline-block}.monaco-action-bar .action-item{display:block;align-items:center;justify-content:center;cursor:pointer;position:relative}.monaco-action-bar .action-item.disabled{cursor:default}.monaco-action-bar .action-item .icon,.monaco-action-bar .action-item .codicon{display:block}.monaco-action-bar .action-item .codicon{display:flex;align-items:center;width:16px;height:16px}.monaco-action-bar .action-label{font-size:11px;padding:3px;border-radius:5px}.monaco-action-bar .action-item.disabled .action-label,.monaco-action-bar .action-item.disabled .action-label:before,.monaco-action-bar .action-item.disabled .action-label:hover{opacity:.4}.monaco-action-bar.vertical{text-align:left}.monaco-action-bar.vertical .action-item{display:block}.monaco-action-bar.vertical .action-label.separator{display:block;border-bottom:1px solid #bbb;padding-top:1px;margin-left:.8em;margin-right:.8em}.monaco-action-bar .action-item .action-label.separator{width:1px;height:16px;margin:5px 4px!important;cursor:default;min-width:1px;padding:0;background-color:#bbb}.secondary-actions .monaco-action-bar .action-label{margin-left:6px}.monaco-action-bar .action-item.select-container{overflow:hidden;flex:1;max-width:170px;min-width:60px;display:flex;align-items:center;justify-content:center;margin-right:10px}.monaco-action-bar .action-item.action-dropdown-item{display:flex}.monaco-action-bar .action-item.action-dropdown-item>.action-label{margin-right:1px}.context-view{position:absolute;z-index:2500}.context-view.fixed{all:initial;font-family:inherit;font-size:13px;position:fixed;z-index:2500;color:inherit}@font-face{font-family:codicon;font-display:block;src:url(/assets/codicon.c99115f8.ttf) format("truetype")}.codicon[class*=codicon-]{font: 16px/1 codicon;display:inline-block;text-decoration:none;text-rendering:auto;text-align:center;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-moz-user-select:none;user-select:none;-webkit-user-select:none;-ms-user-select:none}.codicon-wrench-subaction{opacity:.5}@-webkit-keyframes codicon-spin{to{transform:rotate(360deg)}}@keyframes codicon-spin{to{transform:rotate(360deg)}}.codicon-sync.codicon-modifier-spin,.codicon-loading.codicon-modifier-spin,.codicon-gear.codicon-modifier-spin,.codicon-notebook-state-executing.codicon-modifier-spin{-webkit-animation:codicon-spin 1.5s steps(30) infinite;animation:codicon-spin 1.5s steps(30) infinite}.codicon-modifier-disabled{opacity:.4}.codicon-loading,.codicon-tree-item-loading:before{-webkit-animation-duration:1s!important;animation-duration:1s!important;-webkit-animation-timing-function:cubic-bezier(.53,.21,.29,.67)!important;animation-timing-function:cubic-bezier(.53,.21,.29,.67)!important}.context-view .monaco-menu{min-width:130px}.quick-input-widget{font-size:13px}.quick-input-widget .monaco-highlighted-label .highlight,.quick-input-widget .monaco-highlighted-label .highlight{color:#0066bf}.vs .quick-input-widget .monaco-list-row.focused .monaco-highlighted-label .highlight,.vs .quick-input-widget .monaco-list-row.focused .monaco-highlighted-label .highlight{color:#9dddff}.vs-dark .quick-input-widget .monaco-highlighted-label .highlight,.vs-dark .quick-input-widget .monaco-highlighted-label .highlight{color:#0097fb}.hc-black .quick-input-widget .monaco-highlighted-label .highlight,.hc-black .quick-input-widget .monaco-highlighted-label .highlight{color:#f38518}.monaco-keybinding>.monaco-keybinding-key{background-color:#ddd6;border:solid 1px rgba(204,204,204,.4);border-bottom-color:#bbb6;box-shadow:inset 0 -1px #bbb6;color:#555}.hc-black .monaco-keybinding>.monaco-keybinding-key{background-color:transparent;border:solid 1px rgb(111,195,223);box-shadow:none;color:#fff}.vs-dark .monaco-keybinding>.monaco-keybinding-key{background-color:#8080802b;border:solid 1px rgba(51,51,51,.6);border-bottom-color:#4449;box-shadow:inset 0 -1px #4449;color:#ccc}.monaco-text-button{box-sizing:border-box;display:flex;width:100%;padding:4px;text-align:center;cursor:pointer;justify-content:center;align-items:center}.monaco-text-button:focus{outline-offset:2px!important}.monaco-text-button:hover{text-decoration:none!important}.monaco-button.disabled:focus,.monaco-button.disabled{opacity:.4!important;cursor:default}.monaco-text-button>.codicon{margin:0 .2em;color:inherit!important}.monaco-button-dropdown{display:flex;cursor:pointer}.monaco-button-dropdown>.monaco-dropdown-button{margin-left:1px}.monaco-description-button{flex-direction:column}.monaco-description-button .monaco-button-label{font-weight:500}.monaco-description-button .monaco-button-description{font-style:italic}.monaco-description-button .monaco-button-label,.monaco-description-button .monaco-button-description{display:flex;justify-content:center;align-items:center}.monaco-description-button .monaco-button-label>.codicon,.monaco-description-button .monaco-button-description>.codicon{margin:0 .2em;color:inherit!important}.monaco-count-badge{padding:3px 6px;border-radius:11px;font-size:11px;min-width:18px;min-height:18px;line-height:11px;font-weight:400;text-align:center;display:inline-block;box-sizing:border-box}.monaco-count-badge.long{padding:2px 3px;border-radius:2px;min-height:auto;line-height:normal}.monaco-progress-container{width:100%;height:5px;overflow:hidden}.monaco-progress-container .progress-bit{width:2%;height:5px;position:absolute;left:0;display:none}.monaco-progress-container.active .progress-bit{display:inherit}.monaco-progress-container.discrete .progress-bit{left:0;transition:width .1s linear}.monaco-progress-container.discrete.done .progress-bit{width:100%}.monaco-progress-container.infinite .progress-bit{-webkit-animation-name:progress;animation-name:progress;-webkit-animation-duration:4s;animation-duration:4s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;transform:translateZ(0);-webkit-animation-timing-function:linear;animation-timing-function:linear}.monaco-progress-container.infinite.infinite-long-running .progress-bit{-webkit-animation-timing-function:steps(100);animation-timing-function:steps(100)}@-webkit-keyframes progress{0%{transform:translate(0) scaleX(1)}50%{transform:translate(2500%) scaleX(3)}to{transform:translate(4900%) scaleX(1)}}@keyframes progress{0%{transform:translate(0) scaleX(1)}50%{transform:translate(2500%) scaleX(3)}to{transform:translate(4900%) scaleX(1)}}.quick-input-widget{position:absolute;width:600px;z-index:2000;padding:0 1px 1px;left:50%;margin-left:-300px}.quick-input-titlebar{display:flex;align-items:center}.quick-input-left-action-bar{display:flex;margin-left:4px;flex:1}.quick-input-title{padding:3px 0;text-align:center;text-overflow:ellipsis;overflow:hidden}.quick-input-right-action-bar{display:flex;margin-right:4px;flex:1}.quick-input-right-action-bar>.actions-container{justify-content:flex-end}.quick-input-titlebar .monaco-action-bar .action-label.codicon{background-position:center;background-repeat:no-repeat;padding:2px}.quick-input-description{margin:6px}.quick-input-header .quick-input-description{margin:4px 2px}.quick-input-header{display:flex;padding:6px 6px 0;margin-bottom:-2px}.quick-input-widget.hidden-input .quick-input-header{padding:0;margin-bottom:0}.quick-input-and-message{display:flex;flex-direction:column;flex-grow:1;min-width:0;position:relative}.quick-input-check-all{align-self:center;margin:0}.quick-input-filter{flex-grow:1;display:flex;position:relative}.quick-input-box{flex-grow:1}.quick-input-widget.show-checkboxes .quick-input-box,.quick-input-widget.show-checkboxes .quick-input-message{margin-left:5px}.quick-input-visible-count{position:absolute;left:-10000px}.quick-input-count{align-self:center;position:absolute;right:4px;display:flex;align-items:center}.quick-input-count .monaco-count-badge{vertical-align:middle;padding:2px 4px;border-radius:2px;min-height:auto;line-height:normal}.quick-input-action{margin-left:6px}.quick-input-action .monaco-text-button{font-size:11px;padding:0 6px;display:flex;height:27.5px;align-items:center}.quick-input-message{margin-top:-1px;padding:5px;overflow-wrap:break-word}.quick-input-message>.codicon{margin:0 .2em;vertical-align:text-bottom}.quick-input-progress.monaco-progress-container{position:relative}.quick-input-progress.monaco-progress-container,.quick-input-progress.monaco-progress-container .progress-bit{height:2px}.quick-input-list{line-height:22px;margin-top:6px}.quick-input-widget.hidden-input .quick-input-list{margin-top:0}.quick-input-list .monaco-list{overflow:hidden;max-height:440px}.quick-input-list .quick-input-list-entry{box-sizing:border-box;overflow:hidden;display:flex;height:100%;padding:0 6px}.quick-input-list .quick-input-list-entry.quick-input-list-separator-border{border-top-width:1px;border-top-style:solid}.quick-input-list .monaco-list-row[data-index="0"] .quick-input-list-entry.quick-input-list-separator-border{border-top-style:none}.quick-input-list .quick-input-list-label{overflow:hidden;display:flex;height:100%;flex:1}.quick-input-list .quick-input-list-checkbox{align-self:center;margin:0}.quick-input-list .quick-input-list-rows{overflow:hidden;text-overflow:ellipsis;display:flex;flex-direction:column;height:100%;flex:1;margin-left:5px}.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-rows{margin-left:10px}.quick-input-widget .quick-input-list .quick-input-list-checkbox{display:none}.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-checkbox{display:inline}.quick-input-list .quick-input-list-rows>.quick-input-list-row{display:flex;align-items:center}.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label,.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label .monaco-icon-label-container>.monaco-icon-name-container{flex:1}.quick-input-list .quick-input-list-rows>.quick-input-list-row .codicon[class*=codicon-]{vertical-align:text-bottom}.quick-input-list .quick-input-list-rows .monaco-highlighted-label span{opacity:1}.quick-input-list .quick-input-list-entry .quick-input-list-entry-keybinding{margin-right:8px}.quick-input-list .quick-input-list-label-meta{opacity:.7;line-height:normal;text-overflow:ellipsis;overflow:hidden}.quick-input-list .monaco-highlighted-label .highlight{font-weight:700}.quick-input-list .quick-input-list-entry .quick-input-list-separator{margin-right:8px}.quick-input-list .quick-input-list-entry-action-bar{display:flex;flex:0;overflow:visible}.quick-input-list .quick-input-list-entry-action-bar .action-label{display:none}.quick-input-list .quick-input-list-entry-action-bar .action-label.codicon{margin-right:4px;padding:0 2px 2px}.quick-input-list .quick-input-list-entry-action-bar{margin-top:1px;margin-right:4px}.quick-input-list .quick-input-list-entry .quick-input-list-entry-action-bar .action-label.always-visible,.quick-input-list .quick-input-list-entry:hover .quick-input-list-entry-action-bar .action-label,.quick-input-list .monaco-list-row.focused .quick-input-list-entry-action-bar .action-label{display:flex}.quick-input-list .monaco-list-row.focused .monaco-keybinding-key,.quick-input-list .monaco-list-row.focused .quick-input-list-entry .quick-input-list-separator{color:inherit}.quick-input-list .monaco-list-row.focused .monaco-keybinding-key{background:none}.monaco-inputbox{position:relative;display:block;padding:0;box-sizing:border-box;font-size:inherit}.monaco-inputbox.idle{border:1px solid transparent}.monaco-inputbox>.ibwrapper>.input,.monaco-inputbox>.ibwrapper>.mirror{padding:4px}.monaco-inputbox>.ibwrapper{position:relative;width:100%;height:100%}.monaco-inputbox>.ibwrapper>.input{display:inline-block;box-sizing:border-box;width:100%;height:100%;line-height:inherit;border:none;font-family:inherit;font-size:inherit;resize:none;color:inherit}.monaco-inputbox>.ibwrapper>input{text-overflow:ellipsis}.monaco-inputbox>.ibwrapper>textarea.input{display:block;-ms-overflow-style:none;scrollbar-width:none;outline:none}.monaco-inputbox>.ibwrapper>textarea.input::-webkit-scrollbar{display:none}.monaco-inputbox>.ibwrapper>textarea.input.empty{white-space:nowrap}.monaco-inputbox>.ibwrapper>.mirror{position:absolute;display:inline-block;width:100%;top:0;left:0;box-sizing:border-box;white-space:pre-wrap;visibility:hidden;word-wrap:break-word}.monaco-inputbox-container{text-align:right}.monaco-inputbox-container .monaco-inputbox-message{display:inline-block;overflow:hidden;text-align:left;width:100%;box-sizing:border-box;padding:.4em;font-size:12px;line-height:17px;margin-top:-1px;word-wrap:break-word}.monaco-inputbox .monaco-action-bar{position:absolute;right:2px;top:4px}.monaco-inputbox .monaco-action-bar .action-item{margin-left:2px}.monaco-inputbox .monaco-action-bar .action-item .codicon{background-repeat:no-repeat;width:16px;height:16px}.monaco-icon-label{display:flex;overflow:hidden;text-overflow:ellipsis}.monaco-icon-label:before{background-size:16px;background-position:left center;background-repeat:no-repeat;padding-right:6px;width:16px;height:22px;line-height:inherit!important;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top;flex-shrink:0}.monaco-icon-label>.monaco-icon-label-container{min-width:0;overflow:hidden;text-overflow:ellipsis;flex:1}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{color:inherit;white-space:pre}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name>.label-separator{margin:0 2px;opacity:.5}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{opacity:.7;margin-left:.5em;font-size:.9em;white-space:pre}.monaco-icon-label.nowrap>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{white-space:nowrap}.vs .monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{opacity:.95}.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-name-container>.label-name,.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{font-style:italic}.monaco-icon-label.deprecated{text-decoration:line-through;opacity:.66}.monaco-icon-label.italic:after{font-style:italic}.monaco-icon-label.strikethrough>.monaco-icon-label-container>.monaco-icon-name-container>.label-name,.monaco-icon-label.strikethrough>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{text-decoration:line-through}.monaco-icon-label:after{opacity:.75;font-size:90%;font-weight:600;margin:auto 16px 0 5px;text-align:center}.monaco-list:focus .selected .monaco-icon-label,.monaco-list:focus .selected .monaco-icon-label:after{color:inherit!important}.monaco-list-row.focused.selected .label-description,.monaco-list-row.selected .label-description{opacity:.8}.monaco-keybinding{display:flex;align-items:center;line-height:10px}.monaco-keybinding>.monaco-keybinding-key{display:inline-block;border-style:solid;border-width:1px;border-radius:3px;vertical-align:middle;font-size:11px;padding:3px 5px;margin:0 2px}.monaco-keybinding>.monaco-keybinding-key:first-child{margin-left:0}.monaco-keybinding>.monaco-keybinding-key:last-child{margin-right:0}.monaco-keybinding>.monaco-keybinding-key-separator{display:inline-block}.monaco-keybinding>.monaco-keybinding-key-chord-separator{width:6px}.monaco-list{position:relative;height:100%;width:100%;white-space:nowrap}.monaco-list.mouse-support{-moz-user-select:none;user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-list>.monaco-scrollable-element{height:100%}.monaco-list-rows{position:relative;width:100%;height:100%}.monaco-list.horizontal-scrolling .monaco-list-rows{width:auto;min-width:100%}.monaco-list-row{position:absolute;box-sizing:border-box;overflow:hidden;width:100%}.monaco-list.mouse-support .monaco-list-row{cursor:pointer;touch-action:none}.monaco-list-row.scrolling{display:none!important}.monaco-list.element-focused,.monaco-list.selection-single,.monaco-list.selection-multiple{outline:0!important}.monaco-drag-image{display:inline-block;padding:1px 7px;border-radius:10px;font-size:12px;position:absolute;z-index:1000}.monaco-list-type-filter{display:flex;align-items:center;position:absolute;border-radius:2px;padding:0 3px;max-width:calc(100% - 10px);text-overflow:ellipsis;overflow:hidden;text-align:right;box-sizing:border-box;cursor:all-scroll;font-size:13px;line-height:18px;height:20px;z-index:1;top:4px}.monaco-list-type-filter.dragging{transition:top .2s,left .2s}.monaco-list-type-filter.ne{right:4px}.monaco-list-type-filter.nw{left:4px}.monaco-list-type-filter>.controls{display:flex;align-items:center;box-sizing:border-box;transition:width .2s;width:0}.monaco-list-type-filter.dragging>.controls,.monaco-list-type-filter:hover>.controls{width:36px}.monaco-list-type-filter>.controls>*{border:none;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;background:none;width:16px;height:16px;flex-shrink:0;margin:0;padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer}.monaco-list-type-filter>.controls>.filter{margin-left:4px}.monaco-list-type-filter-message{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;padding:40px 1em 1em;text-align:center;white-space:normal;opacity:.7;pointer-events:none}.monaco-list-type-filter-message:empty{display:none}.monaco-list-type-filter{cursor:-webkit-grab;cursor:grab}.monaco-list-type-filter.dragging{cursor:-webkit-grabbing;cursor:grabbing}.monaco-split-view2{position:relative;width:100%;height:100%}.monaco-split-view2>.sash-container{position:absolute;width:100%;height:100%;pointer-events:none}.monaco-split-view2>.sash-container>.monaco-sash{pointer-events:initial}.monaco-split-view2>.monaco-scrollable-element{width:100%;height:100%}.monaco-split-view2>.monaco-scrollable-element>.split-view-container{width:100%;height:100%;white-space:nowrap;position:relative}.monaco-split-view2>.monaco-scrollable-element>.split-view-container>.split-view-view{white-space:initial;position:absolute}.monaco-split-view2>.monaco-scrollable-element>.split-view-container>.split-view-view:not(.visible){display:none}.monaco-split-view2.vertical>.monaco-scrollable-element>.split-view-container>.split-view-view{width:100%}.monaco-split-view2.horizontal>.monaco-scrollable-element>.split-view-container>.split-view-view{height:100%}.monaco-split-view2.separator-border>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{content:" ";position:absolute;top:0;left:0;z-index:5;pointer-events:none;background-color:var(--separator-border)}.monaco-split-view2.separator-border.horizontal>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{height:100%;width:1px}.monaco-split-view2.separator-border.vertical>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{height:1px;width:100%}.monaco-table{display:flex;flex-direction:column;position:relative;height:100%;width:100%;white-space:nowrap}.monaco-table>.monaco-split-view2{border-bottom:1px solid transparent}.monaco-table>.monaco-list{flex:1}.monaco-table-tr{display:flex;height:100%}.monaco-table-th{width:100%;height:100%;font-weight:700;overflow:hidden;text-overflow:ellipsis}.monaco-table-th,.monaco-table-td{box-sizing:border-box;flex-shrink:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.monaco-table>.monaco-split-view2 .monaco-sash.vertical:before{content:"";position:absolute;left:calc(var(--sash-size) / 2);width:0;border-left:1px solid transparent}.monaco-table>.monaco-split-view2,.monaco-table>.monaco-split-view2 .monaco-sash.vertical:before{transition:border-color .2s ease-out}.monaco-tl-row{display:flex;height:100%;align-items:center;position:relative}.monaco-tl-indent{height:100%;position:absolute;top:0;left:16px;pointer-events:none}.hide-arrows .monaco-tl-indent{left:12px}.monaco-tl-indent>.indent-guide{display:inline-block;box-sizing:border-box;height:100%;border-left:1px solid transparent;transition:border-color .1s linear}.monaco-tl-twistie,.monaco-tl-contents{height:100%}.monaco-tl-twistie{font-size:10px;text-align:right;padding-right:6px;flex-shrink:0;width:16px;display:flex!important;align-items:center;justify-content:center;transform:translate(3px)}.monaco-tl-contents{flex:1;overflow:hidden}.monaco-tl-twistie:before{border-radius:20px}.monaco-tl-twistie.collapsed:before{transform:rotate(-90deg)}.monaco-tl-twistie.codicon-tree-item-loading:before{-webkit-animation:codicon-spin 1.25s steps(30) infinite;animation:codicon-spin 1.25s steps(30) infinite}.monaco-custom-checkbox{margin-left:2px;float:left;cursor:pointer;overflow:hidden;width:20px;height:20px;border-radius:3px;border:1px solid transparent;padding:1px;box-sizing:border-box;-moz-user-select:none;user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-custom-checkbox:hover{background-color:var(--vscode-inputOption-hoverBackground)}.hc-black .monaco-custom-checkbox:hover{border:1px dashed var(--vscode-focusBorder)}.hc-black .monaco-custom-checkbox,.hc-black .monaco-custom-checkbox:hover{background:none}.monaco-custom-checkbox.monaco-simple-checkbox{height:18px;width:18px;border:1px solid transparent;border-radius:3px;margin-right:9px;margin-left:0;padding:0;opacity:1;background-size:16px!important}.monaco-custom-checkbox.monaco-simple-checkbox:not(.checked):before{visibility:hidden}.monaco-editor .find-widget{position:absolute;z-index:35;height:33px;overflow:hidden;line-height:19px;transition:transform .2s linear;padding:0 4px;box-sizing:border-box;transform:translateY(calc(-100% - 10px))}.monaco-editor .find-widget textarea{margin:0}.monaco-editor .find-widget.hiddenEditor{display:none}.monaco-editor .find-widget.replaceToggled>.replace-part{display:flex}.monaco-editor .find-widget.visible{transform:translateY(0)}.monaco-editor .find-widget .monaco-inputbox.synthetic-focus{outline:1px solid -webkit-focus-ring-color;outline-offset:-1px}.monaco-editor .find-widget .monaco-inputbox .input{background-color:transparent;min-height:0}.monaco-editor .find-widget .monaco-findInput .input{font-size:13px}.monaco-editor .find-widget>.find-part,.monaco-editor .find-widget>.replace-part{margin:4px 0 0 17px;font-size:12px;display:flex}.monaco-editor .find-widget>.find-part .monaco-inputbox,.monaco-editor .find-widget>.replace-part .monaco-inputbox{min-height:25px}.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.mirror{padding-right:22px}.monaco-editor .find-widget>.find-part .monaco-inputbox>.ibwrapper>.input,.monaco-editor .find-widget>.find-part .monaco-inputbox>.ibwrapper>.mirror,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.input,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.mirror{padding-top:2px;padding-bottom:2px}.monaco-editor .find-widget>.find-part .find-actions{height:25px;display:flex;align-items:center}.monaco-editor .find-widget>.replace-part .replace-actions{height:25px;display:flex;align-items:center}.monaco-editor .find-widget .monaco-findInput{vertical-align:middle;display:flex;flex:1}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element{width:100%}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element .scrollbar.vertical{opacity:0}.monaco-editor .find-widget .matchesCount{display:flex;flex:initial;margin:0 0 0 3px;padding:2px 0 0 2px;height:25px;vertical-align:middle;box-sizing:border-box;text-align:center;line-height:23px}.monaco-editor .find-widget .button{width:16px;height:16px;padding:3px;border-radius:5px;flex:initial;margin-left:3px;background-position:center center;background-repeat:no-repeat;cursor:pointer;display:flex;align-items:center;justify-content:center}.monaco-editor .find-widget .codicon-find-selection{width:22px;height:22px;padding:3px;border-radius:5px}.monaco-editor .find-widget .button.left{margin-left:0;margin-right:3px}.monaco-editor .find-widget .button.wide{width:auto;padding:1px 6px;top:-1px}.monaco-editor .find-widget .button.toggle{position:absolute;top:0;left:3px;width:18px;height:100%;border-radius:0;box-sizing:border-box}.monaco-editor .find-widget .button.toggle.disabled{display:none}.monaco-editor .find-widget .disabled{opacity:.3;cursor:default}.monaco-editor .find-widget>.replace-part{display:none}.monaco-editor .find-widget>.replace-part>.monaco-findInput{position:relative;display:flex;vertical-align:middle;flex:auto;flex-grow:0;flex-shrink:0}.monaco-editor .find-widget>.replace-part>.monaco-findInput>.controls{position:absolute;top:3px;right:2px}.monaco-editor .find-widget.reduced-find-widget .matchesCount{display:none}.monaco-editor .find-widget.narrow-find-widget{max-width:257px!important}.monaco-editor .find-widget.collapsed-find-widget{max-width:170px!important}.monaco-editor .find-widget.collapsed-find-widget .button.previous,.monaco-editor .find-widget.collapsed-find-widget .button.next,.monaco-editor .find-widget.collapsed-find-widget .button.replace,.monaco-editor .find-widget.collapsed-find-widget .button.replace-all,.monaco-editor .find-widget.collapsed-find-widget>.find-part .monaco-findInput .controls{display:none}.monaco-editor .findMatch{-webkit-animation-duration:0;animation-duration:0;-webkit-animation-name:inherit!important;animation-name:inherit!important}.monaco-editor .find-widget .monaco-sash{left:0!important}.monaco-editor.hc-black .find-widget .button:before{position:relative;top:1px;left:2px}.monaco-findInput{position:relative}.monaco-findInput .monaco-inputbox{font-size:13px;width:100%}.monaco-findInput>.controls{position:absolute;top:3px;right:2px}.vs .monaco-findInput.disabled{background-color:#e1e1e1}.vs-dark .monaco-findInput.disabled{background-color:#333}.monaco-findInput.highlight-0 .controls{-webkit-animation:monaco-findInput-highlight-0 .1s linear 0s;animation:monaco-findInput-highlight-0 .1s linear 0s}.monaco-findInput.highlight-1 .controls{-webkit-animation:monaco-findInput-highlight-1 .1s linear 0s;animation:monaco-findInput-highlight-1 .1s linear 0s}.hc-black .monaco-findInput.highlight-0 .controls,.vs-dark .monaco-findInput.highlight-0 .controls{-webkit-animation:monaco-findInput-highlight-dark-0 .1s linear 0s;animation:monaco-findInput-highlight-dark-0 .1s linear 0s}.hc-black .monaco-findInput.highlight-1 .controls,.vs-dark .monaco-findInput.highlight-1 .controls{-webkit-animation:monaco-findInput-highlight-dark-1 .1s linear 0s;animation:monaco-findInput-highlight-dark-1 .1s linear 0s}@-webkit-keyframes monaco-findInput-highlight-0{0%{background:rgba(253,255,0,.8)}to{background:transparent}}@keyframes monaco-findInput-highlight-0{0%{background:rgba(253,255,0,.8)}to{background:transparent}}@-webkit-keyframes monaco-findInput-highlight-1{0%{background:rgba(253,255,0,.8)}99%{background:transparent}}@keyframes monaco-findInput-highlight-1{0%{background:rgba(253,255,0,.8)}99%{background:transparent}}@-webkit-keyframes monaco-findInput-highlight-dark-0{0%{background:rgba(255,255,255,.44)}to{background:transparent}}@keyframes monaco-findInput-highlight-dark-0{0%{background:rgba(255,255,255,.44)}to{background:transparent}}@-webkit-keyframes monaco-findInput-highlight-dark-1{0%{background:rgba(255,255,255,.44)}99%{background:transparent}}@keyframes monaco-findInput-highlight-dark-1{0%{background:rgba(255,255,255,.44)}99%{background:transparent}}#zfile-monaco-editor[data-v-44b82c5b]{height:80vh} diff --git a/src/main/resources/static/assets/VideoPlayer.1614ab82.css b/src/main/resources/static/assets/VideoPlayer.1614ab82.css new file mode 100644 index 0000000..1946966 --- /dev/null +++ b/src/main/resources/static/assets/VideoPlayer.1614ab82.css @@ -0,0 +1 @@ +.artplayer-app[data-v-79e0af22]{height:40vh}@media (min-width: 768px){.artplayer-app[data-v-79e0af22]{height:60vh}}@media (min-width: 1024px){.artplayer-app[data-v-79e0af22]{height:70vh}}.artplayer-app[data-v-79e0af22] .art-controls svg{height:initial;width:initial}.zfile-video-tools[data-v-79e0af22]{display:flex;flex-wrap:wrap;justify-content:center}.zfile-video-tools[data-v-79e0af22]>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(2.5rem * var(--tw-space-x-reverse));margin-left:calc(2.5rem * calc(1 - var(--tw-space-x-reverse)))}.zfile-video-tools[data-v-79e0af22]{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity));padding:.75rem}.zfile-video-tools .zfile-video-tools-item[data-v-79e0af22]{margin:.5rem;flex-shrink:0;border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));padding:.25rem .5rem;--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.zfile-video-tools .zfile-video-tools-item[data-v-79e0af22]:hover{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.zfile-video-tools .zfile-video-tools-item img[data-v-79e0af22]{display:inline;height:2rem;width:2rem}.zfile-video-tools-tips[data-v-79e0af22]{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity));padding-bottom:.5rem;text-align:center;font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))} diff --git a/src/main/resources/static/assets/VideoPlayer.70650d66.js b/src/main/resources/static/assets/VideoPlayer.70650d66.js new file mode 100644 index 0000000..8130c84 --- /dev/null +++ b/src/main/resources/static/assets/VideoPlayer.70650d66.js @@ -0,0 +1,52 @@ +import{f as Ue}from"./request.19cbe8c5.js";import"./base.197bc1e5.js";import"./tooltip.f118fcb0.js";import{E as Xe}from"./popper.91c84279.js";import{bN as je,M as we,K as Fe,_ as $e,o as Je,a as qe,f as et,p as pe,h as De,e as ge,S as tt,U as rt,J as Me}from"./index.bbf7818f.js";import{u as it}from"./useFileUpload.ba32a7f8.js";import"./focus-trap.fe4b8179.js";import"./event.3ec63147.js";import"./common.d0a2bd7a.js";import"./index.6dd6d04c.js";import"./index.9aca9b8e.js";import"./event.776e7e11.js";import"./index.c66de53e.js";import"./scroll.4cf9bb37.js";import"./validator.998eeed0.js";import"./index.eeb08216.js";import"./directive.b8a17520.js";var nt="/assets/video-download.3a226681.png",st="/assets/video-thunder.5e7f4cec.png",at="/assets/video-motrix.95ef7e61.png",ot="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAOeUlEQVR4Xu3dy5EjuRWF4TMGyA550ibIgPZirJjFODIeaDVOaDMvSREKRdRKGy0UVF1mZTV5yGS+ACSA/G/EV1F1p7unu4pA4nEB6nK5fIeG/UN/vvyuL5df9fXyi75///zHq9/00+UP/fye+9vVr3q7cZnw7deMvy/+jPiz4s+MPz/+PyH+v//Wnx7+PmiKPIEKRUMbG/nYuIdG7Q34GPF3GTuJ4e/4hc6hDfIEDjY29njaRqN6/cSu29gxDCMTOoUKyRMoLIbS8dSs7ameS/wbx5FC/Nv9+4Gi5AlkNj7hhzl1/w1+ztghMEI4hDyBDOJJF8PgWFDzBoB745SB0UER8gQSGRs9T/nthl0MOoOM5AnswJM+n7EzYJqQlDyBDWL+OqzYP75wkd6w5fjl4eeA1eQJLDQU4MRqdrvbdK0bipWYIuwgT2AGT/s6xc+EjmA1eQITYt+auX394mfE9GAxeQI3YsGJlfw2DT+zrywaviZP4MNw8IX5fevoCF6SJ04tXiTDqTqe+L0ZOwL/mZ+cPHFaNPxzGEqPWSP4IE+cTrwYWNw7H3YNruSJ0/i2j//44sB5xGvgxOsD8sQpsMCHe/FaOOX6gDzRNYb7eCVeGyebFsgTXRrO4DPcxzIxQvTXUKfkie4M12uxuo91TrJbIE90g6c+Uuh8NCBPdGE4l89TH2l0vDYgTzRvuLf+8YcI7NfdToE80awY8nNMF7nFa6yjugF5okkM+VFSvNY6mRLIE81hyI9jdFE8JE80g1V+1CBeg/7abIg80YRo/FT0oRYNrwvIE9Vjvo8aNbouIE9UbXiHXA7xoFZvrXUC8kS1WOxDG95aKiGWJ6pE40d7mtghkCeqM5zd928uUL8GzhHIE1Vhmw+tq7wTkCeqQeNHLyruBOSJKtD40ZtKC4bkicPR+NGrCkcC8sShaPzoXWWdgDxxGFb7cRYVdQLyxCHY58f5VFEnIE8UN5T3+jcH6F8FFYPyRFHU9uPcDi8blieKiUMTNH7g0ANE8kQRcXaaI73AINrCQfcJyBNFcJkHcC8uFfF2UoA8kR17/cBzB2wPyhNZsd0HvFZ4UVCeyIZFP2CJoouC8kQWLPoByxVcFJQnsuAde4B1Ci0KyhPJMe8HtspeLixPJDXM+/0fBWCZ7OsB8kQyzPuB/aJmxttWQvJEMuz3A2lkrA+QJ5LghB+QVqapgDyRBEN/IK1oU97OEpAnduNmHyCPDFMBeWIXVv2BvBJPBeSJXTjlB+SVeFdAntiMgh+glGQFQvLEJrHnz0EfoJS3VGcF5IlN2PMHykr0TkPyxGos/AHHSLAgKE+sxsIfcIwEC4LyxCpU/AHH2nmDkDyxChV/wLF2VgjKE4ux7QfUYvO2oDyxGE9/oA47rhCTJxbh6b/Pv969/WXw9yf/HVhv0yhAnpjFRR/7/Pevl4f4zw90BNhn4yhAnpjF03+7eOJPxf/+Ofx3/z3AcqtHAfLELJ7+2z17+nvEr2E0gC027AjIEy+x77/Pmohpgf9+YN6qUYA88RJVf/usjZgWxIKh/znAlJXVgfLEJJ7++20NpgVYY0V1oDwxiXf32W9vsEiIJVa8q5A88RQn/tJIEUwLsMTCk4LyxFNc9JlGyqB2AK8svEBUnniK237SSB3UDmDa28Xb8RPyxAMW/9LJFbFIyLQAbsFioDzxgMW/dHIHtQO4tWAxUJ64M1z2+fgHY5sSwbQAt2bOB8gTd1j8S6tkUDuAMLMYKE/cofIvrSOC0cC5zVQGyhOf2PtP76igduDcXtQEyBOfGP6nd3RQO3BOL6YB8sQnhv/p1RJMC87lxTRAnrhi+J9HTUHtwLlMTAPkiSuG/3nUGNQOnMPENECeuKL4J49ag9qB/k0UBckTFP9kVHtQO9C3J0VB8gS1/xm1EkwL+vTkbIA8wVt9Z9RSUDvQnydvKS5PcOtvRi0G04J+PLk1WHcJtv/yajVYJOyHbQfq9osLb/qRV+tB7UAP7q4N1+0XzP8z6yUoKW6XrQPo9gvKfzPrKZgWtMnKgvX5Bfv/+fUYLBK256YeQOMn7P8X0HNQO9COm3oAjZ9Q/19A70HtQBtuzgVo/IT6/wLOEkwL6nZzLkDjJxQAFXC2YJGwTjcFQbp+wgJgGWcMpgV1+lgIVHygArCQMwe1A3X5WAhUfLhQAVjG2YPagZpcKwIVH6gALIQYgkXC431UBCo+sANQCHEf1A4c52MnQPGBEuBCiMdgkfAYHzsBig8X3v67DGI6mBaUd+0A2AIsh5gPFgnLeW/7YguwIGJZMC0o43d9EYeACiLWBbUDeV07AGoAyiHWB7UD+fyi78UpwIKI7cEiYXrXDoAioHKI/UHtQDrvbZ8OoCQiTbBImMZv+klUARZEpA2mBfv8oZ9FFWBBRJ5gkXCbawfARSDlEPmCacF6722fDqAkIn9QO7DGW9QBcA6gFKJMUDuw1LUD8CRyIcoGb2U2iw6gJOKYoHZgEh1AScRxEaMB/3mADqAo4thgXeABHUBJxLERi4P+Mzk5OoCSiOPDfyYnRwdQEnFssA7wgA6gJOLYYEvwAYVAJRHHBQuAz1AJWBRRPjgx+MobZwFKIsoF5cDzroeBOA5cDlEmOBC0zLUD4EKQcoi8Qe3/Otf7AOgAyiHyBMP9ba5XgnEnYDlE+mC4v931UlCuBS+HSBfcALTftQPgjUHKIdIEw/00Pt4XgLcGK4XYF+zpp/aVNwctidgWDPfzuL43IG8PXg6xPhju5/P+8H//ePnuQjlwGcTyYLif33vbj4/fUQ5cCDEfDPfLiDb/2QFQDFQG8Tq4vLOcaPOfHQDFQGUQz4PhfnnR5j87AGoByiDugxLeI3293IwAqAUogfgWDPePFW3+swNgK7AMguF+LaLNf3YA7ASUceZguF+Tt8tHu9f4CTsBBZw1OLFXl48dgKDxE04FFnC24IKOOkVbf+gAWAjM7yzBcL9uHwuAQeMnLAQWcIZguF+/jwXAoPGTKxYC8+o5GO634aMEeKTbL6gIzKzHYLjflo8KwJFuv7hQEZhXb8Fwv0XXCsCRbr/gcpDMeglO7LUr2vhkBxBYB8inh2C43y6b/wd5gnWAjFoOSnjbZ/P/IE9QD5BRi8Fwvx83+/8jeYJ6gIxaC4b7fbnZ/x/JE1e8YWgerQTD/f5Em/Z2PtkBcC4gj9qD4X6/bur/b8kTV2wH5lFzcEFH32z7byRPfGI7ML0ag+F+/55s/43kiU9MA9KrKSjhPY+J4X+QJz4xDUivlmC4fy4Tw/8gT9xhGpDW0cFw/3xeDP+DPHGHaUBaRwXD/fN6MfwP8sQdpgFpHRGc2Du3F8P/IE884LLQdEoGF3Tg5vLPKfLEA84GpFMiGO5j9KT238kTD4azAbx9eAq5g+E+vvm8+/8VeeIpjginkSsY7sM9Ofr7jDzxFIuBaaQOhvuYMrP4N5InJrEYuF/KYLiPKQsW/0byxCQWA/dLEZzYw5wFi38jeeIl7gnYZ28w3Mecmco/J0+8xLXh+2wNSnix3N2133PkiZdiS5DzAdutDYb7WCPa5pNrv16RJ2ZxPmC7NcFwH2vN1P0/I0/MojBouxjKzwXDfWzztvbpH+SJRRgFbBNP9alguI89Njz9gzyxCKOA7WL/3oPhPvbZ9PQP8sRi7AhsF0P8aPQ88ZHGqpX/W/LEYuwIAMfbsPJ/S55YhVEAcLTNT/8gT6xGdSBwjIl3+1lDnliNMwLAMVbU/E+RJzbhpCBQ1ooTf6/IE5sM9wWwLQiU8bb0vP8ceWIzioOAMjYW/TwjT2zGtiCQ38rjvnPkiV1YEATySrDwd0ue2I0LRIE8Fl70uYY8sRtTASC9nRV/U+SJJJgKAGklHvqP5IlkmAoAaWQY+o/kiWSYCgD7ZRr6j+SJpJgKAPskKviZIk8kR4EQsE3Cgp8p8kQWnBgE1klU6z9HnsiC9QBguczz/lvyRDasBwBLJDvos4Q8kRU3CAFzdt3ws5Y8kR31AcBzGff7p8gT2cXchkVB4F6C6722kCeKYFEQ+Kbgop+TJ4qIfyy3CAGh6KKfkyeKYmcA5/aW65DPUvJEcewM4KwObvxBnjgE5cI4n6LbfVPkicOwPYizKFDjv5Q8cSg6AfTugL3+V+SJw9EJoFeVNf4gT1SBdxpCbyps/EGeqAYjAfSi0sYf5Imq0AmgdRU3/iBPVIdOAK2qaLV/ijxRJeoE0J4q9vnnyBPVomIQbTi8vHcNeaJqw9kBDhChVoce7NlCnqhefIM5SozaxGuyscYf5IkmcKkIahJ1Kwed599LnmhGfMPZIcDRKt/mmyNPNIfFQRyjqcW+KfJEk1gXQEmNzvefkSeaFVMCzhAgt4bn+8/IE82jaAh5xPZzE8U9a8gTXWBKgJRix6mTIb+TJ7rBLgFSaKCefw95ojuxUstoAGvFa6aDVf458kSXGA1gjXjqd7TQ94o80TXWBvBKx3P9KfLEKQw7BRwqwqjLFf4l5InTYFqAEK+Bkwz3n5EnTmP8oceQj4NF5xMFPScb7j8jT5xWDAFZH+jfSVb3l5InTi1GBcPhItYHejN07qec578iT+AydAQsFPaBhv+SPAETHQFTg/bQ8BeRJzCBNYI2xIIuc/zF5AnMiBcXx47rw6r+JvIEFhqqClknOFKMyE5UtpuDPIENGBWU9Hb9XjPMT0KewA7jqIDCovSG7+lXnvZpyRNIZOwMWDjcLhp9fA+Z22cjTyADRgZLDcP7eNLT6IuQJ5DZcAjpy/UQCqODsTT3x+v3hOF9cfIECosnXTzxztIhDPv0NPhKyBM42DhCiClDDIdb7hTi7z78G76nwddJnkCFouHcjhSiUQ3rCTXUILxd/y5jQx/n7zT2JsgTaMzYOQxvnR7lyvG0jSH2t45iKJiJkUR0GKPHhjwaf/3YsIfpSexoDA08/l808i78HzPcPJXn8KhQAAAAAElFTkSuQmCC",lt="/assets/video-iina.1db26170.png",ut="/assets/video-vlc.54e63a7e.png",ft="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAK2UlEQVR4Xu2dC3BUZxXHD4g4VlukLRTEIKhYochjeBRaCoggpQaqBSrQWFuCwLbFDpRhQIs4Y8YRO1Lr4JSWJkCJVihgy0PerxapUhqaQrCFIkUghM1rs7sJVCYcz3d3v+Tuud+9e/dFdpPvP/OfwAzs3j0//v9zv2x2ANDS0tLS0tLS0tLS0tLS0tLS0tJqEHrhi1gJM+jrOqyAf2A5vEFeSr8exP+sVopFg59C9pJR6UrYRu7F/55WCkQJWGABoPY1Ss9K+tqZP4ZWkkQwRtGAryuG7+QAgfmFqDj+eFoJiob7nmLgbl1KNTYdEVrzx9WKQ1gFvRVDjt2VcIx8P398rRhFdfWoZbiJ2AvbCcxd/Hm0XIqAeCxDTdz19Lj5qBd/7EoREOkApWWJXvwxKMVADFdXQmkRLX7Qiz+6UgHkagXgyWrAzTWAvw0APh1s8Im5Qb34HZUMINfJ5yoBd/sAl/sB5zYCUHpOELaT+/Jr0YL4gVwmAIcpBQUEYKFi6C5cPy8I+TNr9eKPkFsgAQLwPgFYTzX0K+tw43ctBH4WgLwlevGHZAfkGu2BjwjAVgLwXOQeSJrnRLqU4OSORGjDr7FFSQIRe+A8pWAfQXiRaugZxQCTaQajwU8FoeSJlrz4j1SBZw2lYJFiaKk0BxGGYZiA4Owg7JpdC/359TZ7zQuAhw8rleYQzCBMMKTr6ff5U2rhy/y6m61uJBAnEAoYODPsWQGom9FSFv+NAhIPDAKBPyXnkh8nT/dD6fQAzG7Wiz/VQDgIFQwzCDMMAULCkP4xOccPJVOb6+JPJRAOgsPgqZAwZCrMMH4ShvEIeSr5R+TJftg3obkt/lQA4RDcwFBVlDkVAoSwAYI8iW7Nf0B3hxNqoH68Dwqyq6Arf20ZqWQC4QDcgrCDoUrFw/5GGNnkB8hjyCN8UDe8BvImZ/riTxYQDoGDsNsV5oqyS4WAIVPxkN9IhQFiLHmUgEG+hzzEBwjVUAYXBzwB+5dk5uJPFAiHoAJhB0O1uM2pUFWUTIWAIUAMEhAudUU4PQeheBfCOz6Ew36EQ/4SeNufzV9v2iteIByCHQwVCGEOQqbCXFEShLBIhYAhQEA5+VwOQsk6hCNlCP8MEogAgRAmGG+HfZD8ln8/HKzOnMWfTCBOu8IpFbyieCp6VxKAiw8ifLQC4djHCO8SgH+F3QDD3whDgBDeXxPy3pp62Fv9KuyuS//FHw8QDiIWGHxfqCpqXLWoodEI/1mKcPwownvBEAThIyYYAoSEYU7FwTCIfQYMhN1UY7vIO6vrYIcvD/5eeQufQ9ooViDxgHBa3MJTKAntL/emGlqEcHIvpYCGVxQMgVDBcKqoAyYYe3xmGAjbydsMl8OW6sf5LNJCsQCxA+EEwy4VA6taIVzw0DLeRMvYSxDqCIJwbSOIoyYQFhh+sbitFSVTIWBIEDsEDF8Ixpaw36xCeKPqZUBsxWfSpHIDxCkV0hyEeV8ICA+Ku6GL06iGChBOnCEINPz360IgGmC4SIWqosyp2OuLhCFSIZMhQGw2QCBsqgz5b1WL+EyaVNGAcBgcCE+GhDGNauhm71iET36P8CHtgeJgCIJ0BIjaRhgyFSoY5oqyLm5TRclUmEA0pCIMYiN5A/n1iquwtjZ93te3A8IhcBAcxgzy3RX9qIZ+iXCK9sBxGswHtZEQLKkQIEwVxUEYMEypiKgotridKmpzdSgVEoYBgrxOuBzhLxUL+FyaTBwIh6ACISsqu0rcDT1FNbSRaqgsBECagzDD4KlQwVClQsKQqZAVpV7c1lREwKhA+KuAIVy5jc+lySSBcAgqGI/QmaBVGR3IzuVTDZ0mCDTYD65EglDBsOwKxeK2gxHv4hapUFXUegajkPzn8nf5XJpMAgiHIEGIu6O+5fcjnF9GNUR74EQwBEH4eIww3KTC6WzBFzdPRcTiDleUJRXhinpNwqC7u7XkV737+FyaTHNMQASEMVV0HihdjHBmD0KJrxGA2W5ACMebCleL2xe5uLc6VJQqFRLGGgPI83wuTaaJPvAYe+CTDQj/LrUO3+xYU6GCwUHEe7YwUuGwuEVFOaVCwlgtvl4eyufSdDp51WMZvMoGiBhg8IqKNRXRKsq8uI2zBUuFZXFHVFQIhHDBpfRZ6IbcAHEDIu6K8lthSBDy2x92i5tXVMPZIkpFGSDIq8pOQUGgAx9J08oJiNuKkiAaYIRBqCrK6cTNzxY8FU6L21xRAgSvKJEKM4z8SzvgT95OfBxNLzsgqoriIOJOhaKilItbpsIEgqfCrqJUqRBeVVYKr5RN42NIH6mAcBDxwrA7catguF3cvKKUi7vcurgLvNdglfcP8MfT6futd0MSiKgntxVlt7hVFSXPFqoTd6oXt4SRX3YI8i9nyAeEJJBYQDilQllRNqmwragYFrdTKlZ7vbQrHku7b7E7SgBJFAYHwSvKdnErUqFa3KqKclrcKz6sh8cWvzhs2LD2/OWmv4oFEAcQsVaUanFLGDIVzu/mWVMRraJWX0CY9xL2HTsa87vdcQQBBvKXmTkqDjQCsQOhSkXK381jqTC+/WFKRd4W7PDQw/jz/t3xU6BSAqC/BLPIGf7RawGEg7CkQjjOVERb3KqKsqSC/NIxhNz5mDNiIJ6F1gKA9HVyAfl2/tIyU8W1ViDRUhENhtPibkiFCYQqFYXnEBa+gNnjx+CBrDvMAMwmSnAPf0mZLQ7EDgYHwRe307t5blKxkXbB0k1497SpuGbAN/nguenB4GlyZv64qKMkEA4iGRUVbXGvPIRZT87F34wZhFegLR+6yqKeCsnp8x540iWAcBiuKoqnIlxRTot73SmEZ5ehZ9I4PNPtK3zY0VxCHskvv/lJAnGbiljOFlvLEJa9hlOnP4pvDfk2H7Bb0xPCAnJbfunNU0UExHUqoi1uSsLqA/jdZ+bj+ux7ETu348ON1a+Ts/glN28JIBxGxOKWMGwqatNx7J23DJfnjMcrfboj3vYZxC+0QmxtGW4sPk3+Hr/UlqEiOofYpULcRfHFvfMCtl1eiM8+mYtnRw5A7EYp6HIzpeEmxHZtENtahhuLqTthMflz/DJbjo4SEBUMWVEH6ZZ07U6ctXghvjNxNGKfLog9b0P8xi2IXQlEFwLRke6Q2iWcis3k7vzyWp4EEH62eLMIf/jc87hlxkTE+76F2K8zgaDDWc+OiHfeHoIhU5F4RZ0lj+eX1XIlgOw5i/e9XIj582fhlQcGIw7thjj4q4iDskIwenUKpeLO9o0VJVMRf0V9Sv41+fP8klq0/pszzoPf6YE4/OuI9xKIIWEQ/ama+lEqeplSISsq8VTsJPfg16JFwlFf8+Dw7qFUSBgRFRVOhYDRWaRCLO64YZwnT+bXoGUSjiAgsqKMVIQrykjFreFUJFxR/yP/jpzZnyG/EcIhWZ5QRYVTwSsq8cV9gKz/iwu3olR4lBWV+NmilJxDzqD3s9NA2Kejx5IKubjjO1tcI79A/hJ/Li0Xwrs6TYpc3OFUxFdRh8n9+HNoxSDs2aFHEs4W5eRc1PWUHGGnmw7HubjrySvIt/LH1EpA2AaGUirEyZkP3MlHyYP5Y2klSTTcmRj6F88Hz11N9mDG/7hNBoiG/H3yxwoIwuJw9wo5zT5P0cyFMOCzNPQJGLp13UBeSZ5HTsPPUmhpaWlpaWlpaWlpaWlpaWlpaWlpaWklqv8Da8GBU4g36CAAAAAASUVORK5CYII=",dt="/assets/video-mxplayer.5dfa69aa.png",ct="/assets/video-mxplayer-pro.10406916.png",Ne={exports:{}};/*! + * artplayer.js v4.5.2 + * Github: https://github.com/zhw2590582/ArtPlayer + * (c) 2017-2022 Harvey Zack + * Released under the MIT License. + */(function(Te,Ie){(function(O,C,x,S,h){var m=typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:typeof window!="undefined"?window:typeof we!="undefined"?we:{},M=typeof m.parcelRequire4dc0=="function"&&m.parcelRequire4dc0,T=M.cache||{},p=typeof je=="function"&&je.bind(Te);function f(o,v){if(!T[o]){if(!O[o]){var c=typeof m.parcelRequire4dc0=="function"&&m.parcelRequire4dc0;if(!v&&c)return c(o,!0);if(M)return M(o,!0);if(p&&typeof o=="string")return p(o);var u=new Error("Cannot find module '"+o+"'");throw u.code="MODULE_NOT_FOUND",u}t.resolve=function(i){var e=O[o][1][i];return e!=null?e:i},t.cache={};var r=T[o]=new f.Module(o);O[o][0].call(r.exports,t,r,r.exports,this)}return T[o].exports;function t(i){var e=t.resolve(i);return e===!1?{}:f(e)}}f.isParcelRequire=!0,f.Module=function(o){this.id=o,this.bundle=f,this.exports={}},f.modules=O,f.cache=T,f.parent=M,f.register=function(o,v){O[o]=[function(c,u){u.exports=v},{}]},Object.defineProperty(f,"root",{get:function(){return m.parcelRequire4dc0}}),m.parcelRequire4dc0=f;for(var n=0;nde.call(this)),oe.push(this)}static get instances(){return oe}static get version(){return"4.5.2"}static get env(){return"production"}static get build(){return"1655888299105"}static get config(){return c.default}static get utils(){return n}static get scheme(){return o.default}static get Emitter(){return f.default}static get validator(){return T.default}static get kindOf(){return T.default.kindOf}static get html(){return i.default.html}static get option(){return{container:"#artplayer",url:"",poster:"",title:"",type:"",theme:"#f00",volume:.7,isLive:!1,muted:!1,autoplay:!1,autoSize:!1,autoMini:!1,loop:!1,flip:!1,playbackRate:!1,aspectRatio:!1,screenshot:!1,setting:!1,hotkey:!0,pip:!1,mutex:!0,backdrop:!0,fullscreen:!1,fullscreenWeb:!1,subtitleOffset:!1,miniProgressBar:!1,useSSR:!1,playsInline:!0,lock:!1,fastForward:!1,autoPlayback:!1,autoOrientation:!1,layers:[],contextmenu:[],controls:[],settings:[],quality:[],highlight:[],plugins:[],whitelist:[],thumbnails:{url:"",number:60,column:10},subtitle:{url:"",type:"",style:{},encoding:"utf-8"},moreVideoAttr:{controls:!1,preload:n.isSafari?"auto":"metadata"},icons:{},customType:{},lang:navigator.language.toLowerCase()}}get proxy(){return this.events.proxy}get query(){return this.template.query}destroy(fe=!0){this.events.destroy(),this.template.destroy(fe),oe.splice(oe.indexOf(this),1),this.isDestroy=!0,this.emit("destroy")}}if(x.default=J,J.NOTICE_TIME=2e3,J.SETTING_WIDTH=250,J.SETTING_ITEM_WIDTH=200,J.SETTING_ITEM_HEIGHT=35,J.INDICATOR_SIZE=14,J.INDICATOR_SIZE_ICON=16,J.INDICATOR_SIZE_MOBILE=18,J.INDICATOR_SIZE_MOBILE_ICON=20,J.VOLUME_PANEL_WIDTH=60,J.VOLUME_HANDLE_WIDTH=12,J.RESIZE_TIME=500,J.SCROLL_TIME=200,J.SCROLL_GAP=50,J.AUTO_PLAYBACK_MAX=10,J.AUTO_PLAYBACK_TIMEOUT=3e3,J.RECONNECT_TIME_MAX=5,J.RECONNECT_SLEEP_TIME=1e3,J.CONTROL_HIDE_TIME=3e3,J.DB_CLICE_TIME=300,J.MOBILE_AUTO_PLAYBACKRATE=3,J.MOBILE_AUTO_PLAYBACKRATE_TIME=1e3,J.MOBILE_AUTO_ORIENTATION_TIME=200,J.INFO_LOOP_TIME=1e3,J.FAST_FORWARD_VALUE=3,J.FAST_FORWARD_TIME=1e3,typeof document!="undefined"&&!document.getElementById("artplayer-style")){const ae=document.createElement("style");ae.id="artplayer-style",ae.textContent=m.default,document.head.appendChild(ae)}typeof window!="undefined"&&(window.Artplayer=J),console.log(`%c ArtPlayer %c ${J.version} %c https://artplayer.org`,"color: #fff; background: #5f5f5f","color: #fff; background: #4bc729","")},{"bundle-text:./style/index.less":"9EPUe","option-validator":"2A2W5","./utils/emitter":"7pHuB","./utils":"geSvU","./scheme":"3vPoh","./config":"eksZR","./whitelist":"fCKwj","./template":"bqHdK","./i18n":"4O9ZY","./player":"fzROd","./control":"kJ9J9","./contextmenu":"7rh9q","./info":"c896w","./subtitle":"2hqso","./events":"j2hlX","./hotkey":"aTHWZ","./layer":"f2kxw","./loading":"bOs9w","./notice":"ic4th","./mask":"iLfmB","./icons":"5lAmI","./setting":"d5XKP","./storage":"5M8nN","./plugins":"jWfEd","./mobile":"fkUkB","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"9EPUe":[function(O,C,x){C.exports='.art-video-player{z-index:20;width:100%;height:100%;zoom:1;color:#eee;text-align:left;direction:ltr;user-select:none;-webkit-tap-highlight-color:#0000;touch-action:manipulation;-ms-high-contrast-adjust:none;background-color:#000;outline:0;margin:0 auto;font-family:Roboto,Arial,Helvetica,sans-serif;font-size:14px;line-height:1.3;display:flex;position:relative}.art-video-player *,.art-video-player :before,.art-video-player :after{box-sizing:border-box;margin:0;padding:0}.art-video-player ::-webkit-scrollbar{width:5px;height:5px}.art-video-player ::-webkit-scrollbar-thumb{background-color:#666}.art-video-player ::-webkit-scrollbar-thumb:hover{background-color:#ccc}.art-video-player .art-icon{justify-content:center;align-items:center;line-height:1.5;display:inline-flex}.art-video-player .art-icon svg{fill:#fff}.art-video-player img{max-width:100%;vertical-align:top}@supports ((-webkit-backdrop-filter: initial) or (backdrop-filter: initial)){.art-video-player .art-backdrop-filter{-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);background-color:#000000b3!important}}.art-video-player .art-video{z-index:10;width:100%;height:100%;cursor:pointer;background-color:#000;position:absolute;inset:0}.art-video-player .art-poster{z-index:11;width:100%;height:100%;user-select:none;pointer-events:none;background-position:50%;background-repeat:no-repeat;background-size:cover;position:absolute;inset:0}.art-video-player .art-subtitle{z-index:20;width:100%;text-align:center;color:#fff;pointer-events:none;text-shadow:1px 0 1px #000,0 1px 1px #000,-1px 0 1px #000,0 -1px 1px #000,1px 1px 1px #000,-1px -1px 1px #000,1px -1px 1px #000,-1px 1px 1px #000;padding:0 20px;font-size:20px;display:none;position:absolute;bottom:10px}.art-video-player .art-subtitle p{word-break:break-all;height:fit-content;margin:5px 0 0;line-height:1.2}.art-video-player.art-subtitle-show .art-subtitle{display:block}.art-video-player.art-control-show .art-subtitle{bottom:50px}.art-video-player .art-danmuku{z-index:30;width:100%;height:100%;pointer-events:none;position:absolute;inset:0;overflow:hidden}.art-video-player .art-layers{z-index:40;width:100%;height:100%;pointer-events:none;display:none;position:absolute;inset:0;overflow:hidden}.art-video-player .art-layers .art-layer{pointer-events:auto}.art-video-player.art-layer-show .art-layers{display:block}.art-video-player .art-mask{z-index:50;width:100%;height:100%;pointer-events:none;justify-content:center;align-items:center;display:none;position:absolute;inset:0;overflow:hidden}.art-video-player .art-mask .art-state{width:60px;height:60px;opacity:.85;cursor:pointer;pointer-events:all;justify-content:center;align-items:center;display:flex;position:absolute;bottom:65px;right:30px}.art-video-player.art-mask-show .art-mask{display:flex}.art-video-player.art-mobile .art-state{position:static}.art-video-player .art-loading{z-index:70;width:100%;height:100%;pointer-events:none;justify-content:center;align-items:center;display:none;position:absolute;inset:0}.art-video-player.art-loading-show .art-loading{display:flex}.art-video-player .art-bottom{z-index:60;height:100px;opacity:0;visibility:hidden;pointer-events:none;background-image:linear-gradient(#0000,#0006,#000);background-position:bottom;background-repeat:repeat-x;flex-direction:column;justify-content:space-between;padding:50px 10px 0;transition:all .2s ease-in-out;display:flex;position:absolute;bottom:0;left:0;right:0}.art-video-player .art-bottom .art-progress{z-index:0;pointer-events:auto;flex:1;position:relative}.art-video-player .art-bottom .art-progress .art-control-progress{height:4px;cursor:pointer;flex-direction:row;align-items:center;display:flex;position:relative}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner{height:50%;width:100%;background:#fff3;align-items:center;display:flex;position:relative}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-loaded{z-index:10;height:100%;width:0;background:#fff6;position:absolute;inset:0}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-played{z-index:20;height:100%;width:0;position:absolute;inset:0}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight{z-index:30;height:100%;pointer-events:none;position:absolute;inset:0}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span{width:7px;height:100%;pointer-events:auto;background:#fff;display:inline-block;position:absolute;top:0;left:0}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{visibility:hidden;z-index:40;border-radius:50%;justify-content:center;align-items:center;transition:transform .1s ease-in-out;position:absolute;transform:scale(.1)}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator .art-icon{width:100%;height:100%;pointer-events:none;user-select:none}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip{z-index:50;height:20px;color:#fff;text-align:center;white-space:nowrap;background:#000000b3;border-radius:3px;padding:0 5px;font-size:12px;font-weight:700;line-height:20px;display:none;position:absolute;top:-25px;left:0}.art-video-player .art-bottom .art-progress .art-control-thumbnails{pointer-events:none;background-color:#000000b3;display:none;position:absolute;bottom:8px;left:0}.art-video-player .art-bottom .art-progress .art-control-loop{width:100%;height:100%;pointer-events:none;display:none;position:absolute;inset:0}.art-video-player .art-bottom .art-progress .art-control-loop .art-loop-point{width:2px;height:8px;background:#ffffffbf;position:absolute;top:-2px;left:0}.art-video-player .art-bottom .art-controls{z-index:1;pointer-events:auto;height:45px;justify-content:space-between;align-items:center;display:flex;position:relative}.art-video-player .art-bottom .art-controls .art-controls-left,.art-video-player .art-bottom .art-controls .art-controls-right{display:flex}.art-video-player .art-bottom .art-controls .art-controls-center{height:100%;flex:1;justify-content:center;align-items:center;padding:0 10px;display:flex}.art-video-player .art-bottom .art-controls .art-controls-right{justify-content:flex-end}.art-video-player .art-bottom .art-controls .art-control{opacity:.9;min-height:36px;min-width:36px;text-align:center;cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;font-size:12px;line-height:1;display:flex}.art-video-player .art-bottom .art-controls .art-control .art-icon{float:left;height:36px;width:36px;justify-content:center;align-items:center;display:flex}.art-video-player .art-bottom .art-controls .art-control:hover{opacity:1}.art-video-player .art-bottom .art-controls .art-control-onlyText{padding:0 10px}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel{float:left;width:0;height:100%;transition:margin .2s cubic-bezier(.4,0,1,1),width .2s cubic-bezier(.4,0,1,1);position:relative;overflow:hidden}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle{width:12px;height:12px;background:#fff;border-radius:12px;margin-top:-6px;position:absolute;top:50%;left:0}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:before{background:#fff;left:-54px}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:after{background:#fff3;left:6px}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:before,.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:after{content:"";height:3px;width:60px;margin-top:-2px;display:block;position:absolute;top:50%}.art-video-player .art-bottom .art-controls .art-control-volume:hover .art-volume-panel{width:60px}.art-video-player .art-bottom .art-controls .art-control-quality{z-index:30;position:relative}.art-video-player .art-bottom .art-controls .art-control-quality .art-qualitys{width:100px;text-align:center;color:#fff;background:#000c;border-radius:3px;padding:5px 0;display:none;position:absolute;bottom:35px}.art-video-player .art-bottom .art-controls .art-control-quality .art-qualitys .art-quality-item{height:30px;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 0 2px #00000080;line-height:30px;overflow:hidden}.art-video-player .art-bottom .art-controls .art-control-quality .art-qualitys .art-quality-item:hover{background-color:#ffffff1a}.art-video-player .art-bottom .art-controls .art-control-quality:hover .art-qualitys{display:block}.art-video-player .art-bottom:hover .art-progress .art-control-progress .art-control-progress-inner{height:100%}.art-video-player .art-bottom:hover .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{visibility:visible;transform:scale(1)}.art-video-player.art-control-show .art-bottom,.art-video-player.art-hover .art-bottom{opacity:1;visibility:visible}.art-video-player.art-error .art-progress-indicator,.art-video-player.art-destroy .art-progress-indicator,.art-video-player.art-error .art-progress-tip,.art-video-player.art-destroy .art-progress-tip{display:none!important}.art-video-player.art-mobile .art-bottom{padding:50px 7px 0}.art-video-player.art-mobile .art-bottom .art-controls{height:40px}.art-video-player.art-mobile .art-bottom .art-progress-indicator{visibility:visible!important;transform:scale(1)!important}.art-video-player .art-notice{z-index:80;width:100%;pointer-events:none;padding:10px;font-size:14px;display:none;position:absolute;top:0;left:0}.art-video-player .art-notice .art-notice-inner{color:#fff;background-color:#0009;border-radius:3px;padding:5px 10px;display:inline-block}.art-video-player.art-notice-show .art-notice{display:flex}.art-video-player .art-contextmenus{z-index:120;min-width:200px;background-color:#000000e6;border-radius:3px;flex-direction:column;padding:5px 0;display:none;position:absolute;top:10px;left:10px}.art-video-player .art-contextmenus .art-contextmenu{cursor:pointer;color:#fff;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 0 2px #00000080;border-bottom:1px solid #ffffff1a;padding:10px 15px;font-size:12px;display:block;overflow:hidden}.art-video-player .art-contextmenus .art-contextmenu a{color:#fff;text-decoration:none}.art-video-player .art-contextmenus .art-contextmenu span{padding:0 7px;display:inline-block}.art-video-player .art-contextmenus .art-contextmenu span:hover,.art-video-player .art-contextmenus .art-contextmenu span.art-current{color:#00c9ff}.art-video-player .art-contextmenus .art-contextmenu:hover{background-color:#ffffff1a}.art-video-player .art-contextmenus .art-contextmenu:last-child{border-bottom:none}.art-video-player.art-contextmenu-show .art-contextmenus{display:flex}.art-video-player .art-settings{z-index:90;height:auto;max-height:300px;background-color:#000000e6;border-radius:3px;font-size:13px;transition:all .2s;display:none;position:absolute;bottom:50px;right:10px;overflow:auto}.art-video-player .art-settings .art-setting-panel{display:none}.art-video-player .art-settings .art-setting-panel.art-current{display:block}.art-video-player .art-settings .art-setting-panel .art-setting-item{height:35px;cursor:pointer;color:#fffc;justify-content:space-between;align-items:center;padding:0 5px;line-height:1;display:flex;overflow:hidden}.art-video-player .art-settings .art-setting-panel .art-setting-item:hover,.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current{color:#fff;background-color:#ffffff1a}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-icon{width:30px;height:30px;justify-content:center;align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-icon-check{visibility:hidden;height:15px}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current .art-icon-check{visibility:visible}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left{white-space:nowrap;align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left .art-setting-item-left-icon{height:24px;width:24px;justify-content:center;align-items:center;margin-right:10px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right{align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-tooltip{white-space:nowrap;color:#ffffff80;margin-right:5px;font-size:12px}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-icon{height:24px;justify-content:center;align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-range{height:3px;width:80px;appearance:none;background-color:#fff3;outline:none}.art-video-player .art-settings .art-setting-panel .art-setting-item-back{border-bottom:1px solid #ffffff1a}.art-video-player.art-setting-show .art-settings{display:block}.art-video-player.art-mobile .art-settings{max-height:200px}.art-video-player .art-info{z-index:100;width:350px;color:#fff;-webkit-font-smoothing:antialiased;background-color:#000000e6;flex-direction:column;padding:10px;font-family:Noto Sans CJK SC DemiLight,Roboto,Segoe UI,Tahoma,Arial,Helvetica,sans-serif;font-size:12px;display:none;position:absolute;top:10px;left:10px}.art-video-player .art-info .art-info-item{margin-bottom:5px;display:flex}.art-video-player .art-info .art-info-item .art-info-title{width:100px;text-align:right}.art-video-player .art-info .art-info-item .art-info-content{text-overflow:ellipsis;white-space:nowrap;flex:1;padding-left:5px;overflow:hidden}.art-video-player .art-info .art-info-item:last-child{margin-bottom:0}.art-video-player .art-info .art-info-close{cursor:pointer;position:absolute;top:5px;right:5px}.art-video-player.art-info-show .art-info{display:flex}.art-video-player.art-hide-cursor *{cursor:none!important}.art-video-player[data-aspect-ratio] video{box-sizing:content-box;object-fit:fill}.art-video-player.art-fullscreen-web{z-index:9999;width:100%;height:100%;position:fixed;inset:0}.art-video-player .art-mini-header{z-index:110;height:35px;color:#fff;opacity:0;visibility:hidden;background-color:#00000080;justify-content:space-between;align-items:center;line-height:35px;transition:all .2s ease-in-out;display:none;position:absolute;top:0;left:0;right:0}.art-video-player .art-mini-header .art-mini-title{text-overflow:ellipsis;white-space:nowrap;cursor:move;flex:1;padding:0 10px;overflow:hidden}.art-video-player .art-mini-header .art-mini-close{width:35px;text-align:center;cursor:pointer;font-size:22px}.art-video-player.art-is-dragging{opacity:.7}.art-video-player.art-mini{z-index:9999;width:400px;height:225px;position:fixed;box-shadow:0 2px 5px #00000029,0 3px 6px #0003}.art-video-player.art-mini .art-mini-header{user-select:none;display:flex}.art-video-player.art-mini.art-hover .art-mini-header{opacity:1;visibility:visible}.art-video-player.art-mini .art-mask .art-state{position:static}.art-video-player.art-mini .art-contextmenu,.art-video-player.art-mini .art-bottom,.art-video-player.art-mini .art-danmu,.art-video-player.art-mini .art-info,.art-video-player.art-mini .art-layers,.art-video-player.art-mini .art-notice,.art-video-player.art-mini .art-settings,.art-video-player.art-mini .art-subtitle{display:none!important}.art-auto-size{justify-content:center;align-items:center;display:flex}.art-auto-size .art-video-player{transition:all .2s}.art-video-player[data-flip=horizontal] .art-video{transform:scaleX(-1)}.art-video-player[data-flip=vertical] .art-video{transform:scaleY(-1)}.art-video-player .art-layer-miniProgressBar{height:2px;background-color:var(--theme);display:block;position:absolute;bottom:0;left:0;right:0}.art-video-player .art-layer-lock{height:34px;width:34px;color:#fff;background-color:#00000080;border-radius:50%;justify-content:center;align-items:center;display:none;position:absolute;top:calc(50% - 17px);left:15px}.art-video-player .art-layer-autoPlayback{background-color:#000c;border-radius:3px;align-items:center;padding:10px;line-height:1;display:none;position:absolute;bottom:60px;left:20px}.art-video-player .art-layer-autoPlayback .art-autoPlayback-close{cursor:pointer;align-items:center;margin-right:10px;display:flex}.art-video-player .art-layer-autoPlayback .art-autoPlayback-close svg{width:15px;height:15px;fill:#00c9ff}.art-video-player .art-layer-autoPlayback .art-autoPlayback-last{margin-right:10px}.art-video-player .art-layer-autoPlayback .art-autoPlayback-jump{color:#00c9ff;cursor:pointer}.art-video-player.art-lock .art-bottom{display:none!important}.art-video-player.art-lock .art-subtitle{bottom:10px!important}.art-video-player.art-lock .art-layer-miniProgressBar{display:block!important}.art-video-player.art-control-show .art-layer-miniProgressBar{display:none}.art-video-player.art-control-show .art-layer-lock{display:flex}.art-video-player .art-control-selector{position:relative}.art-video-player .art-control-selector .art-selector-list{min-width:100px;max-width:200px;max-height:200px;text-align:center;color:#fff;background-color:#000c;border-radius:3px;padding:5px 0;display:none;position:absolute;bottom:35px;overflow:auto}.art-video-player .art-control-selector .art-selector-list .art-selector-item{height:30px;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 0 2px #00000080;padding:0 5px;line-height:30px;overflow:hidden}.art-video-player .art-control-selector .art-selector-list .art-selector-item:hover{background-color:#ffffff1a}.art-video-player .art-control-selector .art-selector-list .art-selector-item:hover,.art-video-player .art-control-selector .art-selector-list .art-selector-item.art-current{color:#00c9ff}.art-video-player .art-control-selector:hover .art-selector-list{display:block}[class*=hint--]{font-style:normal;display:inline-block;position:relative}[class*=hint--]:before,[class*=hint--]:after{visibility:hidden;opacity:0;z-index:1000000;pointer-events:none;transition:all .3s;position:absolute;transform:translate(0,0)}[class*=hint--]:hover:before,[class*=hint--]:hover:after{visibility:visible;opacity:1;transition-delay:.1s}[class*=hint--]:before{content:"";z-index:1000001;background:0 0;border:6px solid #0000;position:absolute}[class*=hint--]:after{color:#fff;white-space:nowrap;background:#000;padding:8px 10px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:12px;line-height:12px}[class*=hint--][aria-label]:after{content:attr(aria-label)}[class*=hint--][data-hint]:after{content:attr(data-hint)}[aria-label=""]:before,[aria-label=""]:after,[data-hint=""]:before,[data-hint=""]:after{display:none!important}.hint--top-left:before,.hint--top-right:before,.hint--top:before{border-top-color:#000}.hint--bottom-left:before,.hint--bottom-right:before,.hint--bottom:before{border-bottom-color:#000}.hint--left:before{border-left-color:#000}.hint--right:before{border-right-color:#000}.hint--top:before{margin-bottom:-11px}.hint--top:before,.hint--top:after{bottom:100%;left:50%}.hint--top:before{left:calc(50% - 6px)}.hint--top:after{transform:translate(-50%)}.hint--top:hover:before{transform:translateY(-8px)}.hint--top:hover:after{transform:translate(-50%)translateY(-8px)}.hint--bottom:before{margin-top:-11px}.hint--bottom:before,.hint--bottom:after{top:100%;left:50%}.hint--bottom:before{left:calc(50% - 6px)}.hint--bottom:after{transform:translate(-50%)}.hint--bottom:hover:before{transform:translateY(8px)}.hint--bottom:hover:after{transform:translate(-50%)translateY(8px)}.hint--right:before{margin-bottom:-6px;margin-left:-11px}.hint--right:after{margin-bottom:-14px}.hint--right:before,.hint--right:after{bottom:50%;left:100%}.hint--right:hover:before,.hint--right:hover:after{transform:translate(8px)}.hint--left:before{margin-bottom:-6px;margin-right:-11px}.hint--left:after{margin-bottom:-14px}.hint--left:before,.hint--left:after{bottom:50%;right:100%}.hint--left:hover:before,.hint--left:hover:after{transform:translate(-8px)}.hint--top-left:before{margin-bottom:-11px}.hint--top-left:before,.hint--top-left:after{bottom:100%;left:50%}.hint--top-left:before{left:calc(50% - 6px)}.hint--top-left:after{margin-left:12px;transform:translate(-100%)}.hint--top-left:hover:before{transform:translateY(-8px)}.hint--top-left:hover:after{transform:translate(-100%)translateY(-8px)}.hint--top-right:before{margin-bottom:-11px}.hint--top-right:before,.hint--top-right:after{bottom:100%;left:50%}.hint--top-right:before{left:calc(50% - 6px)}.hint--top-right:after{margin-left:-12px;transform:translate(0)}.hint--top-right:hover:before,.hint--top-right:hover:after{transform:translateY(-8px)}.hint--bottom-left:before{margin-top:-11px}.hint--bottom-left:before,.hint--bottom-left:after{top:100%;left:50%}.hint--bottom-left:before{left:calc(50% - 6px)}.hint--bottom-left:after{margin-left:12px;transform:translate(-100%)}.hint--bottom-left:hover:before{transform:translateY(8px)}.hint--bottom-left:hover:after{transform:translate(-100%)translateY(8px)}.hint--bottom-right:before{margin-top:-11px}.hint--bottom-right:before,.hint--bottom-right:after{top:100%;left:50%}.hint--bottom-right:before{left:calc(50% - 6px)}.hint--bottom-right:after{margin-left:-12px;transform:translate(0)}.hint--bottom-right:hover:before,.hint--bottom-right:hover:after{transform:translateY(8px)}.hint--small:after,.hint--medium:after,.hint--large:after{white-space:normal;word-wrap:break-word;line-height:1.4em}.hint--small:after{width:80px}.hint--medium:after{width:150px}.hint--large:after{width:300px}[class*=hint--]:after{text-shadow:0 -1px #000;box-shadow:4px 4px 8px #0000004d}.hint--error:after{text-shadow:0 -1px #592726;background-color:#b34e4d}.hint--error.hint--top-left:before,.hint--error.hint--top-right:before,.hint--error.hint--top:before{border-top-color:#b34e4d}.hint--error.hint--bottom-left:before,.hint--error.hint--bottom-right:before,.hint--error.hint--bottom:before{border-bottom-color:#b34e4d}.hint--error.hint--left:before{border-left-color:#b34e4d}.hint--error.hint--right:before{border-right-color:#b34e4d}.hint--warning:after{text-shadow:0 -1px #6c5328;background-color:#c09854}.hint--warning.hint--top-left:before,.hint--warning.hint--top-right:before,.hint--warning.hint--top:before{border-top-color:#c09854}.hint--warning.hint--bottom-left:before,.hint--warning.hint--bottom-right:before,.hint--warning.hint--bottom:before{border-bottom-color:#c09854}.hint--warning.hint--left:before{border-left-color:#c09854}.hint--warning.hint--right:before{border-right-color:#c09854}.hint--info:after{text-shadow:0 -1px #1a3c4d;background-color:#3986ac}.hint--info.hint--top-left:before,.hint--info.hint--top-right:before,.hint--info.hint--top:before{border-top-color:#3986ac}.hint--info.hint--bottom-left:before,.hint--info.hint--bottom-right:before,.hint--info.hint--bottom:before{border-bottom-color:#3986ac}.hint--info.hint--left:before{border-left-color:#3986ac}.hint--info.hint--right:before{border-right-color:#3986ac}.hint--success:after{text-shadow:0 -1px #1a321a;background-color:#458746}.hint--success.hint--top-left:before,.hint--success.hint--top-right:before,.hint--success.hint--top:before{border-top-color:#458746}.hint--success.hint--bottom-left:before,.hint--success.hint--bottom-right:before,.hint--success.hint--bottom:before{border-bottom-color:#458746}.hint--success.hint--left:before{border-left-color:#458746}.hint--success.hint--right:before{border-right-color:#458746}.hint--always:after,.hint--always:before{opacity:1;visibility:visible}.hint--always.hint--top:before{transform:translateY(-8px)}.hint--always.hint--top:after{transform:translate(-50%)translateY(-8px)}.hint--always.hint--top-left:before{transform:translateY(-8px)}.hint--always.hint--top-left:after{transform:translate(-100%)translateY(-8px)}.hint--always.hint--top-right:before,.hint--always.hint--top-right:after{transform:translateY(-8px)}.hint--always.hint--bottom:before{transform:translateY(8px)}.hint--always.hint--bottom:after{transform:translate(-50%)translateY(8px)}.hint--always.hint--bottom-left:before{transform:translateY(8px)}.hint--always.hint--bottom-left:after{transform:translate(-100%)translateY(8px)}.hint--always.hint--bottom-right:before,.hint--always.hint--bottom-right:after{transform:translateY(8px)}.hint--always.hint--left:before,.hint--always.hint--left:after{transform:translate(-8px)}.hint--always.hint--right:before,.hint--always.hint--right:after{transform:translate(8px)}.hint--rounded:after{border-radius:4px}.hint--no-animate:before,.hint--no-animate:after{transition-duration:0s}.hint--bounce:before,.hint--bounce:after{-webkit-transition:opacity .3s,visibility .3s,-webkit-transform .3s cubic-bezier(.71,1.7,.77,1.24);-moz-transition:opacity .3s,visibility .3s,-moz-transform .3s cubic-bezier(.71,1.7,.77,1.24);transition:opacity .3s,visibility .3s,transform .3s cubic-bezier(.71,1.7,.77,1.24)}.hint--no-shadow:before,.hint--no-shadow:after{text-shadow:initial;box-shadow:initial}.hint--no-arrow:before{display:none}'},{}],"2A2W5":[function(O,C,x){C.exports=function(){function S(n){return(S=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(d){return typeof d}:function(d){return d&&typeof Symbol=="function"&&d.constructor===Symbol&&d!==Symbol.prototype?"symbol":typeof d})(n)}var h=Object.prototype.toString,m=function(n){if(n===void 0)return"undefined";if(n===null)return"null";var d=S(n);if(d==="boolean")return"boolean";if(d==="string")return"string";if(d==="number")return"number";if(d==="symbol")return"symbol";if(d==="function")return function(o){return M(o)==="GeneratorFunction"}(n)?"generatorfunction":"function";if(function(o){return Array.isArray?Array.isArray(o):o instanceof Array}(n))return"array";if(function(o){return!(!o.constructor||typeof o.constructor.isBuffer!="function")&&o.constructor.isBuffer(o)}(n))return"buffer";if(function(o){try{if(typeof o.length=="number"&&typeof o.callee=="function")return!0}catch(v){if(v.message.indexOf("callee")!==-1)return!0}return!1}(n))return"arguments";if(function(o){return o instanceof Date||typeof o.toDateString=="function"&&typeof o.getDate=="function"&&typeof o.setDate=="function"}(n))return"date";if(function(o){return o instanceof Error||typeof o.message=="string"&&o.constructor&&typeof o.constructor.stackTraceLimit=="number"}(n))return"error";if(function(o){return o instanceof RegExp||typeof o.flags=="string"&&typeof o.ignoreCase=="boolean"&&typeof o.multiline=="boolean"&&typeof o.global=="boolean"}(n))return"regexp";switch(M(n)){case"Symbol":return"symbol";case"Promise":return"promise";case"WeakMap":return"weakmap";case"WeakSet":return"weakset";case"Map":return"map";case"Set":return"set";case"Int8Array":return"int8array";case"Uint8Array":return"uint8array";case"Uint8ClampedArray":return"uint8clampedarray";case"Int16Array":return"int16array";case"Uint16Array":return"uint16array";case"Int32Array":return"int32array";case"Uint32Array":return"uint32array";case"Float32Array":return"float32array";case"Float64Array":return"float64array"}if(function(o){return typeof o.throw=="function"&&typeof o.return=="function"&&typeof o.next=="function"}(n))return"generator";switch(d=h.call(n)){case"[object Object]":return"object";case"[object Map Iterator]":return"mapiterator";case"[object Set Iterator]":return"setiterator";case"[object String Iterator]":return"stringiterator";case"[object Array Iterator]":return"arrayiterator"}return d.slice(8,-1).toLowerCase().replace(/\s/g,"")};function M(n){return n.constructor?n.constructor.name:null}function T(n,d){var o=2m),S.export(x,"queryAll",()=>M),S.export(x,"addClass",()=>T),S.export(x,"removeClass",()=>p),S.export(x,"hasClass",()=>f),S.export(x,"append",()=>n),S.export(x,"remove",()=>d),S.export(x,"setStyle",()=>o),S.export(x,"setStyles",()=>v),S.export(x,"getStyle",()=>c),S.export(x,"sublings",()=>u),S.export(x,"inverseClass",()=>r),S.export(x,"tooltip",()=>t),S.export(x,"isInViewport",()=>i),S.export(x,"includeFromEvent",()=>e),S.export(x,"replaceElement",()=>s);var h=O("./compatibility");function m(l,a=document){return a.querySelector(l)}function M(l,a=document){return Array.from(a.querySelectorAll(l))}function T(l,a){return l.classList.add(a)}function p(l,a){return l.classList.remove(a)}function f(l,a){return l.classList.contains(a)}function n(l,a){return a instanceof Element?l.appendChild(a):l.insertAdjacentHTML("beforeend",String(a)),l.lastElementChild||l.lastChild}function d(l){return l.parentNode.removeChild(l)}function o(l,a,g){return l.style[a]=g,l}function v(l,a){return Object.keys(a).forEach(g=>{o(l,g,a[g])}),l}function c(l,a,g=!0){const A=window.getComputedStyle(l,null).getPropertyValue(a);return g?parseFloat(A):A}function u(l){return Array.from(l.parentElement.children).filter(a=>a!==l)}function r(l,a){u(l).forEach(g=>p(g,a)),T(l,a)}function t(l,a,g="top"){h.isMobile||(l.setAttribute("aria-label",a),T(l,"hint--rounded"),T(l,`hint--${g}`))}function i(l,a=0){const g=l.getBoundingClientRect(),A=window.innerHeight||document.documentElement.clientHeight,D=window.innerWidth||document.documentElement.clientWidth,y=g.top-a<=A&&g.top+g.height+a>=0,E=g.left-a<=D+a&&g.left+g.width+a>=0;return y&&E}function e(l,a){return l.composedPath&&l.composedPath().indexOf(a)>-1}function s(l,a){return a.parentNode.replaceChild(l,a),l}},{"./compatibility":"ki3pQ","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],ki3pQ:[function(O,C,x){var S=O("@parcel/transformer-js/src/esmodule-helpers.js");S.defineInteropFlag(x),S.export(x,"userAgent",()=>h),S.export(x,"isMobile",()=>m),S.export(x,"isSafari",()=>M),S.export(x,"isWechat",()=>T),S.export(x,"isIE",()=>p),S.export(x,"isAndroid",()=>f),S.export(x,"isIOS",()=>n);const h=typeof window!="undefined"?window.navigator.userAgent:"",m=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(h),M=/^((?!chrome|android).)*safari/i.test(h),T=/MicroMessenger/i.test(h),p=/MSIE|Trident/i.test(h),f=/android/i.test(h),n=/iPad|iPhone|iPod/i.test(h)&&!window.MSStream},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],lDQPM:[function(O,C,x){var S=O("@parcel/transformer-js/src/esmodule-helpers.js");S.defineInteropFlag(x),S.export(x,"ArtPlayerError",()=>h),S.export(x,"errorHandle",()=>m);class h extends Error{constructor(T,p){super(T),typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,p||this.constructor),this.name="ArtPlayerError"}}function m(M,T){if(!M)throw new h(T);return M}},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"1dyFb":[function(O,C,x){var S=O("@parcel/transformer-js/src/esmodule-helpers.js");function h(T){return`WEBVTT \r +\r +`.concat((p=T,p.replace(/(\d\d:\d\d:\d\d)[,.](\d+)/g,(f,n,d)=>{let o=d.slice(0,3);return d.length===1&&(o=d+"00"),d.length===2&&(o=d+"0"),`${n},${o}`})).replace(/\{\\([ibu])\}/g,"").replace(/\{\\([ibu])1\}/g,"<$1>").replace(/\{([ibu])\}/g,"<$1>").replace(/\{\/([ibu])\}/g,"").replace(/(\d\d:\d\d:\d\d),(\d\d\d)/g,"$1.$2").replace(/{[\s\S]*?}/g,"").concat(`\r +\r +`));var p}function m(T){return URL.createObjectURL(new Blob([T],{type:"text/vtt"}))}function M(T){const p=new RegExp("Dialogue:\\s\\d,(\\d+:\\d\\d:\\d\\d.\\d\\d),(\\d+:\\d\\d:\\d\\d.\\d\\d),([^,]*),([^,]*),(?:[^,]*,){4}([\\s\\S]*)$","i");function f(n=""){return n.split(/[:.]/).map((d,o,v)=>{if(o===v.length-1){if(d.length===1)return`.${d}00`;if(d.length===2)return`.${d}0`}else if(d.length===1)return(o===0?"0":":0")+d;return o===0?d:o===v.length-1?`.${d}`:`:${d}`}).join("")}return`WEBVTT + +${T.split(/\r?\n/).map(n=>{const d=n.match(p);return d?{start:f(d[1].trim()),end:f(d[2].trim()),text:d[5].replace(/{[\s\S]*?}/g,"").replace(/(\\N)/g,` +`).trim().split(/\r?\n/).map(o=>o.trim()).join(` +`)}:null}).filter(n=>n).map((n,d)=>n?`${d+1} +${n.start} --> ${n.end} +${n.text}`:"").filter(n=>n.trim()).join(` + +`)}`}S.defineInteropFlag(x),S.export(x,"srtToVtt",()=>h),S.export(x,"vttToBlob",()=>m),S.export(x,"assToVtt",()=>M)},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"96gQe":[function(O,C,x){var S=O("@parcel/transformer-js/src/esmodule-helpers.js");function h(M){return M.includes("?")?h(M.split("?")[0]):M.includes("#")?h(M.split("#")[0]):M.trim().toLowerCase().split(".").pop()}function m(M,T){const p=document.createElement("a");p.style.display="none",p.href=M,p.download=T,document.body.appendChild(p),p.click(),document.body.removeChild(p)}S.defineInteropFlag(x),S.export(x,"getExt",()=>h),S.export(x,"download",()=>m)},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],lMM6V:[function(O,C,x){var S=O("@parcel/transformer-js/src/esmodule-helpers.js");S.defineInteropFlag(x),S.export(x,"def",()=>h),S.export(x,"has",()=>M),S.export(x,"get",()=>T),S.export(x,"mergeDeep",()=>p);const h=Object.defineProperty,{hasOwnProperty:m}=Object.prototype;function M(f,n){return m.call(f,n)}function T(f,n){return Object.getOwnPropertyDescriptor(f,n)}function p(...f){const n=d=>d&&typeof d=="object"&&!Array.isArray(d);return f.reduce((d,o)=>(Object.keys(o).forEach(v=>{const c=d[v],u=o[v];Array.isArray(c)&&Array.isArray(u)?d[v]=c.concat(...u):!n(c)||!n(u)||u instanceof Element?d[v]=u:d[v]=p(c,u)}),d),{})}},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"41yFW":[function(O,C,x){var S=O("@parcel/transformer-js/src/esmodule-helpers.js");function h(T=0){return new Promise(p=>setTimeout(p,T))}function m(T,p,f){let n;function d(...o){clearTimeout(n),n=setTimeout(function(){n=null,T.apply(f,o)},p)}return d.clearTimeout=function(){clearTimeout(n)},d}function M(T,p){let f,n,d=!1;return function o(...v){if(d)return f=v,void(n=this);d=!0,T.apply(this,v),setTimeout(()=>{d=!1,f&&(o.apply(n,f),f=null,n=null)},p)}}S.defineInteropFlag(x),S.export(x,"sleep",()=>h),S.export(x,"debounce",()=>m),S.export(x,"throttle",()=>M)},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],MRJhs:[function(O,C,x){var S=O("@parcel/transformer-js/src/esmodule-helpers.js");function h(T,p,f){return Math.max(Math.min(T,Math.max(p,f)),Math.min(p,f))}function m(T){const p=Math.floor(T/3600),f=Math.floor((T-3600*p)/60),n=Math.floor(T-3600*p-60*f);return(p>0?[p,f,n]:[f,n]).map(d=>d<10?`0${d}`:String(d)).join(":")}function M(T){return T.replace(/[&<>'"]/g,p=>({"&":"&","<":"<",">":">","'":"'",'"':"""})[p]||p)}S.defineInteropFlag(x),S.export(x,"clamp",()=>h),S.export(x,"secondToTime",()=>m),S.export(x,"escape",()=>M)},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"3vPoh":[function(O,C,x){var S=O("@parcel/transformer-js/src/esmodule-helpers.js");S.defineInteropFlag(x),S.export(x,"ComponentOption",()=>o);var h=O("../utils");const m="array",M="boolean",T="string",p="number",f="object",n="function";function d(v,c,u){return(0,h.errorHandle)(c===T||c===p||v instanceof Element,`${u.join(".")} require '${T}' or 'Element' type`)}const o={html:d,disable:`?${M}`,name:`?${T}`,index:`?${p}`,style:`?${f}`,click:`?${n}`,mounted:`?${n}`,tooltip:`?${T}|${p}`,width:`?${p}`,selector:`?${m}`,onSelect:`?${n}`,switch:`?${M}`,onSwitch:`?${n}`,range:`?${m}`,onRange:`?${n}`};x.default={container:d,url:T,poster:T,title:T,type:T,theme:T,lang:T,volume:p,isLive:M,muted:M,autoplay:M,autoSize:M,autoMini:M,loop:M,flip:M,playbackRate:M,aspectRatio:M,screenshot:M,setting:M,hotkey:M,pip:M,mutex:M,backdrop:M,fullscreen:M,fullscreenWeb:M,subtitleOffset:M,miniProgressBar:M,useSSR:M,playsInline:M,lock:M,fastForward:M,autoPlayback:M,autoOrientation:M,plugins:[n],whitelist:[`${T}|${n}|regexp`],layers:[o],contextmenu:[o],settings:[o],controls:[{...o,position:(v,c,u)=>{const r=["top","left","right"];return(0,h.errorHandle)(r.includes(v),`${u.join(".")} only accept ${r.toString()} as parameters`)}}],quality:[{default:`?${M}`,html:T,url:T}],highlight:[{time:p,text:T}],thumbnails:{url:T,number:p,column:p},subtitle:{url:T,type:T,style:f,encoding:T},moreVideoAttr:f,icons:f,customType:f}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],eksZR:[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x),x.default={propertys:["audioTracks","autoplay","buffered","controller","controls","crossOrigin","currentSrc","currentTime","defaultMuted","defaultPlaybackRate","duration","ended","error","loop","mediaGroup","muted","networkState","paused","playbackRate","played","preload","readyState","seekable","seeking","src","startDate","textTracks","videoTracks","volume"],methods:["addTextTrack","canPlayType","load","play","pause"],events:["abort","canplay","canplaythrough","durationchange","emptied","ended","error","loadeddata","loadedmetadata","loadstart","pause","play","playing","progress","ratechange","seeked","seeking","stalled","suspend","timeupdate","volumechange","waiting"],prototypes:["width","height","videoWidth","videoHeight","poster","webkitDecodedFrameCount","webkitDroppedFrameCount","playsInline","webkitSupportsFullscreen","webkitDisplayingFullscreen","onenterpictureinpicture","onleavepictureinpicture","disablePictureInPicture","cancelVideoFrameCallback","requestVideoFrameCallback","getVideoPlaybackQuality","requestPictureInPicture","webkitEnterFullScreen","webkitEnterFullscreen","webkitExitFullScreen","webkitExitFullscreen"]}},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],fCKwj:[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("./utils");x.default=class{constructor(h){this.art=h}get state(){const{option:h,constructor:{kindOf:m}}=this.art;return!S.isMobile||h.whitelist.some(M=>{switch(m(M)){case"string":return M==="*"||S.userAgent.indexOf(M)>-1;case"function":return M(S.userAgent);case"regexp":return M.test(S.userAgent);default:return!1}})}}},{"./utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],bqHdK:[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("./utils");class h{constructor(M){this.art=M;const{option:T,constructor:p,whitelist:f}=M;T.container instanceof Element?this.$container=T.container:(this.$container=(0,S.query)(T.container),(0,S.errorHandle)(this.$container,`No container element found by ${T.container}`));const n=this.$container.tagName.toLowerCase();(0,S.errorHandle)(n==="div",`Unsupported container element type, only support 'div' but got '${n}'`),(0,S.errorHandle)(p.instances.every(d=>d.template.$container!==this.$container),"Cannot mount multiple instances on the same dom element"),this.query=this.query.bind(this),this.$container.dataset.artId=M.id,this.$original=this.$container.cloneNode(!0),f.state?this.desktop():this.mobile()}static get html(){return'
    Player version:
    4.5.2
    Video url:
    Video volume:
    Video time:
    Video duration:
    Video resolution:
    x
    [x]
    \xD7
    '}query(M){return(0,S.query)(M,this.$container)}desktop(){const{option:M}=this.art;M.useSSR||(this.$container.innerHTML=h.html),this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video"),this.$poster=this.query(".art-poster"),this.$subtitle=this.query(".art-subtitle"),this.$danmuku=this.query(".art-danmuku"),this.$bottom=this.query(".art-bottom"),this.$progress=this.query(".art-progress"),this.$controls=this.query(".art-controls"),this.$controlsLeft=this.query(".art-controls-left"),this.$controlsCenter=this.query(".art-controls-center"),this.$controlsRight=this.query(".art-controls-right"),this.$layer=this.query(".art-layers"),this.$loading=this.query(".art-loading"),this.$notice=this.query(".art-notice"),this.$noticeInner=this.query(".art-notice-inner"),this.$mask=this.query(".art-mask"),this.$state=this.query(".art-state"),this.$setting=this.query(".art-settings"),this.$info=this.query(".art-info"),this.$infoPanel=this.query(".art-info-panel"),this.$infoClose=this.query(".art-info-close"),this.$miniHeader=this.query(".art-mini-header"),this.$miniTitle=this.query(".art-mini-title"),this.$miniClose=this.query(".art-mini-close"),this.$contextmenu=this.query(".art-contextmenus"),M.backdrop&&((0,S.addClass)(this.$setting,"art-backdrop-filter"),(0,S.addClass)(this.$contextmenu,"art-backdrop-filter"),(0,S.addClass)(this.$info,"art-backdrop-filter")),S.isMobile&&(0,S.addClass)(this.$player,"art-mobile")}mobile(){this.$container.innerHTML='
    ',this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video")}destroy(M){M?(0,S.replaceElement)(this.$original,this.$container):(0,S.addClass)(this.$player,"art-destroy")}}x.default=h},{"./utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"4O9ZY":[function(O,C,x){var S=O("@parcel/transformer-js/src/esmodule-helpers.js");S.defineInteropFlag(x);var h=O("../utils"),m=O("./zh-cn.json"),M=S.interopDefault(m),T=O("./zh-tw.json"),p=S.interopDefault(T),f=O("./pl.json"),n=S.interopDefault(f),d=O("./cs.json"),o=S.interopDefault(d);x.default=class{constructor(v){this.art=v,this.languages={"zh-cn":M.default,"zh-tw":p.default,pl:n.default,cs:o.default},this.init()}init(){const v=this.art.option.lang.toLowerCase();this.language=this.languages[v]||{}}get(v){return this.language[v]||v}update(v){this.languages=(0,h.mergeDeep)(this.languages,v),this.init()}}},{"../utils":"geSvU","./zh-cn.json":"e7BQ4","./zh-tw.json":"5kFyN","./pl.json":"3cd1e","./cs.json":"an7cR","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],e7BQ4:[function(O,C,x){C.exports=JSON.parse('{"Video Info":"\u7EDF\u8BA1\u4FE1\u606F","Close":"\u5173\u95ED","Video Load Failed":"\u52A0\u8F7D\u5931\u8D25","Volume":"\u97F3\u91CF","Play":"\u64AD\u653E","Pause":"\u6682\u505C","Rate":"\u901F\u5EA6","Mute":"\u9759\u97F3","Video Flip":"\u753B\u9762\u7FFB\u8F6C","Horizontal":"\u6C34\u5E73","Vertical":"\u5782\u76F4","Reconnect":"\u91CD\u65B0\u8FDE\u63A5","Show Setting":"\u663E\u793A\u8BBE\u7F6E","Hide Setting":"\u9690\u85CF\u8BBE\u7F6E","Screenshot":"\u622A\u56FE","Play Speed":"\u64AD\u653E\u901F\u5EA6","Aspect Ratio":"\u753B\u9762\u6BD4\u4F8B","Default":"\u9ED8\u8BA4","Normal":"\u6B63\u5E38","Open":"\u6253\u5F00","Switch Video":"\u5207\u6362","Switch Subtitle":"\u5207\u6362\u5B57\u5E55","Fullscreen":"\u5168\u5C4F","Exit Fullscreen":"\u9000\u51FA\u5168\u5C4F","Web Fullscreen":"\u7F51\u9875\u5168\u5C4F","Exit Web Fullscreen":"\u9000\u51FA\u7F51\u9875\u5168\u5C4F","Mini Player":"\u8FF7\u4F60\u64AD\u653E\u5668","PIP Mode":"\u5F00\u542F\u753B\u4E2D\u753B","Exit PIP Mode":"\u9000\u51FA\u753B\u4E2D\u753B","PIP Not Supported":"\u4E0D\u652F\u6301\u753B\u4E2D\u753B","Fullscreen Not Supported":"\u4E0D\u652F\u6301\u5168\u5C4F","Subtitle Offset":"\u5B57\u5E55\u504F\u79FB","Last Seen":"\u4E0A\u6B21\u770B\u5230","Jump Play":"\u8DF3\u8F6C\u64AD\u653E"}')},{}],"5kFyN":[function(O,C,x){C.exports=JSON.parse('{"Video Info":"\u7D71\u8A08\u8A0A\u606F","Close":"\u95DC\u9589","Video Load Failed":"\u8F09\u5165\u5931\u6557","Volume":"\u97F3\u91CF","Play":"\u64AD\u653E","Pause":"\u66AB\u505C","Rate":"\u901F\u5EA6","Mute":"\u975C\u97F3","Video Flip":"\u756B\u9762\u7FFB\u8F49","Horizontal":"\u6C34\u5E73","Vertical":"\u5782\u76F4","Reconnect":"\u91CD\u65B0\u9023\u63A5","Show Setting":"\u986F\u793A\u8BBE\u7F6E","Hide Setting":"\u96B1\u85CF\u8BBE\u7F6E","Screenshot":"\u622A\u5716","Play Speed":"\u64AD\u653E\u901F\u5EA6","Aspect Ratio":"\u756B\u9762\u6BD4\u4F8B","Default":"\u9ED8\u8A8D","Normal":"\u6B63\u5E38","Open":"\u6253\u958B","Switch Video":"\u5207\u63DB","Switch Subtitle":"\u5207\u63DB\u5B57\u5E55","Fullscreen":"\u5168\u5C4F","Exit Fullscreen":"\u9000\u51FA\u5168\u5C4F","Web Fullscreen":"\u7DB2\u9801\u5168\u5C4F","Exit Web Fullscreen":"\u9000\u51FA\u7DB2\u9801\u5168\u5C4F","Mini Player":"\u8FF7\u4F60\u64AD\u653E\u5668","PIP Mode":"\u958B\u555F\u756B\u4E2D\u756B","Exit PIP Mode":"\u9000\u51FA\u756B\u4E2D\u756B","PIP Not Supported":"\u4E0D\u652F\u6301\u756B\u4E2D\u756B","Fullscreen Not Supported":"\u4E0D\u652F\u6301\u5168\u5C4F","Subtitle Offset":"\u5B57\u5E55\u504F\u79FB","Last Seen":"\u4E0A\u6B21\u770B\u5230","Jump Play":"\u8DF3\u8F49\u64AD\u653E"}')},{}],"3cd1e":[function(O,C,x){C.exports=JSON.parse('{"Video Info":"Informacje o wideo","Close":"Zamknij","Video Load Failed":"B\u0142\u0105d \u0142adowania wideo","Volume":"G\u0142o\u015Bno\u015B\u0107","Play":"Odtw\xF3rz","Pause":"Wstrzymaj","Rate":"Oce\u0144","Mute":"Wycisz","Video Flip":"Rotacja wideo","Horizontal":"Pozioma","Vertical":"Pionowa","Reconnect":"Po\u0142\u0105cz ponownie","Show Setting":"Poka\u017C ustawienia","Hide Setting":"Ukryj ustawienia","Screenshot":"Zrzut ekranu","Play Speed":"Pr\u0119dko\u015B\u0107 odtwarzania","Aspect Ratio":"Wsp\xF3\u0142czynnik proporcji","Default":"Domy\u015Blny","Normal":"Normalny","Open":"Otw\xF3rz","Switch Video":"Prze\u0142\u0105cz wideo","Switch Subtitle":"Prze\u0142\u0105cz napisy","Fullscreen":"Pe\u0142ny ekran","Exit Fullscreen":"Zamknij pe\u0142ny ekran","Web Fullscreen":"Tryb pe\u0142nej strony","Exit Web Fullscreen":"Zamknij tryb pe\u0142nej strony","Mini Player":"Miniodtwarzacz","PIP Mode":"Tryb PiP","Exit PIP Mode":"Zamknij tryb PiP","PIP Not Supported":"Tryb PiP nieobs\u0142ugiwany","Fullscreen Not Supported":"Pe\u0142ny ekran nieobs\u0142ugiwany","Subtitle Offset":"Przesuni\u0119cie napis\xF3w","Last Seen":"Ostatnio widziany","Jump Play":"Skocz do gry"}')},{}],an7cR:[function(O,C,x){C.exports=JSON.parse('{"Video Info":"Info o videu","Close":"Zav\u0159\xEDt","Video Load Failed":"Nahr\xE1n\xED videa selhalo","Volume":"Hlasitost","Play":"P\u0159ehr\xE1t","Pause":"Pozastavit","Rate":"Hodnocen\xED","Mute":"Ztlumit","Video Flip":"Oto\u010Dit video","Horizontal":"Horizont\xE1ln\u011B","Vertical":"Vertik\xE1ln\u011B","Reconnect":"Op\u011Btovn\xE9 p\u0159ipojen\xED","Show Setting":"Zobrazit nastaven\xED","Hide Setting":"Skr\xFDt nastaven\xED","Screenshot":"Sn\xEDmek obrazovky","Play Speed":"Rychlost p\u0159ehr\xE1v\xE1n\xED","Aspect Ratio":"Pom\u011Br stran","Default":"V\xFDchoz\xED","Normal":"Norm\xE1ln\xED","Open":"Otev\u0159\xEDt","Switch Video":"P\u0159epnout video","Switch Subtitle":"P\u0159epnout titulky","Fullscreen":"Cel\xE1 obrazovka","Exit Fullscreen":"Opustit re\u017Eim cel\xE9 obrazovky","Web Fullscreen":"Cel\xE1 str\xE1nka","Exit Web Fullscreen":"Zav\u0159\xEDt re\u017Eim cel\xE9 str\xE1nky","Mini Player":"Mini p\u0159ehr\xE1va\u010D","PIP Mode":"Re\u017Eim PIP","Exit PIP Mode":"Opustit re\u017Eim PIP","PIP Not Supported":"Re\u017Eim PIP nen\xED podporov\xE1n","Fullscreen Not Supported":"Re\u017Eim cel\xE9 obrazovky nen\xED podporov\xE1n","Subtitle Offset":"Posun titulk\u016F","Last Seen":"Naposledy vid\u011Bn","Jump Play":"Hra na skok"}')},{}],fzROd:[function(O,C,x){var S=O("@parcel/transformer-js/src/esmodule-helpers.js");S.defineInteropFlag(x);var h=O("./urlMix"),m=S.interopDefault(h),M=O("./attrMix"),T=S.interopDefault(M),p=O("./playMix"),f=S.interopDefault(p),n=O("./pauseMix"),d=S.interopDefault(n),o=O("./toggleMix"),v=S.interopDefault(o),c=O("./seekMix"),u=S.interopDefault(c),r=O("./volumeMix"),t=S.interopDefault(r),i=O("./currentTimeMix"),e=S.interopDefault(i),s=O("./durationMix"),l=S.interopDefault(s),a=O("./switchMix"),g=S.interopDefault(a),A=O("./playbackRateMix"),D=S.interopDefault(A),y=O("./aspectRatioMix"),E=S.interopDefault(y),_=O("./screenshotMix"),L=S.interopDefault(_),I=O("./fullscreenMix"),b=S.interopDefault(I),R=O("./fullscreenWebMix"),P=S.interopDefault(R),w=O("./pipMix"),F=S.interopDefault(w),k=O("./loadedMix"),B=S.interopDefault(k),U=O("./playedMix"),j=S.interopDefault(U),K=O("./playingMix"),N=S.interopDefault(K),Z=O("./autoSizeMix"),X=S.interopDefault(Z),Y=O("./rectMix"),ee=S.interopDefault(Y),Q=O("./flipMix"),G=S.interopDefault(Q),q=O("./miniMix"),te=S.interopDefault(q),ie=O("./loopMix"),ne=S.interopDefault(ie),le=O("./posterMix"),se=S.interopDefault(le),oe=O("./autoHeightMix"),J=S.interopDefault(oe),ae=O("./themeMix"),fe=S.interopDefault(ae),de=O("./titleMix"),ve=S.interopDefault(de),ue=O("./normalSizeMix"),_e=S.interopDefault(ue),he=O("./subtitleOffsetMix"),ye=S.interopDefault(he),W=O("./optionInit"),z=S.interopDefault(W),V=O("./eventInit"),$=S.interopDefault(V);x.default=class{constructor(H){(0,m.default)(H),(0,T.default)(H),(0,f.default)(H),(0,d.default)(H),(0,v.default)(H),(0,u.default)(H),(0,t.default)(H),(0,e.default)(H),(0,l.default)(H),(0,g.default)(H),(0,D.default)(H),(0,E.default)(H),(0,L.default)(H),(0,b.default)(H),(0,P.default)(H),(0,F.default)(H),(0,B.default)(H),(0,j.default)(H),(0,N.default)(H),(0,X.default)(H),(0,ee.default)(H),(0,G.default)(H),(0,te.default)(H),(0,ne.default)(H),(0,se.default)(H),(0,J.default)(H),(0,fe.default)(H),(0,ve.default)(H),(0,_e.default)(H),(0,ye.default)(H),(0,$.default)(H),(0,z.default)(H)}}},{"./urlMix":"cChak","./attrMix":"e6Qkm","./playMix":"1FNSV","./pauseMix":"aPHUd","./toggleMix":"joISC","./seekMix":"4wG3e","./volumeMix":"42Xo1","./currentTimeMix":"8Z3pM","./durationMix":"hpnJy","./switchMix":"aCsa8","./playbackRateMix":"61TVa","./aspectRatioMix":"8BV9k","./screenshotMix":"bop8O","./fullscreenMix":"i63VK","./fullscreenWebMix":"bEKHA","./pipMix":"ibIuh","./loadedMix":"kwpxq","./playedMix":"e4Iws","./playingMix":"fueZP","./autoSizeMix":"l6TMg","./rectMix":"6URTt","./flipMix":"joth7","./miniMix":"durkk","./loopMix":"5EZwI","./posterMix":"22WMt","./autoHeightMix":"8pdNr","./themeMix":"eADqm","./titleMix":"8T9U6","./normalSizeMix":"iEQHG","./subtitleOffsetMix":"8CMLG","./optionInit":"aqLU7","./eventInit":"59ETf","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],cChak:[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){const{option:m,template:{$video:M}}=h;(0,S.def)(h,"url",{get:()=>M.currentSrc,async set(T){const p=m.type||(0,S.getExt)(T),f=m.customType[p];p&&f?(await(0,S.sleep)(),h.loading.show=!0,f.call(h,M,T,h)):(h.url&&h.url!==T&&h.once("video:canplay",()=>{h.isReady&&h.emit("restart")}),M.src=T,h.option.url=T,h.emit("url",T))}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],e6Qkm:[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){const{template:{$video:m}}=h;(0,S.def)(h,"attr",{value(M,T){if(T===void 0)return m[M];m[M]=T}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"1FNSV":[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){const{i18n:m,notice:M,option:T,constructor:{instances:p},template:{$video:f}}=h;(0,S.def)(h,"play",{value(){const n=f.play();if(n&&n.then&&n.then().catch(d=>{throw M.show=d,d}),T.mutex)for(let d=0;dh.playing?h.pause():h.play()})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"4wG3e":[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){const{notice:m}=h;(0,S.def)(h,"seek",{set(M){h.currentTime=M,h.emit("seek",h.currentTime),h.duration&&(m.show=`${(0,S.secondToTime)(h.currentTime)} / ${(0,S.secondToTime)(h.duration)}`)}}),(0,S.def)(h,"forward",{set(M){h.seek=h.currentTime+M}}),(0,S.def)(h,"backward",{set(M){h.seek=h.currentTime-M}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"42Xo1":[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){const{template:{$video:m},i18n:M,notice:T,storage:p}=h;(0,S.def)(h,"volume",{get:()=>m.volume||0,set:f=>{m.volume=(0,S.clamp)(f,0,1),T.show=`${M.get("Volume")}: ${parseInt(100*m.volume,10)}`,m.volume!==0&&p.set("volume",m.volume),h.emit("volume",m.volume)}}),(0,S.def)(h,"muted",{get:()=>m.muted,set:f=>{m.muted=f,h.emit("volume",m.volume)}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"8Z3pM":[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){const{$video:m}=h.template;(0,S.def)(h,"currentTime",{get:()=>m.currentTime||0,set:M=>{M=parseFloat(M),Number.isNaN(M)||(m.currentTime=(0,S.clamp)(M,0,h.duration))}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],hpnJy:[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){(0,S.def)(h,"duration",{get:()=>{const{duration:m}=h.template.$video;return m===1/0?0:m||0}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],aCsa8:[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){const{i18n:m,option:M,notice:T}=h;function p(f,n,d){return new Promise(o=>{if(f===h.url)return o(f);const{playing:v}=h;h.pause(),URL.revokeObjectURL(h.url),h.url=f,h.once("video:canplay",()=>{h.playbackRate=!1,h.aspectRatio=!1,h.flip="normal",h.autoSize=M.autoSize,h.currentTime=d,h.notice.show="",v&&h.play(),n&&(T.show=`${m.get("Switch Video")}: ${n}`),h.emit("switch",f),o(f)})})}(0,S.def)(h,"switchQuality",{value:(f,n)=>p(f,n,h.currentTime)}),(0,S.def)(h,"switchUrl",{value:(f,n)=>p(f,n,0)})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"61TVa":[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){const{template:{$video:m},i18n:M,notice:T}=h;(0,S.def)(h,"playbackRate",{get:()=>m.playbackRate,set(p){if(p){if(p===m.playbackRate)return;const f=[.25,.5,.75,1,1.25,1.5,1.75,2,3,4];(0,S.errorHandle)(f.includes(p),`'playbackRate' only accept ${f.toString()} as parameters`),m.playbackRate=p,T.show=`${M.get("Rate")}: ${p===1?M.get("Normal"):`${p}x`}`,h.emit("playbackRate",p)}else h.playbackRate=1,h.emit("playbackRate")}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"8BV9k":[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){const{template:{$video:m,$player:M},i18n:T,notice:p}=h;(0,S.def)(h,"aspectRatio",{get:()=>M.dataset.aspectRatio||"default",set(f){f||(f="default");const n=["default","4:3","16:9"];if((0,S.errorHandle)(n.includes(f),`'aspectRatio' only accept ${n.toString()} as parameters`),f==="default")(0,S.setStyle)(m,"width",null),(0,S.setStyle)(m,"height",null),(0,S.setStyle)(m,"padding",null),delete M.dataset.aspectRatio;else{const d=f.split(":").map(Number),{videoWidth:o,videoHeight:v}=m,{clientWidth:c,clientHeight:u}=M,r=o/v,t=d[0]/d[1];if(r>t){const i=t*v/o;(0,S.setStyle)(m,"width",100*i+"%"),(0,S.setStyle)(m,"height","100%"),(0,S.setStyle)(m,"padding",`0 ${(c-c*i)/2}px`)}else{const i=o/t/v;(0,S.setStyle)(m,"width","100%"),(0,S.setStyle)(m,"height",100*i+"%"),(0,S.setStyle)(m,"padding",(u-u*i)/2+"px 0")}M.dataset.aspectRatio=f}p.show=`${T.get("Aspect Ratio")}: ${f==="default"?T.get("Default"):f}`,h.emit("aspectRatio",f)}}),(0,S.def)(h,"aspectRatioReset",{set(f){if(f){const{aspectRatio:n}=h;h.aspectRatio=n}}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],bop8O:[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){const{option:m,notice:M,template:{$video:T}}=h,p=document.createElement("canvas");(0,S.def)(h,"getDataURL",{value:()=>new Promise((f,n)=>{try{p.width=T.videoWidth,p.height=T.videoHeight,p.getContext("2d").drawImage(T,0,0),f(p.toDataURL("image/png"))}catch(d){M.show=d,n(d)}})}),(0,S.def)(h,"getBlobUrl",{value:()=>new Promise((f,n)=>{try{p.width=T.videoWidth,p.height=T.videoHeight,p.getContext("2d").drawImage(T,0,0),p.toBlob(d=>{f(URL.createObjectURL(d))})}catch(d){M.show=d,n(d)}})}),(0,S.def)(h,"screenshot",{value:async()=>{const f=await h.getDataURL();return(0,S.download)(f,`${m.title||"artplayer"}_${(0,S.secondToTime)(T.currentTime)}.png`),h.emit("screenshot",f),f}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],i63VK:[function(O,C,x){var S=O("@parcel/transformer-js/src/esmodule-helpers.js");S.defineInteropFlag(x);var h=O("../libs/screenfull"),m=S.interopDefault(h),M=O("../utils");x.default=function(T){const{i18n:p,notice:f,template:{$video:n,$player:d}}=T,o=(0,m.default)();T.once("video:loadedmetadata",()=>{var v;o.isEnabled?(v=T,o.on("change",()=>v.emit("fullscreen",o.isFullscreen)),(0,M.def)(v,"fullscreen",{get:()=>o.isFullscreen,async set(c){c?(v.normalSize="fullscreen",v.aspectRatioReset=!0,v.autoSize=!1,await o.request(d),(0,M.addClass)(d,"art-fullscreen"),v.emit("resize"),v.emit("fullscreen",!0),f.show=""):(v.aspectRatioReset=!0,v.autoSize=v.option.autoSize,await o.exit(),(0,M.removeClass)(d,"art-fullscreen"),v.emit("resize"),v.emit("fullscreen"),f.show="")}})):document.fullscreenEnabled||n.webkitSupportsFullscreen?(c=>{(0,M.def)(c,"fullscreen",{get:()=>n.webkitDisplayingFullscreen,set(u){u?(c.normalSize="fullscreen",n.webkitEnterFullscreen(),c.emit("fullscreen",!0),f.show=""):(n.webkitExitFullscreen(),c.emit("fullscreen"),f.show="")}})})(T):(0,M.def)(T,"fullscreen",{get:()=>!1,set(){f.show=p.get("Fullscreen Not Supported")}}),(0,M.def)(T,"fullscreen",(0,M.get)(T,"fullscreen"))})}},{"../libs/screenfull":"aPwar","../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],aPwar:[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x),x.default=function(){const S=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],h=(()=>{const T=S[0],p={};for(const f of S)if(f[1]in document){for(const[n,d]of f.entries())p[T[n]]=d;return p}return!1})(),m={change:h.fullscreenchange,error:h.fullscreenerror};let M={request:(T=document.documentElement,p)=>new Promise((f,n)=>{const d=()=>{M.off("change",d),f()};M.on("change",d);const o=T[h.requestFullscreen](p);o instanceof Promise&&o.then(d).catch(n)}),exit:()=>new Promise((T,p)=>{if(!M.isFullscreen)return void T();const f=()=>{M.off("change",f),T()};M.on("change",f);const n=document[h.exitFullscreen]();n instanceof Promise&&n.then(f).catch(p)}),toggle:(T,p)=>M.isFullscreen?M.exit():M.request(T,p),onchange(T){M.on("change",T)},onerror(T){M.on("error",T)},on(T,p){const f=m[T];f&&document.addEventListener(f,p,!1)},off(T,p){const f=m[T];f&&document.removeEventListener(f,p,!1)},raw:h};return Object.defineProperties(M,{isFullscreen:{get:()=>Boolean(document[h.fullscreenElement])},element:{enumerable:!0,get:()=>document[h.fullscreenElement]},isEnabled:{enumerable:!0,get:()=>Boolean(document[h.fullscreenEnabled])}}),h||(M={isEnabled:!1}),M}},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],bEKHA:[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){const{notice:m,template:{$player:M}}=h;(0,S.def)(h,"fullscreenWeb",{get:()=>(0,S.hasClass)(M,"art-fullscreen-web"),set(T){T?(h.normalSize="fullscreenWeb",(0,S.addClass)(M,"art-fullscreen-web"),h.aspectRatioReset=!0,h.autoSize=!1,h.emit("resize"),h.emit("fullscreenWeb",!0),m.show=""):((0,S.removeClass)(M,"art-fullscreen-web"),h.aspectRatioReset=!0,h.autoSize=h.option.autoSize,h.emit("resize"),h.emit("fullscreenWeb"),m.show="")}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],ibIuh:[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){const{i18n:m,notice:M,template:{$video:T}}=h;document.pictureInPictureEnabled?function(p){const{template:{$video:f},events:{proxy:n},notice:d}=p;f.disablePictureInPicture=!1,(0,S.def)(p,"pip",{get:()=>document.pictureInPictureElement,set(o){o?(p.normalSize="pip",f.requestPictureInPicture().catch(v=>{throw d.show=v,v})):document.exitPictureInPicture().catch(v=>{throw d.show=v,v})}}),n(f,"enterpictureinpicture",()=>{p.emit("pip",!0)}),n(f,"leavepictureinpicture",()=>{p.emit("pip")})}(h):T.webkitSupportsPresentationMode?function(p){const{$video:f}=p.template;f.webkitSetPresentationMode("inline"),(0,S.def)(p,"pip",{get:()=>f.webkitPresentationMode==="picture-in-picture",set(n){n?(p.normalSize="pip",f.webkitSetPresentationMode("picture-in-picture"),p.emit("pip",!0)):(f.webkitSetPresentationMode("inline"),p.emit("pip"))}})}(h):(0,S.def)(h,"pip",{get:()=>!1,set(){M.show=m.get("PIP Not Supported")}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],kwpxq:[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){const{$video:m}=h.template;(0,S.def)(h,"loaded",{get:()=>h.loadedTime/m.duration}),(0,S.def)(h,"loadedTime",{get:()=>m.buffered.length?m.buffered.end(m.buffered.length-1):0})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],e4Iws:[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){(0,S.def)(h,"played",{get:()=>h.currentTime/h.duration})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],fueZP:[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){const{$video:m}=h.template;(0,S.def)(h,"playing",{get:()=>m.currentTime>0&&!m.paused&&!m.ended&&m.readyState>2})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],l6TMg:[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){const{$container:m,$player:M,$video:T}=h.template;(0,S.def)(h,"autoSize",{get:()=>(0,S.hasClass)(m,"art-auto-size"),set(p){if(p){const{videoWidth:f,videoHeight:n}=T,{width:d,height:o}=m.getBoundingClientRect(),v=f/n,c=d/o;if((0,S.addClass)(m,"art-auto-size"),c>v){const u=o*v/d*100;(0,S.setStyle)(M,"width",`${u}%`),(0,S.setStyle)(M,"height","100%")}else{const u=d/v/o*100;(0,S.setStyle)(M,"width","100%"),(0,S.setStyle)(M,"height",`${u}%`)}h.emit("autoSize",{width:h.width,height:h.height})}else(0,S.removeClass)(m,"art-auto-size"),(0,S.setStyle)(M,"width",null),(0,S.setStyle)(M,"height",null),h.emit("autoSize")}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"6URTt":[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){(0,S.def)(h,"rect",{get:()=>h.template.$player.getBoundingClientRect()});const m=["bottom","height","left","right","top","width"];for(let M=0;Mh.rect[T]})}(0,S.def)(h,"x",{get:()=>h.left+window.pageXOffset}),(0,S.def)(h,"y",{get:()=>h.top+window.pageYOffset})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],joth7:[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){const{template:{$player:m},i18n:M,notice:T}=h;(0,S.def)(h,"flip",{get:()=>m.dataset.flip||"normal",set(p){p||(p="normal");const f=["normal","horizontal","vertical"];(0,S.errorHandle)(f.includes(p),`'flip' only accept ${f.toString()} as parameters`),p==="normal"?delete m.dataset.flip:m.dataset.flip=p;const n=p.replace(p[0],p[0].toUpperCase());T.show=`${M.get("Video Flip")}: ${M.get(n)}`,h.emit("flip",p)}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],durkk:[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){const{i18n:m,option:M,storage:T,events:{proxy:p},template:{$player:f,$miniClose:n,$miniTitle:d,$miniHeader:o}}=h;let v=!1,c=0,u=0,r=0,t=0;p(o,"mousedown",i=>{v=!0,c=i.pageX,u=i.pageY,r=h.left,t=h.top}),p(document,"mousemove",i=>{if(v){(0,S.addClass)(f,"art-is-dragging");const e=t+i.pageY-u,s=r+i.pageX-c;(0,S.setStyle)(f,"top",`${e}px`),(0,S.setStyle)(f,"left",`${s}px`),T.set("top",e),T.set("left",s)}}),p(document,"mouseup",()=>{v=!1,(0,S.removeClass)(f,"art-is-dragging")}),p(n,"click",()=>{h.mini=!1,v=!1,(0,S.removeClass)(f,"art-is-dragging")}),(0,S.append)(d,M.title||m.get("Mini Player")),(0,S.def)(h,"mini",{get:()=>(0,S.hasClass)(f,"art-mini"),set(i){if(i){h.normalSize="mini",h.autoSize=!1,(0,S.addClass)(f,"art-mini");const e=T.get("top"),s=T.get("left");if(e&&s)(0,S.setStyle)(f,"top",`${e}px`),(0,S.setStyle)(f,"left",`${s}px`),(0,S.isInViewport)(o)||(T.del("top"),T.del("left"),h.mini=!0);else{const l=window.innerHeight-h.height-50,a=window.innerWidth-h.width-50;T.set("top",l),T.set("left",a),(0,S.setStyle)(f,"top",`${l}px`),(0,S.setStyle)(f,"left",`${a}px`)}h.aspectRatio=!1,h.playbackRate=!1,h.notice.show="",h.emit("mini",!0)}else(0,S.removeClass)(f,"art-mini"),(0,S.setStyle)(f,"top",null),(0,S.setStyle)(f,"left",null),h.aspectRatio=!1,h.playbackRate=!1,h.autoSize=M.autoSize,h.notice.show="",h.emit("mini")}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"5EZwI":[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){let m=[];(0,S.def)(h,"loop",{get:()=>m,set:M=>{if(Array.isArray(M)&&typeof M[0]=="number"&&typeof M[1]=="number"){const T=(0,S.clamp)(M[0],0,Math.min(M[1],h.duration)),p=(0,S.clamp)(M[1],T,h.duration);p-T>=1?(m=[T,p],h.emit("loop",m)):(m=[],h.emit("loop"))}else m=[],h.emit("loop")}}),h.on("video:timeupdate",()=>{m.length&&(h.currentTimem[1])&&(h.seek=m[0])})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"22WMt":[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){const{option:m,template:{$poster:M}}=h;(0,S.def)(h,"poster",{get:()=>m.poster,set(T){m.poster=T,(0,S.setStyle)(M,"backgroundImage",`url(${T})`)}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"8pdNr":[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){const{option:m,template:{$container:M,$video:T}}=h,p=M.style.height;(0,S.def)(h,"autoHeight",{get:()=>(0,S.hasClass)(M,"art-auto-height"),set(f){if(f){const{clientWidth:n}=M,{videoHeight:d,videoWidth:o}=T,v=d*(n/o);(0,S.setStyle)(M,"height",v+"px"),(0,S.addClass)(M,"art-auto-height"),h.autoSize=m.autoSize,h.emit("autoHeight",v)}else(0,S.setStyle)(M,"height",p),(0,S.removeClass)(M,"art-auto-height"),h.autoSize=m.autoSize,h.emit("autoHeight")}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],eADqm:[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){const{option:m,template:{$player:M}}=h;(0,S.def)(h,"theme",{get:()=>getComputedStyle(M).getPropertyValue("--theme"),set(T){m.theme=T,M.style.setProperty("--theme",T)}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"8T9U6":[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){(0,S.def)(h,"title",{get:()=>h.option.title,set(m){h.option.title=m}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],iEQHG:[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){const m=["mini","pip","fullscreen","fullscreenWeb"];(0,S.def)(h,"normalSize",{get:()=>m.every(M=>!h[M]),set(M){m.filter(T=>T!==M).forEach(T=>{h[T]&&(h[T]=!1)})}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"8CMLG":[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){const{clamp:m}=h.constructor.utils,{notice:M,template:T,i18n:p}=h;let f=0,n=[];h.on("subtitle:switch",()=>{n=[]}),(0,S.def)(h,"subtitleOffset",{get:()=>f,set(d){if(T.$track&&T.$track.track){const o=Array.from(T.$track.track.cues);f=m(d,-5,5);for(let v=0;v{h.attr(n,m.moreVideoAttr[n])}),m.muted&&(h.muted=m.muted),m.volume&&(T.volume=(0,S.clamp)(m.volume,0,1));const f=M.get("volume");typeof f=="number"&&(T.volume=(0,S.clamp)(f,0,1)),m.poster&&(0,S.setStyle)(p,"backgroundImage",`url(${m.poster})`),m.autoplay&&(T.autoplay=m.autoplay),m.playsInline&&(T.playsInline=!0,T["webkit-playsinline"]=!0),m.theme&&(h.theme=m.theme),h.url=m.url}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"59ETf":[function(O,C,x){var S=O("@parcel/transformer-js/src/esmodule-helpers.js");S.defineInteropFlag(x);var h=O("../config"),m=S.interopDefault(h),M=O("../utils");x.default=function(T){const{i18n:p,notice:f,option:n,constructor:d,events:{proxy:o},template:{$player:v,$video:c,$poster:u}}=T;let r=0;for(let t=0;t{T.emit(`video:${i.type}`,i)});T.on("video:canplay",()=>{r=0,T.loading.show=!1}),T.once("video:canplay",()=>{T.loading.show=!1,T.controls.show=!0,T.mask.show=!0,T.isReady=!0,T.emit("ready")}),T.on("video:ended",()=>{n.loop?(T.seek=0,T.play(),T.controls.show=!1,T.mask.show=!1):(T.controls.show=!0,T.mask.show=!0)}),T.on("video:error",async()=>{r{T.autoSize=n.autoSize,M.isMobile&&(T.loading.show=!1,T.controls.show=!0,T.mask.show=!0)}),T.on("video:loadstart",()=>{T.loading.show=!0,T.mask.show=!1,T.controls.show=!0}),T.on("video:pause",()=>{T.controls.show=!0,T.mask.show=!0}),T.on("video:play",()=>{T.mask.show=!1,(0,M.setStyle)(u,"display","none")}),T.on("video:playing",()=>{T.mask.show=!1}),T.on("video:seeked",()=>{T.loading.show=!1}),T.on("video:seeking",()=>{T.loading.show=!0,T.mask.show=!1}),T.on("video:timeupdate",()=>{T.mask.show=!1}),T.on("video:waiting",()=>{T.loading.show=!0,T.mask.show=!1})}},{"../config":"eksZR","../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],kJ9J9:[function(O,C,x){var S=O("@parcel/transformer-js/src/esmodule-helpers.js");S.defineInteropFlag(x);var h=O("../utils"),m=O("../utils/component"),M=S.interopDefault(m),T=O("./fullscreen"),p=S.interopDefault(T),f=O("./fullscreenWeb"),n=S.interopDefault(f),d=O("./pip"),o=S.interopDefault(d),v=O("./playAndPause"),c=S.interopDefault(v),u=O("./progress"),r=S.interopDefault(u),t=O("./time"),i=S.interopDefault(t),e=O("./volume"),s=S.interopDefault(e),l=O("./setting"),a=S.interopDefault(l),g=O("./thumbnails"),A=S.interopDefault(g),D=O("./screenshot"),y=S.interopDefault(D),E=O("./quality"),_=S.interopDefault(E),L=O("./loop"),I=S.interopDefault(L);class b extends M.default{constructor(P){super(P),this.name="control";const{constructor:w,events:{proxy:F},template:{$player:k}}=P;let B=Date.now();F(k,["click","mousemove","touchstart","touchmove"],()=>{this.show=!0,(0,h.removeClass)(k,"art-hide-cursor"),(0,h.addClass)(k,"art-hover"),B=Date.now()}),P.on("video:timeupdate",()=>{!P.isInput&&P.playing&&this.show&&Date.now()-B>=w.CONTROL_HIDE_TIME&&(this.show=!1,(0,h.addClass)(k,"art-hide-cursor"),(0,h.removeClass)(k,"art-hover"))}),this.init()}init(){const{option:P}=this.art;this.add((0,r.default)({name:"progress",disable:P.isLive,position:"top",index:10})),this.add((0,A.default)({name:"thumbnails",disable:!P.thumbnails.url||P.isLive||h.isMobile,position:"top",index:20})),this.add((0,I.default)({name:"loop",disable:!1,position:"top",index:30})),this.add((0,c.default)({name:"playAndPause",disable:!1,position:"left",index:10})),this.add((0,s.default)({name:"volume",disable:!1,position:"left",index:20})),this.add((0,i.default)({name:"time",disable:P.isLive,position:"left",index:30})),this.add((0,_.default)({name:"quality",disable:P.quality.length===0,position:"right",index:10})),this.add((0,y.default)({name:"screenshot",disable:!P.screenshot||h.isMobile,position:"right",index:20})),this.add((0,a.default)({name:"setting",disable:!P.setting,position:"right",index:30})),this.add((0,o.default)({name:"pip",disable:!P.pip,position:"right",index:40})),this.add((0,n.default)({name:"fullscreenWeb",disable:!P.fullscreenWeb,position:"right",index:50})),this.add((0,p.default)({name:"fullscreen",disable:!P.fullscreen,position:"right",index:60}));for(let w=0;wNumber(r.dataset.index)>=Number(v.dataset.index));return u?u.insertAdjacentElement("beforebegin",v):(0,h.append)(this.$parent,v),d.html&&(0,h.append)(v,d.html),d.style&&(0,h.setStyles)(v,d.style),d.tooltip&&(0,h.tooltip)(v,d.tooltip),d.click&&this.art.events.proxy(v,"click",r=>{r.preventDefault(),d.click.call(this.art,this,r)}),d.selector&&["left","right"].includes(d.position)&&this.selector(d,v),d.mounted&&d.mounted.call(this.art,v),v.childNodes.length===1&&v.childNodes[0].nodeType===3&&(0,h.addClass)(v,"art-control-onlyText"),(0,p.def)(this,o,{value:v}),v}selector(n,d){const{hover:o,proxy:v}=this.art.events;(0,h.addClass)(d,"art-control-selector");const c=document.createElement("div");(0,h.addClass)(c,"art-selector-value"),(0,h.append)(c,n.html),d.innerText="",(0,h.append)(d,c);const u=n.selector.map((i,e)=>`
    ${i.html}
    `).join(""),r=document.createElement("div");(0,h.addClass)(r,"art-selector-list"),(0,h.append)(r,u),(0,h.append)(d,r);const t=()=>{const i=(0,h.getStyle)(d,"width")/2-(0,h.getStyle)(r,"width")/2;r.style.left=`${i}px`};o(d,t),v(r,"click",async i=>{const e=(i.composedPath()||[]).find(a=>(0,h.hasClass)(a,"art-selector-item"));if(!e)return;(0,h.inverseClass)(e,"art-current");const s=Number(e.dataset.index),l=n.selector[s]||{};if(c.innerText=e.innerText,n.onSelect){const a=await n.onSelect.call(this.art,l,e,i);typeof a!="string"&&typeof a!="number"||(c.innerHTML=a)}t(),this.art.emit("selector",l,e)})}}},{"./dom":"ff6Hs","option-validator":"2A2W5","../scheme":"3vPoh","./property":"lMM6V","./error":"lDQPM","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],awkUw:[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){return m=>({...h,tooltip:m.i18n.get("Fullscreen"),mounted:M=>{const{events:{proxy:T},icons:p,i18n:f}=m,n=(0,S.append)(M,p.fullscreenOn),d=(0,S.append)(M,p.fullscreenOff);(0,S.setStyle)(d,"display","none"),T(M,"click",()=>{m.fullscreen=!m.fullscreen}),m.on("fullscreen",o=>{o?((0,S.tooltip)(M,f.get("Exit Fullscreen")),(0,S.setStyle)(n,"display","none"),(0,S.setStyle)(d,"display","inline-flex")):((0,S.tooltip)(M,f.get("Fullscreen")),(0,S.setStyle)(n,"display","inline-flex"),(0,S.setStyle)(d,"display","none"))})}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"3qoPe":[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){return m=>({...h,tooltip:m.i18n.get("Web Fullscreen"),mounted:M=>{const{events:{proxy:T},icons:p,i18n:f}=m,n=(0,S.append)(M,p.fullscreenWebOn),d=(0,S.append)(M,p.fullscreenWebOff);(0,S.setStyle)(d,"display","none"),T(M,"click",()=>{m.fullscreenWeb=!m.fullscreenWeb}),m.on("fullscreenWeb",o=>{o?((0,S.tooltip)(M,f.get("Exit Web Fullscreen")),(0,S.setStyle)(n,"display","none"),(0,S.setStyle)(d,"display","inline-flex")):((0,S.tooltip)(M,f.get("Web Fullscreen")),(0,S.setStyle)(n,"display","inline-flex"),(0,S.setStyle)(d,"display","none"))})}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],lFHYL:[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){return m=>({...h,tooltip:m.i18n.get("PIP Mode"),mounted:M=>{const{events:{proxy:T},icons:p,i18n:f}=m;(0,S.append)(M,p.pip),T(M,"click",()=>{m.pip=!m.pip}),m.on("pip",n=>{(0,S.tooltip)(M,f.get(n?"Exit PIP Mode":"PIP Mode"))})}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],b8vU1:[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){return m=>({...h,mounted:M=>{const{events:{proxy:T},icons:p,i18n:f}=m,n=(0,S.append)(M,p.play),d=(0,S.append)(M,p.pause);function o(){(0,S.setStyle)(n,"display","flex"),(0,S.setStyle)(d,"display","none")}function v(){(0,S.setStyle)(n,"display","none"),(0,S.setStyle)(d,"display","flex")}(0,S.tooltip)(n,f.get("Play")),(0,S.tooltip)(d,f.get("Pause")),T(n,"click",()=>{m.play()}),T(d,"click",()=>{m.pause()}),m.playing?v():o(),m.on("video:playing",()=>{v()}),m.on("video:pause",()=>{o()})}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],dRwzT:[function(O,C,x){var S=O("@parcel/transformer-js/src/esmodule-helpers.js");S.defineInteropFlag(x),S.export(x,"getPosFromEvent",()=>m);var h=O("../utils");function m(M,T){const{$progress:p}=M.template,{left:f}=p.getBoundingClientRect(),n=T.pageX,d=(0,h.clamp)(n-f,0,p.clientWidth),o=d/p.clientWidth*M.duration;return{second:o,time:(0,h.secondToTime)(o),width:d,percentage:(0,h.clamp)(d/p.clientWidth,0,1)}}x.default=function(M){return T=>{const{icons:p,option:f,events:{proxy:n}}=T;return{...M,html:'
    ',mounted:d=>{let o=!1;const v=(0,h.query)(".art-progress-loaded",d),c=(0,h.query)(".art-progress-played",d),u=(0,h.query)(".art-progress-highlight",d),r=(0,h.query)(".art-progress-indicator",d),t=(0,h.query)(".art-progress-tip",d);(0,h.setStyle)(c,"backgroundColor","var(--theme)");let i=T.constructor.INDICATOR_SIZE;function e(s,l){s==="loaded"&&(0,h.setStyle)(v,"width",100*l+"%"),s==="played"&&((0,h.setStyle)(c,"width",100*l+"%"),(0,h.setStyle)(r,"left",`calc(${100*l}% - ${i/2}px)`))}p.indicator?(i=T.constructor.INDICATOR_SIZE_ICON,(0,h.append)(r,p.indicator)):(0,h.setStyles)(r,{backgroundColor:"var(--theme)"}),h.isMobile&&(i=T.constructor.INDICATOR_SIZE_MOBILE,p.indicator&&(i=T.constructor.INDICATOR_SIZE_MOBILE_ICON)),(0,h.setStyles)(r,{left:`-${i/2}px`,width:`${i}px`,height:`${i}px`}),T.on("video:loadedmetadata",()=>{for(let s=0;s`)}}),e("loaded",T.loaded),T.on("setBar",(s,l)=>{e(s,l)}),T.on("video:progress",()=>{e("loaded",T.loaded)}),T.on("video:timeupdate",()=>{e("played",T.played)}),T.on("video:ended",()=>{e("played",1)}),h.isMobile||(n(d,"click",s=>{if(s.target!==r){const{second:l,percentage:a}=m(T,s);e("played",a),T.seek=l}}),n(d,"mousemove",s=>{(0,h.setStyle)(t,"display","block"),(0,h.includeFromEvent)(s,u)?function(l){const{width:a}=m(T,l),{text:g}=l.target.dataset;t.innerHTML=g;const A=t.clientWidth;a<=A/2?(0,h.setStyle)(t,"left",0):a>d.clientWidth-A/2?(0,h.setStyle)(t,"left",d.clientWidth-A+"px"):(0,h.setStyle)(t,"left",a-A/2+"px")}(s):function(l){const{width:a,time:g}=m(T,l);t.innerHTML=g;const A=t.clientWidth;a<=A/2?(0,h.setStyle)(t,"left",0):a>d.clientWidth-A/2?(0,h.setStyle)(t,"left",d.clientWidth-A+"px"):(0,h.setStyle)(t,"left",a-A/2+"px")}(s)}),n(d,"mouseout",()=>{(0,h.setStyle)(t,"display","none")}),n(r,"mousedown",()=>{o=!0}),n(document,"mousemove",s=>{if(o){const{second:l,percentage:a}=m(T,s);e("played",a),T.seek=l}}),n(document,"mouseup",()=>{o&&(o=!1)}))}}}}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],ltYI1:[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){return m=>({...h,style:{cursor:"auto"},mounted:M=>{function T(){const f=`${(0,S.secondToTime)(m.currentTime)} / ${(0,S.secondToTime)(m.duration)}`;f!==M.innerText&&(M.innerText=f)}T();const p=["video:loadedmetadata","video:timeupdate","video:progress"];for(let f=0;f({...h,mounted:M=>{const{events:{proxy:T},icons:p,i18n:f}=m;let n=!1;const d=m.constructor.VOLUME_PANEL_WIDTH,o=m.constructor.VOLUME_HANDLE_WIDTH,v=(0,S.append)(M,p.volume),c=(0,S.append)(M,p.volumeClose),u=(0,S.append)(M,'
    '),r=(0,S.append)(u,'
    ');function t(e){const{left:s}=u.getBoundingClientRect();return(0,S.clamp)(e.pageX-s-o/2,0,d-o/2)/(d-o)}function i(e=.7){if(m.muted||e===0)(0,S.setStyle)(v,"display","none"),(0,S.setStyle)(c,"display","flex"),(0,S.setStyle)(r,"left","0");else{const s=(d-o)*e;(0,S.setStyle)(v,"display","flex"),(0,S.setStyle)(c,"display","none"),(0,S.setStyle)(r,"left",`${s}px`)}}(0,S.tooltip)(v,f.get("Mute")),(0,S.setStyle)(c,"display","none"),S.isMobile&&(0,S.setStyle)(u,"display","none"),i(m.volume),m.on("video:volumechange",()=>{i(m.volume)}),T(v,"click",()=>{m.muted=!0}),T(c,"click",()=>{m.muted=!1}),T(u,"click",e=>{m.muted=!1,m.volume=t(e)}),T(r,"mousedown",()=>{n=!0}),T(M,"mousemove",e=>{n&&(m.muted=!1,m.volume=t(e))}),T(document,"mouseup",()=>{n&&(n=!1)})}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],lX5UX:[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){return m=>({...h,tooltip:m.i18n.get("Show Setting"),mounted:M=>{const{events:{proxy:T},icons:p,i18n:f}=m;(0,S.append)(M,p.setting),T(M,"click",()=>{m.setting.toggle=!0}),m.on("setting",n=>{(0,S.tooltip)(M,f.get(n?"Hide Setting":"Show Setting"))})}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],lUoGG:[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils"),h=O("./progress");x.default=function(m){return M=>({...m,mounted:T=>{const{option:p,template:{$progress:f,$video:n},events:{proxy:d,loadImg:o}}=M;let v=null,c=!1,u=!1;d(f,"mousemove",async r=>{c||(c=!0,v=await o(p.thumbnails.url),u=!0),u&&((0,S.setStyle)(T,"display","block"),function(t){const{width:i}=(0,h.getPosFromEvent)(M,t),{url:e,number:s,column:l}=p.thumbnails,a=v.naturalWidth/l,g=a/(n.videoWidth/n.videoHeight),A=f.clientWidth/s,D=Math.floor(i/A),y=Math.ceil(D/l)-1,E=D%l||l-1;(0,S.setStyle)(T,"backgroundImage",`url(${e})`),(0,S.setStyle)(T,"height",`${g}px`),(0,S.setStyle)(T,"width",`${a}px`),(0,S.setStyle)(T,"backgroundPosition",`-${E*a}px -${y*g}px`),i<=a/2?(0,S.setStyle)(T,"left",0):i>f.clientWidth-a/2?(0,S.setStyle)(T,"left",f.clientWidth-a+"px"):(0,S.setStyle)(T,"left",i-a/2+"px")}(r))}),d(f,"mouseout",()=>{(0,S.setStyle)(T,"display","none")})}})}},{"../utils":"geSvU","./progress":"dRwzT","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],jvdQ0:[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){return m=>({...h,tooltip:m.i18n.get("Screenshot"),mounted:M=>{const{events:{proxy:T},icons:p}=m;(0,S.append)(M,p.screenshot),T(M,"click",()=>{m.screenshot()})}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],k9pKK:[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x),x.default=function(S){return h=>{const m=h.option.quality,M=m.find(T=>T.default)||m[0];return{...S,html:M?M.html:"",selector:m,onSelect(T){h.switchQuality(T.url,T.html)}}}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],aE690:[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){return m=>({...h,mounted:M=>{const T=(0,S.append)(M,''),p=(0,S.append)(M,'');m.on("loop",f=>{f?((0,S.setStyle)(M,"display","block"),(0,S.setStyle)(T,"left",`calc(${f[0]/m.duration*100}% - ${T.clientWidth}px)`),(0,S.setStyle)(p,"left",f[1]/m.duration*100+"%")):(0,S.setStyle)(M,"display","none")})}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"7rh9q":[function(O,C,x){var S=O("@parcel/transformer-js/src/esmodule-helpers.js");S.defineInteropFlag(x);var h=O("../utils"),m=O("../utils/component"),M=S.interopDefault(m),T=O("./playbackRate"),p=S.interopDefault(T),f=O("./aspectRatio"),n=S.interopDefault(f),d=O("./flip"),o=S.interopDefault(d),v=O("./info"),c=S.interopDefault(v),u=O("./version"),r=S.interopDefault(u),t=O("./close"),i=S.interopDefault(t);class e extends M.default{constructor(l){super(l),this.name="contextmenu",this.$parent=l.template.$contextmenu,h.isMobile||this.init()}init(){const{option:l,template:{$player:a,$contextmenu:g},events:{proxy:A}}=this.art;this.add((0,p.default)({disable:!l.playbackRate,name:"playbackRate",index:10})),this.add((0,n.default)({disable:!l.aspectRatio,name:"aspectRatio",index:20})),this.add((0,o.default)({disable:!l.flip,name:"flip",index:30})),this.add((0,c.default)({disable:!1,name:"info",index:40})),this.add((0,r.default)({disable:!1,name:"version",index:50})),this.add((0,i.default)({disable:!1,name:"close",index:60}));for(let D=0;D{D.preventDefault(),this.show=!0;const y=D.clientX,E=D.clientY,{height:_,width:L,left:I,top:b}=a.getBoundingClientRect(),{height:R,width:P}=g.getBoundingClientRect();let w=y-I,F=E-b;y+P>I+L&&(w=L-P),E+R>b+_&&(F=_-R),(0,h.setStyles)(g,{top:`${F}px`,left:`${w}px`})}),A(a,"click",D=>{(0,h.includeFromEvent)(D,g)||(this.show=!1)}),this.art.on("blur",()=>{this.show=!1})}}x.default=e},{"../utils":"geSvU","../utils/component":"kPHYl","./playbackRate":"9P3rd","./aspectRatio":"3OqVf","./flip":"iMg4Y","./info":"9FFXO","./version":"duhqU","./close":"k3lJQ","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"9P3rd":[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){return m=>{const{i18n:M}=m;return{...h,html:`${M.get("Play Speed")}:0.50.75${M.get("Normal")}1.251.52.0`,click:(T,p)=>{const{value:f}=p.target.dataset;f&&(m.playbackRate=Number(f),T.show=!1)},mounted:T=>{m.on("playbackRate",p=>{const f=(0,S.queryAll)("span",T).find(n=>Number(n.dataset.value)===p);f&&(0,S.inverseClass)(f,"art-current")})}}}}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"3OqVf":[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){return m=>{const{i18n:M}=m;return{...h,html:`${M.get("Aspect Ratio")}:${M.get("Default")}4:316:9`,click:(T,p)=>{const{value:f}=p.target.dataset;f&&(m.aspectRatio=f,T.show=!1)},mounted:T=>{m.on("aspectRatio",p=>{const f=(0,S.queryAll)("span",T).find(n=>n.dataset.value===p);f&&(0,S.inverseClass)(f,"art-current")})}}}}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],iMg4Y:[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){return m=>{const{i18n:M}=m;return{...h,html:`${M.get("Video Flip")}:${M.get("Normal")}${M.get("Horizontal")}${M.get("Vertical")}`,click:(T,p)=>{const{value:f}=p.target.dataset;f&&(m.flip=f,T.show=!1)},mounted:T=>{m.on("flip",p=>{const f=(0,S.queryAll)("span",T).find(n=>n.dataset.value===p);f&&(0,S.inverseClass)(f,"art-current")})}}}}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"9FFXO":[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x),x.default=function(S){return h=>({...S,html:h.i18n.get("Video Info"),click:m=>{h.info.show=!0,m.show=!1}})}},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],duhqU:[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x),x.default=function(S){return{...S,html:'
    ArtPlayer 4.5.2'}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],k3lJQ:[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x),x.default=function(S){return h=>({...S,html:h.i18n.get("Close"),click:m=>{m.show=!1}})}},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],c896w:[function(O,C,x){var S=O("@parcel/transformer-js/src/esmodule-helpers.js");S.defineInteropFlag(x);var h=O("./utils"),m=O("./utils/component"),M=S.interopDefault(m);class T extends M.default{constructor(f){super(f),this.name="info",h.isMobile||this.init()}init(){const{constructor:f,events:{proxy:n},template:{$infoPanel:d,$infoClose:o,$video:v}}=this.art;n(o,"click",()=>{this.show=!1});let c=null;const u=(0,h.queryAll)("[data-video]",d)||[];this.art.on("destroy",()=>{clearTimeout(c)}),function r(){for(let t=0;t`

    ${(0,h.escape)(c)}

    `).join(""),this.art.emit("subtitleUpdate",this.activeCue.text))}async switch(v,c={}){const{i18n:u,notice:r,option:t}=this.art,i={...t.subtitle,...c,url:v},e=await this.init(i);return c.name&&(r.show=`${u.get("Switch Subtitle")}: ${c.name}`),e}init(v){if((0,p.default)(v,n.default.subtitle),!v.url)return;const{notice:c,events:{proxy:u},template:{$subtitle:r,$video:t,$track:i}}=this.art;if(!i){const e=document.createElement("track");e.default=!0,e.kind="metadata",t.appendChild(e),this.art.template.$track=e,u(this.textTrack,"cuechange",this.update.bind(this))}return this.style(v.style),(0,h.errorHandle)(window.fetch,"fetch not support"),fetch(v.url).then(e=>e.arrayBuffer()).then(e=>{(0,h.errorHandle)(window.TextDecoder,"TextDecoder not support");const s=new TextDecoder(v.encoding).decode(e);switch(this.art.emit("subtitleLoad",v.url),v.type||(0,h.getExt)(v.url)){case"srt":return(0,h.vttToBlob)((0,h.srtToVtt)(s));case"ass":return(0,h.vttToBlob)((0,h.assToVtt)(s));case"vtt":return(0,h.vttToBlob)(s);default:return v.url}}).then(e=>(r.innerHTML="",this.url===e||(URL.revokeObjectURL(this.url),this.art.template.$track.src=e,this.art.emit("subtitleSwitch",e)),e)).catch(e=>{throw c.show=e,e})}}x.default=d},{"./utils":"geSvU","./utils/component":"kPHYl","option-validator":"2A2W5","./scheme":"3vPoh","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],j2hlX:[function(O,C,x){var S=O("@parcel/transformer-js/src/esmodule-helpers.js");S.defineInteropFlag(x);var h=O("../utils/error"),m=O("./clickInit"),M=S.interopDefault(m),T=O("./hoverInit"),p=S.interopDefault(T),f=O("./mousemoveInit"),n=S.interopDefault(f),d=O("./resizeInit"),o=S.interopDefault(d),v=O("./gestureInit"),c=S.interopDefault(v),u=O("./viewInit"),r=S.interopDefault(u);x.default=class{constructor(t){this.destroyEvents=[],this.proxy=this.proxy.bind(this),this.hover=this.hover.bind(this),this.loadImg=this.loadImg.bind(this),t.whitelist.state&&((0,M.default)(t,this),(0,p.default)(t,this),(0,n.default)(t,this),(0,o.default)(t,this),(0,c.default)(t,this),(0,r.default)(t,this))}proxy(t,i,e,s={}){if(Array.isArray(i))return i.map(a=>this.proxy(t,a,e,s));t.addEventListener(i,e,s);const l=()=>t.removeEventListener(i,e,s);return this.destroyEvents.push(l),l}hover(t,i,e){i&&this.proxy(t,"mouseenter",i),e&&this.proxy(t,"mouseleave",e)}loadImg(t){return new Promise((i,e)=>{let s;if(t instanceof HTMLImageElement)s=t;else{if(typeof t!="string")return e(new h.ArtPlayerError("Unable to get Image"));s=new Image,s.src=t}if(s.complete)return i(s);this.proxy(s,"load",()=>i(s)),this.proxy(s,"error",()=>e(new h.ArtPlayerError(`Failed to load Image: ${s.src}`)))})}destroy(){for(let t=0;t{(0,S.includeFromEvent)(n,T)?(h.isInput=n.target.tagName==="INPUT",h.isFocus=!0,h.emit("focus")):(h.isInput=!1,h.isFocus=!1,h.emit("blur"))});let f=0;m.proxy(p,"click",()=>{const n=Date.now();n-f<=M.DB_CLICE_TIME?(h.emit("dblclick"),S.isMobile?h.isLock||h.toggle():h.fullscreen=!h.fullscreen):(h.emit("click"),S.isMobile||h.toggle()),f=n})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],aoIIW:[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h,m){const{$player:M}=h.template;m.hover(M,()=>{(0,S.addClass)(M,"art-hover"),h.emit("hover",!0)},()=>{(0,S.removeClass)(M,"art-hover"),h.emit("hover")})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"4WC5c":[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x),x.default=function(S,h){const{$player:m}=S.template;h.proxy(m,"mousemove",M=>{S.emit("mousemove",M)})}},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"7fpan":[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h,m){const{option:M}=h,T=(0,S.throttle)(()=>{h.normalSize&&(h.autoSize=M.autoSize),h.aspectRatioReset=!0,h.notice.show="",h.emit("resize")},h.constructor.RESIZE_TIME);m.proxy(window,["orientationchange","resize"],()=>{T()}),screen&&screen.orientation&&screen.orientation.onchange&&m.proxy(screen.orientation,"change",()=>{T()})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],ixtiG:[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h,m){if(S.isMobile&&!h.option.isLive){const{$video:M,$bottom:T,$controls:p}=h.template;let f=!1,n=0,d=0,o=0;const v=r=>{if(r.touches.length===1&&!h.isLock){f=!0;const{clientX:t,clientY:i}=r.touches[0];n=t,d=i,o=h.currentTime}},c=r=>{if(r.touches.length===1&&f&&h.duration){const t=h.plugins.autoOrientation&&h.plugins.autoOrientation.state,{clientX:i,clientY:e}=r.touches[0],s=(0,S.clamp)((i-n)/h.width,-1,1),l=(0,S.clamp)((e-d)/h.height,-1,1),a=t?l:s,g=(0,S.clamp)(o+h.duration*a/2,0,h.duration);h.seek=g,h.emit("setBar","played",(0,S.clamp)(g/h.duration,0,1)),h.notice.show=`${(0,S.secondToTime)(g)} / ${(0,S.secondToTime)(h.duration)}`}},u=()=>{f&&(n=0,d=0,o=0,f=!1)};m.proxy(T,"touchstart",r=>{(0,S.includeFromEvent)(r,p)||v(r)}),m.proxy(T,"touchmove",c),m.proxy(M,"touchstart",v),m.proxy(M,"touchmove",c),m.proxy(document,"touchend",u)}}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"5WvmH":[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h,m){const{option:M,constructor:T,template:{$container:p}}=h,f=(0,S.throttle)(()=>{h.emit("view",(0,S.isInViewport)(p,T.SCROLL_GAP))},T.SCROLL_TIME);m.proxy(window,"scroll",()=>{f()}),h.on("view",n=>{M.autoMini&&(h.mini=!n)})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],aTHWZ:[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("./utils");x.default=class{constructor(h){this.art=h,this.keys={},h.option.hotkey&&!S.isMobile&&this.init()}init(){const{proxy:h}=this.art.events;this.add(27,()=>{this.art.fullscreenWeb&&(this.art.fullscreenWeb=!1)}),this.add(32,()=>{this.art.toggle()}),this.add(37,()=>{this.art.backward=5}),this.add(38,()=>{this.art.volume+=.1}),this.add(39,()=>{this.art.forward=5}),this.add(40,()=>{this.art.volume-=.1}),h(window,"keydown",m=>{if(this.art.isFocus){const M=document.activeElement.tagName.toUpperCase(),T=document.activeElement.getAttribute("contenteditable");if(M!=="INPUT"&&M!=="TEXTAREA"&&T!==""&&T!=="true"){const p=this.keys[m.keyCode];if(p){m.preventDefault();for(let f=0;f{T.innerText="",(0,S.removeClass)(M,"art-notice-show")},m.NOTICE_TIME)):(0,S.removeClass)(M,"art-notice-show")}}},{"./utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],iLfmB:[function(O,C,x){var S=O("@parcel/transformer-js/src/esmodule-helpers.js");S.defineInteropFlag(x);var h=O("./utils"),m=O("./utils/component"),M=S.interopDefault(m);class T extends M.default{constructor(f){super(f),this.name="mask";const{template:n,icons:d,events:o}=f,v=(0,h.append)(n.$state,d.state),c=(0,h.append)(n.$state,d.error);(0,h.setStyle)(c,"display","none"),f.on("destroy",()=>{(0,h.setStyle)(v,"display","none"),(0,h.setStyle)(c,"display",null)}),o.proxy(n.$state,"click",()=>f.play())}}x.default=T},{"./utils":"geSvU","./utils/component":"kPHYl","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"5lAmI":[function(O,C,x){var S=O("@parcel/transformer-js/src/esmodule-helpers.js");S.defineInteropFlag(x);var h=O("../utils"),m=O("bundle-text:./loading.svg"),M=S.interopDefault(m),T=O("bundle-text:./state.svg"),p=S.interopDefault(T),f=O("bundle-text:./check.svg"),n=S.interopDefault(f),d=O("bundle-text:./play.svg"),o=S.interopDefault(d),v=O("bundle-text:./pause.svg"),c=S.interopDefault(v),u=O("bundle-text:./volume.svg"),r=S.interopDefault(u),t=O("bundle-text:./volume-close.svg"),i=S.interopDefault(t),e=O("bundle-text:./screenshot.svg"),s=S.interopDefault(e),l=O("bundle-text:./setting.svg"),a=S.interopDefault(l),g=O("bundle-text:./arrow-left.svg"),A=S.interopDefault(g),D=O("bundle-text:./arrow-right.svg"),y=S.interopDefault(D),E=O("bundle-text:./playback-rate.svg"),_=S.interopDefault(E),L=O("bundle-text:./aspect-ratio.svg"),I=S.interopDefault(L),b=O("bundle-text:./config.svg"),R=S.interopDefault(b),P=O("bundle-text:./pip.svg"),w=S.interopDefault(P),F=O("bundle-text:./lock.svg"),k=S.interopDefault(F),B=O("bundle-text:./unlock.svg"),U=S.interopDefault(B),j=O("bundle-text:./fullscreen-off.svg"),K=S.interopDefault(j),N=O("bundle-text:./fullscreen-on.svg"),Z=S.interopDefault(N),X=O("bundle-text:./fullscreen-web-off.svg"),Y=S.interopDefault(X),ee=O("bundle-text:./fullscreen-web-on.svg"),Q=S.interopDefault(ee),G=O("bundle-text:./switch-on.svg"),q=S.interopDefault(G),te=O("bundle-text:./switch-off.svg"),ie=S.interopDefault(te),ne=O("bundle-text:./flip.svg"),le=S.interopDefault(ne),se=O("bundle-text:./error.svg"),oe=S.interopDefault(se),J=O("bundle-text:./close.svg"),ae=S.interopDefault(J);x.default=class{constructor(fe){const de={loading:M.default,state:p.default,play:o.default,pause:c.default,check:n.default,volume:r.default,volumeClose:i.default,screenshot:s.default,setting:a.default,pip:w.default,arrowLeft:A.default,arrowRight:y.default,playbackRate:_.default,aspectRatio:I.default,config:R.default,lock:k.default,flip:le.default,unlock:U.default,fullscreenOff:K.default,fullscreenOn:Z.default,fullscreenWebOff:Y.default,fullscreenWebOn:Q.default,switchOn:q.default,switchOff:ie.default,error:oe.default,close:ae.default,...fe.option.icons};Object.keys(de).forEach(ve=>{(0,h.def)(this,ve,{get:()=>{const ue=document.createElement("i");return(0,h.addClass)(ue,"art-icon"),(0,h.addClass)(ue,`art-icon-${ve}`),(0,h.append)(ue,de[ve]),ue}})})}}},{"../utils":"geSvU","bundle-text:./loading.svg":"hX0lQ","bundle-text:./state.svg":"01U3R","bundle-text:./check.svg":"9jaCP","bundle-text:./play.svg":"invok","bundle-text:./pause.svg":"68285","bundle-text:./volume.svg":"3zSKr","bundle-text:./volume-close.svg":"ft8Zf","bundle-text:./screenshot.svg":"dfLel","bundle-text:./setting.svg":"j8dnn","bundle-text:./arrow-left.svg":"fMoi9","bundle-text:./arrow-right.svg":"auIjA","bundle-text:./playback-rate.svg":"g3V1U","bundle-text:./aspect-ratio.svg":"3LQJt","bundle-text:./config.svg":"bcTkc","bundle-text:./pip.svg":"jDSoL","bundle-text:./lock.svg":"jqFLt","bundle-text:./unlock.svg":"5qYod","bundle-text:./fullscreen-off.svg":"25MvP","bundle-text:./fullscreen-on.svg":"6CCX4","bundle-text:./fullscreen-web-off.svg":"m9TwS","bundle-text:./fullscreen-web-on.svg":"iWJrW","bundle-text:./switch-on.svg":"8cFxH","bundle-text:./switch-off.svg":"6tBmw","bundle-text:./flip.svg":"6N8Hu","bundle-text:./error.svg":"bNBRZ","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2","bundle-text:./close.svg":"8pxPz"}],hX0lQ:[function(O,C,x){C.exports=''},{}],"01U3R":[function(O,C,x){C.exports=''},{}],"9jaCP":[function(O,C,x){C.exports=''},{}],invok:[function(O,C,x){C.exports=''},{}],68285:[function(O,C,x){C.exports=''},{}],"3zSKr":[function(O,C,x){C.exports=''},{}],ft8Zf:[function(O,C,x){C.exports=''},{}],dfLel:[function(O,C,x){C.exports=''},{}],j8dnn:[function(O,C,x){C.exports=''},{}],fMoi9:[function(O,C,x){C.exports=''},{}],auIjA:[function(O,C,x){C.exports=''},{}],g3V1U:[function(O,C,x){C.exports=''},{}],"3LQJt":[function(O,C,x){C.exports=``},{}],bcTkc:[function(O,C,x){C.exports=''},{}],jDSoL:[function(O,C,x){C.exports=''},{}],jqFLt:[function(O,C,x){C.exports=''},{}],"5qYod":[function(O,C,x){C.exports=''},{}],"25MvP":[function(O,C,x){C.exports=''},{}],"6CCX4":[function(O,C,x){C.exports=''},{}],m9TwS:[function(O,C,x){C.exports=''},{}],iWJrW:[function(O,C,x){C.exports=''},{}],"8cFxH":[function(O,C,x){C.exports=''},{}],"6tBmw":[function(O,C,x){C.exports=''},{}],"6N8Hu":[function(O,C,x){C.exports=''},{}],bNBRZ:[function(O,C,x){C.exports=''},{}],"8pxPz":[function(O,C,x){C.exports=''},{}],d5XKP:[function(O,C,x){var S=O("@parcel/transformer-js/src/esmodule-helpers.js");S.defineInteropFlag(x);var h=O("./flip"),m=S.interopDefault(h),M=O("./aspectRatio"),T=S.interopDefault(M),p=O("./playbackRate"),f=S.interopDefault(p),n=O("./subtitleOffset"),d=S.interopDefault(n),o=O("../utils/component"),v=S.interopDefault(o),c=O("../utils");function u(i,e,s){for(let l=0;l{this.show&&(this.show=!1,this.init(this.option))}),l(g,"click",A=>{!this.show||(0,c.includeFromEvent)(A,e.controls.setting)||(0,c.includeFromEvent)(A,this.$parent)||(this.show=!1,this.init(this.option))})}}add(e){typeof e=="function"?this.option.push(e(this.art)):this.option.push(e),this.cache=new Map,this.events.forEach(s=>s()),this.events=[],this.$parent.innerHTML="",this.option=u(this.option),this.init(this.option)}creatHeader(e){const{icons:s,events:{proxy:l}}=this.art,a=document.createElement("div");(0,c.addClass)(a,"art-setting-item"),(0,c.addClass)(a,"art-setting-item-back");const g=(0,c.append)(a,'
    '),A=document.createElement("div");(0,c.addClass)(A,"art-setting-item-left-icon"),(0,c.append)(A,s.arrowLeft),(0,c.append)(g,A),(0,c.append)(g,e.$parentItem.html);const D=l(a,"click",()=>{this.init(e.$parentList)});return this.events.push(D),a}creatItem(e,s){const{icons:l,events:{proxy:a}}=this.art,g=document.createElement("div");(0,c.addClass)(g,"art-setting-item"),r(s.name)&&(g.dataset.name=s.name),r(s.value)&&(g.dataset.value=s.value);const A=(0,c.append)(g,'
    '),D=(0,c.append)(g,'
    '),y=document.createElement("div");switch((0,c.addClass)(y,"art-setting-item-left-icon"),e){case"switch":case"range":(0,c.append)(y,r(s.icon)||s.icon instanceof Element?s.icon:l.config);break;case"selector":s.selector&&s.selector.length?(0,c.append)(y,r(s.icon)||s.icon instanceof Element?s.icon:l.config):(0,c.append)(y,l.check)}(0,c.append)(A,y),s.$icon=y,(0,c.def)(s,"icon",{configurable:!0,get:()=>y.innerHTML,set(L){r(L)&&(y.innerHTML=L)}});const E=document.createElement("div");(0,c.addClass)(E,"art-setting-item-left-text"),(0,c.append)(E,s.html||""),(0,c.append)(A,E),s.$html=E,(0,c.def)(s,"html",{configurable:!0,get:()=>E.innerHTML,set(L){r(L)&&(E.innerHTML=L)}});const _=document.createElement("div");switch((0,c.addClass)(_,"art-setting-item-right-tooltip"),(0,c.append)(_,s.tooltip||""),(0,c.append)(D,_),s.$tooltip=_,(0,c.def)(s,"tooltip",{configurable:!0,get:()=>_.innerHTML,set(L){r(L)&&(_.innerHTML=L)}}),e){case"switch":{const L=document.createElement("div");(0,c.addClass)(L,"art-setting-item-right-icon");const I=(0,c.append)(L,l.switchOn),b=(0,c.append)(L,l.switchOff);(0,c.setStyle)(s.switch?b:I,"display","none"),(0,c.append)(D,L),s.$switch=s.switch,(0,c.def)(s,"switch",{configurable:!0,get:()=>s.$switch,set(R){s.$switch=R,R?((0,c.setStyle)(b,"display","none"),(0,c.setStyle)(I,"display",null)):((0,c.setStyle)(b,"display",null),(0,c.setStyle)(I,"display","none"))}});break}case"range":{const L=document.createElement("div");(0,c.addClass)(L,"art-setting-item-right-icon");const I=(0,c.append)(L,'');I.value=s.range[0]||0,I.min=s.range[1]||0,I.max=s.range[2]||10,I.step=s.range[3]||1,(0,c.addClass)(I,"art-setting-range"),(0,c.append)(D,L),s.$range=I,(0,c.def)(s,"range",{configurable:!0,get:()=>I.valueAsNumber,set(b){I.value=Number(b)}})}break;case"selector":if(s.selector&&s.selector.length){const L=document.createElement("div");(0,c.addClass)(L,"art-setting-item-right-icon"),(0,c.append)(L,l.arrowRight),(0,c.append)(D,L)}}switch(e){case"switch":if(s.onSwitch){const L=a(g,"click",async I=>{s.switch=await s.onSwitch.call(this.art,s,g,I)});this.events.push(L)}break;case"range":if(s.onRange&&s.$range){const L=a(s.$range,"change",async I=>{s.tooltip=await s.onRange.call(this.art,s,g,I)});this.events.push(L)}break;case"selector":{const L=a(g,"click",async I=>{if(s.selector&&s.selector.length)this.init(s.selector,s.width);else if((0,c.inverseClass)(g,"art-current"),s.$parentList&&this.init(s.$parentList),s.$parentItem&&s.$parentItem.onSelect){const b=await s.$parentItem.onSelect.call(this.art,s,g,I);s.$parentItem.$tooltip&&r(b)&&(s.$parentItem.$tooltip.innerHTML=b)}});this.events.push(L),s.default&&(0,c.addClass)(g,"art-current")}}return g}init(e,s){const{constructor:l}=this.art;if(this.cache.has(e)){const a=this.cache.get(e);(0,c.inverseClass)(a,"art-current"),(0,c.setStyle)(this.$parent,"width",`${a.dataset.width}px`),(0,c.setStyle)(this.$parent,"height",`${a.dataset.height}px`)}else{const a=document.createElement("div");(0,c.addClass)(a,"art-setting-panel"),a.dataset.width=s||l.SETTING_WIDTH,a.dataset.height=e.length*l.SETTING_ITEM_HEIGHT,e[0]&&e[0].$parentItem&&((0,c.append)(a,this.creatHeader(e[0])),a.dataset.height=Number(a.dataset.height)+l.SETTING_ITEM_HEIGHT);for(let g=0;gc.dataset.value===o);v&&(0,S.inverseClass)(v,"art-current")}return{width:T.SETTING_ITEM_WIDTH,html:m.get("Video Flip"),tooltip:m.get(p[h.flip]),icon:M.flip,selector:Object.keys(p).map(n=>({value:n,default:n===h.flip,html:m.get(p[n])})),onSelect(n){h.flip=n.value},mounted:(n,d)=>{f(n,d.$tooltip,h.flip),h.on("flip",()=>{f(n,d.$tooltip,h.flip)})}}}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"1gs5B":[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){const{i18n:m,icons:M,constructor:T}=h;function p(n){return n==="default"?m.get("Default"):n}function f(n,d,o){d&&(d.innerText=p(o));const v=(0,S.queryAll)(".art-setting-item",n).find(c=>c.dataset.value===o);v&&(0,S.inverseClass)(v,"art-current")}return{width:T.SETTING_ITEM_WIDTH,html:m.get("Aspect Ratio"),icon:M.aspectRatio,tooltip:p(h.aspectRatio),selector:["default","4:3","16:9"].map(n=>({value:n,default:n===h.aspectRatio,html:p(n)})),onSelect(n){h.aspectRatio=n.value},mounted:(n,d)=>{f(n,d.$tooltip,h.aspectRatio),h.on("aspectRatio",()=>{f(n,d.$tooltip,h.aspectRatio)})}}}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],j50mh:[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){const{i18n:m,icons:M,constructor:T}=h;function p(n){return n===1?m.get("Normal"):n}function f(n,d,o){d&&(d.innerText=p(o));const v=(0,S.queryAll)(".art-setting-item",n).find(c=>Number(c.dataset.value)===o);v&&(0,S.inverseClass)(v,"art-current")}return{width:T.SETTING_ITEM_WIDTH,html:m.get("Play Speed"),tooltip:p(h.playbackRate),icon:M.playbackRate,selector:[.5,.75,1,1.25,1.5,2].map(n=>({value:n,default:n===h.playbackRate,html:p(n)})),onSelect(n){h.playbackRate=n.value},mounted:(n,d)=>{f(n,d.$tooltip,h.playbackRate),h.on("playbackRate",()=>{f(n,d.$tooltip,h.playbackRate)})}}}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],i17b6:[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){const{i18n:m,icons:M,constructor:T}=h;function p(n){return n===0?m.get("Normal"):n}function f(n,d,o){d&&(d.innerText=p(o));const v=(0,S.queryAll)(".art-setting-item",n).find(c=>Number(c.dataset.value)===o);v&&(0,S.inverseClass)(v,"art-current")}return{width:T.SETTING_ITEM_WIDTH,html:m.get("Subtitle Offset"),tooltip:p(h.subtitleOffset),icon:M.subtitle,selector:[-5,-4,-3,-2,-1,0,1,2,3,4,5].map(n=>({value:n,default:n===h.subtitleOffset,html:p(n)})),onSelect(n){h.subtitleOffset=n.value},mounted:(n,d)=>{f(n,d.$tooltip,h.subtitleOffset),h.on("subtitleOffset",()=>{f(n,d.$tooltip,h.subtitleOffset)})}}}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"5M8nN":[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x),x.default=class{constructor(){this.name="artplayer_settings",this.settings={}}get(S){try{const h=JSON.parse(window.localStorage.getItem(this.name))||{};return S?h[S]:h}catch{return S?this.settings[S]:this.settings}}set(S,h){try{const m=Object.assign({},this.get(),{[S]:h});window.localStorage.setItem(this.name,JSON.stringify(m))}catch{this.settings[S]=h}}del(S){try{const h=this.get();delete h[S],window.localStorage.setItem(this.name,JSON.stringify(h))}catch{delete this.settings[S]}}clear(){try{window.localStorage.removeItem(this.name)}catch{this.settings={}}}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],jWfEd:[function(O,C,x){var S=O("@parcel/transformer-js/src/esmodule-helpers.js");S.defineInteropFlag(x);var h=O("../utils"),m=O("./miniProgressBar"),M=S.interopDefault(m),T=O("./autoOrientation"),p=S.interopDefault(T),f=O("./autoPlayback"),n=S.interopDefault(f),d=O("./fastForward"),o=S.interopDefault(d),v=O("./lock"),c=S.interopDefault(v);x.default=class{constructor(u){this.art=u,this.id=0;const{option:r}=u;r.miniProgressBar&&!r.isLive&&this.add(M.default),r.lock&&h.isMobile&&this.add(c.default),r.autoPlayback&&this.add(n.default),r.autoOrientation&&h.isMobile&&this.add(p.default),r.fastForward&&h.isMobile&&!r.isLive&&this.add(o.default);for(let t=0;t{S.layers.add({name:"miniProgressBar",mounted(h){S.on("destroy",()=>{h.style.display="none"}),S.on("video:timeupdate",()=>{h.style.width=100*S.played+"%"}),S.on("setBar",(m,M)=>{m==="played"&&(h.style.width=100*M+"%")})}})}),{name:"miniProgressBar"}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],aPIVP:[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){const{option:m,constructor:M,template:{$player:T,$video:p}}=h;return h.on("fullscreenWeb",f=>{if(f){const{videoWidth:n,videoHeight:d}=p,{clientWidth:o,clientHeight:v}=document.documentElement;(n>d&&ov)&&setTimeout(()=>{(0,S.setStyle)(T,"width",`${v}px`),(0,S.setStyle)(T,"height",`${o}px`),(0,S.setStyle)(T,"transform-origin","0 0"),(0,S.setStyle)(T,"transform",`rotate(90deg) translate(0, -${o}px)`),(0,S.addClass)(T,"art-auto-orientation"),h.emit("resize")},M.MOBILE_AUTO_ORIENTATION_TIME)}else(0,S.hasClass)(T,"art-auto-orientation")&&((0,S.setStyle)(T,"width",null),(0,S.setStyle)(T,"height",null),(0,S.setStyle)(T,"transform",null),(0,S.setStyle)(T,"transform-origin",null),(0,S.removeClass)(T,"art-auto-orientation"),h.aspectRatioReset=!0,h.autoSize=m.autoSize,h.notice.show="",h.emit("resize"))}),h.on("fullscreen",async f=>{const n=screen.orientation.type;if(f){const{videoWidth:d,videoHeight:o}=p,{clientWidth:v,clientHeight:c}=document.documentElement;if(d>o&&vc){const u=n.startsWith("portrait")?"landscape":"portrait";await screen.orientation.lock(u),(0,S.addClass)(T,"art-auto-orientation-fullscreen")}}else(0,S.hasClass)(T,"art-auto-orientation-fullscreen")&&(await screen.orientation.lock(n),(0,S.removeClass)(T,"art-auto-orientation-fullscreen"))}),{name:"autoOrientation",get state(){return(0,S.hasClass)(T,"art-auto-orientation")}}}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],j87OI:[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){const{i18n:m,icons:M,storage:T,constructor:p,events:{proxy:f},template:{$poster:n}}=h,d=h.layers.add({name:"autoPlayback",html:'
    '}),o=(0,S.query)(".art-autoPlayback-last",d),v=(0,S.query)(".art-autoPlayback-jump",d),c=(0,S.query)(".art-autoPlayback-close",d);return h.on("video:timeupdate",()=>{const u=T.get("times")||{},r=Object.keys(u);r.length>p.AUTO_PLAYBACK_MAX&&delete u[r[0]],u[h.option.url]=h.currentTime,T.set("times",u)}),h.on("ready",()=>{const u=(T.get("times")||{})[h.option.url];u&&((0,S.append)(c,M.close),(0,S.setStyle)(d,"display","flex"),o.innerText=`${m.get("Last Seen")} ${(0,S.secondToTime)(u)}`,v.innerText=m.get("Jump Play"),f(c,"click",()=>{(0,S.setStyle)(d,"display","none")}),f(v,"click",()=>{h.seek=u,h.play(),(0,S.setStyle)(n,"display","none"),(0,S.setStyle)(d,"display","none")}),h.once("video:timeupdate",()=>{setTimeout(()=>{(0,S.setStyle)(d,"display","none")},p.AUTO_PLAYBACK_TIMEOUT)}))}),{name:"autoPlayback",get times(){return T.get("times")||{}},clear:()=>T.del("times")}}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"1VTki":[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){const{constructor:m,events:{proxy:M},template:{$player:T,$video:p}}=h;let f=null,n=!1;const d=()=>{clearTimeout(f),n&&(n=!1,h.playbackRate=1,(0,S.removeClass)(T,"art-fast-forward"))};return M(p,"touchstart",o=>{o.touches.length===1&&h.playing&&!h.isLock&&(f=setTimeout(()=>{n=!0,h.playbackRate=m.FAST_FORWARD_VALUE,(0,S.addClass)(T,"art-fast-forward")},m.FAST_FORWARD_TIME))}),M(document,"touchmove",d),M(document,"touchend",d),{name:"fastForward",get state(){return(0,S.hasClass)(T,"art-fast-forward")}}}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"7BtoE":[function(O,C,x){O("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(x);var S=O("../utils");x.default=function(h){const{layers:m,icons:M,template:{$player:T}}=h;return m.add({name:"lock",mounted(p){const f=(0,S.append)(p,M.lock),n=(0,S.append)(p,M.unlock);(0,S.setStyle)(f,"display","none"),h.on("lock",d=>{d?((0,S.setStyle)(f,"display","inline-flex"),(0,S.setStyle)(n,"display","none")):((0,S.setStyle)(f,"display","none"),(0,S.setStyle)(n,"display","inline-flex"))})},click(){(0,S.hasClass)(T,"art-lock")?((0,S.removeClass)(T,"art-lock"),this.isLock=!1,h.emit("lock",!1)):((0,S.addClass)(T,"art-lock"),this.isLock=!0,h.emit("lock",!0))}}),{name:"lock",get state(){return(0,S.hasClass)(T,"art-lock")}}}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],fkUkB:[function(O,C,x){var S=O("@parcel/transformer-js/src/esmodule-helpers.js");S.defineInteropFlag(x);var h=O("./config"),m=S.interopDefault(h),M=O("./utils");x.default=class{constructor(T){const{option:p,events:{proxy:f},template:{$video:n}}=T;for(let v=0;v{T.emit(`video:${c.type}`,c)});Object.keys(p.moreVideoAttr).forEach(v=>{n[v]=p.moreVideoAttr[v]}),p.muted&&(n.muted=p.muted),p.volume&&(n.volume=(0,M.clamp)(p.volume,0,1)),p.poster&&(n.poster=p.poster),p.autoplay&&(n.autoplay=p.autoplay),p.playsInline&&(n.playsInline=!0,n["webkit-playsinline"]=!0);const d=p.type||(0,M.getExt)(p.url),o=p.customType[d];d&&o?(o(n,p.url,T),T.emit("customType",d)):(n.src=p.url,T.emit("url",n.src))}}},{"./config":"eksZR","./utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}]},["6SN6P"],"6SN6P")})(Ne);var ht=Fe(Ne.exports),Ke={exports:{}};(function(Te,Ie){(function(C,x){Te.exports=x()})(self,function(){return function(){var O={"./node_modules/es6-promise/dist/es6-promise.js":function(h,m,M){/*! + * @overview es6-promise - a tiny implementation of Promises/A+. + * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald) + * @license Licensed under MIT license + * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE + * @version v4.2.8+1e68dce6 + */(function(T,p){h.exports=p()})(this,function(){function T(W){var z=typeof W;return W!==null&&(z==="object"||z==="function")}function p(W){return typeof W=="function"}var f=void 0;Array.isArray?f=Array.isArray:f=function(W){return Object.prototype.toString.call(W)==="[object Array]"};var n=f,d=0,o=void 0,v=void 0,c=function(z,V){E[d]=z,E[d+1]=V,d+=2,d===2&&(v?v(_):I())};function u(W){v=W}function r(W){c=W}var t=typeof window!="undefined"?window:void 0,i=t||{},e=i.MutationObserver||i.WebKitMutationObserver,s=typeof self=="undefined"&&typeof process!="undefined"&&{}.toString.call(process)==="[object process]",l=typeof Uint8ClampedArray!="undefined"&&typeof importScripts!="undefined"&&typeof MessageChannel!="undefined";function a(){return function(){return process.nextTick(_)}}function g(){return typeof o!="undefined"?function(){o(_)}:y()}function A(){var W=0,z=new e(_),V=document.createTextNode("");return z.observe(V,{characterData:!0}),function(){V.data=W=++W%2}}function D(){var W=new MessageChannel;return W.port1.onmessage=_,function(){return W.port2.postMessage(0)}}function y(){var W=setTimeout;return function(){return W(_,1)}}var E=new Array(1e3);function _(){for(var W=0;W0&&(b=E[0]),b instanceof Error)throw b;var R=new Error("Unhandled error."+(b?" ("+b.message+")":""));throw R.context=b,R}var P=I[y];if(P===void 0)return!1;if(typeof P=="function")M(P,this,E);else for(var w=P.length,F=e(P,w),_=0;_0&&b.length>L&&!b.warned){b.warned=!0;var R=new Error("Possible EventEmitter memory leak detected. "+b.length+" "+String(y)+" listeners added. Use emitter.setMaxListeners() to increase limit");R.name="MaxListenersExceededWarning",R.emitter=D,R.type=y,R.count=b.length,p(R)}return D}n.prototype.addListener=function(y,E){return c(this,y,E,!1)},n.prototype.on=n.prototype.addListener,n.prototype.prependListener=function(y,E){return c(this,y,E,!0)};function u(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function r(D,y,E){var _={fired:!1,wrapFn:void 0,target:D,type:y,listener:E},L=u.bind(_);return L.listener=E,_.wrapFn=L,L}n.prototype.once=function(y,E){return o(E),this.on(y,r(this,y,E)),this},n.prototype.prependOnceListener=function(y,E){return o(E),this.prependListener(y,r(this,y,E)),this},n.prototype.removeListener=function(y,E){var _,L,I,b,R;if(o(E),L=this._events,L===void 0)return this;if(_=L[y],_===void 0)return this;if(_===E||_.listener===E)--this._eventsCount===0?this._events=Object.create(null):(delete L[y],L.removeListener&&this.emit("removeListener",y,_.listener||E));else if(typeof _!="function"){for(I=-1,b=_.length-1;b>=0;b--)if(_[b]===E||_[b].listener===E){R=_[b].listener,I=b;break}if(I<0)return this;I===0?_.shift():s(_,I),_.length===1&&(L[y]=_[0]),L.removeListener!==void 0&&this.emit("removeListener",y,R||E)}return this},n.prototype.off=n.prototype.removeListener,n.prototype.removeAllListeners=function(y){var E,_,L;if(_=this._events,_===void 0)return this;if(_.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):_[y]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete _[y]),this;if(arguments.length===0){var I=Object.keys(_),b;for(L=0;L=0;L--)this.removeListener(y,E[L]);return this};function t(D,y,E){var _=D._events;if(_===void 0)return[];var L=_[y];return L===void 0?[]:typeof L=="function"?E?[L.listener||L]:[L]:E?l(L):e(L,L.length)}n.prototype.listeners=function(y){return t(this,y,!0)},n.prototype.rawListeners=function(y){return t(this,y,!1)},n.listenerCount=function(D,y){return typeof D.listenerCount=="function"?D.listenerCount(y):i.call(D,y)},n.prototype.listenerCount=i;function i(D){var y=this._events;if(y!==void 0){var E=y[D];if(typeof E=="function")return 1;if(E!==void 0)return E.length}return 0}n.prototype.eventNames=function(){return this._eventsCount>0?T(this._events):[]};function e(D,y){for(var E=new Array(y),_=0;_0},!1)}function c(u,r){for(var t={main:[r]},i={main:[]},e={main:{}};v(t);)for(var s=Object.keys(t),l=0;l=f[v]&&n0&&o[0].originalDts=v[r].dts&&ov[u].lastSample.originalDts&&o=v[u].lastSample.originalDts&&(u===v.length-1||u0&&(r=this._searchNearestSegmentBefore(c.originalBeginDts)+1),this._lastAppendLocation=r,this._list.splice(r,0,c)},d.prototype.getLastSegmentBefore=function(o){var v=this._searchNearestSegmentBefore(o);return v>=0?this._list[v]:null},d.prototype.getLastSampleBefore=function(o){var v=this.getLastSegmentBefore(o);return v!=null?v.lastSample:null},d.prototype.getLastSyncPointBefore=function(o){for(var v=this._searchNearestSegmentBefore(o),c=this._list[v].syncPoints;c.length===0&&v>0;)v--,c=this._list[v].syncPoints;return c.length>0?c[c.length-1]:null},d}()},"./src/core/mse-controller.js":function(h,m,M){M.r(m);var T=M("./node_modules/events/events.js"),p=M.n(T),f=M("./src/utils/logger.js"),n=M("./src/utils/browser.js"),d=M("./src/core/mse-events.js"),o=M("./src/core/media-segment-info.js"),v=M("./src/utils/exception.js"),c=function(){function u(r){this.TAG="MSEController",this._config=r,this._emitter=new(p()),this._config.isLive&&this._config.autoCleanupSourceBuffer==null&&(this._config.autoCleanupSourceBuffer=!0),this.e={onSourceOpen:this._onSourceOpen.bind(this),onSourceEnded:this._onSourceEnded.bind(this),onSourceClose:this._onSourceClose.bind(this),onSourceBufferError:this._onSourceBufferError.bind(this),onSourceBufferUpdateEnd:this._onSourceBufferUpdateEnd.bind(this)},this._mediaSource=null,this._mediaSourceObjectURL=null,this._mediaElement=null,this._isBufferFull=!1,this._hasPendingEos=!1,this._requireSetMediaDuration=!1,this._pendingMediaDuration=0,this._pendingSourceBufferInit=[],this._mimeTypes={video:null,audio:null},this._sourceBuffers={video:null,audio:null},this._lastInitSegments={video:null,audio:null},this._pendingSegments={video:[],audio:[]},this._pendingRemoveRanges={video:[],audio:[]},this._idrList=new o.IDRSampleList}return u.prototype.destroy=function(){(this._mediaElement||this._mediaSource)&&this.detachMediaElement(),this.e=null,this._emitter.removeAllListeners(),this._emitter=null},u.prototype.on=function(r,t){this._emitter.addListener(r,t)},u.prototype.off=function(r,t){this._emitter.removeListener(r,t)},u.prototype.attachMediaElement=function(r){if(this._mediaSource)throw new v.IllegalStateException("MediaSource has been attached to an HTMLMediaElement!");var t=this._mediaSource=new window.MediaSource;t.addEventListener("sourceopen",this.e.onSourceOpen),t.addEventListener("sourceended",this.e.onSourceEnded),t.addEventListener("sourceclose",this.e.onSourceClose),this._mediaElement=r,this._mediaSourceObjectURL=window.URL.createObjectURL(this._mediaSource),r.src=this._mediaSourceObjectURL},u.prototype.detachMediaElement=function(){if(this._mediaSource){var r=this._mediaSource;for(var t in this._sourceBuffers){var i=this._pendingSegments[t];i.splice(0,i.length),this._pendingSegments[t]=null,this._pendingRemoveRanges[t]=null,this._lastInitSegments[t]=null;var e=this._sourceBuffers[t];if(e){if(r.readyState!=="closed"){try{r.removeSourceBuffer(e)}catch(s){f.default.e(this.TAG,s.message)}e.removeEventListener("error",this.e.onSourceBufferError),e.removeEventListener("updateend",this.e.onSourceBufferUpdateEnd)}this._mimeTypes[t]=null,this._sourceBuffers[t]=null}}if(r.readyState==="open")try{r.endOfStream()}catch(s){f.default.e(this.TAG,s.message)}r.removeEventListener("sourceopen",this.e.onSourceOpen),r.removeEventListener("sourceended",this.e.onSourceEnded),r.removeEventListener("sourceclose",this.e.onSourceClose),this._pendingSourceBufferInit=[],this._isBufferFull=!1,this._idrList.clear(),this._mediaSource=null}this._mediaElement&&(this._mediaElement.src="",this._mediaElement.removeAttribute("src"),this._mediaElement=null),this._mediaSourceObjectURL&&(window.URL.revokeObjectURL(this._mediaSourceObjectURL),this._mediaSourceObjectURL=null)},u.prototype.appendInitSegment=function(r,t){if(!this._mediaSource||this._mediaSource.readyState!=="open"){this._pendingSourceBufferInit.push(r),this._pendingSegments[r.type].push(r);return}var i=r,e=""+i.container;i.codec&&i.codec.length>0&&(e+=";codecs="+i.codec);var s=!1;if(f.default.v(this.TAG,"Received Initialization Segment, mimeType: "+e),this._lastInitSegments[i.type]=i,e!==this._mimeTypes[i.type]){if(this._mimeTypes[i.type])f.default.v(this.TAG,"Notice: "+i.type+" mimeType changed, origin: "+this._mimeTypes[i.type]+", target: "+e);else{s=!0;try{var l=this._sourceBuffers[i.type]=this._mediaSource.addSourceBuffer(e);l.addEventListener("error",this.e.onSourceBufferError),l.addEventListener("updateend",this.e.onSourceBufferUpdateEnd)}catch(a){f.default.e(this.TAG,a.message),this._emitter.emit(d.default.ERROR,{code:a.code,msg:a.message});return}}this._mimeTypes[i.type]=e}t||this._pendingSegments[i.type].push(i),s||this._sourceBuffers[i.type]&&!this._sourceBuffers[i.type].updating&&this._doAppendSegments(),n.default.safari&&i.container==="audio/mpeg"&&i.mediaDuration>0&&(this._requireSetMediaDuration=!0,this._pendingMediaDuration=i.mediaDuration/1e3,this._updateMediaSourceDuration())},u.prototype.appendMediaSegment=function(r){var t=r;this._pendingSegments[t.type].push(t),this._config.autoCleanupSourceBuffer&&this._needCleanupSourceBuffer()&&this._doCleanupSourceBuffer();var i=this._sourceBuffers[t.type];i&&!i.updating&&!this._hasPendingRemoveRanges()&&this._doAppendSegments()},u.prototype.seek=function(r){for(var t in this._sourceBuffers)if(!!this._sourceBuffers[t]){var i=this._sourceBuffers[t];if(this._mediaSource.readyState==="open")try{i.abort()}catch(A){f.default.e(this.TAG,A.message)}this._idrList.clear();var e=this._pendingSegments[t];if(e.splice(0,e.length),this._mediaSource.readyState!=="closed"){for(var s=0;s=1&&r-e.start(0)>=this._config.autoCleanupMaxBackwardDuration)return!0}}return!1},u.prototype._doCleanupSourceBuffer=function(){var r=this._mediaElement.currentTime;for(var t in this._sourceBuffers){var i=this._sourceBuffers[t];if(i){for(var e=i.buffered,s=!1,l=0;l=this._config.autoCleanupMaxBackwardDuration){s=!0;var A=r-this._config.autoCleanupMinBackwardDuration;this._pendingRemoveRanges[t].push({start:a,end:A})}}else g0&&(isNaN(t)||i>t)&&(f.default.v(this.TAG,"Update MediaSource duration from "+t+" to "+i),this._mediaSource.duration=i),this._requireSetMediaDuration=!1,this._pendingMediaDuration=0}},u.prototype._doRemoveRanges=function(){for(var r in this._pendingRemoveRanges)if(!(!this._sourceBuffers[r]||this._sourceBuffers[r].updating))for(var t=this._sourceBuffers[r],i=this._pendingRemoveRanges[r];i.length&&!t.updating;){var e=i.shift();t.remove(e.start,e.end)}},u.prototype._doAppendSegments=function(){var r=this._pendingSegments;for(var t in r)if(!(!this._sourceBuffers[t]||this._sourceBuffers[t].updating)&&r[t].length>0){var i=r[t].shift();if(i.timestampOffset){var e=this._sourceBuffers[t].timestampOffset,s=i.timestampOffset/1e3,l=Math.abs(e-s);l>.1&&(f.default.v(this.TAG,"Update MPEG audio timestampOffset from "+e+" to "+s),this._sourceBuffers[t].timestampOffset=s),delete i.timestampOffset}if(!i.data||i.data.byteLength===0)continue;try{this._sourceBuffers[t].appendBuffer(i.data),this._isBufferFull=!1,t==="video"&&i.hasOwnProperty("info")&&this._idrList.appendArray(i.info.syncPoints)}catch(a){this._pendingSegments[t].unshift(i),a.code===22?(this._isBufferFull||this._emitter.emit(d.default.BUFFER_FULL),this._isBufferFull=!0):(f.default.e(this.TAG,a.message),this._emitter.emit(d.default.ERROR,{code:a.code,msg:a.message}))}}},u.prototype._onSourceOpen=function(){if(f.default.v(this.TAG,"MediaSource onSourceOpen"),this._mediaSource.removeEventListener("sourceopen",this.e.onSourceOpen),this._pendingSourceBufferInit.length>0)for(var r=this._pendingSourceBufferInit;r.length;){var t=r.shift();this.appendInitSegment(t,!0)}this._hasPendingSegments()&&this._doAppendSegments(),this._emitter.emit(d.default.SOURCE_OPEN)},u.prototype._onSourceEnded=function(){f.default.v(this.TAG,"MediaSource onSourceEnded")},u.prototype._onSourceClose=function(){f.default.v(this.TAG,"MediaSource onSourceClose"),this._mediaSource&&this.e!=null&&(this._mediaSource.removeEventListener("sourceopen",this.e.onSourceOpen),this._mediaSource.removeEventListener("sourceended",this.e.onSourceEnded),this._mediaSource.removeEventListener("sourceclose",this.e.onSourceClose))},u.prototype._hasPendingSegments=function(){var r=this._pendingSegments;return r.video.length>0||r.audio.length>0},u.prototype._hasPendingRemoveRanges=function(){var r=this._pendingRemoveRanges;return r.video.length>0||r.audio.length>0},u.prototype._onSourceBufferUpdateEnd=function(){this._requireSetMediaDuration?this._updateMediaSourceDuration():this._hasPendingRemoveRanges()?this._doRemoveRanges():this._hasPendingSegments()?this._doAppendSegments():this._hasPendingEos&&this.endOfStream(),this._emitter.emit(d.default.UPDATE_END)},u.prototype._onSourceBufferError=function(r){f.default.e(this.TAG,"SourceBuffer Error: "+r)},u}();m.default=c},"./src/core/mse-events.js":function(h,m,M){M.r(m);var T={ERROR:"error",SOURCE_OPEN:"source_open",UPDATE_END:"update_end",BUFFER_FULL:"buffer_full"};m.default=T},"./src/core/transmuxer.js":function(h,m,M){M.r(m);var T=M("./node_modules/events/events.js"),p=M.n(T),f=M("./node_modules/webworkify-webpack/index.js"),n=M.n(f),d=M("./src/utils/logger.js"),o=M("./src/utils/logging-control.js"),v=M("./src/core/transmuxing-controller.js"),c=M("./src/core/transmuxing-events.js"),u=M("./src/core/media-info.js"),r=function(){function t(i,e){if(this.TAG="Transmuxer",this._emitter=new(p()),e.enableWorker&&typeof Worker!="undefined")try{this._worker=n()("./src/core/transmuxing-worker.js"),this._workerDestroying=!1,this._worker.addEventListener("message",this._onWorkerMessage.bind(this)),this._worker.postMessage({cmd:"init",param:[i,e]}),this.e={onLoggingConfigChanged:this._onLoggingConfigChanged.bind(this)},o.default.registerListener(this.e.onLoggingConfigChanged),this._worker.postMessage({cmd:"logging_config",param:o.default.getConfig()})}catch{d.default.e(this.TAG,"Error while initialize transmuxing worker, fallback to inline transmuxing"),this._worker=null,this._controller=new v.default(i,e)}else this._controller=new v.default(i,e);if(this._controller){var s=this._controller;s.on(c.default.IO_ERROR,this._onIOError.bind(this)),s.on(c.default.DEMUX_ERROR,this._onDemuxError.bind(this)),s.on(c.default.INIT_SEGMENT,this._onInitSegment.bind(this)),s.on(c.default.MEDIA_SEGMENT,this._onMediaSegment.bind(this)),s.on(c.default.LOADING_COMPLETE,this._onLoadingComplete.bind(this)),s.on(c.default.RECOVERED_EARLY_EOF,this._onRecoveredEarlyEof.bind(this)),s.on(c.default.MEDIA_INFO,this._onMediaInfo.bind(this)),s.on(c.default.METADATA_ARRIVED,this._onMetaDataArrived.bind(this)),s.on(c.default.SCRIPTDATA_ARRIVED,this._onScriptDataArrived.bind(this)),s.on(c.default.STATISTICS_INFO,this._onStatisticsInfo.bind(this)),s.on(c.default.RECOMMEND_SEEKPOINT,this._onRecommendSeekpoint.bind(this))}}return t.prototype.destroy=function(){this._worker?this._workerDestroying||(this._workerDestroying=!0,this._worker.postMessage({cmd:"destroy"}),o.default.removeListener(this.e.onLoggingConfigChanged),this.e=null):(this._controller.destroy(),this._controller=null),this._emitter.removeAllListeners(),this._emitter=null},t.prototype.on=function(i,e){this._emitter.addListener(i,e)},t.prototype.off=function(i,e){this._emitter.removeListener(i,e)},t.prototype.hasWorker=function(){return this._worker!=null},t.prototype.open=function(){this._worker?this._worker.postMessage({cmd:"start"}):this._controller.start()},t.prototype.close=function(){this._worker?this._worker.postMessage({cmd:"stop"}):this._controller.stop()},t.prototype.seek=function(i){this._worker?this._worker.postMessage({cmd:"seek",param:i}):this._controller.seek(i)},t.prototype.pause=function(){this._worker?this._worker.postMessage({cmd:"pause"}):this._controller.pause()},t.prototype.resume=function(){this._worker?this._worker.postMessage({cmd:"resume"}):this._controller.resume()},t.prototype._onInitSegment=function(i,e){var s=this;Promise.resolve().then(function(){s._emitter.emit(c.default.INIT_SEGMENT,i,e)})},t.prototype._onMediaSegment=function(i,e){var s=this;Promise.resolve().then(function(){s._emitter.emit(c.default.MEDIA_SEGMENT,i,e)})},t.prototype._onLoadingComplete=function(){var i=this;Promise.resolve().then(function(){i._emitter.emit(c.default.LOADING_COMPLETE)})},t.prototype._onRecoveredEarlyEof=function(){var i=this;Promise.resolve().then(function(){i._emitter.emit(c.default.RECOVERED_EARLY_EOF)})},t.prototype._onMediaInfo=function(i){var e=this;Promise.resolve().then(function(){e._emitter.emit(c.default.MEDIA_INFO,i)})},t.prototype._onMetaDataArrived=function(i){var e=this;Promise.resolve().then(function(){e._emitter.emit(c.default.METADATA_ARRIVED,i)})},t.prototype._onScriptDataArrived=function(i){var e=this;Promise.resolve().then(function(){e._emitter.emit(c.default.SCRIPTDATA_ARRIVED,i)})},t.prototype._onStatisticsInfo=function(i){var e=this;Promise.resolve().then(function(){e._emitter.emit(c.default.STATISTICS_INFO,i)})},t.prototype._onIOError=function(i,e){var s=this;Promise.resolve().then(function(){s._emitter.emit(c.default.IO_ERROR,i,e)})},t.prototype._onDemuxError=function(i,e){var s=this;Promise.resolve().then(function(){s._emitter.emit(c.default.DEMUX_ERROR,i,e)})},t.prototype._onRecommendSeekpoint=function(i){var e=this;Promise.resolve().then(function(){e._emitter.emit(c.default.RECOMMEND_SEEKPOINT,i)})},t.prototype._onLoggingConfigChanged=function(i){this._worker&&this._worker.postMessage({cmd:"logging_config",param:i})},t.prototype._onWorkerMessage=function(i){var e=i.data,s=e.data;if(e.msg==="destroyed"||this._workerDestroying){this._workerDestroying=!1,this._worker.terminate(),this._worker=null;return}switch(e.msg){case c.default.INIT_SEGMENT:case c.default.MEDIA_SEGMENT:this._emitter.emit(e.msg,s.type,s.data);break;case c.default.LOADING_COMPLETE:case c.default.RECOVERED_EARLY_EOF:this._emitter.emit(e.msg);break;case c.default.MEDIA_INFO:Object.setPrototypeOf(s,u.default.prototype),this._emitter.emit(e.msg,s);break;case c.default.METADATA_ARRIVED:case c.default.SCRIPTDATA_ARRIVED:case c.default.STATISTICS_INFO:this._emitter.emit(e.msg,s);break;case c.default.IO_ERROR:case c.default.DEMUX_ERROR:this._emitter.emit(e.msg,s.type,s.info);break;case c.default.RECOMMEND_SEEKPOINT:this._emitter.emit(e.msg,s);break;case"logcat_callback":d.default.emitter.emit("log",s.type,s.logcat);break}},t}();m.default=r},"./src/core/transmuxing-controller.js":function(h,m,M){M.r(m);var T=M("./node_modules/events/events.js"),p=M.n(T),f=M("./src/utils/logger.js"),n=M("./src/utils/browser.js"),d=M("./src/core/media-info.js"),o=M("./src/demux/flv-demuxer.js"),v=M("./src/remux/mp4-remuxer.js"),c=M("./src/demux/demux-errors.js"),u=M("./src/io/io-controller.js"),r=M("./src/core/transmuxing-events.js"),t=function(){function i(e,s){this.TAG="TransmuxingController",this._emitter=new(p()),this._config=s,e.segments||(e.segments=[{duration:e.duration,filesize:e.filesize,url:e.url}]),typeof e.cors!="boolean"&&(e.cors=!0),typeof e.withCredentials!="boolean"&&(e.withCredentials=!1),this._mediaDataSource=e,this._currentSegmentIndex=0;var l=0;this._mediaDataSource.segments.forEach(function(a){a.timestampBase=l,l+=a.duration,a.cors=e.cors,a.withCredentials=e.withCredentials,s.referrerPolicy&&(a.referrerPolicy=s.referrerPolicy)}),!isNaN(l)&&this._mediaDataSource.duration!==l&&(this._mediaDataSource.duration=l),this._mediaInfo=null,this._demuxer=null,this._remuxer=null,this._ioctl=null,this._pendingSeekTime=null,this._pendingResolveSeekPoint=null,this._statisticsReporter=null}return i.prototype.destroy=function(){this._mediaInfo=null,this._mediaDataSource=null,this._statisticsReporter&&this._disableStatisticsReporter(),this._ioctl&&(this._ioctl.destroy(),this._ioctl=null),this._demuxer&&(this._demuxer.destroy(),this._demuxer=null),this._remuxer&&(this._remuxer.destroy(),this._remuxer=null),this._emitter.removeAllListeners(),this._emitter=null},i.prototype.on=function(e,s){this._emitter.addListener(e,s)},i.prototype.off=function(e,s){this._emitter.removeListener(e,s)},i.prototype.start=function(){this._loadSegment(0),this._enableStatisticsReporter()},i.prototype._loadSegment=function(e,s){this._currentSegmentIndex=e;var l=this._mediaDataSource.segments[e],a=this._ioctl=new u.default(l,this._config,e);a.onError=this._onIOException.bind(this),a.onSeeked=this._onIOSeeked.bind(this),a.onComplete=this._onIOComplete.bind(this),a.onRedirect=this._onIORedirect.bind(this),a.onRecoveredEarlyEof=this._onIORecoveredEarlyEof.bind(this),s?this._demuxer.bindDataSource(this._ioctl):a.onDataArrival=this._onInitChunkArrival.bind(this),a.open(s)},i.prototype.stop=function(){this._internalAbort(),this._disableStatisticsReporter()},i.prototype._internalAbort=function(){this._ioctl&&(this._ioctl.destroy(),this._ioctl=null)},i.prototype.pause=function(){this._ioctl&&this._ioctl.isWorking()&&(this._ioctl.pause(),this._disableStatisticsReporter())},i.prototype.resume=function(){this._ioctl&&this._ioctl.isPaused()&&(this._ioctl.resume(),this._enableStatisticsReporter())},i.prototype.seek=function(e){if(!(this._mediaInfo==null||!this._mediaInfo.isSeekable())){var s=this._searchSegmentIndexContains(e);if(s===this._currentSegmentIndex){var l=this._mediaInfo.segments[s];if(l==null)this._pendingSeekTime=e;else{var a=l.getNearestKeyframe(e);this._remuxer.seek(a.milliseconds),this._ioctl.seek(a.fileposition),this._pendingResolveSeekPoint=a.milliseconds}}else{var g=this._mediaInfo.segments[s];if(g==null)this._pendingSeekTime=e,this._internalAbort(),this._remuxer.seek(),this._remuxer.insertDiscontinuity(),this._loadSegment(s);else{var a=g.getNearestKeyframe(e);this._internalAbort(),this._remuxer.seek(e),this._remuxer.insertDiscontinuity(),this._demuxer.resetMediaInfo(),this._demuxer.timestampBase=this._mediaDataSource.segments[s].timestampBase,this._loadSegment(s,a.fileposition),this._pendingResolveSeekPoint=a.milliseconds,this._reportSegmentMediaInfo(s)}}this._enableStatisticsReporter()}},i.prototype._searchSegmentIndexContains=function(e){for(var s=this._mediaDataSource.segments,l=s.length-1,a=0;a0)this._demuxer.bindDataSource(this._ioctl),this._demuxer.timestampBase=this._mediaDataSource.segments[this._currentSegmentIndex].timestampBase,g=this._demuxer.parseChunks(e,s);else if((a=o.default.probe(e)).match){this._demuxer=new o.default(a,this._config),this._remuxer||(this._remuxer=new v.default(this._config));var A=this._mediaDataSource;A.duration!=null&&!isNaN(A.duration)&&(this._demuxer.overridedDuration=A.duration),typeof A.hasAudio=="boolean"&&(this._demuxer.overridedHasAudio=A.hasAudio),typeof A.hasVideo=="boolean"&&(this._demuxer.overridedHasVideo=A.hasVideo),this._demuxer.timestampBase=A.segments[this._currentSegmentIndex].timestampBase,this._demuxer.onError=this._onDemuxException.bind(this),this._demuxer.onMediaInfo=this._onMediaInfo.bind(this),this._demuxer.onMetaDataArrived=this._onMetaDataArrived.bind(this),this._demuxer.onScriptDataArrived=this._onScriptDataArrived.bind(this),this._remuxer.bindDataSource(this._demuxer.bindDataSource(this._ioctl)),this._remuxer.onInitSegment=this._onRemuxerInitSegmentArrival.bind(this),this._remuxer.onMediaSegment=this._onRemuxerMediaSegmentArrival.bind(this),g=this._demuxer.parseChunks(e,s)}else a=null,f.default.e(this.TAG,"Non-FLV, Unsupported media type!"),Promise.resolve().then(function(){l._internalAbort()}),this._emitter.emit(r.default.DEMUX_ERROR,c.default.FORMAT_UNSUPPORTED,"Non-FLV, Unsupported media type"),g=0;return g},i.prototype._onMediaInfo=function(e){var s=this;this._mediaInfo==null&&(this._mediaInfo=Object.assign({},e),this._mediaInfo.keyframesIndex=null,this._mediaInfo.segments=[],this._mediaInfo.segmentCount=this._mediaDataSource.segments.length,Object.setPrototypeOf(this._mediaInfo,d.default.prototype));var l=Object.assign({},e);Object.setPrototypeOf(l,d.default.prototype),this._mediaInfo.segments[this._currentSegmentIndex]=l,this._reportSegmentMediaInfo(this._currentSegmentIndex),this._pendingSeekTime!=null&&Promise.resolve().then(function(){var a=s._pendingSeekTime;s._pendingSeekTime=null,s.seek(a)})},i.prototype._onMetaDataArrived=function(e){this._emitter.emit(r.default.METADATA_ARRIVED,e)},i.prototype._onScriptDataArrived=function(e){this._emitter.emit(r.default.SCRIPTDATA_ARRIVED,e)},i.prototype._onIOSeeked=function(){this._remuxer.insertDiscontinuity()},i.prototype._onIOComplete=function(e){var s=e,l=s+1;l0&&l[0].originalDts===a&&(a=l[0].pts),this._emitter.emit(r.default.RECOMMEND_SEEKPOINT,a)}},i.prototype._enableStatisticsReporter=function(){this._statisticsReporter==null&&(this._statisticsReporter=self.setInterval(this._reportStatisticsInfo.bind(this),this._config.statisticsInfoReportInterval))},i.prototype._disableStatisticsReporter=function(){this._statisticsReporter&&(self.clearInterval(this._statisticsReporter),this._statisticsReporter=null)},i.prototype._reportSegmentMediaInfo=function(e){var s=this._mediaInfo.segments[e],l=Object.assign({},s);l.duration=this._mediaInfo.duration,l.segmentCount=this._mediaInfo.segmentCount,delete l.segments,delete l.keyframesIndex,this._emitter.emit(r.default.MEDIA_INFO,l)},i.prototype._reportStatisticsInfo=function(){var e={};e.url=this._ioctl.currentURL,e.hasRedirect=this._ioctl.hasRedirect,e.hasRedirect&&(e.redirectedURL=this._ioctl.currentRedirectedURL),e.speed=this._ioctl.currentSpeed,e.loaderType=this._ioctl.loaderType,e.currentSegmentIndex=this._currentSegmentIndex,e.totalSegmentCount=this._mediaDataSource.segments.length,this._emitter.emit(r.default.STATISTICS_INFO,e)},i}();m.default=t},"./src/core/transmuxing-events.js":function(h,m,M){M.r(m);var T={IO_ERROR:"io_error",DEMUX_ERROR:"demux_error",INIT_SEGMENT:"init_segment",MEDIA_SEGMENT:"media_segment",LOADING_COMPLETE:"loading_complete",RECOVERED_EARLY_EOF:"recovered_early_eof",MEDIA_INFO:"media_info",METADATA_ARRIVED:"metadata_arrived",SCRIPTDATA_ARRIVED:"scriptdata_arrived",STATISTICS_INFO:"statistics_info",RECOMMEND_SEEKPOINT:"recommend_seekpoint"};m.default=T},"./src/core/transmuxing-worker.js":function(h,m,M){M.r(m);var T=M("./src/utils/logging-control.js"),p=M("./src/utils/polyfill.js"),f=M("./src/core/transmuxing-controller.js"),n=M("./src/core/transmuxing-events.js"),d=function(o){var v=null,c=y.bind(this);p.default.install(),o.addEventListener("message",function(E){switch(E.data.cmd){case"init":v=new f.default(E.data.param[0],E.data.param[1]),v.on(n.default.IO_ERROR,g.bind(this)),v.on(n.default.DEMUX_ERROR,A.bind(this)),v.on(n.default.INIT_SEGMENT,u.bind(this)),v.on(n.default.MEDIA_SEGMENT,r.bind(this)),v.on(n.default.LOADING_COMPLETE,t.bind(this)),v.on(n.default.RECOVERED_EARLY_EOF,i.bind(this)),v.on(n.default.MEDIA_INFO,e.bind(this)),v.on(n.default.METADATA_ARRIVED,s.bind(this)),v.on(n.default.SCRIPTDATA_ARRIVED,l.bind(this)),v.on(n.default.STATISTICS_INFO,a.bind(this)),v.on(n.default.RECOMMEND_SEEKPOINT,D.bind(this));break;case"destroy":v&&(v.destroy(),v=null),o.postMessage({msg:"destroyed"});break;case"start":v.start();break;case"stop":v.stop();break;case"seek":v.seek(E.data.param);break;case"pause":v.pause();break;case"resume":v.resume();break;case"logging_config":{var _=E.data.param;T.default.applyConfig(_),_.enableCallback===!0?T.default.addLogListener(c):T.default.removeLogListener(c);break}}});function u(E,_){var L={msg:n.default.INIT_SEGMENT,data:{type:E,data:_}};o.postMessage(L,[_.data])}function r(E,_){var L={msg:n.default.MEDIA_SEGMENT,data:{type:E,data:_}};o.postMessage(L,[_.data])}function t(){var E={msg:n.default.LOADING_COMPLETE};o.postMessage(E)}function i(){var E={msg:n.default.RECOVERED_EARLY_EOF};o.postMessage(E)}function e(E){var _={msg:n.default.MEDIA_INFO,data:E};o.postMessage(_)}function s(E){var _={msg:n.default.METADATA_ARRIVED,data:E};o.postMessage(_)}function l(E){var _={msg:n.default.SCRIPTDATA_ARRIVED,data:E};o.postMessage(_)}function a(E){var _={msg:n.default.STATISTICS_INFO,data:E};o.postMessage(_)}function g(E,_){o.postMessage({msg:n.default.IO_ERROR,data:{type:E,info:_}})}function A(E,_){o.postMessage({msg:n.default.DEMUX_ERROR,data:{type:E,info:_}})}function D(E){o.postMessage({msg:n.default.RECOMMEND_SEEKPOINT,data:E})}function y(E,_){o.postMessage({msg:"logcat_callback",data:{type:E,logcat:_}})}};m.default=d},"./src/demux/amf-parser.js":function(h,m,M){M.r(m);var T=M("./src/utils/logger.js"),p=M("./src/utils/utf8-conv.js"),f=M("./src/utils/exception.js"),n=function(){var o=new ArrayBuffer(2);return new DataView(o).setInt16(0,256,!0),new Int16Array(o)[0]===256}(),d=function(){function o(){}return o.parseScriptData=function(v,c,u){var r={};try{var t=o.parseValue(v,c,u),i=o.parseValue(v,c+t.size,u-t.size);r[t.data]=i.data}catch(e){T.default.e("AMF",e.toString())}return r},o.parseObject=function(v,c,u){if(u<3)throw new f.IllegalStateException("Data not enough when parse ScriptDataObject");var r=o.parseString(v,c,u),t=o.parseValue(v,c+r.size,u-r.size),i=t.objectEnd;return{data:{name:r.data,value:t.data},size:r.size+t.size,objectEnd:i}},o.parseVariable=function(v,c,u){return o.parseObject(v,c,u)},o.parseString=function(v,c,u){if(u<2)throw new f.IllegalStateException("Data not enough when parse String");var r=new DataView(v,c,u),t=r.getUint16(0,!n),i;return t>0?i=(0,p.default)(new Uint8Array(v,c+2,t)):i="",{data:i,size:2+t}},o.parseLongString=function(v,c,u){if(u<4)throw new f.IllegalStateException("Data not enough when parse LongString");var r=new DataView(v,c,u),t=r.getUint32(0,!n),i;return t>0?i=(0,p.default)(new Uint8Array(v,c+4,t)):i="",{data:i,size:4+t}},o.parseDate=function(v,c,u){if(u<10)throw new f.IllegalStateException("Data size invalid when parse Date");var r=new DataView(v,c,u),t=r.getFloat64(0,!n),i=r.getInt16(8,!n);return t+=i*60*1e3,{data:new Date(t),size:8+2}},o.parseValue=function(v,c,u){if(u<1)throw new f.IllegalStateException("Data not enough when parse Value");var r=new DataView(v,c,u),t=1,i=r.getUint8(0),e,s=!1;try{switch(i){case 0:e=r.getFloat64(1,!n),t+=8;break;case 1:{var l=r.getUint8(1);e=!!l,t+=1;break}case 2:{var a=o.parseString(v,c+1,u-1);e=a.data,t+=a.size;break}case 3:{e={};var g=0;for((r.getUint32(u-4,!n)&16777215)===9&&(g=3);t32)throw new T.InvalidArgumentException("ExpGolomb: readBits() bits exceeded max 32bits!");if(n<=this._current_word_bits_left){var d=this._current_word>>>32-n;return this._current_word<<=n,this._current_word_bits_left-=n,d}var o=this._current_word_bits_left?this._current_word:0;o=o>>>32-this._current_word_bits_left;var v=n-this._current_word_bits_left;this._fillCurrentWord();var c=Math.min(v,this._current_word_bits_left),u=this._current_word>>>32-c;return this._current_word<<=c,this._current_word_bits_left-=c,o=o<>>n)!==0)return this._current_word<<=n,this._current_word_bits_left-=n,n;return this._fillCurrentWord(),n+this._skipLeadingZero()},f.prototype.readUEG=function(){var n=this._skipLeadingZero();return this.readBits(n+1)-1},f.prototype.readSEG=function(){var n=this.readUEG();return n&1?n+1>>>1:-1*(n>>>1)},f}();m.default=p},"./src/demux/flv-demuxer.js":function(h,m,M){M.r(m);var T=M("./src/utils/logger.js"),p=M("./src/demux/amf-parser.js"),f=M("./src/demux/sps-parser.js"),n=M("./src/demux/demux-errors.js"),d=M("./src/core/media-info.js"),o=M("./src/utils/exception.js");function v(u,r){return u[r]<<24|u[r+1]<<16|u[r+2]<<8|u[r+3]}var c=function(){function u(r,t){this.TAG="FLVDemuxer",this._config=t,this._onError=null,this._onMediaInfo=null,this._onMetaDataArrived=null,this._onScriptDataArrived=null,this._onTrackMetadata=null,this._onDataAvailable=null,this._dataOffset=r.dataOffset,this._firstParse=!0,this._dispatch=!1,this._hasAudio=r.hasAudioTrack,this._hasVideo=r.hasVideoTrack,this._hasAudioFlagOverrided=!1,this._hasVideoFlagOverrided=!1,this._audioInitialMetadataDispatched=!1,this._videoInitialMetadataDispatched=!1,this._mediaInfo=new d.default,this._mediaInfo.hasAudio=this._hasAudio,this._mediaInfo.hasVideo=this._hasVideo,this._metadata=null,this._audioMetadata=null,this._videoMetadata=null,this._naluLengthSize=4,this._timestampBase=0,this._timescale=1e3,this._duration=0,this._durationOverrided=!1,this._referenceFrameRate={fixed:!0,fps:23.976,fps_num:23976,fps_den:1e3},this._flvSoundRateTable=[5500,11025,22050,44100,48e3],this._mpegSamplingRates=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],this._mpegAudioV10SampleRateTable=[44100,48e3,32e3,0],this._mpegAudioV20SampleRateTable=[22050,24e3,16e3,0],this._mpegAudioV25SampleRateTable=[11025,12e3,8e3,0],this._mpegAudioL1BitRateTable=[0,32,64,96,128,160,192,224,256,288,320,352,384,416,448,-1],this._mpegAudioL2BitRateTable=[0,32,48,56,64,80,96,112,128,160,192,224,256,320,384,-1],this._mpegAudioL3BitRateTable=[0,32,40,48,56,64,80,96,112,128,160,192,224,256,320,-1],this._videoTrack={type:"video",id:1,sequenceNumber:0,samples:[],length:0},this._audioTrack={type:"audio",id:2,sequenceNumber:0,samples:[],length:0},this._littleEndian=function(){var i=new ArrayBuffer(2);return new DataView(i).setInt16(0,256,!0),new Int16Array(i)[0]===256}()}return u.prototype.destroy=function(){this._mediaInfo=null,this._metadata=null,this._audioMetadata=null,this._videoMetadata=null,this._videoTrack=null,this._audioTrack=null,this._onError=null,this._onMediaInfo=null,this._onMetaDataArrived=null,this._onScriptDataArrived=null,this._onTrackMetadata=null,this._onDataAvailable=null},u.probe=function(r){var t=new Uint8Array(r),i={match:!1};if(t[0]!==70||t[1]!==76||t[2]!==86||t[3]!==1)return i;var e=(t[4]&4)>>>2!==0,s=(t[4]&1)!==0,l=v(t,5);return l<9?i:{match:!0,consumed:l,dataOffset:l,hasAudioTrack:e,hasVideoTrack:s}},u.prototype.bindDataSource=function(r){return r.onDataArrival=this.parseChunks.bind(this),this},Object.defineProperty(u.prototype,"onTrackMetadata",{get:function(){return this._onTrackMetadata},set:function(r){this._onTrackMetadata=r},enumerable:!1,configurable:!0}),Object.defineProperty(u.prototype,"onMediaInfo",{get:function(){return this._onMediaInfo},set:function(r){this._onMediaInfo=r},enumerable:!1,configurable:!0}),Object.defineProperty(u.prototype,"onMetaDataArrived",{get:function(){return this._onMetaDataArrived},set:function(r){this._onMetaDataArrived=r},enumerable:!1,configurable:!0}),Object.defineProperty(u.prototype,"onScriptDataArrived",{get:function(){return this._onScriptDataArrived},set:function(r){this._onScriptDataArrived=r},enumerable:!1,configurable:!0}),Object.defineProperty(u.prototype,"onError",{get:function(){return this._onError},set:function(r){this._onError=r},enumerable:!1,configurable:!0}),Object.defineProperty(u.prototype,"onDataAvailable",{get:function(){return this._onDataAvailable},set:function(r){this._onDataAvailable=r},enumerable:!1,configurable:!0}),Object.defineProperty(u.prototype,"timestampBase",{get:function(){return this._timestampBase},set:function(r){this._timestampBase=r},enumerable:!1,configurable:!0}),Object.defineProperty(u.prototype,"overridedDuration",{get:function(){return this._duration},set:function(r){this._durationOverrided=!0,this._duration=r,this._mediaInfo.duration=r},enumerable:!1,configurable:!0}),Object.defineProperty(u.prototype,"overridedHasAudio",{set:function(r){this._hasAudioFlagOverrided=!0,this._hasAudio=r,this._mediaInfo.hasAudio=r},enumerable:!1,configurable:!0}),Object.defineProperty(u.prototype,"overridedHasVideo",{set:function(r){this._hasVideoFlagOverrided=!0,this._hasVideo=r,this._mediaInfo.hasVideo=r},enumerable:!1,configurable:!0}),u.prototype.resetMediaInfo=function(){this._mediaInfo=new d.default},u.prototype._isInitialMetadataDispatched=function(){return this._hasAudio&&this._hasVideo?this._audioInitialMetadataDispatched&&this._videoInitialMetadataDispatched:this._hasAudio&&!this._hasVideo?this._audioInitialMetadataDispatched:!this._hasAudio&&this._hasVideo?this._videoInitialMetadataDispatched:!1},u.prototype.parseChunks=function(r,t){if(!this._onError||!this._onMediaInfo||!this._onTrackMetadata||!this._onDataAvailable)throw new o.IllegalStateException("Flv: onError & onMediaInfo & onTrackMetadata & onDataAvailable callback must be specified");var i=0,e=this._littleEndian;if(t===0)if(r.byteLength>13){var s=u.probe(r);i=s.dataOffset}else return 0;if(this._firstParse){this._firstParse=!1,t+i!==this._dataOffset&&T.default.w(this.TAG,"First time parsing but chunk byteStart invalid!");var l=new DataView(r,i),a=l.getUint32(0,!e);a!==0&&T.default.w(this.TAG,"PrevTagSize0 !== 0 !!!"),i+=4}for(;ir.byteLength)break;var g=l.getUint8(0),A=l.getUint32(0,!e)&16777215;if(i+11+A+4>r.byteLength)break;if(g!==8&&g!==9&&g!==18){T.default.w(this.TAG,"Unsupported tag type "+g+", skipped"),i+=11+A+4;continue}var D=l.getUint8(4),y=l.getUint8(5),E=l.getUint8(6),_=l.getUint8(7),L=E|y<<8|D<<16|_<<24,I=l.getUint32(7,!e)&16777215;I!==0&&T.default.w(this.TAG,"Meet tag which has StreamID != 0!");var b=i+11;switch(g){case 8:this._parseAudioData(r,b,A,L);break;case 9:this._parseVideoData(r,b,A,L,t+i);break;case 18:this._parseScriptData(r,b,A);break}var R=l.getUint32(11+A,!e);R!==11+A&&T.default.w(this.TAG,"Invalid PrevTagSize "+R),i+=11+A+4}return this._isInitialMetadataDispatched()&&this._dispatch&&(this._audioTrack.length||this._videoTrack.length)&&this._onDataAvailable(this._audioTrack,this._videoTrack),i},u.prototype._parseScriptData=function(r,t,i){var e=p.default.parseScriptData(r,t,i);if(e.hasOwnProperty("onMetaData")){if(e.onMetaData==null||typeof e.onMetaData!="object"){T.default.w(this.TAG,"Invalid onMetaData structure!");return}this._metadata&&T.default.w(this.TAG,"Found another onMetaData tag!"),this._metadata=e;var s=this._metadata.onMetaData;if(this._onMetaDataArrived&&this._onMetaDataArrived(Object.assign({},s)),typeof s.hasAudio=="boolean"&&this._hasAudioFlagOverrided===!1&&(this._hasAudio=s.hasAudio,this._mediaInfo.hasAudio=this._hasAudio),typeof s.hasVideo=="boolean"&&this._hasVideoFlagOverrided===!1&&(this._hasVideo=s.hasVideo,this._mediaInfo.hasVideo=this._hasVideo),typeof s.audiodatarate=="number"&&(this._mediaInfo.audioDataRate=s.audiodatarate),typeof s.videodatarate=="number"&&(this._mediaInfo.videoDataRate=s.videodatarate),typeof s.width=="number"&&(this._mediaInfo.width=s.width),typeof s.height=="number"&&(this._mediaInfo.height=s.height),typeof s.duration=="number"){if(!this._durationOverrided){var l=Math.floor(s.duration*this._timescale);this._duration=l,this._mediaInfo.duration=l}}else this._mediaInfo.duration=0;if(typeof s.framerate=="number"){var a=Math.floor(s.framerate*1e3);if(a>0){var g=a/1e3;this._referenceFrameRate.fixed=!0,this._referenceFrameRate.fps=g,this._referenceFrameRate.fps_num=a,this._referenceFrameRate.fps_den=1e3,this._mediaInfo.fps=g}}if(typeof s.keyframes=="object"){this._mediaInfo.hasKeyframesIndex=!0;var A=s.keyframes;this._mediaInfo.keyframesIndex=this._parseKeyframesIndex(A),s.keyframes=null}else this._mediaInfo.hasKeyframesIndex=!1;this._dispatch=!1,this._mediaInfo.metadata=s,T.default.v(this.TAG,"Parsed onMetaData"),this._mediaInfo.isComplete()&&this._onMediaInfo(this._mediaInfo)}Object.keys(e).length>0&&this._onScriptDataArrived&&this._onScriptDataArrived(Object.assign({},e))},u.prototype._parseKeyframesIndex=function(r){for(var t=[],i=[],e=1;e>>4;if(a!==2&&a!==10){this._onError(n.default.CODEC_UNSUPPORTED,"Flv: Unsupported audio codec idx: "+a);return}var g=0,A=(l&12)>>>2;if(A>=0&&A<=4)g=this._flvSoundRateTable[A];else{this._onError(n.default.FORMAT_ERROR,"Flv: Invalid audio sample rate idx: "+A);return}var D=l&1,y=this._audioMetadata,E=this._audioTrack;if(y||(this._hasAudio===!1&&this._hasAudioFlagOverrided===!1&&(this._hasAudio=!0,this._mediaInfo.hasAudio=!0),y=this._audioMetadata={},y.type="audio",y.id=E.id,y.timescale=this._timescale,y.duration=this._duration,y.audioSampleRate=g,y.channelCount=D===0?1:2),a===10){var _=this._parseAACAudioData(r,t+1,i-1);if(_==null)return;if(_.packetType===0){y.config&&T.default.w(this.TAG,"Found another AudioSpecificConfig!");var L=_.data;y.audioSampleRate=L.samplingRate,y.channelCount=L.channelCount,y.codec=L.codec,y.originalCodec=L.originalCodec,y.config=L.config,y.refSampleDuration=1024/y.audioSampleRate*y.timescale,T.default.v(this.TAG,"Parsed AudioSpecificConfig"),this._isInitialMetadataDispatched()?this._dispatch&&(this._audioTrack.length||this._videoTrack.length)&&this._onDataAvailable(this._audioTrack,this._videoTrack):this._audioInitialMetadataDispatched=!0,this._dispatch=!1,this._onTrackMetadata("audio",y);var I=this._mediaInfo;I.audioCodec=y.originalCodec,I.audioSampleRate=y.audioSampleRate,I.audioChannelCount=y.channelCount,I.hasVideo?I.videoCodec!=null&&(I.mimeType='video/x-flv; codecs="'+I.videoCodec+","+I.audioCodec+'"'):I.mimeType='video/x-flv; codecs="'+I.audioCodec+'"',I.isComplete()&&this._onMediaInfo(I)}else if(_.packetType===1){var b=this._timestampBase+e,R={unit:_.data,length:_.data.byteLength,dts:b,pts:b};E.samples.push(R),E.length+=_.data.length}else T.default.e(this.TAG,"Flv: Unsupported AAC data type "+_.packetType)}else if(a===2){if(!y.codec){var L=this._parseMP3AudioData(r,t+1,i-1,!0);if(L==null)return;y.audioSampleRate=L.samplingRate,y.channelCount=L.channelCount,y.codec=L.codec,y.originalCodec=L.originalCodec,y.refSampleDuration=1152/y.audioSampleRate*y.timescale,T.default.v(this.TAG,"Parsed MPEG Audio Frame Header"),this._audioInitialMetadataDispatched=!0,this._onTrackMetadata("audio",y);var I=this._mediaInfo;I.audioCodec=y.codec,I.audioSampleRate=y.audioSampleRate,I.audioChannelCount=y.channelCount,I.audioDataRate=L.bitRate,I.hasVideo?I.videoCodec!=null&&(I.mimeType='video/x-flv; codecs="'+I.videoCodec+","+I.audioCodec+'"'):I.mimeType='video/x-flv; codecs="'+I.audioCodec+'"',I.isComplete()&&this._onMediaInfo(I)}var P=this._parseMP3AudioData(r,t+1,i-1,!1);if(P==null)return;var b=this._timestampBase+e,w={unit:P,length:P.byteLength,dts:b,pts:b};E.samples.push(w),E.length+=P.length}}},u.prototype._parseAACAudioData=function(r,t,i){if(i<=1){T.default.w(this.TAG,"Flv: Invalid AAC packet, missing AACPacketType or/and Data!");return}var e={},s=new Uint8Array(r,t,i);return e.packetType=s[0],s[0]===0?e.data=this._parseAACAudioSpecificConfig(r,t+1,i-1):e.data=s.subarray(1),e},u.prototype._parseAACAudioSpecificConfig=function(r,t,i){var e=new Uint8Array(r,t,i),s=null,l=0,a=0,g=0,A=null;if(l=a=e[0]>>>3,g=(e[0]&7)<<1|e[1]>>>7,g<0||g>=this._mpegSamplingRates.length){this._onError(n.default.FORMAT_ERROR,"Flv: AAC invalid sampling frequency index!");return}var D=this._mpegSamplingRates[g],y=(e[1]&120)>>>3;if(y<0||y>=8){this._onError(n.default.FORMAT_ERROR,"Flv: AAC invalid channel configuration");return}l===5&&(A=(e[1]&7)<<1|e[2]>>>7,(e[2]&124)>>>2);var E=self.navigator.userAgent.toLowerCase();return E.indexOf("firefox")!==-1?g>=6?(l=5,s=new Array(4),A=g-3):(l=2,s=new Array(2),A=g):E.indexOf("android")!==-1?(l=2,s=new Array(2),A=g):(l=5,A=g,s=new Array(4),g>=6?A=g-3:y===1&&(l=2,s=new Array(2),A=g)),s[0]=l<<3,s[0]|=(g&15)>>>1,s[1]=(g&15)<<7,s[1]|=(y&15)<<3,l===5&&(s[1]|=(A&15)>>>1,s[2]=(A&1)<<7,s[2]|=2<<2,s[3]=0),{config:s,samplingRate:D,channelCount:y,codec:"mp4a.40."+l,originalCodec:"mp4a.40."+a}},u.prototype._parseMP3AudioData=function(r,t,i,e){if(i<4){T.default.w(this.TAG,"Flv: Invalid MP3 packet, header missing!");return}this._littleEndian;var s=new Uint8Array(r,t,i),l=null;if(e){if(s[0]!==255)return;var a=s[1]>>>3&3,g=(s[1]&6)>>1,A=(s[2]&240)>>>4,D=(s[2]&12)>>>2,y=s[3]>>>6&3,E=y!==3?2:1,_=0,L=0,I="mp3";switch(a){case 0:_=this._mpegAudioV25SampleRateTable[D];break;case 2:_=this._mpegAudioV20SampleRateTable[D];break;case 3:_=this._mpegAudioV10SampleRateTable[D];break}switch(g){case 1:A>>4,g=l&15;if(g!==7){this._onError(n.default.CODEC_UNSUPPORTED,"Flv: Unsupported codec in video frame: "+g);return}this._parseAVCVideoPacket(r,t+1,i-1,e,s,a)}},u.prototype._parseAVCVideoPacket=function(r,t,i,e,s,l){if(i<4){T.default.w(this.TAG,"Flv: Invalid AVC packet, missing AVCPacketType or/and CompositionTime");return}var a=this._littleEndian,g=new DataView(r,t,i),A=g.getUint8(0),D=g.getUint32(0,!a)&16777215,y=D<<8>>8;if(A===0)this._parseAVCDecoderConfigurationRecord(r,t+4,i-4);else if(A===1)this._parseAVCVideoData(r,t+4,i-4,e,s,l,y);else if(A!==2){this._onError(n.default.FORMAT_ERROR,"Flv: Invalid video packet type "+A);return}},u.prototype._parseAVCDecoderConfigurationRecord=function(r,t,i){if(i<7){T.default.w(this.TAG,"Flv: Invalid AVCDecoderConfigurationRecord, lack of data!");return}var e=this._videoMetadata,s=this._videoTrack,l=this._littleEndian,a=new DataView(r,t,i);e?typeof e.avcc!="undefined"&&T.default.w(this.TAG,"Found another AVCDecoderConfigurationRecord!"):(this._hasVideo===!1&&this._hasVideoFlagOverrided===!1&&(this._hasVideo=!0,this._mediaInfo.hasVideo=!0),e=this._videoMetadata={},e.type="video",e.id=s.id,e.timescale=this._timescale,e.duration=this._duration);var g=a.getUint8(0),A=a.getUint8(1);if(a.getUint8(2),a.getUint8(3),g!==1||A===0){this._onError(n.default.FORMAT_ERROR,"Flv: Invalid AVCDecoderConfigurationRecord");return}if(this._naluLengthSize=(a.getUint8(4)&3)+1,this._naluLengthSize!==3&&this._naluLengthSize!==4){this._onError(n.default.FORMAT_ERROR,"Flv: Strange NaluLengthSizeMinusOne: "+(this._naluLengthSize-1));return}var D=a.getUint8(5)&31;if(D===0){this._onError(n.default.FORMAT_ERROR,"Flv: Invalid AVCDecoderConfigurationRecord: No SPS");return}else D>1&&T.default.w(this.TAG,"Flv: Strange AVCDecoderConfigurationRecord: SPS Count = "+D);for(var y=6,E=0;E1&&T.default.w(this.TAG,"Flv: Strange AVCDecoderConfigurationRecord: PPS Count = "+U);y++;for(var E=0;E=i){T.default.w(this.TAG,"Malformed Nalu near timestamp "+L+", offset = "+E+", dataSize = "+i);break}var b=A.getUint32(E,!g);if(_===3&&(b>>>=8),b>i-_){T.default.w(this.TAG,"Malformed Nalus near timestamp "+L+", NaluSize > DataSize!");return}var R=A.getUint8(E+_)&31;R===5&&(I=!0);var P=new Uint8Array(r,t+E,_+b),w={type:R,data:P};D.push(w),y+=P.byteLength,E+=_+b}if(D.length){var F=this._videoTrack,k={units:D,length:y,isKeyframe:I,dts:L,cts:a,pts:L+a};I&&(k.fileposition=s),F.samples.push(k),F.length+=y}},u}();m.default=c},"./src/demux/sps-parser.js":function(h,m,M){M.r(m);var T=M("./src/demux/exp-golomb.js"),p=function(){function f(){}return f._ebsp2rbsp=function(n){for(var d=n,o=d.byteLength,v=new Uint8Array(o),c=0,u=0;u=2&&d[u]===3&&d[u-1]===0&&d[u-2]===0||(v[c]=d[u],c++);return new Uint8Array(v.buffer,0,c)},f.parseSPS=function(n){var d=f._ebsp2rbsp(n),o=new T.default(d);o.readByte();var v=o.readByte();o.readByte();var c=o.readByte();o.readUEG();var u=f.getProfileString(v),r=f.getLevelString(c),t=1,i=420,e=[0,420,422,444],s=8;if((v===100||v===110||v===122||v===244||v===44||v===83||v===86||v===118||v===128||v===138||v===144)&&(t=o.readUEG(),t===3&&o.readBits(1),t<=3&&(i=e[t]),s=o.readUEG()+8,o.readUEG(),o.readBits(1),o.readBool()))for(var l=t!==3?8:12,a=0;a0&&N<16?(w=Z[N-1],F=X[N-1]):N===255&&(w=o.readByte()<<8|o.readByte(),F=o.readByte()<<8|o.readByte())}if(o.readBool()&&o.readBool(),o.readBool()&&(o.readBits(4),o.readBool()&&o.readBits(24)),o.readBool()&&(o.readUEG(),o.readUEG()),o.readBool()){var Y=o.readBits(32),ee=o.readBits(32);B=o.readBool(),U=ee,j=Y*2,k=U/j}}var Q=1;(w!==1||F!==1)&&(Q=w/F);var G=0,q=0;if(t===0)G=1,q=2-_;else{var te=t===3?1:2,ie=t===1?2:1;G=te,q=ie*(2-_)}var ne=(y+1)*16,le=(2-_)*((E+1)*16);ne-=(L+I)*G,le-=(b+R)*q;var se=Math.ceil(ne*Q);return o.destroy(),o=null,{profile_string:u,level_string:r,bit_depth:s,ref_frames:D,chroma_format:i,chroma_format_string:f.getChromaFormatString(i),frame_rate:{fixed:B,fps:k,fps_den:j,fps_num:U},sar_ratio:{width:w,height:F},codec_size:{width:ne,height:le},present_size:{width:se,height:le}}},f._skipScalingList=function(n,d){for(var o=8,v=8,c=0,u=0;u=15048,u=T.default.msedge?c:!0;return self.fetch&&self.ReadableStream&&u}catch{return!1}},v.prototype.destroy=function(){this.isWorking()&&this.abort(),o.prototype.destroy.call(this)},v.prototype.open=function(c,u){var r=this;this._dataSource=c,this._range=u;var t=c.url;this._config.reuseRedirectedURL&&c.redirectedURL!=null&&(t=c.redirectedURL);var i=this._seekHandler.getConfig(t,u),e=new self.Headers;if(typeof i.headers=="object"){var s=i.headers;for(var l in s)s.hasOwnProperty(l)&&e.append(l,s[l])}var a={method:"GET",headers:e,mode:"cors",cache:"default",referrerPolicy:"no-referrer-when-downgrade"};if(typeof this._config.headers=="object")for(var l in this._config.headers)e.append(l,this._config.headers[l]);c.cors===!1&&(a.mode="same-origin"),c.withCredentials&&(a.credentials="include"),c.referrerPolicy&&(a.referrerPolicy=c.referrerPolicy),self.AbortController&&(this._abortController=new self.AbortController,a.signal=this._abortController.signal),this._status=p.LoaderStatus.kConnecting,self.fetch(i.url,a).then(function(g){if(r._requestAbort){r._status=p.LoaderStatus.kIdle,g.body.cancel();return}if(g.ok&&g.status>=200&&g.status<=299){if(g.url!==i.url&&r._onURLRedirect){var A=r._seekHandler.removeURLParameters(g.url);r._onURLRedirect(A)}var D=g.headers.get("Content-Length");return D!=null&&(r._contentLength=parseInt(D),r._contentLength!==0&&r._onContentLengthKnown&&r._onContentLengthKnown(r._contentLength)),r._pump.call(r,g.body.getReader())}else if(r._status=p.LoaderStatus.kError,r._onError)r._onError(p.LoaderErrors.HTTP_STATUS_CODE_INVALID,{code:g.status,msg:g.statusText});else throw new f.RuntimeException("FetchStreamLoader: Http code invalid, "+g.status+" "+g.statusText)}).catch(function(g){if(!(r._abortController&&r._abortController.signal.aborted))if(r._status=p.LoaderStatus.kError,r._onError)r._onError(p.LoaderErrors.EXCEPTION,{code:-1,msg:g.message});else throw g})},v.prototype.abort=function(){if(this._requestAbort=!0,(this._status!==p.LoaderStatus.kBuffering||!T.default.chrome)&&this._abortController)try{this._abortController.abort()}catch{}},v.prototype._pump=function(c){var u=this;return c.read().then(function(r){if(r.done)if(u._contentLength!==null&&u._receivedLength0&&(this._stashInitialSize=s.stashInitialSize),this._stashUsed=0,this._stashSize=this._stashInitialSize,this._bufferSize=1024*1024*3,this._stashBuffer=new ArrayBuffer(this._bufferSize),this._stashByteStart=0,this._enableStash=!0,s.enableStashBuffer===!1&&(this._enableStash=!1),this._loader=null,this._loaderClass=null,this._seekHandler=null,this._dataSource=e,this._isWebSocketURL=/wss?:\/\/(.+?)/.test(e.url),this._refTotalLength=e.filesize?e.filesize:null,this._totalLength=this._refTotalLength,this._fullRequestFlag=!1,this._currentRange=null,this._redirectedURL=null,this._speedNormalized=0,this._speedSampler=new p.default,this._speedNormalizeList=[64,128,256,384,512,768,1024,1536,2048,3072,4096],this._isEarlyEofReconnecting=!1,this._paused=!1,this._resumeFrom=0,this._onDataArrival=null,this._onSeeked=null,this._onError=null,this._onComplete=null,this._onRedirect=null,this._onRecoveredEarlyEof=null,this._selectSeekHandler(),this._selectLoader(),this._createLoader()}return i.prototype.destroy=function(){this._loader.isWorking()&&this._loader.abort(),this._loader.destroy(),this._loader=null,this._loaderClass=null,this._dataSource=null,this._stashBuffer=null,this._stashUsed=this._stashSize=this._bufferSize=this._stashByteStart=0,this._currentRange=null,this._speedSampler=null,this._isEarlyEofReconnecting=!1,this._onDataArrival=null,this._onSeeked=null,this._onError=null,this._onComplete=null,this._onRedirect=null,this._onRecoveredEarlyEof=null,this._extraData=null},i.prototype.isWorking=function(){return this._loader&&this._loader.isWorking()&&!this._paused},i.prototype.isPaused=function(){return this._paused},Object.defineProperty(i.prototype,"status",{get:function(){return this._loader.status},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"extraData",{get:function(){return this._extraData},set:function(e){this._extraData=e},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"onDataArrival",{get:function(){return this._onDataArrival},set:function(e){this._onDataArrival=e},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"onSeeked",{get:function(){return this._onSeeked},set:function(e){this._onSeeked=e},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"onError",{get:function(){return this._onError},set:function(e){this._onError=e},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"onComplete",{get:function(){return this._onComplete},set:function(e){this._onComplete=e},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"onRedirect",{get:function(){return this._onRedirect},set:function(e){this._onRedirect=e},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"onRecoveredEarlyEof",{get:function(){return this._onRecoveredEarlyEof},set:function(e){this._onRecoveredEarlyEof=e},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"currentURL",{get:function(){return this._dataSource.url},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"hasRedirect",{get:function(){return this._redirectedURL!=null||this._dataSource.redirectedURL!=null},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"currentRedirectedURL",{get:function(){return this._redirectedURL||this._dataSource.redirectedURL},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"currentSpeed",{get:function(){return this._loaderClass===o.default?this._loader.currentSpeed:this._speedSampler.lastSecondKBps},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"loaderType",{get:function(){return this._loader.type},enumerable:!1,configurable:!0}),i.prototype._selectSeekHandler=function(){var e=this._config;if(e.seekType==="range")this._seekHandler=new c.default(this._config.rangeLoadZeroStart);else if(e.seekType==="param"){var s=e.seekParamStart||"bstart",l=e.seekParamEnd||"bend";this._seekHandler=new u.default(s,l)}else if(e.seekType==="custom"){if(typeof e.customSeekHandler!="function")throw new r.InvalidArgumentException("Custom seekType specified in config but invalid customSeekHandler!");this._seekHandler=new e.customSeekHandler}else throw new r.InvalidArgumentException("Invalid seekType in config: "+e.seekType)},i.prototype._selectLoader=function(){if(this._config.customLoader!=null)this._loaderClass=this._config.customLoader;else if(this._isWebSocketURL)this._loaderClass=v.default;else if(n.default.isSupported())this._loaderClass=n.default;else if(d.default.isSupported())this._loaderClass=d.default;else if(o.default.isSupported())this._loaderClass=o.default;else throw new r.RuntimeException("Your browser doesn't support xhr with arraybuffer responseType!")},i.prototype._createLoader=function(){this._loader=new this._loaderClass(this._seekHandler,this._config),this._loader.needStashBuffer===!1&&(this._enableStash=!1),this._loader.onContentLengthKnown=this._onContentLengthKnown.bind(this),this._loader.onURLRedirect=this._onURLRedirect.bind(this),this._loader.onDataArrival=this._onLoaderChunkArrival.bind(this),this._loader.onComplete=this._onLoaderComplete.bind(this),this._loader.onError=this._onLoaderError.bind(this)},i.prototype.open=function(e){this._currentRange={from:0,to:-1},e&&(this._currentRange.from=e),this._speedSampler.reset(),e||(this._fullRequestFlag=!0),this._loader.open(this._dataSource,Object.assign({},this._currentRange))},i.prototype.abort=function(){this._loader.abort(),this._paused&&(this._paused=!1,this._resumeFrom=0)},i.prototype.pause=function(){this.isWorking()&&(this._loader.abort(),this._stashUsed!==0?(this._resumeFrom=this._stashByteStart,this._currentRange.to=this._stashByteStart-1):this._resumeFrom=this._currentRange.to+1,this._stashUsed=0,this._stashByteStart=0,this._paused=!0)},i.prototype.resume=function(){if(this._paused){this._paused=!1;var e=this._resumeFrom;this._resumeFrom=0,this._internalSeek(e,!0)}},i.prototype.seek=function(e){this._paused=!1,this._stashUsed=0,this._stashByteStart=0,this._internalSeek(e,!0)},i.prototype._internalSeek=function(e,s){this._loader.isWorking()&&this._loader.abort(),this._flushStashBuffer(s),this._loader.destroy(),this._loader=null;var l={from:e,to:-1};this._currentRange={from:l.from,to:-1},this._speedSampler.reset(),this._stashSize=this._stashInitialSize,this._createLoader(),this._loader.open(this._dataSource,l),this._onSeeked&&this._onSeeked()},i.prototype.updateUrl=function(e){if(!e||typeof e!="string"||e.length===0)throw new r.InvalidArgumentException("Url must be a non-empty string!");this._dataSource.url=e},i.prototype._expandBuffer=function(e){for(var s=this._stashSize;s+1024*1024*10){var a=new Uint8Array(this._stashBuffer,0,this._stashUsed),g=new Uint8Array(l,0,s);g.set(a,0)}this._stashBuffer=l,this._bufferSize=s}},i.prototype._normalizeSpeed=function(e){var s=this._speedNormalizeList,l=s.length-1,a=0,g=0,A=l;if(e=s[a]&&e=512&&e<=1024?s=Math.floor(e*1.5):s=e*2,s>8192&&(s=8192);var l=s*1024+1024*1024*1;this._bufferSize0){var _=this._stashBuffer.slice(0,this._stashUsed),A=this._dispatchChunks(_,this._stashByteStart);if(A<_.byteLength){if(A>0){var E=new Uint8Array(_,A);y.set(E,0),this._stashUsed=E.byteLength,this._stashByteStart+=A}}else this._stashUsed=0,this._stashByteStart+=A;this._stashUsed+e.byteLength>this._bufferSize&&(this._expandBuffer(this._stashUsed+e.byteLength),y=new Uint8Array(this._stashBuffer,0,this._bufferSize)),y.set(new Uint8Array(e),this._stashUsed),this._stashUsed+=e.byteLength}else{var A=this._dispatchChunks(e,s);if(Athis._bufferSize&&(this._expandBuffer(D),y=new Uint8Array(this._stashBuffer,0,this._bufferSize)),y.set(new Uint8Array(e,A),0),this._stashUsed+=D,this._stashByteStart=s+A}}}else if(this._stashUsed===0){var A=this._dispatchChunks(e,s);if(Athis._bufferSize&&this._expandBuffer(D);var y=new Uint8Array(this._stashBuffer,0,this._bufferSize);y.set(new Uint8Array(e,A),0),this._stashUsed+=D,this._stashByteStart=s+A}}else{this._stashUsed+e.byteLength>this._bufferSize&&this._expandBuffer(this._stashUsed+e.byteLength);var y=new Uint8Array(this._stashBuffer,0,this._bufferSize);y.set(new Uint8Array(e),this._stashUsed),this._stashUsed+=e.byteLength;var A=this._dispatchChunks(this._stashBuffer.slice(0,this._stashUsed),this._stashByteStart);if(A0){var E=new Uint8Array(this._stashBuffer,A);y.set(E,0)}this._stashUsed-=A,this._stashByteStart+=A}}},i.prototype._flushStashBuffer=function(e){if(this._stashUsed>0){var s=this._stashBuffer.slice(0,this._stashUsed),l=this._dispatchChunks(s,this._stashByteStart),a=s.byteLength-l;if(l0){var g=new Uint8Array(this._stashBuffer,0,this._bufferSize),A=new Uint8Array(s,l);g.set(A,0),this._stashUsed=A.byteLength,this._stashByteStart+=l}return 0}return this._stashUsed=0,this._stashByteStart=0,a}return 0},i.prototype._onLoaderComplete=function(e,s){this._flushStashBuffer(!0),this._onComplete&&this._onComplete(this._extraData)},i.prototype._onLoaderError=function(e,s){switch(T.default.e(this.TAG,"Loader error, code = "+s.code+", msg = "+s.msg),this._flushStashBuffer(!1),this._isEarlyEofReconnecting&&(this._isEarlyEofReconnecting=!1,e=f.LoaderErrors.UNRECOVERABLE_EARLY_EOF),e){case f.LoaderErrors.EARLY_EOF:{if(!this._config.isLive&&this._totalLength){var l=this._currentRange.to+1;l0)for(var c=d.split("&"),u=0;u0;r[0]!==this._startName&&r[0]!==this._endName&&(t&&(v+="&"),v+=c[u])}return v.length===0?n:n+"?"+v},p}();m.default=T},"./src/io/range-seek-handler.js":function(h,m,M){M.r(m);var T=function(){function p(f){this._zeroStart=f||!1}return p.prototype.getConfig=function(f,n){var d={};if(n.from!==0||n.to!==-1){var o=void 0;n.to!==-1?o="bytes="+n.from.toString()+"-"+n.to.toString():o="bytes="+n.from.toString()+"-",d.Range=o}else this._zeroStart&&(d.Range="bytes=0-");return{url:f,headers:d}},p.prototype.removeURLParameters=function(f){return f},p}();m.default=T},"./src/io/speed-sampler.js":function(h,m,M){M.r(m);var T=function(){function p(){this._firstCheckpoint=0,this._lastCheckpoint=0,this._intervalBytes=0,this._totalBytes=0,this._lastSecondBytes=0,self.performance&&self.performance.now?this._now=self.performance.now.bind(self.performance):this._now=Date.now}return p.prototype.reset=function(){this._firstCheckpoint=this._lastCheckpoint=0,this._totalBytes=this._intervalBytes=0,this._lastSecondBytes=0},p.prototype.addBytes=function(f){this._firstCheckpoint===0?(this._firstCheckpoint=this._now(),this._lastCheckpoint=this._firstCheckpoint,this._intervalBytes+=f,this._totalBytes+=f):this._now()-this._lastCheckpoint<1e3?(this._intervalBytes+=f,this._totalBytes+=f):(this._lastSecondBytes=this._intervalBytes,this._intervalBytes=f,this._totalBytes+=f,this._lastCheckpoint=this._now())},Object.defineProperty(p.prototype,"currentKBps",{get:function(){this.addBytes(0);var f=(this._now()-this._lastCheckpoint)/1e3;return f==0&&(f=1),this._intervalBytes/f/1024},enumerable:!1,configurable:!0}),Object.defineProperty(p.prototype,"lastSecondKBps",{get:function(){return this.addBytes(0),this._lastSecondBytes!==0?this._lastSecondBytes/1024:this._now()-this._lastCheckpoint>=500?this.currentKBps:0},enumerable:!1,configurable:!0}),Object.defineProperty(p.prototype,"averageKBps",{get:function(){var f=(this._now()-this._firstCheckpoint)/1e3;return this._totalBytes/f/1024},enumerable:!1,configurable:!0}),p}();m.default=T},"./src/io/websocket-loader.js":function(h,m,M){M.r(m);var T=M("./src/io/loader.js"),p=M("./src/utils/exception.js"),f=function(){var d=function(o,v){return d=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(c,u){c.__proto__=u}||function(c,u){for(var r in u)Object.prototype.hasOwnProperty.call(u,r)&&(c[r]=u[r])},d(o,v)};return function(o,v){if(typeof v!="function"&&v!==null)throw new TypeError("Class extends value "+String(v)+" is not a constructor or null");d(o,v);function c(){this.constructor=o}o.prototype=v===null?Object.create(v):(c.prototype=v.prototype,new c)}}(),n=function(d){f(o,d);function o(){var v=d.call(this,"websocket-loader")||this;return v.TAG="WebSocketLoader",v._needStash=!0,v._ws=null,v._requestAbort=!1,v._receivedLength=0,v}return o.isSupported=function(){try{return typeof self.WebSocket!="undefined"}catch{return!1}},o.prototype.destroy=function(){this._ws&&this.abort(),d.prototype.destroy.call(this)},o.prototype.open=function(v){try{var c=this._ws=new self.WebSocket(v.url);c.binaryType="arraybuffer",c.onopen=this._onWebSocketOpen.bind(this),c.onclose=this._onWebSocketClose.bind(this),c.onmessage=this._onWebSocketMessage.bind(this),c.onerror=this._onWebSocketError.bind(this),this._status=T.LoaderStatus.kConnecting}catch(r){this._status=T.LoaderStatus.kError;var u={code:r.code,msg:r.message};if(this._onError)this._onError(T.LoaderErrors.EXCEPTION,u);else throw new p.RuntimeException(u.msg)}},o.prototype.abort=function(){var v=this._ws;v&&(v.readyState===0||v.readyState===1)&&(this._requestAbort=!0,v.close()),this._ws=null,this._status=T.LoaderStatus.kComplete},o.prototype._onWebSocketOpen=function(v){this._status=T.LoaderStatus.kBuffering},o.prototype._onWebSocketClose=function(v){if(this._requestAbort===!0){this._requestAbort=!1;return}this._status=T.LoaderStatus.kComplete,this._onComplete&&this._onComplete(0,this._receivedLength-1)},o.prototype._onWebSocketMessage=function(v){var c=this;if(v.data instanceof ArrayBuffer)this._dispatchArrayBuffer(v.data);else if(v.data instanceof Blob){var u=new FileReader;u.onload=function(){c._dispatchArrayBuffer(u.result)},u.readAsArrayBuffer(v.data)}else{this._status=T.LoaderStatus.kError;var r={code:-1,msg:"Unsupported WebSocket message type: "+v.data.constructor.name};if(this._onError)this._onError(T.LoaderErrors.EXCEPTION,r);else throw new p.RuntimeException(r.msg)}},o.prototype._dispatchArrayBuffer=function(v){var c=v,u=this._receivedLength;this._receivedLength+=c.byteLength,this._onDataArrival&&this._onDataArrival(c,u,this._receivedLength)},o.prototype._onWebSocketError=function(v){this._status=T.LoaderStatus.kError;var c={code:v.code,msg:v.message};if(this._onError)this._onError(T.LoaderErrors.EXCEPTION,c);else throw new p.RuntimeException(c.msg)},o}(T.BaseLoader);m.default=n},"./src/io/xhr-moz-chunked-loader.js":function(h,m,M){M.r(m);var T=M("./src/utils/logger.js"),p=M("./src/io/loader.js"),f=M("./src/utils/exception.js"),n=function(){var o=function(v,c){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(u,r){u.__proto__=r}||function(u,r){for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(u[t]=r[t])},o(v,c)};return function(v,c){if(typeof c!="function"&&c!==null)throw new TypeError("Class extends value "+String(c)+" is not a constructor or null");o(v,c);function u(){this.constructor=v}v.prototype=c===null?Object.create(c):(u.prototype=c.prototype,new u)}}(),d=function(o){n(v,o);function v(c,u){var r=o.call(this,"xhr-moz-chunked-loader")||this;return r.TAG="MozChunkedLoader",r._seekHandler=c,r._config=u,r._needStash=!0,r._xhr=null,r._requestAbort=!1,r._contentLength=null,r._receivedLength=0,r}return v.isSupported=function(){try{var c=new XMLHttpRequest;return c.open("GET","https://example.com",!0),c.responseType="moz-chunked-arraybuffer",c.responseType==="moz-chunked-arraybuffer"}catch(u){return T.default.w("MozChunkedLoader",u.message),!1}},v.prototype.destroy=function(){this.isWorking()&&this.abort(),this._xhr&&(this._xhr.onreadystatechange=null,this._xhr.onprogress=null,this._xhr.onloadend=null,this._xhr.onerror=null,this._xhr=null),o.prototype.destroy.call(this)},v.prototype.open=function(c,u){this._dataSource=c,this._range=u;var r=c.url;this._config.reuseRedirectedURL&&c.redirectedURL!=null&&(r=c.redirectedURL);var t=this._seekHandler.getConfig(r,u);this._requestURL=t.url;var i=this._xhr=new XMLHttpRequest;if(i.open("GET",t.url,!0),i.responseType="moz-chunked-arraybuffer",i.onreadystatechange=this._onReadyStateChange.bind(this),i.onprogress=this._onProgress.bind(this),i.onloadend=this._onLoadEnd.bind(this),i.onerror=this._onXhrError.bind(this),c.withCredentials&&(i.withCredentials=!0),typeof t.headers=="object"){var e=t.headers;for(var s in e)e.hasOwnProperty(s)&&i.setRequestHeader(s,e[s])}if(typeof this._config.headers=="object"){var e=this._config.headers;for(var s in e)e.hasOwnProperty(s)&&i.setRequestHeader(s,e[s])}this._status=p.LoaderStatus.kConnecting,i.send()},v.prototype.abort=function(){this._requestAbort=!0,this._xhr&&this._xhr.abort(),this._status=p.LoaderStatus.kComplete},v.prototype._onReadyStateChange=function(c){var u=c.target;if(u.readyState===2){if(u.responseURL!=null&&u.responseURL!==this._requestURL&&this._onURLRedirect){var r=this._seekHandler.removeURLParameters(u.responseURL);this._onURLRedirect(r)}if(u.status!==0&&(u.status<200||u.status>299))if(this._status=p.LoaderStatus.kError,this._onError)this._onError(p.LoaderErrors.HTTP_STATUS_CODE_INVALID,{code:u.status,msg:u.statusText});else throw new f.RuntimeException("MozChunkedLoader: Http code invalid, "+u.status+" "+u.statusText);else this._status=p.LoaderStatus.kBuffering}},v.prototype._onProgress=function(c){if(this._status!==p.LoaderStatus.kError){this._contentLength===null&&c.total!==null&&c.total!==0&&(this._contentLength=c.total,this._onContentLengthKnown&&this._onContentLengthKnown(this._contentLength));var u=c.target.response,r=this._range.from+this._receivedLength;this._receivedLength+=u.byteLength,this._onDataArrival&&this._onDataArrival(u,r,this._receivedLength)}},v.prototype._onLoadEnd=function(c){if(this._requestAbort===!0){this._requestAbort=!1;return}else if(this._status===p.LoaderStatus.kError)return;this._status=p.LoaderStatus.kComplete,this._onComplete&&this._onComplete(this._range.from,this._range.from+this._receivedLength-1)},v.prototype._onXhrError=function(c){this._status=p.LoaderStatus.kError;var u=0,r=null;if(this._contentLength&&c.loaded=this._contentLength&&(t=this._range.from+this._contentLength-1),this._currentRequestRange={from:r,to:t},this._internalOpen(this._dataSource,this._currentRequestRange)},c.prototype._internalOpen=function(u,r){this._lastTimeLoaded=0;var t=u.url;this._config.reuseRedirectedURL&&(this._currentRedirectedURL!=null?t=this._currentRedirectedURL:u.redirectedURL!=null&&(t=u.redirectedURL));var i=this._seekHandler.getConfig(t,r);this._currentRequestURL=i.url;var e=this._xhr=new XMLHttpRequest;if(e.open("GET",i.url,!0),e.responseType="arraybuffer",e.onreadystatechange=this._onReadyStateChange.bind(this),e.onprogress=this._onProgress.bind(this),e.onload=this._onLoad.bind(this),e.onerror=this._onXhrError.bind(this),u.withCredentials&&(e.withCredentials=!0),typeof i.headers=="object"){var s=i.headers;for(var l in s)s.hasOwnProperty(l)&&e.setRequestHeader(l,s[l])}if(typeof this._config.headers=="object"){var s=this._config.headers;for(var l in s)s.hasOwnProperty(l)&&e.setRequestHeader(l,s[l])}e.send()},c.prototype.abort=function(){this._requestAbort=!0,this._internalAbort(),this._status=f.LoaderStatus.kComplete},c.prototype._internalAbort=function(){this._xhr&&(this._xhr.onreadystatechange=null,this._xhr.onprogress=null,this._xhr.onload=null,this._xhr.onerror=null,this._xhr.abort(),this._xhr=null)},c.prototype._onReadyStateChange=function(u){var r=u.target;if(r.readyState===2){if(r.responseURL!=null){var t=this._seekHandler.removeURLParameters(r.responseURL);r.responseURL!==this._currentRequestURL&&t!==this._currentRedirectedURL&&(this._currentRedirectedURL=t,this._onURLRedirect&&this._onURLRedirect(t))}if(r.status>=200&&r.status<=299){if(this._waitForTotalLength)return;this._status=f.LoaderStatus.kBuffering}else if(this._status=f.LoaderStatus.kError,this._onError)this._onError(f.LoaderErrors.HTTP_STATUS_CODE_INVALID,{code:r.status,msg:r.statusText});else throw new n.RuntimeException("RangeLoader: Http code invalid, "+r.status+" "+r.statusText)}},c.prototype._onProgress=function(u){if(this._status!==f.LoaderStatus.kError){if(this._contentLength===null){var r=!1;if(this._waitForTotalLength){this._waitForTotalLength=!1,this._totalLengthReceived=!0,r=!0;var t=u.total;this._internalAbort(),t!=null&t!==0&&(this._totalLength=t)}if(this._range.to===-1?this._contentLength=this._totalLength-this._range.from:this._contentLength=this._range.to-this._range.from+1,r){this._openSubRange();return}this._onContentLengthKnown&&this._onContentLengthKnown(this._contentLength)}var i=u.loaded-this._lastTimeLoaded;this._lastTimeLoaded=u.loaded,this._speedSampler.addBytes(i)}},c.prototype._normalizeSpeed=function(u){var r=this._chunkSizeKBList,t=r.length-1,i=0,e=0,s=t;if(u=r[i]&&u=3&&(r=this._speedSampler.currentKBps)),r!==0){var t=this._normalizeSpeed(r);this._currentSpeedNormalized!==t&&(this._currentSpeedNormalized=t,this._currentChunkSizeKB=t)}var i=u.target.response,e=this._range.from+this._receivedLength;this._receivedLength+=i.byteLength;var s=!1;this._contentLength!=null&&this._receivedLength0&&this._receivedLength0&&(this._requestSetTime=!0,this._mediaElement.currentTime=0),this._transmuxer=new o.default(this._mediaDataSource,this._config),this._transmuxer.on(v.default.INIT_SEGMENT,function(a,g){l._msectl.appendInitSegment(g)}),this._transmuxer.on(v.default.MEDIA_SEGMENT,function(a,g){if(l._msectl.appendMediaSegment(g),l._config.lazyLoad&&!l._config.isLive){var A=l._mediaElement.currentTime;g.info.endDts>=(A+l._config.lazyLoadMaxDuration)*1e3&&l._progressChecker==null&&(f.default.v(l.TAG,"Maximum buffering duration exceeded, suspend transmuxing task"),l._suspendTransmuxer())}}),this._transmuxer.on(v.default.LOADING_COMPLETE,function(){l._msectl.endOfStream(),l._emitter.emit(d.default.LOADING_COMPLETE)}),this._transmuxer.on(v.default.RECOVERED_EARLY_EOF,function(){l._emitter.emit(d.default.RECOVERED_EARLY_EOF)}),this._transmuxer.on(v.default.IO_ERROR,function(a,g){l._emitter.emit(d.default.ERROR,r.ErrorTypes.NETWORK_ERROR,a,g)}),this._transmuxer.on(v.default.DEMUX_ERROR,function(a,g){l._emitter.emit(d.default.ERROR,r.ErrorTypes.MEDIA_ERROR,a,{code:-1,msg:g})}),this._transmuxer.on(v.default.MEDIA_INFO,function(a){l._mediaInfo=a,l._emitter.emit(d.default.MEDIA_INFO,Object.assign({},a))}),this._transmuxer.on(v.default.METADATA_ARRIVED,function(a){l._emitter.emit(d.default.METADATA_ARRIVED,a)}),this._transmuxer.on(v.default.SCRIPTDATA_ARRIVED,function(a){l._emitter.emit(d.default.SCRIPTDATA_ARRIVED,a)}),this._transmuxer.on(v.default.STATISTICS_INFO,function(a){l._statisticsInfo=l._fillStatisticsInfo(a),l._emitter.emit(d.default.STATISTICS_INFO,Object.assign({},l._statisticsInfo))}),this._transmuxer.on(v.default.RECOMMEND_SEEKPOINT,function(a){l._mediaElement&&!l._config.accurateSeek&&(l._requestSetTime=!0,l._mediaElement.currentTime=a/1e3)}),this._transmuxer.open()}},s.prototype.unload=function(){this._mediaElement&&this._mediaElement.pause(),this._msectl&&this._msectl.seek(0),this._transmuxer&&(this._transmuxer.close(),this._transmuxer.destroy(),this._transmuxer=null)},s.prototype.play=function(){return this._mediaElement.play()},s.prototype.pause=function(){this._mediaElement.pause()},Object.defineProperty(s.prototype,"type",{get:function(){return this._type},enumerable:!1,configurable:!0}),Object.defineProperty(s.prototype,"buffered",{get:function(){return this._mediaElement.buffered},enumerable:!1,configurable:!0}),Object.defineProperty(s.prototype,"duration",{get:function(){return this._mediaElement.duration},enumerable:!1,configurable:!0}),Object.defineProperty(s.prototype,"volume",{get:function(){return this._mediaElement.volume},set:function(l){this._mediaElement.volume=l},enumerable:!1,configurable:!0}),Object.defineProperty(s.prototype,"muted",{get:function(){return this._mediaElement.muted},set:function(l){this._mediaElement.muted=l},enumerable:!1,configurable:!0}),Object.defineProperty(s.prototype,"currentTime",{get:function(){return this._mediaElement?this._mediaElement.currentTime:0},set:function(l){this._mediaElement?this._internalSeek(l):this._pendingSeekTime=l},enumerable:!1,configurable:!0}),Object.defineProperty(s.prototype,"mediaInfo",{get:function(){return Object.assign({},this._mediaInfo)},enumerable:!1,configurable:!0}),Object.defineProperty(s.prototype,"statisticsInfo",{get:function(){return this._statisticsInfo==null&&(this._statisticsInfo={}),this._statisticsInfo=this._fillStatisticsInfo(this._statisticsInfo),Object.assign({},this._statisticsInfo)},enumerable:!1,configurable:!0}),s.prototype._fillStatisticsInfo=function(l){if(l.playerType=this._type,!(this._mediaElement instanceof HTMLVideoElement))return l;var a=!0,g=0,A=0;if(this._mediaElement.getVideoPlaybackQuality){var D=this._mediaElement.getVideoPlaybackQuality();g=D.totalVideoFrames,A=D.droppedVideoFrames}else this._mediaElement.webkitDecodedFrameCount!=null?(g=this._mediaElement.webkitDecodedFrameCount,A=this._mediaElement.webkitDroppedFrameCount):a=!1;return a&&(l.decodedFrames=g,l.droppedFrames=A),l},s.prototype._onmseUpdateEnd=function(){if(!(!this._config.lazyLoad||this._config.isLive)){for(var l=this._mediaElement.buffered,a=this._mediaElement.currentTime,g=0,A=0;A=a+this._config.lazyLoadMaxDuration&&this._progressChecker==null&&(f.default.v(this.TAG,"Maximum buffering duration exceeded, suspend transmuxing task"),this._suspendTransmuxer())}},s.prototype._onmseBufferFull=function(){f.default.v(this.TAG,"MSE SourceBuffer is full, suspend transmuxing task"),this._progressChecker==null&&this._suspendTransmuxer()},s.prototype._suspendTransmuxer=function(){this._transmuxer&&(this._transmuxer.pause(),this._progressChecker==null&&(this._progressChecker=window.setInterval(this._checkProgressAndResume.bind(this),1e3)))},s.prototype._checkProgressAndResume=function(){for(var l=this._mediaElement.currentTime,a=this._mediaElement.buffered,g=!1,A=0;A=D&&l=y-this._config.lazyLoadRecoverDuration&&(g=!0);break}}g&&(window.clearInterval(this._progressChecker),this._progressChecker=null,g&&(f.default.v(this.TAG,"Continue loading from paused position"),this._transmuxer.resume()))},s.prototype._isTimepointBuffered=function(l){for(var a=this._mediaElement.buffered,g=0;g=A&&l0){var D=this._mediaElement.buffered.start(0);(D<1&&l0&&a.currentTime0){var A=g.start(0);if(A<1&&a0&&(this._mediaElement.currentTime=0),this._mediaElement.preload="auto",this._mediaElement.load(),this._statisticsReporter=window.setInterval(this._reportStatisticsInfo.bind(this),this._config.statisticsInfoReportInterval)},v.prototype.unload=function(){this._mediaElement&&(this._mediaElement.src="",this._mediaElement.removeAttribute("src")),this._statisticsReporter!=null&&(window.clearInterval(this._statisticsReporter),this._statisticsReporter=null)},v.prototype.play=function(){return this._mediaElement.play()},v.prototype.pause=function(){this._mediaElement.pause()},Object.defineProperty(v.prototype,"type",{get:function(){return this._type},enumerable:!1,configurable:!0}),Object.defineProperty(v.prototype,"buffered",{get:function(){return this._mediaElement.buffered},enumerable:!1,configurable:!0}),Object.defineProperty(v.prototype,"duration",{get:function(){return this._mediaElement.duration},enumerable:!1,configurable:!0}),Object.defineProperty(v.prototype,"volume",{get:function(){return this._mediaElement.volume},set:function(c){this._mediaElement.volume=c},enumerable:!1,configurable:!0}),Object.defineProperty(v.prototype,"muted",{get:function(){return this._mediaElement.muted},set:function(c){this._mediaElement.muted=c},enumerable:!1,configurable:!0}),Object.defineProperty(v.prototype,"currentTime",{get:function(){return this._mediaElement?this._mediaElement.currentTime:0},set:function(c){this._mediaElement?this._mediaElement.currentTime=c:this._pendingSeekTime=c},enumerable:!1,configurable:!0}),Object.defineProperty(v.prototype,"mediaInfo",{get:function(){var c=this._mediaElement instanceof HTMLAudioElement?"audio/":"video/",u={mimeType:c+this._mediaDataSource.type};return this._mediaElement&&(u.duration=Math.floor(this._mediaElement.duration*1e3),this._mediaElement instanceof HTMLVideoElement&&(u.width=this._mediaElement.videoWidth,u.height=this._mediaElement.videoHeight)),u},enumerable:!1,configurable:!0}),Object.defineProperty(v.prototype,"statisticsInfo",{get:function(){var c={playerType:this._type,url:this._mediaDataSource.url};if(!(this._mediaElement instanceof HTMLVideoElement))return c;var u=!0,r=0,t=0;if(this._mediaElement.getVideoPlaybackQuality){var i=this._mediaElement.getVideoPlaybackQuality();r=i.totalVideoFrames,t=i.droppedVideoFrames}else this._mediaElement.webkitDecodedFrameCount!=null?(r=this._mediaElement.webkitDecodedFrameCount,t=this._mediaElement.webkitDroppedFrameCount):u=!1;return u&&(c.decodedFrames=r,c.droppedFrames=t),c},enumerable:!1,configurable:!0}),v.prototype._onvLoadedMetadata=function(c){this._pendingSeekTime!=null&&(this._mediaElement.currentTime=this._pendingSeekTime,this._pendingSeekTime=null),this._emitter.emit(f.default.MEDIA_INFO,this.mediaInfo)},v.prototype._reportStatisticsInfo=function(){this._emitter.emit(f.default.STATISTICS_INFO,this.statisticsInfo)},v}();m.default=o},"./src/player/player-errors.js":function(h,m,M){M.r(m),M.d(m,{ErrorTypes:function(){return f},ErrorDetails:function(){return n}});var T=M("./src/io/loader.js"),p=M("./src/demux/demux-errors.js"),f={NETWORK_ERROR:"NetworkError",MEDIA_ERROR:"MediaError",OTHER_ERROR:"OtherError"},n={NETWORK_EXCEPTION:T.LoaderErrors.EXCEPTION,NETWORK_STATUS_CODE_INVALID:T.LoaderErrors.HTTP_STATUS_CODE_INVALID,NETWORK_TIMEOUT:T.LoaderErrors.CONNECTING_TIMEOUT,NETWORK_UNRECOVERABLE_EARLY_EOF:T.LoaderErrors.UNRECOVERABLE_EARLY_EOF,MEDIA_MSE_ERROR:"MediaMSEError",MEDIA_FORMAT_ERROR:p.default.FORMAT_ERROR,MEDIA_FORMAT_UNSUPPORTED:p.default.FORMAT_UNSUPPORTED,MEDIA_CODEC_UNSUPPORTED:p.default.CODEC_UNSUPPORTED}},"./src/player/player-events.js":function(h,m,M){M.r(m);var T={ERROR:"error",LOADING_COMPLETE:"loading_complete",RECOVERED_EARLY_EOF:"recovered_early_eof",MEDIA_INFO:"media_info",METADATA_ARRIVED:"metadata_arrived",SCRIPTDATA_ARRIVED:"scriptdata_arrived",STATISTICS_INFO:"statistics_info"};m.default=T},"./src/remux/aac-silent.js":function(h,m,M){M.r(m);var T=function(){function p(){}return p.getSilentFrame=function(f,n){if(f==="mp4a.40.2"){if(n===1)return new Uint8Array([0,200,0,128,35,128]);if(n===2)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(n===3)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);if(n===4)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);if(n===5)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,56]);if(n===6)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,0,178,0,32,8,224])}else{if(n===1)return new Uint8Array([1,64,34,128,163,78,230,128,186,8,0,0,0,28,6,241,193,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(n===2)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(n===3)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94])}return null},p}();m.default=T},"./src/remux/mp4-generator.js":function(h,m,M){M.r(m);var T=function(){function p(){}return p.init=function(){p.types={avc1:[],avcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],mvex:[],mvhd:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[],".mp3":[]};for(var f in p.types)p.types.hasOwnProperty(f)&&(p.types[f]=[f.charCodeAt(0),f.charCodeAt(1),f.charCodeAt(2),f.charCodeAt(3)]);var n=p.constants={};n.FTYP=new Uint8Array([105,115,111,109,0,0,0,1,105,115,111,109,97,118,99,49]),n.STSD_PREFIX=new Uint8Array([0,0,0,0,0,0,0,1]),n.STTS=new Uint8Array([0,0,0,0,0,0,0,0]),n.STSC=n.STCO=n.STTS,n.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),n.HDLR_VIDEO=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),n.HDLR_AUDIO=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]),n.DREF=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),n.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),n.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0])},p.box=function(f){for(var n=8,d=null,o=Array.prototype.slice.call(arguments,1),v=o.length,c=0;c>>24&255,d[1]=n>>>16&255,d[2]=n>>>8&255,d[3]=n&255,d.set(f,4);for(var u=8,c=0;c>>24&255,f>>>16&255,f>>>8&255,f&255,n>>>24&255,n>>>16&255,n>>>8&255,n&255,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]))},p.trak=function(f){return p.box(p.types.trak,p.tkhd(f),p.mdia(f))},p.tkhd=function(f){var n=f.id,d=f.duration,o=f.presentWidth,v=f.presentHeight;return p.box(p.types.tkhd,new Uint8Array([0,0,0,7,0,0,0,0,0,0,0,0,n>>>24&255,n>>>16&255,n>>>8&255,n&255,0,0,0,0,d>>>24&255,d>>>16&255,d>>>8&255,d&255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,o>>>8&255,o&255,0,0,v>>>8&255,v&255,0,0]))},p.mdia=function(f){return p.box(p.types.mdia,p.mdhd(f),p.hdlr(f),p.minf(f))},p.mdhd=function(f){var n=f.timescale,d=f.duration;return p.box(p.types.mdhd,new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,n>>>24&255,n>>>16&255,n>>>8&255,n&255,d>>>24&255,d>>>16&255,d>>>8&255,d&255,85,196,0,0]))},p.hdlr=function(f){var n=null;return f.type==="audio"?n=p.constants.HDLR_AUDIO:n=p.constants.HDLR_VIDEO,p.box(p.types.hdlr,n)},p.minf=function(f){var n=null;return f.type==="audio"?n=p.box(p.types.smhd,p.constants.SMHD):n=p.box(p.types.vmhd,p.constants.VMHD),p.box(p.types.minf,n,p.dinf(),p.stbl(f))},p.dinf=function(){var f=p.box(p.types.dinf,p.box(p.types.dref,p.constants.DREF));return f},p.stbl=function(f){var n=p.box(p.types.stbl,p.stsd(f),p.box(p.types.stts,p.constants.STTS),p.box(p.types.stsc,p.constants.STSC),p.box(p.types.stsz,p.constants.STSZ),p.box(p.types.stco,p.constants.STCO));return n},p.stsd=function(f){return f.type==="audio"?f.codec==="mp3"?p.box(p.types.stsd,p.constants.STSD_PREFIX,p.mp3(f)):p.box(p.types.stsd,p.constants.STSD_PREFIX,p.mp4a(f)):p.box(p.types.stsd,p.constants.STSD_PREFIX,p.avc1(f))},p.mp3=function(f){var n=f.channelCount,d=f.audioSampleRate,o=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,n,0,16,0,0,0,0,d>>>8&255,d&255,0,0]);return p.box(p.types[".mp3"],o)},p.mp4a=function(f){var n=f.channelCount,d=f.audioSampleRate,o=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,n,0,16,0,0,0,0,d>>>8&255,d&255,0,0]);return p.box(p.types.mp4a,o,p.esds(f))},p.esds=function(f){var n=f.config||[],d=n.length,o=new Uint8Array([0,0,0,0,3,23+d,0,1,0,4,15+d,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([d]).concat(n).concat([6,1,2]));return p.box(p.types.esds,o)},p.avc1=function(f){var n=f.avcc,d=f.codecWidth,o=f.codecHeight,v=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,d>>>8&255,d&255,o>>>8&255,o&255,0,72,0,0,0,72,0,0,0,0,0,0,0,1,10,120,113,113,47,102,108,118,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,255,255]);return p.box(p.types.avc1,v,p.box(p.types.avcC,n))},p.mvex=function(f){return p.box(p.types.mvex,p.trex(f))},p.trex=function(f){var n=f.id,d=new Uint8Array([0,0,0,0,n>>>24&255,n>>>16&255,n>>>8&255,n&255,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]);return p.box(p.types.trex,d)},p.moof=function(f,n){return p.box(p.types.moof,p.mfhd(f.sequenceNumber),p.traf(f,n))},p.mfhd=function(f){var n=new Uint8Array([0,0,0,0,f>>>24&255,f>>>16&255,f>>>8&255,f&255]);return p.box(p.types.mfhd,n)},p.traf=function(f,n){var d=f.id,o=p.box(p.types.tfhd,new Uint8Array([0,0,0,0,d>>>24&255,d>>>16&255,d>>>8&255,d&255])),v=p.box(p.types.tfdt,new Uint8Array([0,0,0,0,n>>>24&255,n>>>16&255,n>>>8&255,n&255])),c=p.sdtp(f),u=p.trun(f,c.byteLength+16+16+8+16+8+8);return p.box(p.types.traf,o,v,u,c)},p.sdtp=function(f){for(var n=f.samples||[],d=n.length,o=new Uint8Array(4+d),v=0;v>>24&255,o>>>16&255,o>>>8&255,o&255,n>>>24&255,n>>>16&255,n>>>8&255,n&255],0);for(var u=0;u>>24&255,r>>>16&255,r>>>8&255,r&255,t>>>24&255,t>>>16&255,t>>>8&255,t&255,i.isLeading<<2|i.dependsOn,i.isDependedOn<<6|i.hasRedundancy<<4|i.isNonSync,0,0,e>>>24&255,e>>>16&255,e>>>8&255,e&255],12+16*u)}return p.box(p.types.trun,c)},p.mdat=function(f){return p.box(p.types.mdat,f)},p}();T.init(),m.default=T},"./src/remux/mp4-remuxer.js":function(h,m,M){M.r(m);var T=M("./src/utils/logger.js"),p=M("./src/remux/mp4-generator.js"),f=M("./src/remux/aac-silent.js"),n=M("./src/utils/browser.js"),d=M("./src/core/media-segment-info.js"),o=M("./src/utils/exception.js"),v=function(){function c(u){this.TAG="MP4Remuxer",this._config=u,this._isLive=u.isLive===!0,this._dtsBase=-1,this._dtsBaseInited=!1,this._audioDtsBase=1/0,this._videoDtsBase=1/0,this._audioNextDts=void 0,this._videoNextDts=void 0,this._audioStashedLastSample=null,this._videoStashedLastSample=null,this._audioMeta=null,this._videoMeta=null,this._audioSegmentInfoList=new d.MediaSegmentInfoList("audio"),this._videoSegmentInfoList=new d.MediaSegmentInfoList("video"),this._onInitSegment=null,this._onMediaSegment=null,this._forceFirstIDR=!!(n.default.chrome&&(n.default.version.major<50||n.default.version.major===50&&n.default.version.build<2661)),this._fillSilentAfterSeek=n.default.msedge||n.default.msie,this._mp3UseMpegAudio=!n.default.firefox,this._fillAudioTimestampGap=this._config.fixAudioTimestampGap}return c.prototype.destroy=function(){this._dtsBase=-1,this._dtsBaseInited=!1,this._audioMeta=null,this._videoMeta=null,this._audioSegmentInfoList.clear(),this._audioSegmentInfoList=null,this._videoSegmentInfoList.clear(),this._videoSegmentInfoList=null,this._onInitSegment=null,this._onMediaSegment=null},c.prototype.bindDataSource=function(u){return u.onDataAvailable=this.remux.bind(this),u.onTrackMetadata=this._onTrackMetadataReceived.bind(this),this},Object.defineProperty(c.prototype,"onInitSegment",{get:function(){return this._onInitSegment},set:function(u){this._onInitSegment=u},enumerable:!1,configurable:!0}),Object.defineProperty(c.prototype,"onMediaSegment",{get:function(){return this._onMediaSegment},set:function(u){this._onMediaSegment=u},enumerable:!1,configurable:!0}),c.prototype.insertDiscontinuity=function(){this._audioNextDts=this._videoNextDts=void 0},c.prototype.seek=function(u){this._audioStashedLastSample=null,this._videoStashedLastSample=null,this._videoSegmentInfoList.clear(),this._audioSegmentInfoList.clear()},c.prototype.remux=function(u,r){if(!this._onMediaSegment)throw new o.IllegalStateException("MP4Remuxer: onMediaSegment callback must be specificed!");this._dtsBaseInited||this._calculateDtsBase(u,r),this._remuxVideo(r),this._remuxAudio(u)},c.prototype._onTrackMetadataReceived=function(u,r){var t=null,i="mp4",e=r.codec;if(u==="audio")this._audioMeta=r,r.codec==="mp3"&&this._mp3UseMpegAudio?(i="mpeg",e="",t=new Uint8Array):t=p.default.generateInitSegment(r);else if(u==="video")this._videoMeta=r,t=p.default.generateInitSegment(r);else return;if(!this._onInitSegment)throw new o.IllegalStateException("MP4Remuxer: onInitSegment callback must be specified!");this._onInitSegment(u,{type:u,data:t.buffer,codec:e,container:u+"/"+i,mediaDuration:r.duration})},c.prototype._calculateDtsBase=function(u,r){this._dtsBaseInited||(u.samples&&u.samples.length&&(this._audioDtsBase=u.samples[0].dts),r.samples&&r.samples.length&&(this._videoDtsBase=r.samples[0].dts),this._dtsBase=Math.min(this._audioDtsBase,this._videoDtsBase),this._dtsBaseInited=!0)},c.prototype.flushStashedSamples=function(){var u=this._videoStashedLastSample,r=this._audioStashedLastSample,t={type:"video",id:1,sequenceNumber:0,samples:[],length:0};u!=null&&(t.samples.push(u),t.length=u.length);var i={type:"audio",id:2,sequenceNumber:0,samples:[],length:0};r!=null&&(i.samples.push(r),i.length=r.length),this._videoStashedLastSample=null,this._audioStashedLastSample=null,this._remuxVideo(t,!0),this._remuxAudio(i,!0)},c.prototype._remuxAudio=function(u,r){if(this._audioMeta!=null){var t=u,i=t.samples,e=void 0,s=-1,l=-1,a=this._audioMeta.refSampleDuration,g=this._audioMeta.codec==="mp3"&&this._mp3UseMpegAudio,A=this._dtsBaseInited&&this._audioNextDts===void 0,D=!1;if(!(!i||i.length===0)&&!(i.length===1&&!r)){var y=0,E=null,_=0;g?(y=0,_=t.length):(y=8,_=8+t.length);var L=null;if(i.length>1&&(L=i.pop(),_-=L.length),this._audioStashedLastSample!=null){var I=this._audioStashedLastSample;this._audioStashedLastSample=null,i.unshift(I),_+=I.length}L!=null&&(this._audioStashedLastSample=L);var b=i[0].dts-this._dtsBase;if(this._audioNextDts)e=b-this._audioNextDts;else if(this._audioSegmentInfoList.isEmpty())e=0,this._fillSilentAfterSeek&&!this._videoSegmentInfoList.isEmpty()&&this._audioMeta.originalCodec!=="mp3"&&(D=!0);else{var R=this._audioSegmentInfoList.getLastSampleBefore(b);if(R!=null){var P=b-(R.originalDts+R.duration);P<=3&&(P=0);var w=R.dts+R.duration+P;e=b-w}else e=0}if(D){var F=b-e,k=this._videoSegmentInfoList.getLastSegmentBefore(b);if(k!=null&&k.beginDts=q*a&&this._fillAudioTimestampGap&&!n.default.safari){Y=!0;var te=Math.floor(e/a);T.default.w(this.TAG,`Large audio timestamp gap detected, may cause AV sync to drift. Silent frames will be generated to avoid unsync. +`+("originalDts: "+X+" ms, curRefDts: "+G+" ms, ")+("dtsCorrection: "+Math.round(e)+" ms, generate: "+te+" frames")),U=Math.floor(G),Q=Math.floor(G+a)-U;var B=f.default.getSilentFrame(this._audioMeta.originalCodec,this._audioMeta.channelCount);B==null&&(T.default.w(this.TAG,"Unable to generate silent frame for "+(this._audioMeta.originalCodec+" with "+this._audioMeta.channelCount+" channels, repeat last frame")),B=Z),ee=[];for(var ie=0;ie=1?Q=K[K.length-1].duration:Q=Math.floor(a);this._audioNextDts=U+Q}s===-1&&(s=U),K.push({dts:U,pts:U,cts:0,unit:I.unit,size:I.unit.byteLength,duration:Q,originalDts:X,flags:{isLeading:0,dependsOn:1,isDependedOn:0,hasRedundancy:0}}),Y&&K.push.apply(K,ee)}}if(K.length===0){t.samples=[],t.length=0;return}g?E=new Uint8Array(_):(E=new Uint8Array(_),E[0]=_>>>24&255,E[1]=_>>>16&255,E[2]=_>>>8&255,E[3]=_&255,E.set(p.default.types.mdat,4));for(var N=0;N1&&(E=i.pop(),y-=E.length),this._videoStashedLastSample!=null){var _=this._videoStashedLastSample;this._videoStashedLastSample=null,i.unshift(_),y+=_.length}E!=null&&(this._videoStashedLastSample=E);var L=i[0].dts-this._dtsBase;if(this._videoNextDts)e=L-this._videoNextDts;else if(this._videoSegmentInfoList.isEmpty())e=0;else{var I=this._videoSegmentInfoList.getLastSampleBefore(L);if(I!=null){var b=L-(I.originalDts+I.duration);b<=3&&(b=0);var R=I.dts+I.duration+b;e=L-R}else e=0}for(var P=new d.MediaSegmentInfo,w=[],F=0;F=1?N=w[w.length-1].duration:N=Math.floor(this._videoMeta.refSampleDuration);if(B){var X=new d.SampleInfo(U,K,N,_.dts,!0);X.fileposition=_.fileposition,P.appendSyncPoint(X)}w.push({dts:U,pts:K,cts:j,units:_.units,size:_.length,isKeyframe:B,duration:N,originalDts:k,flags:{isLeading:0,dependsOn:B?2:1,isDependedOn:B?1:0,hasRedundancy:0,isNonSync:B?0:1}})}D=new Uint8Array(y),D[0]=y>>>24&255,D[1]=y>>>16&255,D[2]=y>>>8&255,D[3]=y&255,D.set(p.default.types.mdat,4);for(var F=0;F=0&&/(rv)(?::| )([\w.]+)/.exec(f)||f.indexOf("compatible")<0&&/(firefox)[ \/]([\w.]+)/.exec(f)||[],d=/(ipad)/.exec(f)||/(ipod)/.exec(f)||/(windows phone)/.exec(f)||/(iphone)/.exec(f)||/(kindle)/.exec(f)||/(android)/.exec(f)||/(windows)/.exec(f)||/(mac)/.exec(f)||/(linux)/.exec(f)||/(cros)/.exec(f)||[],o={browser:n[5]||n[3]||n[1]||"",version:n[2]||n[4]||"0",majorVersion:n[4]||n[2]||"0",platform:d[0]||""},v={};if(o.browser){v[o.browser]=!0;var c=o.majorVersion.split(".");v.version={major:parseInt(o.majorVersion,10),string:o.version},c.length>1&&(v.version.minor=parseInt(c[1],10)),c.length>2&&(v.version.build=parseInt(c[2],10))}if(o.platform&&(v[o.platform]=!0),(v.chrome||v.opr||v.safari)&&(v.webkit=!0),v.rv||v.iemobile){v.rv&&delete v.rv;var u="msie";o.browser=u,v[u]=!0}if(v.edge){delete v.edge;var r="msedge";o.browser=r,v[r]=!0}if(v.opr){var t="opera";o.browser=t,v[t]=!0}if(v.safari&&v.android){var i="android";o.browser=i,v[i]=!0}v.name=o.browser,v.platform=o.platform;for(var e in T)T.hasOwnProperty(e)&&delete T[e];Object.assign(T,v)}p(),m.default=T},"./src/utils/exception.js":function(h,m,M){M.r(m),M.d(m,{RuntimeException:function(){return p},IllegalStateException:function(){return f},InvalidArgumentException:function(){return n},NotImplementedException:function(){return d}});var T=function(){var o=function(v,c){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(u,r){u.__proto__=r}||function(u,r){for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(u[t]=r[t])},o(v,c)};return function(v,c){if(typeof c!="function"&&c!==null)throw new TypeError("Class extends value "+String(c)+" is not a constructor or null");o(v,c);function u(){this.constructor=v}v.prototype=c===null?Object.create(c):(u.prototype=c.prototype,new u)}}(),p=function(){function o(v){this._message=v}return Object.defineProperty(o.prototype,"name",{get:function(){return"RuntimeException"},enumerable:!1,configurable:!0}),Object.defineProperty(o.prototype,"message",{get:function(){return this._message},enumerable:!1,configurable:!0}),o.prototype.toString=function(){return this.name+": "+this.message},o}(),f=function(o){T(v,o);function v(c){return o.call(this,c)||this}return Object.defineProperty(v.prototype,"name",{get:function(){return"IllegalStateException"},enumerable:!1,configurable:!0}),v}(p),n=function(o){T(v,o);function v(c){return o.call(this,c)||this}return Object.defineProperty(v.prototype,"name",{get:function(){return"InvalidArgumentException"},enumerable:!1,configurable:!0}),v}(p),d=function(o){T(v,o);function v(c){return o.call(this,c)||this}return Object.defineProperty(v.prototype,"name",{get:function(){return"NotImplementedException"},enumerable:!1,configurable:!0}),v}(p)},"./src/utils/logger.js":function(h,m,M){M.r(m);var T=M("./node_modules/events/events.js"),p=M.n(T),f=function(){function n(){}return n.e=function(d,o){(!d||n.FORCE_GLOBAL_TAG)&&(d=n.GLOBAL_TAG);var v="["+d+"] > "+o;n.ENABLE_CALLBACK&&n.emitter.emit("log","error",v),n.ENABLE_ERROR&&(console.error?console.error(v):console.warn?console.warn(v):console.log(v))},n.i=function(d,o){(!d||n.FORCE_GLOBAL_TAG)&&(d=n.GLOBAL_TAG);var v="["+d+"] > "+o;n.ENABLE_CALLBACK&&n.emitter.emit("log","info",v),n.ENABLE_INFO&&(console.info?console.info(v):console.log(v))},n.w=function(d,o){(!d||n.FORCE_GLOBAL_TAG)&&(d=n.GLOBAL_TAG);var v="["+d+"] > "+o;n.ENABLE_CALLBACK&&n.emitter.emit("log","warn",v),n.ENABLE_WARN&&(console.warn?console.warn(v):console.log(v))},n.d=function(d,o){(!d||n.FORCE_GLOBAL_TAG)&&(d=n.GLOBAL_TAG);var v="["+d+"] > "+o;n.ENABLE_CALLBACK&&n.emitter.emit("log","debug",v),n.ENABLE_DEBUG&&(console.debug?console.debug(v):console.log(v))},n.v=function(d,o){(!d||n.FORCE_GLOBAL_TAG)&&(d=n.GLOBAL_TAG);var v="["+d+"] > "+o;n.ENABLE_CALLBACK&&n.emitter.emit("log","verbose",v),n.ENABLE_VERBOSE&&console.log(v)},n}();f.GLOBAL_TAG="flv.js",f.FORCE_GLOBAL_TAG=!1,f.ENABLE_ERROR=!0,f.ENABLE_INFO=!0,f.ENABLE_WARN=!0,f.ENABLE_DEBUG=!0,f.ENABLE_VERBOSE=!0,f.ENABLE_CALLBACK=!1,f.emitter=new(p()),m.default=f},"./src/utils/logging-control.js":function(h,m,M){M.r(m);var T=M("./node_modules/events/events.js"),p=M.n(T),f=M("./src/utils/logger.js"),n=function(){function d(){}return Object.defineProperty(d,"forceGlobalTag",{get:function(){return f.default.FORCE_GLOBAL_TAG},set:function(o){f.default.FORCE_GLOBAL_TAG=o,d._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(d,"globalTag",{get:function(){return f.default.GLOBAL_TAG},set:function(o){f.default.GLOBAL_TAG=o,d._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(d,"enableAll",{get:function(){return f.default.ENABLE_VERBOSE&&f.default.ENABLE_DEBUG&&f.default.ENABLE_INFO&&f.default.ENABLE_WARN&&f.default.ENABLE_ERROR},set:function(o){f.default.ENABLE_VERBOSE=o,f.default.ENABLE_DEBUG=o,f.default.ENABLE_INFO=o,f.default.ENABLE_WARN=o,f.default.ENABLE_ERROR=o,d._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(d,"enableDebug",{get:function(){return f.default.ENABLE_DEBUG},set:function(o){f.default.ENABLE_DEBUG=o,d._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(d,"enableVerbose",{get:function(){return f.default.ENABLE_VERBOSE},set:function(o){f.default.ENABLE_VERBOSE=o,d._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(d,"enableInfo",{get:function(){return f.default.ENABLE_INFO},set:function(o){f.default.ENABLE_INFO=o,d._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(d,"enableWarn",{get:function(){return f.default.ENABLE_WARN},set:function(o){f.default.ENABLE_WARN=o,d._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(d,"enableError",{get:function(){return f.default.ENABLE_ERROR},set:function(o){f.default.ENABLE_ERROR=o,d._notifyChange()},enumerable:!1,configurable:!0}),d.getConfig=function(){return{globalTag:f.default.GLOBAL_TAG,forceGlobalTag:f.default.FORCE_GLOBAL_TAG,enableVerbose:f.default.ENABLE_VERBOSE,enableDebug:f.default.ENABLE_DEBUG,enableInfo:f.default.ENABLE_INFO,enableWarn:f.default.ENABLE_WARN,enableError:f.default.ENABLE_ERROR,enableCallback:f.default.ENABLE_CALLBACK}},d.applyConfig=function(o){f.default.GLOBAL_TAG=o.globalTag,f.default.FORCE_GLOBAL_TAG=o.forceGlobalTag,f.default.ENABLE_VERBOSE=o.enableVerbose,f.default.ENABLE_DEBUG=o.enableDebug,f.default.ENABLE_INFO=o.enableInfo,f.default.ENABLE_WARN=o.enableWarn,f.default.ENABLE_ERROR=o.enableError,f.default.ENABLE_CALLBACK=o.enableCallback},d._notifyChange=function(){var o=d.emitter;if(o.listenerCount("change")>0){var v=d.getConfig();o.emit("change",v)}},d.registerListener=function(o){d.emitter.addListener("change",o)},d.removeListener=function(o){d.emitter.removeListener("change",o)},d.addLogListener=function(o){f.default.emitter.addListener("log",o),f.default.emitter.listenerCount("log")>0&&(f.default.ENABLE_CALLBACK=!0,d._notifyChange())},d.removeLogListener=function(o){f.default.emitter.removeListener("log",o),f.default.emitter.listenerCount("log")===0&&(f.default.ENABLE_CALLBACK=!1,d._notifyChange())},d}();n.emitter=new(p()),m.default=n},"./src/utils/polyfill.js":function(h,m,M){M.r(m);var T=function(){function p(){}return p.install=function(){Object.setPrototypeOf=Object.setPrototypeOf||function(f,n){return f.__proto__=n,f},Object.assign=Object.assign||function(f){if(f==null)throw new TypeError("Cannot convert undefined or null to object");for(var n=Object(f),d=1;d=128){n.push(String.fromCharCode(c&65535)),o+=2;continue}}}else if(d[o]<240){if(T(d,o,2)){var c=(d[o]&15)<<12|(d[o+1]&63)<<6|d[o+2]&63;if(c>=2048&&(c&63488)!==55296){n.push(String.fromCharCode(c&65535)),o+=3;continue}}}else if(d[o]<248&&T(d,o,3)){var c=(d[o]&7)<<18|(d[o+1]&63)<<12|(d[o+2]&63)<<6|d[o+3]&63;if(c>65536&&c<1114112){c-=65536,n.push(String.fromCharCode(c>>>10|55296)),n.push(String.fromCharCode(c&1023|56320)),o+=4;continue}}}n.push(String.fromCharCode(65533)),++o}return n.join("")}m.default=p}},C={};function x(h){var m=C[h];if(m!==void 0)return m.exports;var M=C[h]={exports:{}};return O[h].call(M.exports,M,M.exports,x),M.exports}x.m=O,function(){x.n=function(h){var m=h&&h.__esModule?function(){return h.default}:function(){return h};return x.d(m,{a:m}),m}}(),function(){x.d=function(h,m){for(var M in m)x.o(m,M)&&!x.o(h,M)&&Object.defineProperty(h,M,{enumerable:!0,get:m[M]})}}(),function(){x.g=function(){if(typeof globalThis=="object")return globalThis;try{return this||new Function("return this")()}catch{if(typeof window=="object")return window}}()}(),function(){x.o=function(h,m){return Object.prototype.hasOwnProperty.call(h,m)}}(),function(){x.r=function(h){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(h,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(h,"__esModule",{value:!0})}}();var S=x("./src/index.js");return S}()})})(Ke);var vt=Fe(Ke.exports),We={exports:{}};(function(Te,Ie){typeof window!="undefined"&&function(C,x){Te.exports=x()}(we,function(){return function(O){var C={};function x(S){if(C[S])return C[S].exports;var h=C[S]={i:S,l:!1,exports:{}};return O[S].call(h.exports,h,h.exports,x),h.l=!0,h.exports}return x.m=O,x.c=C,x.d=function(S,h,m){x.o(S,h)||Object.defineProperty(S,h,{enumerable:!0,get:m})},x.r=function(S){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(S,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(S,"__esModule",{value:!0})},x.t=function(S,h){if(h&1&&(S=x(S)),h&8||h&4&&typeof S=="object"&&S&&S.__esModule)return S;var m=Object.create(null);if(x.r(m),Object.defineProperty(m,"default",{enumerable:!0,value:S}),h&2&&typeof S!="string")for(var M in S)x.d(m,M,function(T){return S[T]}.bind(null,M));return m},x.n=function(S){var h=S&&S.__esModule?function(){return S.default}:function(){return S};return x.d(h,"a",h),h},x.o=function(S,h){return Object.prototype.hasOwnProperty.call(S,h)},x.p="/dist/",x(x.s="./src/hls.ts")}({"./node_modules/eventemitter3/index.js":function(O,C,x){var S=Object.prototype.hasOwnProperty,h="~";function m(){}Object.create&&(m.prototype=Object.create(null),new m().__proto__||(h=!1));function M(n,d,o){this.fn=n,this.context=d,this.once=o||!1}function T(n,d,o,v,c){if(typeof o!="function")throw new TypeError("The listener must be a function");var u=new M(o,v||n,c),r=h?h+d:d;return n._events[r]?n._events[r].fn?n._events[r]=[n._events[r],u]:n._events[r].push(u):(n._events[r]=u,n._eventsCount++),n}function p(n,d){--n._eventsCount===0?n._events=new m:delete n._events[d]}function f(){this._events=new m,this._eventsCount=0}f.prototype.eventNames=function(){var d=[],o,v;if(this._eventsCount===0)return d;for(v in o=this._events)S.call(o,v)&&d.push(h?v.slice(1):v);return Object.getOwnPropertySymbols?d.concat(Object.getOwnPropertySymbols(o)):d},f.prototype.listeners=function(d){var o=h?h+d:d,v=this._events[o];if(!v)return[];if(v.fn)return[v.fn];for(var c=0,u=v.length,r=new Array(u);c0},!1)}function n(d,o){for(var v={main:[o]},c={main:[]},u={main:{}};f(v);)for(var r=Object.keys(v),t=0;t=2*g/D||b<=P)){var w=Number.POSITIVE_INFINITY,F;for(F=r.level-1;F>E;F--){var k=y[F].maxBitrate;if(w=g*k/(8*.8*I),w=b)){var B=this.bwEstimator.getEstimate();f.logger.warn("Fragment "+r.sn+(t?" part "+t.index:"")+" of level "+r.level+" is loading too slowly and will cause an underbuffer; aborting and switching to level "+F+` + Current BW estimate: `+(Object(S.isFiniteNumber)(B)?(B/1024).toFixed(3):"Unknown")+` Kb/s + Estimated load time for current fragment: `+b.toFixed(3)+` s + Estimated load time for the next fragment: `+w.toFixed(3)+` s + Time to underbuffer: `+P.toFixed(3)+" s"),i.nextLoadLevel=F,this.bwEstimator.sample(A,a.loaded),this.clearTimer(),r.loader&&(this.fragCurrent=this.partCurrent=null,r.loader.abort()),i.trigger(m.Events.FRAG_LOAD_EMERGENCY_ABORTED,{frag:r,part:t,stats:a})}}}}}},c.onFragLoaded=function(r,t){var i=t.frag,e=t.part;if(i.type===p.PlaylistLevelType.MAIN&&Object(S.isFiniteNumber)(i.sn)){var s=e?e.stats:i.stats,l=e?e.duration:i.duration;if(this.clearTimer(),this.lastLoadedFragLevel=i.level,this._nextAutoLevel=-1,this.hls.config.abrMaxWithRealBitrate){var a=this.hls.levels[i.level],g=(a.loaded?a.loaded.bytes:0)+s.loaded,A=(a.loaded?a.loaded.duration:0)+l;a.loaded={bytes:g,duration:A},a.realBitrate=Math.round(8*g/A)}if(i.bitrateTest){var D={stats:s,frag:i,part:e,id:i.type};this.onFragBuffered(m.Events.FRAG_BUFFERED,D),i.bitrateTest=!1}}},c.onFragBuffered=function(r,t){var i=t.frag,e=t.part,s=e?e.stats:i.stats;if(!s.aborted&&!(i.type!==p.PlaylistLevelType.MAIN||i.sn==="initSegment")){var l=s.parsing.end-s.loading.start;this.bwEstimator.sample(l,s.loaded),s.bwEstimate=this.bwEstimator.getEstimate(),i.bitrateTest?this.bitrateTestDelay=l/1e3:this.bitrateTestDelay=0}},c.onError=function(r,t){switch(t.details){case T.ErrorDetails.FRAG_LOAD_ERROR:case T.ErrorDetails.FRAG_LOAD_TIMEOUT:this.clearTimer();break}},c.clearTimer=function(){self.clearInterval(this.timer),this.timer=void 0},c.getNextABRAutoLevel=function(){var r=this.fragCurrent,t=this.partCurrent,i=this.hls,e=i.maxAutoLevel,s=i.config,l=i.minAutoLevel,a=i.media,g=t?t.duration:r?r.duration:0,A=a?a.currentTime:0,D=a&&a.playbackRate!==0?Math.abs(a.playbackRate):1,y=this.bwEstimator?this.bwEstimator.getEstimate():s.abrEwmaDefaultEstimate,E=(M.BufferHelper.bufferInfo(a,A,s.maxBufferHole).end-A)/D,_=this.findBestLevel(y,l,e,E,s.abrBandWidthFactor,s.abrBandWidthUpFactor);if(_>=0)return _;f.logger.trace((E?"rebuffering expected":"buffer is empty")+", finding optimal quality level");var L=g?Math.min(g,s.maxStarvationDelay):s.maxStarvationDelay,I=s.abrBandWidthFactor,b=s.abrBandWidthUpFactor;if(!E){var R=this.bitrateTestDelay;if(R){var P=g?Math.min(g,s.maxLoadingDelay):s.maxLoadingDelay;L=P-R,f.logger.trace("bitrate test took "+Math.round(1e3*R)+"ms, set first fragment max fetchDuration to "+Math.round(1e3*L)+" ms"),I=b=1}}return _=this.findBestLevel(y,l,e,E+L,I,b),Math.max(_,0)},c.findBestLevel=function(r,t,i,e,s,l){for(var a,g=this.fragCurrent,A=this.partCurrent,D=this.lastLoadedFragLevel,y=this.hls.levels,E=y[D],_=!!(E!=null&&(a=E.details)!==null&&a!==void 0&&a.live),L=E==null?void 0:E.codecSet,I=A?A.duration:g?g.duration:0,b=i;b>=t;b--){var R=y[b];if(!(!R||L&&R.codecSet!==L)){var P=R.details,w=(A?P==null?void 0:P.partTarget:P==null?void 0:P.averagetargetduration)||I,F=void 0;b<=D?F=s*r:F=l*r;var k=y[b].maxBitrate,B=k*w/F;if(f.logger.trace("level/adjustedbw/bitrate/avgDuration/maxFetchDuration/fetchDuration: "+b+"/"+Math.round(F)+"/"+k+"/"+w+"/"+e+"/"+B),F>k&&(!B||_&&!this.bitrateTestDelay||B0&&E===-1?(this.log("Override startPosition with lastCurrentTime @"+_.toFixed(3)),this.state=h.State.IDLE):(this.loadedmetadata=!1,this.state=h.State.WAITING_TRACK),this.nextLoadPosition=this.startPosition=this.lastCurrentTime=E,this.tick()},D.doTick=function(){switch(this.state){case h.State.IDLE:this.doTickIdle();break;case h.State.WAITING_TRACK:{var E,_=this.levels,L=this.trackId,I=_==null||(E=_[L])===null||E===void 0?void 0:E.details;if(I){if(this.waitForCdnTuneIn(I))break;this.state=h.State.WAITING_INIT_PTS}break}case h.State.FRAG_LOADING_WAITING_RETRY:{var b,R=performance.now(),P=this.retryDate;(!P||R>=P||(b=this.media)!==null&&b!==void 0&&b.seeking)&&(this.log("RetryDate reached, switch back to IDLE state"),this.state=h.State.IDLE);break}case h.State.WAITING_INIT_PTS:{var w=this.waitingData;if(w){var F=w.frag,k=w.part,B=w.cache,U=w.complete;if(this.initPTS[F.cc]!==void 0){this.waitingData=null,this.waitingVideoCC=-1,this.state=h.State.FRAG_LOADING;var j=B.flush(),K={frag:F,part:k,payload:j,networkDetails:null};this._handleFragmentLoadProgress(K),U&&g.prototype._handleFragmentLoadComplete.call(this,K)}else if(this.videoTrackCC!==this.waitingVideoCC)t.logger.log("Waiting fragment cc ("+F.cc+") cancelled because video is at cc "+this.videoTrackCC),this.clearWaitingFragment();else{var N=this.getLoadPosition(),Z=M.BufferHelper.bufferInfo(this.mediaBuffer,N,this.config.maxBufferHole),X=Object(c.fragmentWithinToleranceTest)(Z.end,this.config.maxFragLookUpTolerance,F);X<0&&(t.logger.log("Waiting fragment cc ("+F.cc+") @ "+F.start+" cancelled because another fragment at "+Z.end+" is needed"),this.clearWaitingFragment())}}else this.state=h.State.IDLE}}this.onTickEnd()},D.clearWaitingFragment=function(){var E=this.waitingData;E&&(this.fragmentTracker.removeFragment(E.frag),this.waitingData=null,this.waitingVideoCC=-1,this.state=h.State.IDLE)},D.onTickEnd=function(){var E=this.media;if(!(!E||!E.readyState)){var _=this.mediaBuffer?this.mediaBuffer:E,L=_.buffered;!this.loadedmetadata&&L.length&&(this.loadedmetadata=!0),this.lastCurrentTime=E.currentTime}},D.doTickIdle=function(){var E,_,L=this.hls,I=this.levels,b=this.media,R=this.trackId,P=L.config;if(!(!I||!I[R])&&!(!b&&(this.startFragRequested||!P.startFragPrefetch))){var w=I[R],F=w.details;if(!F||F.live&&this.levelLastLoaded!==R||this.waitForCdnTuneIn(F)){this.state=h.State.WAITING_TRACK;return}this.bufferFlushed&&(this.bufferFlushed=!1,this.afterBufferFlushed(this.mediaBuffer?this.mediaBuffer:this.media,n.ElementaryStreamTypes.AUDIO,f.PlaylistLevelType.AUDIO));var k=this.getFwdBufferInfo(this.mediaBuffer?this.mediaBuffer:this.media,f.PlaylistLevelType.AUDIO);if(k!==null){var B=k.len,U=this.getMaxBufferLength(),j=this.audioSwitch;if(!(B>=U&&!j)){if(!j&&this._streamEnded(k,F)){L.trigger(m.Events.BUFFER_EOS,{type:"audio"}),this.state=h.State.ENDED;return}var K=F.fragments,N=K[0].start,Z=k.end;if(j){var X=this.getLoadPosition();Z=X,F.PTSKnown&&XN||k.nextStart)&&(this.log("Alt audio track ahead of main track, seek to start of alt audio track"),b.currentTime=N+.05)}var Y=this.getNextFragment(Z,F);if(!Y){this.bufferFlushed=!0;return}((E=Y.decryptdata)===null||E===void 0?void 0:E.keyFormat)==="identity"&&!((_=Y.decryptdata)!==null&&_!==void 0&&_.key)?this.loadKey(Y,F):this.loadFragment(Y,F,Z)}}}},D.getMaxBufferLength=function(){var E=g.prototype.getMaxBufferLength.call(this),_=this.getFwdBufferInfo(this.videoBuffer?this.videoBuffer:this.media,f.PlaylistLevelType.MAIN);return _===null?E:Math.max(E,_.len)},D.onMediaDetaching=function(){this.videoBuffer=null,g.prototype.onMediaDetaching.call(this)},D.onAudioTracksUpdated=function(E,_){var L=_.audioTracks;this.resetTransmuxer(),this.levels=L.map(function(I){return new p.Level(I)})},D.onAudioTrackSwitching=function(E,_){var L=!!_.url;this.trackId=_.id;var I=this.fragCurrent;I!=null&&I.loader&&I.loader.abort(),this.fragCurrent=null,this.clearWaitingFragment(),L?this.setInterval(l):this.resetTransmuxer(),L?(this.audioSwitch=!0,this.state=h.State.IDLE):this.state=h.State.STOPPED,this.tick()},D.onManifestLoading=function(){this.mainDetails=null,this.fragmentTracker.removeAllFragments(),this.startPosition=this.lastCurrentTime=0,this.bufferFlushed=!1},D.onLevelLoaded=function(E,_){this.mainDetails=_.details},D.onAudioTrackLoaded=function(E,_){var L,I=this.levels,b=_.details,R=_.id;if(!I){this.warn("Audio tracks were reset while loading level "+R);return}this.log("Track "+R+" loaded ["+b.startSN+","+b.endSN+"],duration:"+b.totalduration);var P=I[R],w=0;if(b.live||(L=P.details)!==null&&L!==void 0&&L.live){var F=this.mainDetails;if(b.fragments[0]||(b.deltaUpdateFailed=!0),b.deltaUpdateFailed||!F)return;!P.details&&b.hasProgramDateTime&&F.hasProgramDateTime?(Object(u.alignMediaPlaylistByPDT)(b,F),w=b.fragments[0].start):w=this.alignPlaylists(b,P.details)}P.details=b,this.levelLastLoaded=R,!this.startFragRequested&&(this.mainDetails||!b.live)&&this.setStartPosition(P.details,w),this.state===h.State.WAITING_TRACK&&!this.waitForCdnTuneIn(b)&&(this.state=h.State.IDLE),this.tick()},D._handleFragmentLoadProgress=function(E){var _,L=E.frag,I=E.part,b=E.payload,R=this.config,P=this.trackId,w=this.levels;if(!w){this.warn("Audio tracks were reset while fragment load was in progress. Fragment "+L.sn+" of level "+L.level+" will not be buffered");return}var F=w[P];console.assert(F,"Audio track is defined on fragment load progress");var k=F.details;console.assert(k,"Audio track details are defined on fragment load progress");var B=R.defaultAudioCodec||F.audioCodec||"mp4a.40.2",U=this.transmuxer;U||(U=this.transmuxer=new o.default(this.hls,f.PlaylistLevelType.AUDIO,this._handleTransmuxComplete.bind(this),this._handleTransmuxerFlush.bind(this)));var j=this.initPTS[L.cc],K=(_=L.initSegment)===null||_===void 0?void 0:_.data;if(j!==void 0){var N=!1,Z=I?I.index:-1,X=Z!==-1,Y=new v.ChunkMetadata(L.level,L.sn,L.stats.chunkCount,b.byteLength,Z,X);U.push(b,K,B,"",L,I,k.totalduration,N,Y,j)}else{t.logger.log("Unknown video PTS for cc "+L.cc+", waiting for video PTS before demuxing audio frag "+L.sn+" of ["+k.startSN+" ,"+k.endSN+"],track "+P);var ee=this.waitingData=this.waitingData||{frag:L,part:I,cache:new d.default,complete:!1},Q=ee.cache;Q.push(new Uint8Array(b)),this.waitingVideoCC=this.videoTrackCC,this.state=h.State.WAITING_INIT_PTS}},D._handleFragmentLoadComplete=function(E){if(this.waitingData){this.waitingData.complete=!0;return}g.prototype._handleFragmentLoadComplete.call(this,E)},D.onBufferReset=function(){this.mediaBuffer=this.videoBuffer=null,this.loadedmetadata=!1},D.onBufferCreated=function(E,_){var L=_.tracks.audio;L&&(this.mediaBuffer=L.buffer),_.tracks.video&&(this.videoBuffer=_.tracks.video.buffer)},D.onFragBuffered=function(E,_){var L=_.frag,I=_.part;if(L.type===f.PlaylistLevelType.AUDIO){if(this.fragContextChanged(L)){this.warn("Fragment "+L.sn+(I?" p: "+I.index:"")+" of level "+L.level+" finished buffering, but was aborted. state: "+this.state+", audioSwitch: "+this.audioSwitch);return}L.sn!=="initSegment"&&(this.fragPrevious=L,this.audioSwitch&&(this.audioSwitch=!1,this.hls.trigger(m.Events.AUDIO_TRACK_SWITCHED,{id:this.trackId}))),this.fragBufferedComplete(L,I)}},D.onError=function(E,_){switch(_.details){case r.ErrorDetails.FRAG_LOAD_ERROR:case r.ErrorDetails.FRAG_LOAD_TIMEOUT:case r.ErrorDetails.KEY_LOAD_ERROR:case r.ErrorDetails.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(f.PlaylistLevelType.AUDIO,_);break;case r.ErrorDetails.AUDIO_TRACK_LOAD_ERROR:case r.ErrorDetails.AUDIO_TRACK_LOAD_TIMEOUT:this.state!==h.State.ERROR&&this.state!==h.State.STOPPED&&(this.state=_.fatal?h.State.ERROR:h.State.IDLE,this.warn(_.details+" while loading frag, switching to "+this.state+" state"));break;case r.ErrorDetails.BUFFER_FULL_ERROR:if(_.parent==="audio"&&(this.state===h.State.PARSING||this.state===h.State.PARSED)){var L=!0,I=this.getFwdBufferInfo(this.mediaBuffer,f.PlaylistLevelType.AUDIO);I&&I.len>.5&&(L=!this.reduceMaxBufferLength(I.len)),L&&(this.warn("Buffer full error also media.currentTime is not buffered, flush audio buffer"),this.fragCurrent=null,g.prototype.flushMainBuffer.call(this,0,Number.POSITIVE_INFINITY,"audio")),this.resetLoadingState()}break}},D.onBufferFlushed=function(E,_){var L=_.type;L===n.ElementaryStreamTypes.AUDIO&&(this.bufferFlushed=!0)},D._handleTransmuxComplete=function(E){var _,L="audio",I=this.hls,b=E.remuxResult,R=E.chunkMeta,P=this.getCurrentContext(R);if(!P){this.warn("The loading context changed while buffering fragment "+R.sn+" of level "+R.level+". This chunk will not be buffered."),this.resetLiveStartWhenNotLoaded(R.level);return}var w=P.frag,F=P.part,k=b.audio,B=b.text,U=b.id3,j=b.initSegment;if(!this.fragContextChanged(w)){if(this.state=h.State.PARSING,this.audioSwitch&&k&&this.completeAudioSwitch(),j!=null&&j.tracks&&(this._bufferInitSegment(j.tracks,w,R),I.trigger(m.Events.FRAG_PARSING_INIT_SEGMENT,{frag:w,id:L,tracks:j.tracks})),k){var K=k.startPTS,N=k.endPTS,Z=k.startDTS,X=k.endDTS;F&&(F.elementaryStreams[n.ElementaryStreamTypes.AUDIO]={startPTS:K,endPTS:N,startDTS:Z,endDTS:X}),w.setElementaryStreamInfo(n.ElementaryStreamTypes.AUDIO,K,N,Z,X),this.bufferFragmentData(k,w,F,R)}if(U!=null&&(_=U.samples)!==null&&_!==void 0&&_.length){var Y=i({frag:w,id:L},U);I.trigger(m.Events.FRAG_PARSING_METADATA,Y)}if(B){var ee=i({frag:w,id:L},B);I.trigger(m.Events.FRAG_PARSING_USERDATA,ee)}}},D._bufferInitSegment=function(E,_,L){if(this.state===h.State.PARSING){E.video&&delete E.video;var I=E.audio;if(!!I){I.levelCodec=I.codec,I.id="audio",this.log("Init audio buffer, container:"+I.container+", codecs[parsed]=["+I.codec+"]"),this.hls.trigger(m.Events.BUFFER_CODECS,E);var b=I.initSegment;if(b!=null&&b.byteLength){var R={type:"audio",frag:_,part:null,chunkMeta:L,parent:_.type,data:b};this.hls.trigger(m.Events.BUFFER_APPENDING,R)}this.tick()}}},D.loadFragment=function(E,_,L){var I=this.fragmentTracker.getState(E);this.fragCurrent=E,(this.audioSwitch||I===T.FragmentState.NOT_LOADED||I===T.FragmentState.PARTIAL)&&(E.sn==="initSegment"?this._loadInitSegment(E):_.live&&!Object(S.isFiniteNumber)(this.initPTS[E.cc])?(this.log("Waiting for video PTS in continuity counter "+E.cc+" of live stream before loading audio fragment "+E.sn+" of level "+this.trackId),this.state=h.State.WAITING_INIT_PTS):(this.startFragRequested=!0,g.prototype.loadFragment.call(this,E,_,L)))},D.completeAudioSwitch=function(){var E=this.hls,_=this.media,L=this.trackId;_&&(this.log("Switching audio track : flushing all audio"),g.prototype.flushMainBuffer.call(this,0,Number.POSITIVE_INFINITY,"audio")),this.audioSwitch=!1,E.trigger(m.Events.AUDIO_TRACK_SWITCHED,{id:L})},A}(h.default);C.default=a},"./src/controller/audio-track-controller.ts":function(O,C,x){x.r(C);var S=x("./src/events.ts"),h=x("./src/errors.ts"),m=x("./src/controller/base-playlist-controller.ts"),M=x("./src/types/loader.ts");function T(o,v){for(var c=0;c=t.length){this.warn("Invalid id passed to audio-track controller");return}this.clearTimer();var i=t[this.trackId];this.log("Now switching to audio-track index "+r);var e=t[r],s=e.id,l=e.groupId,a=l===void 0?"":l,g=e.name,A=e.type,D=e.url;if(this.trackId=r,this.trackName=g,this.selectDefaultTrack=!1,this.hls.trigger(S.Events.AUDIO_TRACK_SWITCHING,{id:s,groupId:a,name:g,type:A,url:D}),!(e.details&&!e.details.live)){var y=this.switchParams(e.url,i==null?void 0:i.details);this.loadPlaylist(y)}},c.selectInitialTrack=function(){var r=this.tracksInGroup;console.assert(r.length,"Initial audio track should be selected when tracks are known");var t=this.trackName,i=this.findTrackId(t)||this.findTrackId();i!==-1?this.setAudioTrack(i):(this.warn("No track found for running audio group-ID: "+this.groupId),this.hls.trigger(S.Events.ERROR,{type:h.ErrorTypes.MEDIA_ERROR,details:h.ErrorDetails.AUDIO_TRACK_LOAD_ERROR,fatal:!0}))},c.findTrackId=function(r){for(var t=this.tracksInGroup,i=0;iv.partTarget&&(e+=1)}if(Object(S.isFiniteNumber)(i))return new h.HlsUrlParameters(i,Object(S.isFiniteNumber)(e)?e:void 0,h.HlsSkip.No)}}},n.loadPlaylist=function(o){},n.shouldLoadTrack=function(o){return this.canLoad&&o&&!!o.url&&(!o.details||o.details.live)},n.playlistLoaded=function(o,v,c){var u=this,r=v.details,t=v.stats,i=t.loading.end?Math.max(0,self.performance.now()-t.loading.end):0;if(r.advancedDateTime=Date.now()-i,r.live||c!=null&&c.live){if(r.reloaded(c),c&&this.log("live playlist "+o+" "+(r.advanced?"REFRESHED "+r.lastPartSn+"-"+r.lastPartIndex:"MISSED")),c&&r.fragments.length>0&&Object(m.mergeDetails)(c,r),!this.canLoad||!r.live)return;var e,s=void 0,l=void 0;if(r.canBlockReload&&r.endSN&&r.advanced){var a=this.hls.config.lowLatencyMode,g=r.lastPartSn,A=r.endSN,D=r.lastPartIndex,y=D!==-1,E=g===A,_=a?0:D;y?(s=E?A+1:g,l=E?_:D+1):s=A+1;var L=r.age,I=L+r.ageHeader,b=Math.min(I-r.partTarget,r.targetduration*1.5);if(b>0){if(c&&b>c.tuneInGoal)this.warn("CDN Tune-in goal increased from: "+c.tuneInGoal+" to: "+b+" with playlist age: "+r.age),b=0;else{var R=Math.floor(b/r.targetduration);if(s+=R,l!==void 0){var P=Math.round(b%r.targetduration/r.partTarget);l+=P}this.log("CDN Tune-in age: "+r.ageHeader+"s last advanced "+L.toFixed(2)+"s goal: "+b+" skip sn "+R+" to part "+l)}r.tuneInGoal=b}if(e=this.getDeliveryDirectives(r,v.deliveryDirectives,s,l),a||!E){this.loadPlaylist(e);return}}else e=this.getDeliveryDirectives(r,v.deliveryDirectives,s,l);var w=Object(m.computeReloadInterval)(r,t);s!==void 0&&r.canBlockReload&&(w-=r.partTarget||1),this.log("reload live playlist "+o+" in "+Math.round(w)+" ms"),this.timer=self.setTimeout(function(){return u.loadPlaylist(e)},w)}else this.clearTimer()},n.getDeliveryDirectives=function(o,v,c,u){var r=Object(h.getSkipValue)(o,c);return v!=null&&v.skip&&o.deltaUpdateFailed&&(c=v.msn,u=v.part,r=h.HlsSkip.No),new h.HlsUrlParameters(c,u,r)},n.retryLoadingOrFail=function(o){var v=this,c=this.hls.config,u=this.retryCount-1&&(r=o.context)!==null&&r!==void 0&&r.deliveryDirectives)this.warn("retry playlist loading #"+this.retryCount+' after "'+o.details+'"'),this.loadPlaylist();else{var t=Math.min(Math.pow(2,this.retryCount)*c.levelLoadingRetryDelay,c.levelLoadingMaxRetryTimeout);this.timer=self.setTimeout(function(){return v.loadPlaylist()},t),this.warn("retry playlist loading #"+this.retryCount+" in "+t+' ms after "'+o.details+'"')}}else this.warn('cannot recover from error "'+o.details+'"'),this.clearTimer(),o.fatal=!0;return u},f}()},"./src/controller/base-stream-controller.ts":function(O,C,x){x.r(C),x.d(C,"State",function(){return A}),x.d(C,"default",function(){return D});var S=x("./src/polyfills/number.ts"),h=x("./src/task-loop.ts"),m=x("./src/controller/fragment-tracker.ts"),M=x("./src/utils/buffer-helper.ts"),T=x("./src/utils/logger.ts"),p=x("./src/events.ts"),f=x("./src/errors.ts"),n=x("./src/types/transmuxer.ts"),d=x("./src/utils/mp4-tools.ts"),o=x("./src/utils/discontinuities.ts"),v=x("./src/controller/fragment-finders.ts"),c=x("./src/controller/level-helper.ts"),u=x("./src/loader/fragment-loader.ts"),r=x("./src/crypt/decrypter.ts"),t=x("./src/utils/time-ranges.ts"),i=x("./src/types/loader.ts");function e(y,E){for(var _=0;_=b.endSN&&!I.nextStart){var w=b.partList;if(w!=null&&w.length){var F=w[w.length-1],k=M.BufferHelper.isBuffered(this.media,F.start+F.duration/2);return k}var B=P.getState(R);return B===m.FragmentState.PARTIAL||B===m.FragmentState.OK}return!1},_.onMediaAttached=function(I,b){var R=this.media=this.mediaBuffer=b.media;this.onvseeking=this.onMediaSeeking.bind(this),this.onvended=this.onMediaEnded.bind(this),R.addEventListener("seeking",this.onvseeking),R.addEventListener("ended",this.onvended);var P=this.config;this.levels&&P.autoStartLoad&&this.state===A.STOPPED&&this.startLoad(P.startPosition)},_.onMediaDetaching=function(){var I=this.media;I!=null&&I.ended&&(this.log("MSE detaching and video ended, reset startPosition"),this.startPosition=this.lastCurrentTime=0),I&&(I.removeEventListener("seeking",this.onvseeking),I.removeEventListener("ended",this.onvended),this.onvseeking=this.onvended=null),this.media=this.mediaBuffer=null,this.loadedmetadata=!1,this.fragmentTracker.removeAllFragments(),this.stopLoad()},_.onMediaSeeking=function(){var I=this.config,b=this.fragCurrent,R=this.media,P=this.mediaBuffer,w=this.state,F=R?R.currentTime:0,k=M.BufferHelper.bufferInfo(P||R,F,I.maxBufferHole);if(this.log("media seeking to "+(Object(S.isFiniteNumber)(F)?F.toFixed(3):F)+", state: "+w),w===A.ENDED)this.resetLoadingState();else if(b&&!k.len){var B=I.maxFragLookUpTolerance,U=b.start-B,j=b.start+b.duration+B,K=F>j;(F0&&F&&F.key&&F.iv&&F.method==="AES-128"){var k=self.performance.now();return b.decrypter.webCryptoDecrypt(new Uint8Array(w),F.key.buffer,F.iv.buffer).then(function(B){var U=self.performance.now();return P.trigger(p.Events.FRAG_DECRYPTED,{frag:I,payload:B,stats:{tstart:k,tdecrypt:U}}),R.payload=B,R})}return R}).then(function(R){var P=b.fragCurrent,w=b.hls,F=b.levels;if(!F)throw new Error("init load aborted, missing levels");var k=F[I.level].details;console.assert(k,"Level details are defined when init segment is loaded");var B=I.stats;b.state=A.IDLE,b.fragLoadError=0,I.data=new Uint8Array(R.payload),B.parsing.start=B.buffering.start=self.performance.now(),B.parsing.end=B.buffering.end=self.performance.now(),R.frag===P&&w.trigger(p.Events.FRAG_BUFFERED,{stats:B,frag:P,part:null,id:I.type}),b.tick()}).catch(function(R){b.warn(R),b.resetFragmentLoading(I)})},_.fragContextChanged=function(I){var b=this.fragCurrent;return!I||!b||I.level!==b.level||I.sn!==b.sn||I.urlId!==b.urlId},_.fragBufferedComplete=function(I,b){var R=this.mediaBuffer?this.mediaBuffer:this.media;this.log("Buffered "+I.type+" sn: "+I.sn+(b?" part: "+b.index:"")+" of "+(this.logPrefix==="[stream-controller]"?"level":"track")+" "+I.level+" "+t.default.toString(M.BufferHelper.getBuffered(R))),this.state=A.IDLE,this.tick()},_._handleFragmentLoadComplete=function(I){var b=this.transmuxer;if(!!b){var R=I.frag,P=I.part,w=I.partsLoaded,F=!w||w.length===0||w.some(function(B){return!B}),k=new n.ChunkMetadata(R.level,R.sn,R.stats.chunkCount+1,0,P?P.index:-1,!F);b.flush(k)}},_._handleFragmentLoadProgress=function(I){},_._doFragLoad=function(I,b,R,P){var w=this;if(R===void 0&&(R=null),!this.levels)throw new Error("frag load aborted, missing levels");if(R=Math.max(I.start,R||0),this.config.lowLatencyMode&&b){var F=b.partList;if(F&&P){R>I.end&&b.fragmentHint&&(I=b.fragmentHint);var k=this.getNextPart(F,I,R);if(k>-1){var B=F[k];return this.log("Loading part sn: "+I.sn+" p: "+B.index+" cc: "+I.cc+" of playlist ["+b.startSN+"-"+b.endSN+"] parts [0-"+k+"-"+(F.length-1)+"] "+(this.logPrefix==="[stream-controller]"?"level":"track")+": "+I.level+", target: "+parseFloat(R.toFixed(3))),this.nextLoadPosition=B.start+B.duration,this.state=A.FRAG_LOADING,this.hls.trigger(p.Events.FRAG_LOADING,{frag:I,part:F[k],targetBufferTime:R}),this.doFragPartsLoad(I,F,k,P).catch(function(U){return w.handleFragLoadError(U)})}else if(!I.url||this.loadedEndOfParts(F,R))return Promise.resolve(null)}}return this.log("Loading fragment "+I.sn+" cc: "+I.cc+" "+(b?"of ["+b.startSN+"-"+b.endSN+"] ":"")+(this.logPrefix==="[stream-controller]"?"level":"track")+": "+I.level+", target: "+parseFloat(R.toFixed(3))),Object(S.isFiniteNumber)(I.sn)&&!this.bitrateTest&&(this.nextLoadPosition=I.start+I.duration),this.state=A.FRAG_LOADING,this.hls.trigger(p.Events.FRAG_LOADING,{frag:I,targetBufferTime:R}),this.fragmentLoader.load(I,P).catch(function(U){return w.handleFragLoadError(U)})},_.doFragPartsLoad=function(I,b,R,P){var w=this;return new Promise(function(F,k){var B=[],U=function j(K){var N=b[K];w.fragmentLoader.loadPart(I,N,P).then(function(Z){B[N.index]=Z;var X=Z.part;w.hls.trigger(p.Events.FRAG_LOADED,Z);var Y=b[K+1];if(Y&&Y.fragment===I)j(K+1);else return F({frag:I,part:X,partsLoaded:B})}).catch(k)};U(R)})},_.handleFragLoadError=function(I){var b=I.data;return b&&b.details===f.ErrorDetails.INTERNAL_ABORTED?this.handleFragLoadAborted(b.frag,b.part):this.hls.trigger(p.Events.ERROR,b),null},_._handleTransmuxerFlush=function(I){var b=this.getCurrentContext(I);if(!b||this.state!==A.PARSING){this.fragCurrent||(this.state=A.IDLE);return}var R=b.frag,P=b.part,w=b.level,F=self.performance.now();R.stats.parsing.end=F,P&&(P.stats.parsing.end=F),this.updateLevelTiming(R,P,w,I.partial)},_.getCurrentContext=function(I){var b=this.levels,R=I.level,P=I.sn,w=I.part;if(!b||!b[R])return this.warn("Levels object was unset while buffering fragment "+P+" of level "+R+". The current chunk will not be buffered."),null;var F=b[R],k=w>-1?Object(c.getPartWith)(F,P,w):null,B=k?k.fragment:Object(c.getFragmentWithSN)(F,P,this.fragCurrent);return B?{frag:B,part:k,level:F}:null},_.bufferFragmentData=function(I,b,R,P){if(!(!I||this.state!==A.PARSING)){var w=I.data1,F=I.data2,k=w;if(w&&F&&(k=Object(d.appendUint8Array)(w,F)),!(!k||!k.length)){var B={type:I.type,frag:b,part:R,chunkMeta:P,parent:b.type,data:k};this.hls.trigger(p.Events.BUFFER_APPENDING,B),I.dropped&&I.independent&&!R&&this.flushBufferGap(b)}}},_.flushBufferGap=function(I){var b=this.media;if(!!b){if(!M.BufferHelper.isBuffered(b,b.currentTime)){this.flushMainBuffer(0,I.start);return}var R=b.currentTime,P=M.BufferHelper.bufferInfo(b,R,0),w=I.duration,F=Math.min(this.config.maxFragLookUpTolerance*2,w*.25),k=Math.max(Math.min(I.start-F,P.end-F),R+F);I.start-k>F&&this.flushMainBuffer(k,I.start)}},_.getFwdBufferInfo=function(I,b){var R=this.config,P=this.getLoadPosition();if(!Object(S.isFiniteNumber)(P))return null;var w=M.BufferHelper.bufferInfo(I,P,R.maxBufferHole);if(w.len===0&&w.nextStart!==void 0){var F=this.fragmentTracker.getBufferedFrag(P,b);if(F&&w.nextStart=R?(b.maxMaxBufferLength/=2,this.warn("Reduce max buffer length to "+b.maxMaxBufferLength+"s"),!0):!1},_.getNextFragment=function(I,b){var R,P,w=b.fragments,F=w.length;if(!F)return null;var k=this.config,B=w[0].start,U;if(b.live){var j=k.initialLiveManifestSize;if(F-1&&RR.start&&R.loaded},_.getInitialLiveFragment=function(I,b){var R=this.fragPrevious,P=null;if(R){if(I.hasProgramDateTime&&(this.log("Live playlist, switching playlist, load frag with same PDT: "+R.programDateTime),P=Object(v.findFragmentByPDT)(b,R.endProgramDateTime,this.config.maxFragLookUpTolerance)),!P){var w=R.sn+1;if(w>=I.startSN&&w<=I.endSN){var F=b[w-I.startSN];R.cc===F.cc&&(P=F,this.log("Live playlist, switching playlist, load frag with next SN: "+P.sn))}P||(P=Object(v.findFragWithCC)(b,R.cc),P&&this.log("Live playlist, switching playlist, load frag with same CC: "+P.sn))}}else{var k=this.hls.liveSyncPosition;k!==null&&(P=this.getFragmentAtPosition(k,this.bitrateTest?I.fragmentEnd:I.edge,I))}return P},_.getFragmentAtPosition=function(I,b,R){var P=this.config,w=this.fragPrevious,F=R.fragments,k=R.endSN,B=R.fragmentHint,U=P.maxFragLookUpTolerance,j=!!(P.lowLatencyMode&&R.partList&&B);j&&B&&!this.bitrateTest&&(F=F.concat(B),k=B.sn);var K;if(Ib-U?0:U;K=Object(v.findFragmentByPTS)(w,F,I,N)}else K=F[F.length-1];if(K){var Z=K.sn-R.startSN,X=w&&K.level===w.level,Y=F[Z+1],ee=this.fragmentTracker.getState(K);if(ee===m.FragmentState.BACKTRACKED){K=null;for(var Q=Z;F[Q]&&this.fragmentTracker.getState(F[Q])===m.FragmentState.BACKTRACKED;)w?K=F[Q--]:K=F[--Q];K||(K=Y)}else w&&K.sn===w.sn&&!j&&X&&(K.sn=F-b.maxFragLookUpTolerance&&w<=k;if(P!==null&&R.duration>P&&(w"+I.startSN+" prev-sn: "+(w?w.sn:"na")+" fragments: "+k),K}return B},_.waitForCdnTuneIn=function(I){var b=3;return I.live&&I.canBlockReload&&I.tuneInGoal>Math.max(I.partHoldBack,I.partTarget*b)},_.setStartPosition=function(I,b){var R=this.startPosition;if(R"+I))}}]),E}(h.default)},"./src/controller/buffer-controller.ts":function(O,C,x){x.r(C),x.d(C,"default",function(){return v});var S=x("./src/polyfills/number.ts"),h=x("./src/events.ts"),m=x("./src/utils/logger.ts"),M=x("./src/errors.ts"),T=x("./src/utils/buffer-helper.ts"),p=x("./src/utils/mediasource-helper.ts"),f=x("./src/loader/fragment.ts"),n=x("./src/controller/buffer-operation-queue.ts"),d=Object(p.getMediaSource)(),o=/([ha]vc.)(?:\.[^.,]+)+/,v=function(){function c(r){var t=this;this.details=null,this._objectUrl=null,this.operationQueue=void 0,this.listeners=void 0,this.hls=void 0,this.bufferCodecEventsExpected=0,this._bufferCodecEventsTotal=0,this.media=null,this.mediaSource=null,this.appendError=0,this.tracks={},this.pendingTracks={},this.sourceBuffer=void 0,this._onMediaSourceOpen=function(){var i=t.hls,e=t.media,s=t.mediaSource;m.logger.log("[buffer-controller]: Media source opened"),e&&(t.updateMediaElementDuration(),i.trigger(h.Events.MEDIA_ATTACHED,{media:e})),s&&s.removeEventListener("sourceopen",t._onMediaSourceOpen),t.checkPendingTracks()},this._onMediaSourceClose=function(){m.logger.log("[buffer-controller]: Media source closed")},this._onMediaSourceEnded=function(){m.logger.log("[buffer-controller]: Media source ended")},this.hls=r,this._initSourceBuffer(),this.registerListeners()}var u=c.prototype;return u.hasSourceTypes=function(){return this.getSourceBufferTypes().length>0||Object.keys(this.pendingTracks).length>0},u.destroy=function(){this.unregisterListeners(),this.details=null},u.registerListeners=function(){var t=this.hls;t.on(h.Events.MEDIA_ATTACHING,this.onMediaAttaching,this),t.on(h.Events.MEDIA_DETACHING,this.onMediaDetaching,this),t.on(h.Events.MANIFEST_PARSED,this.onManifestParsed,this),t.on(h.Events.BUFFER_RESET,this.onBufferReset,this),t.on(h.Events.BUFFER_APPENDING,this.onBufferAppending,this),t.on(h.Events.BUFFER_CODECS,this.onBufferCodecs,this),t.on(h.Events.BUFFER_EOS,this.onBufferEos,this),t.on(h.Events.BUFFER_FLUSHING,this.onBufferFlushing,this),t.on(h.Events.LEVEL_UPDATED,this.onLevelUpdated,this),t.on(h.Events.FRAG_PARSED,this.onFragParsed,this),t.on(h.Events.FRAG_CHANGED,this.onFragChanged,this)},u.unregisterListeners=function(){var t=this.hls;t.off(h.Events.MEDIA_ATTACHING,this.onMediaAttaching,this),t.off(h.Events.MEDIA_DETACHING,this.onMediaDetaching,this),t.off(h.Events.MANIFEST_PARSED,this.onManifestParsed,this),t.off(h.Events.BUFFER_RESET,this.onBufferReset,this),t.off(h.Events.BUFFER_APPENDING,this.onBufferAppending,this),t.off(h.Events.BUFFER_CODECS,this.onBufferCodecs,this),t.off(h.Events.BUFFER_EOS,this.onBufferEos,this),t.off(h.Events.BUFFER_FLUSHING,this.onBufferFlushing,this),t.off(h.Events.LEVEL_UPDATED,this.onLevelUpdated,this),t.off(h.Events.FRAG_PARSED,this.onFragParsed,this),t.off(h.Events.FRAG_CHANGED,this.onFragChanged,this)},u._initSourceBuffer=function(){this.sourceBuffer={},this.operationQueue=new n.default(this.sourceBuffer),this.listeners={audio:[],video:[],audiovideo:[]}},u.onManifestParsed=function(t,i){var e=2;(i.audio&&!i.video||!i.altAudio)&&(e=1),this.bufferCodecEventsExpected=this._bufferCodecEventsTotal=e,this.details=null,m.logger.log(this.bufferCodecEventsExpected+" bufferCodec event(s) expected")},u.onMediaAttaching=function(t,i){var e=this.media=i.media;if(e&&d){var s=this.mediaSource=new d;s.addEventListener("sourceopen",this._onMediaSourceOpen),s.addEventListener("sourceended",this._onMediaSourceEnded),s.addEventListener("sourceclose",this._onMediaSourceClose),e.src=self.URL.createObjectURL(s),this._objectUrl=e.src}},u.onMediaDetaching=function(){var t=this.media,i=this.mediaSource,e=this._objectUrl;if(i){if(m.logger.log("[buffer-controller]: media source detaching"),i.readyState==="open")try{i.endOfStream()}catch(s){m.logger.warn("[buffer-controller]: onMediaDetaching: "+s.message+" while calling endOfStream")}this.onBufferReset(),i.removeEventListener("sourceopen",this._onMediaSourceOpen),i.removeEventListener("sourceended",this._onMediaSourceEnded),i.removeEventListener("sourceclose",this._onMediaSourceClose),t&&(e&&self.URL.revokeObjectURL(e),t.src===e?(t.removeAttribute("src"),t.load()):m.logger.warn("[buffer-controller]: media.src was changed by a third party - skip cleanup")),this.mediaSource=null,this.media=null,this._objectUrl=null,this.bufferCodecEventsExpected=this._bufferCodecEventsTotal,this.pendingTracks={},this.tracks={}}this.hls.trigger(h.Events.MEDIA_DETACHED,void 0)},u.onBufferReset=function(){var t=this;this.getSourceBufferTypes().forEach(function(i){var e=t.sourceBuffer[i];try{e&&(t.removeBufferListeners(i),t.mediaSource&&t.mediaSource.removeSourceBuffer(e),t.sourceBuffer[i]=void 0)}catch(s){m.logger.warn("[buffer-controller]: Failed to reset the "+i+" buffer",s)}}),this._initSourceBuffer()},u.onBufferCodecs=function(t,i){var e=this,s=this.getSourceBufferTypes().length;Object.keys(i).forEach(function(l){if(s){var a=e.tracks[l];if(a&&typeof a.buffer.changeType=="function"){var g=i[l],A=g.codec,D=g.levelCodec,y=g.container,E=(a.levelCodec||a.codec).replace(o,"$1"),_=(D||A).replace(o,"$1");if(E!==_){var L=y+";codecs="+(D||A);e.appendChangeType(l,L)}}}else e.pendingTracks[l]=i[l]}),!s&&(this.bufferCodecEventsExpected=Math.max(this.bufferCodecEventsExpected-1,0),this.mediaSource&&this.mediaSource.readyState==="open"&&this.checkPendingTracks())},u.appendChangeType=function(t,i){var e=this,s=this.operationQueue,l={execute:function(){var g=e.sourceBuffer[t];g&&(m.logger.log("[buffer-controller]: changing "+t+" sourceBuffer type to "+i),g.changeType(i)),s.shiftAndExecuteNext(t)},onStart:function(){},onComplete:function(){},onError:function(g){m.logger.warn("[buffer-controller]: Failed to change "+t+" SourceBuffer type",g)}};s.append(l,t)},u.onBufferAppending=function(t,i){var e=this,s=this.hls,l=this.operationQueue,a=this.tracks,g=i.data,A=i.type,D=i.frag,y=i.part,E=i.chunkMeta,_=E.buffering[A],L=self.performance.now();_.start=L;var I=D.stats.buffering,b=y?y.stats.buffering:null;I.start===0&&(I.start=L),b&&b.start===0&&(b.start=L);var R=a.audio,P=A==="audio"&&E.id===1&&(R==null?void 0:R.container)==="audio/mpeg",w={execute:function(){if(_.executeStart=self.performance.now(),P){var k=e.sourceBuffer[A];if(k){var B=D.start-k.timestampOffset;Math.abs(B)>=.1&&(m.logger.log("[buffer-controller]: Updating audio SourceBuffer timestampOffset to "+D.start+" (delta: "+B+") sn: "+D.sn+")"),k.timestampOffset=D.start)}}e.appendExecutor(g,A)},onStart:function(){},onComplete:function(){var k=self.performance.now();_.executeEnd=_.end=k,I.first===0&&(I.first=k),b&&b.first===0&&(b.first=k);var B=e.sourceBuffer,U={};for(var j in B)U[j]=T.BufferHelper.getBuffered(B[j]);e.appendError=0,e.hls.trigger(h.Events.BUFFER_APPENDED,{type:A,frag:D,part:y,chunkMeta:E,parent:D.type,timeRanges:U})},onError:function(k){m.logger.error("[buffer-controller]: Error encountered while trying to append to the "+A+" SourceBuffer",k);var B={type:M.ErrorTypes.MEDIA_ERROR,parent:D.type,details:M.ErrorDetails.BUFFER_APPEND_ERROR,err:k,fatal:!1};k.code===DOMException.QUOTA_EXCEEDED_ERR?B.details=M.ErrorDetails.BUFFER_FULL_ERROR:(e.appendError++,B.details=M.ErrorDetails.BUFFER_APPEND_ERROR,e.appendError>s.config.appendErrorMaxRetry&&(m.logger.error("[buffer-controller]: Failed "+s.config.appendErrorMaxRetry+" times to append segment in sourceBuffer"),B.fatal=!0)),s.trigger(h.Events.ERROR,B)}};l.append(w,A)},u.onBufferFlushing=function(t,i){var e=this,s=this.operationQueue,l=function(g){return{execute:e.removeExecutor.bind(e,g,i.startOffset,i.endOffset),onStart:function(){},onComplete:function(){e.hls.trigger(h.Events.BUFFER_FLUSHED,{type:g})},onError:function(D){m.logger.warn("[buffer-controller]: Failed to remove from "+g+" SourceBuffer",D)}}};i.type?s.append(l(i.type),i.type):this.getSourceBufferTypes().forEach(function(a){s.append(l(a),a)})},u.onFragParsed=function(t,i){var e=this,s=i.frag,l=i.part,a=[],g=l?l.elementaryStreams:s.elementaryStreams;g[f.ElementaryStreamTypes.AUDIOVIDEO]?a.push("audiovideo"):(g[f.ElementaryStreamTypes.AUDIO]&&a.push("audio"),g[f.ElementaryStreamTypes.VIDEO]&&a.push("video"));var A=function(){var y=self.performance.now();s.stats.buffering.end=y,l&&(l.stats.buffering.end=y);var E=l?l.stats:s.stats;e.hls.trigger(h.Events.FRAG_BUFFERED,{frag:s,part:l,stats:E,id:s.type})};a.length===0&&m.logger.warn("Fragments must have at least one ElementaryStreamType set. type: "+s.type+" level: "+s.level+" sn: "+s.sn),this.blockBuffers(A,a)},u.onFragChanged=function(t,i){this.flushBackBuffer()},u.onBufferEos=function(t,i){var e=this,s=this.getSourceBufferTypes().reduce(function(l,a){var g=e.sourceBuffer[a];return(!i.type||i.type===a)&&g&&!g.ended&&(g.ended=!0,m.logger.log("[buffer-controller]: "+a+" sourceBuffer now EOS")),l&&!!(!g||g.ended)},!0);s&&this.blockBuffers(function(){var l=e.mediaSource;!l||l.readyState!=="open"||l.endOfStream()})},u.onLevelUpdated=function(t,i){var e=i.details;!e.fragments.length||(this.details=e,this.getSourceBufferTypes().length?this.blockBuffers(this.updateMediaElementDuration.bind(this)):this.updateMediaElementDuration())},u.flushBackBuffer=function(){var t=this.hls,i=this.details,e=this.media,s=this.sourceBuffer;if(!(!e||i===null)){var l=this.getSourceBufferTypes();if(!!l.length){var a=i.live&&t.config.liveBackBufferLength!==null?t.config.liveBackBufferLength:t.config.backBufferLength;if(!(!Object(S.isFiniteNumber)(a)||a<0)){var g=e.currentTime,A=i.levelTargetDuration,D=Math.max(a,A),y=Math.floor(g/A)*A-D;l.forEach(function(E){var _=s[E];if(_){var L=T.BufferHelper.getBuffered(_);L.length>0&&y>L.start(0)&&(t.trigger(h.Events.BACK_BUFFER_REACHED,{bufferEnd:y}),i.live&&t.trigger(h.Events.LIVE_BACK_BUFFER_REACHED,{bufferEnd:y}),t.trigger(h.Events.BUFFER_FLUSHING,{startOffset:0,endOffset:y,type:E}))}})}}}},u.updateMediaElementDuration=function(){if(!(!this.details||!this.media||!this.mediaSource||this.mediaSource.readyState!=="open")){var t=this.details,i=this.hls,e=this.media,s=this.mediaSource,l=t.fragments[0].start+t.totalduration,a=e.duration,g=Object(S.isFiniteNumber)(s.duration)?s.duration:0;t.live&&i.config.liveDurationInfinity?(m.logger.log("[buffer-controller]: Media Source duration is set to Infinity"),s.duration=1/0,this.updateSeekableRange(t)):(l>g&&l>a||!Object(S.isFiniteNumber)(a))&&(m.logger.log("[buffer-controller]: Updating Media Source duration to "+l.toFixed(3)),s.duration=l)}},u.updateSeekableRange=function(t){var i=this.mediaSource,e=t.fragments,s=e.length;if(s&&t.live&&i!==null&&i!==void 0&&i.setLiveSeekableRange){var l=Math.max(0,e[0].start),a=Math.max(l,l+t.totalduration);i.setLiveSeekableRange(l,a)}},u.checkPendingTracks=function(){var t=this.bufferCodecEventsExpected,i=this.operationQueue,e=this.pendingTracks,s=Object.keys(e).length;if(s&&!t||s===2){this.createSourceBuffers(e),this.pendingTracks={};var l=this.getSourceBufferTypes();if(l.length===0){this.hls.trigger(h.Events.ERROR,{type:M.ErrorTypes.MEDIA_ERROR,details:M.ErrorDetails.BUFFER_INCOMPATIBLE_CODECS_ERROR,fatal:!0,reason:"could not create source buffer for media codec(s)"});return}l.forEach(function(a){i.executeNext(a)})}},u.createSourceBuffers=function(t){var i=this.sourceBuffer,e=this.mediaSource;if(!e)throw Error("createSourceBuffers called when mediaSource was null");var s=0;for(var l in t)if(!i[l]){var a=t[l];if(!a)throw Error("source buffer exists for track "+l+", however track does not");var g=a.levelCodec||a.codec,A=a.container+";codecs="+g;m.logger.log("[buffer-controller]: creating sourceBuffer("+A+")");try{var D=i[l]=e.addSourceBuffer(A),y=l;this.addBufferListener(y,"updatestart",this._onSBUpdateStart),this.addBufferListener(y,"updateend",this._onSBUpdateEnd),this.addBufferListener(y,"error",this._onSBUpdateError),this.tracks[l]={buffer:D,codec:g,container:a.container,levelCodec:a.levelCodec,id:a.id},s++}catch(E){m.logger.error("[buffer-controller]: error while trying to add sourceBuffer: "+E.message),this.hls.trigger(h.Events.ERROR,{type:M.ErrorTypes.MEDIA_ERROR,details:M.ErrorDetails.BUFFER_ADD_CODEC_ERROR,fatal:!1,error:E,mimeType:A})}}s&&this.hls.trigger(h.Events.BUFFER_CREATED,{tracks:this.tracks})},u._onSBUpdateStart=function(t){var i=this.operationQueue,e=i.current(t);e.onStart()},u._onSBUpdateEnd=function(t){var i=this.operationQueue,e=i.current(t);e.onComplete(),i.shiftAndExecuteNext(t)},u._onSBUpdateError=function(t,i){m.logger.error("[buffer-controller]: "+t+" SourceBuffer error",i),this.hls.trigger(h.Events.ERROR,{type:M.ErrorTypes.MEDIA_ERROR,details:M.ErrorDetails.BUFFER_APPENDING_ERROR,fatal:!1});var e=this.operationQueue.current(t);e&&e.onError(i)},u.removeExecutor=function(t,i,e){var s=this.media,l=this.mediaSource,a=this.operationQueue,g=this.sourceBuffer,A=g[t];if(!s||!l||!A){m.logger.warn("[buffer-controller]: Attempting to remove from the "+t+" SourceBuffer, but it does not exist"),a.shiftAndExecuteNext(t);return}var D=Object(S.isFiniteNumber)(s.duration)?s.duration:1/0,y=Object(S.isFiniteNumber)(l.duration)?l.duration:1/0,E=Math.max(0,i),_=Math.min(e,D,y);_>E?(m.logger.log("[buffer-controller]: Removing ["+E+","+_+"] from the "+t+" SourceBuffer"),console.assert(!A.updating,t+" sourceBuffer must not be updating"),A.remove(E,_)):a.shiftAndExecuteNext(t)},u.appendExecutor=function(t,i){var e=this.operationQueue,s=this.sourceBuffer,l=s[i];if(!l){m.logger.warn("[buffer-controller]: Attempting to append to the "+i+" SourceBuffer, but it does not exist"),e.shiftAndExecuteNext(i);return}l.ended=!1,console.assert(!l.updating,i+" sourceBuffer must not be updating"),l.appendBuffer(t)},u.blockBuffers=function(t,i){var e=this;if(i===void 0&&(i=this.getSourceBufferTypes()),!i.length){m.logger.log("[buffer-controller]: Blocking operation requested, but no SourceBuffers exist"),Promise.resolve(t);return}var s=this.operationQueue,l=i.map(function(a){return s.appendBlocker(a)});Promise.all(l).then(function(){t(),i.forEach(function(a){var g=e.sourceBuffer[a];(!g||!g.updating)&&s.shiftAndExecuteNext(a)})})},u.getSourceBufferTypes=function(){return Object.keys(this.sourceBuffer)},u.addBufferListener=function(t,i,e){var s=this.sourceBuffer[t];if(!!s){var l=e.bind(this,t);this.listeners[t].push({event:i,listener:l}),s.addEventListener(i,l)}},u.removeBufferListeners=function(t){var i=this.sourceBuffer[t];!i||this.listeners[t].forEach(function(e){i.removeEventListener(e.event,e.listener)})},c}()},"./src/controller/buffer-operation-queue.ts":function(O,C,x){x.r(C),x.d(C,"default",function(){return h});var S=x("./src/utils/logger.ts"),h=function(){function m(T){this.buffers=void 0,this.queues={video:[],audio:[],audiovideo:[]},this.buffers=T}var M=m.prototype;return M.append=function(p,f){var n=this.queues[f];n.push(p),n.length===1&&this.buffers[f]&&this.executeNext(f)},M.insertAbort=function(p,f){var n=this.queues[f];n.unshift(p),this.executeNext(f)},M.appendBlocker=function(p){var f,n=new Promise(function(o){f=o}),d={execute:f,onStart:function(){},onComplete:function(){},onError:function(){}};return this.append(d,p),n},M.executeNext=function(p){var f=this.buffers,n=this.queues,d=f[p],o=n[p];if(o.length){var v=o[0];try{v.execute()}catch(c){S.logger.warn("[buffer-operation-queue]: Unhandled exception executing the current operation"),v.onError(c),(!d||!d.updating)&&(o.shift(),this.executeNext(p))}}},M.shiftAndExecuteNext=function(p){this.queues[p].shift(),this.executeNext(p)},M.current=function(p){return this.queues[p][0]},m}()},"./src/controller/cap-level-controller.ts":function(O,C,x){x.r(C);var S=x("./src/events.ts");function h(T,p){for(var f=0;f0&&this.mediaWidth>0){var n=this.hls.levels;if(n.length){var d=this.hls;d.autoLevelCapping=this.getMaxLevel(n.length-1),d.autoLevelCapping>this.autoLevelCapping&&this.streamController&&this.streamController.nextLevelSwitch(),this.autoLevelCapping=d.autoLevelCapping}}},p.getMaxLevel=function(n){var d=this,o=this.hls.levels;if(!o.length)return-1;var v=o.filter(function(c,u){return T.isLevelAllowed(u,d.restrictedLevels)&&u<=n});return this.clientRect=null,T.getMaxLevelByMediaSize(v,this.mediaWidth,this.mediaHeight)},p.startCapping=function(){this.timer||(this.autoLevelCapping=Number.POSITIVE_INFINITY,this.hls.firstLevel=this.getMaxLevel(this.firstLevel),self.clearInterval(this.timer),this.timer=self.setInterval(this.detectPlayerSize.bind(this),1e3),this.detectPlayerSize())},p.stopCapping=function(){this.restrictedLevels=[],this.firstLevel=-1,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.timer&&(self.clearInterval(this.timer),this.timer=void 0)},p.getDimensions=function(){if(this.clientRect)return this.clientRect;var n=this.media,d={width:0,height:0};if(n){var o=n.getBoundingClientRect();d.width=o.width,d.height=o.height,!d.width&&!d.height&&(d.width=o.right-o.left||n.width||0,d.height=o.bottom-o.top||n.height||0)}return this.clientRect=d,d},T.isLevelAllowed=function(n,d){return d===void 0&&(d=[]),d.indexOf(n)===-1},T.getMaxLevelByMediaSize=function(n,d,o){if(!n||!n.length)return-1;for(var v=function(i,e){return e?i.width!==e.width||i.height!==e.height:!0},c=n.length-1,u=0;u=d||r.height>=o)&&v(r,n[u+1])){c=u;break}}return c},m(T,[{key:"mediaWidth",get:function(){return this.getDimensions().width*T.contentScaleFactor}},{key:"mediaHeight",get:function(){return this.getDimensions().height*T.contentScaleFactor}}],[{key:"contentScaleFactor",get:function(){var n=1;try{n=self.devicePixelRatio}catch{}return n}}]),T}();C.default=M},"./src/controller/cmcd-controller.ts":function(O,C,x){x.r(C),x.d(C,"default",function(){return v});var S=x("./src/events.ts"),h=x("./src/types/cmcd.ts"),m=x("./src/utils/buffer-helper.ts"),M=x("./src/utils/logger.ts");function T(c,u){for(var r=0;r=c.length?{done:!0}:{done:!1,value:c[t++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function n(c,u){if(!!c){if(typeof c=="string")return d(c,u);var r=Object.prototype.toString.call(c).slice(8,-1);if(r==="Object"&&c.constructor&&(r=c.constructor.name),r==="Map"||r==="Set")return Array.from(c);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return d(c,u)}}function d(c,u){(u==null||u>c.length)&&(u=c.length);for(var r=0,t=new Array(u);r-1?l+1:s.levels.length;e=s.levels.slice(0,a)}for(var g=f(e),A;!(A=g()).done;){var D=A.value;D.bitrate>i&&(i=D.bitrate)}return i>0?i:NaN},u.getBufferLength=function(t){var i=this.hls.media,e=t===h.CMCDObjectType.AUDIO?this.audioBuffer:this.videoBuffer;if(!e||!i)return NaN;var s=m.BufferHelper.bufferInfo(e,i.currentTime,this.config.maxBufferHole);return s.len*1e3},u.createPlaylistLoader=function(){var t=this.config.pLoader,i=this.applyPlaylistData,e=t||this.config.loader;return function(){function s(a){this.loader=void 0,this.loader=new e(a)}var l=s.prototype;return l.destroy=function(){this.loader.destroy()},l.abort=function(){this.loader.abort()},l.load=function(g,A,D){i(g),this.loader.load(g,A,D)},p(s,[{key:"stats",get:function(){return this.loader.stats}},{key:"context",get:function(){return this.loader.context}}]),s}()},u.createFragmentLoader=function(){var t=this.config.fLoader,i=this.applyFragmentData,e=t||this.config.loader;return function(){function s(a){this.loader=void 0,this.loader=new e(a)}var l=s.prototype;return l.destroy=function(){this.loader.destroy()},l.abort=function(){this.loader.abort()},l.load=function(g,A,D){i(g),this.loader.load(g,A,D)},p(s,[{key:"stats",get:function(){return this.loader.stats}},{key:"context",get:function(){return this.loader.context}}]),s}()},c.uuid=function(){var t=URL.createObjectURL(new Blob),i=t.toString();return URL.revokeObjectURL(t),i.substr(i.lastIndexOf("/")+1)},c.serialize=function(t){for(var i=[],e=function(P){return!Number.isNaN(P)&&P!=null&&P!==""&&P!==!1},s=function(P){return Math.round(P)},l=function(P){return s(P/100)*100},a=function(P){return encodeURIComponent(P)},g={br:s,d:s,bl:l,dl:l,mtp:l,nor:a,rtp:l,tb:s},A=Object.keys(t||{}).sort(),D=f(A),y;!(y=D()).done;){var E=y.value,_=t[E];if(!!e(_)&&!(E==="v"&&_===1)&&!(E=="pr"&&_===1)){var L=g[E];L&&(_=L(_));var I=typeof _,b=void 0;E==="ot"||E==="sf"||E==="st"?b=E+"="+_:I==="boolean"?b=E:I==="number"?b=E+"="+_:b=E+"="+JSON.stringify(_),i.push(b)}}return i.join(",")},c.toHeaders=function(t){for(var i=Object.keys(t),e={},s=["Object","Request","Session","Status"],l=[{},{},{},{}],a={br:0,d:0,ot:0,tb:0,bl:1,dl:1,mtp:1,nor:1,nrr:1,su:1,cid:2,pr:2,sf:2,sid:2,st:2,v:2,bs:3,rtp:3},g=0,A=i;gf){this.hls.trigger(S.Events.ERROR,{type:h.ErrorTypes.KEY_SYSTEM_ERROR,details:h.ErrorDetails.KEY_SYSTEM_LICENSE_REQUEST_FAILED,fatal:!0});return}var a=f-this._requestLicenseFailureCount+1;m.logger.warn("Retrying license request, "+a+" attempts left"),this._requestLicense(i,e)}break}},c._generateLicenseRequestChallenge=function(r,t){switch(r.mediaKeySystemDomain){case M.KeySystems.WIDEVINE:return t}throw new Error("unsupported key-system: "+r.mediaKeySystemDomain)},c._requestLicense=function(r,t){m.logger.log("Requesting content license for key-system");var i=this._mediaKeysList[0];if(!i){m.logger.error("Fatal error: Media is encrypted but no key-system access has been obtained yet"),this.hls.trigger(S.Events.ERROR,{type:h.ErrorTypes.KEY_SYSTEM_ERROR,details:h.ErrorDetails.KEY_SYSTEM_NO_ACCESS,fatal:!0});return}try{var e=this.getLicenseServerUrl(i.mediaKeySystemDomain),s=this._createLicenseXhr(e,r,t);m.logger.log("Sending license request to URL: "+e);var l=this._generateLicenseRequestChallenge(i,r);s.send(l)}catch(a){m.logger.error("Failure requesting DRM license: "+a),this.hls.trigger(S.Events.ERROR,{type:h.ErrorTypes.KEY_SYSTEM_ERROR,details:h.ErrorDetails.KEY_SYSTEM_LICENSE_REQUEST_FAILED,fatal:!0})}},c.onMediaAttached=function(r,t){if(!!this._emeEnabled){var i=t.media;this._media=i,i.addEventListener("encrypted",this._onMediaEncrypted)}},c.onMediaDetached=function(){var r=this._media,t=this._mediaKeysList;!r||(r.removeEventListener("encrypted",this._onMediaEncrypted),this._media=null,this._mediaKeysList=[],Promise.all(t.map(function(i){if(i.mediaKeysSession)return i.mediaKeysSession.close().catch(function(){})})).then(function(){return r.setMediaKeys(null)}).catch(function(){}))},c.onManifestParsed=function(r,t){if(!!this._emeEnabled){var i=t.levels.map(function(s){return s.audioCodec}).filter(function(s){return!!s}),e=t.levels.map(function(s){return s.videoCodec}).filter(function(s){return!!s});this._attemptKeySystemAccess(M.KeySystems.WIDEVINE,i,e)}},p(v,[{key:"requestMediaKeySystemAccess",get:function(){if(!this._requestMediaKeySystemAccess)throw new Error("No requestMediaKeySystemAccess function configured");return this._requestMediaKeySystemAccess}}]),v}();C.default=o},"./src/controller/fps-controller.ts":function(O,C,x){x.r(C);var S=x("./src/events.ts"),h=x("./src/utils/logger.ts"),m=function(){function M(p){this.hls=void 0,this.isVideoPlaybackQualityAvailable=!1,this.timer=void 0,this.media=null,this.lastTime=void 0,this.lastDroppedFrames=0,this.lastDecodedFrames=0,this.streamController=void 0,this.hls=p,this.registerListeners()}var T=M.prototype;return T.setStreamController=function(f){this.streamController=f},T.registerListeners=function(){this.hls.on(S.Events.MEDIA_ATTACHING,this.onMediaAttaching,this)},T.unregisterListeners=function(){this.hls.off(S.Events.MEDIA_ATTACHING,this.onMediaAttaching)},T.destroy=function(){this.timer&&clearInterval(this.timer),this.unregisterListeners(),this.isVideoPlaybackQualityAvailable=!1,this.media=null},T.onMediaAttaching=function(f,n){var d=this.hls.config;if(d.capLevelOnFPSDrop){var o=n.media instanceof self.HTMLVideoElement?n.media:null;this.media=o,o&&typeof o.getVideoPlaybackQuality=="function"&&(this.isVideoPlaybackQualityAvailable=!0),self.clearInterval(this.timer),this.timer=self.setInterval(this.checkFPSInterval.bind(this),d.fpsDroppedMonitoringPeriod)}},T.checkFPS=function(f,n,d){var o=performance.now();if(n){if(this.lastTime){var v=o-this.lastTime,c=d-this.lastDroppedFrames,u=n-this.lastDecodedFrames,r=1e3*c/v,t=this.hls;if(t.trigger(S.Events.FPS_DROP,{currentDropped:c,currentDecoded:u,totalDroppedFrames:d}),r>0&&c>t.config.fpsDroppedMonitoringThreshold*u){var i=t.currentLevel;h.logger.warn("drop FPS ratio greater than max allowed value for currentLevel: "+i),i>0&&(t.autoLevelCapping===-1||t.autoLevelCapping>=i)&&(i=i-1,t.trigger(S.Events.FPS_DROP_LEVEL_CAPPING,{level:i,droppedLevel:t.currentLevel}),t.autoLevelCapping=i,this.streamController.nextLevelSwitch())}}this.lastTime=o,this.lastDroppedFrames=d,this.lastDecodedFrames=n}},T.checkFPSInterval=function(){var f=this.media;if(f)if(this.isVideoPlaybackQualityAvailable){var n=f.getVideoPlaybackQuality();this.checkFPS(f,n.totalVideoFrames,n.droppedVideoFrames)}else this.checkFPS(f,f.webkitDecodedFrameCount,f.webkitDroppedFrameCount)},M}();C.default=m},"./src/controller/fragment-finders.ts":function(O,C,x){x.r(C),x.d(C,"findFragmentByPDT",function(){return m}),x.d(C,"findFragmentByPTS",function(){return M}),x.d(C,"fragmentWithinToleranceTest",function(){return T}),x.d(C,"pdtWithinToleranceTest",function(){return p}),x.d(C,"findFragWithCC",function(){return f});var S=x("./src/polyfills/number.ts"),h=x("./src/utils/binary-search.ts");function m(n,d,o){if(d===null||!Array.isArray(n)||!n.length||!Object(S.isFiniteNumber)(d))return null;var v=n[0].programDateTime;if(d<(v||0))return null;var c=n[n.length-1].endProgramDateTime;if(d>=(c||0))return null;o=o||0;for(var u=0;un&&o.start?-1:0}function p(n,d,o){var v=Math.min(d,o.duration+(o.deltaPTS?o.deltaPTS:0))*1e3,c=o.endProgramDateTime||0;return c-v>n}function f(n,d){return h.default.search(n,function(o){return o.ccd?-1:0})}},"./src/controller/fragment-tracker.ts":function(O,C,x){x.r(C),x.d(C,"FragmentState",function(){return m}),x.d(C,"FragmentTracker",function(){return M});var S=x("./src/events.ts"),h=x("./src/types/loader.ts"),m;(function(f){f.NOT_LOADED="NOT_LOADED",f.BACKTRACKED="BACKTRACKED",f.APPENDING="APPENDING",f.PARTIAL="PARTIAL",f.OK="OK"})(m||(m={}));var M=function(){function f(d){this.activeFragment=null,this.activeParts=null,this.fragments=Object.create(null),this.timeRanges=Object.create(null),this.bufferPadding=.2,this.hls=void 0,this.hls=d,this._registerListeners()}var n=f.prototype;return n._registerListeners=function(){var o=this.hls;o.on(S.Events.BUFFER_APPENDED,this.onBufferAppended,this),o.on(S.Events.FRAG_BUFFERED,this.onFragBuffered,this),o.on(S.Events.FRAG_LOADED,this.onFragLoaded,this)},n._unregisterListeners=function(){var o=this.hls;o.off(S.Events.BUFFER_APPENDED,this.onBufferAppended,this),o.off(S.Events.FRAG_BUFFERED,this.onFragBuffered,this),o.off(S.Events.FRAG_LOADED,this.onFragLoaded,this)},n.destroy=function(){this._unregisterListeners(),this.fragments=this.timeRanges=null},n.getAppendedFrag=function(o,v){if(v===h.PlaylistLevelType.MAIN){var c=this.activeFragment,u=this.activeParts;if(!c)return null;if(u)for(var r=u.length;r--;){var t=u[r],i=t?t.end:c.appendedPTS;if(t.start<=o&&i!==void 0&&o<=i)return r>9&&(this.activeParts=u.slice(r-9)),t}else if(c.start<=o&&c.appendedPTS!==void 0&&o<=c.appendedPTS)return c}return this.getBufferedFrag(o,v)},n.getBufferedFrag=function(o,v){for(var c=this.fragments,u=Object.keys(c),r=u.length;r--;){var t=c[u[r]];if((t==null?void 0:t.body.type)===v&&t.buffered){var i=t.body;if(i.start<=o&&o<=i.end)return i}}return null},n.detectEvictedFragments=function(o,v,c){var u=this;Object.keys(this.fragments).forEach(function(r){var t=u.fragments[r];if(!!t){if(!t.buffered){t.body.type===c&&u.removeFragment(t.body);return}var i=t.range[o];!i||i.time.some(function(e){var s=!u.isTimeBuffered(e.startPTS,e.endPTS,v);return s&&u.removeFragment(t.body),s})}})},n.detectPartialFragments=function(o){var v=this,c=this.timeRanges,u=o.frag,r=o.part;if(!(!c||u.sn==="initSegment")){var t=p(u),i=this.fragments[t];!i||(Object.keys(c).forEach(function(e){var s=u.elementaryStreams[e];if(!!s){var l=c[e],a=r!==null||s.partial===!0;i.range[e]=v.getBufferedTimes(u,r,a,l)}}),i.backtrack=i.loaded=null,Object.keys(i.range).length?i.buffered=!0:this.removeFragment(i.body))}},n.fragBuffered=function(o){var v=p(o),c=this.fragments[v];c&&(c.backtrack=c.loaded=null,c.buffered=!0)},n.getBufferedTimes=function(o,v,c,u){for(var r={time:[],partial:c},t=v?v.start:o.start,i=v?v.end:o.end,e=o.minEndPTS||i,s=o.maxStartPTS||t,l=0;l=a&&e<=g){r.time.push({startPTS:Math.max(t,u.start(l)),endPTS:Math.min(i,u.end(l))});break}else if(ta)r.partial=!0,r.time.push({startPTS:Math.max(t,u.start(l)),endPTS:Math.min(i,u.end(l))});else if(i<=a)break}return r},n.getPartialFragment=function(o){var v=null,c,u,r,t=0,i=this.bufferPadding,e=this.fragments;return Object.keys(e).forEach(function(s){var l=e[s];!l||T(l)&&(u=l.body.start-i,r=l.body.end+i,o>=u&&o<=r&&(c=Math.min(o-u,r-o),t<=c&&(v=l.body,t=c)))}),v},n.getState=function(o){var v=p(o),c=this.fragments[v];return c?c.buffered?T(c)?m.PARTIAL:m.OK:c.backtrack?m.BACKTRACKED:m.APPENDING:m.NOT_LOADED},n.backtrack=function(o,v){var c=p(o),u=this.fragments[c];if(!u||u.backtrack)return null;var r=u.backtrack=v||u.loaded;return u.loaded=null,r},n.getBacktrackData=function(o){var v=p(o),c=this.fragments[v];if(c){var u,r=c.backtrack;if(r!=null&&(u=r.payload)!==null&&u!==void 0&&u.byteLength)return r;this.removeFragment(o)}return null},n.isTimeBuffered=function(o,v,c){for(var u,r,t=0;t=u&&v<=r)return!0;if(v<=u)return!1}return!1},n.onFragLoaded=function(o,v){var c=v.frag,u=v.part;if(!(c.sn==="initSegment"||c.bitrateTest||u)){var r=p(c);this.fragments[r]={body:c,loaded:v,backtrack:null,buffered:!1,range:Object.create(null)}}},n.onBufferAppended=function(o,v){var c=this,u=v.frag,r=v.part,t=v.timeRanges;if(u.type===h.PlaylistLevelType.MAIN)if(this.activeFragment=u,r){var i=this.activeParts;i||(this.activeParts=i=[]),i.push(r)}else this.activeParts=null;this.timeRanges=t,Object.keys(t).forEach(function(e){var s=t[e];if(c.detectEvictedFragments(e,s),!r)for(var l=0;lo&&u.removeFragment(i)}})},n.removeFragment=function(o){var v=p(o);o.stats.loaded=0,o.clearElementaryStreamInfo(),delete this.fragments[v]},n.removeAllFragments=function(){this.fragments=Object.create(null),this.activeFragment=null,this.activeParts=null},f}();function T(f){var n,d;return f.buffered&&(((n=f.range.video)===null||n===void 0?void 0:n.partial)||((d=f.range.audio)===null||d===void 0?void 0:d.partial))}function p(f){return f.type+"_"+f.level+"_"+f.urlId+"_"+f.sn}},"./src/controller/gap-controller.ts":function(O,C,x){x.r(C),x.d(C,"STALL_MINIMUM_DURATION_MS",function(){return T}),x.d(C,"MAX_START_GAP_JUMP",function(){return p}),x.d(C,"SKIP_BUFFER_HOLE_STEP_SECONDS",function(){return f}),x.d(C,"SKIP_BUFFER_RANGE_START",function(){return n}),x.d(C,"default",function(){return d});var S=x("./src/utils/buffer-helper.ts"),h=x("./src/errors.ts"),m=x("./src/events.ts"),M=x("./src/utils/logger.ts"),T=250,p=2,f=.1,n=.05,d=function(){function o(c,u,r,t){this.config=void 0,this.media=void 0,this.fragmentTracker=void 0,this.hls=void 0,this.nudgeRetry=0,this.stallReported=!1,this.stalled=null,this.moved=!1,this.seeking=!1,this.config=c,this.media=u,this.fragmentTracker=r,this.hls=t}var v=o.prototype;return v.destroy=function(){this.hls=this.fragmentTracker=this.media=null},v.poll=function(u){var r=this.config,t=this.media,i=this.stalled,e=t.currentTime,s=t.seeking,l=this.seeking&&!s,a=!this.seeking&&s;if(this.seeking=s,e!==u){if(this.moved=!0,i!==null){if(this.stallReported){var g=self.performance.now()-i;M.logger.warn("playback not stuck anymore @"+e+", after "+Math.round(g)+"ms"),this.stallReported=!1}this.stalled=null,this.nudgeRetry=0}return}if((a||l)&&(this.stalled=null),!(t.paused||t.ended||t.playbackRate===0||!S.BufferHelper.getBuffered(t).length)){var A=S.BufferHelper.bufferInfo(t,e,0),D=A.len>0,y=A.nextStart||0;if(!(!D&&!y)){if(s){var E=A.len>p,_=!y||y-e>p&&!this.fragmentTracker.getPartialFragment(e);if(E||_)return;this.moved=!1}if(!this.moved&&this.stalled!==null){var L,I=Math.max(y,A.start||0)-e,b=this.hls.levels?this.hls.levels[this.hls.currentLevel]:null,R=b==null||(L=b.details)===null||L===void 0?void 0:L.live,P=R?b.details.targetduration*2:p;if(I>0&&I<=P){this._trySkipBufferHole(null);return}}var w=self.performance.now();if(i===null){this.stalled=w;return}var F=w-i;!s&&F>=T&&this._reportStall(A.len);var k=S.BufferHelper.bufferInfo(t,e,r.maxBufferHole);this._tryFixBufferStall(k,F)}}},v._tryFixBufferStall=function(u,r){var t=this.config,i=this.fragmentTracker,e=this.media,s=e.currentTime,l=i.getPartialFragment(s);if(l){var a=this._trySkipBufferHole(l);if(a)return}u.len>t.maxBufferHole&&r>t.highBufferWatchdogPeriod*1e3&&(M.logger.warn("Trying to nudge playhead over buffer-hole"),this.stalled=null,this._tryNudgeBuffer())},v._reportStall=function(u){var r=this.hls,t=this.media,i=this.stallReported;i||(this.stallReported=!0,M.logger.warn("Playback stalling at @"+t.currentTime+" due to low buffer (buffer="+u+")"),r.trigger(m.Events.ERROR,{type:h.ErrorTypes.MEDIA_ERROR,details:h.ErrorDetails.BUFFER_STALLED_ERROR,fatal:!1,buffer:u}))},v._trySkipBufferHole=function(u){for(var r=this.config,t=this.hls,i=this.media,e=i.currentTime,s=0,l=S.BufferHelper.getBuffered(i),a=0;a=s&&e.05&&this.forwardBufferLength>1){var a=Math.min(2,Math.max(1,t)),g=Math.round(2/(1+Math.exp(-.75*e-this.edgeStalled))*20)/20;o.playbackRate=Math.min(a,Math.max(1,g))}else o.playbackRate!==1&&o.playbackRate!==0&&(o.playbackRate=1)}}}}},n.estimateLiveEdge=function(){var o=this.levelDetails;return o===null?null:o.edge+o.age},n.computeLatency=function(){var o=this.estimateLiveEdge();return o===null?null:o-this.currentTime},T(f,[{key:"latency",get:function(){return this._latency||0}},{key:"maxLatency",get:function(){var o=this.config,v=this.levelDetails;return o.liveMaxLatencyDuration!==void 0?o.liveMaxLatencyDuration:v?o.liveMaxLatencyDurationCount*v.targetduration:0}},{key:"targetLatency",get:function(){var o=this.levelDetails;if(o===null)return null;var v=o.holdBack,c=o.partHoldBack,u=o.targetduration,r=this.config,t=r.liveSyncDuration,i=r.liveSyncDurationCount,e=r.lowLatencyMode,s=this.hls.userConfig,l=e&&c||v;(s.liveSyncDuration||s.liveSyncDurationCount||l===0)&&(l=t!==void 0?t:i*u);var a=u,g=1;return l+Math.min(this.stallCount*g,a)}},{key:"liveSyncPosition",get:function(){var o=this.estimateLiveEdge(),v=this.targetLatency,c=this.levelDetails;if(o===null||v===null||c===null)return null;var u=c.edge,r=o-v-this.edgeStalled,t=u-c.totalduration,i=u-(this.config.lowLatencyMode&&c.partTarget||c.targetduration);return Math.min(Math.max(t,r),i)}},{key:"drift",get:function(){var o=this.levelDetails;return o===null?1:o.drift}},{key:"edgeStalled",get:function(){var o=this.levelDetails;if(o===null)return 0;var v=(this.config.lowLatencyMode&&o.partTarget||o.targetduration)*3;return Math.max(o.age-v,0)}},{key:"forwardBufferLength",get:function(){var o=this.media,v=this.levelDetails;if(!o||!v)return 0;var c=o.buffered.length;return c?o.buffered.end(c-1):v.edge-this.currentTime}}]),f}()},"./src/controller/level-controller.ts":function(O,C,x){x.r(C),x.d(C,"default",function(){return r});var S=x("./src/types/level.ts"),h=x("./src/events.ts"),m=x("./src/errors.ts"),M=x("./src/utils/codecs.ts"),T=x("./src/controller/level-helper.ts"),p=x("./src/controller/base-playlist-controller.ts"),f=x("./src/types/loader.ts");function n(){return n=Object.assign||function(t){for(var i=1;i0){y=g[0].bitrate,g.sort(function(F,k){return F.bitrate-k.bitrate}),this._levels=g;for(var R=0;Rthis.hls.config.fragLoadingMaxRetry&&(E=a.frag.level)):E=a.frag.level}break;case m.ErrorDetails.LEVEL_LOAD_ERROR:case m.ErrorDetails.LEVEL_LOAD_TIMEOUT:g&&(g.deliveryDirectives&&(y=!1),E=g.level),D=!0;break;case m.ErrorDetails.REMUX_ALLOC_ERROR:E=a.level,D=!0;break}E!==void 0&&this.recoverLevel(a,E,D,y)}},e.recoverLevel=function(l,a,g,A){var D=l.details,y=this._levels[a];if(y.loadError++,g){var E=this.retryLoadingOrFail(l);if(E)l.levelRetry=!0;else{this.currentLevelIndex=-1;return}}if(A){var _=y.url.length;if(_>1&&y.loadError<_)l.levelRetry=!0,this.redundantFailover(a);else if(this.manualLevelIndex===-1){var L=a===0?this._levels.length-1:a-1;this.currentLevelIndex!==L&&this._levels[L].loadError===0&&(this.warn(D+": switch to "+L),l.levelRetry=!0,this.hls.nextAutoLevel=L)}}},e.redundantFailover=function(l){var a=this._levels[l],g=a.url.length;if(g>1){var A=(a.urlId+1)%g;this.warn("Switching to redundant URL-id "+A),this._levels.forEach(function(D){D.urlId=A}),this.level=l}},e.onFragLoaded=function(l,a){var g=a.frag;if(g!==void 0&&g.type===f.PlaylistLevelType.MAIN){var A=this._levels[g.level];A!==void 0&&(A.fragmentError=0,A.loadError=0)}},e.onLevelLoaded=function(l,a){var g,A=a.level,D=a.details,y=this._levels[A];if(!y){var E;this.warn("Invalid level index "+A),(E=a.deliveryDirectives)!==null&&E!==void 0&&E.skip&&(D.deltaUpdateFailed=!0);return}A===this.currentLevelIndex?(y.fragmentError===0&&(y.loadError=0,this.retryCount=0),this.playlistLoaded(A,a,y.details)):(g=a.deliveryDirectives)!==null&&g!==void 0&&g.skip&&(D.deltaUpdateFailed=!0)},e.onAudioTrackSwitched=function(l,a){var g=this.hls.levels[this.currentLevelIndex];if(!!g&&g.audioGroupIds){for(var A=-1,D=this.hls.audioTracks[a.id].groupId,y=0;y0){var A=g.urlId,D=g.url[A];if(l)try{D=l.addDirectives(D)}catch(y){this.warn("Could not construct new URL with HLS Delivery Directives: "+y)}this.log("Attempt loading level index "+a+(l?" at sn "+l.msn+" part "+l.part:"")+" with URL-id "+A+" "+D),this.clearTimer(),this.hls.trigger(h.Events.LEVEL_LOADING,{url:D,level:a,id:A,deliveryDirectives:l||null})}},e.removeLevel=function(l,a){var g=function(y,E){return E!==a},A=this._levels.filter(function(D,y){return y!==l?!0:D.url.length>1&&a!==void 0?(D.url=D.url.filter(g),D.audioGroupIds&&(D.audioGroupIds=D.audioGroupIds.filter(g)),D.textGroupIds&&(D.textGroupIds=D.textGroupIds.filter(g)),D.urlId=0,!0):!1}).map(function(D,y){var E=D.details;return E!=null&&E.fragments&&E.fragments.forEach(function(_){_.level=y}),D});this._levels=A,this.hls.trigger(h.Events.LEVELS_UPDATED,{levels:A})},o(i,[{key:"levels",get:function(){return this._levels.length===0?null:this._levels}},{key:"level",get:function(){return this.currentLevelIndex},set:function(l){var a,g=this._levels;if(g.length!==0&&!(this.currentLevelIndex===l&&(a=g[l])!==null&&a!==void 0&&a.details)){if(l<0||l>=g.length){var A=l<0;if(this.hls.trigger(h.Events.ERROR,{type:m.ErrorTypes.OTHER_ERROR,details:m.ErrorDetails.LEVEL_SWITCH_ERROR,level:l,fatal:A,reason:"invalid level idx"}),A)return;l=Math.min(l,g.length-1)}this.clearTimer();var D=this.currentLevelIndex,y=g[D],E=g[l];this.log("switching to level "+l+" from "+D),this.currentLevelIndex=l;var _=n({},E,{level:l,maxBitrate:E.maxBitrate,uri:E.uri,urlId:E.urlId});delete _._urlId,this.hls.trigger(h.Events.LEVEL_SWITCHING,_);var L=E.details;if(!L||L.live){var I=this.switchParams(E.uri,y==null?void 0:y.details);this.loadPlaylist(I)}}}},{key:"manualLevel",get:function(){return this.manualLevelIndex},set:function(l){this.manualLevelIndex=l,this._startLevel===void 0&&(this._startLevel=l),l!==-1&&(this.level=l)}},{key:"firstLevel",get:function(){return this._firstLevel},set:function(l){this._firstLevel=l}},{key:"startLevel",get:function(){if(this._startLevel===void 0){var l=this.hls.config.startLevel;return l!==void 0?l:this._firstLevel}else return this._startLevel},set:function(l){this._startLevel=l}},{key:"nextLoadLevel",get:function(){return this.manualLevelIndex!==-1?this.manualLevelIndex:this.hls.nextAutoLevel},set:function(l){this.level=l,this.manualLevelIndex===-1&&(this.hls.nextAutoLevel=l)}}]),i}(p.default)},"./src/controller/level-helper.ts":function(O,C,x){x.r(C),x.d(C,"addGroupId",function(){return m}),x.d(C,"assignTrackIdsByGroup",function(){return M}),x.d(C,"updatePTS",function(){return T}),x.d(C,"updateFragPTSDTS",function(){return f}),x.d(C,"mergeDetails",function(){return n}),x.d(C,"mapPartIntersection",function(){return d}),x.d(C,"mapFragmentIntersection",function(){return o}),x.d(C,"adjustSliding",function(){return v}),x.d(C,"addSliding",function(){return c}),x.d(C,"computeReloadInterval",function(){return u}),x.d(C,"getFragmentWithSN",function(){return r}),x.d(C,"getPartWith",function(){return t});var S=x("./src/polyfills/number.ts"),h=x("./src/utils/logger.ts");function m(i,e,s){switch(e){case"audio":i.audioGroupIds||(i.audioGroupIds=[]),i.audioGroupIds.push(s);break;case"text":i.textGroupIds||(i.textGroupIds=[]),i.textGroupIds.push(s);break}}function M(i){var e={};i.forEach(function(s){var l=s.groupId||"";s.id=e[l]=e[l]||0,e[l]++})}function T(i,e,s){var l=i[e],a=i[s];p(l,a)}function p(i,e){var s=e.startPTS;if(Object(S.isFiniteNumber)(s)){var l=0,a;e.sn>i.sn?(l=s-i.start,a=i):(l=i.start-s,a=e),a.duration!==l&&(a.duration=l)}else if(e.sn>i.sn){var g=i.cc===e.cc;g&&i.minEndPTS?e.start=i.start+(i.minEndPTS-i.start):e.start=i.start+i.duration}else e.start=Math.max(i.start-e.duration,0)}function f(i,e,s,l,a,g){var A=l-s;A<=0&&(h.logger.warn("Fragment should have a positive duration",e),l=s+e.duration,g=a+e.duration);var D=s,y=l,E=e.startPTS,_=e.endPTS;if(Object(S.isFiniteNumber)(E)){var L=Math.abs(E-s);Object(S.isFiniteNumber)(e.deltaPTS)?e.deltaPTS=Math.max(L,e.deltaPTS):e.deltaPTS=L,D=Math.max(s,E),s=Math.min(s,E),a=Math.min(a,e.startDTS),y=Math.min(l,_),l=Math.max(l,_),g=Math.max(g,e.endDTS)}e.duration=l-s;var I=s-e.start;e.appendedPTS=l,e.start=e.startPTS=s,e.maxStartPTS=D,e.startDTS=a,e.endPTS=l,e.minEndPTS=y,e.endDTS=g;var b=e.sn;if(!i||bi.endSN)return 0;var R,P=b-i.startSN,w=i.fragments;for(w[P]=e,R=P;R>0;R--)p(w[R],w[R-1]);for(R=P;R=0;a--){var g=l[a].initSegment;if(g){s=g;break}}i.fragmentHint&&delete i.fragmentHint.endPTS;var A=0,D;if(o(i,e,function(R,P){R.relurl&&(A=R.cc-P.cc),Object(S.isFiniteNumber)(R.startPTS)&&Object(S.isFiniteNumber)(R.endPTS)&&(P.start=P.startPTS=R.startPTS,P.startDTS=R.startDTS,P.appendedPTS=R.appendedPTS,P.maxStartPTS=R.maxStartPTS,P.endPTS=R.endPTS,P.endDTS=R.endDTS,P.minEndPTS=R.minEndPTS,P.duration=R.endPTS-R.startPTS,P.duration&&(D=P),e.PTSKnown=e.alignedSliding=!0),P.elementaryStreams=R.elementaryStreams,P.loader=R.loader,P.stats=R.stats,P.urlId=R.urlId,R.initSegment&&(P.initSegment=R.initSegment,s=R.initSegment)}),s){var y=e.fragmentHint?e.fragments.concat(e.fragmentHint):e.fragments;y.forEach(function(R){var P;(!R.initSegment||R.initSegment.relurl===((P=s)===null||P===void 0?void 0:P.relurl))&&(R.initSegment=s)})}if(e.skippedSegments&&(e.deltaUpdateFailed=e.fragments.some(function(R){return!R}),e.deltaUpdateFailed)){h.logger.warn("[level-helper] Previous playlist missing segments skipped in delta playlist");for(var E=e.skippedSegments;E--;)e.fragments.shift();e.startSN=e.fragments[0].sn,e.startCC=e.fragments[0].cc}var _=e.fragments;if(A){h.logger.warn("discontinuity sliding from playlist, take drift into account");for(var L=0;L<_.length;L++)_[L].cc+=A}e.skippedSegments&&(e.startCC=e.fragments[0].cc),d(i.partList,e.partList,function(R,P){P.elementaryStreams=R.elementaryStreams,P.stats=R.stats}),D?f(e,D,D.startPTS,D.endPTS,D.startDTS,D.endDTS):v(i,e),_.length&&(e.totalduration=e.edge-_[0].start),e.driftStartTime=i.driftStartTime,e.driftStart=i.driftStart;var I=e.advancedDateTime;if(e.advanced&&I){var b=e.edge;e.driftStart||(e.driftStartTime=I,e.driftStart=b),e.driftEndTime=I,e.driftEnd=b}else e.driftEndTime=i.driftEndTime,e.driftEnd=i.driftEnd,e.advancedDateTime=i.advancedDateTime}function d(i,e,s){if(i&&e)for(var l=0,a=0,g=i.length;a<=g;a++){var A=i[a],D=e[a+l];A&&D&&A.index===D.index&&A.fragment.sn===D.fragment.sn?s(A,D):l--}}function o(i,e,s){for(var l=e.skippedSegments,a=Math.max(i.startSN,e.startSN)-e.startSN,g=(i.fragmentHint?1:0)+(l?e.endSN:Math.min(i.endSN,e.endSN))-e.startSN,A=e.startSN-i.startSN,D=e.fragmentHint?e.fragments.concat(e.fragmentHint):e.fragments,y=i.fragmentHint?i.fragments.concat(i.fragmentHint):i.fragments,E=a;E<=g;E++){var _=y[A+E],L=D[E];l&&!L&&E=l.length||c(e,l[s].start)}function c(i,e){if(e){for(var s=i.fragments,l=i.skippedSegments;l0&&a0&&y===-1&&(this.log("Override startPosition with lastCurrentTime @"+E.toFixed(3)),y=E),this.state=h.State.IDLE,this.nextLoadPosition=this.startPosition=this.lastCurrentTime=y,this.tick()}else this._forceStartLoad=!0,this.state=h.State.STOPPED},A.stopLoad=function(){this._forceStartLoad=!1,a.prototype.stopLoad.call(this)},A.doTick=function(){switch(this.state){case h.State.IDLE:this.doTickIdle();break;case h.State.WAITING_LEVEL:{var y,E=this.levels,_=this.level,L=E==null||(y=E[_])===null||y===void 0?void 0:y.details;if(L&&(!L.live||this.levelLastLoaded===this.level)){if(this.waitForCdnTuneIn(L))break;this.state=h.State.IDLE;break}break}case h.State.FRAG_LOADING_WAITING_RETRY:{var I,b=self.performance.now(),R=this.retryDate;(!R||b>=R||(I=this.media)!==null&&I!==void 0&&I.seeking)&&(this.log("retryDate reached, switch back to IDLE state"),this.state=h.State.IDLE)}break}this.onTickEnd()},A.onTickEnd=function(){a.prototype.onTickEnd.call(this),this.checkBuffer(),this.checkFragmentChanged()},A.doTickIdle=function(){var y,E,_=this.hls,L=this.levelLastLoaded,I=this.levels,b=this.media,R=_.config,P=_.nextLoadLevel;if(!(L===null||!b&&(this.startFragRequested||!R.startFragPrefetch))&&!(this.altAudio&&this.audioOnly)&&!(!I||!I[P])){var w=I[P];this.level=_.nextLoadLevel=P;var F=w.details;if(!F||this.state===h.State.WAITING_LEVEL||F.live&&this.levelLastLoaded!==P){this.state=h.State.WAITING_LEVEL;return}var k=this.getFwdBufferInfo(this.mediaBuffer?this.mediaBuffer:b,f.PlaylistLevelType.MAIN);if(k!==null){var B=k.len,U=this.getMaxBufferLength(w.maxBitrate);if(!(B>=U)){if(this._streamEnded(k,F)){var j={};this.altAudio&&(j.type="video"),this.hls.trigger(M.Events.BUFFER_EOS,j),this.state=h.State.ENDED;return}var K=k.end,N=this.getNextFragment(K,F);if(this.couldBacktrack&&!this.fragPrevious&&N&&N.sn!=="initSegment"){var Z=N.sn-F.startSN;Z>1&&(N=F.fragments[Z-1],this.fragmentTracker.removeFragment(N))}if(N&&this.fragmentTracker.getState(N)===p.FragmentState.OK&&this.nextLoadPosition>K){var X=this.audioOnly&&!this.altAudio?n.ElementaryStreamTypes.AUDIO:n.ElementaryStreamTypes.VIDEO;this.afterBufferFlushed(b,X,f.PlaylistLevelType.MAIN),N=this.getNextFragment(this.nextLoadPosition,F)}!N||(N.initSegment&&!N.initSegment.data&&!this.bitrateTest&&(N=N.initSegment),((y=N.decryptdata)===null||y===void 0?void 0:y.keyFormat)==="identity"&&!((E=N.decryptdata)!==null&&E!==void 0&&E.key)?this.loadKey(N,F):this.loadFragment(N,F,K))}}}},A.loadFragment=function(y,E,_){var L,I=this.fragmentTracker.getState(y);if(this.fragCurrent=y,I===p.FragmentState.BACKTRACKED){var b=this.fragmentTracker.getBacktrackData(y);if(b){this._handleFragmentLoadProgress(b),this._handleFragmentLoadComplete(b);return}else I=p.FragmentState.NOT_LOADED}I===p.FragmentState.NOT_LOADED||I===p.FragmentState.PARTIAL?y.sn==="initSegment"?this._loadInitSegment(y):this.bitrateTest?(y.bitrateTest=!0,this.log("Fragment "+y.sn+" of level "+y.level+" is being downloaded to test bitrate and will not be buffered"),this._loadBitrateTestFrag(y)):(this.startFragRequested=!0,a.prototype.loadFragment.call(this,y,E,_)):I===p.FragmentState.APPENDING?this.reduceMaxBufferLength(y.duration)&&this.fragmentTracker.removeFragment(y):((L=this.media)===null||L===void 0?void 0:L.buffered.length)===0&&this.fragmentTracker.removeAllFragments()},A.getAppendedFrag=function(y){var E=this.fragmentTracker.getAppendedFrag(y,f.PlaylistLevelType.MAIN);return E&&"fragment"in E?E.fragment:E},A.getBufferedFrag=function(y){return this.fragmentTracker.getBufferedFrag(y,f.PlaylistLevelType.MAIN)},A.followingBufferedFrag=function(y){return y?this.getBufferedFrag(y.end+.5):null},A.immediateLevelSwitch=function(){this.abortCurrentFrag(),this.flushMainBuffer(0,Number.POSITIVE_INFINITY)},A.nextLevelSwitch=function(){var y=this.levels,E=this.media;if(E!=null&&E.readyState){var _,L=this.getAppendedFrag(E.currentTime);if(L&&L.start>1&&this.flushMainBuffer(0,L.start-1),!E.paused&&y){var I=this.hls.nextLoadLevel,b=y[I],R=this.fragLastKbps;R&&this.fragCurrent?_=this.fragCurrent.duration*b.maxBitrate/(1e3*R)+1:_=0}else _=0;var P=this.getBufferedFrag(E.currentTime+_);if(P){var w=this.followingBufferedFrag(P);if(w){this.abortCurrentFrag();var F=w.maxStartPTS?w.maxStartPTS:w.start,k=w.duration,B=Math.max(P.end,F+Math.min(Math.max(k-this.config.maxFragLookUpTolerance,k*.5),k*.75));this.flushMainBuffer(B,Number.POSITIVE_INFINITY)}}}},A.abortCurrentFrag=function(){var y=this.fragCurrent;this.fragCurrent=null,y!=null&&y.loader&&y.loader.abort(),this.state===h.State.KEY_LOADING&&(this.state=h.State.IDLE),this.nextLoadPosition=this.getLoadPosition()},A.flushMainBuffer=function(y,E){a.prototype.flushMainBuffer.call(this,y,E,this.altAudio?"video":null)},A.onMediaAttached=function(y,E){a.prototype.onMediaAttached.call(this,y,E);var _=E.media;this.onvplaying=this.onMediaPlaying.bind(this),this.onvseeked=this.onMediaSeeked.bind(this),_.addEventListener("playing",this.onvplaying),_.addEventListener("seeked",this.onvseeked),this.gapController=new v.default(this.config,_,this.fragmentTracker,this.hls)},A.onMediaDetaching=function(){var y=this.media;y&&(y.removeEventListener("playing",this.onvplaying),y.removeEventListener("seeked",this.onvseeked),this.onvplaying=this.onvseeked=null,this.videoBuffer=null),this.fragPlaying=null,this.gapController&&(this.gapController.destroy(),this.gapController=null),a.prototype.onMediaDetaching.call(this)},A.onMediaPlaying=function(){this.tick()},A.onMediaSeeked=function(){var y=this.media,E=y?y.currentTime:null;Object(S.isFiniteNumber)(E)&&this.log("Media seeked to "+E.toFixed(3)),this.tick()},A.onManifestLoading=function(){this.log("Trigger BUFFER_RESET"),this.hls.trigger(M.Events.BUFFER_RESET,void 0),this.fragmentTracker.removeAllFragments(),this.couldBacktrack=this.stalled=!1,this.startPosition=this.lastCurrentTime=0,this.fragPlaying=null},A.onManifestParsed=function(y,E){var _=!1,L=!1,I;E.levels.forEach(function(b){I=b.audioCodec,I&&(I.indexOf("mp4a.40.2")!==-1&&(_=!0),I.indexOf("mp4a.40.5")!==-1&&(L=!0))}),this.audioCodecSwitch=_&&L&&!Object(m.changeTypeSupported)(),this.audioCodecSwitch&&this.log("Both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC"),this.levels=E.levels,this.startFragRequested=!1},A.onLevelLoading=function(y,E){var _=this.levels;if(!(!_||this.state!==h.State.IDLE)){var L=_[E.level];(!L.details||L.details.live&&this.levelLastLoaded!==E.level||this.waitForCdnTuneIn(L.details))&&(this.state=h.State.WAITING_LEVEL)}},A.onLevelLoaded=function(y,E){var _,L=this.levels,I=E.level,b=E.details,R=b.totalduration;if(!L){this.warn("Levels were reset while loading level "+I);return}this.log("Level "+I+" loaded ["+b.startSN+","+b.endSN+"], cc ["+b.startCC+", "+b.endCC+"] duration:"+R);var P=this.fragCurrent;P&&(this.state===h.State.FRAG_LOADING||this.state===h.State.FRAG_LOADING_WAITING_RETRY)&&P.level!==E.level&&P.loader&&(this.state=h.State.IDLE,P.loader.abort());var w=L[I],F=0;if(b.live||(_=w.details)!==null&&_!==void 0&&_.live){if(b.fragments[0]||(b.deltaUpdateFailed=!0),b.deltaUpdateFailed)return;F=this.alignPlaylists(b,w.details)}if(w.details=b,this.levelLastLoaded=I,this.hls.trigger(M.Events.LEVEL_UPDATED,{details:b,level:I}),this.state===h.State.WAITING_LEVEL){if(this.waitForCdnTuneIn(b))return;this.state=h.State.IDLE}this.startFragRequested?b.live&&this.synchronizeToLiveEdge(b):this.setStartPosition(b,F),this.tick()},A._handleFragmentLoadProgress=function(y){var E,_=y.frag,L=y.part,I=y.payload,b=this.levels;if(!b){this.warn("Levels were reset while fragment load was in progress. Fragment "+_.sn+" of level "+_.level+" will not be buffered");return}var R=b[_.level],P=R.details;if(!P){this.warn("Dropping fragment "+_.sn+" of level "+_.level+" after level details were reset");return}var w=R.videoCodec,F=P.PTSKnown||!P.live,k=(E=_.initSegment)===null||E===void 0?void 0:E.data,B=this._getAudioCodec(R),U=this.transmuxer=this.transmuxer||new d.default(this.hls,f.PlaylistLevelType.MAIN,this._handleTransmuxComplete.bind(this),this._handleTransmuxerFlush.bind(this)),j=L?L.index:-1,K=j!==-1,N=new o.ChunkMetadata(_.level,_.sn,_.stats.chunkCount,I.byteLength,j,K),Z=this.initPTS[_.cc];U.push(I,k,B,w,_,L,P.totalduration,F,N,Z)},A.onAudioTrackSwitching=function(y,E){var _=this.altAudio,L=!!E.url,I=E.id;if(!L){if(this.mediaBuffer!==this.media){this.log("Switching on main audio, use media.buffered to schedule main fragment loading"),this.mediaBuffer=this.media;var b=this.fragCurrent;b!=null&&b.loader&&(this.log("Switching to main audio track, cancel main fragment load"),b.loader.abort()),this.resetTransmuxer(),this.resetLoadingState()}else this.audioOnly&&this.resetTransmuxer();var R=this.hls;_&&R.trigger(M.Events.BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:"audio"}),R.trigger(M.Events.AUDIO_TRACK_SWITCHED,{id:I})}},A.onAudioTrackSwitched=function(y,E){var _=E.id,L=!!this.hls.audioTracks[_].url;if(L){var I=this.videoBuffer;I&&this.mediaBuffer!==I&&(this.log("Switching on alternate audio, use video.buffered to schedule main fragment loading"),this.mediaBuffer=I)}this.altAudio=L,this.tick()},A.onBufferCreated=function(y,E){var _=E.tracks,L,I,b=!1;for(var R in _){var P=_[R];if(P.id==="main"){if(I=R,L=P,R==="video"){var w=_[R];w&&(this.videoBuffer=w.buffer)}}else b=!0}b&&L?(this.log("Alternate track found, use "+I+".buffered to schedule main fragment loading"),this.mediaBuffer=L.buffer):this.mediaBuffer=this.media},A.onFragBuffered=function(y,E){var _=E.frag,L=E.part;if(!(_&&_.type!==f.PlaylistLevelType.MAIN)){if(this.fragContextChanged(_)){this.warn("Fragment "+_.sn+(L?" p: "+L.index:"")+" of level "+_.level+" finished buffering, but was aborted. state: "+this.state),this.state===h.State.PARSED&&(this.state=h.State.IDLE);return}var I=L?L.stats:_.stats;this.fragLastKbps=Math.round(8*I.total/(I.buffering.end-I.loading.first)),_.sn!=="initSegment"&&(this.fragPrevious=_),this.fragBufferedComplete(_,L)}},A.onError=function(y,E){switch(E.details){case c.ErrorDetails.FRAG_LOAD_ERROR:case c.ErrorDetails.FRAG_LOAD_TIMEOUT:case c.ErrorDetails.KEY_LOAD_ERROR:case c.ErrorDetails.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(f.PlaylistLevelType.MAIN,E);break;case c.ErrorDetails.LEVEL_LOAD_ERROR:case c.ErrorDetails.LEVEL_LOAD_TIMEOUT:this.state!==h.State.ERROR&&(E.fatal?(this.warn(""+E.details),this.state=h.State.ERROR):!E.levelRetry&&this.state===h.State.WAITING_LEVEL&&(this.state=h.State.IDLE));break;case c.ErrorDetails.BUFFER_FULL_ERROR:if(E.parent==="main"&&(this.state===h.State.PARSING||this.state===h.State.PARSED)){var _=!0,L=this.getFwdBufferInfo(this.media,f.PlaylistLevelType.MAIN);L&&L.len>.5&&(_=!this.reduceMaxBufferLength(L.len)),_&&(this.warn("buffer full error also media.currentTime is not buffered, flush main"),this.immediateLevelSwitch()),this.resetLoadingState()}break}},A.checkBuffer=function(){var y=this.media,E=this.gapController;if(!(!y||!E||!y.readyState)){var _=T.BufferHelper.getBuffered(y);!this.loadedmetadata&&_.length?(this.loadedmetadata=!0,this.seekToStartPos()):E.poll(this.lastCurrentTime),this.lastCurrentTime=y.currentTime}},A.onFragLoadEmergencyAborted=function(){this.state=h.State.IDLE,this.loadedmetadata||(this.startFragRequested=!1,this.nextLoadPosition=this.startPosition),this.tickImmediate()},A.onBufferFlushed=function(y,E){var _=E.type;if(_!==n.ElementaryStreamTypes.AUDIO||this.audioOnly&&!this.altAudio){var L=(_===n.ElementaryStreamTypes.VIDEO?this.videoBuffer:this.mediaBuffer)||this.media;this.afterBufferFlushed(L,_,f.PlaylistLevelType.MAIN)}},A.onLevelsUpdated=function(y,E){this.levels=E.levels},A.swapAudioCodec=function(){this.audioCodecSwap=!this.audioCodecSwap},A.seekToStartPos=function(){var y=this.media,E=y.currentTime,_=this.startPosition;if(_>=0&&E<_){if(y.seeking){u.logger.log("could not seek to "+_+", already seeking at "+E);return}var L=T.BufferHelper.getBuffered(y),I=L.length?L.start(0):0,b=I-_;b>0&&(b1&&y.seeking===!1){var _=y.currentTime;if(T.BufferHelper.isBuffered(y,_)?E=this.getAppendedFrag(_):T.BufferHelper.isBuffered(y,_+.1)&&(E=this.getAppendedFrag(_+.1)),E){var L=this.fragPlaying,I=E.level;(!L||E.sn!==L.sn||L.level!==I||E.urlId!==L.urlId)&&(this.hls.trigger(M.Events.FRAG_CHANGED,{frag:E}),(!L||L.level!==I)&&this.hls.trigger(M.Events.LEVEL_SWITCHED,{level:I}),this.fragPlaying=E)}}},t(g,[{key:"nextLevel",get:function(){var y=this.nextBufferedFrag;return y?y.level:-1}},{key:"currentLevel",get:function(){var y=this.media;if(y){var E=this.getAppendedFrag(y.currentTime);if(E)return E.level}return-1}},{key:"nextBufferedFrag",get:function(){var y=this.media;if(y){var E=this.getAppendedFrag(y.currentTime);return this.followingBufferedFrag(E)}else return null}},{key:"forceStartLoad",get:function(){return this._forceStartLoad}}]),g}(h.default)},"./src/controller/subtitle-stream-controller.ts":function(O,C,x){x.r(C),x.d(C,"SubtitleStreamController",function(){return t});var S=x("./src/events.ts"),h=x("./src/utils/buffer-helper.ts"),m=x("./src/controller/fragment-finders.ts"),M=x("./src/utils/discontinuities.ts"),T=x("./src/controller/level-helper.ts"),p=x("./src/controller/fragment-tracker.ts"),f=x("./src/controller/base-stream-controller.ts"),n=x("./src/types/loader.ts"),d=x("./src/types/level.ts");function o(i,e){for(var s=0;s=y[L].start&&_<=y[L].end){E=y[L];break}var I=A.start+A.duration;E?E.end=I:(E={start:_,end:I},y.push(E)),this.fragmentTracker.fragBuffered(A)}}},s.onBufferFlushing=function(a,g){var A=g.startOffset,D=g.endOffset;if(A===0&&D!==Number.POSITIVE_INFINITY){var y=this.currentTrackId,E=this.levels;if(!E.length||!E[y]||!E[y].details)return;var _=E[y].details,L=_.targetduration,I=D-L;if(I<=0)return;g.endOffsetSubtitles=Math.max(0,I),this.tracksBuffered.forEach(function(b){for(var R=0;R=_.length||y!==E||!L)){if(this.mediaBuffer=this.mediaBufferTimeRanges,D.live||(A=L.details)!==null&&A!==void 0&&A.live){var I=this.mainDetails;if(D.deltaUpdateFailed||!I)return;var b=I.fragments[0];if(!L.details)D.hasProgramDateTime&&I.hasProgramDateTime?Object(M.alignMediaPlaylistByPDT)(D,I):b&&Object(T.addSliding)(D,b.start);else{var R=this.alignPlaylists(D,L.details);R===0&&b&&Object(T.addSliding)(D,b.start)}}if(L.details=D,this.levelLastLoaded=y,this.tick(),D.live&&!this.fragCurrent&&this.media&&this.state===f.State.IDLE){var P=Object(m.findFragmentByPTS)(null,D.fragments,this.media.currentTime,0);P||(this.warn("Subtitle playlist not aligned with playback"),L.details=void 0)}}}},s._handleFragmentLoadComplete=function(a){var g=a.frag,A=a.payload,D=g.decryptdata,y=this.hls;if(!this.fragContextChanged(g)&&A&&A.byteLength>0&&D&&D.key&&D.iv&&D.method==="AES-128"){var E=performance.now();this.decrypter.webCryptoDecrypt(new Uint8Array(A),D.key.buffer,D.iv.buffer).then(function(_){var L=performance.now();y.trigger(S.Events.FRAG_DECRYPTED,{frag:g,payload:_,stats:{tstart:E,tdecrypt:L}})})}},s.doTick=function(){if(!this.media){this.state=f.State.IDLE;return}if(this.state===f.State.IDLE){var a,g=this.currentTrackId,A=this.levels;if(!A.length||!A[g]||!A[g].details)return;var D=A[g].details,y=D.targetduration,E=this.config,_=this.media,L=h.BufferHelper.bufferedInfo(this.mediaBufferTimeRanges,_.currentTime-y,E.maxBufferHole),I=L.end,b=L.len,R=this.getMaxBufferLength()+y;if(b>R)return;console.assert(D,"Subtitle track details are defined on idle subtitle stream controller tick");var P=D.fragments,w=P.length,F=D.edge,k,B=this.fragPrevious;if(I-1&&(this.subtitleTrack=this.queuedDefaultTrack,this.queuedDefaultTrack=-1),this.useTextTrackPolling=!(this.media.textTracks&&"onchange"in this.media.textTracks),this.useTextTrackPolling?this.pollTrackChange(500):this.media.textTracks.addEventListener("change",this.asyncPollTrackChange))},u.pollTrackChange=function(t){self.clearInterval(this.subtitlePollingInterval),this.subtitlePollingInterval=self.setInterval(this.trackChangeListener,t)},u.onMediaDetaching=function(){if(!!this.media){self.clearInterval(this.subtitlePollingInterval),this.useTextTrackPolling||this.media.textTracks.removeEventListener("change",this.asyncPollTrackChange),this.trackId>-1&&(this.queuedDefaultTrack=this.trackId);var t=o(this.media.textTracks);t.forEach(function(i){Object(h.clearCurrentCues)(i)}),this.subtitleTrack=-1,this.media=null}},u.onManifestLoading=function(){this.tracks=[],this.groupId=null,this.tracksInGroup=[],this.trackId=-1,this.selectDefaultTrack=!0},u.onManifestParsed=function(t,i){this.tracks=i.subtitleTracks},u.onSubtitleTrackLoaded=function(t,i){var e=i.id,s=i.details,l=this.trackId,a=this.tracksInGroup[l];if(!a){this.warn("Invalid subtitle track id "+e);return}var g=a.details;a.details=i.details,this.log("subtitle track "+e+" loaded ["+s.startSN+"-"+s.endSN+"]"),e===this.trackId&&(this.retryCount=0,this.playlistLoaded(e,i,g))},u.onLevelLoading=function(t,i){this.switchLevel(i.level)},u.onLevelSwitching=function(t,i){this.switchLevel(i.level)},u.switchLevel=function(t){var i=this.hls.levels[t];if(!!(i!=null&&i.textGroupIds)){var e=i.textGroupIds[i.urlId];if(this.groupId!==e){var s=this.tracksInGroup?this.tracksInGroup[this.trackId]:void 0,l=this.tracks.filter(function(A){return!e||A.groupId===e});this.tracksInGroup=l;var a=this.findTrackId(s==null?void 0:s.name)||this.findTrackId();this.groupId=e;var g={subtitleTracks:l};this.log("Updating subtitle tracks, "+l.length+' track(s) found in "'+e+'" group-id'),this.hls.trigger(S.Events.SUBTITLE_TRACKS_UPDATED,g),a!==-1&&this.setSubtitleTrack(a,s)}}},u.findTrackId=function(t){for(var i=this.tracksInGroup,e=0;e=s.length)){this.clearTimer();var l=s[t];if(this.log("Switching to subtitle track "+t),this.trackId=t,l){var a=l.id,g=l.groupId,A=g===void 0?"":g,D=l.name,y=l.type,E=l.url;this.hls.trigger(S.Events.SUBTITLE_TRACK_SWITCH,{id:a,groupId:A,name:D,type:y,url:E});var _=this.switchParams(l.url,i==null?void 0:i.details);this.loadPlaylist(_)}else this.hls.trigger(S.Events.SUBTITLE_TRACK_SWITCH,{id:t})}},u.onTextTracksChanged=function(){if(this.useTextTrackPolling||self.clearInterval(this.subtitlePollingInterval),!(!this.media||!this.hls.config.renderTextTracksNatively)){for(var t=-1,i=o(this.media.textTracks),e=0;e=0&&(y[0]=Math.min(y[0],s),y[1]=Math.max(y[1],l),A=!0,E/(l-s)>.5))return}if(A||g.push([s,l]),this.config.renderTextTracksNatively){var _=this.captionsTracks[e];this.Cues.newCue(_,s,l,a)}else{var L=this.Cues.newCue(null,s,l,a);this.hls.trigger(h.Events.CUES_PARSED,{type:"captions",cues:L,track:e})}},t.onInitPtsFound=function(e,s){var l=this,a=s.frag,g=s.id,A=s.initPTS,D=s.timescale,y=this.unparsedVttFrags;g==="main"&&(this.initPTS[a.cc]=A,this.timescale[a.cc]=D),y.length&&(this.unparsedVttFrags=[],y.forEach(function(E){l.onFragLoaded(h.Events.FRAG_LOADED,E)}))},t.getExistingTrack=function(e){var s=this.media;if(s)for(var l=0;l>>8^D&255^99,f[a]=D,n[D]=a;var y=l[a],E=l[y],_=l[E],L=l[D]*257^D*16843008;o[a]=L<<24|L>>>8,v[a]=L<<16|L>>>16,c[a]=L<<8|L>>>24,u[a]=L,L=_*16843009^E*65537^y*257^a*16843008,t[D]=L<<24|L>>>8,i[D]=L<<16|L>>>16,e[D]=L<<8|L>>>24,s[D]=L,a?(a=y^l[l[l[_^y]]],g^=l[l[g]]):a=g=1}},T.expandKey=function(f){for(var n=this.uint8ArrayToUint32Array_(f),d=!0,o=0;o>>6)+1;var L=(e[s+2]&60)>>>2;if(L>_.length-1){i.trigger(m.Events.ERROR,{type:h.ErrorTypes.MEDIA_ERROR,details:h.ErrorDetails.FRAG_PARSING_ERROR,fatal:!0,reason:"invalid ADTS sampling index:"+L});return}return A=(e[s+2]&1)<<2,A|=(e[s+3]&192)>>>6,S.logger.log("manifest codec:"+l+", ADTS type:"+a+", samplingIndex:"+L),/firefox/i.test(y)?L>=6?(a=5,D=new Array(4),g=L-3):(a=2,D=new Array(2),g=L):y.indexOf("android")!==-1?(a=2,D=new Array(2),g=L):(a=5,D=new Array(4),l&&(l.indexOf("mp4a.40.29")!==-1||l.indexOf("mp4a.40.5")!==-1)||!l&&L>=6?g=L-3:((l&&l.indexOf("mp4a.40.2")!==-1&&(L>=6&&A===1||/vivaldi/i.test(y))||!l&&A===1)&&(a=2,D=new Array(2)),g=L)),D[0]=a<<3,D[0]|=(L&14)>>1,D[1]|=(L&1)<<7,D[1]|=A<<3,a===5&&(D[1]|=(g&14)>>1,D[2]=(g&1)<<7,D[2]|=2<<2,D[3]=0),{config:D,samplerate:_[L],channelCount:A,codec:"mp4a.40."+a,manifestCodec:E}}function T(i,e){return i[e]===255&&(i[e+1]&246)===240}function p(i,e){return i[e+1]&1?7:9}function f(i,e){return(i[e+3]&3)<<11|i[e+4]<<3|(i[e+5]&224)>>>5}function n(i,e){return e+5=i.length)return!1;var l=f(i,e);if(l<=s)return!1;var a=e+l;return a===i.length||d(i,a)}return!1}function c(i,e,s,l,a){if(!i.samplerate){var g=M(e,s,l,a);if(!g)return;i.config=g.config,i.samplerate=g.samplerate,i.channelCount=g.channelCount,i.codec=g.codec,i.manifestCodec=g.manifestCodec,S.logger.log("parsed codec:"+i.codec+", rate:"+g.samplerate+", channels:"+g.channelCount)}}function u(i){return 1024*9e4/i}function r(i,e,s,l,a){var g=p(i,e),A=f(i,e);if(A-=g,A>0){var D=s+l*a;return{headerLength:g,frameLength:A,stamp:D}}}function t(i,e,s,l,a){var g=u(i.samplerate),A=r(e,s,l,a,g);if(A){var D=A.frameLength,y=A.headerLength,E=A.stamp,_=y+D,L=Math.max(0,s+_-e.length),I;L?(I=new Uint8Array(_-y),I.set(e.subarray(s+y,e.length),0)):I=e.subarray(s+y,s+_);var b={unit:I,pts:E};return L||i.samples.push(b),{sample:b,length:_,missing:L}}}},"./src/demux/base-audio-demuxer.ts":function(O,C,x){x.r(C),x.d(C,"initPTSFn",function(){return f});var S=x("./src/polyfills/number.ts"),h=x("./src/demux/id3.ts"),m=x("./src/demux/dummy-demuxed-track.ts"),M=x("./src/utils/mp4-tools.ts"),T=x("./src/utils/typed-array.ts"),p=function(){function n(){this._audioTrack=void 0,this._id3Track=void 0,this.frameIndex=0,this.cachedData=null,this.initPTS=null}var d=n.prototype;return d.resetInitSegment=function(v,c,u){this._id3Track={type:"id3",id:3,pid:-1,inputTimeScale:9e4,sequenceNumber:0,samples:[],dropped:0}},d.resetTimeStamp=function(){},d.resetContiguity=function(){},d.canParse=function(v,c){return!1},d.appendFrame=function(v,c,u){},d.demux=function(v,c){this.cachedData&&(v=Object(M.appendUint8Array)(this.cachedData,v),this.cachedData=null);var u=h.getID3Data(v,0),r=u?u.length:0,t,i,e=this._audioTrack,s=this._id3Track,l=u?h.getTimeStamp(u):void 0,a=v.length;for((this.frameIndex===0||this.initPTS===null)&&(this.initPTS=f(l,c)),u&&u.length>0&&s.samples.push({pts:this.initPTS,dts:this.initPTS,data:u}),i=this.initPTS;rp?(this.word<<=p,this.bitsAvailable-=p):(p-=this.bitsAvailable,f=p>>3,p-=f>>3,this.bytesAvailable-=f,this.loadWord(),this.word<<=p,this.bitsAvailable-=p)},M.readBits=function(p){var f=Math.min(this.bitsAvailable,p),n=this.word>>>32-f;return p>32&&S.logger.error("Cannot read more than 32 bits at a time"),this.bitsAvailable-=f,this.bitsAvailable>0?this.word<<=f:this.bytesAvailable>0&&this.loadWord(),f=p-f,f>0&&this.bitsAvailable?n<>>p)!==0)return this.word<<=p,this.bitsAvailable-=p,p;return this.loadWord(),p+this.skipLZ()},M.skipUEG=function(){this.skipBits(1+this.skipLZ())},M.skipEG=function(){this.skipBits(1+this.skipLZ())},M.readUEG=function(){var p=this.skipLZ();return this.readBits(p+1)-1},M.readEG=function(){var p=this.readUEG();return 1&p?1+p>>>1:-1*(p>>>1)},M.readBoolean=function(){return this.readBits(1)===1},M.readUByte=function(){return this.readBits(8)},M.readUShort=function(){return this.readBits(16)},M.readUInt=function(){return this.readBits(32)},M.skipScalingList=function(p){for(var f=8,n=8,d,o=0;o0)return a.subarray(A,A+D)},M=function(a,g){var A=0;return A=(a[g]&127)<<21,A|=(a[g+1]&127)<<14,A|=(a[g+2]&127)<<7,A|=a[g+3]&127,A},T=function(a,g){return S(a,g)&&M(a,g+6)+10<=a.length-g},p=function(a){for(var g=d(a),A=0;A>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:b+=String.fromCharCode(_);break;case 12:case 13:L=a[R++],b+=String.fromCharCode((_&31)<<6|L&63);break;case 14:L=a[R++],I=a[R++],b+=String.fromCharCode((_&15)<<12|(L&63)<<6|(I&63)<<0);break}}return b},i={decodeTextFrame:c},e;function s(){return!e&&typeof self.TextDecoder!="undefined"&&(e=new self.TextDecoder("utf-8")),e}},"./src/demux/mp3demuxer.ts":function(O,C,x){x.r(C);var S=x("./src/demux/base-audio-demuxer.ts"),h=x("./src/demux/id3.ts"),m=x("./src/utils/logger.ts"),M=x("./src/demux/mpegaudio.ts");function T(n,d){n.prototype=Object.create(d.prototype),n.prototype.constructor=n,p(n,d)}function p(n,d){return p=Object.setPrototypeOf||function(v,c){return v.__proto__=c,v},p(n,d)}var f=function(n){T(d,n);function d(){return n.apply(this,arguments)||this}var o=d.prototype;return o.resetInitSegment=function(c,u,r){n.prototype.resetInitSegment.call(this,c,u,r),this._audioTrack={container:"audio/mpeg",type:"audio",id:2,pid:-1,sequenceNumber:0,isAAC:!1,samples:[],manifestCodec:c,duration:r,inputTimeScale:9e4,dropped:0}},d.probe=function(c){if(!c)return!1;for(var u=h.getID3Data(c,0)||[],r=u.length,t=c.length;r0},T.demux=function(f){var n=f,d=Object(h.dummyTrack)();if(this.config.progressive){this.remainderData&&(n=Object(S.appendUint8Array)(this.remainderData,f));var o=Object(S.segmentValidRange)(n);this.remainderData=o.remainder,d.samples=o.valid||new Uint8Array}else d.samples=n;return{audioTrack:Object(h.dummyTrack)(),avcTrack:d,id3Track:Object(h.dummyTrack)(),textTrack:Object(h.dummyTrack)()}},T.flush=function(){var f=Object(h.dummyTrack)();return f.samples=this.remainderData||new Uint8Array,this.remainderData=null,{audioTrack:Object(h.dummyTrack)(),avcTrack:f,id3Track:Object(h.dummyTrack)(),textTrack:Object(h.dummyTrack)()}},T.demuxSampleAes=function(f,n,d){return Promise.reject(new Error("The MP4 demuxer does not support SAMPLE-AES decryption"))},T.destroy=function(){},M}();m.minProbeByteLength=1024,C.default=m},"./src/demux/mpegaudio.ts":function(O,C,x){x.r(C),x.d(C,"appendFrame",function(){return p}),x.d(C,"parseHeader",function(){return f}),x.d(C,"isHeaderPattern",function(){return n}),x.d(C,"isHeader",function(){return d}),x.d(C,"canParse",function(){return o}),x.d(C,"probe",function(){return v});var S=null,h=[32,64,96,128,160,192,224,256,288,320,352,384,416,448,32,48,56,64,80,96,112,128,160,192,224,256,320,384,32,40,48,56,64,80,96,112,128,160,192,224,256,320,32,48,56,64,80,96,112,128,144,160,176,192,224,256,8,16,24,32,40,48,56,64,80,96,112,128,144,160],m=[44100,48e3,32e3,22050,24e3,16e3,11025,12e3,8e3],M=[[0,72,144,12],[0,0,0,0],[0,72,144,12],[0,144,144,12]],T=[0,1,1,4];function p(c,u,r,t,i){if(!(r+24>u.length)){var e=f(u,r);if(e&&r+e.frameLength<=u.length){var s=e.samplesPerFrame*9e4/e.sampleRate,l=t+i*s,a={unit:u.subarray(r,r+e.frameLength),pts:l,dts:l};return c.config=[],c.channelCount=e.channelCount,c.samplerate=e.sampleRate,c.samples.push(a),{sample:a,length:e.frameLength,missing:0}}}}function f(c,u){var r=c[u+1]>>3&3,t=c[u+1]>>1&3,i=c[u+2]>>4&15,e=c[u+2]>>2&3;if(r!==1&&i!==0&&i!==15&&e!==3){var s=c[u+2]>>1&1,l=c[u+3]>>6,a=r===3?3-t:t===3?3:4,g=h[a*14+i-1]*1e3,A=r===3?0:r===2?1:2,D=m[A*3+e],y=l===3?1:2,E=M[r][t],_=T[t],L=E*8*_,I=Math.floor(E*g/D+s)*_;if(S===null){var b=navigator.userAgent||"",R=b.match(/Chrome\/(\d+)/i);S=R?parseInt(R[1]):0}var P=!!S&&S<=87;return P&&t===2&&g>=224e3&&l===0&&(c[u+3]=c[u+3]|128),{sampleRate:D,channelCount:y,frameLength:I,samplesPerFrame:L}}}function n(c,u){return c[u]===255&&(c[u+1]&224)===224&&(c[u+1]&6)!==0}function d(c,u){return u+1=f.length){d();return}if(!(f[n].unit.length<32)){var o=this.decrypter.isSync();if(this.decryptAacSample(f,n,d,o),!o)return}}},T.getAvcEncryptedData=function(f){for(var n=Math.floor((f.length-48)/160)*16+16,d=new Int8Array(n),o=0,v=32;v=f.length){o();return}for(var v=f[n].units;!(d>=v.length);d++){var c=v[d];if(!(c.data.length<=48||c.type!==1&&c.type!==5)){var u=this.decrypter.isSync();if(this.decryptAvcSample(f,n,d,o,c,u),!u)return}}}},M}();C.default=m},"./src/demux/transmuxer-interface.ts":function(O,C,x){x.r(C),x.d(C,"default",function(){return d});var S=x("./node_modules/webworkify-webpack/index.js"),h=x("./src/events.ts"),m=x("./src/demux/transmuxer.ts"),M=x("./src/utils/logger.ts"),T=x("./src/errors.ts"),p=x("./src/utils/mediasource-helper.ts"),f=x("./node_modules/eventemitter3/index.js"),n=Object(p.getMediaSource)()||{isTypeSupported:function(){return!1}},d=function(){function o(c,u,r,t){var i=this;this.hls=void 0,this.id=void 0,this.observer=void 0,this.frag=null,this.part=null,this.worker=void 0,this.onwmsg=void 0,this.transmuxer=null,this.onTransmuxComplete=void 0,this.onFlush=void 0,this.hls=c,this.id=u,this.onTransmuxComplete=r,this.onFlush=t;var e=c.config,s=function(D,y){y=y||{},y.frag=i.frag,y.id=i.id,c.trigger(D,y)};this.observer=new f.EventEmitter,this.observer.on(h.Events.FRAG_DECRYPTED,s),this.observer.on(h.Events.ERROR,s);var l={mp4:n.isTypeSupported("video/mp4"),mpeg:n.isTypeSupported("audio/mpeg"),mp3:n.isTypeSupported('audio/mp4; codecs="mp3"')},a=navigator.vendor;if(e.enableWorker&&typeof Worker!="undefined"){M.logger.log("demuxing in webworker");var g;try{g=this.worker=S("./src/demux/transmuxer-worker.ts"),this.onwmsg=this.onWorkerMessage.bind(this),g.addEventListener("message",this.onwmsg),g.onerror=function(A){c.trigger(h.Events.ERROR,{type:T.ErrorTypes.OTHER_ERROR,details:T.ErrorDetails.INTERNAL_EXCEPTION,fatal:!0,event:"demuxerWorker",error:new Error(A.message+" ("+A.filename+":"+A.lineno+")")})},g.postMessage({cmd:"init",typeSupported:l,vendor:a,id:u,config:JSON.stringify(e)})}catch(A){M.logger.warn("Error in worker:",A),M.logger.error("Error while initializing DemuxerWorker, fallback to inline"),g&&self.URL.revokeObjectURL(g.objectURL),this.transmuxer=new m.default(this.observer,l,e,a,u),this.worker=null}}else this.transmuxer=new m.default(this.observer,l,e,a,u)}var v=o.prototype;return v.destroy=function(){var u=this.worker;if(u)u.removeEventListener("message",this.onwmsg),u.terminate(),this.worker=null;else{var r=this.transmuxer;r&&(r.destroy(),this.transmuxer=null)}var t=this.observer;t&&t.removeAllListeners(),this.observer=null},v.push=function(u,r,t,i,e,s,l,a,g,A){var D,y,E=this;g.transmuxing.start=self.performance.now();var _=this.transmuxer,L=this.worker,I=s?s.start:e.start,b=e.decryptdata,R=this.frag,P=!(R&&e.cc===R.cc),w=!(R&&g.level===R.level),F=R?g.sn-R.sn:-1,k=this.part?g.part-this.part.index:1,B=!w&&(F===1||F===0&&k===1),U=self.performance.now();(w||F||e.stats.parsing.start===0)&&(e.stats.parsing.start=U),s&&(k||!B)&&(s.stats.parsing.start=U);var j=!(R&&((D=e.initSegment)===null||D===void 0?void 0:D.url)===((y=R.initSegment)===null||y===void 0?void 0:y.url)),K=new m.TransmuxState(P,B,a,w,I,j);if(!B||P||j){M.logger.log("[transmuxer-interface, "+e.type+"]: Starting new transmux session for sn: "+g.sn+" p: "+g.part+" level: "+g.level+" id: "+g.id+` + discontinuity: `+P+` + trackSwitch: `+w+` + contiguous: `+B+` + accurateTimeOffset: `+a+` + timeOffset: `+I+` + initSegmentChange: `+j);var N=new m.TransmuxConfig(t,i,r,l,A);this.configureTransmuxer(N)}if(this.frag=e,this.part=s,L)L.postMessage({cmd:"demux",data:u,decryptdata:b,chunkMeta:g,state:K},u instanceof ArrayBuffer?[u]:[]);else if(_){var Z=_.push(u,b,g,K);Object(m.isPromise)(Z)?Z.then(function(X){E.handleTransmuxComplete(X)}):this.handleTransmuxComplete(Z)}},v.flush=function(u){var r=this;u.transmuxing.start=self.performance.now();var t=this.transmuxer,i=this.worker;if(i)i.postMessage({cmd:"flush",chunkMeta:u});else if(t){var e=t.flush(u);Object(m.isPromise)(e)?e.then(function(s){r.handleFlushResult(s,u)}):this.handleFlushResult(e,u)}},v.handleFlushResult=function(u,r){var t=this;u.forEach(function(i){t.handleTransmuxComplete(i)}),this.onFlush(r)},v.onWorkerMessage=function(u){var r=u.data,t=this.hls;switch(r.event){case"init":{self.URL.revokeObjectURL(this.worker.objectURL);break}case"transmuxComplete":{this.handleTransmuxComplete(r.data);break}case"flush":{this.onFlush(r.data);break}default:{r.data=r.data||{},r.data.frag=this.frag,r.data.id=this.id,t.trigger(r.event,r.data);break}}},v.configureTransmuxer=function(u){var r=this.worker,t=this.transmuxer;r?r.postMessage({cmd:"configure",config:u}):t&&t.configure(u)},v.handleTransmuxComplete=function(u){u.chunkMeta.transmuxing.end=self.performance.now(),this.onTransmuxComplete(u)},o}()},"./src/demux/transmuxer-worker.ts":function(O,C,x){x.r(C),x.d(C,"default",function(){return T});var S=x("./src/demux/transmuxer.ts"),h=x("./src/events.ts"),m=x("./src/utils/logger.ts"),M=x("./node_modules/eventemitter3/index.js");function T(o){var v=new M.EventEmitter,c=function(r,t){o.postMessage({event:r,data:t})};v.on(h.Events.FRAG_DECRYPTED,c),v.on(h.Events.ERROR,c),o.addEventListener("message",function(u){var r=u.data;switch(r.cmd){case"init":{var t=JSON.parse(r.config);o.transmuxer=new S.default(v,r.typeSupported,t,r.vendor,r.id),Object(m.enableLogs)(t.debug),c("init",null);break}case"configure":{o.transmuxer.configure(r.config);break}case"demux":{var i=o.transmuxer.push(r.data,r.decryptdata,r.chunkMeta,r.state);Object(S.isPromise)(i)?i.then(function(l){p(o,l)}):p(o,i);break}case"flush":{var e=r.chunkMeta,s=o.transmuxer.flush(e);Object(S.isPromise)(s)?s.then(function(l){n(o,l,e)}):n(o,s,e);break}}})}function p(o,v){if(!d(v.remuxResult)){var c=[],u=v.remuxResult,r=u.audio,t=u.video;r&&f(c,r),t&&f(c,t),o.postMessage({event:"transmuxComplete",data:v},c)}}function f(o,v){v.data1&&o.push(v.data1.buffer),v.data2&&o.push(v.data2.buffer)}function n(o,v,c){v.forEach(function(u){p(o,u)}),o.postMessage({event:"flush",data:c})}function d(o){return!o.audio&&!o.video&&!o.text&&!o.id3&&!o.initSegment}},"./src/demux/transmuxer.ts":function(O,C,x){x.r(C),x.d(C,"default",function(){return i}),x.d(C,"isPromise",function(){return l}),x.d(C,"TransmuxConfig",function(){return a}),x.d(C,"TransmuxState",function(){return g});var S=x("./src/events.ts"),h=x("./src/errors.ts"),m=x("./src/crypt/decrypter.ts"),M=x("./src/demux/aacdemuxer.ts"),T=x("./src/demux/mp4demuxer.ts"),p=x("./src/demux/tsdemuxer.ts"),f=x("./src/demux/mp3demuxer.ts"),n=x("./src/remux/mp4-remuxer.ts"),d=x("./src/remux/passthrough-remuxer.ts"),o=x("./src/demux/chunk-cache.ts"),v=x("./src/utils/mp4-tools.ts"),c=x("./src/utils/logger.ts"),u;try{u=self.performance.now.bind(self.performance)}catch{c.logger.debug("Unable to use Performance API on this environment"),u=self.Date.now}var r=[{demux:p.default,remux:n.default},{demux:T.default,remux:d.default},{demux:M.default,remux:n.default},{demux:f.default,remux:n.default}],t=1024;r.forEach(function(A){var D=A.demux;t=Math.max(t,D.minProbeByteLength)});var i=function(){function A(y,E,_,L,I){this.observer=void 0,this.typeSupported=void 0,this.config=void 0,this.vendor=void 0,this.id=void 0,this.demuxer=void 0,this.remuxer=void 0,this.decrypter=void 0,this.probe=void 0,this.decryptionPromise=null,this.transmuxConfig=void 0,this.currentTransmuxState=void 0,this.cache=new o.default,this.observer=y,this.typeSupported=E,this.config=_,this.vendor=L,this.id=I}var D=A.prototype;return D.configure=function(E){this.transmuxConfig=E,this.decrypter&&this.decrypter.reset()},D.push=function(E,_,L,I){var b=this,R=L.transmuxing;R.executeStart=u();var P=new Uint8Array(E),w=this.cache,F=this.config,k=this.currentTransmuxState,B=this.transmuxConfig;I&&(this.currentTransmuxState=I);var U=e(P,_);if(U&&U.method==="AES-128"){var j=this.getDecrypter();if(F.enableSoftwareAES){var K=j.softwareDecrypt(P,U.key.buffer,U.iv.buffer);if(!K)return R.executeEnd=u(),s(L);P=new Uint8Array(K)}else return this.decryptionPromise=j.webCryptoDecrypt(P,U.key.buffer,U.iv.buffer).then(function(ae){var fe=b.push(ae,null,L);return b.decryptionPromise=null,fe}),this.decryptionPromise}var N=I||k,Z=N.contiguous,X=N.discontinuity,Y=N.trackSwitch,ee=N.accurateTimeOffset,Q=N.timeOffset,G=N.initSegmentChange,q=B.audioCodec,te=B.videoCodec,ie=B.defaultInitPts,ne=B.duration,le=B.initSegmentData;if((X||Y||G)&&this.resetInitSegment(le,q,te,ne),(X||G)&&this.resetInitialTimestamp(ie),Z||this.resetContiguity(),this.needsProbing(P,X,Y)){if(w.dataLength){var se=w.flush();P=Object(v.appendUint8Array)(se,P)}this.configureTransmuxer(P,B)}var oe=this.transmux(P,U,Q,ee,L),J=this.currentTransmuxState;return J.contiguous=!0,J.discontinuity=!1,J.trackSwitch=!1,R.executeEnd=u(),oe},D.flush=function(E){var _=this,L=E.transmuxing;L.executeStart=u();var I=this.decrypter,b=this.cache,R=this.currentTransmuxState,P=this.decryptionPromise;if(P)return P.then(function(){return _.flush(E)});var w=[],F=R.timeOffset;if(I){var k=I.flush();k&&w.push(this.push(k,null,E))}var B=b.dataLength;b.reset();var U=this.demuxer,j=this.remuxer;if(!U||!j)return B>=t&&this.observer.emit(S.Events.ERROR,S.Events.ERROR,{type:h.ErrorTypes.MEDIA_ERROR,details:h.ErrorDetails.FRAG_PARSING_ERROR,fatal:!0,reason:"no demux matching with content found"}),L.executeEnd=u(),[s(E)];var K=U.flush(F);return l(K)?K.then(function(N){return _.flushRemux(w,N,E),w}):(this.flushRemux(w,K,E),w)},D.flushRemux=function(E,_,L){var I=_.audioTrack,b=_.avcTrack,R=_.id3Track,P=_.textTrack,w=this.currentTransmuxState,F=w.accurateTimeOffset,k=w.timeOffset;c.logger.log("[transmuxer.ts]: Flushed fragment "+L.sn+(L.part>-1?" p: "+L.part:"")+" of level "+L.level);var B=this.remuxer.remux(I,b,R,P,k,F,!0,this.id);E.push({remuxResult:B,chunkMeta:L}),L.transmuxing.executeEnd=u()},D.resetInitialTimestamp=function(E){var _=this.demuxer,L=this.remuxer;!_||!L||(_.resetTimeStamp(E),L.resetTimeStamp(E))},D.resetContiguity=function(){var E=this.demuxer,_=this.remuxer;!E||!_||(E.resetContiguity(),_.resetNextTimestamp())},D.resetInitSegment=function(E,_,L,I){var b=this.demuxer,R=this.remuxer;!b||!R||(b.resetInitSegment(_,L,I),R.resetInitSegment(E,_,L))},D.destroy=function(){this.demuxer&&(this.demuxer.destroy(),this.demuxer=void 0),this.remuxer&&(this.remuxer.destroy(),this.remuxer=void 0)},D.transmux=function(E,_,L,I,b){var R;return _&&_.method==="SAMPLE-AES"?R=this.transmuxSampleAes(E,_,L,I,b):R=this.transmuxUnencrypted(E,L,I,b),R},D.transmuxUnencrypted=function(E,_,L,I){var b=this.demuxer.demux(E,_,!1,!this.config.progressive),R=b.audioTrack,P=b.avcTrack,w=b.id3Track,F=b.textTrack,k=this.remuxer.remux(R,P,w,F,_,L,!1,this.id);return{remuxResult:k,chunkMeta:I}},D.transmuxSampleAes=function(E,_,L,I,b){var R=this;return this.demuxer.demuxSampleAes(E,_,L).then(function(P){var w=R.remuxer.remux(P.audioTrack,P.avcTrack,P.id3Track,P.textTrack,L,I,!1,R.id);return{remuxResult:w,chunkMeta:b}})},D.configureTransmuxer=function(E,_){for(var L=this.config,I=this.observer,b=this.typeSupported,R=this.vendor,P=_.audioCodec,w=_.defaultInitPts,F=_.duration,k=_.initSegmentData,B=_.videoCodec,U,j=0,K=r.length;j0&&D!=null&&D.key!=null&&D.iv!==null&&D.method!=null&&(y=D),y}var s=function(D){return{remuxResult:{},chunkMeta:D}};function l(A){return"then"in A&&A.then instanceof Function}var a=function(D,y,E,_,L){this.audioCodec=void 0,this.videoCodec=void 0,this.initSegmentData=void 0,this.duration=void 0,this.defaultInitPts=void 0,this.audioCodec=D,this.videoCodec=y,this.initSegmentData=E,this.duration=_,this.defaultInitPts=L},g=function(D,y,E,_,L,I){this.discontinuity=void 0,this.contiguous=void 0,this.accurateTimeOffset=void 0,this.trackSwitch=void 0,this.timeOffset=void 0,this.initSegmentChange=void 0,this.discontinuity=D,this.contiguous=y,this.accurateTimeOffset=E,this.trackSwitch=_,this.timeOffset=L,this.initSegmentChange=I}},"./src/demux/tsdemuxer.ts":function(O,C,x){x.r(C),x.d(C,"discardEPB",function(){return s});var S=x("./src/demux/adts.ts"),h=x("./src/demux/mpegaudio.ts"),m=x("./src/demux/exp-golomb.ts"),M=x("./src/demux/id3.ts"),T=x("./src/demux/sample-aes.ts"),p=x("./src/events.ts"),f=x("./src/utils/mp4-tools.ts"),n=x("./src/utils/logger.ts"),d=x("./src/errors.ts"),o={video:1,audio:2,id3:3,text:4},v=function(){function l(g,A,D){this.observer=void 0,this.config=void 0,this.typeSupported=void 0,this.sampleAes=null,this.pmtParsed=!1,this.audioCodec=void 0,this.videoCodec=void 0,this._duration=0,this.aacLastPTS=null,this._initPTS=null,this._initDTS=null,this._pmtId=-1,this._avcTrack=void 0,this._audioTrack=void 0,this._id3Track=void 0,this._txtTrack=void 0,this.aacOverFlow=null,this.avcSample=null,this.remainderData=null,this.observer=g,this.config=A,this.typeSupported=D}l.probe=function(A){var D=l.syncOffset(A);return D<0?!1:(D&&n.logger.warn("MPEG2-TS detected but first sync word found @ offset "+D+", junk ahead ?"),!0)},l.syncOffset=function(A){for(var D=Math.min(1e3,A.length-564),y=0;y>4,q=void 0;if(G>1){if(q=Y+5+A[Y+4],q===Y+188)continue}else q=Y+4;switch(Q){case R:ee&&(P&&(_=t(P))&&this.parseAVCPES(_,!1),P={data:[],size:0}),P&&(P.data.push(A.subarray(q,Y+188)),P.size+=Y+188-q);break;case w:ee&&(k&&(_=t(k))&&(I.isAAC?this.parseAACPES(_):this.parseMPEGPES(_)),k={data:[],size:0}),k&&(k.data.push(A.subarray(q,Y+188)),k.size+=Y+188-q);break;case F:ee&&(B&&(_=t(B))&&this.parseID3PES(_),B={data:[],size:0}),B&&(B.data.push(A.subarray(q,Y+188)),B.size+=Y+188-q);break;case 0:ee&&(q+=A[q]+1),K=this._pmtId=u(A,q);break;case K:{ee&&(q+=A[q]+1);var te=r(A,q,this.typeSupported.mpeg===!0||this.typeSupported.mp3===!0,y);R=te.avc,R>0&&(L.pid=R),w=te.audio,w>0&&(I.pid=w,I.isAAC=te.isAAC),F=te.id3,F>0&&(b.pid=F),U&&!j&&(n.logger.log("reparse from beginning"),U=!1,Y=Z-188),j=this.pmtParsed=!0;break}case 17:case 8191:break;default:U=!0;break}}else X++;X>0&&this.observer.emit(p.Events.ERROR,p.Events.ERROR,{type:d.ErrorTypes.MEDIA_ERROR,details:d.ErrorDetails.FRAG_PARSING_ERROR,fatal:!1,reason:"Found "+X+" TS packet/s that do not start with 0x47"}),L.pesData=P,I.pesData=k,b.pesData=B;var ie={audioTrack:I,avcTrack:L,id3Track:b,textTrack:this._txtTrack};return E&&this.extractRemainingSamples(ie),ie},a.flush=function(){var A=this.remainderData;this.remainderData=null;var D;return A?D=this.demux(A,-1,!1,!0):D={audioTrack:this._audioTrack,avcTrack:this._avcTrack,textTrack:this._txtTrack,id3Track:this._id3Track},this.extractRemainingSamples(D),this.sampleAes?this.decrypt(D,this.sampleAes):D},a.extractRemainingSamples=function(A){var D=A.audioTrack,y=A.avcTrack,E=A.id3Track,_=y.pesData,L=D.pesData,I=E.pesData,b;_&&(b=t(_))?(this.parseAVCPES(b,!0),y.pesData=null):y.pesData=_,L&&(b=t(L))?(D.isAAC?this.parseAACPES(b):this.parseMPEGPES(b),D.pesData=null):(L!=null&&L.size&&n.logger.log("last AAC PES packet truncated,might overlap between fragments"),D.pesData=L),I&&(b=t(I))?(this.parseID3PES(b),E.pesData=null):E.pesData=I},a.demuxSampleAes=function(A,D,y){var E=this.demux(A,y,!0,!this.config.progressive),_=this.sampleAes=new T.default(this.observer,this.config,D);return this.decrypt(E,_)},a.decrypt=function(A,D){return new Promise(function(y){var E=A.audioTrack,_=A.avcTrack;E.samples&&E.isAAC?D.decryptAacSamples(E.samples,0,function(){_.samples?D.decryptAvcSamples(_.samples,0,0,function(){y(A)}):y(A)}):_.samples&&D.decryptAvcSamples(_.samples,0,0,function(){y(A)})})},a.destroy=function(){this._initPTS=this._initDTS=null,this._duration=0},a.parseAVCPES=function(A,D){var y=this,E=this._avcTrack,_=this.parseAVCNALu(A.data),L=this.avcSample,I,b=!1;A.data=null,L&&_.length&&!E.audFound&&(i(L,E),L=this.avcSample=c(!1,A.pts,A.dts,"")),_.forEach(function(R){switch(R.type){case 1:{I=!0,L||(L=y.avcSample=c(!0,A.pts,A.dts,"")),L.frame=!0;var P=R.data;if(b&&P.length>4){var w=new m.default(P).readSliceType();(w===2||w===4||w===7||w===9)&&(L.key=!0)}break}case 5:I=!0,L||(L=y.avcSample=c(!0,A.pts,A.dts,"")),L.key=!0,L.frame=!0;break;case 6:{I=!0;var F=new m.default(s(R.data));F.readUByte();for(var k=0,B=0,U=!1,j=0;!U&&F.bytesAvailable>1;){k=0;do j=F.readUByte(),k+=j;while(j===255);B=0;do j=F.readUByte(),B+=j;while(j===255);if(k===4&&F.bytesAvailable!==0){U=!0;var K=F.readUByte();if(K===181){var N=F.readUShort();if(N===49){var Z=F.readUInt();if(Z===1195456820){var X=F.readUByte();if(X===3){for(var Y=F.readUByte(),ee=F.readUByte(),Q=31&Y,G=[Y,ee],q=0;q16){for(var te=[],ie=0;ie<16;ie++)te.push(F.readUByte().toString(16)),(ie===3||ie===5||ie===7||ie===9)&&te.push("-");for(var ne=B-16,le=new Uint8Array(ne),se=0;se=0){var k={data:A.subarray(w,I-E-1),type:F};L.push(k)}else{var B=this.getLastNalUnit();if(B&&(_&&I<=4-_&&B.state&&(B.data=B.data.subarray(0,B.data.byteLength-_)),R=I-E-1,R>0)){var U=new Uint8Array(B.data.byteLength+R);U.set(B.data,0),U.set(A.subarray(0,R),B.data.byteLength),B.data=U,B.state=0}}I=0&&E>=0){var j={data:A.subarray(w,D),type:F,state:E};L.push(j)}if(L.length===0){var K=this.getLastNalUnit();if(K){var N=new Uint8Array(K.data.byteLength+A.byteLength);N.set(K.data,0),N.set(A,K.data.byteLength),K.data=N}}return y.naluState=E,L},a.parseAACPES=function(A){var D=0,y=this._audioTrack,E=this.aacOverFlow,_=A.data;if(E){this.aacOverFlow=null;var L=E.sample.unit.byteLength,I=Math.min(E.missing,L),b=L-I;E.sample.unit.set(_.subarray(0,I),b),y.samples.push(E.sample),D=E.missing}var R,P;for(R=D,P=_.length;R1;){var L=new Uint8Array(_[0].length+_[1].length);L.set(_[0]),L.set(_[1],_[0].length),_[0]=L,_.splice(1,1)}g=_[0];var I=(g[0]<<16)+(g[1]<<8)+g[2];if(I===1){if(A=(g[4]<<8)+g[5],A&&A>l.size-6)return null;var b=g[7];b&192&&(y=(g[9]&14)*536870912+(g[10]&255)*4194304+(g[11]&254)*16384+(g[12]&255)*128+(g[13]&254)/2,b&64?(E=(g[14]&14)*536870912+(g[15]&255)*4194304+(g[16]&254)*16384+(g[17]&255)*128+(g[18]&254)/2,y-E>60*9e4&&(n.logger.warn(Math.round((y-E)/9e4)+"s delta between PTS and DTS, align them"),y=E)):E=y),D=g[8];var R=D+9;if(l.size<=R)return null;l.size-=R;for(var P=new Uint8Array(l.size),w=0,F=_.length;wk){R-=k;continue}else g=g.subarray(R),k-=R,R=0;P.set(g,a),a+=k}return A&&(A-=D+3),{data:P,pts:y,dts:E,len:A}}return null}function i(l,a){if(l.units.length&&l.frame){if(l.pts===void 0){var g=a.samples,A=g.length;if(A){var D=g[A-1];l.pts=D.pts,l.dts=D.dts}else{a.dropped++;return}}a.samples.push(l)}l.debug.length&&n.logger.log(l.pts+"/"+l.dts+":"+l.debug)}function e(l,a){var g=l.length;if(g>0){if(a.pts>=l[g-1].pts)l.push(a);else for(var A=g-1;A>=0;A--)if(a.ptsA)return y;return 0}},{key:"maxAutoLevel",get:function(){var g=this.levels,A=this.autoLevelCapping,D;return A===-1&&g&&g.length?D=g.length-1:D=A,D}},{key:"nextAutoLevel",get:function(){return Math.min(Math.max(this.abrController.nextAutoLevel,this.minAutoLevel),this.maxAutoLevel)},set:function(g){this.abrController.nextAutoLevel=Math.max(this.minAutoLevel,g)}},{key:"audioTracks",get:function(){var g=this.audioTrackController;return g?g.audioTracks:[]}},{key:"audioTrack",get:function(){var g=this.audioTrackController;return g?g.audioTrack:-1},set:function(g){var A=this.audioTrackController;A&&(A.audioTrack=g)}},{key:"subtitleTracks",get:function(){var g=this.subtitleTrackController;return g?g.subtitleTracks:[]}},{key:"subtitleTrack",get:function(){var g=this.subtitleTrackController;return g?g.subtitleTrack:-1},set:function(g){var A=this.subtitleTrackController;A&&(A.subtitleTrack=g)}},{key:"media",get:function(){return this._media}},{key:"subtitleDisplay",get:function(){var g=this.subtitleTrackController;return g?g.subtitleDisplay:!1},set:function(g){var A=this.subtitleTrackController;A&&(A.subtitleDisplay=g)}},{key:"lowLatencyMode",get:function(){return this.config.lowLatencyMode},set:function(g){this.config.lowLatencyMode=g}},{key:"liveSyncPosition",get:function(){return this.latencyController.liveSyncPosition}},{key:"latency",get:function(){return this.latencyController.latency}},{key:"maxLatency",get:function(){return this.latencyController.maxLatency}},{key:"targetLatency",get:function(){return this.latencyController.targetLatency}},{key:"drift",get:function(){return this.latencyController.drift}},{key:"forceStartLoad",get:function(){return this.streamController.forceStartLoad}}],[{key:"version",get:function(){return"1.1.5"}},{key:"Events",get:function(){return u.Events}},{key:"ErrorTypes",get:function(){return r.ErrorTypes}},{key:"ErrorDetails",get:function(){return r.ErrorDetails}},{key:"DefaultConfig",get:function(){return s.defaultConfig?s.defaultConfig:v.hlsDefaultConfig},set:function(g){s.defaultConfig=g}}]),s}();e.defaultConfig=void 0},"./src/is-supported.ts":function(O,C,x){x.r(C),x.d(C,"isSupported",function(){return m}),x.d(C,"changeTypeSupported",function(){return M});var S=x("./src/utils/mediasource-helper.ts");function h(){return self.SourceBuffer||self.WebKitSourceBuffer}function m(){var T=Object(S.getMediaSource)();if(!T)return!1;var p=h(),f=T&&typeof T.isTypeSupported=="function"&&T.isTypeSupported('video/mp4; codecs="avc1.42E01E,mp4a.40.2"'),n=!p||p.prototype&&typeof p.prototype.appendBuffer=="function"&&typeof p.prototype.remove=="function";return!!f&&!!n}function M(){var T,p=h();return typeof(p==null||(T=p.prototype)===null||T===void 0?void 0:T.changeType)=="function"}},"./src/loader/fragment-loader.ts":function(O,C,x){x.r(C),x.d(C,"default",function(){return v}),x.d(C,"LoadError",function(){return u});var S=x("./src/polyfills/number.ts"),h=x("./src/errors.ts");function m(r,t){r.prototype=Object.create(t.prototype),r.prototype.constructor=r,n(r,t)}function M(r){var t=typeof Map=="function"?new Map:void 0;return M=function(e){if(e===null||!f(e))return e;if(typeof e!="function")throw new TypeError("Super expression must either be null or a function");if(typeof t!="undefined"){if(t.has(e))return t.get(e);t.set(e,s)}function s(){return T(e,arguments,d(this).constructor)}return s.prototype=Object.create(e.prototype,{constructor:{value:s,enumerable:!1,writable:!0,configurable:!0}}),n(s,e)},M(r)}function T(r,t,i){return p()?T=Reflect.construct:T=function(s,l,a){var g=[null];g.push.apply(g,l);var A=Function.bind.apply(s,g),D=new A;return a&&n(D,a.prototype),D},T.apply(null,arguments)}function p(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function f(r){return Function.toString.call(r).indexOf("[native code]")!==-1}function n(r,t){return n=Object.setPrototypeOf||function(e,s){return e.__proto__=s,e},n(r,t)}function d(r){return d=Object.setPrototypeOf?Object.getPrototypeOf:function(i){return i.__proto__||Object.getPrototypeOf(i)},d(r)}var o=Math.pow(2,17),v=function(){function r(i){this.config=void 0,this.loader=null,this.partLoadTimeout=-1,this.config=i}var t=r.prototype;return t.destroy=function(){this.loader&&(this.loader.destroy(),this.loader=null)},t.abort=function(){this.loader&&this.loader.abort()},t.load=function(e,s){var l=this,a=e.url;if(!a)return Promise.reject(new u({type:h.ErrorTypes.NETWORK_ERROR,details:h.ErrorDetails.FRAG_LOAD_ERROR,fatal:!1,frag:e,networkDetails:null},"Fragment does not have a "+(a?"part list":"url")));this.abort();var g=this.config,A=g.fLoader,D=g.loader;return new Promise(function(y,E){l.loader&&l.loader.destroy();var _=l.loader=e.loader=A?new A(g):new D(g),L=c(e),I={timeout:g.fragLoadingTimeOut,maxRetry:0,retryDelay:0,maxRetryDelay:g.fragLoadingMaxRetryTimeout,highWaterMark:o};e.stats=_.stats,_.load(L,I,{onSuccess:function(R,P,w,F){l.resetLoader(e,_),y({frag:e,part:null,payload:R.data,networkDetails:F})},onError:function(R,P,w){l.resetLoader(e,_),E(new u({type:h.ErrorTypes.NETWORK_ERROR,details:h.ErrorDetails.FRAG_LOAD_ERROR,fatal:!1,frag:e,response:R,networkDetails:w}))},onAbort:function(R,P,w){l.resetLoader(e,_),E(new u({type:h.ErrorTypes.NETWORK_ERROR,details:h.ErrorDetails.INTERNAL_ABORTED,fatal:!1,frag:e,networkDetails:w}))},onTimeout:function(R,P,w){l.resetLoader(e,_),E(new u({type:h.ErrorTypes.NETWORK_ERROR,details:h.ErrorDetails.FRAG_LOAD_TIMEOUT,fatal:!1,frag:e,networkDetails:w}))},onProgress:function(R,P,w,F){s&&s({frag:e,part:null,payload:w,networkDetails:F})}})})},t.loadPart=function(e,s,l){var a=this;this.abort();var g=this.config,A=g.fLoader,D=g.loader;return new Promise(function(y,E){a.loader&&a.loader.destroy();var _=a.loader=e.loader=A?new A(g):new D(g),L=c(e,s),I={timeout:g.fragLoadingTimeOut,maxRetry:0,retryDelay:0,maxRetryDelay:g.fragLoadingMaxRetryTimeout,highWaterMark:o};s.stats=_.stats,_.load(L,I,{onSuccess:function(R,P,w,F){a.resetLoader(e,_),a.updateStatsFromPart(e,s);var k={frag:e,part:s,payload:R.data,networkDetails:F};l(k),y(k)},onError:function(R,P,w){a.resetLoader(e,_),E(new u({type:h.ErrorTypes.NETWORK_ERROR,details:h.ErrorDetails.FRAG_LOAD_ERROR,fatal:!1,frag:e,part:s,response:R,networkDetails:w}))},onAbort:function(R,P,w){e.stats.aborted=s.stats.aborted,a.resetLoader(e,_),E(new u({type:h.ErrorTypes.NETWORK_ERROR,details:h.ErrorDetails.INTERNAL_ABORTED,fatal:!1,frag:e,part:s,networkDetails:w}))},onTimeout:function(R,P,w){a.resetLoader(e,_),E(new u({type:h.ErrorTypes.NETWORK_ERROR,details:h.ErrorDetails.FRAG_LOAD_TIMEOUT,fatal:!1,frag:e,part:s,networkDetails:w}))}})})},t.updateStatsFromPart=function(e,s){var l=e.stats,a=s.stats,g=a.total;if(l.loaded+=a.loaded,g){var A=Math.round(e.duration/s.duration),D=Math.min(Math.round(l.loaded/g),A),y=A-D,E=y*Math.round(l.loaded/D);l.total=l.loaded+E}else l.total=Math.max(l.loaded,l.total);var _=l.loading,L=a.loading;_.start?_.first+=L.first-L.start:(_.start=L.start,_.first=L.first),_.end=L.end},t.resetLoader=function(e,s){e.loader=null,this.loader===s&&(self.clearTimeout(this.partLoadTimeout),this.loader=null),s.destroy()},r}();function c(r,t){t===void 0&&(t=null);var i=t||r,e={frag:r,part:t,responseType:"arraybuffer",url:i.url,headers:{},rangeStart:0,rangeEnd:0},s=i.byteRangeStartOffset,l=i.byteRangeEndOffset;return Object(S.isFiniteNumber)(s)&&Object(S.isFiniteNumber)(l)&&(e.rangeStart=s,e.rangeEnd=l),e}var u=function(r){m(t,r);function t(i){for(var e,s=arguments.length,l=new Array(s>1?s-1:0),a=1;a>8*(15-a)&255;return l},i.setDecryptDataFromLevelKey=function(s,l){var a=s;return(s==null?void 0:s.method)==="AES-128"&&s.uri&&!s.iv&&(a=M.LevelKey.fromURI(s.uri),a.method=s.method,a.iv=this.createInitializationVector(l),a.keyFormat="identity"),a},i.setElementaryStreamInfo=function(s,l,a,g,A,D){D===void 0&&(D=!1);var y=this.elementaryStreams,E=y[s];if(!E){y[s]={startPTS:l,endPTS:a,startDTS:g,endDTS:A,partial:D};return}E.startPTS=Math.min(E.startPTS,l),E.endPTS=Math.max(E.endPTS,a),E.startDTS=Math.min(E.startDTS,g),E.endDTS=Math.max(E.endDTS,A)},i.clearElementaryStreamInfo=function(){var s=this.elementaryStreams;s[o.AUDIO]=null,s[o.VIDEO]=null,s[o.AUDIOVIDEO]=null},d(t,[{key:"decryptdata",get:function(){if(!this.levelkey&&!this._decryptdata)return null;if(!this._decryptdata&&this.levelkey){var s=this.sn;typeof s!="number"&&(this.levelkey&&this.levelkey.method==="AES-128"&&!this.levelkey.iv&&m.logger.warn('missing IV for initialization segment with method="'+this.levelkey.method+'" - compliance issue'),s=0),this._decryptdata=this.setDecryptDataFromLevelKey(this.levelkey,s)}return this._decryptdata}},{key:"end",get:function(){return this.start+this.duration}},{key:"endProgramDateTime",get:function(){if(this.programDateTime===null||!Object(S.isFiniteNumber)(this.programDateTime))return null;var s=Object(S.isFiniteNumber)(this.duration)?this.duration:0;return this.programDateTime+s*1e3}},{key:"encrypted",get:function(){var s;return!!((s=this.decryptdata)!==null&&s!==void 0&&s.keyFormat&&this.decryptdata.uri)}}]),t}(v),u=function(r){p(t,r);function t(i,e,s,l,a){var g;g=r.call(this,s)||this,g.fragOffset=0,g.duration=0,g.gap=!1,g.independent=!1,g.relurl=void 0,g.fragment=void 0,g.index=void 0,g.stats=new T.LoadStats,g.duration=i.decimalFloatingPoint("DURATION"),g.gap=i.bool("GAP"),g.independent=i.bool("INDEPENDENT"),g.relurl=i.enumeratedString("URI"),g.fragment=e,g.index=l;var A=i.enumeratedString("BYTERANGE");return A&&g.setByteRange(A,a),a&&(g.fragOffset=a.fragOffset+a.duration),g}return d(t,[{key:"start",get:function(){return this.fragment.start+this.fragOffset}},{key:"end",get:function(){return this.start+this.duration}},{key:"loaded",get:function(){var e=this.elementaryStreams;return!!(e.audio||e.video||e.audiovideo)}}]),t}(v)},"./src/loader/key-loader.ts":function(O,C,x){x.r(C),x.d(C,"default",function(){return M});var S=x("./src/events.ts"),h=x("./src/errors.ts"),m=x("./src/utils/logger.ts"),M=function(){function T(f){this.hls=void 0,this.loaders={},this.decryptkey=null,this.decrypturl=null,this.hls=f,this._registerListeners()}var p=T.prototype;return p._registerListeners=function(){this.hls.on(S.Events.KEY_LOADING,this.onKeyLoading,this)},p._unregisterListeners=function(){this.hls.off(S.Events.KEY_LOADING,this.onKeyLoading)},p.destroy=function(){this._unregisterListeners();for(var n in this.loaders){var d=this.loaders[n];d&&d.destroy()}this.loaders={}},p.onKeyLoading=function(n,d){var o=d.frag,v=o.type,c=this.loaders[v];if(!o.decryptdata){m.logger.warn("Missing decryption data on fragment in onKeyLoading");return}var u=o.decryptdata.uri;if(u!==this.decrypturl||this.decryptkey===null){var r=this.hls.config;if(c&&(m.logger.warn("abort previous key loader for type:"+v),c.abort()),!u){m.logger.warn("key uri is falsy");return}var t=r.loader,i=o.loader=this.loaders[v]=new t(r);this.decrypturl=u,this.decryptkey=null;var e={url:u,frag:o,responseType:"arraybuffer"},s={timeout:r.fragLoadingTimeOut,maxRetry:0,retryDelay:r.fragLoadingRetryDelay,maxRetryDelay:r.fragLoadingMaxRetryTimeout,highWaterMark:0},l={onSuccess:this.loadsuccess.bind(this),onError:this.loaderror.bind(this),onTimeout:this.loadtimeout.bind(this)};i.load(e,s,l)}else this.decryptkey&&(o.decryptdata.key=this.decryptkey,this.hls.trigger(S.Events.KEY_LOADED,{frag:o}))},p.loadsuccess=function(n,d,o){var v=o.frag;if(!v.decryptdata){m.logger.error("after key load, decryptdata unset");return}this.decryptkey=v.decryptdata.key=new Uint8Array(n.data),v.loader=null,delete this.loaders[v.type],this.hls.trigger(S.Events.KEY_LOADED,{frag:v})},p.loaderror=function(n,d){var o=d.frag,v=o.loader;v&&v.abort(),delete this.loaders[o.type],this.hls.trigger(S.Events.ERROR,{type:h.ErrorTypes.NETWORK_ERROR,details:h.ErrorDetails.KEY_LOAD_ERROR,fatal:!1,frag:o,response:n})},p.loadtimeout=function(n,d){var o=d.frag,v=o.loader;v&&v.abort(),delete this.loaders[o.type],this.hls.trigger(S.Events.ERROR,{type:h.ErrorTypes.NETWORK_ERROR,details:h.ErrorDetails.KEY_LOAD_TIMEOUT,fatal:!1,frag:o})},T}()},"./src/loader/level-details.ts":function(O,C,x){x.r(C),x.d(C,"LevelDetails",function(){return T});var S=x("./src/polyfills/number.ts");function h(p,f){for(var n=0;nd.endSN||o>0||o===0&&v>0,this.updated||this.advanced?this.misses=Math.floor(d.misses*.6):this.misses=d.misses+1,this.availabilityDelay=d.availabilityDelay},m(p,[{key:"hasProgramDateTime",get:function(){return this.fragments.length?Object(S.isFiniteNumber)(this.fragments[this.fragments.length-1].programDateTime):!1}},{key:"levelTargetDuration",get:function(){return this.averagetargetduration||this.targetduration||M}},{key:"drift",get:function(){var d=this.driftEndTime-this.driftStartTime;if(d>0){var o=this.driftEnd-this.driftStart;return o*1e3/d}return 1}},{key:"edge",get:function(){return this.partEnd||this.fragmentEnd}},{key:"partEnd",get:function(){var d;return(d=this.partList)!==null&&d!==void 0&&d.length?this.partList[this.partList.length-1].end:this.fragmentEnd}},{key:"fragmentEnd",get:function(){var d;return(d=this.fragments)!==null&&d!==void 0&&d.length?this.fragments[this.fragments.length-1].end:0}},{key:"age",get:function(){return this.advancedDateTime?Math.max(Date.now()-this.advancedDateTime,0)/1e3:0}},{key:"lastPartIndex",get:function(){var d;return(d=this.partList)!==null&&d!==void 0&&d.length?this.partList[this.partList.length-1].index:-1}},{key:"lastPartSn",get:function(){var d;return(d=this.partList)!==null&&d!==void 0&&d.length?this.partList[this.partList.length-1].fragment.sn:this.endSN}}]),p}()},"./src/loader/level-key.ts":function(O,C,x){x.r(C),x.d(C,"LevelKey",function(){return M});var S=x("./node_modules/url-toolkit/src/url-toolkit.js");function h(T,p){for(var f=0;f2){var y=D.shift()+".";return y+=parseInt(D.shift()).toString(16),y+=("000"+parseInt(D.shift()).toString(16)).substr(-4),y}return A},a.resolve=function(A,D){return h.buildAbsoluteURL(D,A,{alwaysNormalize:!0})},a.parseMasterPlaylist=function(A,D){var y=[],E={},_=!1;d.lastIndex=0;for(var L;(L=d.exec(A))!=null;)if(L[1]){var I=new p.AttrList(L[1]),b={attrs:I,bitrate:I.decimalInteger("AVERAGE-BANDWIDTH")||I.decimalInteger("BANDWIDTH"),name:I.NAME,url:a.resolve(L[2],D)},R=I.decimalResolution("RESOLUTION");R&&(b.width=R.width,b.height=R.height),i((I.CODECS||"").split(/[ ,]+/).filter(function(w){return w}),b),b.videoCodec&&b.videoCodec.indexOf("avc1")!==-1&&(b.videoCodec=a.convertAVC1ToAVCOTI(b.videoCodec)),y.push(b)}else if(L[3]){var P=new p.AttrList(L[3]);P["DATA-ID"]&&(_=!0,E[P["DATA-ID"]]=P)}return{levels:y,sessionData:_?E:null}},a.parseMasterPlaylistMedia=function(A,D,y,E){E===void 0&&(E=[]);var _,L=[],I=0;for(o.lastIndex=0;(_=o.exec(A))!==null;){var b=new p.AttrList(_[1]);if(b.TYPE===y){var R={attrs:b,bitrate:0,id:I++,groupId:b["GROUP-ID"],instreamId:b["INSTREAM-ID"],name:b.NAME||b.LANGUAGE||"",type:y,default:b.bool("DEFAULT"),autoselect:b.bool("AUTOSELECT"),forced:b.bool("FORCED"),lang:b.LANGUAGE,url:b.URI?a.resolve(b.URI,D):""};if(E.length){var P=a.findGroup(E,R.groupId)||E[0];e(R,P,"audioCodec"),e(R,P,"textCodec")}L.push(R)}}return L},a.parseLevelPlaylist=function(A,D,y,E,_){var L=new M.LevelDetails(D),I=L.fragments,b=null,R=0,P=0,w=0,F=0,k=null,B=new m.Fragment(E,D),U,j,K,N=-1,Z=!1;for(v.lastIndex=0,L.m3u8=A;(U=v.exec(A))!==null;){Z&&(Z=!1,B=new m.Fragment(E,D),B.start=w,B.sn=R,B.cc=F,B.level=y,b&&(B.initSegment=b,B.rawProgramDateTime=b.rawProgramDateTime));var X=U[1];if(X){B.duration=parseFloat(X);var Y=(" "+U[2]).slice(1);B.title=Y||null,B.tagList.push(Y?["INF",X,Y]:["INF",X])}else if(U[3])Object(S.isFiniteNumber)(B.duration)&&(B.start=w,K&&(B.levelkey=K),B.sn=R,B.level=y,B.cc=F,B.urlId=_,I.push(B),B.relurl=(" "+U[3]).slice(1),l(B,k),k=B,w+=B.duration,R++,P=0,Z=!0);else if(U[4]){var ee=(" "+U[4]).slice(1);k?B.setByteRange(ee,k):B.setByteRange(ee)}else if(U[5])B.rawProgramDateTime=(" "+U[5]).slice(1),B.tagList.push(["PROGRAM-DATE-TIME",B.rawProgramDateTime]),N===-1&&(N=I.length);else{if(U=U[0].match(c),!U){f.logger.warn("No matches on slow regex match for level playlist!");continue}for(j=1;j-1){f.logger.warn("Keyformat "+ue+" is not supported from the manifest");continue}else if(ue!=="identity")continue;J&&(K=T.LevelKey.fromURL(D,ae),ae&&["AES-128","SAMPLE-AES","SAMPLE-AES-CENC"].indexOf(J)>=0&&(K.method=J,K.keyFormat=ue,ve&&(K.keyID=ve),de&&(K.keyFormatVersions=de),K.iv=fe));break}case"START":{var he=new p.AttrList(G),ye=he.decimalFloatingPoint("TIME-OFFSET");Object(S.isFiniteNumber)(ye)&&(L.startTimeOffset=ye);break}case"MAP":{var W=new p.AttrList(G);B.relurl=W.URI,W.BYTERANGE&&B.setByteRange(W.BYTERANGE),B.level=y,B.sn="initSegment",K&&(B.levelkey=K),B.initSegment=null,b=B,Z=!0;break}case"SERVER-CONTROL":{var z=new p.AttrList(G);L.canBlockReload=z.bool("CAN-BLOCK-RELOAD"),L.canSkipUntil=z.optionalFloat("CAN-SKIP-UNTIL",0),L.canSkipDateRanges=L.canSkipUntil>0&&z.bool("CAN-SKIP-DATERANGES"),L.partHoldBack=z.optionalFloat("PART-HOLD-BACK",0),L.holdBack=z.optionalFloat("HOLD-BACK",0);break}case"PART-INF":{var V=new p.AttrList(G);L.partTarget=V.decimalFloatingPoint("PART-TARGET");break}case"PART":{var $=L.partList;$||($=L.partList=[]);var H=P>0?$[$.length-1]:void 0,re=P++,ce=new m.Part(new p.AttrList(G),B,D,re,H);$.push(ce),B.duration+=ce.duration;break}case"PRELOAD-HINT":{var me=new p.AttrList(G);L.preloadHint=me;break}case"RENDITION-REPORT":{var Ee=new p.AttrList(G);L.renditionReports=L.renditionReports||[],L.renditionReports.push(Ee);break}default:f.logger.warn("line parsed but not handled: "+U);break}}}k&&!k.relurl?(I.pop(),w-=k.duration,L.partList&&(L.fragmentHint=k)):L.partList&&(l(B,k),B.cc=F,L.fragmentHint=B);var Se=I.length,xe=I[0],Le=I[Se-1];if(w+=L.skippedSegments*L.targetduration,w>0&&Se&&Le){L.averagetargetduration=w/Se;var be=Le.sn;L.endSN=be!=="initSegment"?be:0,xe&&(L.startCC=xe.cc,xe.initSegment||L.fragments.every(function(Re){return Re.relurl&&r(Re.relurl)})&&(f.logger.warn("MP4 fragments found but no init segment (probably no MAP, incomplete M3U8), trying to fetch SIDX"),B=new m.Fragment(E,D),B.relurl=Le.relurl,B.level=y,B.sn="initSegment",xe.initSegment=B,L.needSidxRanges=!0))}else L.endSN=0,L.startCC=0;return L.fragmentHint&&(w+=L.fragmentHint.duration),L.totalduration=w,L.endCC=F,N>0&&s(I,N),L},a}();function i(a,g){["video","audio","text"].forEach(function(A){var D=a.filter(function(E){return Object(n.isCodecType)(E,A)});if(D.length){var y=D.filter(function(E){return E.lastIndexOf("avc1",0)===0||E.lastIndexOf("mp4a",0)===0});g[A+"Codec"]=y.length>0?y[0]:D[0],a=a.filter(function(E){return D.indexOf(E)===-1})}}),g.unknownCodecs=a}function e(a,g,A){var D=g[A];D&&(a[A]=D)}function s(a,g){for(var A=a[g],D=g;D--;){var y=a[D];if(!y)return;y.programDateTime=A.programDateTime-y.duration*1e3,A=y}}function l(a,g){a.rawProgramDateTime?a.programDateTime=Date.parse(a.rawProgramDateTime):g!=null&&g.programDateTime&&(a.programDateTime=g.endProgramDateTime),Object(S.isFiniteNumber)(a.programDateTime)||(a.programDateTime=null,a.rawProgramDateTime=null)}},"./src/loader/playlist-loader.ts":function(O,C,x){x.r(C);var S=x("./src/polyfills/number.ts"),h=x("./src/events.ts"),m=x("./src/errors.ts"),M=x("./src/utils/logger.ts"),T=x("./src/utils/mp4-tools.ts"),p=x("./src/loader/m3u8-parser.ts"),f=x("./src/types/loader.ts"),n=x("./src/utils/attr-list.ts");function d(c){var u=c.type;switch(u){case f.PlaylistContextType.AUDIO_TRACK:return f.PlaylistLevelType.AUDIO;case f.PlaylistContextType.SUBTITLE_TRACK:return f.PlaylistLevelType.SUBTITLE;default:return f.PlaylistLevelType.MAIN}}function o(c,u){var r=c.url;return(r===void 0||r.indexOf("data:")===0)&&(r=u.url),r}var v=function(){function c(r){this.hls=void 0,this.loaders=Object.create(null),this.hls=r,this.registerListeners()}var u=c.prototype;return u.registerListeners=function(){var t=this.hls;t.on(h.Events.MANIFEST_LOADING,this.onManifestLoading,this),t.on(h.Events.LEVEL_LOADING,this.onLevelLoading,this),t.on(h.Events.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),t.on(h.Events.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this)},u.unregisterListeners=function(){var t=this.hls;t.off(h.Events.MANIFEST_LOADING,this.onManifestLoading,this),t.off(h.Events.LEVEL_LOADING,this.onLevelLoading,this),t.off(h.Events.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),t.off(h.Events.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this)},u.createInternalLoader=function(t){var i=this.hls.config,e=i.pLoader,s=i.loader,l=e||s,a=new l(i);return t.loader=a,this.loaders[t.type]=a,a},u.getInternalLoader=function(t){return this.loaders[t.type]},u.resetInternalLoader=function(t){this.loaders[t]&&delete this.loaders[t]},u.destroyInternalLoaders=function(){for(var t in this.loaders){var i=this.loaders[t];i&&i.destroy(),this.resetInternalLoader(t)}},u.destroy=function(){this.unregisterListeners(),this.destroyInternalLoaders()},u.onManifestLoading=function(t,i){var e=i.url;this.load({id:null,groupId:null,level:0,responseType:"text",type:f.PlaylistContextType.MANIFEST,url:e,deliveryDirectives:null})},u.onLevelLoading=function(t,i){var e=i.id,s=i.level,l=i.url,a=i.deliveryDirectives;this.load({id:e,groupId:null,level:s,responseType:"text",type:f.PlaylistContextType.LEVEL,url:l,deliveryDirectives:a})},u.onAudioTrackLoading=function(t,i){var e=i.id,s=i.groupId,l=i.url,a=i.deliveryDirectives;this.load({id:e,groupId:s,level:null,responseType:"text",type:f.PlaylistContextType.AUDIO_TRACK,url:l,deliveryDirectives:a})},u.onSubtitleTrackLoading=function(t,i){var e=i.id,s=i.groupId,l=i.url,a=i.deliveryDirectives;this.load({id:e,groupId:s,level:null,responseType:"text",type:f.PlaylistContextType.SUBTITLE_TRACK,url:l,deliveryDirectives:a})},u.load=function(t){var i,e=this.hls.config,s=this.getInternalLoader(t);if(s){var l=s.context;if(l&&l.url===t.url){M.logger.trace("[playlist-loader]: playlist request ongoing");return}M.logger.log("[playlist-loader]: aborting previous loader for type: "+t.type),s.abort()}var a,g,A,D;switch(t.type){case f.PlaylistContextType.MANIFEST:a=e.manifestLoadingMaxRetry,g=e.manifestLoadingTimeOut,A=e.manifestLoadingRetryDelay,D=e.manifestLoadingMaxRetryTimeout;break;case f.PlaylistContextType.LEVEL:case f.PlaylistContextType.AUDIO_TRACK:case f.PlaylistContextType.SUBTITLE_TRACK:a=0,g=e.levelLoadingTimeOut;break;default:a=e.levelLoadingMaxRetry,g=e.levelLoadingTimeOut,A=e.levelLoadingRetryDelay,D=e.levelLoadingMaxRetryTimeout;break}if(s=this.createInternalLoader(t),(i=t.deliveryDirectives)!==null&&i!==void 0&&i.part){var y;if(t.type===f.PlaylistContextType.LEVEL&&t.level!==null?y=this.hls.levels[t.level].details:t.type===f.PlaylistContextType.AUDIO_TRACK&&t.id!==null?y=this.hls.audioTracks[t.id].details:t.type===f.PlaylistContextType.SUBTITLE_TRACK&&t.id!==null&&(y=this.hls.subtitleTracks[t.id].details),y){var E=y.partTarget,_=y.targetduration;E&&_&&(g=Math.min(Math.max(E*3,_*.8)*1e3,g))}}var L={timeout:g,maxRetry:a,retryDelay:A,maxRetryDelay:D,highWaterMark:0},I={onSuccess:this.loadsuccess.bind(this),onError:this.loaderror.bind(this),onTimeout:this.loadtimeout.bind(this)};s.load(t,L,I)},u.loadsuccess=function(t,i,e,s){if(s===void 0&&(s=null),e.isSidxRequest){this.handleSidxRequest(t,e),this.handlePlaylistLoaded(t,i,e,s);return}this.resetInternalLoader(e.type);var l=t.data;if(l.indexOf("#EXTM3U")!==0){this.handleManifestParsingError(t,e,"no EXTM3U delimiter",s);return}i.parsing.start=performance.now(),l.indexOf("#EXTINF:")>0||l.indexOf("#EXT-X-TARGETDURATION:")>0?this.handleTrackOrLevelPlaylist(t,i,e,s):this.handleMasterPlaylist(t,i,e,s)},u.loaderror=function(t,i,e){e===void 0&&(e=null),this.handleNetworkError(i,e,!1,t)},u.loadtimeout=function(t,i,e){e===void 0&&(e=null),this.handleNetworkError(i,e,!0)},u.handleMasterPlaylist=function(t,i,e,s){var l=this.hls,a=t.data,g=o(t,e),A=p.default.parseMasterPlaylist(a,g),D=A.levels,y=A.sessionData;if(!D.length){this.handleManifestParsingError(t,e,"no level found in manifest",s);return}var E=D.map(function(P){return{id:P.attrs.AUDIO,audioCodec:P.audioCodec}}),_=D.map(function(P){return{id:P.attrs.SUBTITLES,textCodec:P.textCodec}}),L=p.default.parseMasterPlaylistMedia(a,g,"AUDIO",E),I=p.default.parseMasterPlaylistMedia(a,g,"SUBTITLES",_),b=p.default.parseMasterPlaylistMedia(a,g,"CLOSED-CAPTIONS");if(L.length){var R=L.some(function(P){return!P.url});!R&&D[0].audioCodec&&!D[0].attrs.AUDIO&&(M.logger.log("[playlist-loader]: audio codec signaled in quality level, but no embedded audio track signaled, create one"),L.unshift({type:"main",name:"main",default:!1,autoselect:!1,forced:!1,id:-1,attrs:new n.AttrList({}),bitrate:0,url:""}))}l.trigger(h.Events.MANIFEST_LOADED,{levels:D,audioTracks:L,subtitles:I,captions:b,url:g,stats:i,networkDetails:s,sessionData:y})},u.handleTrackOrLevelPlaylist=function(t,i,e,s){var l=this.hls,a=e.id,g=e.level,A=e.type,D=o(t,e),y=Object(S.isFiniteNumber)(a)?a:0,E=Object(S.isFiniteNumber)(g)?g:y,_=d(e),L=p.default.parseLevelPlaylist(t.data,D,E,_,y);if(!L.fragments.length){l.trigger(h.Events.ERROR,{type:m.ErrorTypes.NETWORK_ERROR,details:m.ErrorDetails.LEVEL_EMPTY_ERROR,fatal:!1,url:D,reason:"no fragments found in level",level:typeof e.level=="number"?e.level:void 0});return}if(A===f.PlaylistContextType.MANIFEST){var I={attrs:new n.AttrList({}),bitrate:0,details:L,name:"",url:D};l.trigger(h.Events.MANIFEST_LOADED,{levels:[I],audioTracks:[],url:D,stats:i,networkDetails:s,sessionData:null})}if(i.parsing.end=performance.now(),L.needSidxRanges){var b,R=(b=L.fragments[0].initSegment)===null||b===void 0?void 0:b.url;this.load({url:R,isSidxRequest:!0,type:A,level:g,levelDetails:L,id:a,groupId:null,rangeStart:0,rangeEnd:2048,responseType:"arraybuffer",deliveryDirectives:null});return}e.levelDetails=L,this.handlePlaylistLoaded(t,i,e,s)},u.handleSidxRequest=function(t,i){var e=Object(T.parseSegmentIndex)(new Uint8Array(t.data));if(!!e){var s=e.references,l=i.levelDetails;s.forEach(function(a,g){var A=a.info,D=l.fragments[g];D.byteRange.length===0&&D.setByteRange(String(1+A.end-A.start)+"@"+String(A.start)),D.initSegment&&D.initSegment.setByteRange(String(e.moovEndOffset)+"@0")})}},u.handleManifestParsingError=function(t,i,e,s){this.hls.trigger(h.Events.ERROR,{type:m.ErrorTypes.NETWORK_ERROR,details:m.ErrorDetails.MANIFEST_PARSING_ERROR,fatal:i.type===f.PlaylistContextType.MANIFEST,url:t.url,reason:e,response:t,context:i,networkDetails:s})},u.handleNetworkError=function(t,i,e,s){e===void 0&&(e=!1),M.logger.warn("[playlist-loader]: A network "+(e?"timeout":"error")+" occurred while loading "+t.type+" level: "+t.level+" id: "+t.id+' group-id: "'+t.groupId+'"');var l=m.ErrorDetails.UNKNOWN,a=!1,g=this.getInternalLoader(t);switch(t.type){case f.PlaylistContextType.MANIFEST:l=e?m.ErrorDetails.MANIFEST_LOAD_TIMEOUT:m.ErrorDetails.MANIFEST_LOAD_ERROR,a=!0;break;case f.PlaylistContextType.LEVEL:l=e?m.ErrorDetails.LEVEL_LOAD_TIMEOUT:m.ErrorDetails.LEVEL_LOAD_ERROR,a=!1;break;case f.PlaylistContextType.AUDIO_TRACK:l=e?m.ErrorDetails.AUDIO_TRACK_LOAD_TIMEOUT:m.ErrorDetails.AUDIO_TRACK_LOAD_ERROR,a=!1;break;case f.PlaylistContextType.SUBTITLE_TRACK:l=e?m.ErrorDetails.SUBTITLE_TRACK_LOAD_TIMEOUT:m.ErrorDetails.SUBTITLE_LOAD_ERROR,a=!1;break}g&&this.resetInternalLoader(t.type);var A={type:m.ErrorTypes.NETWORK_ERROR,details:l,fatal:a,url:t.url,loader:g,context:t,networkDetails:i};s&&(A.response=s),this.hls.trigger(h.Events.ERROR,A)},u.handlePlaylistLoaded=function(t,i,e,s){var l=e.type,a=e.level,g=e.id,A=e.groupId,D=e.loader,y=e.levelDetails,E=e.deliveryDirectives;if(!(y!=null&&y.targetduration)){this.handleManifestParsingError(t,e,"invalid target duration",s);return}if(!!D)switch(y.live&&(D.getCacheAge&&(y.ageHeader=D.getCacheAge()||0),(!D.getCacheAge||isNaN(y.ageHeader))&&(y.ageHeader=0)),l){case f.PlaylistContextType.MANIFEST:case f.PlaylistContextType.LEVEL:this.hls.trigger(h.Events.LEVEL_LOADED,{details:y,level:a||0,id:g||0,stats:i,networkDetails:s,deliveryDirectives:E});break;case f.PlaylistContextType.AUDIO_TRACK:this.hls.trigger(h.Events.AUDIO_TRACK_LOADED,{details:y,id:g||0,groupId:A||"",stats:i,networkDetails:s,deliveryDirectives:E});break;case f.PlaylistContextType.SUBTITLE_TRACK:this.hls.trigger(h.Events.SUBTITLE_TRACK_LOADED,{details:y,id:g||0,groupId:A||"",stats:i,networkDetails:s,deliveryDirectives:E});break}},c}();C.default=v},"./src/polyfills/number.ts":function(O,C,x){x.r(C),x.d(C,"isFiniteNumber",function(){return S}),x.d(C,"MAX_SAFE_INTEGER",function(){return h});var S=Number.isFinite||function(m){return typeof m=="number"&&isFinite(m)},h=Number.MAX_SAFE_INTEGER||9007199254740991},"./src/remux/aac-helper.ts":function(O,C,x){x.r(C);var S=function(){function h(){}return h.getSilentFrame=function(M,T){switch(M){case"mp4a.40.2":if(T===1)return new Uint8Array([0,200,0,128,35,128]);if(T===2)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(T===3)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);if(T===4)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);if(T===5)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,56]);if(T===6)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,0,178,0,32,8,224]);break;default:if(T===1)return new Uint8Array([1,64,34,128,163,78,230,128,186,8,0,0,0,28,6,241,193,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(T===2)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(T===3)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);break}},h}();C.default=S},"./src/remux/mp4-generator.ts":function(O,C,x){x.r(C);var S=Math.pow(2,32)-1,h=function(){function m(){}return m.init=function(){m.types={avc1:[],avcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],".mp3":[],mvex:[],mvhd:[],pasp:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[]};var T;for(T in m.types)m.types.hasOwnProperty(T)&&(m.types[T]=[T.charCodeAt(0),T.charCodeAt(1),T.charCodeAt(2),T.charCodeAt(3)]);var p=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),f=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]);m.HDLR_TYPES={video:p,audio:f};var n=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),d=new Uint8Array([0,0,0,0,0,0,0,0]);m.STTS=m.STSC=m.STCO=d,m.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),m.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0]),m.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),m.STSD=new Uint8Array([0,0,0,0,0,0,0,1]);var o=new Uint8Array([105,115,111,109]),v=new Uint8Array([97,118,99,49]),c=new Uint8Array([0,0,0,1]);m.FTYP=m.box(m.types.ftyp,o,c,o,v),m.DINF=m.box(m.types.dinf,m.box(m.types.dref,n))},m.box=function(T){for(var p=8,f=arguments.length,n=new Array(f>1?f-1:0),d=1;d>24&255,c[1]=p>>16&255,c[2]=p>>8&255,c[3]=p&255,c.set(T,4),o=0,p=8;o>24&255,T>>16&255,T>>8&255,T&255,f>>24,f>>16&255,f>>8&255,f&255,n>>24,n>>16&255,n>>8&255,n&255,85,196,0,0]))},m.mdia=function(T){return m.box(m.types.mdia,m.mdhd(T.timescale,T.duration),m.hdlr(T.type),m.minf(T))},m.mfhd=function(T){return m.box(m.types.mfhd,new Uint8Array([0,0,0,0,T>>24,T>>16&255,T>>8&255,T&255]))},m.minf=function(T){return T.type==="audio"?m.box(m.types.minf,m.box(m.types.smhd,m.SMHD),m.DINF,m.stbl(T)):m.box(m.types.minf,m.box(m.types.vmhd,m.VMHD),m.DINF,m.stbl(T))},m.moof=function(T,p,f){return m.box(m.types.moof,m.mfhd(T),m.traf(f,p))},m.moov=function(T){for(var p=T.length,f=[];p--;)f[p]=m.trak(T[p]);return m.box.apply(null,[m.types.moov,m.mvhd(T[0].timescale,T[0].duration)].concat(f).concat(m.mvex(T)))},m.mvex=function(T){for(var p=T.length,f=[];p--;)f[p]=m.trex(T[p]);return m.box.apply(null,[m.types.mvex].concat(f))},m.mvhd=function(T,p){p*=T;var f=Math.floor(p/(S+1)),n=Math.floor(p%(S+1)),d=new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,T>>24&255,T>>16&255,T>>8&255,T&255,f>>24,f>>16&255,f>>8&255,f&255,n>>24,n>>16&255,n>>8&255,n&255,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]);return m.box(m.types.mvhd,d)},m.sdtp=function(T){var p=T.samples||[],f=new Uint8Array(4+p.length),n,d;for(n=0;n>>8&255),p.push(o&255),p=p.concat(Array.prototype.slice.call(d));for(n=0;n>>8&255),f.push(o&255),f=f.concat(Array.prototype.slice.call(d));var v=m.box(m.types.avcC,new Uint8Array([1,p[3],p[4],p[5],255,224|T.sps.length].concat(p).concat([T.pps.length]).concat(f))),c=T.width,u=T.height,r=T.pixelRatio[0],t=T.pixelRatio[1];return m.box(m.types.avc1,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,c>>8&255,c&255,u>>8&255,u&255,0,72,0,0,0,72,0,0,0,0,0,0,0,1,18,100,97,105,108,121,109,111,116,105,111,110,47,104,108,115,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),v,m.box(m.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),m.box(m.types.pasp,new Uint8Array([r>>24,r>>16&255,r>>8&255,r&255,t>>24,t>>16&255,t>>8&255,t&255])))},m.esds=function(T){var p=T.config.length;return new Uint8Array([0,0,0,0,3,23+p,0,1,0,4,15+p,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([p]).concat(T.config).concat([6,1,2]))},m.mp4a=function(T){var p=T.samplerate;return m.box(m.types.mp4a,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,T.channelCount,0,16,0,0,0,0,p>>8&255,p&255,0,0]),m.box(m.types.esds,m.esds(T)))},m.mp3=function(T){var p=T.samplerate;return m.box(m.types[".mp3"],new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,T.channelCount,0,16,0,0,0,0,p>>8&255,p&255,0,0]))},m.stsd=function(T){return T.type==="audio"?!T.isAAC&&T.codec==="mp3"?m.box(m.types.stsd,m.STSD,m.mp3(T)):m.box(m.types.stsd,m.STSD,m.mp4a(T)):m.box(m.types.stsd,m.STSD,m.avc1(T))},m.tkhd=function(T){var p=T.id,f=T.duration*T.timescale,n=T.width,d=T.height,o=Math.floor(f/(S+1)),v=Math.floor(f%(S+1));return m.box(m.types.tkhd,new Uint8Array([1,0,0,7,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,p>>24&255,p>>16&255,p>>8&255,p&255,0,0,0,0,o>>24,o>>16&255,o>>8&255,o&255,v>>24,v>>16&255,v>>8&255,v&255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,n>>8&255,n&255,0,0,d>>8&255,d&255,0,0]))},m.traf=function(T,p){var f=m.sdtp(T),n=T.id,d=Math.floor(p/(S+1)),o=Math.floor(p%(S+1));return m.box(m.types.traf,m.box(m.types.tfhd,new Uint8Array([0,0,0,0,n>>24,n>>16&255,n>>8&255,n&255])),m.box(m.types.tfdt,new Uint8Array([1,0,0,0,d>>24,d>>16&255,d>>8&255,d&255,o>>24,o>>16&255,o>>8&255,o&255])),m.trun(T,f.length+16+20+8+16+8+8),f)},m.trak=function(T){return T.duration=T.duration||4294967295,m.box(m.types.trak,m.tkhd(T),m.mdia(T))},m.trex=function(T){var p=T.id;return m.box(m.types.trex,new Uint8Array([0,0,0,0,p>>24,p>>16&255,p>>8&255,p&255,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]))},m.trun=function(T,p){var f=T.samples||[],n=f.length,d=12+16*n,o=new Uint8Array(d),v,c,u,r,t,i;for(p+=8+d,o.set([0,0,15,1,n>>>24&255,n>>>16&255,n>>>8&255,n&255,p>>>24&255,p>>>16&255,p>>>8&255,p&255],0),v=0;v>>24&255,u>>>16&255,u>>>8&255,u&255,r>>>24&255,r>>>16&255,r>>>8&255,r&255,t.isLeading<<2|t.dependsOn,t.isDependedOn<<6|t.hasRedundancy<<4|t.paddingValue<<1|t.isNonSync,t.degradPrio&240<<8,t.degradPrio&15,i>>>24&255,i>>>16&255,i>>>8&255,i&255],12+16*v);return m.box(m.types.trun,o)},m.initSegment=function(T){m.types||m.init();var p=m.moov(T),f=new Uint8Array(m.FTYP.byteLength+p.byteLength);return f.set(m.FTYP),f.set(p,m.FTYP.byteLength),f},m}();h.types=void 0,h.HDLR_TYPES=void 0,h.STTS=void 0,h.STSC=void 0,h.STCO=void 0,h.STSZ=void 0,h.VMHD=void 0,h.SMHD=void 0,h.STSD=void 0,h.FTYP=void 0,h.DINF=void 0,C.default=h},"./src/remux/mp4-remuxer.ts":function(O,C,x){x.r(C),x.d(C,"default",function(){return i}),x.d(C,"normalizePts",function(){return e});var S=x("./src/polyfills/number.ts"),h=x("./src/remux/aac-helper.ts"),m=x("./src/remux/mp4-generator.ts"),M=x("./src/events.ts"),T=x("./src/errors.ts"),p=x("./src/utils/logger.ts"),f=x("./src/types/loader.ts"),n=x("./src/utils/timescale-conversion.ts");function d(){return d=Object.assign||function(g){for(var A=1;A0?L:I.pts},y[0].pts);return E&&p.logger.debug("PTS rollover detected"),_},A.remux=function(y,E,_,L,I,b,R,P){var w,F,k,B,U,j,K=I,N=I,Z=y.pid>-1,X=E.pid>-1,Y=E.samples.length,ee=y.samples.length>0,Q=Y>1,G=(!Z||ee)&&(!X||Q)||this.ISGenerated||R;if(G){this.ISGenerated||(k=this.generateIS(y,E,I));var q=this.isVideoContiguous,te=-1;if(Q&&(te=s(E.samples),!q&&this.config.forceKeyFrameOnDiscontinuity))if(j=!0,te>0){p.logger.warn("[mp4-remuxer]: Dropped "+te+" out of "+Y+" video samples due to a missing keyframe");var ie=this.getVideoStartPts(E.samples);E.samples=E.samples.slice(te),E.dropped+=te,N+=(E.samples[0].pts-ie)/(E.timescale||9e4)}else te===-1&&(p.logger.warn("[mp4-remuxer]: No keyframe found out of "+Y+" video samples"),j=!1);if(this.ISGenerated){if(ee&&Q){var ne=this.getVideoStartPts(E.samples),le=e(y.samples[0].pts,ne)-ne,se=le/E.inputTimeScale;K+=Math.max(0,se),N+=Math.max(0,-se)}if(ee){if(y.samplerate||(p.logger.warn("[mp4-remuxer]: regenerate InitSegment as audio detected"),k=this.generateIS(y,E,I)),F=this.remuxAudio(y,K,this.isAudioContiguous,b,X||Q||P===f.PlaylistLevelType.AUDIO?N:void 0),Q){var oe=F?F.endPTS-F.startPTS:0;E.inputTimeScale||(p.logger.warn("[mp4-remuxer]: regenerate InitSegment as video detected"),k=this.generateIS(y,E,I)),w=this.remuxVideo(E,N,q,oe)}}else Q&&(w=this.remuxVideo(E,N,q,0));w&&(w.firstKeyFrame=te,w.independent=te!==-1)}}return this.ISGenerated&&(_.samples.length&&(U=this.remuxID3(_,I)),L.samples.length&&(B=this.remuxText(L,I))),{audio:F,video:w,initSegment:k,independent:j,text:B,id3:U}},A.generateIS=function(y,E,_){var L=y.samples,I=E.samples,b=this.typeSupported,R={},P=!Object(S.isFiniteNumber)(this._initPTS),w="audio/mp4",F,k,B;if(P&&(F=k=1/0),y.config&&L.length&&(y.timescale=y.samplerate,y.isAAC||(b.mpeg?(w="audio/mpeg",y.codec=""):b.mp3&&(y.codec="mp3")),R.audio={id:"audio",container:w,codec:y.codec,initSegment:!y.isAAC&&b.mpeg?new Uint8Array(0):m.default.initSegment([y]),metadata:{channelCount:y.channelCount}},P&&(B=y.inputTimeScale,F=k=L[0].pts-Math.round(B*_))),E.sps&&E.pps&&I.length&&(E.timescale=E.inputTimeScale,R.video={id:"main",container:"video/mp4",codec:E.codec,initSegment:m.default.initSegment([E]),metadata:{width:E.width,height:E.height}},P)){B=E.inputTimeScale;var U=this.getVideoStartPts(I),j=Math.round(B*_);k=Math.min(k,e(I[0].dts,U)-j),F=Math.min(F,U-j)}if(Object.keys(R).length)return this.ISGenerated=!0,P&&(this._initPTS=F,this._initDTS=k),{tracks:R,initPTS:F,timescale:B}},A.remuxVideo=function(y,E,_,L){var I=y.inputTimeScale,b=y.samples,R=[],P=b.length,w=this._initPTS,F=this.nextAvcDts,k=8,B,U,j,K=Number.POSITIVE_INFINITY,N=Number.NEGATIVE_INFINITY,Z=0,X=!1;if(!_||F===null){var Y=E*I,ee=b[0].pts-e(b[0].dts,b[0].pts);F=Y-ee}for(var Q=0;QG.pts){var q=18e3;Z=Math.max(Math.min(Z,G.pts-G.dts),-1*q)}G.dts0?Q-1:Q].dts&&(X=!0)}X&&b.sort(function(Pe,Be){var Ze=Pe.dts-Be.dts,Qe=Pe.pts-Be.pts;return Ze||Qe}),U=b[0].dts,j=b[b.length-1].dts;var te=Math.round((j-U)/(P-1));if(Z<0){if(Zte,J=se<-1;if(oe||J){oe?p.logger.warn("AVC: "+Object(n.toMsFromMpegTsClock)(se,!0)+" ms ("+se+"dts) hole between fragments detected, filling it"):p.logger.warn("AVC: "+Object(n.toMsFromMpegTsClock)(-se,!0)+" ms ("+se+"dts) overlapping between fragments detected"),U=F;var ae=b[0].pts-se;b[0].dts=U,b[0].pts=ae,p.logger.log("Video: First PTS/DTS adjusted: "+Object(n.toMsFromMpegTsClock)(ae,!0)+"/"+Object(n.toMsFromMpegTsClock)(U,!0)+", delta: "+Object(n.toMsFromMpegTsClock)(se,!0)+" ms")}}t&&(U=Math.max(0,U));for(var fe=0,de=0,ve=0;ve0?H-1:H].dts;if(Re.stretchShortVideoTrack&&this.nextAudioPts!==null){var Ge=Math.floor(Re.maxBufferHole*I),Ce=(L?K+L*I:this.nextAudioPts)-re.pts;Ce>Ge?(B=Ce-Oe,B<0&&(B=Oe),p.logger.log("[mp4-remuxer]: It is approximately "+Ce/90+" ms to the next segment; using duration "+B/90+" ms for the last video frame.")):B=Oe}else B=Oe}var ze=Math.round(re.pts-re.dts);R.push(new l(re.key,B,me,ze))}if(R.length&&u&&u<70){var ke=R[0].flags;ke.dependsOn=2,ke.isNonSync=0}console.assert(B!==void 0,"mp4SampleDuration must be computed"),this.nextAvcDts=F=j+B,this.isVideoContiguous=!0;var Ve=m.default.moof(y.sequenceNumber++,U,d({},y,{samples:R})),He="video",Ye={data1:Ve,data2:V,startPTS:K/I,endPTS:(N+B)/I,startDTS:U/I,endDTS:F/I,type:He,hasAudio:!1,hasVideo:!0,nb:R.length,dropped:y.dropped};return y.samples=[],y.dropped=0,console.assert(V.length,"MDAT length must not be zero"),Ye},A.remuxAudio=function(y,E,_,L,I){var b=y.inputTimeScale,R=y.samplerate?y.samplerate:b,P=b/R,w=y.isAAC?v:c,F=w*P,k=this._initPTS,B=!y.isAAC&&this.typeSupported.mpeg,U=[],j=y.samples,K=B?0:8,N=this.nextAudioPts||-1,Z=E*b;if(this.isAudioContiguous=_=_||j.length&&N>0&&(L&&Math.abs(Z-N)<9e3||Math.abs(e(j[0].pts-k,Z)-N)<20*F),j.forEach(function(Le){Le.pts=e(Le.pts-k,Z)}),!_||N<0){if(j=j.filter(function(Le){return Le.pts>=0}),!j.length)return;I===0?N=0:L?N=Math.max(0,Z):N=j[0].pts}if(y.isAAC)for(var X=I!==void 0,Y=this.config.maxAudioFramesDrift,ee=0,Q=N;ee=Y*F&&ie0){de+=K;try{fe=new Uint8Array(de)}catch{this.observer.emit(M.Events.ERROR,M.Events.ERROR,{type:T.ErrorTypes.MUX_ERROR,details:T.ErrorDetails.REMUX_ALLOC_ERROR,fatal:!1,bytes:de,reason:"fail allocating audio mdat "+de});return}if(!B){var V=new DataView(fe.buffer);V.setUint32(0,de),fe.set(m.default.types.mdat,4)}}else return;fe.set(ye,K);var $=ye.byteLength;K+=$,U.push(new l(!0,w,$,0)),ae=W}var H=U.length;if(!!H){var re=U[U.length-1];this.nextAudioPts=N=ae+P*re.duration;var ce=B?new Uint8Array(0):m.default.moof(y.sequenceNumber++,J/P,d({},y,{samples:U}));y.samples=[];var me=J/b,Ee=N/b,Se="audio",xe={data1:ce,data2:fe,startPTS:me,endPTS:Ee,startDTS:me,endDTS:Ee,type:Se,hasAudio:!0,hasVideo:!1,nb:H};return this.isAudioContiguous=!0,console.assert(fe.length,"MDAT length must not be zero"),xe}},A.remuxEmptyAudio=function(y,E,_,L){var I=y.inputTimeScale,b=y.samplerate?y.samplerate:I,R=I/b,P=this.nextAudioPts,w=(P!==null?P:L.startDTS*I)+this._initDTS,F=L.endDTS*I+this._initDTS,k=R*v,B=Math.ceil((F-w)/k),U=h.default.getSilentFrame(y.manifestCodec||y.codec,y.channelCount);if(p.logger.warn("[mp4-remuxer]: remux empty Audio"),!U){p.logger.trace("[mp4-remuxer]: Unable to remuxEmptyAudio since we were unable to get a silent frame for given audio codec");return}for(var j=[],K=0;K4294967296;)g+=D;return g}function s(g){for(var A=0;A0?this.lastEndDTS=y:(M.logger.warn("Duration parsed from mp4 should be greater than zero"),this.resetNextTimestamp());var E=!!g.audio,_=!!g.video,L="";E&&(L+="audio"),_&&(L+="video");var I={data1:l,startPTS:D,startDTS:D,endPTS:y,endDTS:y,type:L,hasAudio:E,hasVideo:_,nb:1,dropped:0};return s.audio=I.type==="audio"?I:void 0,s.video=I.type!=="audio"?I:void 0,s.text=r,s.id3=u,s.initSegment=a,s},n}(),p=function(d,o,v){return Object(h.getStartDTS)(d,o)-v};function f(n,d){var o=n==null?void 0:n.codec;return o&&o.length>4?o:o==="hvc1"?"hvc1.1.c.L120.90":o==="av01"?"av01.0.04M.08":o==="avc1"||d===m.ElementaryStreamTypes.VIDEO?"avc1.42e01e":"mp4a.40.5"}C.default=T},"./src/task-loop.ts":function(O,C,x){x.r(C),x.d(C,"default",function(){return S});var S=function(){function h(){this._boundTick=void 0,this._tickTimer=null,this._tickInterval=null,this._tickCallCount=0,this._boundTick=this.tick.bind(this)}var m=h.prototype;return m.destroy=function(){this.onHandlerDestroying(),this.onHandlerDestroyed()},m.onHandlerDestroying=function(){this.clearNextTick(),this.clearInterval()},m.onHandlerDestroyed=function(){},m.hasInterval=function(){return!!this._tickInterval},m.hasNextTick=function(){return!!this._tickTimer},m.setInterval=function(T){return this._tickInterval?!1:(this._tickInterval=self.setInterval(this._boundTick,T),!0)},m.clearInterval=function(){return this._tickInterval?(self.clearInterval(this._tickInterval),this._tickInterval=null,!0):!1},m.clearNextTick=function(){return this._tickTimer?(self.clearTimeout(this._tickTimer),this._tickTimer=null,!0):!1},m.tick=function(){this._tickCallCount++,this._tickCallCount===1&&(this.doTick(),this._tickCallCount>1&&this.tickImmediate(),this._tickCallCount=0)},m.tickImmediate=function(){this.clearNextTick(),this._tickTimer=self.setTimeout(this._boundTick,0)},m.doTick=function(){},h}()},"./src/types/cmcd.ts":function(O,C,x){x.r(C),x.d(C,"CMCDVersion",function(){return S}),x.d(C,"CMCDObjectType",function(){return h}),x.d(C,"CMCDStreamingFormat",function(){return m}),x.d(C,"CMCDStreamType",function(){return M});var S=1,h;(function(T){T.MANIFEST="m",T.AUDIO="a",T.VIDEO="v",T.MUXED="av",T.INIT="i",T.CAPTION="c",T.TIMED_TEXT="tt",T.KEY="k",T.OTHER="o"})(h||(h={}));var m;(function(T){T.DASH="d",T.HLS="h",T.SMOOTH="s",T.OTHER="o"})(m||(m={}));var M;(function(T){T.VOD="v",T.LIVE="l"})(M||(M={}))},"./src/types/level.ts":function(O,C,x){x.r(C),x.d(C,"HlsSkip",function(){return m}),x.d(C,"getSkipValue",function(){return M}),x.d(C,"HlsUrlParameters",function(){return T}),x.d(C,"Level",function(){return p});function S(f,n){for(var d=0;dNumber.MAX_SAFE_INTEGER?1/0:n},T.hexadecimalInteger=function(f){if(this[f]){var n=(this[f]||"0x").slice(2);n=(n.length&1?"0":"")+n;for(var d=new Uint8Array(n.length/2),o=0;oNumber.MAX_SAFE_INTEGER?1/0:n},T.decimalFloatingPoint=function(f){return parseFloat(this[f])},T.optionalFloat=function(f,n){var d=this[f];return d?parseFloat(d):n},T.enumeratedString=function(f){return this[f]},T.bool=function(f){return this[f]==="YES"},T.decimalResolution=function(f){var n=S.exec(this[f]);if(n!==null)return{width:parseInt(n[1],10),height:parseInt(n[2],10)}},M.parseAttrList=function(f){var n,d={},o='"';for(h.lastIndex=0;(n=h.exec(f))!==null;){var v=n[2];v.indexOf(o)===0&&v.lastIndexOf(o)===v.length-1&&(v=v.slice(1,-1)),d[n[1]]=v}return d},M}()},"./src/utils/binary-search.ts":function(O,C,x){x.r(C);var S={search:function(m,M){for(var T=0,p=m.length-1,f=null,n=null;T<=p;){f=(T+p)/2|0,n=m[f];var d=M(n);if(d>0)T=f+1;else if(d<0)p=f-1;else return n}return null}};C.default=S},"./src/utils/buffer-helper.ts":function(O,C,x){x.r(C),x.d(C,"BufferHelper",function(){return m});var S=x("./src/utils/logger.ts"),h={length:0,start:function(){return 0},end:function(){return 0}},m=function(){function M(){}return M.isBuffered=function(p,f){try{if(p){for(var n=M.getBuffered(p),d=0;d=n.start(d)&&f<=n.end(d))return!0}}catch{}return!1},M.bufferInfo=function(p,f,n){try{if(p){var d=M.getBuffered(p),o=[],v;for(v=0;vc&&(d[v-1].end=p[o].end):d.push(p[o])}else d.push(p[o])}else d=p;for(var u=0,r,t=f,i=f,e=0;e=s&&f=_&&S.logger.log(this.time+" ["+_+"] "+L)},D}(),u=function(y){for(var E=[],_=0;_T&&(this.logger.log(v.DEBUG,"Too large cursor position "+this.pos),this.pos=T)},y.moveCursor=function(_){var L=this.pos+_;if(_>1)for(var I=this.pos+1;I=144&&this.backSpace();var L=m(_);if(this.pos>=T){this.logger.log(v.ERROR,"Cannot insert "+_.toString(16)+" ("+L+") at position "+this.pos+". Skipping it!");return}this.chars[this.pos].setChar(L,this.currPenState),this.moveCursor(1)},y.clearFromPos=function(_){var L;for(L=_;L0&&(_?I="["+L.join(" | ")+"]":I=L.join(` +`)),I},y.getTextAndFormat=function(){return this.rows},D}(),s=function(){function D(E,_,L){this.chNr=void 0,this.outputFilter=void 0,this.mode=void 0,this.verbose=void 0,this.displayedMemory=void 0,this.nonDisplayedMemory=void 0,this.lastOutputScreen=void 0,this.currRollUpRow=void 0,this.writeScreen=void 0,this.cueStartTime=void 0,this.logger=void 0,this.chNr=E,this.outputFilter=_,this.mode=null,this.verbose=0,this.displayedMemory=new e(L),this.nonDisplayedMemory=new e(L),this.lastOutputScreen=new e(L),this.currRollUpRow=this.displayedMemory.rows[M-1],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null,this.logger=L}var y=D.prototype;return y.reset=function(){this.mode=null,this.displayedMemory.reset(),this.nonDisplayedMemory.reset(),this.lastOutputScreen.reset(),this.outputFilter.reset(),this.currRollUpRow=this.displayedMemory.rows[M-1],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null},y.getHandler=function(){return this.outputFilter},y.setHandler=function(_){this.outputFilter=_},y.setPAC=function(_){this.writeScreen.setPAC(_)},y.setBkgData=function(_){this.writeScreen.setBkgData(_)},y.setMode=function(_){_!==this.mode&&(this.mode=_,this.logger.log(v.INFO,"MODE="+_),this.mode==="MODE_POP-ON"?this.writeScreen=this.nonDisplayedMemory:(this.writeScreen=this.displayedMemory,this.writeScreen.reset()),this.mode!=="MODE_ROLL-UP"&&(this.displayedMemory.nrRollUpRows=null,this.nonDisplayedMemory.nrRollUpRows=null),this.mode=_)},y.insertChars=function(_){for(var L=0;L<_.length;L++)this.writeScreen.insertChar(_[L]);var I=this.writeScreen===this.displayedMemory?"DISP":"NON_DISP";this.logger.log(v.INFO,I+": "+this.writeScreen.getDisplayText(!0)),(this.mode==="MODE_PAINT-ON"||this.mode==="MODE_ROLL-UP")&&(this.logger.log(v.TEXT,"DISPLAYED: "+this.displayedMemory.getDisplayText(!0)),this.outputDataUpdate())},y.ccRCL=function(){this.logger.log(v.INFO,"RCL - Resume Caption Loading"),this.setMode("MODE_POP-ON")},y.ccBS=function(){this.logger.log(v.INFO,"BS - BackSpace"),this.mode!=="MODE_TEXT"&&(this.writeScreen.backSpace(),this.writeScreen===this.displayedMemory&&this.outputDataUpdate())},y.ccAOF=function(){},y.ccAON=function(){},y.ccDER=function(){this.logger.log(v.INFO,"DER- Delete to End of Row"),this.writeScreen.clearToEndOfRow(),this.outputDataUpdate()},y.ccRU=function(_){this.logger.log(v.INFO,"RU("+_+") - Roll Up"),this.writeScreen=this.displayedMemory,this.setMode("MODE_ROLL-UP"),this.writeScreen.setRollUpRows(_)},y.ccFON=function(){this.logger.log(v.INFO,"FON - Flash On"),this.writeScreen.setPen({flash:!0})},y.ccRDC=function(){this.logger.log(v.INFO,"RDC - Resume Direct Captioning"),this.setMode("MODE_PAINT-ON")},y.ccTR=function(){this.logger.log(v.INFO,"TR"),this.setMode("MODE_TEXT")},y.ccRTD=function(){this.logger.log(v.INFO,"RTD"),this.setMode("MODE_TEXT")},y.ccEDM=function(){this.logger.log(v.INFO,"EDM - Erase Displayed Memory"),this.displayedMemory.reset(),this.outputDataUpdate(!0)},y.ccCR=function(){this.logger.log(v.INFO,"CR - Carriage Return"),this.writeScreen.rollUp(),this.outputDataUpdate(!0)},y.ccENM=function(){this.logger.log(v.INFO,"ENM - Erase Non-displayed Memory"),this.nonDisplayedMemory.reset()},y.ccEOC=function(){if(this.logger.log(v.INFO,"EOC - End Of Caption"),this.mode==="MODE_POP-ON"){var _=this.displayedMemory;this.displayedMemory=this.nonDisplayedMemory,this.nonDisplayedMemory=_,this.writeScreen=this.nonDisplayedMemory,this.logger.log(v.TEXT,"DISP: "+this.displayedMemory.getDisplayText())}this.outputDataUpdate(!0)},y.ccTO=function(_){this.logger.log(v.INFO,"TO("+_+") - Tab Offset"),this.writeScreen.moveCursor(_)},y.ccMIDROW=function(_){var L={flash:!1};if(L.underline=_%2===1,L.italics=_>=46,L.italics)L.foreground="white";else{var I=Math.floor(_/2)-16,b=["white","green","blue","cyan","red","yellow","magenta"];L.foreground=b[I]}this.logger.log(v.INFO,"MIDROW: "+JSON.stringify(L)),this.writeScreen.setPen(L)},y.outputDataUpdate=function(_){_===void 0&&(_=!1);var L=this.logger.time;L!==null&&this.outputFilter&&(this.cueStartTime===null&&!this.displayedMemory.isEmpty()?this.cueStartTime=L:this.displayedMemory.equals(this.lastOutputScreen)||(this.outputFilter.newCue(this.cueStartTime,L,this.lastOutputScreen),_&&this.outputFilter.dispatchCue&&this.outputFilter.dispatchCue(),this.cueStartTime=this.displayedMemory.isEmpty()?null:L),this.lastOutputScreen.copy(this.displayedMemory))},y.cueSplitAtTime=function(_){this.outputFilter&&(this.displayedMemory.isEmpty()||(this.outputFilter.newCue&&this.outputFilter.newCue(this.cueStartTime,_,this.displayedMemory),this.cueStartTime=_))},D}(),l=function(){function D(E,_,L){this.channels=void 0,this.currentChannel=0,this.cmdHistory=void 0,this.logger=void 0;var I=new c;this.channels=[null,new s(E,_,I),new s(E+1,L,I)],this.cmdHistory=A(),this.logger=I}var y=D.prototype;return y.getHandler=function(_){return this.channels[_].getHandler()},y.setHandler=function(_,L){this.channels[_].setHandler(L)},y.addData=function(_,L){var I,b,R,P=!1;this.logger.time=_;for(var w=0;w ("+u([b,R])+")"),I=this.parseCmd(b,R),I||(I=this.parseMidrow(b,R)),I||(I=this.parsePAC(b,R)),I||(I=this.parseBackgroundAttributes(b,R)),!I&&(P=this.parseChars(b,R),P)){var F=this.currentChannel;if(F&&F>0){var k=this.channels[F];k.insertChars(P)}else this.logger.log(v.WARNING,"No channel found yet. TEXT-MODE?")}!I&&!P&&this.logger.log(v.WARNING,"Couldn't parse cleaned data "+u([b,R])+" orig: "+u([L[w],L[w+1]]))}},y.parseCmd=function(_,L){var I=this.cmdHistory,b=(_===20||_===28||_===21||_===29)&&L>=32&&L<=47,R=(_===23||_===31)&&L>=33&&L<=35;if(!(b||R))return!1;if(g(_,L,I))return a(null,null,I),this.logger.log(v.DEBUG,"Repeated command ("+u([_,L])+") is dropped"),!0;var P=_===20||_===21||_===23?1:2,w=this.channels[P];return _===20||_===21||_===28||_===29?L===32?w.ccRCL():L===33?w.ccBS():L===34?w.ccAOF():L===35?w.ccAON():L===36?w.ccDER():L===37?w.ccRU(2):L===38?w.ccRU(3):L===39?w.ccRU(4):L===40?w.ccFON():L===41?w.ccRDC():L===42?w.ccTR():L===43?w.ccRTD():L===44?w.ccEDM():L===45?w.ccCR():L===46?w.ccENM():L===47&&w.ccEOC():w.ccTO(L-32),a(_,L,I),this.currentChannel=P,!0},y.parseMidrow=function(_,L){var I=0;if((_===17||_===25)&&L>=32&&L<=47){if(_===17?I=1:I=2,I!==this.currentChannel)return this.logger.log(v.ERROR,"Mismatch channel in midrow parsing"),!1;var b=this.channels[I];return b?(b.ccMIDROW(L),this.logger.log(v.DEBUG,"MIDROW ("+u([_,L])+")"),!0):!1}return!1},y.parsePAC=function(_,L){var I,b=this.cmdHistory,R=(_>=17&&_<=23||_>=25&&_<=31)&&L>=64&&L<=127,P=(_===16||_===24)&&L>=64&&L<=95;if(!(R||P))return!1;if(g(_,L,b))return a(null,null,b),!0;var w=_<=23?1:2;L>=64&&L<=95?I=w===1?p[_]:n[_]:I=w===1?f[_]:d[_];var F=this.channels[w];return F?(F.setPAC(this.interpretPAC(I,L)),a(_,L,b),this.currentChannel=w,!0):!1},y.interpretPAC=function(_,L){var I,b={color:null,italics:!1,indent:null,underline:!1,row:_};return L>95?I=L-96:I=L-64,b.underline=(I&1)===1,I<=13?b.color=["white","green","blue","cyan","red","yellow","magenta","white"][Math.floor(I/2)]:I<=15?(b.italics=!0,b.color="white"):b.indent=Math.floor((I-16)/2)*4,b},y.parseChars=function(_,L){var I,b=null,R=null;if(_>=25?(I=2,R=_-8):(I=1,R=_),R>=17&&R<=19){var P;R===17?P=L+80:R===18?P=L+112:P=L+144,this.logger.log(v.INFO,"Special char '"+m(P)+"' in channel "+I),b=[P]}else _>=32&&_<=127&&(b=L===0?[_]:[_,L]);if(b){var w=u(b);this.logger.log(v.DEBUG,"Char codes = "+w.join(",")),a(_,L,this.cmdHistory)}return b},y.parseBackgroundAttributes=function(_,L){var I=(_===16||_===24)&&L>=32&&L<=47,b=(_===23||_===31)&&L>=45&&L<=47;if(!(I||b))return!1;var R,P={};_===16||_===24?(R=Math.floor((L-32)/2),P.background=o[R],L%2===1&&(P.background=P.background+"_semi")):L===45?P.background="transparent":(P.foreground="black",L===47&&(P.underline=!0));var w=_<=23?1:2,F=this.channels[w];return F.setBkgData(P),a(_,L,this.cmdHistory),!0},y.reset=function(){for(var _=0;_=16?t--:t++;var a=Object(S.fixLineBreaks)(i.trim()),g=Object(h.generateCueId)(n,d,a);(!f||!f.cues||!f.cues.getCueById(g))&&(u=new e(n,d,a),u.id=g,u.line=s+1,u.align="left",u.position=10+Math.min(80,Math.floor(t*8/32)*10),v.push(u))}return f&&v.length&&(v.sort(function(A,D){return A.line==="auto"||D.line==="auto"?0:A.line>8&&D.line>8?D.line-A.line:A.line-D.line}),v.forEach(function(A){return Object(m.addCueToTrack)(f,A)})),v}};C.default=T},"./src/utils/discontinuities.ts":function(O,C,x){x.r(C),x.d(C,"findFirstFragWithCC",function(){return M}),x.d(C,"shouldAlignOnDiscontinuities",function(){return T}),x.d(C,"findDiscontinuousReferenceFrag",function(){return p}),x.d(C,"adjustSlidingStart",function(){return n}),x.d(C,"alignStream",function(){return d}),x.d(C,"alignPDT",function(){return v}),x.d(C,"alignFragmentByPDTDelta",function(){return c}),x.d(C,"alignMediaPlaylistByPDT",function(){return u});var S=x("./src/polyfills/number.ts"),h=x("./src/utils/logger.ts"),m=x("./src/controller/level-helper.ts");function M(r,t){for(var i=null,e=0,s=r.length;ei.startCC||r&&r.cc=this.minWeight_},M.getEstimate=function(){return this.canEstimate()?Math.min(this.fast_.getEstimate(),this.slow_.getEstimate()):this.defaultEstimate_},M.destroy=function(){},m}();C.default=h},"./src/utils/ewma.ts":function(O,C,x){x.r(C);var S=function(){function h(M,T,p){T===void 0&&(T=0),p===void 0&&(p=0),this.halfLife=void 0,this.alpha_=void 0,this.estimate_=void 0,this.totalWeight_=void 0,this.halfLife=M,this.alpha_=M?Math.exp(Math.log(.5)/M):0,this.estimate_=T,this.totalWeight_=p}var m=h.prototype;return m.sample=function(T,p){var f=Math.pow(this.alpha_,T);this.estimate_=p*(1-f)+f*this.estimate_,this.totalWeight_+=T},m.getTotalWeight=function(){return this.totalWeight_},m.getEstimate=function(){if(this.alpha_){var T=1-Math.pow(this.alpha_,this.totalWeight_);if(T)return this.estimate_/T}return this.estimate_},h}();C.default=S},"./src/utils/fetch-loader.ts":function(O,C,x){x.r(C),x.d(C,"fetchSupported",function(){return c});var S=x("./src/polyfills/number.ts"),h=x("./src/loader/load-stats.ts"),m=x("./src/demux/chunk-cache.ts");function M(e,s){e.prototype=Object.create(s.prototype),e.prototype.constructor=e,d(e,s)}function T(e){var s=typeof Map=="function"?new Map:void 0;return T=function(a){if(a===null||!n(a))return a;if(typeof a!="function")throw new TypeError("Super expression must either be null or a function");if(typeof s!="undefined"){if(s.has(a))return s.get(a);s.set(a,g)}function g(){return p(a,arguments,o(this).constructor)}return g.prototype=Object.create(a.prototype,{constructor:{value:g,enumerable:!1,writable:!0,configurable:!0}}),d(g,a)},T(e)}function p(e,s,l){return f()?p=Reflect.construct:p=function(g,A,D){var y=[null];y.push.apply(y,A);var E=Function.bind.apply(g,y),_=new E;return D&&d(_,D.prototype),_},p.apply(null,arguments)}function f(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function n(e){return Function.toString.call(e).indexOf("[native code]")!==-1}function d(e,s){return d=Object.setPrototypeOf||function(a,g){return a.__proto__=g,a},d(e,s)}function o(e){return o=Object.setPrototypeOf?Object.getPrototypeOf:function(l){return l.__proto__||Object.getPrototypeOf(l)},o(e)}function v(){return v=Object.assign||function(e){for(var s=1;s=D&&y(g,A,E.flush(),a)):y(g,A,R,a),I()}).catch(function(){return Promise.reject()})};return L()},e}();function r(e,s){var l={method:"GET",mode:"cors",credentials:"same-origin",signal:s,headers:new self.Headers(v({},e.headers))};return e.rangeEnd&&l.headers.set("Range","bytes="+e.rangeStart+"-"+String(e.rangeEnd-1)),l}function t(e,s){return new self.Request(e.url,s)}var i=function(e){M(s,e);function s(l,a,g){var A;return A=e.call(this,l)||this,A.code=void 0,A.details=void 0,A.code=a,A.details=g,A}return s}(T(Error));C.default=u},"./src/utils/imsc1-ttml-parser.ts":function(O,C,x){x.r(C),x.d(C,"IMSC1_CODEC",function(){return n}),x.d(C,"parseIMSC1",function(){return c});var S=x("./src/utils/mp4-tools.ts"),h=x("./src/utils/vttparser.ts"),m=x("./src/utils/vttcue.ts"),M=x("./src/demux/id3.ts"),T=x("./src/utils/timescale-conversion.ts"),p=x("./src/utils/webvtt-parser.ts");function f(){return f=Object.assign||function(D){for(var y=1;y"):S}function T(n){for(var d=arguments.length,o=new Array(d>1?d-1:0),v=1;v>24,s[l+1]=a>>16&255,s[l+2]=a>>8&255,s[l+3]=a&255}function d(s,l){var a=[];if(!l.length)return a;var g,A,D;"data"in s?(g=s.data,A=s.start,D=s.end):(g=s,A=0,D=g.byteLength);for(var y=A;y1?y+E:D;if(_===l[0])if(l.length===1)a.push({data:g,start:y+8,end:L});else{var I=d({data:g,start:y+8,end:L},l.slice(1));I.length&&M.apply(a,I)}y=L}return a}function o(s){var l=d(s,["moov"]),a=l[0],g=a?a.end:null,A=d(s,["sidx"]);if(!A||!A[0])return null;var D=[],y=A[0],E=y.data[0],_=E===0?8:16,L=f(y,_);_+=4;var I=0,b=0;E===0?_+=8:_+=16,_+=2;var R=y.end+b,P=p(y,_);_+=2;for(var w=0;w>>31;if(U===1)return console.warn("SIDX has hierarchical references (not supported)"),null;var j=f(y,F);F+=4,D.push({referenceSize:B,subsegmentDuration:j,info:{duration:j/L,start:R,end:R+B-1}}),R+=B,F+=4,_=F}return{earliestPresentationTime:I,timescale:L,version:E,referencesCount:P,references:D,moovEndOffset:g}}function v(s){for(var l=[],a=d(s,["moov","trak"]),g=0;gT)&&(this.startTime=T),this.endTime=p,this.screen=f,this.timelineController.createCaptionsTrack(this.trackName)},m.reset=function(){this.cueRanges=[],this.startTime=null},h}()},"./src/utils/texttrack-utils.ts":function(O,C,x){x.r(C),x.d(C,"sendAddTrackEvent",function(){return h}),x.d(C,"addCueToTrack",function(){return m}),x.d(C,"clearCurrentCues",function(){return M}),x.d(C,"removeCuesInRange",function(){return T}),x.d(C,"getCuesInRange",function(){return f});var S=x("./src/utils/logger.ts");function h(n,d){var o;try{o=new Event("addtrack")}catch{o=document.createEvent("Event"),o.initEvent("addtrack",!1,!1)}o.track=n,d.dispatchEvent(o)}function m(n,d){var o=n.mode;if(o==="disabled"&&(n.mode="hidden"),n.cues&&!n.cues.getCueById(d.id))try{if(n.addCue(d),!n.cues.getCueById(d.id))throw new Error("addCue is failed for: "+d)}catch(c){S.logger.debug("[texttrack-utils]: "+c);var v=new self.TextTrackCue(d.startTime,d.endTime,d.text);v.id=d.id,n.addCue(v)}o==="disabled"&&(n.mode=o)}function M(n){var d=n.mode;if(d==="disabled"&&(n.mode="hidden"),n.cues)for(var o=n.cues.length;o--;)n.removeCue(n.cues[o]);d==="disabled"&&(n.mode=d)}function T(n,d,o){var v=n.mode;if(v==="disabled"&&(n.mode="hidden"),n.cues&&n.cues.length>0)for(var c=f(n.cues,d,o),u=0;un[o].endTime)return-1;for(var v=0,c=o;v<=c;){var u=Math.floor((c+v)/2);if(dn[u].startTime&&v-1)for(var u=c,r=n.length;u=d&&t.endTime<=o)v.push(t);else if(t.startTime>o)return v}return v}},"./src/utils/time-ranges.ts":function(O,C,x){x.r(C);var S={toString:function(m){for(var M="",T=m.length,p=0;p1?d-1:0),v=1;v100)throw new Error("Position must be between 0 and 100.");D=I,this.hasBeenReset=!0}})),Object.defineProperty(v,"positionAlign",p({},c,{get:function(){return y},set:function(I){var b=T(I);if(!b)throw new SyntaxError("An invalid or illegal string was specified.");y=b,this.hasBeenReset=!0}})),Object.defineProperty(v,"size",p({},c,{get:function(){return E},set:function(I){if(I<0||I>100)throw new Error("Size must be between 0 and 100.");E=I,this.hasBeenReset=!0}})),Object.defineProperty(v,"align",p({},c,{get:function(){return _},set:function(I){var b=T(I);if(!b)throw new SyntaxError("An invalid or illegal string was specified.");_=b,this.hasBeenReset=!0}})),v.displayState=void 0}return f.prototype.getCueAsHTML=function(){var n=self.WebVTT;return n.convertCueToDOMTree(self,this.text)},f}()},"./src/utils/vttparser.ts":function(O,C,x){x.r(C),x.d(C,"parseTimeStamp",function(){return m}),x.d(C,"fixLineBreaks",function(){return d}),x.d(C,"VTTParser",function(){return o});var S=x("./src/utils/vttcue.ts"),h=function(){function v(){}var c=v.prototype;return c.decode=function(r,t){if(!r)return"";if(typeof r!="string")throw new Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(r))},v}();function m(v){function c(r,t,i,e){return(r|0)*3600+(t|0)*60+(i|0)+parseFloat(e||0)}var u=v.match(/^(?:(\d+):)?(\d{2}):(\d{2})(\.\d+)?/);return u?parseFloat(u[2])>59?c(u[2],u[3],0,u[4]):c(u[1],u[2],u[3],u[4]):null}var M=function(){function v(){this.values=Object.create(null)}var c=v.prototype;return c.set=function(r,t){!this.get(r)&&t!==""&&(this.values[r]=t)},c.get=function(r,t,i){return i?this.has(r)?this.values[r]:t[i]:this.has(r)?this.values[r]:t},c.has=function(r){return r in this.values},c.alt=function(r,t,i){for(var e=0;e=0&&i<=100)return this.set(r,i),!0}return!1},v}();function T(v,c,u,r){var t=r?v.split(r):[v];for(var i in t)if(typeof t[i]=="string"){var e=t[i].split(u);if(e.length===2){var s=e[0],l=e[1];c(s,l)}}}var p=new S.default(0,0,""),f=p.align==="middle"?"middle":"center";function n(v,c,u){var r=v;function t(){var s=m(v);if(s===null)throw new Error("Malformed timestamp: "+r);return v=v.replace(/^[^\sa-zA-Z-]+/,""),s}function i(s,l){var a=new M;T(s,function(D,y){var E;switch(D){case"region":for(var _=u.length-1;_>=0;_--)if(u[_].id===y){a.set(D,u[_].region);break}break;case"vertical":a.alt(D,y,["rl","lr"]);break;case"line":E=y.split(","),a.integer(D,E[0]),a.percent(D,E[0])&&a.set("snapToLines",!1),a.alt(D,E[0],["auto"]),E.length===2&&a.alt("lineAlign",E[1],["start",f,"end"]);break;case"position":E=y.split(","),a.percent(D,E[0]),E.length===2&&a.alt("positionAlign",E[1],["start",f,"end","line-left","line-right","auto"]);break;case"size":a.percent(D,y);break;case"align":a.alt(D,y,["start",f,"end","left","right"]);break}},/:/,/\s/),l.region=a.get("region",null),l.vertical=a.get("vertical","");var g=a.get("line","auto");g==="auto"&&p.line===-1&&(g=-1),l.line=g,l.lineAlign=a.get("lineAlign","start"),l.snapToLines=a.get("snapToLines",!0),l.size=a.get("size",100),l.align=a.get("align",f);var A=a.get("position","auto");A==="auto"&&p.position===50&&(A=l.align==="start"||l.align==="left"?0:l.align==="end"||l.align==="right"?100:50),l.position=A}function e(){v=v.replace(/^\s+/,"")}if(e(),c.startTime=t(),e(),v.substr(0,3)!=="-->")throw new Error("Malformed time stamp (time stamps must be separated by '-->'): "+r);v=v.substr(3),e(),c.endTime=t(),e(),i(v,c)}function d(v){return v.replace(//gi,` +`)}var o=function(){function v(){this.state="INITIAL",this.buffer="",this.decoder=new h,this.regionList=[],this.cue=null,this.oncue=void 0,this.onparsingerror=void 0,this.onflush=void 0}var c=v.prototype;return c.parse=function(r){var t=this;r&&(t.buffer+=t.decoder.decode(r,{stream:!0}));function i(){var A=t.buffer,D=0;for(A=d(A);D")===-1){t.cue.id=s;continue}case"CUE":if(!t.cue){t.state="BADCUE";continue}try{n(s,t.cue,t.regionList)}catch{t.cue=null,t.state="BADCUE";continue}t.state="CUETEXT";continue;case"CUETEXT":{var g=s.indexOf("-->")!==-1;if(!s||g&&(a=!0)){t.oncue&&t.cue&&t.oncue(t.cue),t.cue=null,t.state="ID";continue}if(t.cue===null)continue;t.cue.text&&(t.cue.text+=` +`),t.cue.text+=s}continue;case"BADCUE":s||(t.state="ID")}}}catch{t.state==="CUETEXT"&&t.cue&&t.oncue&&t.oncue(t.cue),t.cue=null,t.state=t.state==="INITIAL"?"BADWEBVTT":"BADCUE"}return this},c.flush=function(){var r=this;try{if((r.cue||r.state==="HEADER")&&(r.buffer+=` + +`,r.parse()),r.state==="INITIAL"||r.state==="BADWEBVTT")throw new Error("Malformed WebVTT signature.")}catch(t){r.onparsingerror&&r.onparsingerror(t)}return r.onflush&&r.onflush(),this},v}()},"./src/utils/webvtt-parser.ts":function(O,C,x){x.r(C),x.d(C,"generateCueId",function(){return o}),x.d(C,"parseWebVTT",function(){return c});var S=x("./src/polyfills/number.ts"),h=x("./src/utils/vttparser.ts"),m=x("./src/demux/id3.ts"),M=x("./src/utils/timescale-conversion.ts"),T=x("./src/remux/mp4-remuxer.ts"),p=/\r\n|\n\r|\n|\r/g,f=function(r,t,i){return i===void 0&&(i=0),r.substr(i,t.length)===t},n=function(r){var t=parseInt(r.substr(-3)),i=parseInt(r.substr(-6,2)),e=parseInt(r.substr(-9,2)),s=r.length>9?parseInt(r.substr(0,r.indexOf(":"))):0;if(!Object(S.isFiniteNumber)(t)||!Object(S.isFiniteNumber)(i)||!Object(S.isFiniteNumber)(e)||!Object(S.isFiniteNumber)(s))throw Error("Malformed X-TIMESTAMP-MAP: Local:"+r);return t+=1e3*i,t+=60*1e3*e,t+=60*60*1e3*s,t},d=function(r){for(var t=5381,i=r.length;i;)t=t*33^r.charCodeAt(--i);return(t>>>0).toString()};function o(u,r,t){return d(u.toString())+d(r.toString())+d(t)}var v=function(r,t,i){var e=r[t],s=r[e.prevCC];if(!s||!s.new&&e.new){r.ccOffset=r.presentationOffset=e.start,e.new=!1;return}for(;(l=s)!==null&&l!==void 0&&l.new;){var l;r.ccOffset+=e.start-s.start,e.new=!1,e=s,s=r[e.prevCC]}r.presentationOffset=i};function c(u,r,t,i,e,s,l,a){var g=new h.VTTParser,A=Object(m.utf8ArrayToStr)(new Uint8Array(u)).trim().replace(p,` +`).split(` +`),D=[],y=Object(M.toMpegTsClockFromTimescale)(r,t),E="00:00.000",_=0,L=0,I,b=!0,R=!1;g.oncue=function(P){var w=i[e],F=i.ccOffset,k=(_-y)/9e4;if(w!=null&&w.new&&(L!==void 0?F=i.ccOffset=w.start:v(i,e,k)),k&&(F=k-i.presentationOffset),R){var B=P.endTime-P.startTime,U=Object(T.normalizePts)((P.startTime+F-L)*9e4,s*9e4)/9e4;P.startTime=U,P.endTime=U+B}var j=P.text.trim();P.text=decodeURIComponent(encodeURIComponent(j)),P.id||(P.id=o(P.startTime,P.endTime,j)),P.endTime>0&&D.push(P)},g.onparsingerror=function(P){I=P},g.onflush=function(){if(I){a(I);return}l(D)},A.forEach(function(P){if(b)if(f(P,"X-TIMESTAMP-MAP=")){b=!1,R=!0,P.substr(16).split(",").forEach(function(w){f(w,"LOCAL:")?E=w.substr(6):f(w,"MPEGTS:")&&(_=parseInt(w.substr(7)))});try{L=n(E)/1e3}catch(w){R=!1,I=w}return}else P===""&&(b=!1);g.parse(P+` +`)}),g.flush()}},"./src/utils/xhr-loader.ts":function(O,C,x){x.r(C);var S=x("./src/utils/logger.ts"),h=x("./src/loader/load-stats.ts"),m=/^age:\s*[\d.]+\s*$/m,M=function(){function T(f){this.xhrSetup=void 0,this.requestTimeout=void 0,this.retryTimeout=void 0,this.retryDelay=void 0,this.config=null,this.callbacks=null,this.context=void 0,this.loader=null,this.stats=void 0,this.xhrSetup=f?f.xhrSetup:null,this.stats=new h.LoadStats,this.retryDelay=0}var p=T.prototype;return p.destroy=function(){this.callbacks=null,this.abortInternal(),this.loader=null,this.config=null},p.abortInternal=function(){var n=this.loader;self.clearTimeout(this.requestTimeout),self.clearTimeout(this.retryTimeout),n&&(n.onreadystatechange=null,n.onprogress=null,n.readyState!==4&&(this.stats.aborted=!0,n.abort()))},p.abort=function(){var n;this.abortInternal(),(n=this.callbacks)!==null&&n!==void 0&&n.onAbort&&this.callbacks.onAbort(this.stats,this.context,this.loader)},p.load=function(n,d,o){if(this.stats.loading.start)throw new Error("Loader can only be used once.");this.stats.loading.start=self.performance.now(),this.context=n,this.config=d,this.callbacks=o,this.retryDelay=d.retryDelay,this.loadInternal()},p.loadInternal=function(){var n=this.config,d=this.context;if(!!n){var o=this.loader=new self.XMLHttpRequest,v=this.stats;v.loading.first=0,v.loaded=0;var c=this.xhrSetup;try{if(c)try{c(o,d.url)}catch{o.open("GET",d.url,!0),c(o,d.url)}o.readyState||o.open("GET",d.url,!0);var u=this.context.headers;if(u)for(var r in u)o.setRequestHeader(r,u[r])}catch(t){this.callbacks.onError({code:o.status,text:t.message},d,o);return}d.rangeEnd&&o.setRequestHeader("Range","bytes="+d.rangeStart+"-"+(d.rangeEnd-1)),o.onreadystatechange=this.readystatechange.bind(this),o.onprogress=this.loadprogress.bind(this),o.responseType=d.responseType,self.clearTimeout(this.requestTimeout),this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),n.timeout),o.send()}},p.readystatechange=function(){var n=this.context,d=this.loader,o=this.stats;if(!(!n||!d)){var v=d.readyState,c=this.config;if(!o.aborted&&v>=2)if(self.clearTimeout(this.requestTimeout),o.loading.first===0&&(o.loading.first=Math.max(self.performance.now(),o.loading.start)),v===4){d.onreadystatechange=null,d.onprogress=null;var u=d.status;if(u>=200&&u<300){o.loading.end=Math.max(self.performance.now(),o.loading.first);var r,t;if(n.responseType==="arraybuffer"?(r=d.response,t=r.byteLength):(r=d.responseText,t=r.length),o.loaded=o.total=t,!this.callbacks)return;var i=this.callbacks.onProgress;if(i&&i(o,n,r,d),!this.callbacks)return;var e={url:d.responseURL,data:r};this.callbacks.onSuccess(e,o,n,d)}else o.retry>=c.maxRetry||u>=400&&u<499?(S.logger.error(u+" while loading "+n.url),this.callbacks.onError({code:u,text:d.statusText},n,d)):(S.logger.warn(u+" while loading "+n.url+", retrying in "+this.retryDelay+"..."),this.abortInternal(),this.loader=null,self.clearTimeout(this.retryTimeout),this.retryTimeout=self.setTimeout(this.loadInternal.bind(this),this.retryDelay),this.retryDelay=Math.min(2*this.retryDelay,c.maxRetryDelay),o.retry++)}else self.clearTimeout(this.requestTimeout),this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),c.timeout)}},p.loadtimeout=function(){S.logger.warn("timeout while loading "+this.context.url);var n=this.callbacks;n&&(this.abortInternal(),n.onTimeout(this.stats,this.context,this.loader))},p.loadprogress=function(n){var d=this.stats;d.loaded=n.loaded,n.lengthComputable&&(d.total=n.total)},p.getCacheAge=function(){var n=null;if(this.loader&&m.test(this.loader.getAllResponseHeaders())){var d=this.loader.getResponseHeader("age");n=d?parseFloat(d):null}return n},T}();C.default=M}}).default})})(We);var pt=Fe(We.exports);const Ae=Te=>(tt("data-v-79e0af22"),Te=Te(),rt(),Te),gt=Ae(()=>pe("div",{class:"artplayer-app"},null,-1)),mt={class:"zfile-video-tools"},yt=Me(" \u76F4\u63A5\u4E0B\u8F7D "),Et=Ae(()=>pe("img",{src:nt,alt:"\u4E0B\u8F7D"},null,-1)),xt=Me(" \u4F7F\u7528\u8FC5\u96F7\u4E0B\u8F7D "),_t=Ae(()=>pe("img",{src:st,alt:"\u8FC5\u96F7"},null,-1)),Tt=Me(" \u4F7F\u7528 motrix \u4E0B\u8F7D "),St=Ae(()=>pe("img",{src:at,alt:"motrix"},null,-1)),Lt=Me(" \u4F7F\u7528 PotPlayer \u64AD\u653E "),At=Ae(()=>pe("img",{src:ot,alt:"PotPlayer"},null,-1)),Dt=Me(" \u4F7F\u7528 IINA \u64AD\u653E "),Mt=Ae(()=>pe("img",{src:lt,alt:"IINA"},null,-1)),It=Me(" \u4F7F\u7528 VLC \u64AD\u653E "),bt=Ae(()=>pe("img",{src:ut,alt:"VLC"},null,-1)),Rt=Me(" \u4F7F\u7528 nPlayer \u64AD\u653E "),Ot=Ae(()=>pe("img",{src:ft,alt:"nPlayer"},null,-1)),Ct=Me(" \u4F7F\u7528 MXPlayer(Free) \u64AD\u653E "),Pt=Ae(()=>pe("img",{src:dt,alt:"MXPlayer(Free)"},null,-1)),wt=Me(" \u4F7F\u7528 MXPlayer(Pro) \u64AD\u653E "),Ft=Ae(()=>pe("img",{src:ct,alt:"MXPlayer(Pro)"},null,-1)),kt=Ae(()=>pe("div",{class:"zfile-video-tools-tips"}," tips: \u53EF\u70B9\u51FB\u4E0A\u65B9\u7684\u8F6F\u4EF6\u56FE\u6807\u8FDB\u884C\u4E0B\u8F7D\u64AD\u653E, \u672C\u5730\u64AD\u653E\u5668\u89E3\u7801\u6548\u679C\u66F4\u4F73. ",-1)),Bt={__name:"VideoPlayer",setup(Te){let Ie=it();const O=c=>{let u=[];return Ie.filterFileByType("video").forEach(r=>{u.push({default:r.name===c,html:r.name,url:r.url})}),u};let C;const x=c=>{switch(c){case"download":window.location=C.url;break;case"thunder":window.location=`thunder://${btoa("AA"+C.url+"ZZ")}`;break;case"motrix":window.location=`motrix://new-task?uri=${encodeURIComponent(C.url)}&out=${encodeURIComponent(C.name)}`;break;case"potplayer":window.location=`potplayer://${C.url}`;break;case"iina":window.location=`iina://weblink?url=${encodeURIComponent(C.url)}`;break;case"vlc":window.location=`vlc://${C.url}`;break;case"nplayer":window.location=`nplayer-${C.url}`;break;case"mxplayer":window.location="intent:"+C.url+"#Intent;package=com.mxtech.videoplayer.ad;S.title="+C.name+";end";break;case"mxplayer-pro":window.location="intent:"+C.url+"#Intent;package=com.mxtech.videoplayer.pro;S.title="+C.name+";end";break}},S=c=>{let u=Ie.filterFileByType("video");h();for(let r=0;r{let c=JSON.parse(localStorage.getItem("_h5_player_play_progress_"));if(c){for(let u of Object.keys(c))u.endsWith(c[u].progress)&&delete c[u];localStorage.setItem("_h5_player_play_progress_",JSON.stringify(c))}},m=c=>{let u=[];return Ie.fileList.find((r,t)=>{let i=r.name.toLowerCase();(i===c+".vtt"||i===c+".srt"||i===c+".ass")&&u.push({default:u.length===0,url:r.url,html:i})}),u.length>0&&u.push({url:"",html:"\u5173\u95ED\u5B57\u5E55"}),u};let M='',T=` + + +`,p='',f='';const n=Ue("zfile-video-auto-player-next",!1),d=Ue("zfile-video-auto-player",!1);let o=null;const v=(c,u)=>{C={name:c,url:u},document.querySelector(".zfile-video-dialog .el-dialog__title").innerHTML=c,o&&o.destroy();let r={container:".artplayer-app",title:c,url:u,setting:!0,playbackRate:!0,flip:!0,fullscreen:!0,aspectRatio:!0,fullscreenWeb:!0,theme:"#23ade5",subtitleOffset:!0,miniProgressBar:!0,autoplay:d.value,moreVideoAttr:{crossOrigin:"anonymous"},customType:{flv:function(i,e){const s=vt.createPlayer({type:"flv",url:e});s.attachMediaElement(i),s.load()},m3u8:function(i,e){let s=new pt;s.loadSource(e),s.attachMedia(i)}},contextmenu:[{html:"\u4E0B\u8F7D",click:function(){window.open(u)}}],settings:[{html:"\u81EA\u52A8\u64AD\u653E",tooltip:d.value?"\u5F00\u542F":"\u5173\u95ED",icon:'',switch:d.value,onSwitch:function(i,e,s){console.info(i,e,s);const l=!i.switch;return d.value=l,o.autoplay=l,i.tooltip=l?"\u5F00\u542F":"\u5173\u95ED",l}},{html:"\u81EA\u52A8\u64AD\u653E\u4E0B\u4E00\u4E2A\u89C6\u9891",tooltip:n.value?"\u5F00\u542F":"\u5173\u95ED",icon:'',switch:n.value,onSwitch:function(i,e,s){console.info(i,e,s);const l=!i.switch;return n.value=l,i.tooltip=l?"\u5F00\u542F":"\u5173\u95ED",l}}],controls:[{name:"video-list",position:"right",html:M,selector:O(c),onSelect:function(i,e){return v(i.html,i.url),M}}]},t=m(c);t.length>0&&t.length>1&&r.controls.push({name:"video-subtitle",position:"right",html:T,selector:t,onSelect:i=>(i.html==="\u5173\u95ED\u5B57\u5E55"?o.subtitle.show=!1:(o.subtitle.show=!0,o.subtitle.url=i.url),T)}),o=new ht(r),o.on("destory",()=>{debugger}),o.on("ready",()=>{let i=S(o.option.title);i.prev&&o.controls.add({name:"prev-video",position:"left",index:5,tooltip:"\u64AD\u653E\u4E0A\u4E00\u4E2A",html:f,click:()=>{v(i.prev.name,i.prev.url)}}),i.next&&o.controls.add({name:"next-video",position:"left",index:15,tooltip:"\u64AD\u653E\u4E0B\u4E00\u4E2A",html:p,click:()=>{v(i.next.name,i.next.url)}})}),o.on("video:ended",()=>{if(n.value){const i=S(o.option.title).next;i&&v(i.name,i.url)}}),t.length>0&&(o.subtitle.url=t[0].url)};return Je(()=>{v(Ie.currentClickRow.name,Ie.currentClickRow.url)}),(c,u)=>{const r=Xe;return qe(),et("div",null,[gt,pe("div",mt,[pe("div",{class:"zfile-video-tools-item",onClick:u[0]||(u[0]=t=>x("download"))},[De(r,{placement:"top"},{content:ge(()=>[yt]),default:ge(()=>[Et]),_:1})]),pe("div",{class:"zfile-video-tools-item",onClick:u[1]||(u[1]=t=>x("thunder"))},[De(r,{placement:"top"},{content:ge(()=>[xt]),default:ge(()=>[_t]),_:1})]),pe("div",{class:"zfile-video-tools-item",onClick:u[2]||(u[2]=t=>x("motrix"))},[De(r,{placement:"top"},{content:ge(()=>[Tt]),default:ge(()=>[St]),_:1})]),pe("div",{class:"zfile-video-tools-item",onClick:u[3]||(u[3]=t=>x("potplayer"))},[De(r,{placement:"top"},{content:ge(()=>[Lt]),default:ge(()=>[At]),_:1})]),pe("div",{class:"zfile-video-tools-item",onClick:u[4]||(u[4]=t=>x("iina"))},[De(r,{placement:"top"},{content:ge(()=>[Dt]),default:ge(()=>[Mt]),_:1})]),pe("div",{class:"zfile-video-tools-item",onClick:u[5]||(u[5]=t=>x("vlc"))},[De(r,{placement:"top"},{content:ge(()=>[It]),default:ge(()=>[bt]),_:1})]),pe("div",{class:"zfile-video-tools-item",onClick:u[6]||(u[6]=t=>x("nplayer"))},[De(r,{placement:"top"},{content:ge(()=>[Rt]),default:ge(()=>[Ot]),_:1})]),pe("div",{class:"zfile-video-tools-item",onClick:u[7]||(u[7]=t=>x("mxplayer"))},[De(r,{placement:"top"},{content:ge(()=>[Ct]),default:ge(()=>[Pt]),_:1})]),pe("div",{class:"zfile-video-tools-item",onClick:u[8]||(u[8]=t=>x("mxplayer-pro"))},[De(r,{placement:"top"},{content:ge(()=>[wt]),default:ge(()=>[Ft]),_:1})])]),kt])}}};var tr=$e(Bt,[["__scopeId","data-v-79e0af22"]]);export{tr as default}; diff --git a/src/main/resources/static/assets/ZFormItem.7698444e.css b/src/main/resources/static/assets/ZFormItem.7698444e.css new file mode 100644 index 0000000..481a510 --- /dev/null +++ b/src/main/resources/static/assets/ZFormItem.7698444e.css @@ -0,0 +1 @@ +.z-form[data-v-73a38f09]>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse));--tw-divide-opacity: 1;border-color:rgb(229 231 235 / var(--tw-divide-opacity))}.z-form[data-v-73a38f09]{padding:1.5rem}.required[data-v-22eef9f0]:before{content:"*";color:#f56c6c;left:-4px;position:relative;top:2px}.z-form-item.is-error[data-v-22eef9f0] .el-select-v2__wrapper,.z-form-item.is-error[data-v-22eef9f0] .el-select-v2__wrapper:focus,.z-form-item.is-error[data-v-22eef9f0] .el-input__inner,.z-form-item.is-error[data-v-22eef9f0] .el-input__inner:focus,.z-form-item.is-error[data-v-22eef9f0] .el-textarea__inner,.z-form-item.is-error[data-v-22eef9f0] .el-textarea__inner:focus{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity))}.z-form-item-tips[data-v-22eef9f0] .el-link{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))} diff --git a/src/main/resources/static/assets/ZFormItem.f4459b46.js b/src/main/resources/static/assets/ZFormItem.f4459b46.js new file mode 100644 index 0000000..19663de --- /dev/null +++ b/src/main/resources/static/assets/ZFormItem.f4459b46.js @@ -0,0 +1 @@ +import{S as E}from"./index.c92ded65.js";import{_ as q,r as b,c as u,a as x,f as w,p as a,g as p,o as I,H as k,n as $,u as g,t as F,k as Z,a0 as j}from"./index.bbf7818f.js";const A={class:"z-form"},R={class:"space-y-8 divide-y divide-gray-200 sm:space-y-5"},S={class:"z-form-body"},B={class:"z-form-title text-lg leading-6 font-medium text-gray-900"},O={class:"z-form-sub-title mt-2 max-w-3xl text-sm text-gray-500"},V={class:"z-form-footer"},C={class:"pt-5"},N={class:"flex justify-end"},D={name:"ZForm"},H=Object.assign(D,{props:{model:Object,rules:Object},setup(v,{expose:o}){const d=v;let m=b({}),f=b([]),n=u(()=>{const e={};return f.value.forEach(({prop:t,required:i,label:s})=>{if(i&&(e[t]=[{required:!0,message:`${s}\u4E0D\u80FD\u4E3A\u7A7A`}]),d.rules[t]===void 0){console.debug(`prop \u4E3A ${t} \u7684 FormItem \u6821\u9A8C\u89C4\u5219\u4E0D\u5B58\u5728, \u8DF3\u8FC7.`);return}if(!Array.isArray(d.rules[t])){e[t]=[{required:!0}];return}e[t]=d.rules[t]}),e}),_=u(()=>f.value.reduce((e,{prop:t})=>{let i=t.split(".");if(i.length>1){let s=d.model;for(;i.length>=1;){let c=i.shift();s[c]!==void 0&&(s=s[c])}e[t]=s}else e[t]=d.model[t];return e},{}));const y=e=>{new E(n.value).validate(_.value,i=>{let s={};i&&i.length?i.forEach(({message:c,field:z})=>{s[z]=c}):s={},m.value=s,e(Object.keys(s).length===0)})},h=e=>{e&&(f.value=[...f.value,e])},r=e=>{e&&(f.value=f.value.filter(({prop:t})=>t!==e.prop))};let l=u(()=>d.rules);return o({validate:y,formAddField:h,formRemoveField:r,rulesArray:l,formError:m}),(e,t)=>(x(),w("form",A,[a("div",R,[a("div",S,[a("div",null,[a("h3",B,[p(e.$slots,"form-title",{},void 0,!0)]),a("p",O,[p(e.$slots,"form-sub-title",{},void 0,!0)])]),p(e.$slots,"default",{},void 0,!0)]),a("div",V,[a("div",C,[a("div",N,[p(e.$slots,"footer",{},void 0,!0)])])])])]))}});var Q=q(H,[["__scopeId","data-v-73a38f09"]]);const M={class:"sm:grid sm:grid-cols-3 sm:gap-4 sm:items-start sm:border-t sm:border-gray-200 sm:pt-5"},T=["for"],U={class:"mt-1 sm:mt-0 sm:col-span-2"},G={class:"empty:mt-0 mt-2 text-sm max-w-2xl text-gray-400 z-form-item-tips"},J={class:"empty:mt-0 mt-2 text-sm text-red-500"},K={__name:"ZFormItem",props:{required:Boolean,prop:String,label:String},setup(v){const o=v,{proxy:d}=j();let m=u(()=>{let r=n.value.rulesArray;return r?r[o.prop]:[]}),f=u(()=>{if(o.required)return!0;if(m.value)for(let r=0;r{let r=d.$parent;for(;r.$options.name!=="ZForm";)r=r.parent;return r});u(()=>o.prop&&n.value.formError[o.prop]||"");const _=(r,l)=>{n.value[r](l)};let y=b();I(()=>{o.prop&&_("formAddField",{prop:o.prop,required:o.required,label:o.label,el:y.value})}),k(()=>{_("formRemoveField",{prop:o.prop})});const h=r=>{let l=r.target.value,e={},t={};m.value&&(e[o.prop]=m.value,t[o.prop]=l),new E(e).validate(t,s=>{s&&s.length?s.forEach(({message:c,field:z})=>{n.value.formError[o.prop]=c}):n.value.formError[o.prop]=""})};return(r,l)=>(x(),w("div",{ref_key:"zFormItem",ref:y,class:$([g(n).formError[o.prop]?"is-error":"is-success","z-form-item mt-6 sm:mt-5 space-y-6 sm:space-y-5"])},[a("div",M,[v.label?(x(),w("label",{key:0,for:o.prop,class:$([g(f)?"required":"not-required","block text-sm font-medium text-gray-700 sm:mt-px sm:pt-2"])},F(v.label),11,T)):Z("",!0),a("div",U,[a("div",{class:"input max-w-2xl flex rounded-md z-form-item-input",onInput:h},[p(r.$slots,"default",{},void 0,!0)],32),a("p",G,[p(r.$slots,"tips",{},void 0,!0)]),a("p",J,F(g(n).formError[o.prop]),1)])])],2))}};var W=q(K,[["__scopeId","data-v-22eef9f0"]]);export{W as Z,Q as a}; diff --git a/src/main/resources/static/assets/_storageId_.080df354.js b/src/main/resources/static/assets/_storageId_.080df354.js new file mode 100644 index 0000000..b32f24c --- /dev/null +++ b/src/main/resources/static/assets/_storageId_.080df354.js @@ -0,0 +1 @@ +import{r as g,_ as G,L as O,O as A,o as J,ae as P,Q,u as t,a as h,b as E,e as i,p as a,h as o,f as W,y as j,F as H,P as K,k as X,S as Y,U as ee,J as m}from"./index.bbf7818f.js";import{b1 as I,b2 as te,l as oe,m as ae,b3 as le,r as ie}from"./base.197bc1e5.js";/* empty css *//* empty css *//* empty css */import"./scrollbar.7d059005.js";import{E as se,a as re}from"./select.3d28f8f8.js";import{E as ne}from"./popper.91c84279.js";import"./tooltip.f118fcb0.js";import{E as de}from"./alert.1b484cdc.js";import{S as me}from"./SvgIcon.e3258df0.js";import{Z as U,a as pe}from"./ZFormItem.f4459b46.js";import{o as ce,p as ue}from"./admin-storage.12c0dbf5.js";import{u as R,r as _e}from"./common.a295a3b6.js";import{S as fe}from"./sortable.esm.a99254e8.js";import{E as ve}from"./request.19cbe8c5.js";import{E as he}from"./index.6dd6d04c.js";import ge from"./readme-editor-dialog.6f036205.js";import{b as T}from"./route-block.9b0645f8.js";import{r as xe}from"./BadgeCheckIcon.fc085fd1.js";import{E as be}from"./index.9aca9b8e.js";import{v as we}from"./directive.b8a17520.js";import"./index.e63d92a7.js";import"./index.283c220f.js";import"./index.eeb08216.js";import"./event.776e7e11.js";import"./scroll.4cf9bb37.js";import"./isEqual.a8284c4e.js";import"./debounce.a03a8484.js";import"./validator.998eeed0.js";import"./focus-trap.fe4b8179.js";import"./event.3ec63147.js";import"./index.c92ded65.js";import"./index.c66de53e.js";import"./dialog.d131328b.js";import"./overlay.21d31a0b.js";import"./refs.e098e5db.js";let s=g([]),S=g(!1);function ke(c,x){let u=x.params.storageId;const b=()=>{ce(u).then(d=>{s.value=d.data,s.value.length===0&&f(),w()})},w=()=>{const d=document.querySelector(".z-form-body");fe.create(d,{draggable:".expression-item",filter:".el-button, .editor-input",onEnd:e=>{if(e.oldIndex===e.newIndex)return;const r=s.value.splice(e.oldIndex-1,1)[0];s.value.splice(e.newIndex-1,0,r)}})},_=()=>{if(!s.value.find(e=>{if(R.isEmpty(e.description)||R.isEmpty(e.expression)||R.isEmpty(e.readmeText))return ve.warning("\u8BF7\u68C0\u67E5\u6570\u636E\u586B\u5199\u662F\u5426\u5B8C\u6574"),!0})){S.value=!0;for(let e=0;e{he.confirm("\u4FDD\u5B58\u6210\u529F, \u662F\u5426\u8FD4\u56DE\u5B58\u50A8\u6E90\u5217\u8868\uFF1F","\u63D0\u793A",{confirmButtonText:"\u786E\u5B9A",cancelButtonText:"\u53D6\u6D88",type:"success",callback:e=>{e==="confirm"&&c.push("/admin/storage-list")}})}).finally(()=>{S.value=!1})}},f=()=>{s.value.push({description:"\u8868\u8FBE\u5F0F - "+(s.value.length+1),expression:"",readmeText:"",displayMode:"top",storageId:u})};return{loading:S,loadReadmeData:b,readmeList:s,addReadmeItem:f,deleteReadmeItem:d=>{s.value.splice(d,1)},saveReadmeData:_}}const p=c=>(Y("data-v-64c46615"),c=c(),ee(),c),ye={class:"flex"},Ve=p(()=>a("span",null,"\u76EE\u5F55\u6587\u6863",-1)),Ee=p(()=>a("div",{class:"rules-tips"},"Glob \u8868\u8FBE\u5F0F\u89C4\u5219\uFF1A",-1)),Ie=p(()=>a("div",{class:"rules-tips"},[a("b",null,"/"),m(": \u6839\u76EE\u5F55, \u5982 /, \u8868\u793A\u6839\u8DEF\u5F84\u4E0B\u4F1A\u52A0\u8F7D\u6B64\u6587\u6863\u663E\u793A.")],-1)),Re=p(()=>a("div",{class:"rules-tips"},[a("b",null,"*"),m("\uFF1A\u5355\u7EA7\u8DEF\u5F84\u901A\u914D\u7B26\uFF0C\u5982\u8868\u8FBE\u5F0F /*\uFF0C\u8868\u793A\u6839\u8DEF\u5F84\u4E0B\u7684\u76F4\u63A5\u5B50\u6587\u4EF6\u5939\u4F1A\u52A0\u8F7D\u6B64\u6587\u6863\u663E\u793A.")],-1)),Se=p(()=>a("div",{class:"rules-tips"},[a("b",null,"**"),m("\uFF1A\u591A\u7EA7\u8DEF\u5F84\u901A\u914D\u7B26\uFF0C\u5982\u8868\u8FBE\u5F0F /music/**\uFF0C\u8868\u793A /music \u6587\u4EF6\u5939\u53CA\u4EE5\u4E0B\u6240\u6709\u6587\u4EF6\u5939\u90FD\u4F1A\u52A0\u8F7D\u6B64\u6587\u6863.")],-1)),ze=p(()=>a("div",{class:"rules-tips"},"\u6CE8\uFF1A\u7CFB\u7EDF\u5339\u914D\u5230\u7B2C\u4E00\u4E2A\u7B26\u5408\u7684\u89C4\u5219\u5C31\u4F1A\u53D6\u6587\u6863\u8FDB\u884C\u663E\u793A\uFF0C\u6240\u4EE5\u8BF7\u8C03\u6574\u597D\u89C4\u5219\u987A\u5E8F\uFF0C\u4E0B\u65B9\u89C4\u5219\u53EF\u8FDB\u884C\u62D6\u62FD\u6392\u5E8F\u3002",-1)),Ce={class:"rules-tips-link"},Ue={target:"_blank",class:"link",href:"http://www.ruanyifeng.com/blog/2018/09/bash-wildcards.html"},Te=p(()=>a("span",null,"\u53C2\u8003\u6587\u7AE0 (Wikipedia)",-1)),Be={target:"_blank",class:"link",href:"http://www.ruanyifeng.com/blog/2018/09/bash-wildcards.html"},Fe=m("\u53C2\u8003\u6587\u7AE0 (\u962E\u4E00\u5CF0)"),Me={target:"_blank",class:"link",href:"https://github.com/whinc/blog/issues/18"},De=m("\u53C2\u8003\u6587\u7AE0 (Github)"),Le={class:"sm:flex sm:space-x-2 sm:border-b-0 sm:pb-0 border-b pb-2"},qe=m("\u6DFB\u52A0\u66F4\u591A"),Ne=m("\u4FDD\u5B58\u8BBE\u7F6E"),B={__name:"[storageId]",setup(c){let x=O(),u=A();const{loading:b,loadReadmeData:w,readmeList:_,addReadmeItem:f,deleteReadmeItem:z,saveReadmeData:d}=ke(u,x);J(()=>{w()});let e=g({}),r=g(!1);const F=C=>{r.value=!0,e.value=C};return(C,v)=>{const M=me,D=P("router-link"),L=de,k=be,q=ne,y=se,N=re,V=ie,Z=we;return Q((h(),E(pe,{model:t(_),class:"zfile-admin-readme-form"},{"form-title":i(()=>[a("div",ye,[a("div",null,[o(D,{to:"/admin/storage-list"},{default:i(()=>[o(M,{class:"inline mr-2 cursor-pointer",name:"file-type-back"})]),_:1}),Ve])])]),"form-sub-title":i(()=>[o(L,{closable:!1,type:"info"},{default:i(()=>[Ee,Ie,Re,Se,ze,a("div",Ce,[a("a",Ue,[o(t(I),{class:"inline mr-1"}),Te]),a("a",Be,[o(t(I),{class:"inline mr-1"}),Fe]),a("a",Me,[o(t(I),{class:"inline mr-1"}),De])])]),_:1})]),footer:i(()=>[o(V,{type:"primary",size:"default",icon:t(xe),onClick:t(d)},{default:i(()=>[Ne]),_:1},8,["icon","onClick"])]),default:i(()=>[(h(!0),W(H,null,j(t(_),(l,$)=>(h(),E(U,{required:!0,key:l,class:"expression-item"},{default:i(()=>[a("div",Le,[o(q,{content:"\u6B64\u5904\u53EF\u586B\u5199\u8868\u8FBE\u4E66\u63CF\u8FF0\uFF0C\u7528\u4E8E\u8F85\u52A9\u8BB0\u5FC6\uFF0C\u9632\u6B62\u65F6\u95F4\u8FC7\u957F\u540E\u4E0D\u77E5\u9053\u8868\u8FBE\u5F0F\u542B\u4E49.",placement:"top"},{default:i(()=>[o(k,{"prefix-icon":t(te),placeholder:"\u8BF7\u8F93\u5165\u8868\u8FBE\u5F0F\u63CF\u8FF0",modelValue:l.description,"onUpdate:modelValue":n=>l.description=n},null,8,["prefix-icon","modelValue","onUpdate:modelValue"])]),_:2},1024),o(k,{"prefix-icon":t(_e),placeholder:"\u8BF7\u8F93\u5165\u8868\u8FBE\u5F0F",modelValue:l.expression,"onUpdate:modelValue":n=>l.expression=n},null,8,["prefix-icon","modelValue","onUpdate:modelValue"]),o(k,{class:"editor-input",onClick:n=>F(l),readonly:"","prefix-icon":t(oe),placeholder:"\u8BF7\u70B9\u51FB\u7F16\u8F91\u6587\u6863",modelValue:l.readmeText,"onUpdate:modelValue":n=>l.readmeText=n},null,8,["onClick","prefix-icon","modelValue","onUpdate:modelValue"]),o(N,{class:"editor-input",modelValue:l.displayMode,"onUpdate:modelValue":n=>l.displayMode=n},{default:i(()=>[o(y,{label:"\u9876\u90E8\u663E\u793A",value:"top"}),o(y,{label:"\u5E95\u90E8\u663E\u793A",value:"bottom"}),o(y,{label:"\u5F39\u7A97\u663E\u793A",value:"dialog"})]),_:2},1032,["modelValue","onUpdate:modelValue"]),o(V,{type:"danger",onClick:n=>t(z)($),icon:t(ae)},null,8,["onClick","icon"])])]),_:2},1024))),128)),o(U,null,{default:i(()=>[o(V,{type:"primary",size:"default",icon:t(le),onClick:t(f)},{default:i(()=>[qe]),_:1},8,["icon","onClick"])]),_:1}),t(r)?(h(),E(ge,{key:0,modelValue:t(e).readmeText,"onUpdate:modelValue":v[0]||(v[0]=l=>t(e).readmeText=l),visible:t(r),"onUpdate:visible":v[1]||(v[1]=l=>K(r)?r.value=l:r=l)},null,8,["modelValue","visible"])):X("",!0)]),_:1},8,["model"])),[[Z,t(b)]])}}};typeof T=="function"&&T(B);var yt=G(B,[["__scopeId","data-v-64c46615"]]);export{yt as default}; diff --git a/src/main/resources/static/assets/_storageId_.11ae694b.css b/src/main/resources/static/assets/_storageId_.11ae694b.css new file mode 100644 index 0000000..736acb0 --- /dev/null +++ b/src/main/resources/static/assets/_storageId_.11ae694b.css @@ -0,0 +1 @@ +.expression-item[data-v-f04f2ad4] .el-input__wrapper{width:100%}@media (min-width: 640px){.expression-item[data-v-f04f2ad4] .el-input__wrapper{width:9rem}}@media (min-width: 768px){.expression-item[data-v-f04f2ad4] .el-input__wrapper{width:12rem}}@media (min-width: 1024px){.expression-item[data-v-f04f2ad4] .el-input__wrapper{width:16rem}}@media (min-width: 1280px){.expression-item[data-v-f04f2ad4] .el-input__wrapper{width:24rem}}.zfile-admin-filter-form[data-v-f04f2ad4] .z-form-sub-title{max-width:100%}.zfile-admin-filter-form .rules-tips[data-v-f04f2ad4]{padding:.25rem;font-size:.875rem;line-height:1.25rem;font-weight:700}.zfile-admin-filter-form .rules-tips-link[data-v-f04f2ad4]{margin-top:.5rem}.zfile-admin-filter-form .rules-tips-link[data-v-f04f2ad4]>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1.25rem * var(--tw-space-x-reverse));margin-left:calc(1.25rem * calc(1 - var(--tw-space-x-reverse)))}.zfile-admin-filter-form .rules-tips-link svg[data-v-f04f2ad4]{height:1rem;line-height:1.25rem;vertical-align:text-bottom} diff --git a/src/main/resources/static/assets/_storageId_.3751388b.js b/src/main/resources/static/assets/_storageId_.3751388b.js new file mode 100644 index 0000000..c428846 --- /dev/null +++ b/src/main/resources/static/assets/_storageId_.3751388b.js @@ -0,0 +1 @@ +import{a as w,b as E,h as s,r as P,_ as q,L as M,O as T,o as H,ae as N,Q as Z,u as o,e as r,p as t,f as $,y as j,F as A,S as G,U as J,J as d}from"./index.bbf7818f.js";import{b1 as k,b2 as O,m as Q,b3 as W,r as K}from"./base.197bc1e5.js";/* empty css *//* empty css */import"./tooltip.f118fcb0.js";import{E as X}from"./popper.91c84279.js";/* empty css */import{E as Y}from"./alert.1b484cdc.js";import{S as ee}from"./SvgIcon.e3258df0.js";import{Z as S,a as te}from"./ZFormItem.f4459b46.js";import{m as oe,n as se}from"./admin-storage.12c0dbf5.js";import{u as y,r as ae}from"./common.a295a3b6.js";import{S as re}from"./sortable.esm.a99254e8.js";import{E as ie}from"./request.19cbe8c5.js";import{E as le}from"./index.6dd6d04c.js";import{b as z}from"./route-block.9b0645f8.js";import{r as ne}from"./BadgeCheckIcon.fc085fd1.js";import{E as de}from"./index.9aca9b8e.js";import{v as pe}from"./directive.b8a17520.js";import"./focus-trap.fe4b8179.js";import"./event.3ec63147.js";import"./index.c92ded65.js";import"./index.c66de53e.js";import"./scroll.4cf9bb37.js";import"./validator.998eeed0.js";import"./index.eeb08216.js";import"./event.776e7e11.js";function ce(l,u){return w(),E("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"2",stroke:"currentColor","aria-hidden":"true"},[s("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M15 7a2 2 0 012 2m4 0a6 6 0 01-7.743 5.743L11 17H9v2H7v2H4a1 1 0 01-1-1v-2.586a1 1 0 01.293-.707l5.964-5.964A6 6 0 1121 9z"})])}let a=P([]),I=P(!1);function me(l,u){let m=u.params.storageId;const v=()=>{oe(m).then(i=>{a.value=i.data,a.value.length===0&&f(),g()})},g=()=>{const i=document.querySelector(".z-form-body");re.create(i,{draggable:".expression-item",onEnd:e=>{if(e.oldIndex===e.newIndex)return;const h=a.value.splice(e.oldIndex-1,1)[0];a.value.splice(e.newIndex-1,0,h)}})},_=()=>{if(!a.value.find(e=>{if(y.isEmpty(e.description)||y.isEmpty(e.expression)||y.isEmpty(e.password))return ie.warning("\u8BF7\u68C0\u67E5\u6570\u636E\u586B\u5199\u662F\u5426\u5B8C\u6574"),!0})){I.value=!0;for(let e=0;e{le.confirm("\u4FDD\u5B58\u6210\u529F, \u662F\u5426\u8FD4\u56DE\u5B58\u50A8\u6E90\u5217\u8868\uFF1F","\u63D0\u793A",{confirmButtonText:"\u786E\u5B9A",cancelButtonText:"\u53D6\u6D88",type:"success",callback:e=>{e==="confirm"&&l.push("/admin/storage-list")}})}).finally(()=>{I.value=!1})}},f=()=>{a.value.push({description:"\u8868\u8FBE\u5F0F - "+(a.value.length+1),expression:"",password:"",storageId:m})};return{loading:I,loadPasswordData:v,passwordList:a,addPasswordItem:f,deletePasswordItem:i=>{a.value.splice(i,1)},savePasswordData:_}}const p=l=>(G("data-v-393560ee"),l=l(),J(),l),ue={class:"flex justify-items-center"},_e=p(()=>t("span",null,"\u5BC6\u7801\u6587\u4EF6\u5939",-1)),fe=p(()=>t("div",{class:"rules-tips"},"Glob \u8868\u8FBE\u5F0F\u89C4\u5219\uFF1A",-1)),he=p(()=>t("div",{class:"rules-tips"},[t("b",null,"/"),d(": \u6839\u76EE\u5F55, \u5982 /, \u8868\u793A\u6839\u8DEF\u5F84\u4E0B\u9700\u8981\u5BC6\u7801\u8BBF\u95EE.")],-1)),we=p(()=>t("div",{class:"rules-tips"},[t("b",null,"*"),d("\uFF1A\u5355\u7EA7\u8DEF\u5F84\u901A\u914D\u7B26\uFF0C\u5982\u8868\u8FBE\u5F0F /*\uFF0C\u8868\u793A\u6839\u8DEF\u5F84\u4E0B\u7684\u76F4\u63A5\u5B50\u6587\u4EF6\u5939\u9700\u8981\u5BC6\u7801\u8BBF\u95EE.")],-1)),ve=p(()=>t("div",{class:"rules-tips"},[t("b",null,"**"),d("\uFF1A\u591A\u7EA7\u8DEF\u5F84\u901A\u914D\u7B26\uFF0C\u5982\u8868\u8FBE\u5F0F /music/**\uFF0C\u8868\u793A /music \u6587\u4EF6\u5939\u53CA\u4EE5\u4E0B\u6240\u6709\u6587\u4EF6\u5939\u90FD\u9700\u8981\u5BC6\u7801\u8BBF\u95EE.")],-1)),ge=p(()=>t("div",{class:"rules-tips"},"\u6CE8\uFF1A\u7CFB\u7EDF\u5339\u914D\u5230\u7B2C\u4E00\u4E2A\u7B26\u5408\u7684\u89C4\u5219\u5C31\u4F1A\u53D6\u5BC6\u7801\u8FDB\u884C\u6821\u9A8C\uFF0C\u5E76\u8FD4\u56DE\u7ED3\u679C\uFF0C\u6240\u4EE5\u8BF7\u8C03\u6574\u597D\u89C4\u5219\u987A\u5E8F\uFF0C\u4E0B\u65B9\u89C4\u5219\u53EF\u8FDB\u884C\u62D6\u62FD\u6392\u5E8F\u3002",-1)),xe={class:"rules-tips-link"},be={target:"_blank",class:"link",href:"http://www.ruanyifeng.com/blog/2018/09/bash-wildcards.html"},ke=p(()=>t("span",null,"\u53C2\u8003\u6587\u7AE0 (Wikipedia)",-1)),ye={target:"_blank",class:"link",href:"http://www.ruanyifeng.com/blog/2018/09/bash-wildcards.html"},Ie=d("\u53C2\u8003\u6587\u7AE0 (\u962E\u4E00\u5CF0)"),Ee={target:"_blank",class:"link",href:"https://github.com/whinc/blog/issues/18"},Ve=d("\u53C2\u8003\u6587\u7AE0 (Github)"),Se={class:"sm:flex sm:space-x-2 sm:border-b-0 sm:pb-0 border-b pb-2"},ze=d("\u6DFB\u52A0\u66F4\u591A"),Pe=d("\u4FDD\u5B58\u8BBE\u7F6E"),B={__name:"[storageId]",setup(l){let u=M(),m=T();const{loading:v,loadPasswordData:g,passwordList:_,addPasswordItem:f,deletePasswordItem:V,savePasswordData:i}=me(m,u);return H(()=>{g()}),(e,h)=>{const C=ee,U=N("router-link"),F=Y,x=de,L=X,b=K,D=pe;return Z((w(),E(te,{model:o(_),class:"zfile-admin-password-form"},{"form-title":r(()=>[t("div",ue,[s(U,{to:"/admin/storage-list"},{default:r(()=>[s(C,{class:"inline mr-2 cursor-pointer",name:"file-type-back"})]),_:1}),_e])]),"form-sub-title":r(()=>[s(F,{closable:!1,type:"info"},{default:r(()=>[fe,he,we,ve,ge,t("div",xe,[t("a",be,[s(o(k),{class:"inline mr-1"}),ke]),t("a",ye,[s(o(k),{class:"inline mr-1"}),Ie]),t("a",Ee,[s(o(k),{class:"inline mr-1"}),Ve])])]),_:1})]),footer:r(()=>[s(b,{type:"primary",size:"default",icon:o(ne),onClick:o(i)},{default:r(()=>[Pe]),_:1},8,["icon","onClick"])]),default:r(()=>[(w(!0),$(A,null,j(o(_),(n,R)=>(w(),E(S,{required:!0,key:n,class:"expression-item"},{default:r(()=>[t("div",Se,[s(L,{content:"\u6B64\u5904\u53EF\u586B\u5199\u8868\u8FBE\u4E66\u63CF\u8FF0\uFF0C\u7528\u4E8E\u8F85\u52A9\u8BB0\u5FC6\uFF0C\u9632\u6B62\u65F6\u95F4\u8FC7\u957F\u540E\u4E0D\u77E5\u9053\u8868\u8FBE\u5F0F\u542B\u4E49.",placement:"top"},{default:r(()=>[s(x,{"prefix-icon":o(O),placeholder:"\u8BF7\u8F93\u5165\u8868\u8FBE\u5F0F\u63CF\u8FF0",modelValue:n.description,"onUpdate:modelValue":c=>n.description=c},null,8,["prefix-icon","modelValue","onUpdate:modelValue"])]),_:2},1024),s(x,{"prefix-icon":o(ae),placeholder:"\u8BF7\u8F93\u5165\u8868\u8FBE\u5F0F",modelValue:n.expression,"onUpdate:modelValue":c=>n.expression=c},null,8,["prefix-icon","modelValue","onUpdate:modelValue"]),s(x,{"prefix-icon":o(ce),placeholder:"\u8BF7\u8F93\u5165\u5BC6\u7801",type:"password","show-password":"",modelValue:n.password,"onUpdate:modelValue":c=>n.password=c},null,8,["prefix-icon","modelValue","onUpdate:modelValue"]),s(b,{type:"danger",onClick:c=>o(V)(R),icon:o(Q)},null,8,["onClick","icon"])])]),_:2},1024))),128)),s(S,null,{default:r(()=>[s(b,{type:"primary",size:"default",icon:o(W),onClick:o(f)},{default:r(()=>[ze]),_:1},8,["icon","onClick"])]),_:1})]),_:1},8,["model"])),[[D,o(v)]])}}};typeof z=="function"&&z(B);var st=q(B,[["__scopeId","data-v-393560ee"]]);export{st as default}; diff --git a/src/main/resources/static/assets/_storageId_.4ca0040d.js b/src/main/resources/static/assets/_storageId_.4ca0040d.js new file mode 100644 index 0000000..97e27b7 --- /dev/null +++ b/src/main/resources/static/assets/_storageId_.4ca0040d.js @@ -0,0 +1 @@ +import{r as S,_ as R,L as T,O as q,o as M,ae as N,Q as Z,u as o,a as b,b as I,e as a,p as t,h as e,f as G,y as O,F as $,S as A,U as J,J as i}from"./index.bbf7818f.js";import{b1 as x,b2 as Q,m as W,b3 as H,r as K}from"./base.197bc1e5.js";/* empty css *//* empty css *//* empty css */import"./scrollbar.7d059005.js";import{E as P,a as X}from"./select.3d28f8f8.js";import{E as Y}from"./popper.91c84279.js";import"./tooltip.f118fcb0.js";import{E as ee}from"./alert.1b484cdc.js";import{S as te}from"./SvgIcon.e3258df0.js";import{Z as E,a as oe}from"./ZFormItem.f4459b46.js";import{j as ae,k as ie}from"./admin-storage.12c0dbf5.js";import{u as le,r as se}from"./common.a295a3b6.js";import{E as re}from"./request.19cbe8c5.js";import{E as ne}from"./index.6dd6d04c.js";import{b as V}from"./route-block.9b0645f8.js";import{r as de}from"./BadgeCheckIcon.fc085fd1.js";import{E as pe}from"./index.9aca9b8e.js";import{v as me}from"./directive.b8a17520.js";import"./index.e63d92a7.js";import"./index.283c220f.js";import"./index.eeb08216.js";import"./event.776e7e11.js";import"./scroll.4cf9bb37.js";import"./isEqual.a8284c4e.js";import"./debounce.a03a8484.js";import"./validator.998eeed0.js";import"./focus-trap.fe4b8179.js";import"./event.3ec63147.js";import"./index.c92ded65.js";import"./index.c66de53e.js";let l=S([]),w=S(!1);function ce(s,f){let m=f.params.storageId;const _=()=>{ae(m).then(r=>{l.value=r.data,l.value.length===0&&c()})},h=()=>{l.value.find(u=>{if(le.isEmpty(u.expression))return re.warning("\u8BF7\u68C0\u67E5\u6570\u636E\u586B\u5199\u662F\u5426\u5B8C\u6574"),!0})||(w.value=!0,ie(m,l.value).then(()=>{ne.confirm("\u4FDD\u5B58\u6210\u529F, \u662F\u5426\u8FD4\u56DE\u5B58\u50A8\u6E90\u5217\u8868\uFF1F","\u63D0\u793A",{confirmButtonText:"\u786E\u5B9A",cancelButtonText:"\u53D6\u6D88",type:"success",callback:u=>{u==="confirm"&&s.push("/admin/storage-list")}})}).finally(()=>{w.value=!1}))},c=()=>{l.value.push({mode:"hidden",expression:"",storageId:m,description:"\u8868\u8FBE\u5F0F - "+l.value.length})};return{loading:w,loadFilterData:_,filterList:l,addFilterItem:c,deleteFilterItem:r=>{l.value.splice(r,1)},saveFilterData:h}}const p=s=>(A("data-v-f04f2ad4"),s=s(),J(),s),ue={class:"flex justify-items-center"},fe=p(()=>t("span",null,"\u8FC7\u6EE4\u6587\u4EF6",-1)),_e=p(()=>t("div",{class:"rules-tips"},"Glob \u8868\u8FBE\u5F0F\u89C4\u5219\uFF1A",-1)),he=p(()=>t("div",{class:"rules-tips"},[t("b",null,"*"),i("\uFF1A\u5355\u7EA7\u8DEF\u5F84\u901A\u914D\u7B26\uFF0C\u5982\u8868\u8FBE\u5F0F /*.jpg\uFF0C\u53EF\u4EE5\u5339\u914D\u6839\u8DEF\u5F84\u4E0B\u6240\u6709\u7684 jpg \u540E\u7F00\u7684\u6587\u4EF6")],-1)),ge=p(()=>t("div",{class:"rules-tips"},[t("b",null,"**"),i("\uFF1A\u591A\u7EA7\u8DEF\u5F84\u901A\u914D\u7B26\uFF0C\u5982\u8868\u8FBE\u5F0F **.jpg\uFF0C\u53EF\u4EE5\u5339\u914D\u6240\u6709\u8DEF\u5F84\u4E0B\u7684 jpg \u540E\u7F00\u7684\u6587\u4EF6")],-1)),ve=p(()=>t("div",{class:"rules-tips"},[i("\u6CE8\uFF1A"),t("b",null,"/a.png"),i(" \u8868\u793A\u6839\u8DEF\u5F84\u4E0B\u7684 a.png\u3002 "),t("b",null,"/a/b/c.png"),i("\uFF0C\u8868\u793A /a/b/ \u8DEF\u5F84\u4E0B\u7684 c.png\u3002 "),t("b",null,"a.png"),i("\uFF0C\u4EC0\u4E48\u90FD\u4E0D\u8868\u793A\uFF0C\u56E0\u4E3A\u672A\u6807\u6CE8\u8DEF\u5F84\u3002")],-1)),be={class:"rules-tips-link"},xe={target:"_blank",class:"link",href:"http://www.ruanyifeng.com/blog/2018/09/bash-wildcards.html"},we=p(()=>t("span",null,"\u53C2\u8003\u6587\u7AE0 (Wikipedia)",-1)),ke={target:"_blank",class:"link",href:"http://www.ruanyifeng.com/blog/2018/09/bash-wildcards.html"},ye=i("\u53C2\u8003\u6587\u7AE0 (\u962E\u4E00\u5CF0)"),Fe={target:"_blank",class:"link",href:"https://github.com/whinc/blog/issues/18"},Ie=i("\u53C2\u8003\u6587\u7AE0 (Github)"),Ee={class:"sm:flex sm:space-x-2 sm:border-b-0 sm:pb-0 border-b pb-2"},Ve=i("\u6DFB\u52A0\u66F4\u591A"),Se=i("\u4FDD\u5B58\u8BBE\u7F6E"),z={__name:"[storageId]",setup(s){let f=T(),m=q();const{loading:_,loadFilterData:h,filterList:c,addFilterItem:k,deleteFilterItem:r,saveFilterData:u}=ce(m,f);return M(()=>{h()}),(ze,Be)=>{const B=te,C=N("router-link"),U=ee,y=pe,j=Y,g=P,D=X,v=K,L=me;return Z((b(),I(oe,{model:o(c),class:"zfile-admin-filter-form"},{"form-title":a(()=>[t("div",ue,[e(C,{to:"/admin/storage-list"},{default:a(()=>[e(B,{class:"inline mr-2 cursor-pointer",name:"file-type-back"})]),_:1}),fe])]),"form-sub-title":a(()=>[e(U,{closable:!1,type:"info"},{default:a(()=>[_e,he,ge,ve,t("div",be,[t("a",xe,[e(o(x),{class:"inline mr-1"}),we]),t("a",ke,[e(o(x),{class:"inline mr-1"}),ye]),t("a",Fe,[e(o(x),{class:"inline mr-1"}),Ie])])]),_:1})]),footer:a(()=>[e(v,{type:"primary",size:"default",icon:o(de),onClick:o(u)},{default:a(()=>[Se]),_:1},8,["icon","onClick"])]),default:a(()=>[(b(!0),G($,null,O(o(c),(n,F)=>(b(),I(E,{required:!0,key:F,class:"expression-item"},{default:a(()=>[t("div",Ee,[e(j,{content:"\u6B64\u5904\u53EF\u586B\u5199\u8868\u8FBE\u4E66\u63CF\u8FF0\uFF0C\u7528\u4E8E\u8F85\u52A9\u8BB0\u5FC6\uFF0C\u9632\u6B62\u65F6\u95F4\u8FC7\u957F\u540E\u4E0D\u77E5\u9053\u8868\u8FBE\u5F0F\u542B\u4E49.",placement:"top"},{default:a(()=>[e(y,{"prefix-icon":o(Q),placeholder:"\u8BF7\u8F93\u5165\u8868\u8FBE\u5F0F\u63CF\u8FF0",modelValue:n.description,"onUpdate:modelValue":d=>n.description=d},null,8,["prefix-icon","modelValue","onUpdate:modelValue"])]),_:2},1024),e(y,{"prefix-icon":o(se),placeholder:"\u8BF7\u8F93\u5165\u8868\u8FBE\u5F0F",modelValue:n.expression,"onUpdate:modelValue":d=>n.expression=d},null,8,["prefix-icon","modelValue","onUpdate:modelValue"]),e(D,{class:"editor-input",modelValue:n.mode,"onUpdate:modelValue":d=>n.mode=d},{default:a(()=>[e(g,{label:"\u4EC5\u9690\u85CF",value:"hidden"}),e(g,{label:"\u9690\u85CF\u5E76\u4E0D\u53EF\u8BBF\u95EE(\u9488\u5BF9\u76EE\u5F55)",value:"inaccessible"}),e(g,{label:"\u9690\u85CF\u5E76\u4E0D\u53EF\u8BBF\u95EE\u4E0D\u53EF\u4E0B\u8F7D(\u9488\u5BF9\u6587\u4EF6)",value:"disable_download"})]),_:2},1032,["modelValue","onUpdate:modelValue"]),e(v,{type:"danger",onClick:d=>o(r)(F),icon:o(W)},null,8,["onClick","icon"])])]),_:2},1024))),128)),e(E,null,{default:a(()=>[e(v,{type:"primary",size:"default",icon:o(H),onClick:o(k)},{default:a(()=>[Ve]),_:1},8,["icon","onClick"])]),_:1})]),_:1},8,["model"])),[[L,o(_)]])}}};typeof V=="function"&&V(z);var dt=R(z,[["__scopeId","data-v-f04f2ad4"]]);export{dt as default}; diff --git a/src/main/resources/static/assets/_storageId_.60e7270d.js b/src/main/resources/static/assets/_storageId_.60e7270d.js new file mode 100644 index 0000000..cf4d4aa --- /dev/null +++ b/src/main/resources/static/assets/_storageId_.60e7270d.js @@ -0,0 +1 @@ +import r from"./index.ac29bb47.js";import{b as o}from"./route-block.9b0645f8.js";import{a as t,b as p}from"./index.bbf7818f.js";import"./base.197bc1e5.js";/* empty css *//* empty css */import"./popper.91c84279.js";import"./request.19cbe8c5.js";import"./focus-trap.fe4b8179.js";import"./event.3ec63147.js";import"./link.b3090580.js";import"./scrollbar.7d059005.js";import"./switch.4caa5287.js";import"./validator.998eeed0.js";import"./event.776e7e11.js";/* empty css */import"./select.3d28f8f8.js";import"./index.9aca9b8e.js";import"./index.e63d92a7.js";import"./index.283c220f.js";import"./index.eeb08216.js";import"./scroll.4cf9bb37.js";import"./isEqual.a8284c4e.js";import"./debounce.a03a8484.js";import"./SvgIcon.e3258df0.js";import"./ZFormItem.f4459b46.js";import"./index.c92ded65.js";import"./admin-storage.12c0dbf5.js";import"./index.3fed707f.js";import"./dropdown.e1a9d9ca.js";import"./BadgeCheckIcon.fc085fd1.js";import"./index.6dd6d04c.js";import"./index.c66de53e.js";const m={__name:"[storageId]",setup(i){return(e,a)=>(t(),p(r))}};typeof o=="function"&&o(m);export{m as default}; diff --git a/src/main/resources/static/assets/_storageId_.e28774f9.css b/src/main/resources/static/assets/_storageId_.e28774f9.css new file mode 100644 index 0000000..f07e691 --- /dev/null +++ b/src/main/resources/static/assets/_storageId_.e28774f9.css @@ -0,0 +1 @@ +.expression-item[data-v-64c46615] .el-input__wrapper{width:100%}@media (min-width: 640px){.expression-item[data-v-64c46615] .el-input__wrapper{width:6rem}}@media (min-width: 768px){.expression-item[data-v-64c46615] .el-input__wrapper{width:9rem}}@media (min-width: 1024px){.expression-item[data-v-64c46615] .el-input__wrapper{width:12rem}}@media (min-width: 1280px){.expression-item[data-v-64c46615] .el-input__wrapper{width:16rem}}.zfile-admin-readme-form[data-v-64c46615] .z-form-sub-title{max-width:100%}.zfile-admin-readme-form .rules-tips[data-v-64c46615]{padding:.25rem;font-size:.875rem;line-height:1.25rem;font-weight:700}.zfile-admin-readme-form .rules-tips-link[data-v-64c46615]{margin-top:.5rem}.zfile-admin-readme-form .rules-tips-link[data-v-64c46615]>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1.25rem * var(--tw-space-x-reverse));margin-left:calc(1.25rem * calc(1 - var(--tw-space-x-reverse)))}.zfile-admin-readme-form .rules-tips-link svg[data-v-64c46615]{height:1rem;line-height:1.25rem;vertical-align:text-bottom} diff --git a/src/main/resources/static/assets/_storageId_.e45f650b.css b/src/main/resources/static/assets/_storageId_.e45f650b.css new file mode 100644 index 0000000..7dfa084 --- /dev/null +++ b/src/main/resources/static/assets/_storageId_.e45f650b.css @@ -0,0 +1 @@ +.expression-item[data-v-393560ee] .el-input__wrapper{width:100%}@media (min-width: 640px){.expression-item[data-v-393560ee] .el-input__wrapper{width:9rem}}@media (min-width: 768px){.expression-item[data-v-393560ee] .el-input__wrapper{width:12rem}}@media (min-width: 1024px){.expression-item[data-v-393560ee] .el-input__wrapper{width:16rem}}@media (min-width: 1280px){.expression-item[data-v-393560ee] .el-input__wrapper{width:20rem}}.zfile-admin-password-form[data-v-393560ee] .z-form-sub-title{max-width:100%}.zfile-admin-password-form .rules-tips[data-v-393560ee]{padding:.25rem;font-size:.875rem;line-height:1.25rem;font-weight:700}.zfile-admin-password-form .rules-tips-link[data-v-393560ee]{margin-top:.5rem}.zfile-admin-password-form .rules-tips-link[data-v-393560ee]>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1.25rem * var(--tw-space-x-reverse));margin-left:calc(1.25rem * calc(1 - var(--tw-space-x-reverse)))}.zfile-admin-password-form .rules-tips-link svg[data-v-393560ee]{height:1rem;line-height:1.25rem;vertical-align:text-bottom} diff --git a/src/main/resources/static/assets/about.06020ca1.js b/src/main/resources/static/assets/about.06020ca1.js new file mode 100644 index 0000000..f0b1031 --- /dev/null +++ b/src/main/resources/static/assets/about.06020ca1.js @@ -0,0 +1 @@ +import{a as o,f as s,p as e}from"./index.bbf7818f.js";const r={class:"prose md:prose-lg lg:prose-lg dark:prose-invert text-left p-10 prose-slate prose-img:rounded-xl prose-headings:underline prose-a:text-blue-600"},a=e("h2",null,"About Page",-1),n=e("blockquote",null,[e("p",null,"The page is markdown file")],-1),l=[a,n],i={},u={__name:"about",setup(p,{expose:t}){return t({frontmatter:{}}),(c,_)=>(o(),s("div",r,l))}};export{u as default,i as frontmatter}; diff --git a/src/main/resources/static/assets/add-file.9d01a01a.svg b/src/main/resources/static/assets/add-file.9d01a01a.svg new file mode 100644 index 0000000..00b52ac --- /dev/null +++ b/src/main/resources/static/assets/add-file.9d01a01a.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/add-folder-back.28141d7f.svg b/src/main/resources/static/assets/add-folder-back.28141d7f.svg new file mode 100644 index 0000000..8a1707b --- /dev/null +++ b/src/main/resources/static/assets/add-folder-back.28141d7f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/add-folder.7ef044d1.svg b/src/main/resources/static/assets/add-folder.7ef044d1.svg new file mode 100644 index 0000000..d9d5e9c --- /dev/null +++ b/src/main/resources/static/assets/add-folder.7ef044d1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/add.598ba734.svg b/src/main/resources/static/assets/add.598ba734.svg new file mode 100644 index 0000000..71c0b69 --- /dev/null +++ b/src/main/resources/static/assets/add.598ba734.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/admin-login.db1d73c1.svg b/src/main/resources/static/assets/admin-login.db1d73c1.svg new file mode 100644 index 0000000..b7fb731 --- /dev/null +++ b/src/main/resources/static/assets/admin-login.db1d73c1.svg @@ -0,0 +1 @@ + diff --git a/src/main/resources/static/assets/admin-setting.fad9817e.js b/src/main/resources/static/assets/admin-setting.fad9817e.js new file mode 100644 index 0000000..508c442 --- /dev/null +++ b/src/main/resources/static/assets/admin-setting.fad9817e.js @@ -0,0 +1 @@ +import{e as t}from"./request.19cbe8c5.js";const o=()=>t({url:"https://api.github.com/repos/zhaojun1998/zfile/releases/latest",method:"get",config:{withCredentials:!1,showDefaultMsg:!1}}),r=()=>t({url:"/admin/config",method:"get"}),s=e=>t({url:"/admin/config/password",method:"put",data:e}),a=e=>t({url:"/admin/config/site",method:"put",data:e}),i=e=>t({url:"/admin/config/view",method:"put",data:e}),u=e=>t({url:"/admin/config/security",method:"put",data:e}),d=e=>t({url:"/admin/config/link",method:"put",data:e}),l=()=>t({url:"/admin/2fa/setup",method:"get"}),f=e=>t({url:"/admin/2fa/verify",method:"post",data:e}),g=()=>t({url:"/admin/log/download",method:"get",config:{responseType:"blob",showDefaultMsg:!1,responseIntercept:!1}});export{s as a,i as b,d as c,u as d,g as e,o as f,l as g,r as l,a as u,f as v}; diff --git a/src/main/resources/static/assets/admin-storage.12c0dbf5.js b/src/main/resources/static/assets/admin-storage.12c0dbf5.js new file mode 100644 index 0000000..8d7259d --- /dev/null +++ b/src/main/resources/static/assets/admin-storage.12c0dbf5.js @@ -0,0 +1 @@ +import{e as t}from"./request.19cbe8c5.js";const o=()=>t({url:"/admin/support-storage",method:"get"}),s=e=>t({url:"/admin/storages",method:"get",data:e}),n=e=>t({url:`/admin/storage/${e}`,method:"get"}),d=e=>t({url:`/admin/storage/${e}`,method:"delete"}),m=(e,r)=>t({url:`/admin/storage/${e}/${r}`,method:"post"}),g=e=>t({url:"/admin/storage/sort",method:"post",data:e}),u=(e,r)=>t({url:`/admin/cache/${e}/${r}`,method:"post"}),l=(e,r)=>t({url:`/admin/cache/${e}/auto-refresh/${r}`,method:"post"}),i=e=>t({url:"/admin/storage-params",method:"get",data:e}),c=e=>t({url:"/admin/storage",method:"post",data:e}),h=e=>t({url:"/admin/storage/exist/key",method:"get",data:e}),R=e=>t({url:`/admin/storage/${e}/filters`,method:"get"}),p=(e,r)=>t({url:`/admin/storage/${e}/filters`,method:"post",data:r}),q=e=>t({url:`/admin/storage/${e}/password`,method:"get"}),S=(e,r)=>t({url:`/admin/storage/${e}/password`,method:"post",data:r}),$=e=>t({url:`/admin/storage/${e}/readme`,method:"get"}),w=(e,r)=>t({url:`/admin/storage/${e}/readme`,method:"post",data:r});export{u as a,l as b,g as c,d,n as e,c as f,o as g,h,i,R as j,p as k,s as l,q as m,S as n,$ as o,w as p,m as s}; diff --git a/src/main/resources/static/assets/admin.8c67bb88.js b/src/main/resources/static/assets/admin.8c67bb88.js new file mode 100644 index 0000000..155c4eb --- /dev/null +++ b/src/main/resources/static/assets/admin.8c67bb88.js @@ -0,0 +1,4 @@ +import{a as E,b as B,h as u,f as R,p as _,ax as X,F as ae,ak as Ie,ah as Ee,E as V,v as W,o as Q,ai as K,r as S,c as L,d as O,a9 as Se,Y as M,O as De,L as Ce,w as Le,ae as ee,e as p,u as v,t as Re,k as Ae,n as D,T as Me,J as k}from"./index.bbf7818f.js";import{aO as Te,b4 as Oe,E as ze}from"./base.197bc1e5.js";import{E as Pe,a as Fe,b as je}from"./dropdown-item.731434fa.js";/* empty css */import"./popper.91c84279.js";/* empty css */import{E as Ue}from"./link.b3090580.js";/* empty css */import{_ as Be}from"./zfile-basic.5314831c.js";import{a as He}from"./zfile-horizontal.2a5355c9.js";import{e as Ne,f as Ke,l as Ye}from"./admin-setting.fad9817e.js";import{d as Ve}from"./login.01a8ea4c.js";import{d as We}from"./dayjs.min.b4bc51d5.js";import{E as Je}from"./request.19cbe8c5.js";import{c as F}from"./common.d0a2bd7a.js";import{E as Ge}from"./index.3fed707f.js";import"./index.e63d92a7.js";import"./dropdown.e1a9d9ca.js";import"./event.3ec63147.js";import"./index.eeb08216.js";import"./refs.e098e5db.js";import"./focus-trap.fe4b8179.js";function Ze(e,n){return E(),B("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"2",stroke:"currentColor","aria-hidden":"true"},[u("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M4 6h16M4 12h8m-8 6h16"})])}function Qe(e,n){return E(),B("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"2",stroke:"currentColor","aria-hidden":"true"},[u("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M4 6h16M4 12h16M4 18h16"})])}function qe(e,n){return E(),B("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"2",stroke:"currentColor","aria-hidden":"true"},[u("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18L18 6M6 6l12 12"})])}const $e={preserveAspectRatio:"xMidYMid meet",viewBox:"0 0 1024 1024",width:"1.2em",height:"1.2em"},Xe=_("path",{fill:"currentColor",d:"M160 832h704a32 32 0 1 1 0 64H160a32 32 0 1 1 0-64zm384-253.696l236.288-236.352l45.248 45.248L508.8 704L192 387.2l45.248-45.248L480 584.704V128h64v450.304z"},null,-1),et=[Xe];function tt(e,n){return E(),R("svg",$e,et)}var nt={name:"ep-download",render:tt};const ot={preserveAspectRatio:"xMidYMid meet",viewBox:"0 0 1024 1024",width:"1.2em",height:"1.2em"},at=_("path",{fill:"currentColor",d:"M831.872 340.864L512 652.672L192.128 340.864a30.592 30.592 0 0 0-42.752 0a29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728a30.592 30.592 0 0 0-42.752 0z"},null,-1),lt=[at];function rt(e,n){return E(),R("svg",ot,lt)}var st={name:"ep-arrow-down",render:rt};const it={preserveAspectRatio:"xMidYMid meet",viewBox:"0 0 1024 1024",width:"1.2em",height:"1.2em"},ut=_("path",{fill:"currentColor",d:"M715.648 625.152L670.4 579.904l90.496-90.56c75.008-74.944 85.12-186.368 22.656-248.896c-62.528-62.464-173.952-52.352-248.96 22.656L444.16 353.6l-45.248-45.248l90.496-90.496c100.032-99.968 251.968-110.08 339.456-22.656c87.488 87.488 77.312 239.424-22.656 339.456l-90.496 90.496zm-90.496 90.496l-90.496 90.496C434.624 906.112 282.688 916.224 195.2 828.8c-87.488-87.488-77.312-239.424 22.656-339.456l90.496-90.496l45.248 45.248l-90.496 90.56c-75.008 74.944-85.12 186.368-22.656 248.896c62.528 62.464 173.952 52.352 248.96-22.656l90.496-90.496l45.248 45.248zm0-362.048l45.248 45.248L398.848 670.4L353.6 625.152L625.152 353.6z"},null,-1),dt=[ut];function ct(e,n){return E(),R("svg",it,dt)}var pt={name:"ep-link",render:ct};const mt={preserveAspectRatio:"xMidYMid meet",viewBox:"0 0 1024 1024",width:"1.2em",height:"1.2em"},ft=_("path",{fill:"currentColor",d:"M512 160c320 0 512 352 512 352S832 864 512 864S0 512 0 512s192-352 512-352zm0 64c-225.28 0-384.128 208.064-436.8 288c52.608 79.872 211.456 288 436.8 288c225.28 0 384.128-208.064 436.8-288c-52.608-79.872-211.456-288-436.8-288zm0 64a224 224 0 1 1 0 448a224 224 0 0 1 0-448zm0 64a160.192 160.192 0 0 0-160 160c0 88.192 71.744 160 160 160s160-71.808 160-160s-71.744-160-160-160z"},null,-1),vt=[ft];function gt(e,n){return E(),R("svg",mt,vt)}var ht={name:"ep-view",render:gt};const _t={preserveAspectRatio:"xMidYMid meet",viewBox:"0 0 1024 1024",width:"1.2em",height:"1.2em"},bt=_("path",{fill:"currentColor",d:"M128 192v640h768V320H485.76L357.504 192H128zm-32-64h287.872l128.384 128H928a32 32 0 0 1 32 32v576a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32z"},null,-1),wt=[bt];function xt(e,n){return E(),R("svg",_t,wt)}var yt={name:"ep-folder",render:xt};const kt={preserveAspectRatio:"xMidYMid meet",viewBox:"0 0 1024 1024",width:"1.2em",height:"1.2em"},It=_("path",{fill:"currentColor",d:"M600.704 64a32 32 0 0 1 30.464 22.208l35.2 109.376c14.784 7.232 28.928 15.36 42.432 24.512l112.384-24.192a32 32 0 0 1 34.432 15.36L944.32 364.8a32 32 0 0 1-4.032 37.504l-77.12 85.12a357.12 357.12 0 0 1 0 49.024l77.12 85.248a32 32 0 0 1 4.032 37.504l-88.704 153.6a32 32 0 0 1-34.432 15.296L708.8 803.904c-13.44 9.088-27.648 17.28-42.368 24.512l-35.264 109.376A32 32 0 0 1 600.704 960H423.296a32 32 0 0 1-30.464-22.208L357.696 828.48a351.616 351.616 0 0 1-42.56-24.64l-112.32 24.256a32 32 0 0 1-34.432-15.36L79.68 659.2a32 32 0 0 1 4.032-37.504l77.12-85.248a357.12 357.12 0 0 1 0-48.896l-77.12-85.248A32 32 0 0 1 79.68 364.8l88.704-153.6a32 32 0 0 1 34.432-15.296l112.32 24.256c13.568-9.152 27.776-17.408 42.56-24.64l35.2-109.312A32 32 0 0 1 423.232 64H600.64zm-23.424 64H446.72l-36.352 113.088l-24.512 11.968a294.113 294.113 0 0 0-34.816 20.096l-22.656 15.36l-116.224-25.088l-65.28 113.152l79.68 88.192l-1.92 27.136a293.12 293.12 0 0 0 0 40.192l1.92 27.136l-79.808 88.192l65.344 113.152l116.224-25.024l22.656 15.296a294.113 294.113 0 0 0 34.816 20.096l24.512 11.968L446.72 896h130.688l36.48-113.152l24.448-11.904a288.282 288.282 0 0 0 34.752-20.096l22.592-15.296l116.288 25.024l65.28-113.152l-79.744-88.192l1.92-27.136a293.12 293.12 0 0 0 0-40.256l-1.92-27.136l79.808-88.128l-65.344-113.152l-116.288 24.96l-22.592-15.232a287.616 287.616 0 0 0-34.752-20.096l-24.448-11.904L577.344 128zM512 320a192 192 0 1 1 0 384a192 192 0 0 1 0-384zm0 64a128 128 0 1 0 0 256a128 128 0 0 0 0-256z"},null,-1),Et=[It];function St(e,n){return E(),R("svg",kt,Et)}var Dt={name:"ep-setting",render:St};const Ct={t:"1641979577685",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"6856",width:"200",height:"200"},Lt=_("path",{d:"M678.64064 514.00704a168.448 168.448 0 1 0-168.448 167.7056 168.06912 168.06912 0 0 0 168.448-167.7056z",fill:"#F4CA1C","p-id":"6857"},null,-1),Rt=_("path",{d:"M983.04 603.41248a242.48832 242.48832 0 0 0-280.39168-238.40768 253.32224 253.32224 0 0 0-446.42816-77.824 249.13408 249.13408 0 0 0-48.95744 153.38496A203.39712 203.39712 0 0 0 240.18944 844.8h527.77472a31.98976 31.98976 0 0 0 14.75072-3.71712A242.03776 242.03776 0 0 0 983.04 603.41248z m-242.432 177.30048H240.18944a139.38688 139.38688 0 1 1 0-278.76864 31.96928 31.96928 0 0 0 8.704-1.34144 31.96416 31.96416 0 0 0 24.84736-35.99872 187.81184 187.81184 0 0 1 157.74208-214.016A188.46208 188.46208 0 0 1 641.024 383.42656a241.62816 241.62816 0 0 0-142.848 219.98592 32.1792 32.1792 0 0 0 64.3584 0 178.06848 178.06848 0 1 1 178.0736 177.30048z",fill:"#595BB3","p-id":"6858"},null,-1),At=[Lt,Rt];function Mt(e,n){return E(),R("svg",Ct,At)}var Tt={name:"custom-zfile",render:Mt},Ot="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4CAYAAAA5ZDbSAAAJjElEQVR4Xu1dy27cNhR1gALtuuguyAd00WXRLLstss0i+y7zCf6E/ECaZYHukk1XCbwrGo9saWzX0ozjV523E8eJk9R2bE9slYczscdXGlkPkroc8QAHMEYSRZ5rieTl5dXExBhgY2Pjm+lg8QfPj663/HByut353Qui+zPt6KEXhIutINpoBeG2+O0QxN/4Dcf650T3cQ2uRRkoC2XS+zgYQqsdfu+1o5uCd/uGio6FcWKVlGWibHEP3Av3pPVwUIQgCL6bmev+2pqN/hDib1JjGOQm6oC6oE60ng4FsLq6+jVelzN+9Kd4lR6liF0rUSdZN1FH1JXW32EEHs5GP3p+eFsIt0NF5UrUFXVG3Wl7HAbw55d+FmJNUfEs5BTaQtvXWLTmOr9gJJsilNWUbRJto+1tDIKg89O0H/lUmHEj2oi20vaPLaano2/F9OOOmIacUDHGlbKtos1oO9VjbBDH8SU51YGTIUWERlC0HRpAC6qP1ZgN166I/+K/Eg1uKKEFNKE6WYmZILzW6Kd2FPE0C22oXtZAvIa+8oLOrSb1tUUJbaARtKL6scbCwvJlMfmfpg1yTCe0gmZUR5aQCwF++JQ2wjGbUjPuCxrtdveq628rUGgHDamuLACvjReEe4lKOxai1JCbB8zzuzdE5Xq0so6l2YOmVOdagP82VCilko7V2Kv9SUZ/4V7L+ghta+uTMeJzAyoDhMamR9f9ea6bCpkitDY2T5YeKufEME5obsTjBdcavbmjGUJ7ag+lgHPcNt9ytLQev9x8E3/4uBvvfzqIP3/+LIm/8RuO4Rx6HUdCe20LFFjesmVQJYSInzzbjI+OenFe4Fxcg2tpeawobKB8qVG0/5It67nLa0/ig8Mjar/cwLUog5bLibBFrDJoQEZipNyIG5+/3KL2Kg2URcvnRNiE2qkU+jFU/F/N22/fUxtVBsqk92FDYRMlMV4IFksUzowqn1wK1k+ysA21VyEg3JP7qBn9pW5w7ZNhm0ohudzjljHirTKgygvcg+voGjaidsuFwSpRokBOxLTGFHAven82LLPqZMN2kiLz3KrAvej9udDzw7+p/TIx2AiWKIgT4X0yDc4er0Ib3loW7PKDi9E0cE9aD0aconZMBfa4plzMjvAjmwbuSevBibn2J3t+9Bu9kCOxWGAauCetByfCdtSe5zBIm2DFznqsCJkG7knrwYmwXWY6iUEaosSFHFmPgY8T9eBG2JDa9RRIKkIv4Er3ik4nbEjtKoG0QByz2YyiG2SlEzZMTfFky5LgF9YzTWK88DDE1KXEQZKxxMlc6RwdGRS2pPaFc6PODHKl6FyVI7l53rgIYk+exJ5usSGDw8HyMtkmPcECuuXC0YRNzwzsR/foCbawyQv+WUSW3FMDy3zKKSfZwsaG7GRR2FQaF4mvPQ35lk2zcUF3FxA2lUnNkd2cHrSVKp9ka5/cIcK2Vvmf87AJge95Kf3S4o9JesB2jvXWlWKcnBh8jIIeGBuO0+azooRtJ7wgfEAPOI4HYVv0wW4z95gStsUTvEgPOI4HYVvrnRyOGYSzw4adg2mcaUfx+uPn8d7+ftxd3kgcV8WFaCWenesmfreCwrbiFR0dJg4wZrCwFL/Y3Ip7vbOYrKNeT/5Oz61KlImyEYsFx4c/30mcw5mwrTUGnml3pGFPTk6GZq9n0BFOQ8OCML1CHWwxtDSwDa9ovII/HRyeEzsNKt2LWW5POEWWVh4nrmFHvKI5D7L8+W78ZnuH6jsSeLpV9McoY9SbYhivt97KNwu9ng0xyOI6TZoPV3I9tRRV++Mv/W5eoI5hdy1RDgfKaRLHbaKdR+txr0Jge5X+mPa7eYC+ufPo30RZdRO2xSDrPj1QJ1fWn8bHx8dUw8Io0x9n9bsXAXVeXuW1CgXbslpswLw2T9+XB0X747z9bhZw/drG80TZdVEuNrSYLBfiFVdVYIq8/XHRfjcLaMMjPk/yJIsFfwyodG0my9Mfl+l3swDHyIJoE72PacoF/7pDdjAVKjNaLoKs/rhKv5sFrDfX7eKUITt1B93tvP9ItVGOUf2xin43C+92PibuaYqnQXd1hs1ixGwKtD9W2e9mYb2uQdeXsFkAQdKJEzRzdq4TH1YIjiuD4f5Ydb87CnBroq20/bp5LvC9jq0rL19tUy2MAH2urn53FOrIznNu64rpzWf/RKta+74s4L6m7318fCJnClQHraRfamkZ3D66VWABYVzw9t2HhA4aeX77qDSwoQ3gWEtV4Yq0DXiKg3lD06a0DeCmUjiY3NPLDU+evUrooYOpKRxMJWE50OzU4Aw4dKgeqjkyCQugO40SHAtNh+5lxZFplADdfmlkqWk6MD2kuqhkZiI03akM/9vdp+1tHHb3PiV0UcULUxkCSGhJL1RBxC6Znn9yBDTQFcfl+eFtas8EdKUTdv3vGZY09cO50gkDLQ0JwU27Bznj2YvXCX0UMF9CcEBHSv8meq9GAaHAVJ+qLJTSH1AdbYm1UYc+sAZO9alCGT1ZFKo/q+NG0GfY3dtP6FOJZT6rA6j8MJbusBybAG8e1acsS38YC1D5aTsEojn0oerTALBNpU/bAao+Tjm3uOw4RKpPKVb9OCVgy+dlG0dVn5cFTC0lOuZn6pJgWcQWfeK9CYQtYBNqp0qYDdeuuFc1AwobwBbUPkowE4TXVI2qHYsT2sMG1C5K4QWdW/TGjmYI7ak9lEO8+79y2fHME5pDe2oPLVhYWL7s+eFTWglHPYTW0JzaQStksLwbdOknNKZB7KbQbnevekG4l6iUoxJCW2hMdTeKwapTj1bOsTJ7pVeJVMPzuzdkhZKVdCzHHjSlOtcK/Le513V1Sg25PLkU6C/cwKsChXa197kXASM+N4UqTqlZXaPloujPk50zJC+hlfF5blVIj1fQueV816MJbaCRMQ+VDsA57vrlFApNtC8cmAKWt9x68hmhhbYlv7qABWoZGdLkpxlPrdBA+WI9J/RjvKI7TeqbZVtFm5XFUNkAhHuqjLvmSrSxcmirzYDXRvU2GQ6UbeLqkaoDgw1vync11sCpwhvBmgTsccUmdJ2ZBlQTdUWdc+/PdThNJ3EdSUVMZP8pStRJ1k3U8cK0CQ7ZQFogOcXqJ2szlpEvhZuoA+oyMlWRQ3XIBY12dFM8PfeQNldHvmtZJspuR3dlslZbFgLGEUh8jezmgzRQk/gYBT6ODCe+/C4U8mEH4bYw2iEonS3yHyNcHJzzYPBxkkmUgbJOk2lbjv8B5/TafUY44tIAAAAASUVORK5CYII=";function zt(e,n){let{data:o}=X(Ye),{data:s,loading:t}=X(Ke,{errorRetryCount:3});return{siteSetting:o,githubLatestInfo:s,githubLatestLoading:t,logDownload:()=>{Ne().then(i=>{const{data:d,headers:h}=i,a=`ZFile \u8BCA\u65AD\u65E5\u5FD7 - ${We().format("YYYY-MM-DD HH:mm:ss")}.zip`,c=new Blob([d],{type:h["content-type"]});let r=document.createElement("a"),g=window.URL.createObjectURL(c);r.href=g,r.download=decodeURI(a),r.style.display="none",document.body.appendChild(r),r.click(),r.parentNode.removeChild(r),window.URL.revokeObjectURL(g)}).catch(i=>{Je.error("\u4E0B\u8F7D\u65E5\u5FD7\u5931\u8D25.")})},logout:()=>{Ve().then(()=>{e.push("/login")})},rebuildTitle:()=>{n.path.indexOf("/admin")!==-1&&(document.title=(n.meta.name||"ZFile")+" | \u540E\u53F0\u7BA1\u7406")}}}function P(e,n,...o){if(e in n){let t=n[e];return typeof t=="function"?t(...o):t}let s=new Error(`Tried to handle "${e}" but there is no handler defined. Only defined handlers are: ${Object.keys(n).map(t=>`"${t}"`).join(", ")}.`);throw Error.captureStackTrace&&Error.captureStackTrace(s,P),s}var H=(e=>(e[e.None=0]="None",e[e.RenderStrategy=1]="RenderStrategy",e[e.Static=2]="Static",e))(H||{}),Pt=(e=>(e[e.Unmount=0]="Unmount",e[e.Hidden=1]="Hidden",e))(Pt||{});function z({visible:e=!0,features:n=0,...o}){var s;if(e||n&2&&o.props.static)return Z(o);if(n&1){let t=(s=o.props.unmount)==null||s?0:1;return P(t,{[0](){return null},[1](){return Z({...o,props:{...o.props,hidden:!0,style:{display:"none"}}})}})}return Z(o)}function Z({props:e,attrs:n,slots:o,slot:s,name:t}){var m;let{as:l,...f}=Ft(e,["unmount","static"]),i=(m=o.default)==null?void 0:m.call(o,s),d={};if(l==="template"){if(i=le(i),Object.keys(f).length>0||Object.keys(n).length>0){let[h,...a]=i!=null?i:[];if(!jt(h)||a.length>0)throw new Error(['Passing props on "template"!',"",`The current component <${t} /> is rendering a "template".`,"However we need to passthrough the following props:",Object.keys(f).concat(Object.keys(n)).map(c=>` - ${c}`).join(` +`),"","You can apply a few solutions:",['Add an `as="..."` prop, to ensure that we render an actual element instead of a "template".',"Render a single element as the child so that we can forward the props onto that element."].map(c=>` - ${c}`).join(` +`)].join(` +`));return Ie(h,Object.assign({},f,d))}return Array.isArray(i)&&i.length===1?i[0]:i}return Ee(l,Object.assign({},f,d),i)}function le(e){return e.flatMap(n=>n.type===ae?le(n.children):[n])}function Ft(e,n=[]){let o=Object.assign({},e);for(let s of n)s in o&&delete o[s];return o}function jt(e){return e==null?!1:typeof e.type=="string"||typeof e.type=="object"||typeof e.type=="function"}let Ut=0;function Bt(){return++Ut}function N(){return Bt()}var w=(e=>(e.Space=" ",e.Enter="Enter",e.Escape="Escape",e.Backspace="Backspace",e.Delete="Delete",e.ArrowLeft="ArrowLeft",e.ArrowUp="ArrowUp",e.ArrowRight="ArrowRight",e.ArrowDown="ArrowDown",e.Home="Home",e.End="End",e.PageUp="PageUp",e.PageDown="PageDown",e.Tab="Tab",e))(w||{});function Ht(e){throw new Error("Unexpected object: "+e)}var C=(e=>(e[e.First=0]="First",e[e.Previous=1]="Previous",e[e.Next=2]="Next",e[e.Last=3]="Last",e[e.Specific=4]="Specific",e[e.Nothing=5]="Nothing",e))(C||{});function Nt(e,n){let o=n.resolveItems();if(o.length<=0)return null;let s=n.resolveActiveIndex(),t=s!=null?s:-1,m=(()=>{switch(e.focus){case 0:return o.findIndex(l=>!n.resolveDisabled(l));case 1:{let l=o.slice().reverse().findIndex((f,i,d)=>t!==-1&&d.length-i-1>=t?!1:!n.resolveDisabled(f));return l===-1?l:o.length-1-l}case 2:return o.findIndex((l,f)=>f<=t?!1:!n.resolveDisabled(l));case 3:{let l=o.slice().reverse().findIndex(f=>!n.resolveDisabled(f));return l===-1?l:o.length-1-l}case 4:return o.findIndex(l=>n.resolveId(l)===e.id);case 5:return null;default:Ht(e)}})();return m===-1?s:m}function b(e){return e==null||e.value==null?null:"$el"in e.value?e.value.$el:e.value}let re=Symbol("Context");var T=(e=>(e[e.Open=0]="Open",e[e.Closed=1]="Closed",e))(T||{});function se(){return V(re,null)}function ie(e){W(re,e)}function te(e,n){if(e)return e;let o=n!=null?n:"button";if(typeof o=="string"&&o.toLowerCase()==="button")return"button"}function ue(e,n){let o=S(te(e.value.type,e.value.as));return Q(()=>{o.value=te(e.value.type,e.value.as)}),K(()=>{var s;o.value||!b(n)||b(n)instanceof HTMLButtonElement&&!((s=b(n))!=null&&s.hasAttribute("type"))&&(o.value="button")}),o}function de(e){if(typeof window=="undefined")return null;if(e instanceof Node)return e.ownerDocument;if(e!=null&&e.hasOwnProperty("value")){let n=b(e);if(n)return n.ownerDocument}return document}function Kt({container:e,accept:n,walk:o,enabled:s}){K(()=>{let t=e.value;if(!t||s!==void 0&&!s.value)return;let m=de(e);if(!m)return;let l=Object.assign(i=>n(i),{acceptNode:n}),f=m.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,l,!1);for(;f.nextNode();)o(f.currentNode)})}let ne=["[contentEditable=true]","[tabindex]","a[href]","area[href]","button:not([disabled])","iframe","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].map(e=>`${e}:not([tabindex='-1'])`).join(",");var Yt=(e=>(e[e.First=1]="First",e[e.Previous=2]="Previous",e[e.Next=4]="Next",e[e.Last=8]="Last",e[e.WrapAround=16]="WrapAround",e[e.NoScroll=32]="NoScroll",e))(Yt||{}),Vt=(e=>(e[e.Error=0]="Error",e[e.Overflow=1]="Overflow",e[e.Success=2]="Success",e[e.Underflow=3]="Underflow",e))(Vt||{}),Wt=(e=>(e[e.Previous=-1]="Previous",e[e.Next=1]="Next",e))(Wt||{}),q=(e=>(e[e.Strict=0]="Strict",e[e.Loose=1]="Loose",e))(q||{});function ce(e,n=0){var o;return e===((o=de(e))==null?void 0:o.body)?!1:P(n,{[0](){return e.matches(ne)},[1](){let s=e;for(;s!==null;){if(s.matches(ne))return!0;s=s.parentElement}return!1}})}function Jt(e,n=o=>o){return e.slice().sort((o,s)=>{let t=n(o),m=n(s);if(t===null||m===null)return 0;let l=t.compareDocumentPosition(m);return l&Node.DOCUMENT_POSITION_FOLLOWING?-1:l&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function oe(e,n,o){typeof window!="undefined"&&K(s=>{window.addEventListener(e,n,o),s(()=>window.removeEventListener(e,n,o))})}function Gt(e,n,o=L(()=>!0)){function s(t,m){if(!o.value||t.defaultPrevented)return;let l=m(t);if(l===null||!l.ownerDocument.documentElement.contains(l))return;let f=function i(d){return typeof d=="function"?i(d()):Array.isArray(d)||d instanceof Set?d:[d]}(e);for(let i of f){if(i===null)continue;let d=i instanceof HTMLElement?i:b(i);if(d!=null&&d.contains(l))return}return!ce(l,q.Loose)&&l.tabIndex!==-1&&t.preventDefault(),n(t,l)}oe("click",t=>s(t,m=>m.target),!0),oe("blur",t=>s(t,()=>window.document.activeElement instanceof HTMLIFrameElement?window.document.activeElement:null),!0)}var Zt=(e=>(e[e.Open=0]="Open",e[e.Closed=1]="Closed",e))(Zt||{});let pe=Symbol("DisclosureContext");function $(e){let n=V(pe,null);if(n===null){let o=new Error(`<${e} /> is missing a parent component.`);throw Error.captureStackTrace&&Error.captureStackTrace(o,$),o}return n}let me=Symbol("DisclosurePanelContext");function Qt(){return V(me,null)}let qt=O({name:"Disclosure",props:{as:{type:[Object,String],default:"template"},defaultOpen:{type:[Boolean],default:!1}},setup(e,{slots:n,attrs:o}){let s=`headlessui-disclosure-button-${N()}`,t=`headlessui-disclosure-panel-${N()}`,m=S(e.defaultOpen?0:1),l=S(null),f=S(null),i={buttonId:s,panelId:t,disclosureState:m,panel:l,button:f,toggleDisclosure(){m.value=P(m.value,{[0]:1,[1]:0})},closeDisclosure(){m.value!==1&&(m.value=1)},close(d){i.closeDisclosure();let h=(()=>d?d instanceof HTMLElement?d:d.value instanceof HTMLElement?b(d):b(i.button):b(i.button))();h==null||h.focus()}};return W(pe,i),ie(L(()=>P(m.value,{[0]:T.Open,[1]:T.Closed}))),()=>{let{defaultOpen:d,...h}=e,a={open:m.value===0,close:i.close};return z({props:h,slot:a,slots:n,attrs:o,name:"Disclosure"})}}}),j=O({name:"DisclosureButton",props:{as:{type:[Object,String],default:"button"},disabled:{type:[Boolean],default:!1}},setup(e,{attrs:n,slots:o,expose:s}){let t=$("DisclosureButton"),m=Qt(),l=m===null?!1:m===t.panelId,f=S(null);s({el:f,$el:f}),l||K(()=>{t.button.value=f.value});let i=ue(L(()=>({as:e.as,type:n.type})),f);function d(){var c;e.disabled||(l?(t.toggleDisclosure(),(c=b(t.button))==null||c.focus()):t.toggleDisclosure())}function h(c){var r;if(!e.disabled)if(l)switch(c.key){case w.Space:case w.Enter:c.preventDefault(),c.stopPropagation(),t.toggleDisclosure(),(r=b(t.button))==null||r.focus();break}else switch(c.key){case w.Space:case w.Enter:c.preventDefault(),c.stopPropagation(),t.toggleDisclosure();break}}function a(c){switch(c.key){case w.Space:c.preventDefault();break}}return()=>{let c={open:t.disclosureState.value===0},r=l?{ref:f,type:i.value,onClick:d,onKeydown:h}:{id:t.buttonId,ref:f,type:i.value,"aria-expanded":e.disabled?void 0:t.disclosureState.value===0,"aria-controls":b(t.panel)?t.panelId:void 0,disabled:e.disabled?!0:void 0,onClick:d,onKeydown:h,onKeyup:a};return z({props:{...e,...r},slot:c,attrs:n,slots:o,name:"DisclosureButton"})}}}),$t=O({name:"DisclosurePanel",props:{as:{type:[Object,String],default:"div"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0}},setup(e,{attrs:n,slots:o,expose:s}){let t=$("DisclosurePanel");s({el:t.panel,$el:t.panel}),W(me,t.panelId);let m=se(),l=L(()=>m!==null?m.value===T.Open:t.disclosureState.value===0);return()=>{let f={open:t.disclosureState.value===0,close:t.close},i={id:t.panelId,ref:t.panel};return z({props:{...e,...i},slot:f,attrs:n,slots:o,features:H.RenderStrategy|H.Static,visible:l.value,name:"DisclosurePanel"})}}});var Xt=(e=>(e[e.Open=0]="Open",e[e.Closed=1]="Closed",e))(Xt||{}),en=(e=>(e[e.Pointer=0]="Pointer",e[e.Other=1]="Other",e))(en||{});function tn(e){requestAnimationFrame(()=>requestAnimationFrame(e))}let fe=Symbol("MenuContext");function J(e){let n=V(fe,null);if(n===null){let o=new Error(`<${e} /> is missing a parent component.`);throw Error.captureStackTrace&&Error.captureStackTrace(o,J),o}return n}let nn=O({name:"Menu",props:{as:{type:[Object,String],default:"template"}},setup(e,{slots:n,attrs:o}){let s=S(1),t=S(null),m=S(null),l=S([]),f=S(""),i=S(null),d=S(1);function h(c=r=>r){let r=i.value!==null?l.value[i.value]:null,g=Jt(c(l.value.slice()),A=>b(A.dataRef.domRef)),x=r?g.indexOf(r):null;return x===-1&&(x=null),{items:g,activeItemIndex:x}}let a={menuState:s,buttonRef:t,itemsRef:m,items:l,searchQuery:f,activeItemIndex:i,activationTrigger:d,closeMenu:()=>{s.value=1,i.value=null},openMenu:()=>s.value=0,goToItem(c,r,g){let x=h(),A=Nt(c===C.Specific?{focus:C.Specific,id:r}:{focus:c},{resolveItems:()=>x.items,resolveActiveIndex:()=>x.activeItemIndex,resolveId:I=>I.id,resolveDisabled:I=>I.dataRef.disabled});f.value="",i.value=A,d.value=g!=null?g:1,l.value=x.items},search(c){let r=f.value!==""?0:1;f.value+=c.toLowerCase();let g=(i.value!==null?l.value.slice(i.value+r).concat(l.value.slice(0,i.value+r)):l.value).find(A=>A.dataRef.textValue.startsWith(f.value)&&!A.dataRef.disabled),x=g?l.value.indexOf(g):-1;x===-1||x===i.value||(i.value=x,d.value=1)},clearSearch(){f.value=""},registerItem(c,r){let g=h(x=>[...x,{id:c,dataRef:r}]);l.value=g.items,i.value=g.activeItemIndex,d.value=1},unregisterItem(c){let r=h(g=>{let x=g.findIndex(A=>A.id===c);return x!==-1&&g.splice(x,1),g});l.value=r.items,i.value=r.activeItemIndex,d.value=1}};return Gt([t,m],(c,r)=>{var g;a.closeMenu(),ce(r,q.Loose)||(c.preventDefault(),(g=b(t))==null||g.focus())},L(()=>s.value===0)),W(fe,a),ie(L(()=>P(s.value,{[0]:T.Open,[1]:T.Closed}))),()=>{let c={open:s.value===0};return z({props:e,slot:c,slots:n,attrs:o,name:"Menu"})}}}),on=O({name:"MenuButton",props:{disabled:{type:Boolean,default:!1},as:{type:[Object,String],default:"button"}},setup(e,{attrs:n,slots:o,expose:s}){let t=J("MenuButton"),m=`headlessui-menu-button-${N()}`;s({el:t.buttonRef,$el:t.buttonRef});function l(h){switch(h.key){case w.Space:case w.Enter:case w.ArrowDown:h.preventDefault(),h.stopPropagation(),t.openMenu(),M(()=>{var a;(a=b(t.itemsRef))==null||a.focus({preventScroll:!0}),t.goToItem(C.First)});break;case w.ArrowUp:h.preventDefault(),h.stopPropagation(),t.openMenu(),M(()=>{var a;(a=b(t.itemsRef))==null||a.focus({preventScroll:!0}),t.goToItem(C.Last)});break}}function f(h){switch(h.key){case w.Space:h.preventDefault();break}}function i(h){e.disabled||(t.menuState.value===0?(t.closeMenu(),M(()=>{var a;return(a=b(t.buttonRef))==null?void 0:a.focus({preventScroll:!0})})):(h.preventDefault(),t.openMenu(),tn(()=>{var a;return(a=b(t.itemsRef))==null?void 0:a.focus({preventScroll:!0})})))}let d=ue(L(()=>({as:e.as,type:n.type})),t.buttonRef);return()=>{var h;let a={open:t.menuState.value===0},c={ref:t.buttonRef,id:m,type:d.value,"aria-haspopup":!0,"aria-controls":(h=b(t.itemsRef))==null?void 0:h.id,"aria-expanded":e.disabled?void 0:t.menuState.value===0,onKeydown:l,onKeyup:f,onClick:i};return z({props:{...e,...c},slot:a,attrs:n,slots:o,name:"MenuButton"})}}}),an=O({name:"MenuItems",props:{as:{type:[Object,String],default:"div"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0}},setup(e,{attrs:n,slots:o,expose:s}){let t=J("MenuItems"),m=`headlessui-menu-items-${N()}`,l=S(null);s({el:t.itemsRef,$el:t.itemsRef}),Kt({container:L(()=>b(t.itemsRef)),enabled:L(()=>t.menuState.value===0),accept(a){return a.getAttribute("role")==="menuitem"?NodeFilter.FILTER_REJECT:a.hasAttribute("role")?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT},walk(a){a.setAttribute("role","none")}});function f(a){var c;switch(l.value&&clearTimeout(l.value),a.key){case w.Space:if(t.searchQuery.value!=="")return a.preventDefault(),a.stopPropagation(),t.search(a.key);case w.Enter:if(a.preventDefault(),a.stopPropagation(),t.activeItemIndex.value!==null){let r=t.items.value[t.activeItemIndex.value];(c=b(r.dataRef.domRef))==null||c.click()}t.closeMenu(),M(()=>{var r;return(r=b(t.buttonRef))==null?void 0:r.focus({preventScroll:!0})});break;case w.ArrowDown:return a.preventDefault(),a.stopPropagation(),t.goToItem(C.Next);case w.ArrowUp:return a.preventDefault(),a.stopPropagation(),t.goToItem(C.Previous);case w.Home:case w.PageUp:return a.preventDefault(),a.stopPropagation(),t.goToItem(C.First);case w.End:case w.PageDown:return a.preventDefault(),a.stopPropagation(),t.goToItem(C.Last);case w.Escape:a.preventDefault(),a.stopPropagation(),t.closeMenu(),M(()=>{var r;return(r=b(t.buttonRef))==null?void 0:r.focus({preventScroll:!0})});break;case w.Tab:a.preventDefault(),a.stopPropagation();break;default:a.key.length===1&&(t.search(a.key),l.value=setTimeout(()=>t.clearSearch(),350));break}}function i(a){switch(a.key){case w.Space:a.preventDefault();break}}let d=se(),h=L(()=>d!==null?d.value===T.Open:t.menuState.value===0);return()=>{var a,c;let r={open:t.menuState.value===0},g={"aria-activedescendant":t.activeItemIndex.value===null||(a=t.items.value[t.activeItemIndex.value])==null?void 0:a.id,"aria-labelledby":(c=b(t.buttonRef))==null?void 0:c.id,id:m,onKeydown:f,onKeyup:i,role:"menu",tabIndex:0,ref:t.itemsRef};return z({props:{...e,...g},slot:r,attrs:n,slots:o,features:H.RenderStrategy|H.Static,visible:h.value,name:"MenuItems"})}}}),U=O({name:"MenuItem",props:{as:{type:[Object,String],default:"template"},disabled:{type:Boolean,default:!1}},setup(e,{slots:n,attrs:o,expose:s}){let t=J("MenuItem"),m=`headlessui-menu-item-${N()}`,l=S(null);s({el:l,$el:l});let f=L(()=>t.activeItemIndex.value!==null?t.items.value[t.activeItemIndex.value].id===m:!1),i=L(()=>({disabled:e.disabled,textValue:"",domRef:l}));Q(()=>{var r,g;let x=(g=(r=b(l))==null?void 0:r.textContent)==null?void 0:g.toLowerCase().trim();x!==void 0&&(i.value.textValue=x)}),Q(()=>t.registerItem(m,i)),Se(()=>t.unregisterItem(m)),K(()=>{t.menuState.value===0&&(!f.value||t.activationTrigger.value!==0&&M(()=>{var r,g;return(g=(r=b(l))==null?void 0:r.scrollIntoView)==null?void 0:g.call(r,{block:"nearest"})}))});function d(r){if(e.disabled)return r.preventDefault();t.closeMenu(),M(()=>{var g;return(g=b(t.buttonRef))==null?void 0:g.focus({preventScroll:!0})})}function h(){if(e.disabled)return t.goToItem(C.Nothing);t.goToItem(C.Specific,m)}function a(){e.disabled||f.value||t.goToItem(C.Specific,m,0)}function c(){e.disabled||!f.value||t.goToItem(C.Nothing)}return()=>{let{disabled:r}=e,g={active:f.value,disabled:r};return z({props:{...e,id:m,ref:l,role:"menuitem",tabIndex:r===!0?void 0:-1,"aria-disabled":r===!0?!0:void 0,onClick:d,onFocus:h,onPointermove:a,onMousemove:a,onPointerleave:c,onMouseleave:c},slot:g,attrs:o,slots:n,name:"MenuItem"})}}});const ln={class:"max-w-7xl mx-auto"},rn={class:"relative flex justify-between h-16"},sn={class:"absolute inset-y-0 left-0 flex items-center sm:hidden"},un=_("span",{class:"sr-only"},"Open main menu",-1),dn={class:"flex-1 flex items-center justify-center sm:items-stretch sm:justify-start"},cn={key:0,class:"zfile-admin-index-version-info text-center"},pn=_("br",null,null,-1),mn=["innerHTML"],fn=["innerHTML"],vn=_("br",null,null,-1),gn=k(" \u6587\u6863\u5730\u5740\uFF1A "),hn=k("\u70B9\u51FB\u8FDB\u5165 "),_n=_("br",null,null,-1),bn=k(" \u540E\u7AEF\u6E90\u7801\u5730\u5740\uFF1A "),wn=k("\u70B9\u51FB\u8FDB\u5165 "),xn=_("br",null,null,-1),yn=k(" \u524D\u7AEF\u6E90\u7801\u5730\u5740\uFF1A "),kn=k("\u70B9\u51FB\u8FDB\u5165 "),In=_("img",{class:"block lg:hidden h-8 w-auto",src:Be,alt:"Workflow"},null,-1),En=_("img",{class:"hidden lg:block h-8 w-auto",src:He,alt:"Workflow"},null,-1),Sn=[In,En],Dn={class:"hidden sm:ml-6 sm:flex sm:space-x-8"},Cn=k(" \u57FA\u672C\u8BBE\u7F6E "),Ln=k(" \u5B58\u50A8\u6E90\u8BBE\u7F6E "),Rn=k(" \u663E\u793A\u8BBE\u7F6E "),An=k(" \u76F4\u94FE\u7BA1\u7406 "),Mn=k("\u76F4\u94FE\u5217\u8868"),Tn=k("\u76F4\u94FE\u65E5\u5FD7"),On=k("\u76F4\u94FE\u8BBE\u7F6E"),zn=k(" \u65E5\u5FD7\u4E0B\u8F7D "),Pn={class:"absolute inset-y-0 right-0 flex items-center pr-2 sm:static sm:inset-auto sm:ml-6 sm:pr-0"},Fn=_("span",{class:"sr-only"},"Open user menu",-1),jn=["src"],Un={key:1,class:"h-8 w-8 rounded-full",src:Ot,alt:""},Bn={class:"cursor-pointer border-b"},Hn=k(" \u5B89\u5168\u8BBE\u7F6E "),Nn=k(" \u4FEE\u6539\u5BC6\u7801 "),Kn={class:"pt-2 pb-4 space-y-1"},Yn=k("\u57FA\u672C\u8BBE\u7F6E"),Vn=k("\u5B58\u50A8\u6E90\u8BBE\u7F6E"),Wn=k("\u663E\u793A\u8BBE\u7F6E"),Jn=k("\u76F4\u94FE\u7BA1\u7406"),Gn={class:"p-3 sm:p-10 pb-20 sm:pb-28 bg-gray-100 h-full overflow-y-auto"},Zn={class:"max-w-7xl mx-auto bg-white shadow overflow-hidden sm:rounded-lg"},bo={__name:"admin",setup(e){let n=De(),o=Ce();const{siteSetting:s,githubLatestInfo:t,githubLatestLoading:m,logDownload:l,logout:f,rebuildTitle:i}=zt(n,o);let d=L(()=>o.path);return Le(()=>o.path,()=>{i()},{immediate:!0}),(h,a)=>{const c=Tt,r=ze,g=Ue,x=Ge,A=Dt,I=ee("router-link"),ve=yt,ge=ht,he=pt,_e=st,G=Pe,be=Fe,we=je,xe=nt,ye=ee("router-view");return E(),R(ae,null,[u(v(qt),{as:"nav",class:"bg-white shadow"},{default:p(({open:ke})=>[_("div",ln,[_("div",rn,[_("div",sn,[u(v(j),{class:"inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-inset focus:ring-indigo-500"},{default:p(()=>[un,ke?(E(),B(v(qe),{key:1,class:"block h-6 w-6","aria-hidden":"true"})):(E(),B(v(Qe),{key:0,class:"block h-6 w-6","aria-hidden":"true"}))]),_:2},1024)]),_("div",dn,[u(x,{placement:"bottom",width:"200",disabled:v(m),trigger:"hover"},{reference:p(()=>[_("div",{onClick:a[1]||(a[1]=y=>v(F).openPage("/")),class:"cursor-pointer flex-shrink-0 flex items-center"},Sn)]),default:p(()=>{var y;return[(y=v(t))!=null&&y.data?(E(),R("div",cn,[_("div",{class:"cursor-pointer",onClick:a[0]||(a[0]=(...Y)=>h.openZFileGithub&&h.openZFileGithub(...Y))},[u(r,{size:"40"},{default:p(()=>[u(c)]),_:1}),_("div",null,"ZFile v "+Re(v(F).version),1)]),pn,_("div",{innerHTML:`\u6700\u65B0\u7248\uFF1Av${v(t).data.tag_name}`},null,8,mn),_("div",{innerHTML:`\u53D1\u5E03\u65F6\u95F4: ${v(F).dateFormat(v(t).data.published_at)}`},null,8,fn),vn,gn,u(g,{href:"http://docs.zhaojun.im/zfile",target:"_blank",class:"zfile-word-aux zfile-margin-left-unset"},{default:p(()=>[hn]),_:1}),_n,bn,u(g,{href:"https://github.com/zhaojun1998/zfile",target:"_blank",class:"zfile-word-aux zfile-margin-left-unset"},{default:p(()=>[wn]),_:1}),xn,yn,u(g,{href:"https://github.com/zhaojun1998/zfile-vue",target:"_blank",class:"zfile-word-aux zfile-margin-left-unset"},{default:p(()=>[kn]),_:1})])):Ae("",!0)]}),_:1},8,["disabled"]),_("div",Dn,[u(I,{to:"/admin/site-setting",class:D([v(d)==="/admin/site-setting"?"border-indigo-500 text-gray-900":"border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700","inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium"])},{default:p(()=>[u(r,{size:"18px"},{default:p(()=>[u(A,{class:"mr-1"})]),_:1}),Cn]),_:1},8,["class"]),u(I,{to:"/admin/storage-list",class:D([v(d).startsWith("/admin/storage")?"border-indigo-500 text-gray-900":"border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700","inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium"])},{default:p(()=>[u(r,{size:"18px"},{default:p(()=>[u(ve,{class:"mr-1"})]),_:1}),Ln]),_:1},8,["class"]),u(I,{to:"/admin/view-setting",class:D([v(d)==="/admin/view-setting"?"border-indigo-500 text-gray-900":"border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700","inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium"])},{default:p(()=>[u(r,{size:"18px"},{default:p(()=>[u(ge,{class:"mr-1"})]),_:1}),Rn]),_:1},8,["class"]),u(we,null,{dropdown:p(()=>[u(be,null,{default:p(()=>[u(G,{icon:v(Ze)},{default:p(()=>[u(I,{to:"/admin/download-link"},{default:p(()=>[Mn]),_:1})]),_:1},8,["icon"]),u(G,{icon:v(Te)},{default:p(()=>[u(I,{to:"/admin/download-link/log"},{default:p(()=>[Tn]),_:1})]),_:1},8,["icon"]),u(G,{icon:v(Oe)},{default:p(()=>[u(I,{to:"/admin/download-link/setting"},{default:p(()=>[On]),_:1})]),_:1},8,["icon"])]),_:1})]),default:p(()=>[u(I,{to:"/admin/download-link",class:D([v(d).includes("/admin/download-link")?"border-indigo-500 text-gray-900":"border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700","inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium"])},{default:p(()=>[u(r,{size:"18px"},{default:p(()=>[u(he,{class:"mr-1"})]),_:1}),An,u(r,{class:"el-icon--right"},{default:p(()=>[u(_e)]),_:1})]),_:1},8,["class"])]),_:1}),_("div",{onClick:a[2]||(a[2]=(...y)=>v(l)&&v(l)(...y)),class:"border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700 inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium"},[u(r,{size:"18px"},{default:p(()=>[u(xe,{class:"mr-1"})]),_:1}),zn])])]),_("div",Pn,[u(v(nn),{as:"div",class:"ml-3 relative"},{default:p(()=>[_("div",null,[u(v(on),{class:"border-2 bg-white rounded-full flex text-sm focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500"},{default:p(()=>{var y,Y;return[Fn,(Y=(y=v(s))==null?void 0:y.data)!=null&&Y.avatar?(E(),R("img",{key:0,class:"h-8 w-8 rounded-full",src:v(s).data.avatar,alt:""},null,8,jn)):(E(),R("img",Un))]}),_:1})]),u(Me,{"enter-active-class":"transition ease-out duration-200","enter-from-class":"transform opacity-0 scale-95","enter-to-class":"transform opacity-100 scale-100","leave-active-class":"transition ease-in duration-75","leave-from-class":"transform opacity-100 scale-100","leave-to-class":"transform opacity-0 scale-95"},{default:p(()=>[u(v(an),{class:"z-10 origin-top-right absolute right-0 mt-2 w-48 rounded-md shadow-lg py-1 bg-white ring-1 ring-black ring-opacity-5 focus:outline-none"},{default:p(()=>[_("div",Bn,[u(v(U),{onClick:a[3]||(a[3]=y=>v(F).openPage("https://docs.zfile.vip"))},{default:p(({active:y})=>[_("div",{class:D([y?"bg-gray-100":"","block px-4 py-2 text-sm text-gray-700"])}," ZFile Docs ",2)]),_:1}),u(v(U),{onClick:a[4]||(a[4]=y=>v(F).openPage("https://github.com/zhaojun1998/zfile"))},{default:p(({active:y})=>[_("div",{class:D([y?"bg-gray-100":"","block px-4 py-2 text-sm text-gray-700"])}," ZFile Github ",2)]),_:1})]),u(v(U),null,{default:p(({active:y})=>[u(I,{to:"/admin/security-setting",class:D([y?"bg-gray-100":"","block px-4 py-2 text-sm text-gray-700"])},{default:p(()=>[Hn]),_:2},1032,["class"])]),_:1}),u(v(U),null,{default:p(({active:y})=>[u(I,{to:"/admin/update-password",class:D([y?"bg-gray-100":"","block px-4 py-2 text-sm text-gray-700"])},{default:p(()=>[Nn]),_:2},1032,["class"])]),_:1}),u(v(U),{onClick:v(f)},{default:p(({active:y})=>[_("a",{href:"#",class:D([y?"bg-gray-100":"","block px-4 py-2 text-sm text-gray-700"])},"\u6CE8\u9500",2)]),_:1},8,["onClick"])]),_:1})]),_:1})]),_:1})])])]),u(v($t),{class:"sm:hidden"},{default:p(()=>[_("div",Kn,[u(v(j),{class:D([v(d)==="/admin/site-setting"?"bg-indigo-50 border-indigo-500 text-indigo-700":"border-transparent text-gray-500 hover:bg-gray-50 hover:border-gray-300 hover:text-gray-700","block pl-3 pr-4 py-2 border-l-4 text-base font-medium"]),as:"a"},{default:p(()=>[u(I,{to:"/admin/site-setting"},{default:p(()=>[Yn]),_:1})]),_:1},8,["class"]),u(v(j),{class:D([v(d).startsWith("/admin/storage")?"bg-indigo-50 border-indigo-500 text-indigo-700":"border-transparent text-gray-500 hover:bg-gray-50 hover:border-gray-300 hover:text-gray-700","block pl-3 pr-4 py-2 border-l-4 text-base font-medium"]),as:"a"},{default:p(()=>[u(I,{to:"/admin/storage-list"},{default:p(()=>[Vn]),_:1})]),_:1},8,["class"]),u(v(j),{class:D([v(d)==="/admin/view-setting"?"bg-indigo-50 border-indigo-500 text-indigo-700":"border-transparent text-gray-500 hover:bg-gray-50 hover:border-gray-300 hover:text-gray-700","block pl-3 pr-4 py-2 border-l-4 text-base font-medium"]),as:"a"},{default:p(()=>[u(I,{to:"/admin/view-setting"},{default:p(()=>[Wn]),_:1})]),_:1},8,["class"]),u(v(j),{class:D([v(d)==="/link"?"bg-indigo-50 border-indigo-500 text-indigo-700":"border-transparent text-gray-500 hover:bg-gray-50 hover:border-gray-300 hover:text-gray-700","block pl-3 pr-4 py-2 border-l-4 text-base font-medium"]),as:"a"},{default:p(()=>[u(I,{to:"/admin/download-link"},{default:p(()=>[Jn]),_:1})]),_:1},8,["class"])])]),_:1})]),_:1}),_("div",Gn,[_("div",Zn,[u(ye,{class:"box animate__animated animate__fadeIn"})])])],64)}}};export{bo as default}; diff --git a/src/main/resources/static/assets/alert.1b484cdc.js b/src/main/resources/static/assets/alert.1b484cdc.js new file mode 100644 index 0000000..a1b09bd --- /dev/null +++ b/src/main/resources/static/assets/alert.1b484cdc.js @@ -0,0 +1 @@ +import{d as E,G as S,r as T,c as d,a as o,b as a,e as p,Q as B,R as N,p as h,u as e,n as t,q as I,k as s,f as i,g as m,J as k,t as f,h as V,F as $,T as A}from"./index.bbf7818f.js";import{b as D,a6 as F,a7 as y,a8 as M,u as P,E as _,_ as j,w as q}from"./base.197bc1e5.js";const G=["light","dark"],J=D({title:{type:String,default:""},description:{type:String,default:""},type:{type:String,values:F(y),default:"info"},closable:{type:Boolean,default:!0},closeText:{type:String,default:""},showIcon:Boolean,center:Boolean,effect:{type:String,values:G,default:"light"}}),O={close:c=>c instanceof MouseEvent},Q={name:"ElAlert"},R=E({...Q,props:J,emits:O,setup(c,{emit:w}){const n=c,{Close:z}=M,u=S(),r=P("alert"),g=T(!0),v=d(()=>y[n.type]),x=d(()=>[r.e("icon"),{[r.is("big")]:!!n.description||!!u.default}]),C=d(()=>n.description||{[r.is("bold")]:u.default}),b=l=>{g.value=!1,w("close",l)};return(l,K)=>(o(),a(A,{name:e(r).b("fade"),persisted:""},{default:p(()=>[B(h("div",{class:t([e(r).b(),e(r).m(l.type),e(r).is("center",l.center),e(r).is(l.effect)]),role:"alert"},[l.showIcon&&e(v)?(o(),a(e(_),{key:0,class:t(e(x))},{default:p(()=>[(o(),a(I(e(v))))]),_:1},8,["class"])):s("v-if",!0),h("div",{class:t(e(r).e("content"))},[l.title||l.$slots.title?(o(),i("span",{key:0,class:t([e(r).e("title"),e(C)])},[m(l.$slots,"title",{},()=>[k(f(l.title),1)])],2)):s("v-if",!0),l.$slots.default||l.description?(o(),i("p",{key:1,class:t(e(r).e("description"))},[m(l.$slots,"default",{},()=>[k(f(l.description),1)])],2)):s("v-if",!0),l.closable?(o(),i($,{key:2},[l.closeText?(o(),i("div",{key:0,class:t([e(r).e("close-btn"),e(r).is("customed")]),onClick:b},f(l.closeText),3)):(o(),a(e(_),{key:1,class:t(e(r).e("close-btn")),onClick:b},{default:p(()=>[V(e(z))]),_:1},8,["class"]))],64)):s("v-if",!0)],2)],2),[[N,g.value]])]),_:3},8,["name"]))}});var H=j(R,[["__file","/home/runner/work/element-plus/element-plus/packages/components/alert/src/alert.vue"]]);const W=q(H);export{W as E}; diff --git a/src/main/resources/static/assets/alert.220a30c1.css b/src/main/resources/static/assets/alert.220a30c1.css new file mode 100644 index 0000000..e2a12ec --- /dev/null +++ b/src/main/resources/static/assets/alert.220a30c1.css @@ -0,0 +1 @@ +.el-alert{--el-alert-padding: 8px 16px;--el-alert-border-radius-base: var(--el-border-radius-base);--el-alert-title-font-size: 13px;--el-alert-description-font-size: 12px;--el-alert-close-font-size: 12px;--el-alert-close-customed-font-size: 13px;--el-alert-icon-size: 16px;--el-alert-icon-large-size: 28px;width:100%;padding:var(--el-alert-padding);margin:0;box-sizing:border-box;border-radius:var(--el-alert-border-radius-base);position:relative;background-color:var(--el-color-white);overflow:hidden;opacity:1;display:flex;align-items:center;transition:opacity var(--el-transition-duration-fast)}.el-alert.is-light .el-alert__close-btn{color:var(--el-text-color-placeholder)}.el-alert.is-dark .el-alert__close-btn,.el-alert.is-dark .el-alert__description{color:var(--el-color-white)}.el-alert.is-center{justify-content:center}.el-alert--success{--el-alert-bg-color: var(--el-color-success-light-9)}.el-alert--success.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-success)}.el-alert--success.is-light .el-alert__description{color:var(--el-color-success)}.el-alert--success.is-dark{background-color:var(--el-color-success);color:var(--el-color-white)}.el-alert--info{--el-alert-bg-color: var(--el-color-info-light-9)}.el-alert--info.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-info)}.el-alert--info.is-light .el-alert__description{color:var(--el-color-info)}.el-alert--info.is-dark{background-color:var(--el-color-info);color:var(--el-color-white)}.el-alert--warning{--el-alert-bg-color: var(--el-color-warning-light-9)}.el-alert--warning.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-warning)}.el-alert--warning.is-light .el-alert__description{color:var(--el-color-warning)}.el-alert--warning.is-dark{background-color:var(--el-color-warning);color:var(--el-color-white)}.el-alert--error{--el-alert-bg-color: var(--el-color-error-light-9)}.el-alert--error.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-error)}.el-alert--error.is-light .el-alert__description{color:var(--el-color-error)}.el-alert--error.is-dark{background-color:var(--el-color-error);color:var(--el-color-white)}.el-alert__content{display:table-cell;padding:0 8px}.el-alert .el-alert__icon{font-size:var(--el-alert-icon-size);width:var(--el-alert-icon-size)}.el-alert .el-alert__icon.is-big{font-size:var(--el-alert-icon-large-size);width:var(--el-alert-icon-large-size)}.el-alert__title{font-size:var(--el-alert-title-font-size);line-height:18px;vertical-align:text-top}.el-alert__title.is-bold{font-weight:700}.el-alert .el-alert__description{font-size:var(--el-alert-description-font-size);margin:5px 0 0}.el-alert .el-alert__close-btn{font-size:var(--el-alert-close-font-size);opacity:1;position:absolute;top:12px;right:15px;cursor:pointer}.el-alert .el-alert__close-btn.is-customed{font-style:normal;font-size:var(--el-alert-close-customed-font-size);top:9px}.el-alert-fade-enter-from,.el-alert-fade-leave-active{opacity:0} diff --git a/src/main/resources/static/assets/aliyun.0f005258.svg b/src/main/resources/static/assets/aliyun.0f005258.svg new file mode 100644 index 0000000..c9845a2 --- /dev/null +++ b/src/main/resources/static/assets/aliyun.0f005258.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/baidu.4a11f5ee.svg b/src/main/resources/static/assets/baidu.4a11f5ee.svg new file mode 100644 index 0000000..2a8c124 --- /dev/null +++ b/src/main/resources/static/assets/baidu.4a11f5ee.svg @@ -0,0 +1 @@ + diff --git a/src/main/resources/static/assets/base-editor.59951ec0.css b/src/main/resources/static/assets/base-editor.59951ec0.css new file mode 100644 index 0000000..b1caf6d --- /dev/null +++ b/src/main/resources/static/assets/base-editor.59951ec0.css @@ -0,0 +1 @@ +.v-md-textarea-editor{position:relative}.v-md-textarea-editor pre{margin:0;white-space:pre-wrap;visibility:hidden}.v-md-textarea-editor pre,.v-md-textarea-editor textarea{box-sizing:border-box;padding:20px 20px 30px;overflow:hidden;color:#2c3e50;font-size:14px;font-family:menlo,Ubuntu Mono,consolas,Courier New,Microsoft Yahei,Hiragino Sans GB,WenQuanYi Micro Hei,sans-serif;line-height:1.5;word-break:break-all}.v-md-textarea-editor textarea{position:absolute;top:0;left:0;width:100%;height:100%;border:none;outline:none;resize:none}.v-md-textarea-editor textarea::-webkit-input-placeholder{color:#c0c4cc}.v-md-textarea-editor textarea::placeholder{color:#c0c4cc}.v-md-zoom-in-top-enter-active,.v-md-zoom-in-top-leave-active{-webkit-transform:scaleY(1);transform:scaleY(1);opacity:1;-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1)}.v-md-zoom-in-top-enter-from,.v-md-zoom-in-top-leave-active{-webkit-transform:scaleY(0);transform:scaleY(0);opacity:0}.v-md-fade-in-enter-active,.v-md-fade-in-leave-active{-webkit-transition:opacity .3s cubic-bezier(.55,0,.1,1);transition:opacity .3s cubic-bezier(.55,0,.1,1)}.v-md-fade-in-enter-from,.v-md-fade-in-leave-active{opacity:0}@font-face{font-family:v-md-iconfont;src:url(data:application/vnd.ms-fontobject;base64,lBkAAOAYAAABAAIAAAAAAAIABQMAAAAAAAABAJABAAAAAExQAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAaGPnLwAAAAAAAAAAAAAAAAAAAAAAABYAdgAtAG0AZAAtAGUAZABpAHQAbwByAAAADgBSAGUAZwB1AGwAYQByAAAAFgBWAGUAcgBzAGkAbwBuACAAMQAuADAAAAAWAHYALQBtAGQALQBlAGQAaQB0AG8AcgAAAAAAAAEAAAALAIAAAwAwR1NVQrD+s+0AAAE4AAAAQk9TLzI8fE0eAAABfAAAAFZjbWFwEzte5gAAAkwAAAOQZ2x5ZhKJB5wAAAYcAAAO+GhlYWQY8MqxAAAA4AAAADZoaGVhB94EEAAAALwAAAAkaG10eHhxAAAAAAHUAAAAeGxvY2E5dDYWAAAF3AAAAD5tYXhwATIAawAAARgAAAAgbmFtZYA2YG8AABUUAAACkXBvc3Sv0n/QAAAXqAAAATgAAQAAA4D/gABcBHEAAAAABAAAAQAAAAAAAAAAAAAAAAAAAB4AAQAAAAEAAC/nY2hfDzz1AAsEAAAAAADa6MNaAAAAANrow1oAAP+CBAADfgAAAAgAAgAAAAAAAAABAAAAHgBfAAoAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQQEAZAABQAIAokCzAAAAI8CiQLMAAAB6wAyAQgAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA5gbrKAOA/4AAXAOAAIAAAAABAAAAAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABHEAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAABQAAAAMAAAAsAAAABAAAAiQAAQAAAAABHgADAAEAAAAsAAMACgAAAiQABADyAAAAKgAgAAQACuYG5gzmDuYR5hjmJOZB5nDme+az5uzm8eb+5wLnB+cR50Dnwejx6yj//wAA5gbmDOYO5hDmFOYj5kHmcOZ75rPm7Obw5v7nAucH5w/nQOfB6PHrKP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABACoAKgAqACoALAA0ADYANgA2ADYANgA2ADgAOAA4ADgAPAA8ADwAPAAAAB0AHAAbABoAGQACAAMABAAFAAEAFwAMABgABwAIABQACgATABIADQAOAA8AFgAQABEACQAVAAsABgAAAQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAABbAAAAAAAAAAdAADmBgAA5gYAAAAdAADmDAAA5gwAAAAcAADmDgAA5g4AAAAbAADmEAAA5hAAAAAaAADmEQAA5hEAAAAZAADmFAAA5hQAAAACAADmFQAA5hUAAAADAADmFgAA5hYAAAAEAADmFwAA5hcAAAAFAADmGAAA5hgAAAABAADmIwAA5iMAAAAXAADmJAAA5iQAAAAMAADmQQAA5kEAAAAYAADmcAAA5nAAAAAHAADmewAA5nsAAAAIAADmswAA5rMAAAAUAADm7AAA5uwAAAAKAADm8AAA5vAAAAATAADm8QAA5vEAAAASAADm/gAA5v4AAAANAADnAgAA5wIAAAAOAADnBwAA5wcAAAAPAADnDwAA5w8AAAAWAADnEAAA5xAAAAAQAADnEQAA5xEAAAARAADnQAAA50AAAAAJAADnwQAA58EAAAAVAADo8QAA6PEAAAALAADrKAAA6ygAAAAGAAAAAABYAJoA3AE4AYIBwAH4Ak4CfgLIAvIDXAOUA8QD6AQUBFIEeASeBMoFCgWSBaAF+AYyBngGkgb2B3wAAAAEAAAAAAQAAtYACwAXACMALwAAARYAFwYAByYAJzYAFw4BBx4BFz4BNy4BBx4BFw4BBy4BJz4BFw4BBx4BFz4BNy4BAgDyAQwCAv708vL+9AICAQzyquIpKeKqquIpKeKqX38CAn9fX38CAn9fRFoCAlpERFoCAloC1Rb+zBYW/swWFgE0FhYBNCoLz0ZGzwsLz0ZGzzUCf19ffwICf19ffz4CWkREWgICWkREWgAAAAEAAP++A8IDUgAoAAABNTQ2MhYXFQ4BByMuATQ2OwEuAQcOARceARc+ATczDgEHLgEnPgIEAzEVHxYBARYPrhEVFRFtXPd0c2UfIsaDn9MFSwX+v7/+BQGP+gEDAsw6ERUVEa4PFQICFR8VYCk8QOWBf5kDBNSfv/4FBf6/iNxtKwAAAAEAAP++A8MDUgApAAATMzIWFAYHIy4BPQE0NjIWHQE2JBceARcOAQcuASczHgEXPgE3LgEnJgbrbREVFRGuERUVIRVlAQN9fZABBf6/v/4FSwTUn5/TBQGBbW7eAn0VHxYBARYPrhEVFRE6Wis0OdyIv/4FBf6/n9QEBNSfdrssKTIAAAMAAP++A8IDRgASAB4AOgAAJRcWFAYiLwEGJCcmEjc2JBcWEgU+ATcuAScOAQceARM1NDYyFh0BMzIWFAYrARUUBiImPQEjIiY0NjMDN4IJFBoKgor+r3x2BnyBAVCGgBT+RpzOBATOnJzNBATNexMdE2MPExMPYxMdE2QOExMOeIIKGhQJgnEUgIYBUIF8BnZ8/q/eBM6cnM0EBM2cnM4Bi2QOExMOZBMdE2MPExMPYxMdEwAAAAADAAD/vgPCA0YAEgAeACoAACUXFhQGIi8BBiQnJhI3NiQXFhIFPgE3LgEnDgEHHgETITIWFAYjISImNDYDN4IJFBoKgor+r3x2BnyBAVCGgBT+RpzOBATOnJzNBATNFwEKDxMTD/72DhMTeIIKGhQJgnEUgIYBUIF8BnZ8/q/eBM6cnM0EBM2cnM4BixMdExMdEwAABAAA/9cDqQMpAAMABwAXACQAABMRIRElITUhJyEyFhURFAYjISImNRE0NhMyFhcRDgEiJicRPgG2ApT9bAKU/WwvAvIUGxsU/Q4UGxvQFBsBARsoGgEBGwIN/ikB119eXhsU/Q4UGxsUAvIUG/62GxT+5RQaGhQBGxQbAAIAAP+CA20DfgAPAB8AAAE1Bxc1HgEXFAcXPgE1LgEDLgEnNjcnDgEVHgEXFTcnAgC2tnSaAyBCHB0Ezpp0mgMBH0IcHQTOmra2AvOLurmLA512RjxDLGM2ndL9ewOddkY8QyplNp3SBIu6uQAAAAAFAAD/mgPmA2YACwAXACAAKQAwAAAFJgAnNgA3FgAXBgADDgEHHgEXPgE3LgETIiY0NjIWFAYhIiY0NjIWFAYHHgEXPgE3AgDO/u4FBQESzs4BEgUF/u7OpNwEBNykpNwEBNweFhoaLBoa/mYWGhosGhoWAm5SUm4CZQUBEs7OARIFBf7uzs7+7gNkBNykpNwEBNykpNz+sRosGhosGhosGhosGmJSbgICblIAAwAA/8sDtQM1AA8AEwAZAAATITIWFREUBiMhLgEnETQ2FxEhEQEnNxcBF3wDCBQdHRT8+BUbAR1EAqj+fM5EigESRQM1HRT8+BQdARsVAwgUHWH9WAKo/erORIkBE0UABQAA/74DwwNlAAAADAAeACIAJwAANzMhMh0BFCMhIj0BNDcXFjMhMjcBNiYnASYGBwEGFgkBAwEHAQchJ08JA1AJCfywCQ+TDhEBZxgPARETBxn+oxo9Ff54EwgB0QFU0P6rMgFVAv60hhAJPwkJPwnScwoTAV0aPRUBEBQIGf4LGj8CGP72/vUBCkD+9QFpAAAAAAIAAP+4A8gDSAASABkAABMhMhYVERQGKwEHJyMiJjURNDYXETMXNzMRlALYJjU1Jra2trYmNTUm3JCQ3ANHNSb93iY1trY1JgIiJjVb/d6QkAIiAAQAAP/cA6QDJAATADEANQBFAAAlDgEHIS4BJxE+ATchMhYfAR4BFQMRNCYvAS4BIxUOAQchLgEnNSMRMzU+ATchHgEXFSM1IRUBNCYrASIGHQEUFjsBMjY1A6QBHRf9IRYdAQEdFgH8FzIRmRAVRgsFmgcYCQEdF/7FFh0BRkYBHRYBxxcdAUb+XAEYCghpBwoKB2kIChEXHQEBHRcC3xYdARUQmREyF/4WAeoJGQaaBgrjFx0BAR0X4/1E5BYdAQEdFuTS0gKrBwoKB68ICgoIAAAAAwAA/8ADwANAAAsAFwAbAAABBxc3JzcXBycHFzcBFwcnNxc3JwcBNycjARcBAm31ZUQibsttIkRm9f4fIm7LbSJEZvUBU/VlzAEPRP7xA0D1ZkQibctuIkRl9f7qIm3LbiJEZfX+rfVmAQ9E/vEAAAUAAAAAA8ADAAADAAcADQAOABcAABMRIREDIQEXNScBIxEhBSMeATI2NCYiBkADgGD+CAEf2dn+WUACwP3gMAEbKBsbKBsDAP0AAwD9YAEg2YjZ/lgCQKAUGxsoGxsAAAMAAAAAA94CtAAFAAsADwAAEwMTMwMTISMTAzMTATMTI9SysnaysgHidrKyd7H9m2qkagKz/s3+zQEzATP+zf7NATP+zQJmAAYAAAAAA8AC4AADAAcACwAPABMAFwAAASEVIREhFSERIRUhAzMVIxUzFSMVMxUjAQACwP1AAsD9QALA/UDAYGBgYGBgAbBgAZBg/gBgAsBg0GDQYAAAAAAGAAAAAAPAAvAAAwAHAAsAEQAeACgAAAEhFSERIRUhESEVIQMzNSMVMwMVMxUjFTMVIxUzNSMTNSMVMwcVMzUjAQACwP1AAsD9QALA/UCQIEAgMEAoKEBgICBgMzNgQAGwYAGQYP4AYAJQgCD9wCAPIBEggAEQICAzLSAAAQAAAAADgwMkABQAAAEhNRcHNSEOAQceARczFSMuASc+AQGIASzOzv7UWXcCAndZeHh/qgMDqgKseKWleAJ3WVl3AloDqn9/qgAAAAEAAAAAA6QDJAAUAAABITUHFzUhHgEXDgEHIxUzPgE3LgECeP7Uzs4BLFl3AgJ3WXh4f6oDA6oCrHilpXgCd1lZdwJaA6p/f6oAAAACAAAAAANxAtUACwAXAAABPgE3JwYHBh0BIREhPgE3JwYHBh0BIREBHAVJTj6BPC0BEgEyBEpOPoE8LQERAVR7gSFjOnFVvuoBKHuBIWM6cVW+6gEoAAAAAwAAAAADigL1AAkAFAAnAAABMjc2NCcmKwEVEzI3NjU0JyYrAREDITIXFhUUBwYHFhcWFRQHBiMhAms/Ijc6IUCx1VsnGEclP8RgATmANiAnFSY4HDEsQpD+zAG6ERySGQ/n/qc2IjBSHRD++QKUTi49Ri4YExYcMFZIOlgAAAADAAD//gPCAwIADwAyAF4AAAEyFh0BFAYjISImPQE0NjM3JicmNTQ2MzIXFhcWFxYVFA8BLwEmJyYjIgYVFBYXFhcWFwczFhUUBwYHBgcGBwYjIi8BJicmPQE0JyY/ATU3HwEWFx4CMzI+ATU0JyYDsgcJCQf8nAcJCQfjDgwYhoMZOiI3BQYHAwYqBxkbLD05REJrIzQdE3fPAxQMGBMkKCUoPjkpRh0HBAEBAQEzDwwDAxEtPCUgTC8pEQGACQcgBwkJByAHCSASFjItW4AKBhITKD4eCQ4BAwFLHC06LCVDIAoXDgyAFBs3MxwYEhcYCQsMFAgGBAcHNhgPExMWASQcCgQcJRUaPSIqJQ4AAAEAAAAAAtcB0wACAAABIRcC1/5S1wHT0QAAAAACAAAAAANkAuQAFwA7AAABIy4BNDY7ATIWHQEUBiImJzUBBiImNDcFPgEyFh0BDgEHIS4BJxE+ATczMhYUBgcjIgYVERQWMyEyNjUC9nUNExMNww0TExsSAf7yChoTCQE8ARIbEwE3Kf36KTcBATcpww4SEg7DDhISDgIGDhICowESGxMTDcMNExMNdf7xCRMaClYOEhIOwik3AQE3KQIGKTcBExsSARIO/foOEhIOAAIAAP/0A3IDDAADACQAADchFSERIRUPAREUFjMyNjURLwE1MxUPAREUBiMiJicuATURLwGPAtv9JQE7RQ9UX1dPEUX4Qw+ImVB4IxoWD0UxPQMYMQQO/qljVFpmAUoRBTExBRH+rIl6KiYfT0oBUw4EAAAAAQAA/9oC2AMmACsAAAE2JicmNTQ/AR4BMzI2NxYVFAcOAQcDBhYXFhUUByYnJiMiBgcmNTQ3PgE3AggFGikTAgMlSyAbTCIDEikhBX4FHCsRAycnIyQbSyIEESgkBQLHGhgFBBEEBAsEBAQEDQYTAQQaGv1yGhcGBA8IDQQBAwQEDQgPAwYYGgAAAAABAAAAAAOMAcIADAAAARQGIyEiJjQ2MyEyFgOMGhP9QhMaGhMCvhMaAZUTGRknGRkAAAAACgAA/+wDwgMBABAAFAAYABwAIAApAC4ANwA7AD8AAAEhMhYVERQGJyEiJjURNDYzEyMVMwU1IxUlMzUjJRUzNQUWNzI2NTYnIwUzNSMVJzUjBhcUFjMWNzM1IwU1IxUCAgGEIRsbIPzwHhsbHuHg4AEX3gEW4OD90t8BT21pAwgBAeH+6eDgOOEBAgoEZ6Pf3wH33wMBHCD9ZSEdARsfAqIdG/2/mAGYmAGYy5aWmAEBBwRHRZWVlsqYRkIECwEDlZaWlgAAAAAEAAD/8wONAw0AEwAnADsATwAAATc2Ji8BJgYfAR4BPwEXFj8BNicXFj8BFxY2PwE2Jg8BDgEfAQcGFwEuAQ8BJyYPAQYfAQcGFh8BFjYnASYPAScmBg8BBhY/AT4BLwE3NicBBjIEBAa0BAYBFQEJBTGXBgYwBQX2BgaXMQUJARUBBgS0BgQEMpcFBQETAQkFMZcGBjAFBZcyBAQGtAQGAf3iBgaXMQUJARUBBgS0BgQEMpcFBQK2MQUJARUBBgS0BgQEMpcFBTAGBjwFBZcyBAQGtAQGARUBCQUxlwYG/p8GBAQylwUFMAYGlzEFCQEVAQYEAR8FBZcyBAQGtAQGARUBCQUxlwYGAAAAAAASAN4AAQAAAAAAAAAVAAAAAQAAAAAAAQALABUAAQAAAAAAAgAHACAAAQAAAAAAAwALACcAAQAAAAAABAALADIAAQAAAAAABQALAD0AAQAAAAAABgALAEgAAQAAAAAACgArAFMAAQAAAAAACwATAH4AAwABBAkAAAAqAJEAAwABBAkAAQAWALsAAwABBAkAAgAOANEAAwABBAkAAwAWAN8AAwABBAkABAAWAPUAAwABBAkABQAWAQsAAwABBAkABgAWASEAAwABBAkACgBWATcAAwABBAkACwAmAY0KQ3JlYXRlZCBieSBpY29uZm9udAp2LW1kLWVkaXRvclJlZ3VsYXJ2LW1kLWVkaXRvcnYtbWQtZWRpdG9yVmVyc2lvbiAxLjB2LW1kLWVkaXRvckdlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAAoAQwByAGUAYQB0AGUAZAAgAGIAeQAgAGkAYwBvAG4AZgBvAG4AdAAKAHYALQBtAGQALQBlAGQAaQB0AG8AcgBSAGUAZwB1AGwAYQByAHYALQBtAGQALQBlAGQAaQB0AG8AcgB2AC0AbQBkAC0AZQBkAGkAdABvAHIAVgBlAHIAcwBpAG8AbgAgADEALgAwAHYALQBtAGQALQBlAGQAaQB0AG8AcgBHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAHMAdgBnADIAdAB0AGYAIABmAHIAbwBtACAARgBvAG4AdABlAGwAbABvACAAcAByAG8AagBlAGMAdAAuAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETARQBFQEWARcBGAEZARoBGwEcAR0BHgEfAAdwcmV2aWV3DXJlZnJlc2gtcmlnaHQMcmVmcmVzaC1sZWZ0B3pvb20taW4Iem9vbS1vdXQDdG9jBHN5bmMFZW1vamkIY2hlY2tib3gFY2xlYXIDdGlwBHNhdmUEbGluawNpbWcEY29kZQJ1bAJvbARyZWRvBHVuZG8FcXVvdGUEYm9sZA1zdHJpa2V0aHJvdWdoCmFycm93LWRvd24Lb3Blbi1pbi1uZXcKdW5kZXItbGluZQZpdGFsaWMKaG9yaXpvbnRhbAV0YWJsZQpmdWxsc2NyZWVuAAA=);src:url(data:application/vnd.ms-fontobject;base64,lBkAAOAYAAABAAIAAAAAAAIABQMAAAAAAAABAJABAAAAAExQAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAaGPnLwAAAAAAAAAAAAAAAAAAAAAAABYAdgAtAG0AZAAtAGUAZABpAHQAbwByAAAADgBSAGUAZwB1AGwAYQByAAAAFgBWAGUAcgBzAGkAbwBuACAAMQAuADAAAAAWAHYALQBtAGQALQBlAGQAaQB0AG8AcgAAAAAAAAEAAAALAIAAAwAwR1NVQrD+s+0AAAE4AAAAQk9TLzI8fE0eAAABfAAAAFZjbWFwEzte5gAAAkwAAAOQZ2x5ZhKJB5wAAAYcAAAO+GhlYWQY8MqxAAAA4AAAADZoaGVhB94EEAAAALwAAAAkaG10eHhxAAAAAAHUAAAAeGxvY2E5dDYWAAAF3AAAAD5tYXhwATIAawAAARgAAAAgbmFtZYA2YG8AABUUAAACkXBvc3Sv0n/QAAAXqAAAATgAAQAAA4D/gABcBHEAAAAABAAAAQAAAAAAAAAAAAAAAAAAAB4AAQAAAAEAAC/nY2hfDzz1AAsEAAAAAADa6MNaAAAAANrow1oAAP+CBAADfgAAAAgAAgAAAAAAAAABAAAAHgBfAAoAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQQEAZAABQAIAokCzAAAAI8CiQLMAAAB6wAyAQgAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA5gbrKAOA/4AAXAOAAIAAAAABAAAAAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABHEAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAABQAAAAMAAAAsAAAABAAAAiQAAQAAAAABHgADAAEAAAAsAAMACgAAAiQABADyAAAAKgAgAAQACuYG5gzmDuYR5hjmJOZB5nDme+az5uzm8eb+5wLnB+cR50Dnwejx6yj//wAA5gbmDOYO5hDmFOYj5kHmcOZ75rPm7Obw5v7nAucH5w/nQOfB6PHrKP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABACoAKgAqACoALAA0ADYANgA2ADYANgA2ADgAOAA4ADgAPAA8ADwAPAAAAB0AHAAbABoAGQACAAMABAAFAAEAFwAMABgABwAIABQACgATABIADQAOAA8AFgAQABEACQAVAAsABgAAAQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAABbAAAAAAAAAAdAADmBgAA5gYAAAAdAADmDAAA5gwAAAAcAADmDgAA5g4AAAAbAADmEAAA5hAAAAAaAADmEQAA5hEAAAAZAADmFAAA5hQAAAACAADmFQAA5hUAAAADAADmFgAA5hYAAAAEAADmFwAA5hcAAAAFAADmGAAA5hgAAAABAADmIwAA5iMAAAAXAADmJAAA5iQAAAAMAADmQQAA5kEAAAAYAADmcAAA5nAAAAAHAADmewAA5nsAAAAIAADmswAA5rMAAAAUAADm7AAA5uwAAAAKAADm8AAA5vAAAAATAADm8QAA5vEAAAASAADm/gAA5v4AAAANAADnAgAA5wIAAAAOAADnBwAA5wcAAAAPAADnDwAA5w8AAAAWAADnEAAA5xAAAAAQAADnEQAA5xEAAAARAADnQAAA50AAAAAJAADnwQAA58EAAAAVAADo8QAA6PEAAAALAADrKAAA6ygAAAAGAAAAAABYAJoA3AE4AYIBwAH4Ak4CfgLIAvIDXAOUA8QD6AQUBFIEeASeBMoFCgWSBaAF+AYyBngGkgb2B3wAAAAEAAAAAAQAAtYACwAXACMALwAAARYAFwYAByYAJzYAFw4BBx4BFz4BNy4BBx4BFw4BBy4BJz4BFw4BBx4BFz4BNy4BAgDyAQwCAv708vL+9AICAQzyquIpKeKqquIpKeKqX38CAn9fX38CAn9fRFoCAlpERFoCAloC1Rb+zBYW/swWFgE0FhYBNCoLz0ZGzwsLz0ZGzzUCf19ffwICf19ffz4CWkREWgICWkREWgAAAAEAAP++A8IDUgAoAAABNTQ2MhYXFQ4BByMuATQ2OwEuAQcOARceARc+ATczDgEHLgEnPgIEAzEVHxYBARYPrhEVFRFtXPd0c2UfIsaDn9MFSwX+v7/+BQGP+gEDAsw6ERUVEa4PFQICFR8VYCk8QOWBf5kDBNSfv/4FBf6/iNxtKwAAAAEAAP++A8MDUgApAAATMzIWFAYHIy4BPQE0NjIWHQE2JBceARcOAQcuASczHgEXPgE3LgEnJgbrbREVFRGuERUVIRVlAQN9fZABBf6/v/4FSwTUn5/TBQGBbW7eAn0VHxYBARYPrhEVFRE6Wis0OdyIv/4FBf6/n9QEBNSfdrssKTIAAAMAAP++A8IDRgASAB4AOgAAJRcWFAYiLwEGJCcmEjc2JBcWEgU+ATcuAScOAQceARM1NDYyFh0BMzIWFAYrARUUBiImPQEjIiY0NjMDN4IJFBoKgor+r3x2BnyBAVCGgBT+RpzOBATOnJzNBATNexMdE2MPExMPYxMdE2QOExMOeIIKGhQJgnEUgIYBUIF8BnZ8/q/eBM6cnM0EBM2cnM4Bi2QOExMOZBMdE2MPExMPYxMdEwAAAAADAAD/vgPCA0YAEgAeACoAACUXFhQGIi8BBiQnJhI3NiQXFhIFPgE3LgEnDgEHHgETITIWFAYjISImNDYDN4IJFBoKgor+r3x2BnyBAVCGgBT+RpzOBATOnJzNBATNFwEKDxMTD/72DhMTeIIKGhQJgnEUgIYBUIF8BnZ8/q/eBM6cnM0EBM2cnM4BixMdExMdEwAABAAA/9cDqQMpAAMABwAXACQAABMRIRElITUhJyEyFhURFAYjISImNRE0NhMyFhcRDgEiJicRPgG2ApT9bAKU/WwvAvIUGxsU/Q4UGxvQFBsBARsoGgEBGwIN/ikB119eXhsU/Q4UGxsUAvIUG/62GxT+5RQaGhQBGxQbAAIAAP+CA20DfgAPAB8AAAE1Bxc1HgEXFAcXPgE1LgEDLgEnNjcnDgEVHgEXFTcnAgC2tnSaAyBCHB0Ezpp0mgMBH0IcHQTOmra2AvOLurmLA512RjxDLGM2ndL9ewOddkY8QyplNp3SBIu6uQAAAAAFAAD/mgPmA2YACwAXACAAKQAwAAAFJgAnNgA3FgAXBgADDgEHHgEXPgE3LgETIiY0NjIWFAYhIiY0NjIWFAYHHgEXPgE3AgDO/u4FBQESzs4BEgUF/u7OpNwEBNykpNwEBNweFhoaLBoa/mYWGhosGhoWAm5SUm4CZQUBEs7OARIFBf7uzs7+7gNkBNykpNwEBNykpNz+sRosGhosGhosGhosGmJSbgICblIAAwAA/8sDtQM1AA8AEwAZAAATITIWFREUBiMhLgEnETQ2FxEhEQEnNxcBF3wDCBQdHRT8+BUbAR1EAqj+fM5EigESRQM1HRT8+BQdARsVAwgUHWH9WAKo/erORIkBE0UABQAA/74DwwNlAAAADAAeACIAJwAANzMhMh0BFCMhIj0BNDcXFjMhMjcBNiYnASYGBwEGFgkBAwEHAQchJ08JA1AJCfywCQ+TDhEBZxgPARETBxn+oxo9Ff54EwgB0QFU0P6rMgFVAv60hhAJPwkJPwnScwoTAV0aPRUBEBQIGf4LGj8CGP72/vUBCkD+9QFpAAAAAAIAAP+4A8gDSAASABkAABMhMhYVERQGKwEHJyMiJjURNDYXETMXNzMRlALYJjU1Jra2trYmNTUm3JCQ3ANHNSb93iY1trY1JgIiJjVb/d6QkAIiAAQAAP/cA6QDJAATADEANQBFAAAlDgEHIS4BJxE+ATchMhYfAR4BFQMRNCYvAS4BIxUOAQchLgEnNSMRMzU+ATchHgEXFSM1IRUBNCYrASIGHQEUFjsBMjY1A6QBHRf9IRYdAQEdFgH8FzIRmRAVRgsFmgcYCQEdF/7FFh0BRkYBHRYBxxcdAUb+XAEYCghpBwoKB2kIChEXHQEBHRcC3xYdARUQmREyF/4WAeoJGQaaBgrjFx0BAR0X4/1E5BYdAQEdFuTS0gKrBwoKB68ICgoIAAAAAwAA/8ADwANAAAsAFwAbAAABBxc3JzcXBycHFzcBFwcnNxc3JwcBNycjARcBAm31ZUQibsttIkRm9f4fIm7LbSJEZvUBU/VlzAEPRP7xA0D1ZkQibctuIkRl9f7qIm3LbiJEZfX+rfVmAQ9E/vEAAAUAAAAAA8ADAAADAAcADQAOABcAABMRIREDIQEXNScBIxEhBSMeATI2NCYiBkADgGD+CAEf2dn+WUACwP3gMAEbKBsbKBsDAP0AAwD9YAEg2YjZ/lgCQKAUGxsoGxsAAAMAAAAAA94CtAAFAAsADwAAEwMTMwMTISMTAzMTATMTI9SysnaysgHidrKyd7H9m2qkagKz/s3+zQEzATP+zf7NATP+zQJmAAYAAAAAA8AC4AADAAcACwAPABMAFwAAASEVIREhFSERIRUhAzMVIxUzFSMVMxUjAQACwP1AAsD9QALA/UDAYGBgYGBgAbBgAZBg/gBgAsBg0GDQYAAAAAAGAAAAAAPAAvAAAwAHAAsAEQAeACgAAAEhFSERIRUhESEVIQMzNSMVMwMVMxUjFTMVIxUzNSMTNSMVMwcVMzUjAQACwP1AAsD9QALA/UCQIEAgMEAoKEBgICBgMzNgQAGwYAGQYP4AYAJQgCD9wCAPIBEggAEQICAzLSAAAQAAAAADgwMkABQAAAEhNRcHNSEOAQceARczFSMuASc+AQGIASzOzv7UWXcCAndZeHh/qgMDqgKseKWleAJ3WVl3AloDqn9/qgAAAAEAAAAAA6QDJAAUAAABITUHFzUhHgEXDgEHIxUzPgE3LgECeP7Uzs4BLFl3AgJ3WXh4f6oDA6oCrHilpXgCd1lZdwJaA6p/f6oAAAACAAAAAANxAtUACwAXAAABPgE3JwYHBh0BIREhPgE3JwYHBh0BIREBHAVJTj6BPC0BEgEyBEpOPoE8LQERAVR7gSFjOnFVvuoBKHuBIWM6cVW+6gEoAAAAAwAAAAADigL1AAkAFAAnAAABMjc2NCcmKwEVEzI3NjU0JyYrAREDITIXFhUUBwYHFhcWFRQHBiMhAms/Ijc6IUCx1VsnGEclP8RgATmANiAnFSY4HDEsQpD+zAG6ERySGQ/n/qc2IjBSHRD++QKUTi49Ri4YExYcMFZIOlgAAAADAAD//gPCAwIADwAyAF4AAAEyFh0BFAYjISImPQE0NjM3JicmNTQ2MzIXFhcWFxYVFA8BLwEmJyYjIgYVFBYXFhcWFwczFhUUBwYHBgcGBwYjIi8BJicmPQE0JyY/ATU3HwEWFx4CMzI+ATU0JyYDsgcJCQf8nAcJCQfjDgwYhoMZOiI3BQYHAwYqBxkbLD05REJrIzQdE3fPAxQMGBMkKCUoPjkpRh0HBAEBAQEzDwwDAxEtPCUgTC8pEQGACQcgBwkJByAHCSASFjItW4AKBhITKD4eCQ4BAwFLHC06LCVDIAoXDgyAFBs3MxwYEhcYCQsMFAgGBAcHNhgPExMWASQcCgQcJRUaPSIqJQ4AAAEAAAAAAtcB0wACAAABIRcC1/5S1wHT0QAAAAACAAAAAANkAuQAFwA7AAABIy4BNDY7ATIWHQEUBiImJzUBBiImNDcFPgEyFh0BDgEHIS4BJxE+ATczMhYUBgcjIgYVERQWMyEyNjUC9nUNExMNww0TExsSAf7yChoTCQE8ARIbEwE3Kf36KTcBATcpww4SEg7DDhISDgIGDhICowESGxMTDcMNExMNdf7xCRMaClYOEhIOwik3AQE3KQIGKTcBExsSARIO/foOEhIOAAIAAP/0A3IDDAADACQAADchFSERIRUPAREUFjMyNjURLwE1MxUPAREUBiMiJicuATURLwGPAtv9JQE7RQ9UX1dPEUX4Qw+ImVB4IxoWD0UxPQMYMQQO/qljVFpmAUoRBTExBRH+rIl6KiYfT0oBUw4EAAAAAQAA/9oC2AMmACsAAAE2JicmNTQ/AR4BMzI2NxYVFAcOAQcDBhYXFhUUByYnJiMiBgcmNTQ3PgE3AggFGikTAgMlSyAbTCIDEikhBX4FHCsRAycnIyQbSyIEESgkBQLHGhgFBBEEBAsEBAQEDQYTAQQaGv1yGhcGBA8IDQQBAwQEDQgPAwYYGgAAAAABAAAAAAOMAcIADAAAARQGIyEiJjQ2MyEyFgOMGhP9QhMaGhMCvhMaAZUTGRknGRkAAAAACgAA/+wDwgMBABAAFAAYABwAIAApAC4ANwA7AD8AAAEhMhYVERQGJyEiJjURNDYzEyMVMwU1IxUlMzUjJRUzNQUWNzI2NTYnIwUzNSMVJzUjBhcUFjMWNzM1IwU1IxUCAgGEIRsbIPzwHhsbHuHg4AEX3gEW4OD90t8BT21pAwgBAeH+6eDgOOEBAgoEZ6Pf3wH33wMBHCD9ZSEdARsfAqIdG/2/mAGYmAGYy5aWmAEBBwRHRZWVlsqYRkIECwEDlZaWlgAAAAAEAAD/8wONAw0AEwAnADsATwAAATc2Ji8BJgYfAR4BPwEXFj8BNicXFj8BFxY2PwE2Jg8BDgEfAQcGFwEuAQ8BJyYPAQYfAQcGFh8BFjYnASYPAScmBg8BBhY/AT4BLwE3NicBBjIEBAa0BAYBFQEJBTGXBgYwBQX2BgaXMQUJARUBBgS0BgQEMpcFBQETAQkFMZcGBjAFBZcyBAQGtAQGAf3iBgaXMQUJARUBBgS0BgQEMpcFBQK2MQUJARUBBgS0BgQEMpcFBTAGBjwFBZcyBAQGtAQGARUBCQUxlwYG/p8GBAQylwUFMAYGlzEFCQEVAQYEAR8FBZcyBAQGtAQGARUBCQUxlwYGAAAAAAASAN4AAQAAAAAAAAAVAAAAAQAAAAAAAQALABUAAQAAAAAAAgAHACAAAQAAAAAAAwALACcAAQAAAAAABAALADIAAQAAAAAABQALAD0AAQAAAAAABgALAEgAAQAAAAAACgArAFMAAQAAAAAACwATAH4AAwABBAkAAAAqAJEAAwABBAkAAQAWALsAAwABBAkAAgAOANEAAwABBAkAAwAWAN8AAwABBAkABAAWAPUAAwABBAkABQAWAQsAAwABBAkABgAWASEAAwABBAkACgBWATcAAwABBAkACwAmAY0KQ3JlYXRlZCBieSBpY29uZm9udAp2LW1kLWVkaXRvclJlZ3VsYXJ2LW1kLWVkaXRvcnYtbWQtZWRpdG9yVmVyc2lvbiAxLjB2LW1kLWVkaXRvckdlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAAoAQwByAGUAYQB0AGUAZAAgAGIAeQAgAGkAYwBvAG4AZgBvAG4AdAAKAHYALQBtAGQALQBlAGQAaQB0AG8AcgBSAGUAZwB1AGwAYQByAHYALQBtAGQALQBlAGQAaQB0AG8AcgB2AC0AbQBkAC0AZQBkAGkAdABvAHIAVgBlAHIAcwBpAG8AbgAgADEALgAwAHYALQBtAGQALQBlAGQAaQB0AG8AcgBHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAHMAdgBnADIAdAB0AGYAIABmAHIAbwBtACAARgBvAG4AdABlAGwAbABvACAAcAByAG8AagBlAGMAdAAuAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETARQBFQEWARcBGAEZARoBGwEcAR0BHgEfAAdwcmV2aWV3DXJlZnJlc2gtcmlnaHQMcmVmcmVzaC1sZWZ0B3pvb20taW4Iem9vbS1vdXQDdG9jBHN5bmMFZW1vamkIY2hlY2tib3gFY2xlYXIDdGlwBHNhdmUEbGluawNpbWcEY29kZQJ1bAJvbARyZWRvBHVuZG8FcXVvdGUEYm9sZA1zdHJpa2V0aHJvdWdoCmFycm93LWRvd24Lb3Blbi1pbi1uZXcKdW5kZXItbGluZQZpdGFsaWMKaG9yaXpvbnRhbAV0YWJsZQpmdWxsc2NyZWVuAAA=#iefix) format("embedded-opentype"),url(data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAz0AAsAAAAAGOAAAAymAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCHEAqdeJhSATYCJAN4Cz4ABCAFhREHgjgbNBUzo7aSkzJK9n86bg6FCWj1E8kVT3lBwQMmwaDKE4FVS4ZsHYjIATUvymoyi92tazaqecZRrcjTMH1l45+wK37agyfa7/dndudef6KSMI9Ei5qaRZK0TEmEAg1P8vP/v7zqV/O9X8GiBzyNTwvwplRlBFSuyXW0cmMFpJPFaR0ABMDNrkkBR3kig8JAxq/pD4AvvNYQbfP4o+ppG7DQ2YE+GInZuMaMjWWTq0xYZZHm5+tt/n8+MAcWgX1fp6XVYfd6BVLGvD3Zr+1gf4PjIk4WaQyAbWJUjrksgIA/1z7tZm5SAD4osVAVrkKekUk+Jnm703ecIy4R+QoJKA8QZREkoEQpapwvRAynvac6RSN1SohMRBqGgFDTnFRN2/EprYRtNst5z98Ip4nhwnfcSIWxyj1+fnhrzsBd+fnlyUJABsOJ0CUezOqJvQvx8bT/hdJg4R7OANOKwII5UJgimiY5tpbzUoexJ6d+mGpT4cUVS8oQcZOgSa9t3l7+/ofklbm8I7f/ssoLncbjSn/LpI6FThBTE3puyQpdo1v/nQcNdTVVFYalHKIkVubx5YVyshKSUorSMgIFEReSwtYxQDZqTQOvROdaAR2kDjBBagAbpAqgIBWAB2IAPogFBCAKCEEcQAQigCuKFLiBxEACijxoAvGAXhAf2AaSB96ChMBHkBzwCSQL/GceEnhD5iGJN9J0UnibhyLe2IoSUBSAHCQAjjAPBbx/mocIXzLX6zwOmqGCLXACPcEt0fZ3ubkSwj6TpZlJ6+IMVcZyDRFtkkK02UwJaaazJ9Nc7GjbQFdNJ9jpmB4EXlqJEmeVkPN4TWXv51tZgeuqqpubCAuFmB5GuXRvbkV9lcwTqGwUOIGqLEPUuSX+N2X2j+b8Sz3wn9m2Fo8z19Udp+LrDD/noFgtRogRsyIpMBkO4emoEaM0L962WcqhzXd2f1ZQKyLCWQ00YT2A+4T16NChyuaOPcKmRNhM5PYv7vzQMyK+VcZdl2mXtHUNZRAhj5+HoXnBR9VOy/lKysulwqN621WicLUn6ZtLZZ7iN2JFtwQ9s8PtnOo9EGshGiNnu4oF7IJLHKd0tnIxP2vDnh8GnVc5/7j7X4//Zfaf4XtEFQ0uLseRKs9+HJl7SSQwbc7paGowR+ZT/Y1cZw1MpzwIAIFzTEIMnU1R2UpriB0vqI8+zasNH2upK6zfVReS+IhqfQIVHxE1jubnq5vyhflo2438I7PhLKXPWvoPxHJl61U223cJCr3G/kQ+fRrhAJFWEfRRclCeesBah0SCFmMa0ZwEEFOUWjNkRGP6Op1p68ocatdqXF+rc63O5YANrLYiMDdYKlW9Q3gt+tVW3BexYkbUDFcUFtHiEhmLCmlJJ63AEhUUL8Q3vZwCwiFihESXwiGLiB21q96yRSZMI9K9yROu50/YgPRIgPx84Vmue1k2hPtzW7MB2SuvSu+xVr+5SbuOCEXW5gvE4OPWeMpli50DsSa84tXkHdcbbJRGrCkAMXmXy+lJy2eovj/1MjFcam29tnNfxjEQodCyRGd6H00bruNsT91OZWt0H4gFs3nhFTeXXEVzGT+d2K09qdNpaWR7RspUQuTeK2q5T4ix7nSPxAZw+jURZ0XgeZqSSGonJ3FJVTNP4fwOflyiXP+c6T/yZfmzufYhNMPgExGqWjGiq6AEZdBCHhHvr83EW8AJBS3ZI2w0nXVRh3gT+cCB6LLTxEhKupauzfIpEFlXbyaXzkaWngIRur7s+vXec8k0MXJv3EkbeZLz62KpESPy035Qzpxa0TIEWkUQaijBdqCkKq4/G1JcjpVbGwEnaLNnCMb1M9EkpcXA84yGJ9aGOn6BXi/M8ynCeKNgklyUozeyiNHAy9fp+Dkb8usNBp6q0MmYLKPS6Zsao6DlkMk16NK88TijUZC7k8Bmf+LTgvmOlb56w7c11EfnZUrDwoVrqKsNQypxI0bgKoUJ9weoDWIxXEkJDj+mOD5VIgjmWKJQhUs+2MjMf7QRV7dcgWrKqr7LWqNb4tVPnbWSESdMo5GF8PIV/MJ0/MF//w6KHz9h5AomTL/zazjiDV73aVpbylmBkrURVUg+Lkpdgnj3BfdFzLgDJuRvmQ4XXrmyEA5UO9Cu3Tt8gEZ2LxAEN3WNGjXJPtjeVLSoScXtHdk+jpDdq9X2ZhPGtY/s5ar23JsHrVboh8+zWmKhxbLK3WLtmaxmSp2kTHUdSwaz6tx7jteQcYLJ1EEUdbwj2EG/obsxp1JnrutX8Zm3luf6XUjdCDrANTJz6OBaYPvctT07dk9pRczzkfakPwmJ+xxrw+B86yXz2N0YoHwzGbXHUa1h0x2ATW3Foyje+60Tjm+1A/2Jehm8cwfiX6Y4PrXaKUtg9jHO3GoHfg0uR6PJwcEC87sB0rFQMs/Cc0a+Fl/GYNWrdcPG8K1WDJs0EeUoFCCLRVFRKPGU0NvMS7NbbqGDRI/Z5V7Dx5az5pxKmfDVa8RFYR7lAjWf4pJPZWeMGwwoWPJND4WHVOHOHQI711a6l0rvzqCX7kpBlBwlWqofqCzEBwSL6q+QxzKZPiYIla9eU1Yrzeb6bsqTFIle+SRpf9LTdEmnqi2Ep0mXl18WriWZyUPcMNImsjWkpmTgcUX+9au6HsNQzfCzZ4drUAyrV+9c4mFhGpabm5FtYTIxTJUA4m0gQNWin84uN29OtPmtXCWXH3ZZFADXysw0cGXrliDV4fXjSamdm4PUQUOX1Q8Ftk1XH57pCIg5dKha2xc5xP4SZ2SLtXKx2D9eLGfJxDJ0lV2tFbuwQrI4WOrrd5CDCet8uqzLzSJdPsW4jg5cMRMmi3SVdo1A1qxB/CO4WtCZ/uUOefieFG2mOLZWGxnd5JN/8DVHFgR7UrcfHCoDQ/fEs4fNNjHlW15cLS6rbw7ITXLMjj9OqpoTqQ3N/BebpEnObd/HKkzZk1A0MwRES7SkiSSxs9Vlbo9dLu1o9i0bN3KM3RPpVU4s0jhTfFWzq0Vp6/bHRmKRPu4JiUNdvMKsAzpGXnB1CA/a1ykJ60zpiYucouSeqg8mkcJITAQRiJ/s83KlHd/uLk63eyv1HssA1y9vvH4RfFvad1jiIGUcY0hrHDj0dgbTZC+1nxRdwEAdJMyj5IFaonYgmSgbHGNyHNCLIQFlEuU9AtMD7sTeEUUHKuC7orq8vKqirJKBaUCBD/x5SMQ/zJ80odus6vRyX8jPSst7p4CAdDLVONYVxXO9sTQodkiHXB8ilz2Gkto/LXXnCsgi+9RVS90c0iA3hsxC2sNTQcQRPdfEPTjSnrQaiF1xYyXrxPMk6z+ynde6LHVa6/xQ/tD0UABM9018UPeu71nDA0OWcTgYDGAHHiQBxSOB7qH+oSH8jOkRUOIS8HPxA8FS5IH+wXd9s5YAwg52SIRqGy+gAPK2EcZgOIMhP9+mVH6LLn62wYDDxhB422BBwDaeKiKEbTAolZzqDIav45U4OTdeA0babH+/QueDXAfAdtBRmFvSY8sfhUmBN+Aa6BU4mgaOCJzrORy49hzcAUO7kPrA3U7DlMC7cDl0W3EYmpVyAACQABB/H9m+GYk8JOCjGpPLoctHNiPXNp6MfLP9vw4KkYnIDdwVo0aeEvhVC6Svvo3chB4Mn4o7St5KHGu/mAYZ/yYUBFxe0NhVrJhvC9qfDtfcfnmstEy1jY6M3a44fJeSjuCfgoi4+V7ynXp1RDM+/ofcWR7TrmsR3HQhNAa1mB3wz0FS1vN1tQvZIshowz2dbnja063IiChdIA7dJi7dnx6aOa48knPJkjgAph5G00XR43Qj6Wm6VfRClP6znMEBjbhUIr442eHUMLJVjz9ijEpgVP1UTlOy9qfK6lZEU8A4If5C04eKdw5cfugfODtK6lDuI+suSODhSsm35ihilWWK6txz4xACqY7pCi1lK9Kddjsba0WpKQ5WAGNUAqPUz7C005RsbrICHYVoRiLn7+KE+AtNHypOH0FE/mE4z8Tgt0c5KO3zyEWn3ENeR5lPVzZHYoxVTrKsjcr5WhsEJUl0F195hT6JK7UdVnYnO3MqK7q89XZ8OdmerIfRz1E+FIklUplcoVSpNVqd3mA0mS1Wm93hdLk9Xl8wb2LcHO5bhrX75rZg17Sy2cg/wMr8RRQLlxble0G9jIX0JD+TniLS1S10C+1rekx1QMVjcd0kVzdMgkt+7GIz0WQw6sOIwoRhaNInQ9P/ngSTmoLZZmHnIS1T37Srikcx98K4jdKaOqRLXVkk3FctDLgYrlTMnFTB6VVL7F6U1vxTV2YdsLJ9CFkzkAYDAA==) format("woff2"),url(data:font/woff;base64,d09GRgABAAAAAA/oAAsAAAAAGOAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADMAAABCsP6z7U9TLzIAAAE8AAAARAAAAFY8fE0eY21hcAAAAYAAAAE4AAADkBM7XuZnbHlmAAACuAAACjAAAA74EokHnGhlYWQAAAzoAAAALwAAADYY8MqxaGhlYQAADRgAAAAeAAAAJAfeBBBobXR4AAANOAAAABIAAAB4eHEAAGxvY2EAAA1MAAAAPgAAAD45dDYWbWF4cAAADYwAAAAdAAAAIAEyAGtuYW1lAAANrAAAAVcAAAKRgDZgb3Bvc3QAAA8EAAAA5AAAATiv0n/QeJxjYGRgYOBikGPQYWB0cfMJYeBgYGGAAJAMY05meiJQDMoDyrGAaQ4gZoOIAgCKIwNPAHicY2BkYWGcwMDKwMHUyXSGgYGhH0IzvmYwYuRgYGBiYGVmwAoC0lxTGByesb3WYG7438AQw9zA0AAUZgTJAQDiSwwaeJzdkktOAkEQhr8ZEBRHmFFePjAmsCCGpTEuXMB9XLDnWJyAy/xNAgvwAGA1NQuWrO3KN/2YSvpRH3AFVIyJUYV0RGIjkldbTU7rFRqn9Sq/Nn/nzUYN1ZSpqUJ9jTTTXAsttdVeh5CGeijCNKzW+834eIQyN1dbw7PcXZnbOs+9sCV2Do8JH3yexVcZ32XAgBeeeeKR1O5StRsn9MjoU+eatt3ugXvuaNKiS07BDR1uqdk2tYtP9H9bFj/JTzkbxHo6p3Hm2BujpmOvjXLH3h0VjlUAtR2rBeo40T91neigek50U30nuqihQ/w/cuLpNHOIuXPHaosWjlUZLR3i/lsneq2dYw6gvWM2oINjXhBSxwwh1B1zhVBi1hByh9gXDrGfOuYUYeWYXaz3jnnGZuxQ+wMrwIcfeJyFVw1sHMUVnjezt+s723fe29vd853Pvh/71k4c/9x5b4kT26dgG0oQiUKgEChxm9goUEfiL7FKwE6oohCosFry26BUJagQKD9parVUAgvaUjWJgRAa0lqJCdCqaYUg4EBRbumb3bMxCCl7t29m3ryZ992b9968IwLBRyD0b6SU6CRFmgkBjegikdLEyBHdD1I16J1gNTkdHDaB0Qlz+ZSchzJK7U/Pn7c/pRTKzh8829Bw9qBLVw9TOrzapd2rKF3V7VD6tmYf1ZwX2vg7r/T13t7XSx1qzq5YPdw5swIpQgVCvnyJvcJWkHocmG25jKarCCbVBG25RYAo/aC7yLJFsFRgrWqNBqAFnpVVVR68+bO77+qvSf75gf1veZZ67Jdftj3wyBfA6NF2Pv9sQKVUrVH7GhbnP9g8vIcJJ/ajCApumxycP4vhVcTQQIiSzWghkevvAI4mBrlafdZS2RkjGWnxP4PO7kgSaj+w++4bBVf5UlSAUGDz4PrT9L65UNtXzW9bOLnN1b7/hICCG/7Q2JAhhBXt0EuCpJq0E1KnI4xkM4i1RjpoIQYt6HE1O0elmC44B+18UFE23QGpZLotl2XWFm8o4tuy3X5u0wZx02ZYvnUkZPfumxCEiX37jgnCsXuVmLImoCiBNdhZ61cU/9AWXyTk3XJHaGQrLN+8SdywyX7u9Iz4vn0T8JAjtnbuQu5qX8c979K4ExxwKsGBXhqnDj6uzL6Aui+NECE5qDAGvjzJnmINiE7CKKjFU5UTcl3CTBioXpVdAKbcllPQ3WQ/JNOG3Alj9NHCD/nbTM+HotFQwY/0jVAUIFofQULL7QY4ufqWW4pTIS5mj0VD9gehSCQE0VCUUNS9hQ2y+0mA1HCPlnQTfSYkoduYTcDQDjkLTaEiU7UMSsbG7t7L4kuqYsLEXuxBjdsdG6OfPPTi7x9ij23oXXx545rcY8cL97qDef04EHCS29+D+vayf7IBJ97j6MEtyHRi3XLins2JbIVbnds/MdMpTlEyYX/o8UBwYgKC6JsfThyYFITJAw6t1iKRxkjEHnBbja5fsWI97Z8rjavZ2hl5pPYLXHLm+wMUx0WOrxxhv2Um2kYhlXgqs6eBZsHT0PGUwLB00DexklAsFrr4uRqFWDd90t400b0dgj3M5MxQDKIql/h+4Qb6ZOHcRPeDoPQ4tuBx3I92KUNvTBKDECubyMQghAeO8WzpGg4tyKUNSIsSiJoXGEggJYxlXrbc6734vDfwM78Mt4YDICtSpf14pEO1h5QSeBNWvmE/nYHrqH14a4W3y4vf43f5FPgeSkBFqKTSLo100bB9wZ4GXx7JOn4+3B9+x/7CrsT4mPOL54NkpFwX1OWsbmXlR+k7adNMj+HD28nR0Ul2hZkunE6bY2NmmqLwTYXTo6M06fj3JDvAatGKrcQkPRh1eMqOEfEwUUUNVIPK5LZ0M2bQlFqcNFNy1uQC3PdSZkKFtvR8SIpoHm0RZHImOwAxvZDAtAIxDS7qGXlPhdpb6tkrhb04Y/8JZ3p7+dxrOvbsmyHsK1kn+XzSuhKfrPNlOj2DQmrFHjmj2xqc81aKe0Xfe+7ce4Xu993N3z9+nD7NFz5X4vOVFPPIOBtnecePoxg5km6hK0gGtoCNhUMJLCMFOtDB6f7u5Pojg8nugWm7ZqYH1073H4VAt/0xy08PdCcHj6xPdvdP2+dme7+eHnDmnbhBpeOMODminPhRq5MlWAJ004CUnPCkqtEobemkmGcjfXYJ1Jw6Zd+Yp+OFqRbMCFH8MlLA9YU+iJ/adsq+geZ/EeLsqPN7kJymh1FTKfo7UZiSZUoipbCsAlkldeLQoQ2HDsFZJBtfKPz8tgO30d/Yx+xjkIWs29rH6AARXZx0ysFZ6kQOIoWEmpCLL8uqKbX4AkF4+Zl3vM954Pk+GO2zSR8d73sDP3zLmX0/Ku4rY7zUf3NfE/dk6uz2ZkrhHIn3vq5oNJ6Pt+Tr6/N98XhfNtuX/0rl8pF4YTweiMvxEaiIx7ML4vy+Rd0PoP+GuEZTl8yEm6VQjVOOwDZoxKRy4saNlG68cWho+CBjB+kzQ088MYRj5K5iB4eHD7p3N+51YHYvTLcJ97ZGpG45M2SfwETVeOm9qLPXHfRtxwcJ4HJDlDA80Bxz+lDl+c41nZsXL4AgZISr3K4MK+/dnFjTfsd1L52D+jldMuML2+k08SJKzEmQsXJtBsaeqmDPdLroeBldU0OSKGlum0rQ27uSVnsi/8LbNxnhK+q6/tgHC0dycUNNX1bV2rhk1D4KL8pVP60M/Mv+VS7ZsiJWYf+PPnpNU0dvU1jRqlquv7L9hmJs2XhHU/SeDLmF68codC9BXuRkrbSRxnoiiwB0R3kAmgF5qaSohhyWLmVdbM4nlXSmca2R7gLTqgFNr6bZDF5xyGGHJK9XuriP0/f8ZeGtD1S2Jy2PKDFxnlQZbexY2L3k9lRbTNn4OguVhZXa+rr6zoUNvTFJAHyygTLG5AWL6+JXNzfIMOKV4nwnJPGglllw04hPDCr1ndVeP6bupVUL2hvrLo/7dH/ZSChqZavCQT3sLS0LlYiCJOXCWD5oUFvlE6rq1EhHcl6dv+gz9CS8xU8cEjo9aa/A0Ztk1gfW0vfRAxbhbLEOdQ2GZYIJSNssLGk4a07WLZaNaDE5xC+ZnEkv3FOuKOWvIokGwT7viyheWAzBqAJWQ+GLBguwfdUfDPodQkV/kD7Op9015ffYH3uViO96PvmKK01FbPluQX/hC8537pdP2Z2sDE8Z6xzLjV28vBAEYpCbwcw6Qzy0tNEEnPMI/UehDhb1BFau/u4yuefzywPb9iwfSkW0QE9rBwu3Cn77qTUrVw3AVbKntdUj2888+KN56ZplV8G1fqFYL/+dvsPSBKtnfpei83ThjYMKLe4laBUmuk7sOpGEAhYvM0o8kQaFsrql8ejVSRZsSHju91TNl5lhpGqjS5OCXF/roa9Fwh5BFoRSAZ9yUQEhEincGdFFIVBSLgBDZkmAieEImY3/h+EVvPEJzFSWaH+NPRxRCkuUSEShLykR2KFUVhqVlVzch/j/i/EApALjMUyqnLqpiVh44l3cI9w72ijWiJis1awHM18d5r06TH4ezULT5oyUh2dIvFZFHa2tWTjiYviX6ceJaDR+8aPqaLT63akp0E+DNjVVOH4Glg2uYyUA79r/npq67F2gPuHWx8+cgc/OMKiKF/oTWNjU0F/GooWXd8Nu/B7ZuXM3gCRc0bNjx86/7u5dIpQC27Fz5073bx758hP2E1aOd4KB2JchdiuHd35a5AVAF+haF+QMTnUth910AD22BiRRx7IggP9hAiDyIdYLWg4rIs4SkYcLOjEDWMgTM4IgHhZEUMHrad0lii0ezwVR3NXq8SJLFA6LgpDZhaWj8tX8rpk1hbPfIknHvslpEcXFc1bNaLL3fzU/uwvUfIskIf8HMrY5C3icY2BkYGAAYv3n3ALx/DZfGbhZGEDg1ovDUQj6fxMLA3MdkMvBwAQSBQAlDQqwAHicY2BkYGBu+N/AEMNSyAAELAwMjAyoQA4AUi0C+AAAeJxjYWBgYKE2LiSsBgAs+wDqAAAAAAAAAFgAmgDcATgBggHAAfgCTgJ+AsgC8gNcA5QDxAPoBBQEUgR4BJ4EygUKBZIFoAX4BjIGeAaSBvYHfAAAeJxjYGRgYJBjiGfgYgABJiDmArP/g/kMABWhAZ4AAAB4nHWRzUrDQBSFT/qjmIALxa7HjYKS9GcjFFwVWtcVum+TSZqSZMJkWujGN3Dh8/gUvoA+hXuP6Qil2Ay5fOfMmZvLBMAFPuFg91zx3bEDj2rHDZxCWG7Sv7XcIg8st8mPlk/IT5Zd3OPZsodLvLCD0zqjusObZQcdvFtu4Bwflpv0vyy3yN+W2+g4nuUT8rVlFzPnwbKHG+fVHWk5NzISi61IQ1XEqjDuxs8jX0apUXoqk3U213vOHs6krlJViH7Q23MnspD6r2e1SQbGxCLWKhdjNpdZpkSp1UqGJlgaUw673dj6QahyjjiChsQchjXitS6wZU0RQqFAXFfD3AY+cib8OpfSUzw5pUqwRsYO+kjmf3dGpVFR/35BoI8AvSPZCVVR5w/nrHgi4U83XDF1zIxiB4GxnVxytowsUNZ7Kzoh/QDL+lSJIbpc8UE+qG8g/wEBCnU7AHicbY1JdoMwEEQpEIZgk3ke7BNwKBANKAg1aYRJfPrwkpdd/qbeX1RVEAa/ZMH/7BEigkKMDRKkOEOGLXbIcY4LXOIK17jBLe5wjwc84gnPeMEr3rDHIUhGoaOhJRdqhKauENN2fvdnlhqfnJiHwrj0J3n2kWetpi+nYxr43aS6I91X/BlrS6VE3oxqKo+krHF9ZIZWaa4pnG3IVgnVrGZXc/wxsydVsa3zyYvpyXfCc9tlpQgvRc2L2/JIbn0uHC3ZWiIp1k3aGF9ao7OOxZzYrRL7srKUNbO1kxYiFwTfFupPmA==) format("woff"),url(data:font/ttf;base64,AAEAAAALAIAAAwAwR1NVQrD+s+0AAAE4AAAAQk9TLzI8fE0eAAABfAAAAFZjbWFwEzte5gAAAkwAAAOQZ2x5ZhKJB5wAAAYcAAAO+GhlYWQY8MqxAAAA4AAAADZoaGVhB94EEAAAALwAAAAkaG10eHhxAAAAAAHUAAAAeGxvY2E5dDYWAAAF3AAAAD5tYXhwATIAawAAARgAAAAgbmFtZYA2YG8AABUUAAACkXBvc3Sv0n/QAAAXqAAAATgAAQAAA4D/gABcBHEAAAAABAAAAQAAAAAAAAAAAAAAAAAAAB4AAQAAAAEAAC/nCxBfDzz1AAsEAAAAAADa6MNaAAAAANrow1oAAP+CBAADfgAAAAgAAgAAAAAAAAABAAAAHgBfAAoAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQQEAZAABQAIAokCzAAAAI8CiQLMAAAB6wAyAQgAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA5gbrKAOA/4AAXAOAAIAAAAABAAAAAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABHEAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAABQAAAAMAAAAsAAAABAAAAiQAAQAAAAABHgADAAEAAAAsAAMACgAAAiQABADyAAAAKgAgAAQACuYG5gzmDuYR5hjmJOZB5nDme+az5uzm8eb+5wLnB+cR50Dnwejx6yj//wAA5gbmDOYO5hDmFOYj5kHmcOZ75rPm7Obw5v7nAucH5w/nQOfB6PHrKP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABACoAKgAqACoALAA0ADYANgA2ADYANgA2ADgAOAA4ADgAPAA8ADwAPAAAAB0AHAAbABoAGQACAAMABAAFAAEAFwAMABgABwAIABQACgATABIADQAOAA8AFgAQABEACQAVAAsABgAAAQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAABbAAAAAAAAAAdAADmBgAA5gYAAAAdAADmDAAA5gwAAAAcAADmDgAA5g4AAAAbAADmEAAA5hAAAAAaAADmEQAA5hEAAAAZAADmFAAA5hQAAAACAADmFQAA5hUAAAADAADmFgAA5hYAAAAEAADmFwAA5hcAAAAFAADmGAAA5hgAAAABAADmIwAA5iMAAAAXAADmJAAA5iQAAAAMAADmQQAA5kEAAAAYAADmcAAA5nAAAAAHAADmewAA5nsAAAAIAADmswAA5rMAAAAUAADm7AAA5uwAAAAKAADm8AAA5vAAAAATAADm8QAA5vEAAAASAADm/gAA5v4AAAANAADnAgAA5wIAAAAOAADnBwAA5wcAAAAPAADnDwAA5w8AAAAWAADnEAAA5xAAAAAQAADnEQAA5xEAAAARAADnQAAA50AAAAAJAADnwQAA58EAAAAVAADo8QAA6PEAAAALAADrKAAA6ygAAAAGAAAAAABYAJoA3AE4AYIBwAH4Ak4CfgLIAvIDXAOUA8QD6AQUBFIEeASeBMoFCgWSBaAF+AYyBngGkgb2B3wAAAAEAAAAAAQAAtYACwAXACMALwAAARYAFwYAByYAJzYAFw4BBx4BFz4BNy4BBx4BFw4BBy4BJz4BFw4BBx4BFz4BNy4BAgDyAQwCAv708vL+9AICAQzyquIpKeKqquIpKeKqX38CAn9fX38CAn9fRFoCAlpERFoCAloC1Rb+zBYW/swWFgE0FhYBNCoLz0ZGzwsLz0ZGzzUCf19ffwICf19ffz4CWkREWgICWkREWgAAAAEAAP++A8IDUgAoAAABNTQ2MhYXFQ4BByMuATQ2OwEuAQcOARceARc+ATczDgEHLgEnPgIEAzEVHxYBARYPrhEVFRFtXPd0c2UfIsaDn9MFSwX+v7/+BQGP+gEDAsw6ERUVEa4PFQICFR8VYCk8QOWBf5kDBNSfv/4FBf6/iNxtKwAAAAEAAP++A8MDUgApAAATMzIWFAYHIy4BPQE0NjIWHQE2JBceARcOAQcuASczHgEXPgE3LgEnJgbrbREVFRGuERUVIRVlAQN9fZABBf6/v/4FSwTUn5/TBQGBbW7eAn0VHxYBARYPrhEVFRE6Wis0OdyIv/4FBf6/n9QEBNSfdrssKTIAAAMAAP++A8IDRgASAB4AOgAAJRcWFAYiLwEGJCcmEjc2JBcWEgU+ATcuAScOAQceARM1NDYyFh0BMzIWFAYrARUUBiImPQEjIiY0NjMDN4IJFBoKgor+r3x2BnyBAVCGgBT+RpzOBATOnJzNBATNexMdE2MPExMPYxMdE2QOExMOeIIKGhQJgnEUgIYBUIF8BnZ8/q/eBM6cnM0EBM2cnM4Bi2QOExMOZBMdE2MPExMPYxMdEwAAAAADAAD/vgPCA0YAEgAeACoAACUXFhQGIi8BBiQnJhI3NiQXFhIFPgE3LgEnDgEHHgETITIWFAYjISImNDYDN4IJFBoKgor+r3x2BnyBAVCGgBT+RpzOBATOnJzNBATNFwEKDxMTD/72DhMTeIIKGhQJgnEUgIYBUIF8BnZ8/q/eBM6cnM0EBM2cnM4BixMdExMdEwAABAAA/9cDqQMpAAMABwAXACQAABMRIRElITUhJyEyFhURFAYjISImNRE0NhMyFhcRDgEiJicRPgG2ApT9bAKU/WwvAvIUGxsU/Q4UGxvQFBsBARsoGgEBGwIN/ikB119eXhsU/Q4UGxsUAvIUG/62GxT+5RQaGhQBGxQbAAIAAP+CA20DfgAPAB8AAAE1Bxc1HgEXFAcXPgE1LgEDLgEnNjcnDgEVHgEXFTcnAgC2tnSaAyBCHB0Ezpp0mgMBH0IcHQTOmra2AvOLurmLA512RjxDLGM2ndL9ewOddkY8QyplNp3SBIu6uQAAAAAFAAD/mgPmA2YACwAXACAAKQAwAAAFJgAnNgA3FgAXBgADDgEHHgEXPgE3LgETIiY0NjIWFAYhIiY0NjIWFAYHHgEXPgE3AgDO/u4FBQESzs4BEgUF/u7OpNwEBNykpNwEBNweFhoaLBoa/mYWGhosGhoWAm5SUm4CZQUBEs7OARIFBf7uzs7+7gNkBNykpNwEBNykpNz+sRosGhosGhosGhosGmJSbgICblIAAwAA/8sDtQM1AA8AEwAZAAATITIWFREUBiMhLgEnETQ2FxEhEQEnNxcBF3wDCBQdHRT8+BUbAR1EAqj+fM5EigESRQM1HRT8+BQdARsVAwgUHWH9WAKo/erORIkBE0UABQAA/74DwwNlAAAADAAeACIAJwAANzMhMh0BFCMhIj0BNDcXFjMhMjcBNiYnASYGBwEGFgkBAwEHAQchJ08JA1AJCfywCQ+TDhEBZxgPARETBxn+oxo9Ff54EwgB0QFU0P6rMgFVAv60hhAJPwkJPwnScwoTAV0aPRUBEBQIGf4LGj8CGP72/vUBCkD+9QFpAAAAAAIAAP+4A8gDSAASABkAABMhMhYVERQGKwEHJyMiJjURNDYXETMXNzMRlALYJjU1Jra2trYmNTUm3JCQ3ANHNSb93iY1trY1JgIiJjVb/d6QkAIiAAQAAP/cA6QDJAATADEANQBFAAAlDgEHIS4BJxE+ATchMhYfAR4BFQMRNCYvAS4BIxUOAQchLgEnNSMRMzU+ATchHgEXFSM1IRUBNCYrASIGHQEUFjsBMjY1A6QBHRf9IRYdAQEdFgH8FzIRmRAVRgsFmgcYCQEdF/7FFh0BRkYBHRYBxxcdAUb+XAEYCghpBwoKB2kIChEXHQEBHRcC3xYdARUQmREyF/4WAeoJGQaaBgrjFx0BAR0X4/1E5BYdAQEdFuTS0gKrBwoKB68ICgoIAAAAAwAA/8ADwANAAAsAFwAbAAABBxc3JzcXBycHFzcBFwcnNxc3JwcBNycjARcBAm31ZUQibsttIkRm9f4fIm7LbSJEZvUBU/VlzAEPRP7xA0D1ZkQibctuIkRl9f7qIm3LbiJEZfX+rfVmAQ9E/vEAAAUAAAAAA8ADAAADAAcADQAOABcAABMRIREDIQEXNScBIxEhBSMeATI2NCYiBkADgGD+CAEf2dn+WUACwP3gMAEbKBsbKBsDAP0AAwD9YAEg2YjZ/lgCQKAUGxsoGxsAAAMAAAAAA94CtAAFAAsADwAAEwMTMwMTISMTAzMTATMTI9SysnaysgHidrKyd7H9m2qkagKz/s3+zQEzATP+zf7NATP+zQJmAAYAAAAAA8AC4AADAAcACwAPABMAFwAAASEVIREhFSERIRUhAzMVIxUzFSMVMxUjAQACwP1AAsD9QALA/UDAYGBgYGBgAbBgAZBg/gBgAsBg0GDQYAAAAAAGAAAAAAPAAvAAAwAHAAsAEQAeACgAAAEhFSERIRUhESEVIQMzNSMVMwMVMxUjFTMVIxUzNSMTNSMVMwcVMzUjAQACwP1AAsD9QALA/UCQIEAgMEAoKEBgICBgMzNgQAGwYAGQYP4AYAJQgCD9wCAPIBEggAEQICAzLSAAAQAAAAADgwMkABQAAAEhNRcHNSEOAQceARczFSMuASc+AQGIASzOzv7UWXcCAndZeHh/qgMDqgKseKWleAJ3WVl3AloDqn9/qgAAAAEAAAAAA6QDJAAUAAABITUHFzUhHgEXDgEHIxUzPgE3LgECeP7Uzs4BLFl3AgJ3WXh4f6oDA6oCrHilpXgCd1lZdwJaA6p/f6oAAAACAAAAAANxAtUACwAXAAABPgE3JwYHBh0BIREhPgE3JwYHBh0BIREBHAVJTj6BPC0BEgEyBEpOPoE8LQERAVR7gSFjOnFVvuoBKHuBIWM6cVW+6gEoAAAAAwAAAAADigL1AAkAFAAnAAABMjc2NCcmKwEVEzI3NjU0JyYrAREDITIXFhUUBwYHFhcWFRQHBiMhAms/Ijc6IUCx1VsnGEclP8RgATmANiAnFSY4HDEsQpD+zAG6ERySGQ/n/qc2IjBSHRD++QKUTi49Ri4YExYcMFZIOlgAAAADAAD//gPCAwIADwAyAF4AAAEyFh0BFAYjISImPQE0NjM3JicmNTQ2MzIXFhcWFxYVFA8BLwEmJyYjIgYVFBYXFhcWFwczFhUUBwYHBgcGBwYjIi8BJicmPQE0JyY/ATU3HwEWFx4CMzI+ATU0JyYDsgcJCQf8nAcJCQfjDgwYhoMZOiI3BQYHAwYqBxkbLD05REJrIzQdE3fPAxQMGBMkKCUoPjkpRh0HBAEBAQEzDwwDAxEtPCUgTC8pEQGACQcgBwkJByAHCSASFjItW4AKBhITKD4eCQ4BAwFLHC06LCVDIAoXDgyAFBs3MxwYEhcYCQsMFAgGBAcHNhgPExMWASQcCgQcJRUaPSIqJQ4AAAEAAAAAAtcB0wACAAABIRcC1/5S1wHT0QAAAAACAAAAAANkAuQAFwA7AAABIy4BNDY7ATIWHQEUBiImJzUBBiImNDcFPgEyFh0BDgEHIS4BJxE+ATczMhYUBgcjIgYVERQWMyEyNjUC9nUNExMNww0TExsSAf7yChoTCQE8ARIbEwE3Kf36KTcBATcpww4SEg7DDhISDgIGDhICowESGxMTDcMNExMNdf7xCRMaClYOEhIOwik3AQE3KQIGKTcBExsSARIO/foOEhIOAAIAAP/0A3IDDAADACQAADchFSERIRUPAREUFjMyNjURLwE1MxUPAREUBiMiJicuATURLwGPAtv9JQE7RQ9UX1dPEUX4Qw+ImVB4IxoWD0UxPQMYMQQO/qljVFpmAUoRBTExBRH+rIl6KiYfT0oBUw4EAAAAAQAA/9oC2AMmACsAAAE2JicmNTQ/AR4BMzI2NxYVFAcOAQcDBhYXFhUUByYnJiMiBgcmNTQ3PgE3AggFGikTAgMlSyAbTCIDEikhBX4FHCsRAycnIyQbSyIEESgkBQLHGhgFBBEEBAsEBAQEDQYTAQQaGv1yGhcGBA8IDQQBAwQEDQgPAwYYGgAAAAABAAAAAAOMAcIADAAAARQGIyEiJjQ2MyEyFgOMGhP9QhMaGhMCvhMaAZUTGRknGRkAAAAACgAA/+wDwgMBABAAFAAYABwAIAApAC4ANwA7AD8AAAEhMhYVERQGJyEiJjURNDYzEyMVMwU1IxUlMzUjJRUzNQUWNzI2NTYnIwUzNSMVJzUjBhcUFjMWNzM1IwU1IxUCAgGEIRsbIPzwHhsbHuHg4AEX3gEW4OD90t8BT21pAwgBAeH+6eDgOOEBAgoEZ6Pf3wH33wMBHCD9ZSEdARsfAqIdG/2/mAGYmAGYy5aWmAEBBwRHRZWVlsqYRkIECwEDlZaWlgAAAAAEAAD/8wONAw0AEwAnADsATwAAATc2Ji8BJgYfAR4BPwEXFj8BNicXFj8BFxY2PwE2Jg8BDgEfAQcGFwEuAQ8BJyYPAQYfAQcGFh8BFjYnASYPAScmBg8BBhY/AT4BLwE3NicBBjIEBAa0BAYBFQEJBTGXBgYwBQX2BgaXMQUJARUBBgS0BgQEMpcFBQETAQkFMZcGBjAFBZcyBAQGtAQGAf3iBgaXMQUJARUBBgS0BgQEMpcFBQK2MQUJARUBBgS0BgQEMpcFBTAGBjwFBZcyBAQGtAQGARUBCQUxlwYG/p8GBAQylwUFMAYGlzEFCQEVAQYEAR8FBZcyBAQGtAQGARUBCQUxlwYGAAAAAAASAN4AAQAAAAAAAAAVAAAAAQAAAAAAAQALABUAAQAAAAAAAgAHACAAAQAAAAAAAwALACcAAQAAAAAABAALADIAAQAAAAAABQALAD0AAQAAAAAABgALAEgAAQAAAAAACgArAFMAAQAAAAAACwATAH4AAwABBAkAAAAqAJEAAwABBAkAAQAWALsAAwABBAkAAgAOANEAAwABBAkAAwAWAN8AAwABBAkABAAWAPUAAwABBAkABQAWAQsAAwABBAkABgAWASEAAwABBAkACgBWATcAAwABBAkACwAmAY0KQ3JlYXRlZCBieSBpY29uZm9udAp2LW1kLWVkaXRvclJlZ3VsYXJ2LW1kLWVkaXRvcnYtbWQtZWRpdG9yVmVyc2lvbiAxLjB2LW1kLWVkaXRvckdlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAAoAQwByAGUAYQB0AGUAZAAgAGIAeQAgAGkAYwBvAG4AZgBvAG4AdAAKAHYALQBtAGQALQBlAGQAaQB0AG8AcgBSAGUAZwB1AGwAYQByAHYALQBtAGQALQBlAGQAaQB0AG8AcgB2AC0AbQBkAC0AZQBkAGkAdABvAHIAVgBlAHIAcwBpAG8AbgAgADEALgAwAHYALQBtAGQALQBlAGQAaQB0AG8AcgBHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAHMAdgBnADIAdAB0AGYAIABmAHIAbwBtACAARgBvAG4AdABlAGwAbABvACAAcAByAG8AagBlAGMAdAAuAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETARQBFQEWARcBGAEZARoBGwEcAR0BHgEfAAdwcmV2aWV3DXJlZnJlc2gtcmlnaHQMcmVmcmVzaC1sZWZ0B3pvb20taW4Iem9vbS1vdXQDdG9jBHN5bmMFZW1vamkIY2hlY2tib3gFY2xlYXIDdGlwBHNhdmUEbGluawNpbWcEY29kZQJ1bAJvbARyZWRvBHVuZG8FcXVvdGUEYm9sZA1zdHJpa2V0aHJvdWdoCmFycm93LWRvd24Lb3Blbi1pbi1uZXcKdW5kZXItbGluZQZpdGFsaWMKaG9yaXpvbnRhbAV0YWJsZQpmdWxsc2NyZWVuAAA=) format("truetype")}[class*=v-md-icon-]{font-size:16px;font-family:v-md-iconfont!important;font-style:normal!important;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.v-md-icon-preview:before{content:"\e618"}.v-md-icon-refresh-right:before{content:"\e614"}.v-md-icon-refresh-left:before{content:"\e615"}.v-md-icon-zoom-in:before{content:"\e616"}.v-md-icon-zoom-out:before{content:"\e617"}.v-md-icon-toc:before{content:"\eb28"}.v-md-icon-sync:before{content:"\e670"}.v-md-icon-emoji:before{content:"\e67b"}.v-md-icon-checkbox:before{content:"\e740"}.v-md-icon-clear:before{content:"\e6ec"}.v-md-icon-tip:before{content:"\e8f1"}.v-md-icon-save:before{content:"\e624"}.v-md-icon-link:before{content:"\e6fe"}.v-md-icon-img:before{content:"\e702"}.v-md-icon-code:before{content:"\e707"}.v-md-icon-ul:before{content:"\e710"}.v-md-icon-ol:before{content:"\e711"}.v-md-icon-redo:before{content:"\e6f1"}.v-md-icon-undo:before{content:"\e6f0"}.v-md-icon-quote:before{content:"\e6b3"}.v-md-icon-bold:before{content:"\e7c1"}.v-md-icon-strikethrough:before{content:"\e70f"}.v-md-icon-arrow-down:before{content:"\e623"}.v-md-icon-open-in-new:before{content:"\e641"}.v-md-icon-under-line:before{content:"\e611"}.v-md-icon-italic:before{content:"\e610"}.v-md-icon-horizontal:before{content:"\e60e"}.v-md-icon-table:before{content:"\e60c"}.v-md-icon-fullscreen:before{content:"\e606"}.v-md-editor__tooltip{z-index:101;padding:4px 6px;color:#fff;font-size:12px;line-height:1;white-space:nowrap;background-color:#878787;border-radius:2px}.v-md-editor__menu,.v-md-editor__tooltip{position:absolute;box-shadow:0 2px 12px #0000001a}.v-md-editor__menu{top:38px;z-index:99;list-style:none;background-color:#fff;border-radius:3px;-webkit-transform-origin:center top;transform-origin:center top}.v-md-editor__menu::-webkit-scrollbar{width:6px}.v-md-editor__menu::-webkit-scrollbar-thumb{background-color:#9093994d;border-radius:4px}.v-md-editor__menu::-webkit-scrollbar-thumb:hover{background-color:#90939980}.v-md-editor__menu-item{color:#595959;font-weight:400;font-size:14px;white-space:nowrap;list-style:none}.v-md-editor__menu-item:hover{background-color:#f5f5f5}.v-md-editor__menu--list{padding:5px 0}.v-md-editor__menu--list .v-md-editor__menu-item{padding:0 24px;line-height:34px;text-align:left}.v-md-editor__menu--panel{max-height:200px;padding:12px 10px;overflow-y:auto}.v-md-editor__menu--panel .v-md-editor__menu-row{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:nowrap;flex-wrap:nowrap}.v-md-editor__menu--panel .v-md-editor__menu-row:not(:last-child){margin-bottom:6px}.v-md-editor__menu--panel .v-md-editor__menu-item{display:inline-block;padding:8px 0;line-height:1;text-align:center;border-radius:2px}.v-md-editor__menu--panel .v-md-editor__menu-item:not(:last-child){margin-right:4px}.v-md-editor__menu-ctrl{position:absolute;top:0;right:0;display:none}.v-md-editor__toolbar-item{position:relative;height:28px;padding:0 6px;color:#595959;font-size:16px;line-height:28px;text-align:center;border-radius:4px;cursor:pointer;-webkit-transition:all .2s linear 0s;transition:all .2s linear 0s}.v-md-editor__toolbar-item:not(:first-child){margin-left:4px}.v-md-editor__toolbar-item:hover{background:#f5f5f5}.v-md-editor__toolbar-item--menu{padding-right:16px}.v-md-editor__toolbar-item--menu .v-md-editor__menu-ctrl{display:inline-block}.v-md-editor__toolbar-item--active,.v-md-editor__toolbar-item--active:hover{background:#e8e8e8}.v-md-editor__toolbar{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;box-sizing:border-box;width:100%;padding:6px;border-bottom:1px solid #ddd}.v-md-editor__toolbar-left,.v-md-editor__toolbar-right{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;margin:0;padding:0;list-style:none}.v-md-editor__toolbar-left+.v-md-editor__toolbar-right{margin-left:60px}.v-md-editor__toolbar-divider{position:relative;height:28px;margin:0 10px}.v-md-editor__toolbar-divider+li.v-md-editor__toolbar-item{margin-left:0}.v-md-editor__toolbar-divider:before{position:absolute;top:4px;bottom:4px;border-left:1px solid #ddd;content:""}.v-md-editor{display:-webkit-box;display:-webkit-flex;display:flex;width:100%;background-color:#fff;border-radius:4px;box-shadow:0 2px 12px #0000001a}.v-md-editor__left-area,.v-md-editor__right-area{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;width:200px}.v-md-editor__left-area{height:100%;overflow:hidden;border-right:1px solid #ddd;-webkit-transition:.3s;transition:.3s}.v-md-editor__left-area-title{position:relative;height:41px;padding:0 14px;color:#2c3e50;font-weight:600;font-size:16px;line-height:41px;white-space:nowrap}.v-md-editor__left-area-title:after{position:absolute;right:0;bottom:0;left:0;border-bottom:1px solid #ddd;content:""}.v-md-editor__left-area-body{-webkit-box-flex:1;-webkit-flex:1;flex:1;padding:8px 14px;overflow:hidden}.v-md-editor--left-area-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;flex-direction:row-reverse}.v-md-editor--left-area-reverse .v-md-editor__left-area{border-right:none;border-left:1px solid #ddd}.v-md-editor__right-area{-webkit-box-flex:1;-webkit-flex:1;flex:1}.v-md-editor--preview{box-shadow:none}.v-md-editor--fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1001}.v-md-editor__main{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-flex:1;-webkit-flex:1;flex:1;width:100%;overflow:hidden}.v-md-editor__editor-wrapper,.v-md-editor__preview-wrapper{position:relative;-webkit-box-flex:1;-webkit-flex:1;flex:1;height:100%;overflow:hidden}.v-md-editor__editor-wrapper{cursor:text;-webkit-user-select:none;user-select:none}.v-md-editor--editable .v-md-editor__editor-wrapper{border-right:1px solid #ddd}.scrollbar{height:100%;overflow:hidden}.scrollbar:active .scrollbar__bar,.scrollbar:focus .scrollbar__bar,.scrollbar:hover .scrollbar__bar{opacity:1}.scrollbar__wrap{height:100%;overflow-x:hidden}.scrollbar__wrap--hidden-default{scrollbar-width:none}.scrollbar__wrap--hidden-default::-webkit-scrollbar{width:0;height:0}.scrollbar__thumb{position:relative;display:block;width:0;height:0;background-color:#9093994d;border-radius:inherit;cursor:pointer;-webkit-transition:background-color .3s;transition:background-color .3s}.scrollbar__thumb:hover{background-color:#90939980}.scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px;cursor:pointer;opacity:0;-webkit-transition:opacity .34s ease-out;transition:opacity .34s ease-out}.scrollbar__bar.is-vertical{top:2px;width:6px}.scrollbar__bar.is-vertical>div{width:100%}.scrollbar__bar.is-horizontal{left:2px;height:6px}.scrollbar__bar.is-horizontal>div{height:100%}.v-md-editor__toc-nav{margin:0;padding:0;list-style:none}.v-md-editor__toc-nav-item{position:relative;height:38px;overflow:hidden;color:#2c3e50;line-height:38px;white-space:nowrap;text-overflow:ellipsis;cursor:pointer}.v-md-editor__toc-nav-item:hover .v-md-editor__toc-nav-title{font-size:17px;-webkit-transform-origin:center center;transform-origin:center center}.v-md-editor__toc-nav-title{position:relative;font-size:16px;-webkit-transition:.3s;transition:.3s} diff --git a/src/main/resources/static/assets/base-editor.a9da2621.js b/src/main/resources/static/assets/base-editor.a9da2621.js new file mode 100644 index 0000000..30cd354 --- /dev/null +++ b/src/main/resources/static/assets/base-editor.a9da2621.js @@ -0,0 +1,15 @@ +import{K as Ot,M as Tt}from"./index.bbf7818f.js";import{r as St}from"./vue.runtime.esm-bundler.1e3a6623.js";function jt(de,we){return we.forEach(function(ae){ae&&typeof ae!="string"&&!Array.isArray(ae)&&Object.keys(ae).forEach(function(y){if(y!=="default"&&!(y in de)){var r=Object.getOwnPropertyDescriptor(ae,y);Object.defineProperty(de,y,r.get?r:{enumerable:!0,get:function(){return ae[y]}})}})}),Object.freeze(Object.defineProperty(de,Symbol.toStringTag,{value:"Module"}))}var Me={exports:{}};(function(de,we){(function(y,r){de.exports=r(St)})(typeof self!="undefined"?self:Tt,function(ae){return function(y){var r={};function n(i){if(r[i])return r[i].exports;var a=r[i]={i,l:!1,exports:{}};return y[i].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=y,n.c=r,n.d=function(i,a,t){n.o(i,a)||Object.defineProperty(i,a,{enumerable:!0,get:t})},n.r=function(i){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})},n.t=function(i,a){if(a&1&&(i=n(i)),a&8||a&4&&typeof i=="object"&&i&&i.__esModule)return i;var t=Object.create(null);if(n.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:i}),a&2&&typeof i!="string")for(var h in i)n.d(t,h,function(e){return i[e]}.bind(null,h));return t},n.n=function(i){var a=i&&i.__esModule?function(){return i.default}:function(){return i};return n.d(a,"a",a),a},n.o=function(i,a){return Object.prototype.hasOwnProperty.call(i,a)},n.p="",n(n.s=108)}([function(y,r){y.exports=ae},function(y,r,n){n.d(r,"a",function(){return i}),n.d(r,"b",function(){return a}),n.d(r,"c",function(){return t}),n.d(r,"d",function(){return h}),n.d(r,"e",function(){return e}),n.d(r,"f",function(){return m}),n.d(r,"g",function(){return d}),n.d(r,"h",function(){return b}),n.d(r,"i",function(){return C}),n.d(r,"j",function(){return T}),n.d(r,"k",function(){return s}),n.d(r,"l",function(){return O}),n.d(r,"m",function(){return g}),n.d(r,"n",function(){return R}),n.d(r,"o",function(){return B}),n.d(r,"p",function(){return I}),n.d(r,"q",function(){return D}),n.d(r,"r",function(){return _}),n.d(r,"s",function(){return F}),n.d(r,"t",function(){return G}),n.d(r,"u",function(){return K}),n.d(r,"v",function(){return W});var i="bold",a="clear",t="code",h="fullscreen",e="h1",m="h2",d="h3",b="h4",C="h5",T="h6",s="hr",O="image",g="italic",R="link",B="ol",I="quote",D="redo",_="strikethrough",F="sync-scroll",G="table",K="ul",W="undo"},function(y,r,n){n.d(r,"f",function(){return a}),n.d(r,"a",function(){return h}),n.d(r,"c",function(){return e}),n.d(r,"d",function(){return m}),n.d(r,"e",function(){return d}),n.d(r,"b",function(){return b});var i=Object.prototype.toString,a=function(T){return i.call(T)==="[object Object]"};function t(C,T){return Object.keys(T).forEach(function(s){C[s]=T[s]}),C}function h(C){for(var T={},s=0;se?"down":"up",O=(m-e)*(C/100),g,R=function B(){e+=O,s==="down"&&e>=m||s==="up"&&e<=m?(d(m),window.cancelAnimationFrame(g),T&&window.requestAnimationFrame(T)):(d(e),window.requestAnimationFrame(B))};window.requestAnimationFrame(R)}function t(h){var e=h.scrollTarget,m=h.scrollToTop,d=h.percent,b=d===void 0?10:d,C=h.onScrollEnd,T=Object(i.a)(e);a({currentScrollTop:T,scrollToTop:m,scrollFn:function(O){return Object(i.b)(e,O)},percent:b,onScrollEnd:C})}},function(y,r,n){n.r(r);var i=n(0);function a(g,R,B,I,D,_){return Object(i.openBlock)(),Object(i.createBlock)("div",{class:"v-md-editor-preview",style:{tabSize:g.tabSize,"-moz-tab-size":g.tabSize,"-o-tab-size":g.tabSize},onClick:R[1]||(R[1]=function(){return g.handlePreviewClick.apply(g,arguments)})},[Object(i.createVNode)("div",{class:[g.previewClass],innerHTML:g.html},null,10,["innerHTML"])],4)}var t=n(7),h=n(13),e=function(){function g(){this.lang=new h.a}var R=g.prototype;return R.defaultMarkdownLoader=function(I){return I},R.use=function(I,D){return typeof I=="function"?I(this,D):I.install(this,D),this},R.theme=function(I){this.themeConfig=I},R.extendMarkdown=function(I){if(!this.themeConfig)return console.error("Please use theme before using plugins");var D=this.themeConfig.markdownParser;I(D)},R.parse=function(I){var D,_=this.themeConfig.markdownParser,F=(_==null||(D=_.render)==null?void 0:D.bind(_))||this.defaultMarkdownLoader;return(typeof F!="function"||F===this.defaultMarkdownLoader)&&console.error("Please configure your markdown parser"),F(I)},g}(),m=n(16),d={name:"v-md-preview",mixins:[m.a],props:{text:{type:String,default:""},theme:Object,beforeChange:Function},emits:["change"],data:function(){return{html:""}},watch:{text:function(){this.handleTextChange()},langConfig:function(){this.handleTextChange()}},computed:{vMdParser:function(){return this.$options.vMdParser},previewClass:function(){return this.vMdParser.themeConfig.previewClass},langConfig:function(){return this.vMdParser.lang.langConfig}},created:function(){this.handleTextChange()},methods:{handleTextChange:function(){var R=this,B=function(D){R.html=t.a.process(R.$options.vMdParser.parse(D)),R.$emit("change",D,R.html)};this.beforeChange?this.beforeChange(this.text,B):B(this.text)}}},b=new e;b.lang.config=Object(i.reactive)(b.lang.config),d.vMdParser=new e;var C=d;C.render=a;var T=C;n(18);var s="2.3.15",O=function(R){R.component(T.name,T)};T.version=s,T.install=O,T.xss=t.a,T.use=function(g,R){return typeof g=="function"?g(T,R):g.install(T,R),T},r.default=T},function(y,r,n){y.exports=n(37)},function(y,r,n){var i=n(19),a=n(22),t=n(26);function h(d,b){var C=new t(b);return C.process(d)}r=y.exports=h,r.filterXSS=h,r.FilterXSS=t;for(var e in i)r[e]=i[e];for(var e in a)r[e]=a[e];typeof window!="undefined"&&(window.filterXSS=y.exports);function m(){return typeof self!="undefined"&&typeof DedicatedWorkerGlobalScope!="undefined"&&self instanceof DedicatedWorkerGlobalScope}m()&&(self.filterXSS=y.exports)},function(y,r,n){n.d(r,"a",function(){return i}),n.d(r,"b",function(){return a});function i(t,h){var e=h.accept,m=Object.keys(t).filter(function(d){var b=t[d],C=b.type,T=b.name,s=T.indexOf(".")>-1?"."+T.split(".").pop():"",O=C.replace(/\/.*$/,"");return e.split(",").map(function(g){return g.trim()}).filter(function(g){return g}).some(function(g){return/\..+$/.test(g)?s===g:/\/\*$/.test(g)?O===g.replace(/\/\*$/,""):/^[^\/]+\/[^\/]+$/.test(g)?C===g:!1})});return m.map(function(d){return t[d]})}function a(t){var h=[];return Object.keys(t.items).forEach(function(e){var m=t.items[e];if(m.kind==="file"){var d=m.getAsFile();d&&h.push(d)}}),h}},function(y,r,n){n.d(r,"a",function(){return e});var i=n(2),a=Object.prototype.hasOwnProperty;function t(m,d,b){var C=d[b];C!=null&&(!a.call(m,b)||!Object(i.f)(C)?m[b]=C:m[b]=h(Object(m[b]),d[b]))}function h(m,d){return Object.keys(d).forEach(function(b){t(m,d,b)}),m}var e=function(){function m(b){b===void 0&&(b={}),this.config={lang:"zh-CN",langConfig:{"zh-CN":{}}},this.options=b}var d=m.prototype;return d.use=function(C,T){var s;this.config.lang=C,this.add((s={},s[C]=T,s)),this.options.afterUse&&this.options.afterUse(C,T)},d.add=function(C){C===void 0&&(C={}),h(this.config.langConfig,C)},m}()},function(y,r,n){var i=n(20),a=n(24);function t(e,m){var d=new a(m);return d.process(e)}r=y.exports=t,r.FilterCSS=a;for(var h in i)r[h]=i[h];typeof window!="undefined"&&(window.filterCSS=y.exports)},function(y,r){y.exports={indexOf:function(n,i){var a,t;if(Array.prototype.indexOf)return n.indexOf(i);for(a=0,t=n.length;a/g,R=/"/g,B=/"/g,I=/&#([a-zA-Z0-9]*);?/gim,D=/:?/gim,_=/&newline;?/gim,F=/((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a)\:/gi,G=/e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi,K=/u\s*r\s*l\s*\(.*/gi;function W(l){return l.replace(R,""")}function ee(l){return l.replace(B,'"')}function $(l){return l.replace(I,function(v,P){return P[0]==="x"||P[0]==="X"?String.fromCharCode(parseInt(P.substr(1),16)):String.fromCharCode(parseInt(P,10))})}function te(l){return l.replace(D,":").replace(_," ")}function S(l){for(var f="",v=0,P=l.length;v/g;function A(l){var f=l.split("");return f=f.filter(function(v){var P=v.charCodeAt(0);return P===127?!1:P<=31?P===10||P===13:!0}),f.join("")}r.whiteList=h(),r.getDefaultWhiteList=h,r.onTag=m,r.onIgnoreTag=d,r.onTagAttr=b,r.onIgnoreTagAttr=C,r.safeAttrValue=s,r.escapeHtml=T,r.escapeQuote=W,r.unescapeQuote=ee,r.escapeHtmlEntities=$,r.escapeDangerHtml5Entities=te,r.clearNonPrintableCharacter=S,r.friendlyAttrValue=E,r.escapeAttrValue=k,r.onIgnoreTagStripAll=z,r.StripTagBody=N,r.stripCommentTag=p,r.stripBlankChar=A,r.cssFilter=e,r.getDefaultCSSWhiteList=a},function(y,r){function n(){var e={};return e["align-content"]=!1,e["align-items"]=!1,e["align-self"]=!1,e["alignment-adjust"]=!1,e["alignment-baseline"]=!1,e.all=!1,e["anchor-point"]=!1,e.animation=!1,e["animation-delay"]=!1,e["animation-direction"]=!1,e["animation-duration"]=!1,e["animation-fill-mode"]=!1,e["animation-iteration-count"]=!1,e["animation-name"]=!1,e["animation-play-state"]=!1,e["animation-timing-function"]=!1,e.azimuth=!1,e["backface-visibility"]=!1,e.background=!0,e["background-attachment"]=!0,e["background-clip"]=!0,e["background-color"]=!0,e["background-image"]=!0,e["background-origin"]=!0,e["background-position"]=!0,e["background-repeat"]=!0,e["background-size"]=!0,e["baseline-shift"]=!1,e.binding=!1,e.bleed=!1,e["bookmark-label"]=!1,e["bookmark-level"]=!1,e["bookmark-state"]=!1,e.border=!0,e["border-bottom"]=!0,e["border-bottom-color"]=!0,e["border-bottom-left-radius"]=!0,e["border-bottom-right-radius"]=!0,e["border-bottom-style"]=!0,e["border-bottom-width"]=!0,e["border-collapse"]=!0,e["border-color"]=!0,e["border-image"]=!0,e["border-image-outset"]=!0,e["border-image-repeat"]=!0,e["border-image-slice"]=!0,e["border-image-source"]=!0,e["border-image-width"]=!0,e["border-left"]=!0,e["border-left-color"]=!0,e["border-left-style"]=!0,e["border-left-width"]=!0,e["border-radius"]=!0,e["border-right"]=!0,e["border-right-color"]=!0,e["border-right-style"]=!0,e["border-right-width"]=!0,e["border-spacing"]=!0,e["border-style"]=!0,e["border-top"]=!0,e["border-top-color"]=!0,e["border-top-left-radius"]=!0,e["border-top-right-radius"]=!0,e["border-top-style"]=!0,e["border-top-width"]=!0,e["border-width"]=!0,e.bottom=!1,e["box-decoration-break"]=!0,e["box-shadow"]=!0,e["box-sizing"]=!0,e["box-snap"]=!0,e["box-suppress"]=!0,e["break-after"]=!0,e["break-before"]=!0,e["break-inside"]=!0,e["caption-side"]=!1,e.chains=!1,e.clear=!0,e.clip=!1,e["clip-path"]=!1,e["clip-rule"]=!1,e.color=!0,e["color-interpolation-filters"]=!0,e["column-count"]=!1,e["column-fill"]=!1,e["column-gap"]=!1,e["column-rule"]=!1,e["column-rule-color"]=!1,e["column-rule-style"]=!1,e["column-rule-width"]=!1,e["column-span"]=!1,e["column-width"]=!1,e.columns=!1,e.contain=!1,e.content=!1,e["counter-increment"]=!1,e["counter-reset"]=!1,e["counter-set"]=!1,e.crop=!1,e.cue=!1,e["cue-after"]=!1,e["cue-before"]=!1,e.cursor=!1,e.direction=!1,e.display=!0,e["display-inside"]=!0,e["display-list"]=!0,e["display-outside"]=!0,e["dominant-baseline"]=!1,e.elevation=!1,e["empty-cells"]=!1,e.filter=!1,e.flex=!1,e["flex-basis"]=!1,e["flex-direction"]=!1,e["flex-flow"]=!1,e["flex-grow"]=!1,e["flex-shrink"]=!1,e["flex-wrap"]=!1,e.float=!1,e["float-offset"]=!1,e["flood-color"]=!1,e["flood-opacity"]=!1,e["flow-from"]=!1,e["flow-into"]=!1,e.font=!0,e["font-family"]=!0,e["font-feature-settings"]=!0,e["font-kerning"]=!0,e["font-language-override"]=!0,e["font-size"]=!0,e["font-size-adjust"]=!0,e["font-stretch"]=!0,e["font-style"]=!0,e["font-synthesis"]=!0,e["font-variant"]=!0,e["font-variant-alternates"]=!0,e["font-variant-caps"]=!0,e["font-variant-east-asian"]=!0,e["font-variant-ligatures"]=!0,e["font-variant-numeric"]=!0,e["font-variant-position"]=!0,e["font-weight"]=!0,e.grid=!1,e["grid-area"]=!1,e["grid-auto-columns"]=!1,e["grid-auto-flow"]=!1,e["grid-auto-rows"]=!1,e["grid-column"]=!1,e["grid-column-end"]=!1,e["grid-column-start"]=!1,e["grid-row"]=!1,e["grid-row-end"]=!1,e["grid-row-start"]=!1,e["grid-template"]=!1,e["grid-template-areas"]=!1,e["grid-template-columns"]=!1,e["grid-template-rows"]=!1,e["hanging-punctuation"]=!1,e.height=!0,e.hyphens=!1,e.icon=!1,e["image-orientation"]=!1,e["image-resolution"]=!1,e["ime-mode"]=!1,e["initial-letters"]=!1,e["inline-box-align"]=!1,e["justify-content"]=!1,e["justify-items"]=!1,e["justify-self"]=!1,e.left=!1,e["letter-spacing"]=!0,e["lighting-color"]=!0,e["line-box-contain"]=!1,e["line-break"]=!1,e["line-grid"]=!1,e["line-height"]=!1,e["line-snap"]=!1,e["line-stacking"]=!1,e["line-stacking-ruby"]=!1,e["line-stacking-shift"]=!1,e["line-stacking-strategy"]=!1,e["list-style"]=!0,e["list-style-image"]=!0,e["list-style-position"]=!0,e["list-style-type"]=!0,e.margin=!0,e["margin-bottom"]=!0,e["margin-left"]=!0,e["margin-right"]=!0,e["margin-top"]=!0,e["marker-offset"]=!1,e["marker-side"]=!1,e.marks=!1,e.mask=!1,e["mask-box"]=!1,e["mask-box-outset"]=!1,e["mask-box-repeat"]=!1,e["mask-box-slice"]=!1,e["mask-box-source"]=!1,e["mask-box-width"]=!1,e["mask-clip"]=!1,e["mask-image"]=!1,e["mask-origin"]=!1,e["mask-position"]=!1,e["mask-repeat"]=!1,e["mask-size"]=!1,e["mask-source-type"]=!1,e["mask-type"]=!1,e["max-height"]=!0,e["max-lines"]=!1,e["max-width"]=!0,e["min-height"]=!0,e["min-width"]=!0,e["move-to"]=!1,e["nav-down"]=!1,e["nav-index"]=!1,e["nav-left"]=!1,e["nav-right"]=!1,e["nav-up"]=!1,e["object-fit"]=!1,e["object-position"]=!1,e.opacity=!1,e.order=!1,e.orphans=!1,e.outline=!1,e["outline-color"]=!1,e["outline-offset"]=!1,e["outline-style"]=!1,e["outline-width"]=!1,e.overflow=!1,e["overflow-wrap"]=!1,e["overflow-x"]=!1,e["overflow-y"]=!1,e.padding=!0,e["padding-bottom"]=!0,e["padding-left"]=!0,e["padding-right"]=!0,e["padding-top"]=!0,e.page=!1,e["page-break-after"]=!1,e["page-break-before"]=!1,e["page-break-inside"]=!1,e["page-policy"]=!1,e.pause=!1,e["pause-after"]=!1,e["pause-before"]=!1,e.perspective=!1,e["perspective-origin"]=!1,e.pitch=!1,e["pitch-range"]=!1,e["play-during"]=!1,e.position=!1,e["presentation-level"]=!1,e.quotes=!1,e["region-fragment"]=!1,e.resize=!1,e.rest=!1,e["rest-after"]=!1,e["rest-before"]=!1,e.richness=!1,e.right=!1,e.rotation=!1,e["rotation-point"]=!1,e["ruby-align"]=!1,e["ruby-merge"]=!1,e["ruby-position"]=!1,e["shape-image-threshold"]=!1,e["shape-outside"]=!1,e["shape-margin"]=!1,e.size=!1,e.speak=!1,e["speak-as"]=!1,e["speak-header"]=!1,e["speak-numeral"]=!1,e["speak-punctuation"]=!1,e["speech-rate"]=!1,e.stress=!1,e["string-set"]=!1,e["tab-size"]=!1,e["table-layout"]=!1,e["text-align"]=!0,e["text-align-last"]=!0,e["text-combine-upright"]=!0,e["text-decoration"]=!0,e["text-decoration-color"]=!0,e["text-decoration-line"]=!0,e["text-decoration-skip"]=!0,e["text-decoration-style"]=!0,e["text-emphasis"]=!0,e["text-emphasis-color"]=!0,e["text-emphasis-position"]=!0,e["text-emphasis-style"]=!0,e["text-height"]=!0,e["text-indent"]=!0,e["text-justify"]=!0,e["text-orientation"]=!0,e["text-overflow"]=!0,e["text-shadow"]=!0,e["text-space-collapse"]=!0,e["text-transform"]=!0,e["text-underline-position"]=!0,e["text-wrap"]=!0,e.top=!1,e.transform=!1,e["transform-origin"]=!1,e["transform-style"]=!1,e.transition=!1,e["transition-delay"]=!1,e["transition-duration"]=!1,e["transition-property"]=!1,e["transition-timing-function"]=!1,e["unicode-bidi"]=!1,e["vertical-align"]=!1,e.visibility=!1,e["voice-balance"]=!1,e["voice-duration"]=!1,e["voice-family"]=!1,e["voice-pitch"]=!1,e["voice-range"]=!1,e["voice-rate"]=!1,e["voice-stress"]=!1,e["voice-volume"]=!1,e.volume=!1,e["white-space"]=!1,e.widows=!1,e.width=!0,e["will-change"]=!1,e["word-break"]=!0,e["word-spacing"]=!0,e["word-wrap"]=!0,e["wrap-flow"]=!1,e["wrap-through"]=!1,e["writing-mode"]=!1,e["z-index"]=!1,e}function i(e,m,d){}function a(e,m,d){}var t=/javascript\s*\:/img;function h(e,m){return t.test(m)?"":m}r.whiteList=n(),r.getDefaultWhiteList=n,r.onAttr=i,r.onIgnoreAttr=a,r.safeAttrValue=h},function(y,r){y.exports={indexOf:function(n,i){var a,t;if(Array.prototype.indexOf)return n.indexOf(i);for(a=0,t=n.length;a"){R+=g(s.slice(B,I)),K=s.slice(I,_+1),G=a(K),R+=O(I,R.length,G,K,t(K)),B=_+1,I=!1;continue}if(W==='"'||W==="'")for(var ee=1,$=s.charAt(_-ee);$.trim()===""||$==="=";){if($==="="){D=W;continue e}$=s.charAt(_-++ee)}}else if(W===D){D=!1;continue}}return B0;O--){var g=s[O];if(g!==" ")return g==="="?O:-1}}function C(s){return s[0]==='"'&&s[s.length-1]==='"'||s[0]==="'"&&s[s.length-1]==="'"}function T(s){return C(s)?s.substr(1,s.length-2):s}r.parseTag=h,r.parseAttr=m},function(y,r,n){n.r(r);var i=n(10),a=n.n(i),t=n(17),h=n(1),e=n(12);r.default={name:h.l,icon:"v-md-icon-img",title:function(d){return d.langConfig.image.toolbar},menus:[{name:"image-link",text:function(d){return d.langConfig.imageLink.toolbar},action:function(d,b){b!=null&&b.insertWithSize?d.execCommand(h.l,{width:"auto",height:"auto"}):d.execCommand(h.l)}},{name:"upload-image",text:function(d){return d.langConfig.uploadImage.toolbar},action:function(d){d.uploadConfig=d.uploadImgConfig,d.$nextTick(Object(t.a)(a.a.mark(function b(){var C,T;return a.a.wrap(function(O){for(;;)switch(O.prev=O.next){case 0:return O.next=2,d.$refs.uploadFile.upload();case 2:C=O.sent,T=Object(e.a)(C.target.files,d.uploadImgConfig),d.emitUploadImage(C,T);case 5:case"end":return O.stop()}},b)})))}}]}},function(y,r,n){var i=n(20),a=n(25);n(21);function t(m){return m==null}function h(m){var d={};for(var b in m)d[b]=m[b];return d}function e(m){m=h(m||{}),m.whiteList=m.whiteList||i.whiteList,m.onAttr=m.onAttr||i.onAttr,m.onIgnoreAttr=m.onIgnoreAttr||i.onIgnoreAttr,m.safeAttrValue=m.safeAttrValue||i.safeAttrValue,this.options=m}e.prototype.process=function(m){if(m=m||"",m=m.toString(),!m)return"";var d=this,b=d.options,C=b.whiteList,T=b.onAttr,s=b.onIgnoreAttr,O=b.safeAttrValue,g=a(m,function(R,B,I,D,_){var F=C[I],G=!1;if(F===!0?G=F:typeof F=="function"?G=F(D):F instanceof RegExp&&(G=F.test(D)),G!==!0&&(G=!1),D=O(I,D),!!D){var K={position:B,sourcePosition:R,source:_,isWhite:G};if(G){var W=T(I,D,K);return t(W)?I+":"+D:W}else{var W=s(I,D,K);if(!t(W))return W}}});return g},y.exports=e},function(y,r,n){var i=n(21);function a(t,h){t=i.trimRight(t),t[t.length-1]!==";"&&(t+=";");var e=t.length,m=!1,d=0,b=0,C="";function T(){if(!m){var g=i.trim(t.slice(d,b)),R=g.indexOf(":");if(R!==-1){var B=i.trim(g.slice(0,R)),I=i.trim(g.slice(R+1));if(B){var D=h(d,C.length,B,I,g);D&&(C+=D+"; ")}}}d=b+1}for(;b";var p=b(E),M=R[S],A=e(p.html,function(f,v){var P=m.indexOf(M,f)!==-1,L=D(S,f,v,P);if(!d(L))return L;if(P)return v=F(S,f,v,K),v?f+'="'+v+'"':f;var L=_(S,f,v,P);return d(L)?void 0:L}),E="<"+S;return A&&(E+=" "+A),p.closing&&(E+=" /"),E+=">",E}else{var N=I(S,E,z);return d(N)?G(E):N}},G);return W&&(ee=W.remove(ee)),ee},y.exports=T},function(y,r,n){},function(y,r,n){},function(y,r,n){},function(y,r,n){},function(y,r,n){},function(y,r,n){},function(y,r,n){},function(y,r,n){(function(i){var a=function(){if(typeof Map!="undefined")return Map;function p(M,A){var l=-1;return M.some(function(f,v){return f[0]===A?(l=v,!0):!1}),l}return function(){function M(){this.__entries__=[]}return Object.defineProperty(M.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),M.prototype.get=function(A){var l=p(this.__entries__,A),f=this.__entries__[l];return f&&f[1]},M.prototype.set=function(A,l){var f=p(this.__entries__,A);~f?this.__entries__[f][1]=l:this.__entries__.push([A,l])},M.prototype.delete=function(A){var l=this.__entries__,f=p(l,A);~f&&l.splice(f,1)},M.prototype.has=function(A){return!!~p(this.__entries__,A)},M.prototype.clear=function(){this.__entries__.splice(0)},M.prototype.forEach=function(A,l){l===void 0&&(l=null);for(var f=0,v=this.__entries__;f0},p.prototype.connect_=function(){!t||this.connected_||(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),T?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},p.prototype.disconnect_=function(){!t||!this.connected_||(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},p.prototype.onTransitionEnd_=function(M){var A=M.propertyName,l=A===void 0?"":A,f=C.some(function(v){return!!~l.indexOf(v)});f&&this.refresh()},p.getInstance=function(){return this.instance_||(this.instance_=new p),this.instance_},p.instance_=null,p}(),O=function(p,M){for(var A=0,l=Object.keys(M);A0},p}(),k=typeof WeakMap!="undefined"?new WeakMap:new a,z=function(){function p(M){if(!(this instanceof p))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var A=s.getInstance(),l=new E(M,A,this);k.set(this,l)}return p}();["observe","unobserve","disconnect"].forEach(function(p){z.prototype[p]=function(){var M;return(M=k.get(this))[p].apply(M,arguments)}});var N=function(){return typeof h.ResizeObserver!="undefined"?h.ResizeObserver:z}();r.a=N}).call(this,n(86))},function(y,r,n){n.d(r,"a",function(){return yt});var i=n(13),a={undo:{toolbar:"\u64A4\u9500"},redo:{toolbar:"\u91CD\u505A"},clear:{toolbar:"\u6E05\u7A7A"},h:{toolbar:"\u6807\u9898"},h1:{toolbar:"\u4E00\u7EA7\u6807\u9898",placeholder:"\u4E00\u7EA7\u6807\u9898"},h2:{toolbar:"\u4E8C\u7EA7\u6807\u9898",placeholder:"\u4E8C\u7EA7\u6807\u9898"},h3:{toolbar:"\u4E09\u7EA7\u6807\u9898",placeholder:"\u4E09\u7EA7\u6807\u9898"},h4:{toolbar:"\u56DB\u7EA7\u6807\u9898",placeholder:"\u56DB\u7EA7\u6807\u9898"},h5:{toolbar:"\u4E94\u7EA7\u6807\u9898",placeholder:"\u4E94\u7EA7\u6807\u9898"},h6:{toolbar:"\u516D\u7EA7\u6807\u9898",placeholder:"\u516D\u7EA7\u6807\u9898"},bold:{toolbar:"\u7C97\u4F53",placeholder:"\u7C97\u4F53"},italic:{toolbar:"\u659C\u4F53",placeholder:"\u659C\u4F53"},strikethrough:{toolbar:"\u5220\u9664\u7EBF",placeholder:"\u5220\u9664\u7EBF"},quote:{toolbar:"\u63D2\u5165\u5F15\u7528",placeholder:"\u5F15\u7528"},ul:{toolbar:"\u65E0\u5E8F\u5217\u8868",placeholder:"\u65E0\u5E8F\u5217\u8868"},ol:{toolbar:"\u6709\u5E8F\u5217\u8868",placeholder:"\u6709\u5E8F\u5217\u8868"},table:{toolbar:"\u8868\u683C"},hr:{toolbar:"\u63D2\u5165\u5206\u5272\u7EBF"},link:{toolbar:"\u63D2\u5165\u94FE\u63A5",descPlaceholder:"\u94FE\u63A5"},image:{toolbar:"\u63D2\u5165\u56FE\u7247"},imageLink:{toolbar:"\u6DFB\u52A0\u56FE\u7247\u94FE\u63A5"},uploadImage:{toolbar:"\u4E0A\u4F20\u672C\u5730\u56FE\u7247"},code:{toolbar:"\u63D2\u5165\u4EE3\u7801\u5757"},save:{toolbar:"\u4FDD\u5B58"},preview:{enabled:"\u5F00\u542F\u9884\u89C8",disabled:"\u5173\u95ED\u9884\u89C8"},toc:{title:"\u76EE\u5F55\u5BFC\u822A",enabled:"\u5F00\u542F\u76EE\u5F55\u5BFC\u822A",disabled:"\u5173\u95ED\u76EE\u5F55\u5BFC\u822A"},syncScroll:{enabled:"\u5F00\u542F\u540C\u6B65\u6EDA\u52A8",disabled:"\u5173\u95ED\u540C\u6B65\u6EDA\u52A8"},fullscreen:{enabled:"\u5168\u5C4F\uFF08\u6309ESC\u8FD8\u539F\uFF09",disabled:"\u9000\u51FA\u5168\u5C4F"}},t=n(0),h=n(2),e={};Object(h.c)(e,n(38));function m(u,o,c){o?u[o]?console.error("The command name is already in use: "+o):u[o]=c:console.error("Command name is required")}function d(u){u.commands={},u.command=function(o,c){m(u.commands,o,c)},Object.keys(e).forEach(function(o){var c=e[o],j=c.name,w=c.default;u.command(j,w)})}var b=n(5),C={};Object(h.c)(C,n(61));function T(u,o,c){o?u[o]=Object(b.a)({},c):console.error("Toolbar name is required")}function s(u){u.toolbars={},u.toolbar=function(o,c){T(u.toolbars,o,c)},Object.keys(C).forEach(function(o){var c=C[o],j=c.default;u.toolbar(j.name,j)})}n(81);var O=n(9),g={class:"v-md-editor__left-area-body"},R={class:"v-md-editor__right-area"},B={class:"v-md-editor__toolbar",ref:"toolbarWrapper"},I={class:"v-md-editor__main"},D={class:"v-md-editor__preview-wrapper",ref:"previewWrapper"};function _(u,o,c,j,w,x){var U=Object(t.resolveComponent)("editor-toolbar");return Object(t.openBlock)(),Object(t.createBlock)("div",{class:["v-md-editor",["v-md-editor--"+c.mode,{"v-md-editor--fullscreen":c.fullscreen,"v-md-editor--left-area-reverse":c.leftAreaReverse}]],style:{height:x.heightGetter}},[Object(t.withDirectives)(Object(t.createVNode)("div",{class:"v-md-editor__left-area",style:{width:c.leftAreaVisible?c.leftAreaWidth:0,borderWidth:c.leftAreaVisible?"1px":0}},[Object(t.createVNode)("div",{class:"v-md-editor__left-area-title",style:{height:w.toolbarHeight+"px",lineHeight:w.toolbarHeight+"px"}},Object(t.toDisplayString)(c.leftAreaTitle),5),Object(t.createVNode)("div",g,[Object(t.renderSlot)(u.$slots,"left-area")])],4),[[t.vShow,!x.isPreviewMode]]),Object(t.createVNode)("div",R,[Object(t.withDirectives)(Object(t.createVNode)("div",B,[Object(t.createVNode)(U,{class:"v-md-editor__toolbar-left",groups:x.leftToolbarGroup,toolbars:c.toolbars,"disabled-menus":c.disabledMenus,onItemClick:x.handleToolbarItemClick,onToolbarMenuClick:x.handleToolbarMenuClick},null,8,["groups","toolbars","disabled-menus","onItemClick","onToolbarMenuClick"]),Object(t.createVNode)(U,{class:"v-md-editor__toolbar-right",groups:x.rightToolbarGroup,toolbars:c.toolbars,"disabled-mens":c.disabledMenus,onItemClick:x.handleToolbarItemClick,onToolbarMenuClick:x.handleToolbarMenuClick},null,8,["groups","toolbars","disabled-mens","onItemClick","onToolbarMenuClick"])],512),[[t.vShow,!x.isPreviewMode]]),Object(t.createVNode)("div",I,[Object(t.withDirectives)(Object(t.createVNode)("div",{ref:"editorWrapper",class:"v-md-editor__editor-wrapper",onClick:o[1]||(o[1]=function(){return x.handleEditorWrapperClick.apply(x,arguments)})},[Object(t.renderSlot)(u.$slots,"editor")],512),[[t.vShow,!x.isPreviewMode]]),Object(t.withDirectives)(Object(t.createVNode)("div",D,[Object(t.renderSlot)(u.$slots,"preview")],512),[[t.vShow,!x.isEditMode]]),Object(t.renderSlot)(u.$slots,"default")])])],6)}var F={key:0},G={key:0,class:"v-md-editor__toolbar-divider"};function K(u,o,c,j,w,x){var U=Object(t.resolveComponent)("toolbar-item");return c.groups.length?(Object(t.openBlock)(),Object(t.createBlock)("ul",F,[(Object(t.openBlock)(!0),Object(t.createBlock)(t.Fragment,null,Object(t.renderList)(c.groups,function(Y,J){return Object(t.openBlock)(),Object(t.createBlock)(t.Fragment,null,[(Object(t.openBlock)(!0),Object(t.createBlock)(t.Fragment,null,Object(t.renderList)(Y,function(Q){return Object(t.openBlock)(),Object(t.createBlock)(U,{key:Q,name:Q,title:x.getConfig(Q,"title"),icon:x.getConfig(Q,"icon"),text:x.getConfig(Q,"text"),active:x.getConfig(Q,"active"),menus:x.getConfig(Q,"menus"),"disabled-menus":c.disabledMenus,onClick:function(re){return u.$emit("item-click",c.toolbars[Q])},onMenuClick:o[1]||(o[1]=function(ne){return u.$emit("toolbar-menu-click",ne)})},null,8,["name","title","icon","text","active","menus","disabled-menus","onClick"])}),128)),J!==c.groups.length-1?(Object(t.openBlock)(),Object(t.createBlock)("li",G)):Object(t.createCommentVNode)("v-if",!0)],64)}),256))])):Object(t.createCommentVNode)("v-if",!0)}var W={key:1,class:"v-md-icon-arrow-down v-md-editor__menu-ctrl",ref:"menuCtrl"};function ee(u,o,c,j,w,x){var U=Object(t.resolveComponent)("v-md-tooltip"),Y=Object(t.resolveComponent)("v-md-menu"),J=Object(t.resolveDirective)("clickoutside");return Object(t.withDirectives)((Object(t.openBlock)(),Object(t.createBlock)("li",{class:["v-md-editor__toolbar-item",[c.icon,"v-md-editor__toolbar-item-"+c.name,{"v-md-editor__toolbar-item--active":c.active||w.menuActive},{"v-md-editor__toolbar-item--menu":x.hasMenu}]],onMousedown:o[3]||(o[3]=Object(t.withModifiers)(function(){},["prevent"])),onMouseleave:o[4]||(o[4]=function(){return x.handleHideTooltip.apply(x,arguments)}),onMousemove:o[5]||(o[5]=function(){return x.showTooltip.apply(x,arguments)}),onClick:o[6]||(o[6]=Object(t.withModifiers)(function(){return x.handleClick.apply(x,arguments)},["stop"]))},[Object(t.createTextVNode)(Object(t.toDisplayString)(c.text)+" ",1),Object(t.createVNode)(U,{ref:"tooltip",text:c.title},null,8,["text"]),x.hasMenu?(Object(t.openBlock)(),Object(t.createBlock)(Y,{key:0,ref:"menu",mode:x.menuMode,menus:x.menuItems,"item-width":c.menus.itemWidth,"row-num":c.menus.rowNum,visible:w.menuActive,"onUpdate:visible":o[1]||(o[1]=function(Q){return w.menuActive=Q}),onItemClick:o[2]||(o[2]=function(Q){return u.$emit("menu-click",Q)})},null,8,["mode","menus","item-width","row-num","visible"])):Object(t.createCommentVNode)("v-if",!0),x.hasMenu?(Object(t.openBlock)(),Object(t.createBlock)("i",W,null,512)):Object(t.createCommentVNode)("v-if",!0)],34)),[[J,x.hideMenu,"hideMenu"]])}function $(u,o,c,j,w,x){return Object(t.openBlock)(),Object(t.createBlock)(t.Transition,{name:"v-md-fade-in"},{default:Object(t.withCtx)(function(){return[Object(t.withDirectives)(Object(t.createVNode)("div",{style:{left:w.position.x+"px",top:w.position.y+"px"},class:"v-md-editor__tooltip"},Object(t.toDisplayString)(c.text),5),[[t.vShow,w.visible]])]}),_:1})}var te={name:"v-md-tooltip",props:{text:String},data:function(){return{position:{x:0,y:0},visible:!1}},methods:{show:function(o){this.position={x:o.x,y:o.y},this.visible=!0,this.$nextTick(this.calculateLayout)},hide:function(){this.visible=!1},calculateLayout:function(){var o=this.$el.getBoundingClientRect(),c=o.right,j=document.documentElement.clientWidth;j-c<0&&(this.position.x-=c-j)}}};n(82),te.render=$;var S=te,E={key:1},k={class:"v-md-editor__menu-row"};function z(u,o,c,j,w,x){var U=Object(t.resolveComponent)("v-md-render");return Object(t.openBlock)(),Object(t.createBlock)(t.Transition,{name:"v-md-zoom-in-top"},{default:Object(t.withCtx)(function(){return[Object(t.withDirectives)(Object(t.createVNode)("ul",{class:["v-md-editor__menu",["v-md-editor__menu--"+c.mode]],style:w.style,onMousemove:o[1]||(o[1]=Object(t.withModifiers)(function(){},["stop"])),onClick:o[2]||(o[2]=Object(t.withModifiers)(function(){},["stop"]))},[x.isListMode?(Object(t.openBlock)(!0),Object(t.createBlock)(t.Fragment,{key:0},Object(t.renderList)(c.menus,function(Y){return Object(t.openBlock)(),Object(t.createBlock)("li",{key:Y.name,class:["v-md-editor__menu-item",["v-md-editor__menu-item-"+Y.name,Y.class]],onClick:Object(t.withModifiers)(function(J){return x.handleClick(Y)},["stop"])},[Y.render?(Object(t.openBlock)(),Object(t.createBlock)(U,{key:0,render:Y.render,editor:u.$self},null,8,["render","editor"])):(Object(t.openBlock)(),Object(t.createBlock)(t.Fragment,{key:1},[Object(t.createTextVNode)(Object(t.toDisplayString)(x.getText(Y.text)),1)],64))],10,["onClick"])}),128)):(Object(t.openBlock)(),Object(t.createBlock)("li",E,[(Object(t.openBlock)(!0),Object(t.createBlock)(t.Fragment,null,Object(t.renderList)(x.rowCount,function(Y){return Object(t.openBlock)(),Object(t.createBlock)("div",k,[(Object(t.openBlock)(!0),Object(t.createBlock)(t.Fragment,null,Object(t.renderList)(x.getRowMenus(Y),function(J){return Object(t.openBlock)(),Object(t.createBlock)("span",{key:J.name,style:{width:c.itemWidth},class:["v-md-editor__menu-item",["v-md-editor__menu-item-"+J.name,J.class]],onClick:Object(t.withModifiers)(function(Q){return x.handleClick(J)},["stop"])},Object(t.toDisplayString)(J.text),15,["onClick"])}),128))])}),256))]))],38),[[t.vShow,c.visible]])]}),_:1})}var N=function(o,c){var j=c.data;return o.render.apply(o,j.$attrs)};N.props=["render"];var p=N,M={LIST:"list",PANEL:"panel"},A={name:"v-md-menu",components:{VMdRender:p},inject:["markdownEditor"],props:{mode:{type:String,default:M.PANEL},menus:Array,itemWidth:{type:String,default:"30px"},rowNum:{type:Number,default:10},visible:Boolean},emits:["update:visible","item-click"],data:function(){return{style:{left:0}}},computed:{rowCount:function(){return Math.ceil(this.menus.length/this.rowNum)},isListMode:function(){return this.mode===M.LIST}},watch:{visible:function(){this.visible&&this.$nextTick(this.calculateLayout)}},methods:{calculateLayout:function(){var o=this.$el.getBoundingClientRect(),c=o.right,j=document.documentElement.clientWidth;j-c<0&&(this.style={right:0})},getRowMenus:function(o){var c=o*this.rowNum,j=c-this.rowNum;return this.menus.slice(j,c)},getText:function(o){return typeof o=="function"?o(this.markdownEditor):o},hide:function(){this.$emit("update:visible",!1)},handleClick:function(o){this.$emit("item-click",o),this.hide()}}};n(83),A.render=z;var l=A,f=[],v="@@clickoutsideContext",P,L=0;h.d&&(document.addEventListener("mousedown",function(u){P=u}),document.addEventListener("mouseup",function(u){f.forEach(function(o){return o[v].documentHandler(u,P)})}));function H(u,o,c){return function(j,w){j===void 0&&(j={}),w===void 0&&(w={}),!(!c||!o||!o.instance||!j.target||!w.target||u.contains(j.target)||u.contains(w.target)||u===j.target)&&(o.arg&&u[v].methodName&&o.instance[u[v].methodName]?o.instance[u[v].methodName]():u[v].bindingFn&&u[v].bindingFn())}}var V={beforeMount:function(o,c,j){f.push(o);var w=L++;o[v]={id:w,documentHandler:H(o,c,j),methodName:c.arg,bindingFn:c.value}},updated:function(o,c,j){o[v].documentHandler=H(o,c,j),o[v].methodName=c.arg,o[v].bindingFn=c.value},unmounted:function(o){for(var c=f.length,j=0;jJ?Q:0,re=x>Y?Q:0,ie="margin-bottom: "+ne+"; margin-right: "+re+";";Array.isArray(this.wrapStyle)?(c=Object(h.a)(this.wrapStyle),c.marginRight=Q,c.marginBottom=Q):typeof this.wrapStyle=="string"?c+=ie:c=ie}var fe=Object(t.h)(this.tag,{class:["scrollbar__view",this.viewClass],style:this.viewStyle,ref:"resize"},this.$slots.default()),me=Object(t.createVNode)("div",{ref:"wrap",style:c,onScroll:this.handleScroll,class:[this.wrapClass,"scrollbar__wrap",o?"":"scrollbar__wrap--hidden-default"]},[[fe]]),ve;return this.native?ve=[Object(t.createVNode)("div",{ref:"wrap",class:[this.wrapClass,"scrollbar__wrap"],style:c},[[fe]])]:ve=[me,Object(t.createVNode)(Ce,{move:this.moveX,size:this.sizeWidth},null),Object(t.createVNode)(Ce,{vertical:!0,move:this.moveY,size:this.sizeHeight},null)],Object(t.h)("div",{class:"scrollbar"},ve)}};n(88);var xe=$e,Xe={class:"v-md-editor__toc-nav"},Ye={class:"v-md-editor__toc-nav-title"};function Qe(u,o,c,j,w,x){return Object(t.openBlock)(),Object(t.createBlock)("ul",Xe,[(Object(t.openBlock)(!0),Object(t.createBlock)(t.Fragment,null,Object(t.renderList)(c.titles,function(U){return Object(t.openBlock)(),Object(t.createBlock)("li",{style:{paddingLeft:c.indent*U.indent+"px"},onClick:function(J){return u.$emit("nav-click",U)},class:"v-md-editor__toc-nav-item"},[Object(t.createVNode)("span",Ye,Object(t.toDisplayString)(U.title),1)],12,["onClick"])}),256))])}var Le={name:"toc-nav",props:{titles:Array,indent:{type:Number,default:16}},emits:["nav-click"]};n(89),Le.render=Qe;var Ie=Le,ce,Ze={inheritAttrs:!1,components:(ce={},ce[O.default.name]=O.default,ce[Pe.name]=Pe,ce[xe.name]=xe,ce[Ie.name]=Ie,ce),provide:function(){return{markdownEditor:this}},props:{height:String,theme:Object,mode:{type:String,default:ue.a.EDITABLE},autofocus:Boolean,placeholder:String,tocNavPositionRight:Boolean,tabSize:{type:Number,default:2},beforePreviewChange:{type:Function,default:function(o,c){c(o)}}},emits:["blur","change","save","image-click"],data:function(){return{currentMode:this.mode,uploadConfig:{}}},watch:{mode:function(){this.currentMode=this.mode},currentMode:function(){this.currentMode===ue.a.EDITABLE&&this.enableSyncScroll&&this.$nextTick(this.previewSyncScroll)}},created:function(){this.theme&&this.$options.use(this.theme)},computed:{isPreviewMode:function(){return this.currentMode===ue.a.PREVIEW},isEditMode:function(){return this.currentMode===ue.a.EDIT}},mounted:function(){this.autofocus&&this.$nextTick(this.setFocusEnd)},methods:{setFocusEnd:function(){this.editorFocusEnd(),this.editorScrollToTop(9999),this.previewScrollTo(9999)},handleChange:function(o,c){this.$emit("change",o,c)},handleBlur:function(o){this.$emit("blur",o)},handlePreviewImageClick:function(o,c){this.$emit("image-click",o,c)},save:function(){this.$emit("save",this.text,this.$refs.preview.html)},insert:function(o){var c=this;this.focus();var j=this.getCurrentSelectedStr(),w=o(j),x=w.selected,U=w.text;this.replaceSelectionText(U),this.$nextTick(function(){c.changeSelctionTo(U,x)})}}},Je={props:{modelValue:{type:String,default:""}},emits:["update:modelValue"],data:function(){return{text:this.modelValue}},methods:{handleInput:function(o){this.text=o,this.$emit("update:modelValue",o)}}},qe={props:{defaultFullscreen:Boolean},emits:["fullscreen-change"],data:function(){return{fullscreen:!1}},watch:{fullscreen:function(){this.$emit("fullscreen-change",this.fullscreen)}},mounted:function(){window.addEventListener("keyup",this.handleWindowKeyup,!1),this.defaultFullscreen&&this.toggleFullScreen()},beforeUnmount:function(){window.removeEventListener("keyup",this.handleWindowKeyup,!1)},methods:{handleWindowKeyup:function(o){o.keyCode===27&&this.fullscreen&&this.toggleFullScreen(!1)},toggleFullScreen:function(o){o===void 0&&(o=!this.fullscreen),this.fullscreen=o;var c=document.querySelectorAll("html, body"),j=c[0],w=c[1],x=this.fullscreen?"hidden":null;w.style.overflow=x,j.style.overflow=x}}};function et(u,o,c,j,w,x){return Object(t.openBlock)(),Object(t.createBlock)("input",{type:"file",style:{display:"none"},key:w.key,accept:c.uploadConfig.accept,multiple:c.uploadConfig.multiple,onInput:o[1]||(o[1]=function(){return w.handleUpload.apply(w,arguments)}),ref:"fileInput"},null,40,["accept","multiple"])}var tt=n(10),De=n.n(tt),nt=n(17),_e={name:"v-md-upload-file",props:{uploadConfig:Object},data:function(){return{handleUpload:function(){},key:0}},methods:{upload:function(){var o=this;return Object(nt.a)(De.a.mark(function c(){var j;return De.a.wrap(function(x){for(;;)switch(x.prev=x.next){case 0:return x.next=2,o.chooseFile();case 2:return j=x.sent,x.abrupt("return",j);case 4:case"end":return x.stop()}},c)}))()},chooseFile:function(){var o=this;return new Promise(function(c){o.handleUpload=function(j){c(j),o.key++},o.$refs.fileInput.click()})}}};_e.render=et;var Re=_e,rt=n(23),Oe=n(12),it=n(1),Te,ot={accept:"image/*",multiple:!1},at={components:(Te={},Te[Re.name]=Re,Te),props:{uploadImageConfig:Object},emits:["upload-image"],computed:{uploadImgConfig:function(){return Object(b.a)({},ot,this.uploadImageConfig)},hasUploadImage:function(){return!this.disabledMenus.includes(rt.default.name+"/upload-image")}},methods:{handleDrop:function(o){var c=Object(Oe.a)(o.dataTransfer.files,this.uploadImgConfig);this.emitUploadImage(o,c)},handlePaste:function(o){var c=o.clipboardData;if(!!c){var j=Object(Oe.a)(Object(Oe.b)(c),this.uploadImgConfig);this.emitUploadImage(o,j)}},emitUploadImage:function(o,c){var j=this;this.hasUploadImage&&c.length&&(o.preventDefault(),this.$emit("upload-image",o,function(w){j.execCommand(it.l,w)},c))}}},he=n(3),st={data:function(){return{enableSyncScroll:!0}},methods:{toggleSyncScroll:function(o){o===void 0&&(o=!this.enableSyncScroll),this.enableSyncScroll=o,o&&this.previewSyncScroll()},previewSyncScroll:function(){if(!this.isEditMode){var o=this.$refs.preview.$el,c=this.$refs.previewScroller.$el,j=o.querySelectorAll("["+he.c+"]"),w=this.getScrollInfo(),x=w.clientHeight,U=w.top,Y=w.height,J=c.querySelector(".scrollbar__wrap");if(x+U===Y){var Q=J.clientHeight,ne=J.scrollHeight;this.previewScrollTo(ne-Q)}else{for(var re,ie,fe=0;fe1?w-1:0),U=1;U=0;--P){var L=this.tryEntries[P],H=L.completion;if(L.tryLoc==="root")return v("end");if(L.tryLoc<=this.prev){var V=h.call(L,"catchLoc"),X=h.call(L,"finallyLoc");if(V&&X){if(this.prev=0;--v){var P=this.tryEntries[v];if(P.tryLoc<=this.prev&&h.call(P,"finallyLoc")&&this.prev=0;--f){var v=this.tryEntries[f];if(v.finallyLoc===l)return this.complete(v.completion,v.afterLoc),N(v),D}},catch:function(l){for(var f=this.tryEntries.length-1;f>=0;--f){var v=this.tryEntries[f];if(v.tryLoc===l){var P=v.completion;if(P.type==="throw"){var L=P.arg;N(v)}return L}}throw new Error("illegal catch attempt")},delegateYield:function(l,f,v){return this.delegate={iterator:M(l),resultName:f,nextLoc:v},this.method==="next"&&(this.arg=e),D}},a}(y.exports);try{regeneratorRuntime=i}catch{Function("r","regeneratorRuntime = r")(i)}},function(y,r,n){var i={"./bold.js":39,"./clear.js":40,"./code.js":41,"./fullscreen.js":42,"./h1.js":43,"./h2.js":44,"./h3.js":45,"./h4.js":46,"./h5.js":47,"./h6.js":48,"./hr.js":49,"./image.js":50,"./italic.js":51,"./link.js":52,"./ol.js":53,"./quote.js":54,"./redo.js":55,"./strikethrough.js":56,"./sync-scroll.js":57,"./table.js":58,"./ul.js":59,"./undo.js":60};function a(h){var e=t(h);return n(e)}function t(h){if(!n.o(i,h)){var e=new Error("Cannot find module '"+h+"'");throw e.code="MODULE_NOT_FOUND",e}return i[h]}a.keys=function(){return Object.keys(i)},a.resolve=t,y.exports=a,a.id=38},function(y,r,n){n.r(r);var i=n(2),a=n(1);n.d(r,"name",function(){return a.a}),r.default=function(t){t.insert(function(h){var e="**",m="**",d=t.langConfig.bold.placeholder,b=function(g){return g||d},C=Object(i.b)({selected:h,InsertGetter:function(g){return""+e+b(g)+m},selectedGetter:b}),T=C.insertContent,s=C.newSelected;return{text:T,selected:s}})}},function(y,r,n){n.r(r);var i=n(1);n.d(r,"name",function(){return i.b}),r.default=function(a){a.clear()}},function(y,r,n){n.r(r);var i=n(1);n.d(r,"name",function(){return i.c}),r.default=function(a){a.insert(function(t){var h="``` language",e="```",m=h+` +`+e;return t&&(m=h+` + `+t+` +`+e),{text:m,selected:"language"}})}},function(y,r,n){n.r(r);var i=n(1);n.d(r,"name",function(){return i.d}),r.default=function(a,t){a.toggleFullScreen(t)}},function(y,r,n){n.r(r);var i=n(2),a=n(1);n.d(r,"name",function(){return a.e}),r.default=function(t){t.insert(function(h){var e="#",m=t.langConfig.h1.placeholder,d=function(O){return O||m},b=Object(i.b)({selected:h,InsertGetter:function(O){return e+" "+d(O)},selectedGetter:d}),C=b.insertContent,T=b.newSelected;return{text:C,selected:T}})}},function(y,r,n){n.r(r);var i=n(2),a=n(1);n.d(r,"name",function(){return a.f}),r.default=function(t){t.insert(function(h){var e="##",m=t.langConfig.h2.placeholder,d=function(O){return O||m},b=Object(i.b)({selected:h,InsertGetter:function(O){return e+" "+d(O)},selectedGetter:d}),C=b.insertContent,T=b.newSelected;return{text:C,selected:T}})}},function(y,r,n){n.r(r);var i=n(2),a=n(1);n.d(r,"name",function(){return a.g}),r.default=function(t){t.insert(function(h){var e="###",m=t.langConfig.h3.placeholder,d=function(O){return O||m},b=Object(i.b)({selected:h,InsertGetter:function(O){return e+" "+d(O)},selectedGetter:d}),C=b.insertContent,T=b.newSelected;return{text:C,selected:T}})}},function(y,r,n){n.r(r);var i=n(2),a=n(1);n.d(r,"name",function(){return a.h}),r.default=function(t){t.insert(function(h){var e="####",m=t.langConfig.h4.placeholder,d=function(O){return O||m},b=Object(i.b)({selected:h,InsertGetter:function(O){return e+" "+d(O)},selectedGetter:d}),C=b.insertContent,T=b.newSelected;return{text:C,selected:T}})}},function(y,r,n){n.r(r);var i=n(2),a=n(1);n.d(r,"name",function(){return a.i}),r.default=function(t){t.insert(function(h){var e="#####",m=t.langConfig.h5.placeholder,d=function(O){return O||m},b=Object(i.b)({selected:h,InsertGetter:function(O){return e+" "+d(O)},selectedGetter:d}),C=b.insertContent,T=b.newSelected;return{text:C,selected:T}})}},function(y,r,n){n.r(r);var i=n(2),a=n(1);n.d(r,"name",function(){return a.j}),r.default=function(t){t.insert(function(h){var e="######",m=t.langConfig.h6.placeholder,d=function(O){return O||m},b=Object(i.b)({selected:h,InsertGetter:function(O){return e+" "+d(O)},selectedGetter:d}),C=b.insertContent,T=b.newSelected;return{text:C,selected:T}})}},function(y,r,n){n.r(r);var i=n(1);n.d(r,"name",function(){return i.k}),r.default=function(a){a.insert(function(){return{text:"------------------------------------"}})}},function(y,r,n){n.r(r);var i=n(1);n.d(r,"name",function(){return i.l}),r.default=function(a,t){var h=t===void 0?{}:t,e=h.url,m=h.desc,d=h.width,b=h.height;a.insert(function(){var C="http://",T="Description",s=C,O="!["+(m||T)+"]("+(e||C)+")",g=[];return d&&g.push('width="'+d+'"'),b&&g.push('height="'+b+'"'),g.length&&(O+="{{{"+g.join(" ")+"}}}"),e&&m?s=null:e?s=T:m&&(s=C),{text:O,selected:s}})}},function(y,r,n){n.r(r);var i=n(2),a=n(1);n.d(r,"name",function(){return a.m}),r.default=function(t){t.insert(function(h){var e="*",m="*",d=t.langConfig.italic.placeholder,b=function(g){return g||d},C=Object(i.b)({selected:h,InsertGetter:function(g){return""+e+b(g)+m},selectedGetter:b}),T=C.insertContent,s=C.newSelected;return{text:T,selected:s}})}},function(y,r,n){n.r(r);var i=n(2),a=n(1);n.d(r,"name",function(){return a.n}),r.default=function(t){t.insert(function(h){var e=t.langConfig.link.descPlaceholder,m="http://",d=Object(i.b)({selected:h,InsertGetter:function(s){return"["+(s||e)+"]("+m+")"},selectedGetter:function(s){return s?m:e}}),b=d.insertContent,C=d.newSelected;return{text:b,selected:C}})}},function(y,r,n){n.r(r);var i=n(2),a=n(1);n.d(r,"name",function(){return a.o}),r.default=function(t){t.insert(function(h){var e=t.langConfig.ol.placeholder,m=function(s){return s||e},d=Object(i.b)({selected:h,InsertGetter:function(s,O){return O+". "+m(s)},selectedGetter:m,ignoreEmptyLine:!1}),b=d.insertContent,C=d.newSelected;return{text:b,selected:C}})}},function(y,r,n){n.r(r);var i=n(1);n.d(r,"name",function(){return i.p}),r.default=function(a){a.insert(function(t){var h=">",e=t||a.langConfig.quote.placeholder;return{text:h+" "+e,selected:e}})}},function(y,r,n){n.r(r);var i=n(1);n.d(r,"name",function(){return i.q}),r.default=function(a){a.redo()}},function(y,r,n){n.r(r);var i=n(2),a=n(1);n.d(r,"name",function(){return a.r}),r.default=function(t){t.insert(function(h){var e="~~",m="~~",d=t.langConfig.strikethrough.placeholder,b=function(g){return g||d},C=Object(i.b)({selected:h,InsertGetter:function(g){return""+e+b(g)+m},selectedGetter:b}),T=C.insertContent,s=C.newSelected;return{text:T,selected:s}})}},function(y,r,n){n.r(r);var i=n(1);n.d(r,"name",function(){return i.s}),r.default=function(a,t){a.toggleSyncScroll(t)}},function(y,r,n){n.r(r);var i=n(1);n.d(r,"name",function(){return i.t}),r.default=function(a){a.insert(function(){var t=`|column1|column2|column3| +|-|-|-| +|content1|content2|content3|`;return{text:t,selected:"column1"}})}},function(y,r,n){n.r(r);var i=n(2),a=n(1);n.d(r,"name",function(){return a.u}),r.default=function(t){t.insert(function(h){var e=t.langConfig.ul.placeholder,m=function(s){return s||e},d=Object(i.b)({selected:h,InsertGetter:function(s){return"- "+m(s)},selectedGetter:m,ignoreEmptyLine:!1}),b=d.insertContent,C=d.newSelected;return{text:b,selected:C}})}},function(y,r,n){n.r(r);var i=n(1);n.d(r,"name",function(){return i.v}),r.default=function(a){a.undo()}},function(y,r,n){var i={"./bold.js":62,"./clear.js":63,"./code.js":64,"./fullscreen.js":65,"./h.js":66,"./hr.js":67,"./image.js":23,"./italic.js":68,"./link.js":69,"./ol.js":70,"./preview.js":71,"./quote.js":72,"./redo.js":73,"./save.js":74,"./strikethrough.js":75,"./sync-scroll.js":76,"./table.js":77,"./toc.js":78,"./ul.js":79,"./undo.js":80};function a(h){var e=t(h);return n(e)}function t(h){if(!n.o(i,h)){var e=new Error("Cannot find module '"+h+"'");throw e.code="MODULE_NOT_FOUND",e}return i[h]}a.keys=function(){return Object.keys(i)},a.resolve=t,y.exports=a,a.id=61},function(y,r,n){n.r(r);var i=n(1);r.default={name:i.a,icon:"v-md-icon-bold",title:function(t){return t.langConfig.bold.toolbar+"\uFF08Ctrl+B\uFF09"},action:function(t){t.execCommand(i.a)}}},function(y,r,n){n.r(r);var i=n(1);r.default={name:i.b,icon:"v-md-icon-clear",title:function(t){return t.langConfig.clear.toolbar},action:function(t){t.execCommand(i.b)}}},function(y,r,n){n.r(r);var i=n(1);r.default={name:i.c,icon:"v-md-icon-code",title:function(t){return t.langConfig.code.toolbar},action:function(t){t.execCommand(i.c)}}},function(y,r,n){n.r(r);var i=n(1);r.default={name:i.d,icon:"v-md-icon-fullscreen",title:function(t){var h=t.langConfig.fullscreen;return t.fullscreen?h.disabled:h.enabled},active:function(t){return t.fullscreen},action:function(t){t.execCommand(i.d,!t.fullscreen)}}},function(y,r,n){n.r(r);var i=n(1);r.default={name:"h",text:"H",title:function(t){return t.langConfig.h.toolbar+"\uFF08Ctrl+1~6\uFF09"},menus:[{name:i.e,text:function(t){return t.langConfig.h1.toolbar},action:function(t){t.execCommand(i.e)}},{name:i.f,text:function(t){return t.langConfig.h2.toolbar},action:function(t){t.execCommand(i.f)}},{name:i.g,text:function(t){return t.langConfig.h3.toolbar},action:function(t){t.execCommand(i.g)}},{name:i.h,text:function(t){return t.langConfig.h4.toolbar},action:function(t){t.execCommand(i.h)}},{name:i.i,text:function(t){return t.langConfig.h5.toolbar},action:function(t){t.execCommand(i.i)}},{name:i.j,text:function(t){return t.langConfig.h6.toolbar},action:function(t){t.execCommand(i.j)}}]}},function(y,r,n){n.r(r);var i=n(1);r.default={name:i.k,icon:"v-md-icon-horizontal",title:function(t){return t.langConfig.hr.toolbar},action:function(t){t.execCommand(i.k)}}},function(y,r,n){n.r(r);var i=n(1);r.default={name:i.m,icon:"v-md-icon-italic",title:function(t){return t.langConfig.italic.toolbar+"\uFF08Ctrl+I\uFF09"},action:function(t){t.execCommand(i.m)}}},function(y,r,n){n.r(r);var i=n(1);r.default={name:i.n,icon:"v-md-icon-link",title:function(t){return t.langConfig.link.toolbar+"\uFF08Ctrl+L\uFF09"},action:function(t){t.execCommand(i.n)}}},function(y,r,n){n.r(r);var i=n(1);r.default={name:i.o,icon:"v-md-icon-ol",title:function(t){return t.langConfig.ol.toolbar+"\uFF08Ctrl+O\uFF09"},action:function(t){t.execCommand(i.o)}}},function(y,r,n){n.r(r);var i=n(4);r.default={name:"preview",icon:"v-md-icon-preview",title:function(t){var h=t.langConfig.preview;return t.currentMode===i.a.EDITABLE?h.disabled:h.enabled},active:function(t){return t.currentMode===i.a.EDITABLE},action:function(t){t.currentMode=t.currentMode===i.a.EDITABLE?i.a.EDIT:i.a.EDITABLE}}},function(y,r,n){n.r(r);var i=n(1);r.default={name:i.p,icon:"v-md-icon-quote",title:function(t){return t.langConfig.quote.toolbar+"\uFF08Ctrl+Q\uFF09"},action:function(t){t.execCommand(i.p)}}},function(y,r,n){n.r(r);var i=n(1);r.default={name:i.q,icon:"v-md-icon-redo",title:function(t){return t.langConfig.redo.toolbar+"\uFF08Ctrl+Y\uFF09"},action:function(t){t.execCommand(i.q)}}},function(y,r,n){n.r(r),r.default={name:"save",icon:"v-md-icon-save",title:function(a){return a.langConfig.save.toolbar+"\uFF08Ctrl+S\uFF09"},action:function(a){a.save()}}},function(y,r,n){n.r(r);var i=n(1);r.default={name:i.r,icon:"v-md-icon-strikethrough",title:function(t){return t.langConfig.strikethrough.toolbar},action:function(t){t.execCommand(i.r)}}},function(y,r,n){n.r(r);var i=n(1);r.default={name:i.s,icon:"v-md-icon-sync",title:function(t){var h=t.langConfig.syncScroll;return t.enableSyncScroll?h.disabled:h.enabled},active:function(t){return t.enableSyncScroll},action:function(t){t.execCommand(i.s,!t.enableSyncScroll)}}},function(y,r,n){n.r(r);var i=n(1);r.default={name:i.t,icon:"v-md-icon-table",title:function(t){return t.langConfig.table.toolbar},action:function(t){t.execCommand(i.t)}}},function(y,r,n){n.r(r),r.default={name:"toc",icon:"v-md-icon-toc",title:function(a){var t=a.langConfig.toc;return a.tocVisible?t.disabled:t.enabled},active:function(a){return a.tocVisible},action:function(a){a.toggleToc()}}},function(y,r,n){n.r(r);var i=n(1);r.default={name:i.u,icon:"v-md-icon-ul",title:function(t){return t.langConfig.ul.toolbar+"\uFF08Ctrl+U\uFF09"},action:function(t){t.execCommand(i.u)}}},function(y,r,n){n.r(r);var i=n(1);r.default={name:i.v,icon:"v-md-icon-undo",title:function(t){return t.langConfig.undo.toolbar+"\uFF08Ctrl+Z\uFF09"},action:function(t){t.execCommand(i.v)}}},function(y,r,n){},function(y,r,n){n(27)},function(y,r,n){n(28)},function(y,r,n){n(29)},function(y,r,n){n(30)},function(y,r){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch{typeof window=="object"&&(n=window)}y.exports=n},function(y,r,n){n(31)},function(y,r,n){n(32)},function(y,r,n){n(33)},function(y,r,n){var i={"./bold.js":91,"./h1.js":92,"./h2.js":93,"./h3.js":94,"./h4.js":95,"./h5.js":96,"./h6.js":97,"./italic.js":98,"./link.js":99,"./ol.js":100,"./quote.js":101,"./save.js":102,"./ul.js":103};function a(h){var e=t(h);return n(e)}function t(h){if(!n.o(i,h)){var e=new Error("Cannot find module '"+h+"'");throw e.code="MODULE_NOT_FOUND",e}return i[h]}a.keys=function(){return Object.keys(i)},a.resolve=t,y.exports=a,a.id=90},function(y,r,n){n.r(r);var i=n(1);r.default={modifier:"ctrl",key:"b",action:function(t){t.execCommand(i.a)}}},function(y,r,n){n.r(r);var i=n(1);r.default={modifier:"ctrl",key:"1",action:function(t){t.execCommand(i.e)}}},function(y,r,n){n.r(r);var i=n(1);r.default={modifier:"ctrl",key:"2",action:function(t){t.execCommand(i.f)}}},function(y,r,n){n.r(r);var i=n(1);r.default={modifier:"ctrl",key:"3",action:function(t){t.execCommand(i.g)}}},function(y,r,n){n.r(r);var i=n(1);r.default={modifier:"ctrl",key:"4",action:function(t){t.execCommand(i.h)}}},function(y,r,n){n.r(r);var i=n(1);r.default={modifier:"ctrl",key:"5",action:function(t){t.execCommand(i.i)}}},function(y,r,n){n.r(r);var i=n(1);r.default={modifier:"ctrl",key:"6",action:function(t){t.execCommand(i.j)}}},function(y,r,n){n.r(r);var i=n(1);r.default={modifier:"ctrl",key:"i",action:function(t){t.execCommand(i.m)}}},function(y,r,n){n.r(r);var i=n(1);r.default={modifier:"ctrl",key:"l",action:function(t){t.execCommand(i.n)}}},function(y,r,n){n.r(r);var i=n(1);r.default={modifier:"ctrl",key:"o",action:function(t){t.execCommand(i.o)}}},function(y,r,n){n.r(r);var i=n(1);r.default={modifier:"ctrl",key:"q",action:function(t){t.execCommand(i.p)}}},function(y,r,n){n.r(r),r.default={modifier:"ctrl",key:"s",action:function(a){a.save()}}},function(y,r,n){n.r(r);var i=n(1);r.default={modifier:"ctrl",key:"u",action:function(t){t.execCommand(i.u)}}},function(y,r,n){},,function(y,r,n){n(104)},,function(y,r,n){n.r(r);var i=n(0);function a(S,E,k,z,N,p){var M=Object(i.resolveComponent)("toc-nav"),A=Object(i.resolveComponent)("scrollbar"),l=Object(i.resolveComponent)("v-md-textarea-editor"),f=Object(i.resolveComponent)("v-md-preview"),v=Object(i.resolveComponent)("v-md-upload-file"),P=Object(i.resolveComponent)("v-md-container");return Object(i.openBlock)(),Object(i.createBlock)(P,{"left-toolbar":S.leftToolbar,"right-toolbar":S.rightToolbar,toolbars:S.toolbars,"disabled-menus":S.disabledMenus,height:S.height,fullscreen:S.fullscreen,"left-area-visible":S.tocVisible,"left-area-title":S.langConfig.toc.title,"left-area-reverse":S.tocNavPositionRight,mode:S.currentMode,onEditorWrapperClick:S.handleEditorWrapperClick,onToolbarItemClick:S.handleToolbarItemClick,onToolbarMenuClick:S.handleToolbarMenuClick,ref:"contaner"},{"left-area":Object(i.withCtx)(function(){return[Object(i.createVNode)(A,null,{default:Object(i.withCtx)(function(){return[Object(i.createVNode)(M,{titles:S.titles,onNavClick:S.handleNavClick},null,8,["titles","onNavClick"])]}),_:1})]}),editor:Object(i.withCtx)(function(){return[Object(i.createVNode)(A,{onScroll:S.handleEditorScroll,ref:"editorScroller"},{default:Object(i.withCtx)(function(){return[Object(i.createVNode)(l,{"model-value":S.text,"min-height":S.textEditorMinHeight,placeholder:S.placeholder,"onUpdate:modelValue":S.handleInput,onClick:E[1]||(E[1]=Object(i.withModifiers)(function(){},["stop"])),onDrop:S.handleDrop,onPaste:S.handlePaste,onBlur:S.handleBlur,ref:"editorEgine"},null,8,["model-value","min-height","placeholder","onUpdate:modelValue","onDrop","onPaste","onBlur"])]}),_:1},8,["onScroll"])]}),preview:Object(i.withCtx)(function(){return[Object(i.createVNode)(A,{ref:"previewScroller"},{default:Object(i.withCtx)(function(){return[Object(i.createVNode)(f,{text:S.text,"tab-size":S.tabSize,"scroll-container":S.getPreviewScrollContainer,"before-change":S.beforePreviewChange,onChange:S.handleChange,onImageClick:S.handlePreviewImageClick,ref:"preview"},null,8,["text","tab-size","scroll-container","before-change","onChange","onImageClick"])]}),_:1},512)]}),default:Object(i.withCtx)(function(){return[S.hasUploadImage?(Object(i.openBlock)(),Object(i.createBlock)(v,{key:0,"upload-config":S.uploadConfig,ref:"uploadFile"},null,8,["upload-config"])):Object(i.createCommentVNode)("v-if",!0)]}),_:1},8,["left-toolbar","right-toolbar","toolbars","disabled-menus","height","fullscreen","left-area-visible","left-area-title","left-area-reverse","mode","onEditorWrapperClick","onToolbarItemClick","onToolbarMenuClick"])}var t=n(10),h=n.n(t),e=n(17),m={class:"v-md-textarea-editor"},d=Object(i.createVNode)("br",null,null,-1);function b(S,E,k,z,N,p){return Object(i.openBlock)(),Object(i.createBlock)("div",m,[Object(i.createVNode)("pre",{style:{minHeight:k.minHeight}},[(Object(i.openBlock)(!0),Object(i.createBlock)(i.Fragment,null,Object(i.renderList)(k.modelValue.split(` +`),function(M,A){return Object(i.openBlock)(),Object(i.createBlock)("section",{"data-line":A+1},[Object(i.createTextVNode)(Object(i.toDisplayString)(M||" "),1),d],8,["data-line"])}),256))],4),Object(i.createVNode)("textarea",{ref:"textarea",value:k.modelValue,placeholder:k.placeholder,spellcheck:"false",onCompositionstart:E[1]||(E[1]=function(){return p.handleCompositionStart.apply(p,arguments)}),onCompositionupdate:E[2]||(E[2]=function(){return p.handleCompositionUpdate.apply(p,arguments)}),onCompositionend:E[3]||(E[3]=function(){return p.handleCompositionEnd.apply(p,arguments)}),onInput:E[4]||(E[4]=function(){return p.handleInput.apply(p,arguments)}),onClick:E[5]||(E[5]=function(){return p.updateCurrentHistoryRange.apply(p,arguments)}),onPaste:E[6]||(E[6]=function(){return p.handlePaste.apply(p,arguments)}),onBlur:E[7]||(E[7]=function(){return p.handleBlur.apply(p,arguments)}),onKeydown:[E[8]||(E[8]=Object(i.withKeys)(Object(i.withModifiers)(function(){},["prevent"]),["tab"])),E[9]||(E[9]=Object(i.withKeys)(Object(i.withModifiers)(function(){return p.undo.apply(p,arguments)},["ctrl","prevent","exact"]),["z"])),E[10]||(E[10]=Object(i.withKeys)(Object(i.withModifiers)(function(){return p.undo.apply(p,arguments)},["meta","prevent","exact"]),["z"])),E[11]||(E[11]=Object(i.withKeys)(Object(i.withModifiers)(function(){return p.redo.apply(p,arguments)},["ctrl","prevent","exact"]),["y"])),E[12]||(E[12]=Object(i.withKeys)(Object(i.withModifiers)(function(){return p.redo.apply(p,arguments)},["meta","prevent","exact"]),["y"]))],onKeyup:[E[13]||(E[13]=Object(i.withKeys)(Object(i.withModifiers)(function(){return p.updateCurrentHistoryRange.apply(p,arguments)},["shift","exact"]),["up"])),E[14]||(E[14]=Object(i.withKeys)(Object(i.withModifiers)(function(){return p.updateCurrentHistoryRange.apply(p,arguments)},["shift","exact"]),["down"])),E[15]||(E[15]=Object(i.withKeys)(Object(i.withModifiers)(function(){return p.updateCurrentHistoryRange.apply(p,arguments)},["shift","exact"]),["left"])),E[16]||(E[16]=Object(i.withKeys)(Object(i.withModifiers)(function(){return p.updateCurrentHistoryRange.apply(p,arguments)},["shift","exact"]),["right"]))]},null,40,["value","placeholder"])])}var C=n(5),T;function s(S){if(S.nodeName!=="TEXTAREA")return!1;if(typeof T=="undefined"){var E=document.createElement("textarea");E.value=1,T=!!E.firstChild}return T}function O(S,E){if(S.focus(),document.selection){var k=document.selection.createRange();k.text=E,k.collapse(!1),k.select();return}var z=document.execCommand("insertText",!1,E);if(!z){var N=S.selectionStart,p=S.selectionEnd;if(typeof S.setRangeText=="function")S.setRangeText(E);else{var M=document.createRange(),A=document.createTextNode(E);if(s(S)){var l=S.firstChild;if(!l)S.appendChild(A);else{for(var f=0,v=null,P=null;l&&(v===null||P===null);){var L=l.nodeValue.length;N>=f&&N<=f+L&&M.setStart(v=l,N-f),p>=f&&p<=f+L&&M.setEnd(P=l,p-f),f+=L,l=l.nextSibling}N!==p&&M.deleteContents()}}if(s(S)&&M.commonAncestorContainer.nodeName==="#text")M.insertNode(A);else{var H=S.value;S.value=H.slice(0,N)+E+H.slice(p)}}S.setSelectionRange(N+E.length,N+E.length);var V=document.createEvent("UIEvent");V.initEvent("input",!0,!1),S.dispatchEvent(V)}}var g=O,R=n(36),B=n(2),I={name:"v-md-textarea-editor",props:{modelValue:String,minHeight:String,placeholder:String,historyDebounce:{type:Number,default:400},historyMax:{type:Number,default:30}},emits:["blur","paste","update:modelValue"],data:function(){return{isComposing:!1}},computed:{textareaEl:function(){return this.$refs.textarea}},watch:{modelValue:function(){var E=this;this.clearTimeout(),this.triggerInputBySetHistory||(this.timmer=setTimeout(function(){E.saveHistory(),E.clearTimeout()},this.historyDebounce))}},created:function(){this.historyStack=[],this.historyIndex=0,this.hotkeysManager=new R.a},mounted:function(){this.saveHistory(),this.textareaEl.addEventListener("keydown",this.handleKeydown,!1)},beforeUnmount:function(){this.textareaEl.removeEventListener("keydown",this.handleKeydown,!1)},methods:{handleCompositionStart:function(){this.isComposing=!0},handleCompositionUpdate:function(E){var k=E.target.value,z=k[k.length-1]||"";this.isComposing=!Object(B.e)(z)},handleCompositionEnd:function(E){this.isComposing&&(this.isComposing=!1,this.handleInput(E))},handlePaste:function(E){this.$emit("paste",E)},handleBlur:function(E){this.$emit("blur",E)},registerHotkeys:function(){var E;(E=this.hotkeysManager).registerHotkeys.apply(E,arguments)},handleKeydown:function(E){this.hotkeysManager.dispatch(E)},heightAtLine:function(E){var k=this.$el.querySelector('section[data-line="'+E+'"]');return k?k.offsetTop+k.offsetHeight:0},clearTimeout:function(S){function E(){return S.apply(this,arguments)}return E.toString=function(){return S.toString()},E}(function(){this.timmer&&clearTimeout(this.timmer),this.timmer=null}),updateCurrentHistoryRange:function(){this.timmer||this.updateHistory(this.historyIndex,{range:this.getRange()})},handleInput:function(E){this.isComposing||this.$emit("update:modelValue",E.target.value)},saveHistory:function(){var E=this.getRange(),k={value:this.modelValue,range:E};this.historyStack=this.historyStack.slice(0,this.historyIndex+1),this.historyStack.push(k),this.historyStack.length>this.historyMax&&this.historyStack.shift(),this.historyIndex=this.historyStack.length-1},updateHistory:function(E,k){var z=this.historyStack[E];"value"in k&&(z.value=k.value),Object(C.a)(z.range,k.range)},goHistory:function(E){var k=this,z=this.historyStack[E],N=z.value,p=z.range;this.$emit("update:modelValue",N),this.triggerInputBySetHistory=!0,this.$nextTick(function(){k.triggerInputBySetHistory=!1,k.setRange(p)})},getRange:function(){return{start:this.textareaEl.selectionStart,end:this.textareaEl.selectionEnd}},setRange:function(E){var k=E.start,z=E.end;this.textareaEl.setSelectionRange(k,z),this.updateCurrentHistoryRange()},focus:function(){this.textareaEl.focus()},insertText:function(E){g(this.textareaEl,E)},undo:function(){this.historyIndex>0&&(this.historyIndex--,this.goHistory(this.historyIndex))},redo:function(){this.historyIndexk?this.text.slice(k,z):null},changeSelctionTo:function(E,k){var z=this.$refs.editorEgine,N=E.indexOf(k),p=z.getRange().end;if(N!==-1){var M=this.text.slice(0,p),A=M.length-E.length,l=A+N,f=l+k.length;this.$refs.editorEgine.setRange({start:l,end:f})}}}};Object(_.a)(G);var K=G;K.render=a;var W=K,ee=n(7);n(18);var $="2.3.15",te=function(E){E.component(W.name,W)};W.version=$,W.install=te,W.xss=ee.a,W.use=function(S,E){return typeof S=="function"?S(W,E):S.install(W,E),W},r.default=W}]).default})})(Me);var Mt=Ot(Me.exports),Pt=jt({__proto__:null,default:Mt},[Me.exports]);export{Pt as b}; diff --git a/src/main/resources/static/assets/base.197bc1e5.js b/src/main/resources/static/assets/base.197bc1e5.js new file mode 100644 index 0000000..4a8c7cc --- /dev/null +++ b/src/main/resources/static/assets/base.197bc1e5.js @@ -0,0 +1 @@ +import{a0 as J,o as Ne,Y as Re,w as R,r as z,a3 as mt,a4 as bt,u as _,D as wt,a5 as ce,m as yt,a6 as xt,a as c,f,p as l,a7 as we,a8 as $t,N as zt,c as w,E as H,v as je,x as ie,a9 as Ct,d as fe,g as E,z as Mt,G as St,aa as Ht,F as kt,b as q,e as ye,q as xe,n as K,k as $e,i as Bt,V as At}from"./index.bbf7818f.js";var Ot=typeof global=="object"&&global&&global.Object===Object&&global,Pt=Ot,Tt=typeof self=="object"&&self&&self.Object===Object&&self,Vt=Pt||Tt||Function("return this")(),ue=Vt,It=ue.Symbol,V=It,De=Object.prototype,Lt=De.hasOwnProperty,Ft=De.toString,F=V?V.toStringTag:void 0;function Et(e){var t=Lt.call(e,F),r=e[F];try{e[F]=void 0;var a=!0}catch{}var n=Ft.call(e);return a&&(t?e[F]=r:delete e[F]),n}var Nt=Object.prototype,Rt=Nt.toString;function jt(e){return Rt.call(e)}var Dt="[object Null]",qt="[object Undefined]",ze=V?V.toStringTag:void 0;function qe(e){return e==null?e===void 0?qt:Dt:ze&&ze in Object(e)?Et(e):jt(e)}function Gt(e){return e!=null&&typeof e=="object"}var Ut="[object Symbol]";function de(e){return typeof e=="symbol"||Gt(e)&&qe(e)==Ut}function Kt(e,t){for(var r=-1,a=e==null?0:e.length,n=Array(a);++r-1&&e%1==0&&e-1}function qr(e,t){var r=this.__data__,a=X(r,e);return a<0?(++this.size,r.push([e,t])):r[a][1]=t,this}function I(e){var t=-1,r=e==null?0:e.length;for(this.clear();++ttypeof e!="undefined",ss=e=>typeof e=="boolean",_a=e=>typeof e=="number",ls=e=>typeof e=="string",cs=()=>{};ve&&((ke=window==null?void 0:window.navigator)==null?void 0:ke.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function ge(e,t){function r(...a){e(()=>t.apply(this,a),{fn:t,thisArg:this,args:a})}return r}const We=e=>e();function pa(e,t={}){let r,a;return o=>{const s=_(e),i=_(t.maxWait);if(r&&clearTimeout(r),s<=0||i!==void 0&&i<=0)return a&&(clearTimeout(a),a=null),o();i&&!a&&(a=setTimeout(()=>{r&&clearTimeout(r),a=null,o()},i)),r=setTimeout(()=>{a&&clearTimeout(a),a=null,o()},s)}}function va(e,t=!0,r=!0){let a=0,n,o=!0;const s=()=>{n&&(clearTimeout(n),n=void 0)};return d=>{const v=_(e),m=Date.now()-a;if(s(),v<=0)return a=Date.now(),d();m>v&&(r||!o)?(a=Date.now(),d()):t&&(n=setTimeout(()=>{a=Date.now(),o=!0,s(),d()},v)),!r&&!n&&(n=setTimeout(()=>o=!0,v)),o=!1}}function ga(e=We){const t=z(!0);function r(){t.value=!1}function a(){t.value=!0}return{isActive:t,pause:r,resume:a,eventFilter:(...o)=>{t.value&&e(...o)}}}function ma(e,t=200,r={}){return ge(pa(t,r),e)}function fs(e,t=200,r={}){if(t<=0)return e;const a=z(e.value),n=ma(()=>{a.value=e.value},t,r);return R(e,()=>n()),a}function us(e,t=200,r=!0,a=!0){return ge(va(t,r,a),e)}function ds(e,t=!0){J()?Ne(e):t?e():Re(e)}function hs(e,t,r={}){const{immediate:a=!0}=r,n=z(!1);let o=null;function s(){o&&(clearTimeout(o),o=null)}function i(){n.value=!1,s()}function d(...v){s(),n.value=!0,o=setTimeout(()=>{n.value=!1,o=null,e(...v)},_(t))}return a&&(n.value=!0,ve&&d()),ha(i),{isPending:n,start:d,stop:i}}var Be=Object.getOwnPropertySymbols,ba=Object.prototype.hasOwnProperty,wa=Object.prototype.propertyIsEnumerable,ya=(e,t)=>{var r={};for(var a in e)ba.call(e,a)&&t.indexOf(a)<0&&(r[a]=e[a]);if(e!=null&&Be)for(var a of Be(e))t.indexOf(a)<0&&wa.call(e,a)&&(r[a]=e[a]);return r};function xa(e,t,r={}){const a=r,{eventFilter:n=We}=a,o=ya(a,["eventFilter"]);return R(e,ge(n,t),o)}function _s(e,t,r){const a=R(e,(...n)=>(Re(()=>a()),t(...n)),r)}var $a=Object.defineProperty,za=Object.defineProperties,Ca=Object.getOwnPropertyDescriptors,W=Object.getOwnPropertySymbols,Ye=Object.prototype.hasOwnProperty,Je=Object.prototype.propertyIsEnumerable,Ae=(e,t,r)=>t in e?$a(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ma=(e,t)=>{for(var r in t||(t={}))Ye.call(t,r)&&Ae(e,r,t[r]);if(W)for(var r of W(t))Je.call(t,r)&&Ae(e,r,t[r]);return e},Sa=(e,t)=>za(e,Ca(t)),Ha=(e,t)=>{var r={};for(var a in e)Ye.call(e,a)&&t.indexOf(a)<0&&(r[a]=e[a]);if(e!=null&&W)for(var a of W(e))t.indexOf(a)<0&&Je.call(e,a)&&(r[a]=e[a]);return r};function ps(e,t,r={}){const a=r,{eventFilter:n}=a,o=Ha(a,["eventFilter"]),{eventFilter:s,pause:i,resume:d,isActive:v}=ga(n);return{stop:xa(e,t,Sa(Ma({},o),{eventFilter:s})),pause:i,resume:d,isActive:v}}const ka=e=>e===void 0,vs=e=>!e&&e!==0||wt(e)&&e.length===0||ce(e)&&!Object.keys(e).length,gs=e=>typeof Element=="undefined"?!1:e instanceof Element,Oe=e=>Object.keys(e),ms=e=>Object.entries(e),bs=(e,t,r)=>({get value(){return ca(e,t,r)},set value(a){da(e,t,a)}});class Ba extends Error{constructor(t){super(t),this.name="ElementPlusError"}}function ws(e,t){throw new Ba(`[${e}] ${t}`)}function ys(e,t){}const Xe=(e="")=>e.split(" ").filter(t=>!!t.trim()),xs=(e,t)=>{if(!e||!t)return!1;if(t.includes(" "))throw new Error("className should not contain space.");return e.classList.contains(t)},$s=(e,t)=>{!e||!t.trim()||e.classList.add(...Xe(t))},zs=(e,t)=>{!e||!t.trim()||e.classList.remove(...Xe(t))},Cs=(e,t)=>{var r;if(!ve||!e||!t)return"";let a=xt(t);a==="float"&&(a="cssFloat");try{const n=e.style[a];if(n)return n;const o=(r=document.defaultView)==null?void 0:r.getComputedStyle(e,"");return o?o[a]:""}catch{return e.style[a]}};function Aa(e,t="px"){if(!e)return"";if(yt(e))return e;if(_a(e))return`${e}${t}`}/*! Element Plus Icons Vue v2.0.6 */var u=(e,t)=>{let r=e.__vccOpts||e;for(let[a,n]of t)r[a]=n;return r},Oa={name:"ArrowDown"},Pa={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Ta=l("path",{fill:"currentColor",d:"M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z"},null,-1),Va=[Ta];function Ia(e,t,r,a,n,o){return c(),f("svg",Pa,Va)}var Ms=u(Oa,[["render",Ia],["__file","arrow-down.vue"]]),La={name:"ArrowLeft"},Fa={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Ea=l("path",{fill:"currentColor",d:"M609.408 149.376 277.76 489.6a32 32 0 0 0 0 44.672l331.648 340.352a29.12 29.12 0 0 0 41.728 0 30.592 30.592 0 0 0 0-42.752L339.264 511.936l311.872-319.872a30.592 30.592 0 0 0 0-42.688 29.12 29.12 0 0 0-41.728 0z"},null,-1),Na=[Ea];function Ra(e,t,r,a,n,o){return c(),f("svg",Fa,Na)}var Ss=u(La,[["render",Ra],["__file","arrow-left.vue"]]),ja={name:"ArrowRight"},Da={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},qa=l("path",{fill:"currentColor",d:"M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"},null,-1),Ga=[qa];function Ua(e,t,r,a,n,o){return c(),f("svg",Da,Ga)}var Hs=u(ja,[["render",Ua],["__file","arrow-right.vue"]]),Ka={name:"ArrowUp"},Za={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Wa=l("path",{fill:"currentColor",d:"m488.832 344.32-339.84 356.672a32 32 0 0 0 0 44.16l.384.384a29.44 29.44 0 0 0 42.688 0l320-335.872 319.872 335.872a29.44 29.44 0 0 0 42.688 0l.384-.384a32 32 0 0 0 0-44.16L535.168 344.32a32 32 0 0 0-46.336 0z"},null,-1),Ya=[Wa];function Ja(e,t,r,a,n,o){return c(),f("svg",Za,Ya)}var ks=u(Ka,[["render",Ja],["__file","arrow-up.vue"]]),Xa={name:"Avatar"},Qa={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},en=l("path",{fill:"currentColor",d:"M628.736 528.896A416 416 0 0 1 928 928H96a415.872 415.872 0 0 1 299.264-399.104L512 704l116.736-175.104zM720 304a208 208 0 1 1-416 0 208 208 0 0 1 416 0z"},null,-1),tn=[en];function rn(e,t,r,a,n,o){return c(),f("svg",Qa,tn)}var Bs=u(Xa,[["render",rn],["__file","avatar.vue"]]),an={name:"Calendar"},nn={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},on=l("path",{fill:"currentColor",d:"M128 384v512h768V192H768v32a32 32 0 1 1-64 0v-32H320v32a32 32 0 0 1-64 0v-32H128v128h768v64H128zm192-256h384V96a32 32 0 1 1 64 0v32h160a32 32 0 0 1 32 32v768a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h160V96a32 32 0 0 1 64 0v32zm-32 384h64a32 32 0 0 1 0 64h-64a32 32 0 0 1 0-64zm0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64zm192-192h64a32 32 0 0 1 0 64h-64a32 32 0 0 1 0-64zm0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64zm192-192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64zm0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64z"},null,-1),sn=[on];function ln(e,t,r,a,n,o){return c(),f("svg",nn,sn)}var As=u(an,[["render",ln],["__file","calendar.vue"]]),cn={name:"CaretTop"},fn={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},un=l("path",{fill:"currentColor",d:"M512 320 192 704h639.936z"},null,-1),dn=[un];function hn(e,t,r,a,n,o){return c(),f("svg",fn,dn)}var Os=u(cn,[["render",hn],["__file","caret-top.vue"]]),_n={name:"Check"},pn={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},vn=l("path",{fill:"currentColor",d:"M406.656 706.944 195.84 496.256a32 32 0 1 0-45.248 45.248l256 256 512-512a32 32 0 0 0-45.248-45.248L406.592 706.944z"},null,-1),gn=[vn];function mn(e,t,r,a,n,o){return c(),f("svg",pn,gn)}var Ps=u(_n,[["render",mn],["__file","check.vue"]]),bn={name:"CircleCheck"},wn={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},yn=l("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z"},null,-1),xn=l("path",{fill:"currentColor",d:"M745.344 361.344a32 32 0 0 1 45.312 45.312l-288 288a32 32 0 0 1-45.312 0l-160-160a32 32 0 1 1 45.312-45.312L480 626.752l265.344-265.408z"},null,-1),$n=[yn,xn];function zn(e,t,r,a,n,o){return c(),f("svg",wn,$n)}var Cn=u(bn,[["render",zn],["__file","circle-check.vue"]]),Mn={name:"CircleCloseFilled"},Sn={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Hn=l("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336L512 457.664z"},null,-1),kn=[Hn];function Bn(e,t,r,a,n,o){return c(),f("svg",Sn,kn)}var Qe=u(Mn,[["render",Bn],["__file","circle-close-filled.vue"]]),An={name:"CircleClose"},On={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Pn=l("path",{fill:"currentColor",d:"m466.752 512-90.496-90.496a32 32 0 0 1 45.248-45.248L512 466.752l90.496-90.496a32 32 0 1 1 45.248 45.248L557.248 512l90.496 90.496a32 32 0 1 1-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 0 1-45.248-45.248L466.752 512z"},null,-1),Tn=l("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z"},null,-1),Vn=[Pn,Tn];function In(e,t,r,a,n,o){return c(),f("svg",On,Vn)}var Ln=u(An,[["render",In],["__file","circle-close.vue"]]),Fn={name:"Clock"},En={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Nn=l("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z"},null,-1),Rn=l("path",{fill:"currentColor",d:"M480 256a32 32 0 0 1 32 32v256a32 32 0 0 1-64 0V288a32 32 0 0 1 32-32z"},null,-1),jn=l("path",{fill:"currentColor",d:"M480 512h256q32 0 32 32t-32 32H480q-32 0-32-32t32-32z"},null,-1),Dn=[Nn,Rn,jn];function qn(e,t,r,a,n,o){return c(),f("svg",En,Dn)}var Ts=u(Fn,[["render",qn],["__file","clock.vue"]]),Gn={name:"Close"},Un={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Kn=l("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"},null,-1),Zn=[Kn];function Wn(e,t,r,a,n,o){return c(),f("svg",Un,Zn)}var et=u(Gn,[["render",Wn],["__file","close.vue"]]),Yn={name:"Coin"},Jn={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Xn=l("path",{fill:"currentColor",d:"m161.92 580.736 29.888 58.88C171.328 659.776 160 681.728 160 704c0 82.304 155.328 160 352 160s352-77.696 352-160c0-22.272-11.392-44.16-31.808-64.32l30.464-58.432C903.936 615.808 928 657.664 928 704c0 129.728-188.544 224-416 224S96 833.728 96 704c0-46.592 24.32-88.576 65.92-123.264z"},null,-1),Qn=l("path",{fill:"currentColor",d:"m161.92 388.736 29.888 58.88C171.328 467.84 160 489.792 160 512c0 82.304 155.328 160 352 160s352-77.696 352-160c0-22.272-11.392-44.16-31.808-64.32l30.464-58.432C903.936 423.808 928 465.664 928 512c0 129.728-188.544 224-416 224S96 641.728 96 512c0-46.592 24.32-88.576 65.92-123.264z"},null,-1),e0=l("path",{fill:"currentColor",d:"M512 544c-227.456 0-416-94.272-416-224S284.544 96 512 96s416 94.272 416 224-188.544 224-416 224zm0-64c196.672 0 352-77.696 352-160S708.672 160 512 160s-352 77.696-352 160 155.328 160 352 160z"},null,-1),t0=[Xn,Qn,e0];function r0(e,t,r,a,n,o){return c(),f("svg",Jn,t0)}var Vs=u(Yn,[["render",r0],["__file","coin.vue"]]),a0={name:"Collection"},n0={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},o0=l("path",{fill:"currentColor",d:"M192 736h640V128H256a64 64 0 0 0-64 64v544zm64-672h608a32 32 0 0 1 32 32v672a32 32 0 0 1-32 32H160l-32 57.536V192A128 128 0 0 1 256 64z"},null,-1),i0=l("path",{fill:"currentColor",d:"M240 800a48 48 0 1 0 0 96h592v-96H240zm0-64h656v160a64 64 0 0 1-64 64H240a112 112 0 0 1 0-224zm144-608v250.88l96-76.8 96 76.8V128H384zm-64-64h320v381.44a32 32 0 0 1-51.968 24.96L480 384l-108.032 86.4A32 32 0 0 1 320 445.44V64z"},null,-1),s0=[o0,i0];function l0(e,t,r,a,n,o){return c(),f("svg",n0,s0)}var Is=u(a0,[["render",l0],["__file","collection.vue"]]),c0={name:"CopyDocument"},f0={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},u0=l("path",{fill:"currentColor",d:"M768 832a128 128 0 0 1-128 128H192A128 128 0 0 1 64 832V384a128 128 0 0 1 128-128v64a64 64 0 0 0-64 64v448a64 64 0 0 0 64 64h448a64 64 0 0 0 64-64h64z"},null,-1),d0=l("path",{fill:"currentColor",d:"M384 128a64 64 0 0 0-64 64v448a64 64 0 0 0 64 64h448a64 64 0 0 0 64-64V192a64 64 0 0 0-64-64H384zm0-64h448a128 128 0 0 1 128 128v448a128 128 0 0 1-128 128H384a128 128 0 0 1-128-128V192A128 128 0 0 1 384 64z"},null,-1),h0=[u0,d0];function _0(e,t,r,a,n,o){return c(),f("svg",f0,h0)}var Ls=u(c0,[["render",_0],["__file","copy-document.vue"]]),p0={name:"DArrowLeft"},v0={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},g0=l("path",{fill:"currentColor",d:"M529.408 149.376a29.12 29.12 0 0 1 41.728 0 30.592 30.592 0 0 1 0 42.688L259.264 511.936l311.872 319.936a30.592 30.592 0 0 1-.512 43.264 29.12 29.12 0 0 1-41.216-.512L197.76 534.272a32 32 0 0 1 0-44.672l331.648-340.224zm256 0a29.12 29.12 0 0 1 41.728 0 30.592 30.592 0 0 1 0 42.688L515.264 511.936l311.872 319.936a30.592 30.592 0 0 1-.512 43.264 29.12 29.12 0 0 1-41.216-.512L453.76 534.272a32 32 0 0 1 0-44.672l331.648-340.224z"},null,-1),m0=[g0];function b0(e,t,r,a,n,o){return c(),f("svg",v0,m0)}var Fs=u(p0,[["render",b0],["__file","d-arrow-left.vue"]]),w0={name:"DArrowRight"},y0={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},x0=l("path",{fill:"currentColor",d:"M452.864 149.312a29.12 29.12 0 0 1 41.728.064L826.24 489.664a32 32 0 0 1 0 44.672L494.592 874.624a29.12 29.12 0 0 1-41.728 0 30.592 30.592 0 0 1 0-42.752L764.736 512 452.864 192a30.592 30.592 0 0 1 0-42.688zm-256 0a29.12 29.12 0 0 1 41.728.064L570.24 489.664a32 32 0 0 1 0 44.672L238.592 874.624a29.12 29.12 0 0 1-41.728 0 30.592 30.592 0 0 1 0-42.752L508.736 512 196.864 192a30.592 30.592 0 0 1 0-42.688z"},null,-1),$0=[x0];function z0(e,t,r,a,n,o){return c(),f("svg",y0,$0)}var Es=u(w0,[["render",z0],["__file","d-arrow-right.vue"]]),C0={name:"Delete"},M0={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},S0=l("path",{fill:"currentColor",d:"M160 256H96a32 32 0 0 1 0-64h256V95.936a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32V192h256a32 32 0 1 1 0 64h-64v672a32 32 0 0 1-32 32H192a32 32 0 0 1-32-32V256zm448-64v-64H416v64h192zM224 896h576V256H224v640zm192-128a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32zm192 0a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32z"},null,-1),H0=[S0];function k0(e,t,r,a,n,o){return c(),f("svg",M0,H0)}var Ns=u(C0,[["render",k0],["__file","delete.vue"]]),B0={name:"Document"},A0={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},O0=l("path",{fill:"currentColor",d:"M832 384H576V128H192v768h640V384zm-26.496-64L640 154.496V320h165.504zM160 64h480l256 256v608a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32zm160 448h384v64H320v-64zm0-192h160v64H320v-64zm0 384h384v64H320v-64z"},null,-1),P0=[O0];function T0(e,t,r,a,n,o){return c(),f("svg",A0,P0)}var Rs=u(B0,[["render",T0],["__file","document.vue"]]),V0={name:"Edit"},I0={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},L0=l("path",{fill:"currentColor",d:"M832 512a32 32 0 1 1 64 0v352a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h352a32 32 0 0 1 0 64H192v640h640V512z"},null,-1),F0=l("path",{fill:"currentColor",d:"m469.952 554.24 52.8-7.552L847.104 222.4a32 32 0 1 0-45.248-45.248L477.44 501.44l-7.552 52.8zm422.4-422.4a96 96 0 0 1 0 135.808l-331.84 331.84a32 32 0 0 1-18.112 9.088L436.8 623.68a32 32 0 0 1-36.224-36.224l15.104-105.6a32 32 0 0 1 9.024-18.112l331.904-331.84a96 96 0 0 1 135.744 0z"},null,-1),E0=[L0,F0];function N0(e,t,r,a,n,o){return c(),f("svg",I0,E0)}var js=u(V0,[["render",N0],["__file","edit.vue"]]),R0={name:"FolderOpened"},j0={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},D0=l("path",{fill:"currentColor",d:"M878.08 448H241.92l-96 384h636.16l96-384zM832 384v-64H485.76L357.504 192H128v448l57.92-231.744A32 32 0 0 1 216.96 384H832zm-24.96 512H96a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h287.872l128.384 128H864a32 32 0 0 1 32 32v96h23.04a32 32 0 0 1 31.04 39.744l-112 448A32 32 0 0 1 807.04 896z"},null,-1),q0=[D0];function G0(e,t,r,a,n,o){return c(),f("svg",j0,q0)}var Ds=u(R0,[["render",G0],["__file","folder-opened.vue"]]),U0={name:"FullScreen"},K0={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Z0=l("path",{fill:"currentColor",d:"m160 96.064 192 .192a32 32 0 0 1 0 64l-192-.192V352a32 32 0 0 1-64 0V96h64v.064zm0 831.872V928H96V672a32 32 0 1 1 64 0v191.936l192-.192a32 32 0 1 1 0 64l-192 .192zM864 96.064V96h64v256a32 32 0 1 1-64 0V160.064l-192 .192a32 32 0 1 1 0-64l192-.192zm0 831.872-192-.192a32 32 0 0 1 0-64l192 .192V672a32 32 0 1 1 64 0v256h-64v-.064z"},null,-1),W0=[Z0];function Y0(e,t,r,a,n,o){return c(),f("svg",K0,W0)}var qs=u(U0,[["render",Y0],["__file","full-screen.vue"]]),J0={name:"Hide"},X0={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Q0=l("path",{d:"M876.8 156.8c0-9.6-3.2-16-9.6-22.4-6.4-6.4-12.8-9.6-22.4-9.6-9.6 0-16 3.2-22.4 9.6L736 220.8c-64-32-137.6-51.2-224-60.8-160 16-288 73.6-377.6 176C44.8 438.4 0 496 0 512s48 73.6 134.4 176c22.4 25.6 44.8 48 73.6 67.2l-86.4 89.6c-6.4 6.4-9.6 12.8-9.6 22.4 0 9.6 3.2 16 9.6 22.4 6.4 6.4 12.8 9.6 22.4 9.6 9.6 0 16-3.2 22.4-9.6l704-710.4c3.2-6.4 6.4-12.8 6.4-22.4Zm-646.4 528c-76.8-70.4-128-128-153.6-172.8 28.8-48 80-105.6 153.6-172.8C304 272 400 230.4 512 224c64 3.2 124.8 19.2 176 44.8l-54.4 54.4C598.4 300.8 560 288 512 288c-64 0-115.2 22.4-160 64s-64 96-64 160c0 48 12.8 89.6 35.2 124.8L256 707.2c-9.6-6.4-19.2-16-25.6-22.4Zm140.8-96c-12.8-22.4-19.2-48-19.2-76.8 0-44.8 16-83.2 48-112 32-28.8 67.2-48 112-48 28.8 0 54.4 6.4 73.6 19.2L371.2 588.8ZM889.599 336c-12.8-16-28.8-28.8-41.6-41.6l-48 48c73.6 67.2 124.8 124.8 150.4 169.6-28.8 48-80 105.6-153.6 172.8-73.6 67.2-172.8 108.8-284.8 115.2-51.2-3.2-99.2-12.8-140.8-28.8l-48 48c57.6 22.4 118.4 38.4 188.8 44.8 160-16 288-73.6 377.6-176C979.199 585.6 1024 528 1024 512s-48.001-73.6-134.401-176Z",fill:"currentColor"},null,-1),eo=l("path",{d:"M511.998 672c-12.8 0-25.6-3.2-38.4-6.4l-51.2 51.2c28.8 12.8 57.6 19.2 89.6 19.2 64 0 115.2-22.4 160-64 41.6-41.6 64-96 64-160 0-32-6.4-64-19.2-89.6l-51.2 51.2c3.2 12.8 6.4 25.6 6.4 38.4 0 44.8-16 83.2-48 112-32 28.8-67.2 48-112 48Z",fill:"currentColor"},null,-1),to=[Q0,eo];function ro(e,t,r,a,n,o){return c(),f("svg",X0,to)}var Gs=u(J0,[["render",ro],["__file","hide.vue"]]),ao={name:"InfoFilled"},no={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},oo=l("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64zm67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344zM590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.992 12.992 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"},null,-1),io=[oo];function so(e,t,r,a,n,o){return c(),f("svg",no,io)}var tt=u(ao,[["render",so],["__file","info-filled.vue"]]),lo={name:"Key"},co={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},fo=l("path",{fill:"currentColor",d:"M448 456.064V96a32 32 0 0 1 32-32.064L672 64a32 32 0 0 1 0 64H512v128h160a32 32 0 0 1 0 64H512v128a256 256 0 1 1-64 8.064zM512 896a192 192 0 1 0 0-384 192 192 0 0 0 0 384z"},null,-1),uo=[fo];function ho(e,t,r,a,n,o){return c(),f("svg",co,uo)}var Us=u(lo,[["render",ho],["__file","key.vue"]]),_o={name:"Link"},po={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},vo=l("path",{fill:"currentColor",d:"M715.648 625.152 670.4 579.904l90.496-90.56c75.008-74.944 85.12-186.368 22.656-248.896-62.528-62.464-173.952-52.352-248.96 22.656L444.16 353.6l-45.248-45.248 90.496-90.496c100.032-99.968 251.968-110.08 339.456-22.656 87.488 87.488 77.312 239.424-22.656 339.456l-90.496 90.496zm-90.496 90.496-90.496 90.496C434.624 906.112 282.688 916.224 195.2 828.8c-87.488-87.488-77.312-239.424 22.656-339.456l90.496-90.496 45.248 45.248-90.496 90.56c-75.008 74.944-85.12 186.368-22.656 248.896 62.528 62.464 173.952 52.352 248.96-22.656l90.496-90.496 45.248 45.248zm0-362.048 45.248 45.248L398.848 670.4 353.6 625.152 625.152 353.6z"},null,-1),go=[vo];function mo(e,t,r,a,n,o){return c(),f("svg",po,go)}var Ks=u(_o,[["render",mo],["__file","link.vue"]]),bo={name:"Loading"},wo={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},yo=l("path",{fill:"currentColor",d:"M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32zm0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32zm448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32zm-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32zM195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248zm452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248zM828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0zm-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0z"},null,-1),xo=[yo];function $o(e,t,r,a,n,o){return c(),f("svg",wo,xo)}var rt=u(bo,[["render",$o],["__file","loading.vue"]]),zo={name:"Minus"},Co={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Mo=l("path",{fill:"currentColor",d:"M128 544h768a32 32 0 1 0 0-64H128a32 32 0 0 0 0 64z"},null,-1),So=[Mo];function Ho(e,t,r,a,n,o){return c(),f("svg",Co,So)}var Zs=u(zo,[["render",Ho],["__file","minus.vue"]]),ko={name:"MoreFilled"},Bo={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Ao=l("path",{fill:"currentColor",d:"M176 416a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm336 0a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm336 0a112 112 0 1 1 0 224 112 112 0 0 1 0-224z"},null,-1),Oo=[Ao];function Po(e,t,r,a,n,o){return c(),f("svg",Bo,Oo)}var Ws=u(ko,[["render",Po],["__file","more-filled.vue"]]),To={name:"Notebook"},Vo={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Io=l("path",{fill:"currentColor",d:"M192 128v768h640V128H192zm-32-64h704a32 32 0 0 1 32 32v832a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32z"},null,-1),Lo=l("path",{fill:"currentColor",d:"M672 128h64v768h-64zM96 192h128q32 0 32 32t-32 32H96q-32 0-32-32t32-32zm0 192h128q32 0 32 32t-32 32H96q-32 0-32-32t32-32zm0 192h128q32 0 32 32t-32 32H96q-32 0-32-32t32-32zm0 192h128q32 0 32 32t-32 32H96q-32 0-32-32t32-32z"},null,-1),Fo=[Io,Lo];function Eo(e,t,r,a,n,o){return c(),f("svg",Vo,Fo)}var Ys=u(To,[["render",Eo],["__file","notebook.vue"]]),No={name:"PictureFilled"},Ro={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},jo=l("path",{fill:"currentColor",d:"M96 896a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h832a32 32 0 0 1 32 32v704a32 32 0 0 1-32 32H96zm315.52-228.48-68.928-68.928a32 32 0 0 0-45.248 0L128 768.064h778.688l-242.112-290.56a32 32 0 0 0-49.216 0L458.752 665.408a32 32 0 0 1-47.232 2.112zM256 384a96 96 0 1 0 192.064-.064A96 96 0 0 0 256 384z"},null,-1),Do=[jo];function qo(e,t,r,a,n,o){return c(),f("svg",Ro,Do)}var Js=u(No,[["render",qo],["__file","picture-filled.vue"]]),Go={name:"Plus"},Uo={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Ko=l("path",{fill:"currentColor",d:"M480 480V128a32 32 0 0 1 64 0v352h352a32 32 0 1 1 0 64H544v352a32 32 0 1 1-64 0V544H128a32 32 0 0 1 0-64h352z"},null,-1),Zo=[Ko];function Wo(e,t,r,a,n,o){return c(),f("svg",Uo,Zo)}var Xs=u(Go,[["render",Wo],["__file","plus.vue"]]),Yo={name:"QuestionFilled"},Jo={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Xo=l("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm23.744 191.488c-52.096 0-92.928 14.784-123.2 44.352-30.976 29.568-45.76 70.4-45.76 122.496h80.256c0-29.568 5.632-52.8 17.6-68.992 13.376-19.712 35.2-28.864 66.176-28.864 23.936 0 42.944 6.336 56.32 19.712 12.672 13.376 19.712 31.68 19.712 54.912 0 17.6-6.336 34.496-19.008 49.984l-8.448 9.856c-45.76 40.832-73.216 70.4-82.368 89.408-9.856 19.008-14.08 42.24-14.08 68.992v9.856h80.96v-9.856c0-16.896 3.52-31.68 10.56-45.76 6.336-12.672 15.488-24.64 28.16-35.2 33.792-29.568 54.208-48.576 60.544-55.616 16.896-22.528 26.048-51.392 26.048-86.592 0-42.944-14.08-76.736-42.24-101.376-28.16-25.344-65.472-37.312-111.232-37.312zm-12.672 406.208a54.272 54.272 0 0 0-38.72 14.784 49.408 49.408 0 0 0-15.488 38.016c0 15.488 4.928 28.16 15.488 38.016A54.848 54.848 0 0 0 523.072 768c15.488 0 28.16-4.928 38.72-14.784a51.52 51.52 0 0 0 16.192-38.72 51.968 51.968 0 0 0-15.488-38.016 55.936 55.936 0 0 0-39.424-14.784z"},null,-1),Qo=[Xo];function e2(e,t,r,a,n,o){return c(),f("svg",Jo,Qo)}var Qs=u(Yo,[["render",e2],["__file","question-filled.vue"]]),t2={name:"RefreshLeft"},r2={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},a2=l("path",{fill:"currentColor",d:"M289.088 296.704h92.992a32 32 0 0 1 0 64H232.96a32 32 0 0 1-32-32V179.712a32 32 0 0 1 64 0v50.56a384 384 0 0 1 643.84 282.88 384 384 0 0 1-383.936 384 384 384 0 0 1-384-384h64a320 320 0 1 0 640 0 320 320 0 0 0-555.712-216.448z"},null,-1),n2=[a2];function o2(e,t,r,a,n,o){return c(),f("svg",r2,n2)}var e1=u(t2,[["render",o2],["__file","refresh-left.vue"]]),i2={name:"RefreshRight"},s2={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},l2=l("path",{fill:"currentColor",d:"M784.512 230.272v-50.56a32 32 0 1 1 64 0v149.056a32 32 0 0 1-32 32H667.52a32 32 0 1 1 0-64h92.992A320 320 0 1 0 524.8 833.152a320 320 0 0 0 320-320h64a384 384 0 0 1-384 384 384 384 0 0 1-384-384 384 384 0 0 1 643.712-282.88z"},null,-1),c2=[l2];function f2(e,t,r,a,n,o){return c(),f("svg",s2,c2)}var t1=u(i2,[["render",f2],["__file","refresh-right.vue"]]),u2={name:"ScaleToOriginal"},d2={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},h2=l("path",{fill:"currentColor",d:"M813.176 180.706a60.235 60.235 0 0 1 60.236 60.235v481.883a60.235 60.235 0 0 1-60.236 60.235H210.824a60.235 60.235 0 0 1-60.236-60.235V240.94a60.235 60.235 0 0 1 60.236-60.235h602.352zm0-60.235H210.824A120.47 120.47 0 0 0 90.353 240.94v481.883a120.47 120.47 0 0 0 120.47 120.47h602.353a120.47 120.47 0 0 0 120.471-120.47V240.94a120.47 120.47 0 0 0-120.47-120.47zm-120.47 180.705a30.118 30.118 0 0 0-30.118 30.118v301.177a30.118 30.118 0 0 0 60.236 0V331.294a30.118 30.118 0 0 0-30.118-30.118zm-361.412 0a30.118 30.118 0 0 0-30.118 30.118v301.177a30.118 30.118 0 1 0 60.236 0V331.294a30.118 30.118 0 0 0-30.118-30.118zM512 361.412a30.118 30.118 0 0 0-30.118 30.117v30.118a30.118 30.118 0 0 0 60.236 0V391.53A30.118 30.118 0 0 0 512 361.412zM512 512a30.118 30.118 0 0 0-30.118 30.118v30.117a30.118 30.118 0 0 0 60.236 0v-30.117A30.118 30.118 0 0 0 512 512z"},null,-1),_2=[h2];function p2(e,t,r,a,n,o){return c(),f("svg",d2,_2)}var r1=u(u2,[["render",p2],["__file","scale-to-original.vue"]]),v2={name:"Search"},g2={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},m2=l("path",{fill:"currentColor",d:"m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704z"},null,-1),b2=[m2];function w2(e,t,r,a,n,o){return c(),f("svg",g2,b2)}var a1=u(v2,[["render",w2],["__file","search.vue"]]),y2={name:"Setting"},x2={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},$2=l("path",{fill:"currentColor",d:"M600.704 64a32 32 0 0 1 30.464 22.208l35.2 109.376c14.784 7.232 28.928 15.36 42.432 24.512l112.384-24.192a32 32 0 0 1 34.432 15.36L944.32 364.8a32 32 0 0 1-4.032 37.504l-77.12 85.12a357.12 357.12 0 0 1 0 49.024l77.12 85.248a32 32 0 0 1 4.032 37.504l-88.704 153.6a32 32 0 0 1-34.432 15.296L708.8 803.904c-13.44 9.088-27.648 17.28-42.368 24.512l-35.264 109.376A32 32 0 0 1 600.704 960H423.296a32 32 0 0 1-30.464-22.208L357.696 828.48a351.616 351.616 0 0 1-42.56-24.64l-112.32 24.256a32 32 0 0 1-34.432-15.36L79.68 659.2a32 32 0 0 1 4.032-37.504l77.12-85.248a357.12 357.12 0 0 1 0-48.896l-77.12-85.248A32 32 0 0 1 79.68 364.8l88.704-153.6a32 32 0 0 1 34.432-15.296l112.32 24.256c13.568-9.152 27.776-17.408 42.56-24.64l35.2-109.312A32 32 0 0 1 423.232 64H600.64zm-23.424 64H446.72l-36.352 113.088-24.512 11.968a294.113 294.113 0 0 0-34.816 20.096l-22.656 15.36-116.224-25.088-65.28 113.152 79.68 88.192-1.92 27.136a293.12 293.12 0 0 0 0 40.192l1.92 27.136-79.808 88.192 65.344 113.152 116.224-25.024 22.656 15.296a294.113 294.113 0 0 0 34.816 20.096l24.512 11.968L446.72 896h130.688l36.48-113.152 24.448-11.904a288.282 288.282 0 0 0 34.752-20.096l22.592-15.296 116.288 25.024 65.28-113.152-79.744-88.192 1.92-27.136a293.12 293.12 0 0 0 0-40.256l-1.92-27.136 79.808-88.128-65.344-113.152-116.288 24.96-22.592-15.232a287.616 287.616 0 0 0-34.752-20.096l-24.448-11.904L577.344 128zM512 320a192 192 0 1 1 0 384 192 192 0 0 1 0-384zm0 64a128 128 0 1 0 0 256 128 128 0 0 0 0-256z"},null,-1),z2=[$2];function C2(e,t,r,a,n,o){return c(),f("svg",x2,z2)}var n1=u(y2,[["render",C2],["__file","setting.vue"]]),M2={name:"SuccessFilled"},S2={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},H2=l("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.272 38.272 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336L456.192 600.384z"},null,-1),k2=[H2];function B2(e,t,r,a,n,o){return c(),f("svg",S2,k2)}var at=u(M2,[["render",B2],["__file","success-filled.vue"]]),A2={name:"Tickets"},O2={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},P2=l("path",{fill:"currentColor",d:"M192 128v768h640V128H192zm-32-64h704a32 32 0 0 1 32 32v832a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32zm160 448h384v64H320v-64zm0-192h192v64H320v-64zm0 384h384v64H320v-64z"},null,-1),T2=[P2];function V2(e,t,r,a,n,o){return c(),f("svg",O2,T2)}var o1=u(A2,[["render",V2],["__file","tickets.vue"]]),I2={name:"User"},L2={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},F2=l("path",{fill:"currentColor",d:"M512 512a192 192 0 1 0 0-384 192 192 0 0 0 0 384zm0 64a256 256 0 1 1 0-512 256 256 0 0 1 0 512zm320 320v-96a96 96 0 0 0-96-96H288a96 96 0 0 0-96 96v96a32 32 0 1 1-64 0v-96a160 160 0 0 1 160-160h448a160 160 0 0 1 160 160v96a32 32 0 1 1-64 0z"},null,-1),E2=[F2];function N2(e,t,r,a,n,o){return c(),f("svg",L2,E2)}var i1=u(I2,[["render",N2],["__file","user.vue"]]),R2={name:"VideoPause"},j2={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},D2=l("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 832a384 384 0 0 0 0-768 384 384 0 0 0 0 768zm-96-544q32 0 32 32v256q0 32-32 32t-32-32V384q0-32 32-32zm192 0q32 0 32 32v256q0 32-32 32t-32-32V384q0-32 32-32z"},null,-1),q2=[D2];function G2(e,t,r,a,n,o){return c(),f("svg",j2,q2)}var s1=u(R2,[["render",G2],["__file","video-pause.vue"]]),U2={name:"VideoPlay"},K2={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Z2=l("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 832a384 384 0 0 0 0-768 384 384 0 0 0 0 768zm-48-247.616L668.608 512 464 375.616v272.768zm10.624-342.656 249.472 166.336a48 48 0 0 1 0 79.872L474.624 718.272A48 48 0 0 1 400 678.336V345.6a48 48 0 0 1 74.624-39.936z"},null,-1),W2=[Z2];function Y2(e,t,r,a,n,o){return c(),f("svg",K2,W2)}var l1=u(U2,[["render",Y2],["__file","video-play.vue"]]),J2={name:"View"},X2={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Q2=l("path",{fill:"currentColor",d:"M512 160c320 0 512 352 512 352S832 864 512 864 0 512 0 512s192-352 512-352zm0 64c-225.28 0-384.128 208.064-436.8 288 52.608 79.872 211.456 288 436.8 288 225.28 0 384.128-208.064 436.8-288-52.608-79.872-211.456-288-436.8-288zm0 64a224 224 0 1 1 0 448 224 224 0 0 1 0-448zm0 64a160.192 160.192 0 0 0-160 160c0 88.192 71.744 160 160 160s160-71.808 160-160-71.744-160-160-160z"},null,-1),ei=[Q2];function ti(e,t,r,a,n,o){return c(),f("svg",X2,ei)}var c1=u(J2,[["render",ti],["__file","view.vue"]]),ri={name:"WarningFilled"},ai={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},ni=l("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 192a58.432 58.432 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.432 58.432 0 0 0 512 256zm0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4z"},null,-1),oi=[ni];function ii(e,t,r,a,n,o){return c(),f("svg",ai,oi)}var nt=u(ri,[["render",ii],["__file","warning-filled.vue"]]),si={name:"ZoomIn"},li={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},ci=l("path",{fill:"currentColor",d:"m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704zm-32-384v-96a32 32 0 0 1 64 0v96h96a32 32 0 0 1 0 64h-96v96a32 32 0 0 1-64 0v-96h-96a32 32 0 0 1 0-64h96z"},null,-1),fi=[ci];function ui(e,t,r,a,n,o){return c(),f("svg",li,fi)}var f1=u(si,[["render",ui],["__file","zoom-in.vue"]]),di={name:"ZoomOut"},hi={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},_i=l("path",{fill:"currentColor",d:"m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704zM352 448h256a32 32 0 0 1 0 64H352a32 32 0 0 1 0-64z"},null,-1),pi=[_i];function vi(e,t,r,a,n,o){return c(),f("svg",hi,pi)}var u1=u(di,[["render",vi],["__file","zoom-out.vue"]]);const ot="__epPropKey",it=e=>e,gi=e=>ce(e)&&!!e[ot],st=(e,t)=>{if(!ce(e)||gi(e))return e;const{values:r,required:a,default:n,type:o,validator:s}=e,d={type:o,required:!!a,validator:r||s?v=>{let m=!1,x=[];if(r&&(x=Array.from(r),we(e,"default")&&x.push(n),m||(m=x.includes(v))),s&&(m||(m=s(v))),!m&&x.length>0){const L=[...new Set(x)].map(D=>JSON.stringify(D)).join(", ");$t(`Invalid prop: validation failed${t?` for prop "${t}"`:""}. Expected one of [${L}], got value ${JSON.stringify(v)}.`)}return m}:void 0,[ot]:!0};return we(e,"default")&&(d.default=n),d},lt=e=>fa(Object.entries(e).map(([t,r])=>[t,st(r,t)])),Pe=it([String,Object,Function]),d1={Close:et},h1={Close:et,SuccessFilled:at,InfoFilled:tt,WarningFilled:nt,CircleCloseFilled:Qe},_1={success:at,warning:nt,error:Qe,info:tt},p1={validating:rt,success:Cn,error:Ln},ct=(e,t)=>{if(e.install=r=>{for(const a of[e,...Object.values(t!=null?t:{})])r.component(a.name,a)},t)for(const[r,a]of Object.entries(t))e[r]=a;return e},v1=(e,t)=>(e.install=r=>{e._context=r._context,r.config.globalProperties[t]=e},e),g1=(e,t)=>(e.install=r=>{r.directive(t,e)},e),mi=e=>(e.install=zt,e),m1={tab:"Tab",enter:"Enter",space:"Space",left:"ArrowLeft",up:"ArrowUp",right:"ArrowRight",down:"ArrowDown",esc:"Escape",delete:"Delete",backspace:"Backspace",numpadEnter:"NumpadEnter",pageUp:"PageUp",pageDown:"PageDown",home:"Home",end:"End"},bi=["","default","small","large"],b1={large:40,default:32,small:24},ft=Symbol("buttonGroupContextKey"),ut=Symbol(),me=Symbol("formContextKey"),dt=Symbol("formItemContextKey"),ht=e=>{const t=J();return w(()=>{var r,a;return(a=((r=t.proxy)==null?void 0:r.$props)[e])!=null?a:void 0})},Y=z();function j(e,t=void 0){const r=J()?H(ut,Y):Y;return e?w(()=>{var a,n;return(n=(a=r.value)==null?void 0:a[e])!=null?n:t}):r}const w1=(e,t,r=!1)=>{var a;const n=!!J(),o=n?j():void 0,s=(a=t==null?void 0:t.provide)!=null?a:n?je:void 0;if(!s)return;const i=w(()=>{const d=_(e);return o!=null&&o.value?wi(o.value,d):d});return s(ut,i),(r||!Y.value)&&(Y.value=i.value),i},wi=(e,t)=>{var r;const a=[...new Set([...Oe(e),...Oe(t)])],n={};for(const o of a)n[o]=(r=t[o])!=null?r:e[o];return n},yi=st({type:String,values:bi,required:!1}),xi=(e,t={})=>{const r=z(void 0),a=t.prop?r:ht("size"),n=t.global?r:j("size"),o=t.form?{size:void 0}:H(me,void 0),s=t.formItem?{size:void 0}:H(dt,void 0);return w(()=>a.value||_(e)||(s==null?void 0:s.size)||(o==null?void 0:o.size)||n.value||"")},_t=e=>{const t=ht("disabled"),r=H(me,void 0);return w(()=>t.value||_(e)||(r==null?void 0:r.disabled)||!1)},$i=({from:e,replacement:t,scope:r,version:a,ref:n,type:o="API"},s)=>{R(()=>_(s),i=>{},{immediate:!0})},zi={prefix:Math.floor(Math.random()*1e4),current:0},Ci=Symbol("elIdInjection"),Mi=e=>{const t=H(Ci,zi);return w(()=>_(e)||`el-id-${t.prefix}-${t.current++}`)},Si=()=>{const e=H(me,void 0),t=H(dt,void 0);return{form:e,formItem:t}},y1=(e,{formItemContext:t,disableIdGeneration:r,disableIdManagement:a})=>{r||(r=z(!1)),a||(a=z(!1));const n=z();let o;const s=w(()=>{var i;return!!(!e.label&&t&&t.inputIds&&((i=t.inputIds)==null?void 0:i.length)<=1)});return Ne(()=>{o=R([ie(e,"id"),r],([i,d])=>{const v=i!=null?i:d?void 0:Mi().value;v!==n.value&&(t!=null&&t.removeInputId&&(n.value&&t.removeInputId(n.value),!(a!=null&&a.value)&&!d&&v&&t.addInputId(v)),n.value=v)},{immediate:!0})}),Ct(()=>{o&&o(),t!=null&&t.removeInputId&&n.value&&t.removeInputId(n.value)}),{isLabeledByFormItem:s,inputId:n}},Hi="el",ki="is-",B=(e,t,r,a,n)=>{let o=`${e}-${t}`;return r&&(o+=`-${r}`),a&&(o+=`__${a}`),n&&(o+=`--${n}`),o},ee=e=>{const t=j("namespace"),r=w(()=>t.value||Hi);return{namespace:r,b:(p="")=>B(_(r),e,p,"",""),e:p=>p?B(_(r),e,"",p,""):"",m:p=>p?B(_(r),e,"","",p):"",be:(p,g)=>p&&g?B(_(r),e,p,g,""):"",em:(p,g)=>p&&g?B(_(r),e,"",p,g):"",bm:(p,g)=>p&&g?B(_(r),e,p,"",g):"",bem:(p,g,h)=>p&&g&&h?B(_(r),e,p,g,h):"",is:(p,...g)=>{const h=g.length>=1?g[0]:!0;return p&&h?`${ki}${p}`:""},cssVar:p=>{const g={};for(const h in p)g[`--${r.value}-${h}`]=p[h];return g},cssVarName:p=>`--${r.value}-${p}`,cssVarBlock:p=>{const g={};for(const h in p)g[`--${r.value}-${e}-${h}`]=p[h];return g},cssVarBlockName:p=>`--${r.value}-${e}-${p}`}},Te=z(0),x1=()=>{const e=j("zIndex",2e3),t=w(()=>e.value+Te.value);return{initialZIndex:e,currentZIndex:t,nextZIndex:()=>(Te.value++,t.value)}};var be=(e,t)=>{const r=e.__vccOpts||e;for(const[a,n]of t)r[a]=n;return r};const Bi=lt({size:{type:it([Number,String])},color:{type:String}}),Ai={name:"ElIcon",inheritAttrs:!1},Oi=fe({...Ai,props:Bi,setup(e){const t=e,r=ee("icon"),a=w(()=>!t.size&&!t.color?{}:{fontSize:ka(t.size)?void 0:Aa(t.size),"--color":t.color});return(n,o)=>(c(),f("i",Mt({class:_(r).b(),style:_(a)},n.$attrs),[E(n.$slots,"default")],16))}});var Pi=be(Oi,[["__file","/home/runner/work/element-plus/element-plus/packages/components/icon/src/icon.vue"]]);const Ve=ct(Pi),Ti=["default","primary","success","warning","info","danger","text",""],Vi=["button","submit","reset"],se=lt({size:yi,disabled:Boolean,type:{type:String,values:Ti,default:""},icon:{type:Pe,default:""},nativeType:{type:String,values:Vi,default:"button"},loading:Boolean,loadingIcon:{type:Pe,default:()=>rt},plain:Boolean,text:Boolean,link:Boolean,bg:Boolean,autofocus:Boolean,round:Boolean,circle:Boolean,color:String,dark:Boolean,autoInsertSpace:{type:Boolean,default:void 0}}),Ii={click:e=>e instanceof MouseEvent};function b(e,t){Li(e)&&(e="100%");var r=Fi(e);return e=t===360?e:Math.min(t,Math.max(0,parseFloat(e))),r&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:(t===360?e=(e<0?e%t+t:e%t)/parseFloat(String(t)):e=e%t/parseFloat(String(t)),e)}function G(e){return Math.min(1,Math.max(0,e))}function Li(e){return typeof e=="string"&&e.indexOf(".")!==-1&&parseFloat(e)===1}function Fi(e){return typeof e=="string"&&e.indexOf("%")!==-1}function pt(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function U(e){return e<=1?"".concat(Number(e)*100,"%"):e}function A(e){return e.length===1?"0"+e:String(e)}function Ei(e,t,r){return{r:b(e,255)*255,g:b(t,255)*255,b:b(r,255)*255}}function Ie(e,t,r){e=b(e,255),t=b(t,255),r=b(r,255);var a=Math.max(e,t,r),n=Math.min(e,t,r),o=0,s=0,i=(a+n)/2;if(a===n)s=0,o=0;else{var d=a-n;switch(s=i>.5?d/(2-a-n):d/(a+n),a){case e:o=(t-r)/d+(t1&&(r-=1),r<1/6?e+(t-e)*(6*r):r<1/2?t:r<2/3?e+(t-e)*(2/3-r)*6:e}function Ni(e,t,r){var a,n,o;if(e=b(e,360),t=b(t,100),r=b(r,100),t===0)n=r,o=r,a=r;else{var s=r<.5?r*(1+t):r+t-r*t,i=2*r-s;a=ae(i,s,e+1/3),n=ae(i,s,e),o=ae(i,s,e-1/3)}return{r:a*255,g:n*255,b:o*255}}function Le(e,t,r){e=b(e,255),t=b(t,255),r=b(r,255);var a=Math.max(e,t,r),n=Math.min(e,t,r),o=0,s=a,i=a-n,d=a===0?0:i/a;if(a===n)o=0;else{switch(a){case e:o=(t-r)/i+(t>16,g:(e&65280)>>8,b:e&255}}var le={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",goldenrod:"#daa520",gold:"#ffd700",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavenderblush:"#fff0f5",lavender:"#e6e6fa",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function Gi(e){var t={r:0,g:0,b:0},r=1,a=null,n=null,o=null,s=!1,i=!1;return typeof e=="string"&&(e=Zi(e)),typeof e=="object"&&(C(e.r)&&C(e.g)&&C(e.b)?(t=Ei(e.r,e.g,e.b),s=!0,i=String(e.r).substr(-1)==="%"?"prgb":"rgb"):C(e.h)&&C(e.s)&&C(e.v)?(a=U(e.s),n=U(e.v),t=Ri(e.h,a,n),s=!0,i="hsv"):C(e.h)&&C(e.s)&&C(e.l)&&(a=U(e.s),o=U(e.l),t=Ni(e.h,a,o),s=!0,i="hsl"),Object.prototype.hasOwnProperty.call(e,"a")&&(r=e.a)),r=pt(r),{ok:s,format:e.format||i,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:r}}var Ui="[-\\+]?\\d+%?",Ki="[-\\+]?\\d*\\.\\d+%?",S="(?:".concat(Ki,")|(?:").concat(Ui,")"),ne="[\\s|\\(]+(".concat(S,")[,|\\s]+(").concat(S,")[,|\\s]+(").concat(S,")\\s*\\)?"),oe="[\\s|\\(]+(".concat(S,")[,|\\s]+(").concat(S,")[,|\\s]+(").concat(S,")[,|\\s]+(").concat(S,")\\s*\\)?"),$={CSS_UNIT:new RegExp(S),rgb:new RegExp("rgb"+ne),rgba:new RegExp("rgba"+oe),hsl:new RegExp("hsl"+ne),hsla:new RegExp("hsla"+oe),hsv:new RegExp("hsv"+ne),hsva:new RegExp("hsva"+oe),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function Zi(e){if(e=e.trim().toLowerCase(),e.length===0)return!1;var t=!1;if(le[e])e=le[e],t=!0;else if(e==="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var r=$.rgb.exec(e);return r?{r:r[1],g:r[2],b:r[3]}:(r=$.rgba.exec(e),r?{r:r[1],g:r[2],b:r[3],a:r[4]}:(r=$.hsl.exec(e),r?{h:r[1],s:r[2],l:r[3]}:(r=$.hsla.exec(e),r?{h:r[1],s:r[2],l:r[3],a:r[4]}:(r=$.hsv.exec(e),r?{h:r[1],s:r[2],v:r[3]}:(r=$.hsva.exec(e),r?{h:r[1],s:r[2],v:r[3],a:r[4]}:(r=$.hex8.exec(e),r?{r:y(r[1]),g:y(r[2]),b:y(r[3]),a:Ee(r[4]),format:t?"name":"hex8"}:(r=$.hex6.exec(e),r?{r:y(r[1]),g:y(r[2]),b:y(r[3]),format:t?"name":"hex"}:(r=$.hex4.exec(e),r?{r:y(r[1]+r[1]),g:y(r[2]+r[2]),b:y(r[3]+r[3]),a:Ee(r[4]+r[4]),format:t?"name":"hex8"}:(r=$.hex3.exec(e),r?{r:y(r[1]+r[1]),g:y(r[2]+r[2]),b:y(r[3]+r[3]),format:t?"name":"hex"}:!1)))))))))}function C(e){return Boolean($.CSS_UNIT.exec(String(e)))}var Wi=function(){function e(t,r){t===void 0&&(t=""),r===void 0&&(r={});var a;if(t instanceof e)return t;typeof t=="number"&&(t=qi(t)),this.originalInput=t;var n=Gi(t);this.originalInput=t,this.r=n.r,this.g=n.g,this.b=n.b,this.a=n.a,this.roundA=Math.round(100*this.a)/100,this.format=(a=r.format)!==null&&a!==void 0?a:n.format,this.gradientType=r.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=n.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var t=this.toRgb();return(t.r*299+t.g*587+t.b*114)/1e3},e.prototype.getLuminance=function(){var t=this.toRgb(),r,a,n,o=t.r/255,s=t.g/255,i=t.b/255;return o<=.03928?r=o/12.92:r=Math.pow((o+.055)/1.055,2.4),s<=.03928?a=s/12.92:a=Math.pow((s+.055)/1.055,2.4),i<=.03928?n=i/12.92:n=Math.pow((i+.055)/1.055,2.4),.2126*r+.7152*a+.0722*n},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(t){return this.a=pt(t),this.roundA=Math.round(100*this.a)/100,this},e.prototype.toHsv=function(){var t=Le(this.r,this.g,this.b);return{h:t.h*360,s:t.s,v:t.v,a:this.a}},e.prototype.toHsvString=function(){var t=Le(this.r,this.g,this.b),r=Math.round(t.h*360),a=Math.round(t.s*100),n=Math.round(t.v*100);return this.a===1?"hsv(".concat(r,", ").concat(a,"%, ").concat(n,"%)"):"hsva(".concat(r,", ").concat(a,"%, ").concat(n,"%, ").concat(this.roundA,")")},e.prototype.toHsl=function(){var t=Ie(this.r,this.g,this.b);return{h:t.h*360,s:t.s,l:t.l,a:this.a}},e.prototype.toHslString=function(){var t=Ie(this.r,this.g,this.b),r=Math.round(t.h*360),a=Math.round(t.s*100),n=Math.round(t.l*100);return this.a===1?"hsl(".concat(r,", ").concat(a,"%, ").concat(n,"%)"):"hsla(".concat(r,", ").concat(a,"%, ").concat(n,"%, ").concat(this.roundA,")")},e.prototype.toHex=function(t){return t===void 0&&(t=!1),Fe(this.r,this.g,this.b,t)},e.prototype.toHexString=function(t){return t===void 0&&(t=!1),"#"+this.toHex(t)},e.prototype.toHex8=function(t){return t===void 0&&(t=!1),ji(this.r,this.g,this.b,this.a,t)},e.prototype.toHex8String=function(t){return t===void 0&&(t=!1),"#"+this.toHex8(t)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var t=Math.round(this.r),r=Math.round(this.g),a=Math.round(this.b);return this.a===1?"rgb(".concat(t,", ").concat(r,", ").concat(a,")"):"rgba(".concat(t,", ").concat(r,", ").concat(a,", ").concat(this.roundA,")")},e.prototype.toPercentageRgb=function(){var t=function(r){return"".concat(Math.round(b(r,255)*100),"%")};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var t=function(r){return Math.round(b(r,255)*100)};return this.a===1?"rgb(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%)"):"rgba(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%, ").concat(this.roundA,")")},e.prototype.toName=function(){if(this.a===0)return"transparent";if(this.a<1)return!1;for(var t="#"+Fe(this.r,this.g,this.b,!1),r=0,a=Object.entries(le);r=0,o=!r&&n&&(t.startsWith("hex")||t==="name");return o?t==="name"&&this.a===0?this.toName():this.toRgbString():(t==="rgb"&&(a=this.toRgbString()),t==="prgb"&&(a=this.toPercentageRgbString()),(t==="hex"||t==="hex6")&&(a=this.toHexString()),t==="hex3"&&(a=this.toHexString(!0)),t==="hex4"&&(a=this.toHex8String(!0)),t==="hex8"&&(a=this.toHex8String()),t==="name"&&(a=this.toName()),t==="hsl"&&(a=this.toHslString()),t==="hsv"&&(a=this.toHsvString()),a||this.toHexString())},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.l+=t/100,r.l=G(r.l),new e(r)},e.prototype.brighten=function(t){t===void 0&&(t=10);var r=this.toRgb();return r.r=Math.max(0,Math.min(255,r.r-Math.round(255*-(t/100)))),r.g=Math.max(0,Math.min(255,r.g-Math.round(255*-(t/100)))),r.b=Math.max(0,Math.min(255,r.b-Math.round(255*-(t/100)))),new e(r)},e.prototype.darken=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.l-=t/100,r.l=G(r.l),new e(r)},e.prototype.tint=function(t){return t===void 0&&(t=10),this.mix("white",t)},e.prototype.shade=function(t){return t===void 0&&(t=10),this.mix("black",t)},e.prototype.desaturate=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.s-=t/100,r.s=G(r.s),new e(r)},e.prototype.saturate=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.s+=t/100,r.s=G(r.s),new e(r)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var r=this.toHsl(),a=(r.h+t)%360;return r.h=a<0?360+a:a,new e(r)},e.prototype.mix=function(t,r){r===void 0&&(r=50);var a=this.toRgb(),n=new e(t).toRgb(),o=r/100,s={r:(n.r-a.r)*o+a.r,g:(n.g-a.g)*o+a.g,b:(n.b-a.b)*o+a.b,a:(n.a-a.a)*o+a.a};return new e(s)},e.prototype.analogous=function(t,r){t===void 0&&(t=6),r===void 0&&(r=30);var a=this.toHsl(),n=360/r,o=[this];for(a.h=(a.h-(n*t>>1)+720)%360;--t;)a.h=(a.h+n)%360,o.push(new e(a));return o},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){t===void 0&&(t=6);for(var r=this.toHsv(),a=r.h,n=r.s,o=r.v,s=[],i=1/t;t--;)s.push(new e({h:a,s:n,v:o})),o=(o+i)%1;return s},e.prototype.splitcomplement=function(){var t=this.toHsl(),r=t.h;return[this,new e({h:(r+72)%360,s:t.s,l:t.l}),new e({h:(r+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var r=this.toRgb(),a=new e(t).toRgb();return new e({r:a.r+(r.r-a.r)*r.a,g:a.g+(r.g-a.g)*r.a,b:a.b+(r.b-a.b)*r.a})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var r=this.toHsl(),a=r.h,n=[this],o=360/t,s=1;s{let a={};const n=e.color;if(n){const o=new Wi(n),s=e.dark?o.tint(20).toString():M(o,20);if(e.plain)a=r.cssVarBlock({"bg-color":e.dark?M(o,90):o.tint(90).toString(),"text-color":n,"border-color":e.dark?M(o,50):o.tint(50).toString(),"hover-text-color":`var(${r.cssVarName("color-white")})`,"hover-bg-color":n,"hover-border-color":n,"active-bg-color":s,"active-text-color":`var(${r.cssVarName("color-white")})`,"active-border-color":s}),t.value&&(a[r.cssVarBlockName("disabled-bg-color")]=e.dark?M(o,90):o.tint(90).toString(),a[r.cssVarBlockName("disabled-text-color")]=e.dark?M(o,50):o.tint(50).toString(),a[r.cssVarBlockName("disabled-border-color")]=e.dark?M(o,80):o.tint(80).toString());else{const i=e.dark?M(o,30):o.tint(30).toString(),d=o.isDark()?`var(${r.cssVarName("color-white")})`:`var(${r.cssVarName("color-black")})`;if(a=r.cssVarBlock({"bg-color":n,"text-color":d,"border-color":n,"hover-bg-color":i,"hover-text-color":d,"hover-border-color":i,"active-bg-color":s,"active-border-color":s}),t.value){const v=e.dark?M(o,50):o.tint(50).toString();a[r.cssVarBlockName("disabled-bg-color")]=v,a[r.cssVarBlockName("disabled-text-color")]=e.dark?"rgba(255, 255, 255, 0.5)":`var(${r.cssVarName("color-white")})`,a[r.cssVarBlockName("disabled-border-color")]=v}}}return a})}const Ji=["aria-disabled","disabled","autofocus","type"],Xi={name:"ElButton"},Qi=fe({...Xi,props:se,emits:Ii,setup(e,{expose:t,emit:r}){const a=e,n=St();$i({from:"type.text",replacement:"type.link",version:"3.0.0",scope:"props",ref:"https://element-plus.org/en-US/component/button.html#button-attributes"},w(()=>a.type==="text"));const o=H(ft,void 0),s=j("button"),i=ee("button"),{form:d}=Si(),v=xi(w(()=>o==null?void 0:o.size)),m=_t(),x=z(),L=w(()=>a.type||(o==null?void 0:o.type)||""),D=w(()=>{var h,k,T;return(T=(k=a.autoInsertSpace)!=null?k:(h=s.value)==null?void 0:h.autoInsertSpace)!=null?T:!1}),te=w(()=>{var h;const k=(h=n.default)==null?void 0:h.call(n);if(D.value&&(k==null?void 0:k.length)===1){const T=k[0];if((T==null?void 0:T.type)===Ht){const gt=T.children;return/^\p{Unified_Ideograph}{2}$/u.test(gt.trim())}}return!1}),p=Yi(a),g=h=>{a.nativeType==="reset"&&(d==null||d.resetFields()),r("click",h)};return t({ref:x,size:v,type:L,disabled:m,shouldAddSpace:te}),(h,k)=>(c(),f("button",{ref_key:"_ref",ref:x,class:K([_(i).b(),_(i).m(_(L)),_(i).m(_(v)),_(i).is("disabled",_(m)),_(i).is("loading",h.loading),_(i).is("plain",h.plain),_(i).is("round",h.round),_(i).is("circle",h.circle),_(i).is("text",h.text),_(i).is("link",h.link),_(i).is("has-bg",h.bg)]),"aria-disabled":_(m)||h.loading,disabled:_(m)||h.loading,autofocus:h.autofocus,type:h.nativeType,style:Bt(_(p)),onClick:g},[h.loading?(c(),f(kt,{key:0},[h.$slots.loading?E(h.$slots,"loading",{key:0}):(c(),q(_(Ve),{key:1,class:K(_(i).is("loading"))},{default:ye(()=>[(c(),q(xe(h.loadingIcon)))]),_:1},8,["class"]))],64)):h.icon||h.$slots.icon?(c(),q(_(Ve),{key:1},{default:ye(()=>[h.icon?(c(),q(xe(h.icon),{key:0})):E(h.$slots,"icon",{key:1})]),_:3})):$e("v-if",!0),h.$slots.default?(c(),f("span",{key:2,class:K({[_(i).em("text","expand")]:_(te)})},[E(h.$slots,"default")],2)):$e("v-if",!0)],14,Ji))}});var es=be(Qi,[["__file","/home/runner/work/element-plus/element-plus/packages/components/button/src/button.vue"]]);const ts={size:se.size,type:se.type},rs={name:"ElButtonGroup"},as=fe({...rs,props:ts,setup(e){const t=e;je(ft,At({size:ie(t,"size"),type:ie(t,"type")}));const r=ee("button");return(a,n)=>(c(),f("div",{class:K(`${_(r).b("group")}`)},[E(a.$slots,"default")],2))}});var vt=be(as,[["__file","/home/runner/work/element-plus/element-plus/packages/components/button/src/button-group.vue"]]);const $1=ct(es,{ButtonGroup:vt});mi(vt);export{Hs as $,$i as A,Pe as B,d1 as C,ss as D,Ve as E,x1 as F,Mi as G,j as H,Aa as I,Hi as J,hs as K,ve as L,yi as M,me as N,dt as O,y1 as P,_a as Q,xi as R,ca as S,Ms as T,ks as U,$s as V,xs as W,zs as X,Cs as Y,bs as Z,be as _,us as a,b1 as a$,rt as a0,gs as a1,st as a2,ha as a3,m1 as a4,ka as a5,Oe as a6,_1 as a7,h1 as a8,v1 as a9,de as aA,_e as aB,er as aC,qe as aD,Pt as aE,mr as aF,I as aG,Ur as aH,P as aI,or as aJ,Ue as aK,i1 as aL,Us as aM,Qs as aN,o1 as aO,Bs as aP,a1 as aQ,js as aR,l1 as aS,s1 as aT,g1 as aU,vs as aV,Ts as aW,Fs as aX,Es as aY,Ws as aZ,Ti as a_,Z as aa,br as ab,xr as ac,he as ad,ue as ae,V as af,Gt as ag,bi as ah,fs as ai,qs as aj,r1 as ak,Ss as al,u1 as am,e1 as an,t1 as ao,fa as ap,Si as aq,p1 as ar,c1 as as,Gs as at,ps as au,ds as av,ls as aw,cs as ax,is as ay,w1 as az,lt as b,Ls as b0,Is as b1,Ys as b2,Xs as b3,n1 as b4,Zs as b5,_s as b6,Os as c,it as d,nt as e,Cn as f,Ln as g,Ps as h,et as i,mi as j,os as k,Rs as l,Ns as m,ms as n,ys as o,Js as p,_t as q,$1 as r,As as s,ws as t,ee as u,Vs as v,ct as w,Ks as x,Ds as y,f1 as z}; diff --git a/src/main/resources/static/assets/base.ef3e45d0.css b/src/main/resources/static/assets/base.ef3e45d0.css new file mode 100644 index 0000000..468ddf7 --- /dev/null +++ b/src/main/resources/static/assets/base.ef3e45d0.css @@ -0,0 +1 @@ +@charset "UTF-8";:root{--el-color-primary-rgb: 64, 158, 255;--el-color-success-rgb: 103, 194, 58;--el-color-warning-rgb: 230, 162, 60;--el-color-danger-rgb: 245, 108, 108;--el-color-error-rgb: 245, 108, 108;--el-color-info-rgb: 144, 147, 153;--el-font-size-extra-large: 20px;--el-font-size-large: 18px;--el-font-size-medium: 16px;--el-font-size-base: 14px;--el-font-size-small: 13px;--el-font-size-extra-small: 12px;--el-font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "\5fae\8f6f\96c5\9ed1", Arial, sans-serif;--el-font-weight-primary: 500;--el-font-line-height-primary: 24px;--el-index-normal: 1;--el-index-top: 1000;--el-index-popper: 2000;--el-border-radius-base: 4px;--el-border-radius-small: 2px;--el-border-radius-round: 20px;--el-border-radius-circle: 100%;--el-transition-duration: .3s;--el-transition-duration-fast: .2s;--el-transition-function-ease-in-out-bezier: cubic-bezier(.645, .045, .355, 1);--el-transition-function-fast-bezier: cubic-bezier(.23, 1, .32, 1);--el-transition-all: all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade: opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade: transform var(--el-transition-duration) var(--el-transition-function-fast-bezier), opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear: opacity var(--el-transition-duration-fast) linear;--el-transition-border: border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow: box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color: color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large: 40px;--el-component-size: 32px;--el-component-size-small: 24px;color-scheme:light;--el-color-white: #ffffff;--el-color-black: #000000;--el-color-primary: #409eff;--el-color-primary-light-3: #79bbff;--el-color-primary-light-5: #a0cfff;--el-color-primary-light-7: #c6e2ff;--el-color-primary-light-8: #d9ecff;--el-color-primary-light-9: #ecf5ff;--el-color-primary-dark-2: #337ecc;--el-color-success: #67c23a;--el-color-success-light-3: #95d475;--el-color-success-light-5: #b3e19d;--el-color-success-light-7: #d1edc4;--el-color-success-light-8: #e1f3d8;--el-color-success-light-9: #f0f9eb;--el-color-success-dark-2: #529b2e;--el-color-warning: #e6a23c;--el-color-warning-light-3: #eebe77;--el-color-warning-light-5: #f3d19e;--el-color-warning-light-7: #f8e3c5;--el-color-warning-light-8: #faecd8;--el-color-warning-light-9: #fdf6ec;--el-color-warning-dark-2: #b88230;--el-color-danger: #f56c6c;--el-color-danger-light-3: #f89898;--el-color-danger-light-5: #fab6b6;--el-color-danger-light-7: #fcd3d3;--el-color-danger-light-8: #fde2e2;--el-color-danger-light-9: #fef0f0;--el-color-danger-dark-2: #c45656;--el-color-error: #f56c6c;--el-color-error-light-3: #f89898;--el-color-error-light-5: #fab6b6;--el-color-error-light-7: #fcd3d3;--el-color-error-light-8: #fde2e2;--el-color-error-light-9: #fef0f0;--el-color-error-dark-2: #c45656;--el-color-info: #909399;--el-color-info-light-3: #b1b3b8;--el-color-info-light-5: #c8c9cc;--el-color-info-light-7: #dedfe0;--el-color-info-light-8: #e9e9eb;--el-color-info-light-9: #f4f4f5;--el-color-info-dark-2: #73767a;--el-bg-color: #ffffff;--el-bg-color-page: #f2f3f5;--el-bg-color-overlay: #ffffff;--el-text-color-primary: #303133;--el-text-color-regular: #606266;--el-text-color-secondary: #909399;--el-text-color-placeholder: #a8abb2;--el-text-color-disabled: #c0c4cc;--el-border-color: #dcdfe6;--el-border-color-light: #e4e7ed;--el-border-color-lighter: #ebeef5;--el-border-color-extra-light: #f2f6fc;--el-border-color-dark: #d4d7de;--el-border-color-darker: #cdd0d6;--el-fill-color: #f0f2f5;--el-fill-color-light: #f5f7fa;--el-fill-color-lighter: #fafafa;--el-fill-color-extra-light: #fafcff;--el-fill-color-dark: #ebedf0;--el-fill-color-darker: #e6e8eb;--el-fill-color-blank: #ffffff;--el-box-shadow: 0px 12px 32px 4px rgba(0, 0, 0, .04), 0px 8px 20px rgba(0, 0, 0, .08);--el-box-shadow-light: 0px 0px 12px rgba(0, 0, 0, .12);--el-box-shadow-lighter: 0px 0px 6px rgba(0, 0, 0, .12);--el-box-shadow-dark: 0px 16px 48px 16px rgba(0, 0, 0, .08), 0px 12px 32px rgba(0, 0, 0, .12), 0px 8px 16px -8px rgba(0, 0, 0, .16);--el-disabled-bg-color: var(--el-fill-color-light);--el-disabled-text-color: var(--el-text-color-placeholder);--el-disabled-border-color: var(--el-border-color-light);--el-overlay-color: rgba(0, 0, 0, .8);--el-overlay-color-light: rgba(0, 0, 0, .7);--el-overlay-color-lighter: rgba(0, 0, 0, .5);--el-mask-color: rgba(255, 255, 255, .9);--el-mask-color-extra-light: rgba(255, 255, 255, .3);--el-border-width: 1px;--el-border-style: solid;--el-border-color-hover: var(--el-text-color-disabled);--el-border: var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey: var(--el-border-color)}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center top}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center bottom}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transition:var(--el-transition-md-fade);transform-origin:top left}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-leave-active,.el-collapse-transition-enter-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-icon-loading{animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.el-icon{--color: inherit;height:1em;width:1em;line-height:1em;display:inline-flex;justify-content:center;align-items:center;position:relative;fill:currentColor;color:var(--color);font-size:inherit}.el-icon.is-loading{animation:rotating 2s linear infinite}.el-icon svg{height:1em;width:1em} diff --git a/src/main/resources/static/assets/basic-setting.268395dd.js b/src/main/resources/static/assets/basic-setting.268395dd.js new file mode 100644 index 0000000..a9cd2bf --- /dev/null +++ b/src/main/resources/static/assets/basic-setting.268395dd.js @@ -0,0 +1 @@ +import{r as k}from"./base.197bc1e5.js";/* empty css */import{Z as y,a as h}from"./ZFormItem.f4459b46.js";/* empty css */import{E as v}from"./radio.6dc3ee2c.js";import{E as L}from"./switch.4caa5287.js";/* empty css */import{a as f,f as E,u as e,Q as m,b as z,e as l,p as T,h as a,R as u,I as U,k as g,J as i}from"./index.bbf7818f.js";import{u as x}from"./useLinkSetting.96dd46ae.js";import{E as B}from"./index.9aca9b8e.js";import{v as R}from"./directive.b8a17520.js";import"./index.c92ded65.js";import"./event.776e7e11.js";import"./validator.998eeed0.js";import"./admin-setting.fad9817e.js";import"./request.19cbe8c5.js";const S={class:"zfile-admin-down-link-body"},A=i(" \u76F4\u94FE\u8BBE\u7F6E "),C=i(" \u8FD9\u91CC\u53EF\u4EE5\u914D\u7F6E\u76F4\u94FE\u76F8\u5173\u8BBE\u7F6E "),D=i(" \u76F4\u94FE\u5730\u5740\u524D\u7F00, \u5982 http(s)://ip:port/${\u76F4\u94FE\u524D\u7F00}/path/filename "),N=i(" \u4EC5\u63A7\u5236\u662F\u5426\u663E\u793A\u76F4/\u77ED\u94FE\u751F\u6210\u6309\u94AE\uFF0C\u4E0D\u5F71\u54CD\u4F7F\u7528\u5141\u8BB8\u4F7F\u7528\u76F4/\u77ED\u94FE\u4E0B\u8F7D "),P=i(" \u662F\u5426\u8BB0\u5F55\u76F4\u94FE\u4E0B\u8F7D\u65E5\u5FD7 "),I=i(" \u63A7\u5236\u662F\u5426\u751F\u6210\u76F4\u94FE\u65F6\u663E\u793A\u77ED\u94FE\u8DEF\u5F84\u53CA\u662F\u5426\u5141\u8BB8\u4F7F\u7528\u77ED\u94FE\u8FDB\u884C\u4E0B\u8F7D\uFF08\u77ED\u94FE\u4F9D\u8D56\u76F4\u94FE\uFF0C\u5141\u8BB8\u77ED\u94FE\u4E0B\u8F7D\uFF0C\u4E0D\u5141\u8BB8\u76F4\u94FE\u4E0B\u8F7D\uFF0C\u6700\u7EC8\u4E5F\u65E0\u6CD5\u4E0B\u8F7D\uFF09 "),Z=i(" \u63A7\u5236\u662F\u5426\u751F\u6210\u76F4\u94FE\u65F6\u663E\u793A\u76F4\u94FE\u8DEF\u5F84\u53CA\u662F\u5426\u5141\u8BB8\u4F7F\u7528\u76F4\u94FE\u8FDB\u884C\u4E0B\u8F7D "),F=i("\u4E0D\u542F\u7528 Referer \u9632\u76D7\u94FE"),J=i("\u542F\u7528\u767D\u540D\u5355"),Q=i("\u542F\u7528\u9ED1\u540D\u5355"),$=i(" \u9632\u76D7\u94FE\u652F\u6301\u8BBF\u95EE\u6587\u4EF6\u76F4\u94FE\u6216\u77ED\u94FE\u65F6\u6821\u9A8C\uFF0C\u5982\u7528\u6237\u76F4\u63A5\u8BBF\u95EE\u76F4\u94FE\u8DF3\u8F6C\u540E\u7684\u5B58\u50A8\u6E90\u539F\u59CB\u94FE\u63A5\uFF0C\u65E0\u6CD5\u8FDB\u884C\u6821\u9A8C\u548C\u62E6\u622A\u3002 "),j=i("\u5141\u8BB8 Referer \u4E3A\u7A7A"),q=i("\u7981\u6B62 Referer \u4E3A\u7A7A"),G=i(" \u6BCF\u884C\u8F93\u5165\u4E00\u4E2A\u57DF\u540D\uFF0C\u652F\u6301 * \u901A\u914D\u7B26\uFF0C\u5982\u767D\u540D\u5355 *zfile.vip \u5C06\u53EA\u5141\u8BB8 zfile.vip\u3001www.zfile.vip\u3001demo.zfile.vip \u7B49\u7F51\u7AD9\u8BBF\u95EE\u3002 "),H=i(" \u6BCF\u884C\u8F93\u5165\u4E00\u4E2A\u57DF\u540D\uFF0C\u652F\u6301 * \u901A\u914D\u7B26\uFF0C\u5982\u9ED1\u540D\u5355 *zfile.vip \u5C06\u7981\u6B62\u6240\u6709\u5982 zfile.vip\u3001www.zfile.vip\u3001demo.zfile.vip \u7B49\u7F51\u7AD9\u8BBF\u95EE\u3002 "),K={class:"dialog-footer"},M=i("\u4FDD\u5B58"),_e={__name:"basic-setting",setup(O){const{data:o,saveData:_,saveLoading:V}=x();return(W,t)=>{const p=B,d=y,s=L,n=v,w=k,b=h,c=R;return f(),E("div",S,[e(o)?m((f(),z(b,{key:0,model:e(o),"element-loading-text":"\u4FDD\u5B58\u4E2D..."},{"form-title":l(()=>[A]),"form-sub-title":l(()=>[C]),footer:l(()=>[T("span",K,[a(w,{type:"primary",onClick:e(_)},{default:l(()=>[M]),_:1},8,["onClick"])])]),default:l(()=>[a(d,{label:"\u76F4\u94FE\u5730\u5740\u524D\u7F00"},{tips:l(()=>[D]),default:l(()=>[a(p,{modelValue:e(o).directLinkPrefix,"onUpdate:modelValue":t[0]||(t[0]=r=>e(o).directLinkPrefix=r)},null,8,["modelValue"])]),_:1}),a(d,{label:"\u663E\u793A\u751F\u6210\u76F4/\u77ED\u94FE\u529F\u80FD"},{tips:l(()=>[N]),default:l(()=>[a(s,{modelValue:e(o).showLinkBtn,"onUpdate:modelValue":t[1]||(t[1]=r=>e(o).showLinkBtn=r)},null,8,["modelValue"])]),_:1}),a(d,{label:"\u8BB0\u5F55\u4E0B\u8F7D\u65E5\u5FD7"},{tips:l(()=>[P]),default:l(()=>[a(s,{modelValue:e(o).recordDownloadLog,"onUpdate:modelValue":t[2]||(t[2]=r=>e(o).recordDownloadLog=r)},null,8,["modelValue"])]),_:1}),a(d,{label:"\u662F\u5426\u5141\u8BB8\u4F7F\u7528\u77ED\u94FE"},{tips:l(()=>[I]),default:l(()=>[a(s,{modelValue:e(o).showShortLink,"onUpdate:modelValue":t[3]||(t[3]=r=>e(o).showShortLink=r)},null,8,["modelValue"])]),_:1}),a(d,{label:"\u662F\u5426\u5141\u8BB8\u4F7F\u7528\u76F4\u94FE\uFF08\u8DEF\u5F84\uFF09"},{tips:l(()=>[Z]),default:l(()=>[a(s,{modelValue:e(o).showPathLink,"onUpdate:modelValue":t[4]||(t[4]=r=>e(o).showPathLink=r)},null,8,["modelValue"])]),_:1}),a(d,{label:"Referer \u9632\u76D7\u94FE"},{tips:l(()=>[$]),default:l(()=>[a(n,{modelValue:e(o).refererType,"onUpdate:modelValue":t[5]||(t[5]=r=>e(o).refererType=r),label:"off"},{default:l(()=>[F]),_:1},8,["modelValue"]),a(n,{modelValue:e(o).refererType,"onUpdate:modelValue":t[6]||(t[6]=r=>e(o).refererType=r),label:"white_list"},{default:l(()=>[J]),_:1},8,["modelValue"]),a(n,{modelValue:e(o).refererType,"onUpdate:modelValue":t[7]||(t[7]=r=>e(o).refererType=r),label:"black_list"},{default:l(()=>[Q]),_:1},8,["modelValue"])]),_:1}),m(a(d,{label:"Referer \u914D\u7F6E"},{default:l(()=>[a(n,{modelValue:e(o).refererAllowEmpty,"onUpdate:modelValue":t[8]||(t[8]=r=>e(o).refererAllowEmpty=r),label:!0},{default:l(()=>[j]),_:1},8,["modelValue"]),a(n,{modelValue:e(o).refererAllowEmpty,"onUpdate:modelValue":t[9]||(t[9]=r=>e(o).refererAllowEmpty=r),label:!1},{default:l(()=>[q]),_:1},8,["modelValue"])]),_:1},512),[[u,e(o).refererType!=="no"]]),m(a(d,{label:"\u767D\u540D\u5355"},U({default:l(()=>[a(p,{type:"textarea",rows:6,placeholder:"\u6BCF\u884C\u8F93\u5165\u4E00\u4E2A\u57DF\u540D",modelValue:e(o).refererValue,"onUpdate:modelValue":t[10]||(t[10]=r=>e(o).refererValue=r)},null,8,["modelValue"])]),_:2},[e(o).refererType==="white_list"?{name:"tips",fn:l(()=>[G])}:void 0,e(o).refererType==="black_list"?{name:"tips",fn:l(()=>[H])}:void 0]),1536),[[u,e(o).refererType!=="no"]])]),_:1},8,["model"])),[[c,e(V)]]):g("",!0)])}}};export{_e as default}; diff --git a/src/main/resources/static/assets/button.cca160de.css b/src/main/resources/static/assets/button.cca160de.css new file mode 100644 index 0000000..af1e862 --- /dev/null +++ b/src/main/resources/static/assets/button.cca160de.css @@ -0,0 +1 @@ +.el-button{--el-button-font-weight: var(--el-font-weight-primary);--el-button-border-color: var(--el-border-color);--el-button-bg-color: var(--el-fill-color-blank);--el-button-text-color: var(--el-text-color-regular);--el-button-disabled-text-color: var(--el-disabled-text-color);--el-button-disabled-bg-color: var(--el-fill-color-blank);--el-button-disabled-border-color: var(--el-border-color-light);--el-button-divide-border-color: rgba(255, 255, 255, .5);--el-button-hover-text-color: var(--el-color-primary);--el-button-hover-bg-color: var(--el-color-primary-light-9);--el-button-hover-border-color: var(--el-color-primary-light-7);--el-button-active-text-color: var(--el-button-hover-text-color);--el-button-active-border-color: var(--el-color-primary);--el-button-active-bg-color: var(--el-button-hover-bg-color);--el-button-outline-color: var(--el-color-primary-light-5);--el-button-hover-link-text-color: var(--el-color-info);--el-button-active-color: var(--el-text-color-primary);display:inline-flex;justify-content:center;align-items:center;line-height:1;height:32px;white-space:nowrap;cursor:pointer;color:var(--el-button-text-color);text-align:center;box-sizing:border-box;outline:none;transition:.1s;font-weight:var(--el-button-font-weight);-webkit-user-select:none;user-select:none;vertical-align:middle;-webkit-appearance:none;background-color:var(--el-button-bg-color);border:var(--el-border);border-color:var(--el-button-border-color);padding:8px 15px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}.el-button:hover,.el-button:focus{color:var(--el-button-hover-text-color);border-color:var(--el-button-hover-border-color);background-color:var(--el-button-hover-bg-color);outline:none}.el-button:active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:none}.el-button:focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px}.el-button>span{display:inline-flex;align-items:center}.el-button+.el-button{margin-left:12px}.el-button.is-round{padding:8px 15px}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon]+span{margin-left:6px}.el-button [class*=el-icon] svg{vertical-align:bottom}.el-button.is-plain{--el-button-hover-text-color: var(--el-color-primary);--el-button-hover-bg-color: var(--el-fill-color-blank);--el-button-hover-border-color: var(--el-color-primary)}.el-button.is-active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:none}.el-button.is-disabled,.el-button.is-disabled:hover,.el-button.is-disabled:focus{color:var(--el-button-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color);border-color:var(--el-button-disabled-border-color)}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{z-index:1;pointer-events:none;content:"";position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:var(--el-mask-color-extra-light)}.el-button.is-round{border-radius:var(--el-border-radius-round)}.el-button.is-circle{border-radius:50%;padding:8px}.el-button.is-text{color:var(--el-button-text-color);border:0 solid transparent;background-color:transparent}.el-button.is-text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important}.el-button.is-text:not(.is-disabled):hover,.el-button.is-text:not(.is-disabled):focus{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled):focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px}.el-button.is-text:not(.is-disabled):active{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled).is-has-bg:hover,.el-button.is-text:not(.is-disabled).is-has-bg:focus{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg:active{background-color:var(--el-fill-color-dark)}.el-button__text--expand{letter-spacing:.3em;margin-right:-.3em}.el-button.is-link{border-color:transparent;color:var(--el-button-text-color);background:transparent;padding:2px;height:auto}.el-button.is-link:hover,.el-button.is-link:focus{color:var(--el-button-hover-link-text-color)}.el-button.is-link.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.el-button.is-link:not(.is-disabled):hover,.el-button.is-link:not(.is-disabled):focus{border-color:transparent;background-color:transparent}.el-button.is-link:not(.is-disabled):active{color:var(--el-button-active-color);border-color:transparent;background-color:transparent}.el-button--text{border-color:transparent;background:transparent;color:var(--el-color-primary);padding-left:0;padding-right:0}.el-button--text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.el-button--text:not(.is-disabled):hover,.el-button--text:not(.is-disabled):focus{color:var(--el-color-primary-light-3);border-color:transparent;background-color:transparent}.el-button--text:not(.is-disabled):active{color:var(--el-color-primary-dark-2);border-color:transparent;background-color:transparent}.el-button__link--expand{letter-spacing:.3em;margin-right:-.3em}.el-button--primary{--el-button-text-color: var(--el-color-white);--el-button-bg-color: var(--el-color-primary);--el-button-border-color: var(--el-color-primary);--el-button-outline-color: var(--el-color-primary-light-5);--el-button-active-color: var(--el-color-primary-dark-2);--el-button-hover-text-color: var(--el-color-white);--el-button-hover-link-text-color: var(--el-color-primary-light-5);--el-button-hover-bg-color: var(--el-color-primary-light-3);--el-button-hover-border-color: var(--el-color-primary-light-3);--el-button-active-bg-color: var(--el-color-primary-dark-2);--el-button-active-border-color: var(--el-color-primary-dark-2);--el-button-disabled-text-color: var(--el-color-white);--el-button-disabled-bg-color: var(--el-color-primary-light-5);--el-button-disabled-border-color: var(--el-color-primary-light-5)}.el-button--primary.is-plain,.el-button--primary.is-text,.el-button--primary.is-link{--el-button-text-color: var(--el-color-primary);--el-button-bg-color: var(--el-color-primary-light-9);--el-button-border-color: var(--el-color-primary-light-5);--el-button-hover-text-color: var(--el-color-white);--el-button-hover-bg-color: var(--el-color-primary);--el-button-hover-border-color: var(--el-color-primary);--el-button-active-text-color: var(--el-color-white)}.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:hover,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-text.is-disabled,.el-button--primary.is-text.is-disabled:hover,.el-button--primary.is-text.is-disabled:focus,.el-button--primary.is-text.is-disabled:active,.el-button--primary.is-link.is-disabled,.el-button--primary.is-link.is-disabled:hover,.el-button--primary.is-link.is-disabled:focus,.el-button--primary.is-link.is-disabled:active{color:var(--el-color-primary-light-5);background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8)}.el-button--success{--el-button-text-color: var(--el-color-white);--el-button-bg-color: var(--el-color-success);--el-button-border-color: var(--el-color-success);--el-button-outline-color: var(--el-color-success-light-5);--el-button-active-color: var(--el-color-success-dark-2);--el-button-hover-text-color: var(--el-color-white);--el-button-hover-link-text-color: var(--el-color-success-light-5);--el-button-hover-bg-color: var(--el-color-success-light-3);--el-button-hover-border-color: var(--el-color-success-light-3);--el-button-active-bg-color: var(--el-color-success-dark-2);--el-button-active-border-color: var(--el-color-success-dark-2);--el-button-disabled-text-color: var(--el-color-white);--el-button-disabled-bg-color: var(--el-color-success-light-5);--el-button-disabled-border-color: var(--el-color-success-light-5)}.el-button--success.is-plain,.el-button--success.is-text,.el-button--success.is-link{--el-button-text-color: var(--el-color-success);--el-button-bg-color: var(--el-color-success-light-9);--el-button-border-color: var(--el-color-success-light-5);--el-button-hover-text-color: var(--el-color-white);--el-button-hover-bg-color: var(--el-color-success);--el-button-hover-border-color: var(--el-color-success);--el-button-active-text-color: var(--el-color-white)}.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:hover,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-text.is-disabled,.el-button--success.is-text.is-disabled:hover,.el-button--success.is-text.is-disabled:focus,.el-button--success.is-text.is-disabled:active,.el-button--success.is-link.is-disabled,.el-button--success.is-link.is-disabled:hover,.el-button--success.is-link.is-disabled:focus,.el-button--success.is-link.is-disabled:active{color:var(--el-color-success-light-5);background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8)}.el-button--warning{--el-button-text-color: var(--el-color-white);--el-button-bg-color: var(--el-color-warning);--el-button-border-color: var(--el-color-warning);--el-button-outline-color: var(--el-color-warning-light-5);--el-button-active-color: var(--el-color-warning-dark-2);--el-button-hover-text-color: var(--el-color-white);--el-button-hover-link-text-color: var(--el-color-warning-light-5);--el-button-hover-bg-color: var(--el-color-warning-light-3);--el-button-hover-border-color: var(--el-color-warning-light-3);--el-button-active-bg-color: var(--el-color-warning-dark-2);--el-button-active-border-color: var(--el-color-warning-dark-2);--el-button-disabled-text-color: var(--el-color-white);--el-button-disabled-bg-color: var(--el-color-warning-light-5);--el-button-disabled-border-color: var(--el-color-warning-light-5)}.el-button--warning.is-plain,.el-button--warning.is-text,.el-button--warning.is-link{--el-button-text-color: var(--el-color-warning);--el-button-bg-color: var(--el-color-warning-light-9);--el-button-border-color: var(--el-color-warning-light-5);--el-button-hover-text-color: var(--el-color-white);--el-button-hover-bg-color: var(--el-color-warning);--el-button-hover-border-color: var(--el-color-warning);--el-button-active-text-color: var(--el-color-white)}.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:hover,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-text.is-disabled,.el-button--warning.is-text.is-disabled:hover,.el-button--warning.is-text.is-disabled:focus,.el-button--warning.is-text.is-disabled:active,.el-button--warning.is-link.is-disabled,.el-button--warning.is-link.is-disabled:hover,.el-button--warning.is-link.is-disabled:focus,.el-button--warning.is-link.is-disabled:active{color:var(--el-color-warning-light-5);background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8)}.el-button--danger{--el-button-text-color: var(--el-color-white);--el-button-bg-color: var(--el-color-danger);--el-button-border-color: var(--el-color-danger);--el-button-outline-color: var(--el-color-danger-light-5);--el-button-active-color: var(--el-color-danger-dark-2);--el-button-hover-text-color: var(--el-color-white);--el-button-hover-link-text-color: var(--el-color-danger-light-5);--el-button-hover-bg-color: var(--el-color-danger-light-3);--el-button-hover-border-color: var(--el-color-danger-light-3);--el-button-active-bg-color: var(--el-color-danger-dark-2);--el-button-active-border-color: var(--el-color-danger-dark-2);--el-button-disabled-text-color: var(--el-color-white);--el-button-disabled-bg-color: var(--el-color-danger-light-5);--el-button-disabled-border-color: var(--el-color-danger-light-5)}.el-button--danger.is-plain,.el-button--danger.is-text,.el-button--danger.is-link{--el-button-text-color: var(--el-color-danger);--el-button-bg-color: var(--el-color-danger-light-9);--el-button-border-color: var(--el-color-danger-light-5);--el-button-hover-text-color: var(--el-color-white);--el-button-hover-bg-color: var(--el-color-danger);--el-button-hover-border-color: var(--el-color-danger);--el-button-active-text-color: var(--el-color-white)}.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:hover,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-text.is-disabled,.el-button--danger.is-text.is-disabled:hover,.el-button--danger.is-text.is-disabled:focus,.el-button--danger.is-text.is-disabled:active,.el-button--danger.is-link.is-disabled,.el-button--danger.is-link.is-disabled:hover,.el-button--danger.is-link.is-disabled:focus,.el-button--danger.is-link.is-disabled:active{color:var(--el-color-danger-light-5);background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8)}.el-button--info{--el-button-text-color: var(--el-color-white);--el-button-bg-color: var(--el-color-info);--el-button-border-color: var(--el-color-info);--el-button-outline-color: var(--el-color-info-light-5);--el-button-active-color: var(--el-color-info-dark-2);--el-button-hover-text-color: var(--el-color-white);--el-button-hover-link-text-color: var(--el-color-info-light-5);--el-button-hover-bg-color: var(--el-color-info-light-3);--el-button-hover-border-color: var(--el-color-info-light-3);--el-button-active-bg-color: var(--el-color-info-dark-2);--el-button-active-border-color: var(--el-color-info-dark-2);--el-button-disabled-text-color: var(--el-color-white);--el-button-disabled-bg-color: var(--el-color-info-light-5);--el-button-disabled-border-color: var(--el-color-info-light-5)}.el-button--info.is-plain,.el-button--info.is-text,.el-button--info.is-link{--el-button-text-color: var(--el-color-info);--el-button-bg-color: var(--el-color-info-light-9);--el-button-border-color: var(--el-color-info-light-5);--el-button-hover-text-color: var(--el-color-white);--el-button-hover-bg-color: var(--el-color-info);--el-button-hover-border-color: var(--el-color-info);--el-button-active-text-color: var(--el-color-white)}.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:hover,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-text.is-disabled,.el-button--info.is-text.is-disabled:hover,.el-button--info.is-text.is-disabled:focus,.el-button--info.is-text.is-disabled:active,.el-button--info.is-link.is-disabled,.el-button--info.is-link.is-disabled:hover,.el-button--info.is-link.is-disabled:focus,.el-button--info.is-link.is-disabled:active{color:var(--el-color-info-light-5);background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8)}.el-button--large{--el-button-size: 40px;height:var(--el-button-size);padding:12px 19px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}.el-button--large [class*=el-icon]+span{margin-left:8px}.el-button--large.is-round{padding:12px 19px}.el-button--large.is-circle{width:var(--el-button-size);padding:12px}.el-button--small{--el-button-size: 24px;height:var(--el-button-size);padding:5px 11px;font-size:12px;border-radius:calc(var(--el-border-radius-base) - 1px)}.el-button--small [class*=el-icon]+span{margin-left:4px}.el-button--small.is-round{padding:5px 11px}.el-button--small.is-circle{width:var(--el-button-size);padding:5px} diff --git a/src/main/resources/static/assets/card-layout.0aa8ea66.svg b/src/main/resources/static/assets/card-layout.0aa8ea66.svg new file mode 100644 index 0000000..c345f18 --- /dev/null +++ b/src/main/resources/static/assets/card-layout.0aa8ea66.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/checkbox.4d1c2a75.js b/src/main/resources/static/assets/checkbox.4d1c2a75.js new file mode 100644 index 0000000..aa39523 --- /dev/null +++ b/src/main/resources/static/assets/checkbox.4d1c2a75.js @@ -0,0 +1,20 @@ +import{E as ie,c as A,m as Ge,D as kt,r as _,ab as Bl,Y as me,w as ne,a0 as J,d as xe,G as Pt,a as B,b as Se,e as pe,p as le,Q as _e,ac as Ye,u as w,f as G,P as ze,n as P,g as Le,F as Ue,J as Ze,t as we,k as ge,q as Bt,i as Ce,v as Kt,ad as It,a7 as $e,ae as se,af as Vt,h as ve,y as St,a1 as Dt,o as Je,ag as jt,a9 as Gt,ah as z,ai as Ae,R as Et,aj as Kl,H as Il}from"./index.bbf7818f.js";import{E as Yt}from"./index.e63d92a7.js";import{y as Vl,E as Dl}from"./popper.91c84279.js";import{M as Ut,N as jl,O as Gl,P as Xt,Q as Xe,D as Ht,R as qe,o as qt,u as oe,_ as Oe,w as Qt,j as vt,F as Yl,S as Rt,L as Te,E as mt,T as Ul,U as Xl,V as Zt,W as Be,X as at,Y as Lt,Z as ql,$ as Jt,a0 as Ql}from"./base.197bc1e5.js";import{o as ot,a as rt}from"./event.3ec63147.js";import{d as Qe}from"./debounce.a03a8484.js";import{U as et}from"./event.776e7e11.js";import{C as Zl}from"./scrollbar.7d059005.js";import{u as el}from"./index.eeb08216.js";import{u as Nt,b as Jl}from"./request.19cbe8c5.js";var Wt=!1,ke,st,it,Ke,Ie,tl,Ve,ct,dt,ut,ll,ht,ft,ol,rl;function te(){if(!Wt){Wt=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),o=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(ht=/\b(iPhone|iP[ao]d)/.exec(e),ft=/\b(iP[ao]d)/.exec(e),ut=/Android/i.exec(e),ol=/FBAN\/\w+;/i.exec(e),rl=/Mobile/i.exec(e),ll=!!/Win64/.exec(e),t){ke=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN,ke&&document&&document.documentMode&&(ke=document.documentMode);var l=/(?:Trident\/(\d+.\d+))/.exec(e);tl=l?parseFloat(l[1])+4:ke,st=t[2]?parseFloat(t[2]):NaN,it=t[3]?parseFloat(t[3]):NaN,Ke=t[4]?parseFloat(t[4]):NaN,Ke?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),Ie=t&&t[1]?parseFloat(t[1]):NaN):Ie=NaN}else ke=st=it=Ie=Ke=NaN;if(o){if(o[1]){var n=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);Ve=n?parseFloat(n[1].replace("_",".")):!0}else Ve=!1;ct=!!o[2],dt=!!o[3]}else Ve=ct=dt=!1}}var bt={ie:function(){return te()||ke},ieCompatibilityMode:function(){return te()||tl>ke},ie64:function(){return bt.ie()&&ll},firefox:function(){return te()||st},opera:function(){return te()||it},webkit:function(){return te()||Ke},safari:function(){return bt.webkit()},chrome:function(){return te()||Ie},windows:function(){return te()||ct},osx:function(){return te()||Ve},linux:function(){return te()||dt},iphone:function(){return te()||ht},mobile:function(){return te()||ht||ft||ut||rl},nativeApp:function(){return te()||ol},android:function(){return te()||ut},ipad:function(){return te()||ft}},eo=bt,Pe=!!(typeof window<"u"&&window.document&&window.document.createElement),to={canUseDOM:Pe,canUseWorkers:typeof Worker<"u",canUseEventListeners:Pe&&!!(window.addEventListener||window.attachEvent),canUseViewport:Pe&&!!window.screen,isInWorker:!Pe},nl=to,al;nl.canUseDOM&&(al=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0);function lo(e,t){if(!nl.canUseDOM||t&&!("addEventListener"in document))return!1;var o="on"+e,l=o in document;if(!l){var n=document.createElement("div");n.setAttribute(o,"return;"),l=typeof n[o]=="function"}return!l&&al&&e==="wheel"&&(l=document.implementation.hasFeature("Events.wheel","3.0")),l}var oo=lo,Ft=10,At=40,Mt=800;function sl(e){var t=0,o=0,l=0,n=0;return"detail"in e&&(o=e.detail),"wheelDelta"in e&&(o=-e.wheelDelta/120),"wheelDeltaY"in e&&(o=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=o,o=0),l=t*Ft,n=o*Ft,"deltaY"in e&&(n=e.deltaY),"deltaX"in e&&(l=e.deltaX),(l||n)&&e.deltaMode&&(e.deltaMode==1?(l*=At,n*=At):(l*=Mt,n*=Mt)),l&&!t&&(t=l<1?-1:1),n&&!o&&(o=n<1?-1:1),{spinX:t,spinY:o,pixelX:l,pixelY:n}}sl.getEventType=function(){return eo.firefox()?"DOMMouseScroll":oo("wheel")?"wheel":"mousewheel"};var ro=sl;/** +* Checks if an event is supported in the current execution environment. +* +* NOTE: This will not work correctly for non-generic events such as `change`, +* `reset`, `load`, `error`, and `select`. +* +* Borrows from Modernizr. +* +* @param {string} eventNameSuffix Event name, e.g. "click". +* @param {?boolean} capture Check if the capture phase is supported. +* @return {boolean} True if the event is supported. +* @internal +* @license Modernizr 3.0.0pre (Custom Build) | MIT +*/const no=function(e,t){if(e&&e.addEventListener){const o=function(l){const n=ro(l);t&&Reflect.apply(t,this,[l,n])};e.addEventListener("wheel",o,{passive:!0})}},ao={beforeMount(e,t){no(e,t.value)}},so={modelValue:{type:Array,default:()=>[]},disabled:Boolean,min:{type:Number,default:void 0},max:{type:Number,default:void 0},size:Ut,id:{type:String,default:void 0},label:{type:String,default:void 0},fill:{type:String,default:void 0},textColor:{type:String,default:void 0},tag:{type:String,default:"div"}},il={modelValue:{type:[Number,String,Boolean],default:()=>{}},label:{type:[String,Boolean,Number,Object]},indeterminate:Boolean,disabled:Boolean,checked:Boolean,name:{type:String,default:void 0},trueLabel:{type:[String,Number],default:void 0},falseLabel:{type:[String,Number],default:void 0},id:{type:String,default:void 0},controls:{type:String,default:void 0},border:Boolean,size:Ut,tabindex:[String,Number]},Fe=()=>{const e=ie(jl,{}),t=ie(Gl,{}),o=ie("CheckboxGroup",{}),l=A(()=>o&&(o==null?void 0:o.name)==="ElCheckboxGroup"),n=A(()=>t.size);return{isGroup:l,checkboxGroup:o,elForm:e,elFormItemSize:n,elFormItem:t}},io=(e,{elFormItem:t})=>{const{inputId:o,isLabeledByFormItem:l}=Xt(e,{formItemContext:t});return{isLabeledByFormItem:l,groupId:o}},co=e=>{const t=_(!1),{emit:o}=J(),{isGroup:l,checkboxGroup:n,elFormItem:i}=Fe(),d=_(!1);return{model:A({get(){var r,a;return l.value?(r=n.modelValue)==null?void 0:r.value:(a=e.modelValue)!=null?a:t.value},set(r){var a;l.value&&Array.isArray(r)?(d.value=n.max!==void 0&&r.length>n.max.value,d.value===!1&&((a=n==null?void 0:n.changeEvent)==null||a.call(n,r))):(o(et,r),t.value=r)}}),isGroup:l,isLimitExceeded:d,elFormItem:i}},uo=(e,t,{model:o})=>{const{isGroup:l,checkboxGroup:n}=Fe(),i=_(!1),d=qe(n==null?void 0:n.checkboxGroupSize,{prop:!0}),s=A(()=>{const c=o.value;return Bl(c)==="[object Boolean]"?c:Array.isArray(c)?c.includes(e.label):c!=null?c===e.trueLabel:!!c}),r=qe(A(()=>{var c;return l.value?(c=n==null?void 0:n.checkboxGroupSize)==null?void 0:c.value:void 0})),a=A(()=>!!(t.default||e.label));return{isChecked:s,focus:i,size:d,checkboxSize:r,hasOwnLabel:a}},ho=(e,{model:t,isChecked:o})=>{const{elForm:l,isGroup:n,checkboxGroup:i}=Fe(),d=A(()=>{var r,a;const c=(r=i.max)==null?void 0:r.value,f=(a=i.min)==null?void 0:a.value;return!!(c||f)&&t.value.length>=c&&!o.value||t.value.length<=f&&o.value});return{isDisabled:A(()=>{var r,a;const c=e.disabled||(l==null?void 0:l.disabled);return(a=n.value?((r=i.disabled)==null?void 0:r.value)||c||d.value:c)!=null?a:!1}),isLimitDisabled:d}},fo=(e,{model:t})=>{function o(){Array.isArray(t.value)&&!t.value.includes(e.label)?t.value.push(e.label):t.value=e.trueLabel||!0}e.checked&&o()},bo=(e,{model:t,isLimitExceeded:o,hasOwnLabel:l,isDisabled:n,isLabeledByFormItem:i})=>{const{elFormItem:d}=Fe(),{emit:s}=J();function r(u){var p,h;return u===e.trueLabel||u===!0?(p=e.trueLabel)!=null?p:!0:(h=e.falseLabel)!=null?h:!1}function a(u,p){s("change",r(u),p)}function c(u){if(o.value)return;const p=u.target;s("change",r(p.checked),u)}async function f(u){o.value||!l.value&&!n.value&&i.value&&(t.value=r([!1,e.falseLabel].includes(t.value)),await me(),a(t.value,u))}return ne(()=>e.modelValue,()=>{var u;(u=d==null?void 0:d.validate)==null||u.call(d,"change").catch(p=>qt())}),{handleChange:c,onClickRoot:f}},cl={[et]:e=>Ge(e)||Xe(e)||Ht(e),change:e=>Ge(e)||Xe(e)||Ht(e)},po={[et]:e=>kt(e),change:e=>kt(e)},dl=(e,t)=>{const{model:o,isGroup:l,isLimitExceeded:n,elFormItem:i}=co(e),{focus:d,size:s,isChecked:r,checkboxSize:a,hasOwnLabel:c}=uo(e,t,{model:o}),{isDisabled:f}=ho(e,{model:o,isChecked:r}),{inputId:u,isLabeledByFormItem:p}=Xt(e,{formItemContext:i,disableIdGeneration:c,disableIdManagement:l}),{handleChange:h,onClickRoot:x}=bo(e,{model:o,isLimitExceeded:n,hasOwnLabel:c,isDisabled:f,isLabeledByFormItem:p});return fo(e,{model:o}),{elFormItem:i,inputId:u,isLabeledByFormItem:p,isChecked:r,isDisabled:f,isGroup:l,checkboxSize:a,hasOwnLabel:c,model:o,handleChange:h,onClickRoot:x,focus:d,size:s}},go=["tabindex","role","aria-checked"],vo=["id","aria-hidden","name","tabindex","disabled","true-value","false-value"],mo=["id","aria-hidden","disabled","value","name","tabindex"],xo={name:"ElCheckbox"},yo=xe({...xo,props:il,emits:cl,setup(e){const t=e,o=Pt(),{inputId:l,isLabeledByFormItem:n,isChecked:i,isDisabled:d,checkboxSize:s,hasOwnLabel:r,model:a,handleChange:c,onClickRoot:f,focus:u}=dl(t,o),p=oe("checkbox");return(h,x)=>(B(),Se(Bt(!w(r)&&w(n)?"span":"label"),{class:P([w(p).b(),w(p).m(w(s)),w(p).is("disabled",w(d)),w(p).is("bordered",h.border),w(p).is("checked",w(i))]),"aria-controls":h.indeterminate?h.controls:null,onClick:w(f)},{default:pe(()=>[le("span",{class:P([w(p).e("input"),w(p).is("disabled",w(d)),w(p).is("checked",w(i)),w(p).is("indeterminate",h.indeterminate),w(p).is("focus",w(u))]),tabindex:h.indeterminate?0:void 0,role:h.indeterminate?"checkbox":void 0,"aria-checked":h.indeterminate?"mixed":void 0},[h.trueLabel||h.falseLabel?_e((B(),G("input",{key:0,id:w(l),"onUpdate:modelValue":x[0]||(x[0]=m=>ze(a)?a.value=m:null),class:P(w(p).e("original")),type:"checkbox","aria-hidden":h.indeterminate?"true":"false",name:h.name,tabindex:h.tabindex,disabled:w(d),"true-value":h.trueLabel,"false-value":h.falseLabel,onChange:x[1]||(x[1]=(...m)=>w(c)&&w(c)(...m)),onFocus:x[2]||(x[2]=m=>u.value=!0),onBlur:x[3]||(x[3]=m=>u.value=!1)},null,42,vo)),[[Ye,w(a)]]):_e((B(),G("input",{key:1,id:w(l),"onUpdate:modelValue":x[4]||(x[4]=m=>ze(a)?a.value=m:null),class:P(w(p).e("original")),type:"checkbox","aria-hidden":h.indeterminate?"true":"false",disabled:w(d),value:h.label,name:h.name,tabindex:h.tabindex,onChange:x[5]||(x[5]=(...m)=>w(c)&&w(c)(...m)),onFocus:x[6]||(x[6]=m=>u.value=!0),onBlur:x[7]||(x[7]=m=>u.value=!1)},null,42,mo)),[[Ye,w(a)]]),le("span",{class:P(w(p).e("inner"))},null,2)],10,go),w(r)?(B(),G("span",{key:0,class:P(w(p).e("label"))},[Le(h.$slots,"default"),h.$slots.default?ge("v-if",!0):(B(),G(Ue,{key:0},[Ze(we(h.label),1)],64))],2)):ge("v-if",!0)]),_:3},8,["class","aria-controls","onClick"]))}});var wo=Oe(yo,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox.vue"]]);const _o=["name","tabindex","disabled","true-value","false-value"],Co=["name","tabindex","disabled","value"],ko={name:"ElCheckboxButton"},So=xe({...ko,props:il,emits:cl,setup(e){const t=e,o=Pt(),{focus:l,isChecked:n,isDisabled:i,size:d,model:s,handleChange:r}=dl(t,o),{checkboxGroup:a}=Fe(),c=oe("checkbox"),f=A(()=>{var u,p,h,x;const m=(p=(u=a==null?void 0:a.fill)==null?void 0:u.value)!=null?p:"";return{backgroundColor:m,borderColor:m,color:(x=(h=a==null?void 0:a.textColor)==null?void 0:h.value)!=null?x:"",boxShadow:m?`-1px 0 0 0 ${m}`:void 0}});return(u,p)=>(B(),G("label",{class:P([w(c).b("button"),w(c).bm("button",w(d)),w(c).is("disabled",w(i)),w(c).is("checked",w(n)),w(c).is("focus",w(l))])},[u.trueLabel||u.falseLabel?_e((B(),G("input",{key:0,"onUpdate:modelValue":p[0]||(p[0]=h=>ze(s)?s.value=h:null),class:P(w(c).be("button","original")),type:"checkbox",name:u.name,tabindex:u.tabindex,disabled:w(i),"true-value":u.trueLabel,"false-value":u.falseLabel,onChange:p[1]||(p[1]=(...h)=>w(r)&&w(r)(...h)),onFocus:p[2]||(p[2]=h=>l.value=!0),onBlur:p[3]||(p[3]=h=>l.value=!1)},null,42,_o)),[[Ye,w(s)]]):_e((B(),G("input",{key:1,"onUpdate:modelValue":p[4]||(p[4]=h=>ze(s)?s.value=h:null),class:P(w(c).be("button","original")),type:"checkbox",name:u.name,tabindex:u.tabindex,disabled:w(i),value:u.label,onChange:p[5]||(p[5]=(...h)=>w(r)&&w(r)(...h)),onFocus:p[6]||(p[6]=h=>l.value=!0),onBlur:p[7]||(p[7]=h=>l.value=!1)},null,42,Co)),[[Ye,w(s)]]),u.$slots.default||u.label?(B(),G("span",{key:2,class:P(w(c).be("button","inner")),style:Ce(w(n)?w(f):void 0)},[Le(u.$slots,"default",{},()=>[Ze(we(u.label),1)])],6)):ge("v-if",!0)],2))}});var ul=Oe(So,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-button.vue"]]);const Eo={name:"ElCheckboxGroup"},Ho=xe({...Eo,props:so,emits:po,setup(e,{emit:t}){const o=e,{elFormItem:l}=Fe(),{groupId:n,isLabeledByFormItem:i}=io(o,{elFormItem:l}),d=qe(),s=oe("checkbox"),r=c=>{t(et,c),me(()=>{t("change",c)})},a=A({get(){return o.modelValue},set(c){r(c)}});return Kt("CheckboxGroup",{name:"ElCheckboxGroup",modelValue:a,...It(o),checkboxGroupSize:d,changeEvent:r}),ne(()=>o.modelValue,()=>{var c;(c=l.validate)==null||c.call(l,"change").catch(f=>qt())}),(c,f)=>(B(),Se(Bt(c.tag),{id:w(n),class:P(w(s).b("group")),role:"group","aria-label":w(i)?void 0:c.label||"checkbox-group","aria-labelledby":w(i)?w(l).labelId:void 0},{default:pe(()=>[Le(c.$slots,"default")]),_:3},8,["id","class","aria-label","aria-labelledby"]))}});var hl=Oe(Ho,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-group.vue"]]);const Ne=Qt(wo,{CheckboxButton:ul,CheckboxGroup:hl});vt(ul);vt(hl);/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */var Ro=/["'&<>]/,Lo=No;function No(e){var t=""+e,o=Ro.exec(t);if(!o)return t;var l,n="",i=0,d=0;for(i=o.index;itypeof a=="string"?Rt(s,a):a(s,r,e))):(t!=="$key"&&zt(s)&&"$value"in s&&(s=s.$value),[zt(s)?Rt(s,t):s])},d=function(s,r){if(l)return l(s.value,r.value);for(let a=0,c=s.key.length;ar.key[a])return 1}return 0};return e.map((s,r)=>({value:s,index:r,key:i?i(s,r):null})).sort((s,r)=>{let a=d(s,r);return a||(a=s.index-r.index),a*+o}).map(s=>s.value)},fl=function(e,t){let o=null;return e.columns.forEach(l=>{l.id===t&&(o=l)}),o},Fo=function(e,t){let o=null;for(let l=0;l{if(!e)throw new Error("Row is required when get row identity");if(typeof t=="string"){if(!t.includes("."))return`${e[t]}`;const o=t.split(".");let l=e;for(const n of o)l=l[n];return`${l}`}else if(typeof t=="function")return t.call(null,e)},Ee=function(e,t){const o={};return(e||[]).forEach((l,n)=>{o[Q(l,t)]={row:l,index:n}}),o};function Ao(e,t){const o={};let l;for(l in e)o[l]=e[l];for(l in t)if($e(t,l)){const n=t[l];typeof n!="undefined"&&(o[l]=n)}return o}function xt(e){return e===""||e!==void 0&&(e=Number.parseInt(e,10),Number.isNaN(e)&&(e="")),e}function bl(e){return e===""||e!==void 0&&(e=xt(e),Number.isNaN(e)&&(e=80)),e}function pt(e){return typeof e=="number"?e:typeof e=="string"?/^\d+(?:px)?$/.test(e)?Number.parseInt(e,10):e:null}function Mo(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,o)=>(...l)=>t(o(...l)))}function De(e,t,o){let l=!1;const n=e.indexOf(t),i=n!==-1,d=()=>{e.push(t),l=!0},s=()=>{e.splice(n,1),l=!0};return typeof o=="boolean"?o&&!i?d():!o&&i&&s():i?s():d(),l}function zo(e,t,o="children",l="hasChildren"){const n=d=>!(Array.isArray(d)&&d.length);function i(d,s,r){t(d,s,r),s.forEach(a=>{if(a[l]){t(a,null,r+1);return}const c=a[o];n(c)||i(a,c,r+1)})}e.forEach(d=>{if(d[l]){t(d,null,0);return}const s=d[o];n(s)||i(d,s,0)})}let ye;function $o(e,t,o,l,n){const{nextZIndex:i}=Yl(),d=e==null?void 0:e.dataset.prefix,s=e==null?void 0:e.querySelector(`.${d}-scrollbar__wrap`);function r(){const h=n==="light",x=document.createElement("div");return x.className=`${d}-popper ${h?"is-light":"is-dark"}`,o=Lo(o),x.innerHTML=o,x.style.zIndex=String(i()),e==null||e.appendChild(x),x}function a(){const h=document.createElement("div");return h.className=`${d}-popper__arrow`,h}function c(){f&&f.update()}ye=()=>{try{f&&f.destroy(),u&&(e==null||e.removeChild(u)),ot(t,"mouseenter",c),ot(t,"mouseleave",ye),s&&ot(s,"scroll",ye),ye=void 0}catch{}};let f=null;const u=r(),p=a();return u.appendChild(p),f=Vl(t,u,{strategy:"absolute",modifiers:[{name:"offset",options:{offset:[0,8]}},{name:"arrow",options:{element:p,padding:10}}],...l}),rt(t,"mouseenter",c),rt(t,"mouseleave",ye),s&&rt(s,"scroll",ye),f}const pl=(e,t,o,l)=>{let n=0,i=e;if(l){if(l[e].colSpan>1)return{};for(let r=0;r=s.value.length-o.states.rightFixedLeafColumnsLength.value&&(d="right");break;default:i=s.value.length-o.states.rightFixedLeafColumnsLength.value&&(d="right")}return d?{direction:d,start:n,after:i}:{}},yt=(e,t,o,l,n)=>{const i=[],{direction:d,start:s}=pl(t,o,l,n);if(d){const r=d==="left";i.push(`${e}-fixed-column--${d}`),r&&s===l.states.fixedLeafColumnsLength.value-1?i.push("is-last-column"):!r&&s===l.states.columns.value.length-l.states.rightFixedLeafColumnsLength.value&&i.push("is-first-column")}return i};function Tt(e,t){return e+(t.realWidth===null||Number.isNaN(t.realWidth)?Number(t.width):t.realWidth)}const wt=(e,t,o,l)=>{const{direction:n,start:i=0}=pl(e,t,o,l);if(!n)return;const d={},s=n==="left",r=o.states.columns.value;return s?d.left=r.slice(0,e).reduce(Tt,0):d.right=r.slice(i+1).reverse().reduce(Tt,0),d},We=(e,t)=>{!e||Number.isNaN(e[t])||(e[t]=`${e[t]}px`)};function To(e){const t=J(),o=_(!1),l=_([]);return{updateExpandRows:()=>{const r=e.data.value||[],a=e.rowKey.value;if(o.value)l.value=r.slice();else if(a){const c=Ee(l.value,a);l.value=r.reduce((f,u)=>{const p=Q(u,a);return c[p]&&f.push(u),f},[])}else l.value=[]},toggleRowExpansion:(r,a)=>{De(l.value,r,a)&&t.emit("expand-change",r,l.value.slice())},setExpandRowKeys:r=>{t.store.assertRowKey();const a=e.data.value||[],c=e.rowKey.value,f=Ee(a,c);l.value=r.reduce((u,p)=>{const h=f[p];return h&&u.push(h.row),u},[])},isRowExpanded:r=>{const a=e.rowKey.value;return a?!!Ee(l.value,a)[Q(r,a)]:l.value.includes(r)},states:{expandRows:l,defaultExpandAll:o}}}function Oo(e){const t=J(),o=_(null),l=_(null),n=a=>{t.store.assertRowKey(),o.value=a,d(a)},i=()=>{o.value=null},d=a=>{const{data:c,rowKey:f}=e;let u=null;f.value&&(u=(w(c)||[]).find(p=>Q(p,f.value)===a)),l.value=u,t.emit("current-change",l.value,null)};return{setCurrentRowKey:n,restoreCurrentRowKey:i,setCurrentRowByKey:d,updateCurrentRow:a=>{const c=l.value;if(a&&a!==c){l.value=a,t.emit("current-change",l.value,c);return}!a&&c&&(l.value=null,t.emit("current-change",null,c))},updateCurrentRowData:()=>{const a=e.rowKey.value,c=e.data.value||[],f=l.value;if(!c.includes(f)&&f){if(a){const u=Q(f,a);d(u)}else l.value=null;l.value===null&&t.emit("current-change",null,f)}else o.value&&(d(o.value),i())},states:{_currentRowKey:o,currentRow:l}}}function Po(e){const t=_([]),o=_({}),l=_(16),n=_(!1),i=_({}),d=_("hasChildren"),s=_("children"),r=J(),a=A(()=>{if(!e.rowKey.value)return{};const C=e.data.value||[];return f(C)}),c=A(()=>{const C=e.rowKey.value,g=Object.keys(i.value),b={};return g.length&&g.forEach(v=>{if(i.value[v].length){const E={children:[]};i.value[v].forEach(H=>{const y=Q(H,C);E.children.push(y),H[d.value]&&!b[y]&&(b[y]={children:[]})}),b[v]=E}}),b}),f=C=>{const g=e.rowKey.value,b={};return zo(C,(v,E,H)=>{const y=Q(v,g);Array.isArray(E)?b[y]={children:E.map(W=>Q(W,g)),level:H}:n.value&&(b[y]={children:[],lazy:!0,level:H})},s.value,d.value),b},u=(C=!1,g=(b=>(b=r.store)==null?void 0:b.states.defaultExpandAll.value)())=>{var b;const v=a.value,E=c.value,H=Object.keys(v),y={};if(H.length){const W=w(o),N=[],K=($,j)=>{if(C)return t.value?g||t.value.includes(j):!!(g||($==null?void 0:$.expanded));{const V=g||t.value&&t.value.includes(j);return!!(($==null?void 0:$.expanded)||V)}};H.forEach($=>{const j=W[$],V={...v[$]};if(V.expanded=K(j,$),V.lazy){const{loaded:U=!1,loading:X=!1}=j||{};V.loaded=!!U,V.loading=!!X,N.push($)}y[$]=V});const D=Object.keys(E);n.value&&D.length&&N.length&&D.forEach($=>{const j=W[$],V=E[$].children;if(N.includes($)){if(y[$].children.length!==0)throw new Error("[ElTable]children must be an empty array.");y[$].children=V}else{const{loaded:U=!1,loading:X=!1}=j||{};y[$]={lazy:!0,loaded:!!U,loading:!!X,expanded:K(j,$),children:V,level:""}}})}o.value=y,(b=r.store)==null||b.updateTableScrollY()};ne(()=>t.value,()=>{u(!0)}),ne(()=>a.value,()=>{u()}),ne(()=>c.value,()=>{u()});const p=C=>{t.value=C,u()},h=(C,g)=>{r.store.assertRowKey();const b=e.rowKey.value,v=Q(C,b),E=v&&o.value[v];if(v&&E&&"expanded"in E){const H=E.expanded;g=typeof g=="undefined"?!E.expanded:g,o.value[v].expanded=g,H!==g&&r.emit("expand-change",C,g),r.store.updateTableScrollY()}},x=C=>{r.store.assertRowKey();const g=e.rowKey.value,b=Q(C,g),v=o.value[b];n.value&&v&&"loaded"in v&&!v.loaded?m(C,b,v):h(C,void 0)},m=(C,g,b)=>{const{load:v}=r.props;v&&!o.value[g].loaded&&(o.value[g].loading=!0,v(C,b,E=>{if(!Array.isArray(E))throw new TypeError("[ElTable] data must be an array");o.value[g].loading=!1,o.value[g].loaded=!0,o.value[g].expanded=!0,E.length&&(i.value[g]=E),r.emit("expand-change",C,!0)}))};return{loadData:m,loadOrToggle:x,toggleTreeExpansion:h,updateTreeExpandKeys:p,updateTreeData:u,normalize:f,states:{expandRowKeys:t,treeData:o,indent:l,lazy:n,lazyTreeNodeMap:i,lazyColumnIdentifier:d,childrenColumnName:s}}}const Bo=(e,t)=>{const o=t.sortingColumn;return!o||typeof o.sortable=="string"?e:Wo(e,t.sortProp,t.sortOrder,o.sortMethod,o.sortBy)},je=e=>{const t=[];return e.forEach(o=>{o.children?t.push.apply(t,je(o.children)):t.push(o)}),t};function Ko(){var e;const t=J(),{size:o}=It((e=t.proxy)==null?void 0:e.$props),l=_(null),n=_([]),i=_([]),d=_(!1),s=_([]),r=_([]),a=_([]),c=_([]),f=_([]),u=_([]),p=_([]),h=_([]),x=_(0),m=_(0),C=_(0),g=_(!1),b=_([]),v=_(!1),E=_(!1),H=_(null),y=_({}),W=_(null),N=_(null),K=_(null),D=_(null),$=_(null);ne(n,()=>t.state&&U(!1),{deep:!0});const j=()=>{if(!l.value)throw new Error("[ElTable] prop row-key is required")},V=()=>{c.value=s.value.filter(I=>I.fixed===!0||I.fixed==="left"),f.value=s.value.filter(I=>I.fixed==="right"),c.value.length>0&&s.value[0]&&s.value[0].type==="selection"&&!s.value[0].fixed&&(s.value[0].fixed=!0,c.value.unshift(s.value[0]));const L=s.value.filter(I=>!I.fixed);r.value=[].concat(c.value).concat(L).concat(f.value);const F=je(L),O=je(c.value),M=je(f.value);x.value=F.length,m.value=O.length,C.value=M.length,a.value=[].concat(O).concat(F).concat(M),d.value=c.value.length>0||f.value.length>0},U=(L,F=!1)=>{L&&V(),F?t.state.doLayout():t.state.debouncedUpdateLayout()},X=L=>b.value.includes(L),R=()=>{g.value=!1,b.value.length&&(b.value=[],t.emit("selection-change",[]))},S=()=>{let L;if(l.value){L=[];const F=Ee(b.value,l.value),O=Ee(n.value,l.value);for(const M in F)$e(F,M)&&!O[M]&&L.push(F[M].row)}else L=b.value.filter(F=>!n.value.includes(F));if(L.length){const F=b.value.filter(O=>!L.includes(O));b.value=F,t.emit("selection-change",F.slice())}},k=()=>(b.value||[]).slice(),T=(L,F=void 0,O=!0)=>{if(De(b.value,L,F)){const I=(b.value||[]).slice();O&&t.emit("select",I,L),t.emit("selection-change",I)}},Y=()=>{var L,F;const O=E.value?!g.value:!(g.value||b.value.length);g.value=O;let M=!1,I=0;const Z=(F=(L=t==null?void 0:t.store)==null?void 0:L.states)==null?void 0:F.rowKey.value;n.value.forEach((ae,Re)=>{const be=Re+I;H.value?H.value.call(null,ae,be)&&De(b.value,ae,O)&&(M=!0):De(b.value,ae,O)&&(M=!0),I+=re(Q(ae,Z))}),M&&t.emit("selection-change",b.value?b.value.slice():[]),t.emit("select-all",b.value)},q=()=>{const L=Ee(b.value,l.value);n.value.forEach(F=>{const O=Q(F,l.value),M=L[O];M&&(b.value[M.index]=F)})},ee=()=>{var L,F,O;if(((L=n.value)==null?void 0:L.length)===0){g.value=!1;return}let M;l.value&&(M=Ee(b.value,l.value));const I=function(be){return M?!!M[Q(be,l.value)]:b.value.includes(be)};let Z=!0,ae=0,Re=0;for(let be=0,$l=(n.value||[]).length;be<$l;be++){const Tl=(O=(F=t==null?void 0:t.store)==null?void 0:F.states)==null?void 0:O.rowKey.value,Ol=be+Re,lt=n.value[be],Pl=H.value&&H.value.call(null,lt,Ol);if(I(lt))ae++;else if(!H.value||Pl){Z=!1;break}Re+=re(Q(lt,Tl))}ae===0&&(Z=!1),g.value=Z},re=L=>{var F;if(!t||!t.store)return 0;const{treeData:O}=t.store.states;let M=0;const I=(F=O.value[L])==null?void 0:F.children;return I&&(M+=I.length,I.forEach(Z=>{M+=re(Z)})),M},de=(L,F)=>{Array.isArray(L)||(L=[L]);const O={};return L.forEach(M=>{y.value[M.id]=F,O[M.columnKey||M.id]=F}),O},ce=(L,F,O)=>{N.value&&N.value!==L&&(N.value.order=null),N.value=L,K.value=F,D.value=O},ue=()=>{let L=w(i);Object.keys(y.value).forEach(F=>{const O=y.value[F];if(!O||O.length===0)return;const M=fl({columns:a.value},F);M&&M.filterMethod&&(L=L.filter(I=>O.some(Z=>M.filterMethod.call(null,Z,I,M))))}),W.value=L},fe=()=>{n.value=Bo(W.value,{sortingColumn:N.value,sortProp:K.value,sortOrder:D.value})},He=(L=void 0)=>{L&&L.filter||ue(),fe()},tt=L=>{const{tableHeaderRef:F}=t.refs;if(!F)return;const O=Object.assign({},F.filterPanels),M=Object.keys(O);if(!!M.length)if(typeof L=="string"&&(L=[L]),Array.isArray(L)){const I=L.map(Z=>Fo({columns:a.value},Z));M.forEach(Z=>{const ae=I.find(Re=>Re.id===Z);ae&&(ae.filteredValue=[])}),t.store.commit("filterChange",{column:I,values:[],silent:!0,multi:!0})}else M.forEach(I=>{const Z=a.value.find(ae=>ae.id===I);Z&&(Z.filteredValue=[])}),y.value={},t.store.commit("filterChange",{column:{},values:[],silent:!0})},_l=()=>{!N.value||(ce(null,null,null),t.store.commit("changeSortCondition",{silent:!0}))},{setExpandRowKeys:Cl,toggleRowExpansion:Ct,updateExpandRows:kl,states:Sl,isRowExpanded:El}=To({data:n,rowKey:l}),{updateTreeExpandKeys:Hl,toggleTreeExpansion:Rl,updateTreeData:Ll,loadOrToggle:Nl,states:Wl}=Po({data:n,rowKey:l}),{updateCurrentRowData:Fl,updateCurrentRow:Al,setCurrentRowKey:Ml,states:zl}=Oo({data:n,rowKey:l});return{assertRowKey:j,updateColumns:V,scheduleLayout:U,isSelected:X,clearSelection:R,cleanSelection:S,getSelectionRows:k,toggleRowSelection:T,_toggleAllSelection:Y,toggleAllSelection:null,updateSelectionByRowKey:q,updateAllSelected:ee,updateFilters:de,updateCurrentRow:Al,updateSort:ce,execFilter:ue,execSort:fe,execQuery:He,clearFilter:tt,clearSort:_l,toggleRowExpansion:Ct,setExpandRowKeysAdapter:L=>{Cl(L),Hl(L)},setCurrentRowKey:Ml,toggleRowExpansionAdapter:(L,F)=>{a.value.some(({type:M})=>M==="expand")?Ct(L,F):Rl(L,F)},isRowExpanded:El,updateExpandRows:kl,updateCurrentRowData:Fl,loadOrToggle:Nl,updateTreeData:Ll,states:{tableSize:o,rowKey:l,data:n,_data:i,isComplex:d,_columns:s,originColumns:r,columns:a,fixedColumns:c,rightFixedColumns:f,leafColumns:u,fixedLeafColumns:p,rightFixedLeafColumns:h,leafColumnsLength:x,fixedLeafColumnsLength:m,rightFixedLeafColumnsLength:C,isAllSelected:g,selection:b,reserveSelection:v,selectOnIndeterminate:E,selectable:H,filters:y,filteredData:W,sortingColumn:N,sortProp:K,sortOrder:D,hoverRow:$,...Sl,...Wl,...zl}}}function gt(e,t){return e.map(o=>{var l;return o.id===t.id?t:((l=o.children)!=null&&l.length&&(o.children=gt(o.children,t)),o)})}function gl(e){e.forEach(t=>{var o,l;t.no=(o=t.getColumnIndex)==null?void 0:o.call(t),(l=t.children)!=null&&l.length&&gl(t.children)}),e.sort((t,o)=>t.no-o.no)}function Io(){const e=J(),t=Ko();return{ns:oe("table"),...t,mutations:{setData(d,s){const r=w(d._data)!==s;d.data.value=s,d._data.value=s,e.store.execQuery(),e.store.updateCurrentRowData(),e.store.updateExpandRows(),e.store.updateTreeData(e.store.states.defaultExpandAll.value),w(d.reserveSelection)?(e.store.assertRowKey(),e.store.updateSelectionByRowKey()):r?e.store.clearSelection():e.store.cleanSelection(),e.store.updateAllSelected(),e.$ready&&e.store.scheduleLayout()},insertColumn(d,s,r){const a=w(d._columns);let c=[];r?(r&&!r.children&&(r.children=[]),r.children.push(s),c=gt(a,r)):(a.push(s),c=a),gl(c),d._columns.value=c,s.type==="selection"&&(d.selectable.value=s.selectable,d.reserveSelection.value=s.reserveSelection),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},removeColumn(d,s,r){const a=w(d._columns)||[];if(r)r.children.splice(r.children.findIndex(c=>c.id===s.id),1),r.children.length===0&&delete r.children,d._columns.value=gt(a,r);else{const c=a.indexOf(s);c>-1&&(a.splice(c,1),d._columns.value=a)}e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},sort(d,s){const{prop:r,order:a,init:c}=s;if(r){const f=w(d.columns).find(u=>u.property===r);f&&(f.order=a,e.store.updateSort(f,r,a),e.store.commit("changeSortCondition",{init:c}))}},changeSortCondition(d,s){const{sortingColumn:r,sortProp:a,sortOrder:c}=d;w(c)===null&&(d.sortingColumn.value=null,d.sortProp.value=null);const f={filter:!0};e.store.execQuery(f),(!s||!(s.silent||s.init))&&e.emit("sort-change",{column:w(r),prop:w(a),order:w(c)}),e.store.updateTableScrollY()},filterChange(d,s){const{column:r,values:a,silent:c}=s,f=e.store.updateFilters(r,a);e.store.execQuery(),c||e.emit("filter-change",f),e.store.updateTableScrollY()},toggleAllSelection(){e.store.toggleAllSelection()},rowSelectedChanged(d,s){e.store.toggleRowSelection(s),e.store.updateAllSelected()},setHoverRow(d,s){d.hoverRow.value=s},setCurrentRow(d,s){e.store.updateCurrentRow(s)}},commit:function(d,...s){const r=e.store.mutations;if(r[d])r[d].apply(e,[e.store.states].concat(s));else throw new Error(`Action not found: ${d}`)},updateTableScrollY:function(){me(()=>e.layout.updateScrollY.apply(e.layout))}}}const Me={rowKey:"rowKey",defaultExpandAll:"defaultExpandAll",selectOnIndeterminate:"selectOnIndeterminate",indent:"indent",lazy:"lazy",data:"data",["treeProps.hasChildren"]:{key:"lazyColumnIdentifier",default:"hasChildren"},["treeProps.children"]:{key:"childrenColumnName",default:"children"}};function Vo(e,t){if(!e)throw new Error("Table is required.");const o=Io();return o.toggleAllSelection=Qe(o._toggleAllSelection,10),Object.keys(Me).forEach(l=>{vl(ml(t,l),l,o)}),Do(o,t),o}function Do(e,t){Object.keys(Me).forEach(o=>{ne(()=>ml(t,o),l=>{vl(l,o,e)})})}function vl(e,t,o){let l=e,n=Me[t];typeof Me[t]=="object"&&(n=n.key,l=l||Me[t].default),o.states[n].value=l}function ml(e,t){if(t.includes(".")){const o=t.split(".");let l=e;return o.forEach(n=>{l=l[n]}),l}else return e[t]}class jo{constructor(t){this.observers=[],this.table=null,this.store=null,this.columns=[],this.fit=!0,this.showHeader=!0,this.height=_(null),this.scrollX=_(!1),this.scrollY=_(!1),this.bodyWidth=_(null),this.fixedWidth=_(null),this.rightFixedWidth=_(null),this.tableHeight=_(null),this.headerHeight=_(44),this.appendHeight=_(0),this.footerHeight=_(44),this.viewportHeight=_(null),this.bodyHeight=_(null),this.bodyScrollHeight=_(0),this.fixedBodyHeight=_(null),this.gutterWidth=0;for(const o in t)$e(t,o)&&(ze(this[o])?this[o].value=t[o]:this[o]=t[o]);if(!this.table)throw new Error("Table is required for Table Layout");if(!this.store)throw new Error("Store is required for Table Layout")}updateScrollY(){if(this.height.value===null)return!1;const o=this.table.refs.bodyWrapper;if(this.table.vnode.el&&o){let l=!0;const n=this.scrollY.value;return this.bodyHeight.value===null?l=!1:l=o.scrollHeight>this.bodyHeight.value,this.scrollY.value=l,n!==l}return!1}setHeight(t,o="height"){if(!Te)return;const l=this.table.vnode.el;if(t=pt(t),this.height.value=Number(t),!l&&(t||t===0))return me(()=>this.setHeight(t,o));typeof t=="number"?(l.style[o]=`${t}px`,this.updateElsHeight()):typeof t=="string"&&(l.style[o]=t,this.updateElsHeight())}setMaxHeight(t){this.setHeight(t,"max-height")}getFlattenColumns(){const t=[];return this.table.store.states.columns.value.forEach(l=>{l.isColumnGroup?t.push.apply(t,l.columns):t.push(l)}),t}updateElsHeight(){var t,o;if(!this.table.$ready)return me(()=>this.updateElsHeight());const{tableWrapper:l,headerWrapper:n,appendWrapper:i,footerWrapper:d,tableHeader:s,tableBody:r}=this.table.refs;if(l&&l.style.display==="none")return;const{tableLayout:a}=this.table.props;if(this.appendHeight.value=i?i.offsetHeight:0,this.showHeader&&!n&&a==="fixed")return;const c=s||null,f=this.headerDisplayNone(c),u=(n==null?void 0:n.offsetHeight)||0,p=this.headerHeight.value=this.showHeader?u:0;if(this.showHeader&&!f&&u>0&&(this.table.store.states.columns.value||[]).length>0&&p<2)return me(()=>this.updateElsHeight());const h=this.tableHeight.value=(o=(t=this.table)==null?void 0:t.vnode.el)==null?void 0:o.clientHeight,x=this.footerHeight.value=d?d.offsetHeight:0;this.height.value!==null&&(this.bodyHeight.value===null&&requestAnimationFrame(()=>this.updateElsHeight()),this.bodyHeight.value=h-p-x+(d?1:0),this.bodyScrollHeight.value=r==null?void 0:r.scrollHeight),this.fixedBodyHeight.value=this.scrollX.value?this.bodyHeight.value-this.gutterWidth:this.bodyHeight.value,this.viewportHeight.value=this.scrollX.value?h-this.gutterWidth:h,this.updateScrollY(),this.notifyObservers("scrollable")}headerDisplayNone(t){if(!t)return!0;let o=t;for(;o.tagName!=="DIV";){if(getComputedStyle(o).display==="none")return!0;o=o.parentElement}return!1}updateColumnsWidth(){if(!Te)return;const t=this.fit,o=this.table.vnode.el.clientWidth;let l=0;const n=this.getFlattenColumns(),i=n.filter(r=>typeof r.width!="number");if(n.forEach(r=>{typeof r.width=="number"&&r.realWidth&&(r.realWidth=null)}),i.length>0&&t){if(n.forEach(r=>{l+=Number(r.width||r.minWidth||80)}),l<=o){this.scrollX.value=!1;const r=o-l;if(i.length===1)i[0].realWidth=Number(i[0].minWidth||80)+r;else{const a=i.reduce((u,p)=>u+Number(p.minWidth||80),0),c=r/a;let f=0;i.forEach((u,p)=>{if(p===0)return;const h=Math.floor(Number(u.minWidth||80)*c);f+=h,u.realWidth=Number(u.minWidth||80)+h}),i[0].realWidth=Number(i[0].minWidth||80)+r-f}}else this.scrollX.value=!0,i.forEach(r=>{r.realWidth=Number(r.minWidth)});this.bodyWidth.value=Math.max(l,o),this.table.state.resizeState.value.width=this.bodyWidth.value}else n.forEach(r=>{!r.width&&!r.minWidth?r.realWidth=80:r.realWidth=Number(r.width||r.minWidth),l+=r.realWidth}),this.scrollX.value=l>o,this.bodyWidth.value=l;const d=this.store.states.fixedColumns.value;if(d.length>0){let r=0;d.forEach(a=>{r+=Number(a.realWidth||a.width)}),this.fixedWidth.value=r}const s=this.store.states.rightFixedColumns.value;if(s.length>0){let r=0;s.forEach(a=>{r+=Number(a.realWidth||a.width)}),this.rightFixedWidth.value=r}this.notifyObservers("columns")}addObserver(t){this.observers.push(t)}removeObserver(t){const o=this.observers.indexOf(t);o!==-1&&this.observers.splice(o,1)}notifyObservers(t){this.observers.forEach(l=>{var n,i;switch(t){case"columns":(n=l.state)==null||n.onColumnsChange(this);break;case"scrollable":(i=l.state)==null||i.onScrollableChange(this);break;default:throw new Error(`Table Layout don't have event ${t}.`)}})}}const{CheckboxGroup:Go}=Ne,Yo=xe({name:"ElTableFilterPanel",components:{ElCheckbox:Ne,ElCheckboxGroup:Go,ElScrollbar:Yt,ElTooltip:Dl,ElIcon:mt,ArrowDown:Ul,ArrowUp:Xl},directives:{ClickOutside:Zl},props:{placement:{type:String,default:"bottom-start"},store:{type:Object},column:{type:Object},upDataColumn:{type:Function}},setup(e){const t=J(),{t:o}=el(),l=oe("table-filter"),n=t==null?void 0:t.parent;n.filterPanels.value[e.column.id]||(n.filterPanels.value[e.column.id]=t);const i=_(!1),d=_(null),s=A(()=>e.column&&e.column.filters),r=A({get:()=>{var v;return(((v=e.column)==null?void 0:v.filteredValue)||[])[0]},set:v=>{a.value&&(typeof v!="undefined"&&v!==null?a.value.splice(0,1,v):a.value.splice(0,1))}}),a=A({get(){return e.column?e.column.filteredValue||[]:[]},set(v){e.column&&e.upDataColumn("filteredValue",v)}}),c=A(()=>e.column?e.column.filterMultiple:!0),f=v=>v.value===r.value,u=()=>{i.value=!1},p=v=>{v.stopPropagation(),i.value=!i.value},h=()=>{i.value=!1},x=()=>{g(a.value),u()},m=()=>{a.value=[],g(a.value),u()},C=v=>{r.value=v,g(typeof v!="undefined"&&v!==null?a.value:[]),u()},g=v=>{e.store.commit("filterChange",{column:e.column,values:v}),e.store.updateAllSelected()};ne(i,v=>{e.column&&e.upDataColumn("filterOpened",v)},{immediate:!0});const b=A(()=>{var v,E;return(E=(v=d.value)==null?void 0:v.popperRef)==null?void 0:E.contentRef});return{tooltipVisible:i,multiple:c,filteredValue:a,filterValue:r,filters:s,handleConfirm:x,handleReset:m,handleSelect:C,isActive:f,t:o,ns:l,showFilterPanel:p,hideFilterPanel:h,popperPaneRef:b,tooltip:d}}}),Uo={key:0},Xo=["disabled"],qo=["label","onClick"];function Qo(e,t,o,l,n,i){const d=se("el-checkbox"),s=se("el-checkbox-group"),r=se("el-scrollbar"),a=se("arrow-up"),c=se("arrow-down"),f=se("el-icon"),u=se("el-tooltip"),p=Vt("click-outside");return B(),Se(u,{ref:"tooltip",visible:e.tooltipVisible,"onUpdate:visible":t[5]||(t[5]=h=>e.tooltipVisible=h),offset:0,placement:e.placement,"show-arrow":!1,"stop-popper-mouse-event":!1,teleported:"",effect:"light",pure:"","popper-class":e.ns.b(),persistent:""},{content:pe(()=>[e.multiple?(B(),G("div",Uo,[le("div",{class:P(e.ns.e("content"))},[ve(r,{"wrap-class":e.ns.e("wrap")},{default:pe(()=>[ve(s,{modelValue:e.filteredValue,"onUpdate:modelValue":t[0]||(t[0]=h=>e.filteredValue=h),class:P(e.ns.e("checkbox-group"))},{default:pe(()=>[(B(!0),G(Ue,null,St(e.filters,h=>(B(),Se(d,{key:h.value,label:h.value},{default:pe(()=>[Ze(we(h.text),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue","class"])]),_:1},8,["wrap-class"])],2),le("div",{class:P(e.ns.e("bottom"))},[le("button",{class:P({[e.ns.is("disabled")]:e.filteredValue.length===0}),disabled:e.filteredValue.length===0,type:"button",onClick:t[1]||(t[1]=(...h)=>e.handleConfirm&&e.handleConfirm(...h))},we(e.t("el.table.confirmFilter")),11,Xo),le("button",{type:"button",onClick:t[2]||(t[2]=(...h)=>e.handleReset&&e.handleReset(...h))},we(e.t("el.table.resetFilter")),1)],2)])):(B(),G("ul",{key:1,class:P(e.ns.e("list"))},[le("li",{class:P([e.ns.e("list-item"),{[e.ns.is("active")]:e.filterValue===void 0||e.filterValue===null}]),onClick:t[3]||(t[3]=h=>e.handleSelect(null))},we(e.t("el.table.clearFilter")),3),(B(!0),G(Ue,null,St(e.filters,h=>(B(),G("li",{key:h.value,class:P([e.ns.e("list-item"),e.ns.is("active",e.isActive(h))]),label:h.value,onClick:x=>e.handleSelect(h.value)},we(h.text),11,qo))),128))],2))]),default:pe(()=>[_e((B(),G("span",{class:P([`${e.ns.namespace.value}-table__column-filter-trigger`,`${e.ns.namespace.value}-none-outline`]),onClick:t[4]||(t[4]=(...h)=>e.showFilterPanel&&e.showFilterPanel(...h))},[ve(f,null,{default:pe(()=>[e.column.filterOpened?(B(),Se(a,{key:0})):(B(),Se(c,{key:1}))]),_:1})],2)),[[p,e.hideFilterPanel,e.popperPaneRef]])]),_:1},8,["visible","placement","popper-class"])}var Zo=Oe(Yo,[["render",Qo],["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/filter-panel.vue"]]);function xl(e){const t=J();Dt(()=>{o.value.addObserver(t)}),Je(()=>{l(o.value),n(o.value)}),jt(()=>{l(o.value),n(o.value)}),Gt(()=>{o.value.removeObserver(t)});const o=A(()=>{const i=e.layout;if(!i)throw new Error("Can not find table layout.");return i}),l=i=>{var d;const s=((d=e.vnode.el)==null?void 0:d.querySelectorAll("colgroup > col"))||[];if(!s.length)return;const r=i.getFlattenColumns(),a={};r.forEach(c=>{a[c.id]=c});for(let c=0,f=s.length;c{var d,s;const r=((d=e.vnode.el)==null?void 0:d.querySelectorAll("colgroup > col[name=gutter]"))||[];for(let c=0,f=r.length;c{x.stopPropagation()},i=(x,m)=>{!m.filters&&m.sortable?h(x,m,!1):m.filterable&&!m.sortable&&n(x),l==null||l.emit("header-click",m,x)},d=(x,m)=>{l==null||l.emit("header-contextmenu",m,x)},s=_(null),r=_(!1),a=_({}),c=(x,m)=>{if(!!Te&&!(m.children&&m.children.length>0)&&s.value&&e.border){r.value=!0;const C=l;t("set-drag-visible",!0);const b=(C==null?void 0:C.vnode.el).getBoundingClientRect().left,v=o.vnode.el.querySelector(`th.${m.id}`),E=v.getBoundingClientRect(),H=E.left-b+30;Zt(v,"noclick"),a.value={startMouseLeft:x.clientX,startLeft:E.right-b,startColumnLeft:E.left-b,tableLeft:b};const y=C==null?void 0:C.refs.resizeProxy;y.style.left=`${a.value.startLeft}px`,document.onselectstart=function(){return!1},document.ondragstart=function(){return!1};const W=K=>{const D=K.clientX-a.value.startMouseLeft,$=a.value.startLeft+D;y.style.left=`${Math.max(H,$)}px`},N=()=>{if(r.value){const{startColumnLeft:K,startLeft:D}=a.value,j=Number.parseInt(y.style.left,10)-K;m.width=m.realWidth=j,C==null||C.emit("header-dragend",m.width,D-K,m,x),requestAnimationFrame(()=>{e.store.scheduleLayout(!1,!0)}),document.body.style.cursor="",r.value=!1,s.value=null,a.value={},t("set-drag-visible",!1)}document.removeEventListener("mousemove",W),document.removeEventListener("mouseup",N),document.onselectstart=null,document.ondragstart=null,setTimeout(()=>{at(v,"noclick")},0)};document.addEventListener("mousemove",W),document.addEventListener("mouseup",N)}},f=(x,m)=>{if(m.children&&m.children.length>0)return;let C=x.target;for(;C&&C.tagName!=="TH";)C=C.parentNode;if(!(!m||!m.resizable)&&!r.value&&e.border){const g=C.getBoundingClientRect(),b=document.body.style;g.width>12&&g.right-x.pageX<8?(b.cursor="col-resize",Be(C,"is-sortable")&&(C.style.cursor="col-resize"),s.value=m):r.value||(b.cursor="",Be(C,"is-sortable")&&(C.style.cursor="pointer"),s.value=null)}},u=()=>{!Te||(document.body.style.cursor="")},p=({order:x,sortOrders:m})=>{if(x==="")return m[0];const C=m.indexOf(x||null);return m[C>m.length-2?0:C+1]},h=(x,m,C)=>{x.stopPropagation();const g=m.order===C?null:C||p(m);let b=x.target;for(;b&&b.tagName!=="TH";)b=b.parentNode;if(b&&b.tagName==="TH"&&Be(b,"noclick")){at(b,"noclick");return}if(!m.sortable)return;const v=e.store.states;let E=v.sortProp.value,H;const y=v.sortingColumn.value;(y!==m||y===m&&y.order===null)&&(y&&(y.order=null),v.sortingColumn.value=m,E=m.property),g?H=m.order=g:H=m.order=null,v.sortProp.value=E,v.sortOrder.value=H,l==null||l.store.commit("changeSortCondition")};return{handleHeaderClick:i,handleHeaderContextMenu:d,handleMouseDown:c,handleMouseMove:f,handleMouseOut:u,handleSortClick:h,handleFilterClick:n}}function er(e){const t=ie(he),o=oe("table");return{getHeaderRowStyle:s=>{const r=t==null?void 0:t.props.headerRowStyle;return typeof r=="function"?r.call(null,{rowIndex:s}):r},getHeaderRowClass:s=>{const r=[],a=t==null?void 0:t.props.headerRowClassName;return typeof a=="string"?r.push(a):typeof a=="function"&&r.push(a.call(null,{rowIndex:s})),r.join(" ")},getHeaderCellStyle:(s,r,a,c)=>{var f;let u=(f=t==null?void 0:t.props.headerCellStyle)!=null?f:{};typeof u=="function"&&(u=u.call(null,{rowIndex:s,columnIndex:r,row:a,column:c}));const p=c.isSubColumn?null:wt(r,c.fixed,e.store,a);return We(p,"left"),We(p,"right"),Object.assign({},u,p)},getHeaderCellClass:(s,r,a,c)=>{const f=c.isSubColumn?[]:yt(o.b(),r,c.fixed,e.store,a),u=[c.id,c.order,c.headerAlign,c.className,c.labelClassName,...f];c.children||u.push("is-leaf"),c.sortable&&u.push("is-sortable");const p=t==null?void 0:t.props.headerCellClassName;return typeof p=="string"?u.push(p):typeof p=="function"&&u.push(p.call(null,{rowIndex:s,columnIndex:r,row:a,column:c})),u.push(o.e("cell")),u.filter(h=>Boolean(h)).join(" ")}}}const yl=e=>{const t=[];return e.forEach(o=>{o.children?(t.push(o),t.push.apply(t,yl(o.children))):t.push(o)}),t},tr=e=>{let t=1;const o=(i,d)=>{if(d&&(i.level=d.level+1,t{o(r,i),s+=r.colSpan}),i.colSpan=s}else i.colSpan=1};e.forEach(i=>{i.level=1,o(i,void 0)});const l=[];for(let i=0;i{i.children?(i.rowSpan=1,i.children.forEach(d=>d.isSubColumn=!0)):i.rowSpan=t-i.level+1,l[i.level-1].push(i)}),l};function lr(e){const t=ie(he),o=A(()=>tr(e.store.states.originColumns.value));return{isGroup:A(()=>{const i=o.value.length>1;return i&&t&&(t.state.isGroup.value=!0),i}),toggleAllSelection:i=>{i.stopPropagation(),t==null||t.store.commit("toggleAllSelection")},columnRows:o}}var or=xe({name:"ElTableHeader",components:{ElCheckbox:Ne},props:{fixed:{type:String,default:""},store:{required:!0,type:Object},border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e,{emit:t}){const o=J(),l=ie(he),n=oe("table"),i=_({}),{onColumnsChange:d,onScrollableChange:s}=xl(l);Je(async()=>{await me(),await me();const{prop:H,order:y}=e.defaultSort;l==null||l.store.commit("sort",{prop:H,order:y,init:!0})});const{handleHeaderClick:r,handleHeaderContextMenu:a,handleMouseDown:c,handleMouseMove:f,handleMouseOut:u,handleSortClick:p,handleFilterClick:h}=Jo(e,t),{getHeaderRowStyle:x,getHeaderRowClass:m,getHeaderCellStyle:C,getHeaderCellClass:g}=er(e),{isGroup:b,toggleAllSelection:v,columnRows:E}=lr(e);return o.state={onColumnsChange:d,onScrollableChange:s},o.filterPanels=i,{ns:n,filterPanels:i,onColumnsChange:d,onScrollableChange:s,columnRows:E,getHeaderRowClass:m,getHeaderRowStyle:x,getHeaderCellClass:g,getHeaderCellStyle:C,handleHeaderClick:r,handleHeaderContextMenu:a,handleMouseDown:c,handleMouseMove:f,handleMouseOut:u,handleSortClick:p,handleFilterClick:h,isGroup:b,toggleAllSelection:v}},render(){const{ns:e,isGroup:t,columnRows:o,getHeaderCellStyle:l,getHeaderCellClass:n,getHeaderRowClass:i,getHeaderRowStyle:d,handleHeaderClick:s,handleHeaderContextMenu:r,handleMouseDown:a,handleMouseMove:c,handleSortClick:f,handleMouseOut:u,store:p,$parent:h}=this;let x=1;return z("thead",{class:{[e.is("group")]:t}},o.map((m,C)=>z("tr",{class:i(C),key:C,style:d(C)},m.map((g,b)=>(g.rowSpan>x&&(x=g.rowSpan),z("th",{class:n(C,b,m,g),colspan:g.colSpan,key:`${g.id}-thead`,rowspan:g.rowSpan,style:l(C,b,m,g),onClick:v=>s(v,g),onContextmenu:v=>r(v,g),onMousedown:v=>a(v,g),onMousemove:v=>c(v,g),onMouseout:u},[z("div",{class:["cell",g.filteredValue&&g.filteredValue.length>0?"highlight":"",g.labelClassName]},[g.renderHeader?g.renderHeader({column:g,$index:b,store:p,_self:h}):g.label,g.sortable&&z("span",{onClick:v=>f(v,g),class:"caret-wrapper"},[z("i",{onClick:v=>f(v,g,"ascending"),class:"sort-caret ascending"}),z("i",{onClick:v=>f(v,g,"descending"),class:"sort-caret descending"})]),g.filterable&&z(Zo,{store:p,placement:g.filterPlacement||"bottom-start",column:g,upDataColumn:(v,E)=>{g[v]=E}})])]))))))}});function rr(e){const t=ie(he),o=_(""),l=_(z("div")),n=(u,p,h)=>{var x;const m=t,C=nt(u);let g;const b=(x=m==null?void 0:m.vnode.el)==null?void 0:x.dataset.prefix;C&&(g=$t({columns:e.store.states.columns.value},C,b),g&&(m==null||m.emit(`cell-${h}`,p,g,C,u))),m==null||m.emit(`row-${h}`,p,g,u)},i=(u,p)=>{n(u,p,"dblclick")},d=(u,p)=>{e.store.commit("setCurrentRow",p),n(u,p,"click")},s=(u,p)=>{n(u,p,"contextmenu")},r=Qe(u=>{e.store.commit("setHoverRow",u)},30),a=Qe(()=>{e.store.commit("setHoverRow",null)},30);return{handleDoubleClick:i,handleClick:d,handleContextMenu:s,handleMouseEnter:r,handleMouseLeave:a,handleCellMouseEnter:(u,p)=>{var h;const x=t,m=nt(u),C=(h=x==null?void 0:x.vnode.el)==null?void 0:h.dataset.prefix;if(m){const H=$t({columns:e.store.states.columns.value},m,C),y=x.hoverState={cell:m,column:H,row:p};x==null||x.emit("cell-mouse-enter",y.row,y.column,y.cell,u)}const g=u.target.querySelector(".cell");if(!(Be(g,`${C}-tooltip`)&&g.childNodes.length))return;const b=document.createRange();b.setStart(g,0),b.setEnd(g,g.childNodes.length);const v=b.getBoundingClientRect().width,E=(Number.parseInt(Lt(g,"paddingLeft"),10)||0)+(Number.parseInt(Lt(g,"paddingRight"),10)||0);(v+E>g.offsetWidth||g.scrollWidth>g.offsetWidth)&&$o(t==null?void 0:t.refs.tableWrapper,m,m.innerText||m.textContent,{placement:"top",strategy:"fixed"},p.tooltipEffect)},handleCellMouseLeave:u=>{if(!nt(u))return;const h=t==null?void 0:t.hoverState;t==null||t.emit("cell-mouse-leave",h==null?void 0:h.row,h==null?void 0:h.column,h==null?void 0:h.cell,u)},tooltipContent:o,tooltipTrigger:l}}function nr(e){const t=ie(he),o=oe("table");return{getRowStyle:(a,c)=>{const f=t==null?void 0:t.props.rowStyle;return typeof f=="function"?f.call(null,{row:a,rowIndex:c}):f||null},getRowClass:(a,c)=>{const f=[o.e("row")];(t==null?void 0:t.props.highlightCurrentRow)&&a===e.store.states.currentRow.value&&f.push("current-row"),e.stripe&&c%2===1&&f.push(o.em("row","striped"));const u=t==null?void 0:t.props.rowClassName;return typeof u=="string"?f.push(u):typeof u=="function"&&f.push(u.call(null,{row:a,rowIndex:c})),f},getCellStyle:(a,c,f,u)=>{const p=t==null?void 0:t.props.cellStyle;let h=p!=null?p:{};typeof p=="function"&&(h=p.call(null,{rowIndex:a,columnIndex:c,row:f,column:u}));const x=u.isSubColumn?null:wt(c,e==null?void 0:e.fixed,e.store);return We(x,"left"),We(x,"right"),Object.assign({},h,x)},getCellClass:(a,c,f,u)=>{const p=u.isSubColumn?[]:yt(o.b(),c,e==null?void 0:e.fixed,e.store),h=[u.id,u.align,u.className,...p],x=t==null?void 0:t.props.cellClassName;return typeof x=="string"?h.push(x):typeof x=="function"&&h.push(x.call(null,{rowIndex:a,columnIndex:c,row:f,column:u})),h.push(o.e("cell")),h.filter(m=>Boolean(m)).join(" ")},getSpan:(a,c,f,u)=>{let p=1,h=1;const x=t==null?void 0:t.props.spanMethod;if(typeof x=="function"){const m=x({row:a,column:c,rowIndex:f,columnIndex:u});Array.isArray(m)?(p=m[0],h=m[1]):typeof m=="object"&&(p=m.rowspan,h=m.colspan)}return{rowspan:p,colspan:h}},getColspanRealWidth:(a,c,f)=>{if(c<1)return a[f].realWidth;const u=a.map(({realWidth:p,width:h})=>p||h).slice(f,f+c);return Number(u.reduce((p,h)=>Number(p)+Number(h),-1))}}}function ar(e){const t=ie(he),o=oe("table"),{handleDoubleClick:l,handleClick:n,handleContextMenu:i,handleMouseEnter:d,handleMouseLeave:s,handleCellMouseEnter:r,handleCellMouseLeave:a,tooltipContent:c,tooltipTrigger:f}=rr(e),{getRowStyle:u,getRowClass:p,getCellStyle:h,getCellClass:x,getSpan:m,getColspanRealWidth:C}=nr(e),g=A(()=>e.store.states.columns.value.findIndex(({type:y})=>y==="default")),b=(y,W)=>{const N=t.props.rowKey;return N?Q(y,N):W},v=(y,W,N,K=!1)=>{const{tooltipEffect:D,store:$}=e,{indent:j,columns:V}=$.states,U=p(y,W);let X=!0;return N&&(U.push(o.em("row",`level-${N.level}`)),X=N.display),z("tr",{style:[X?null:{display:"none"},u(y,W)],class:U,key:b(y,W),onDblclick:S=>l(S,y),onClick:S=>n(S,y),onContextmenu:S=>i(S,y),onMouseenter:()=>d(W),onMouseleave:s},V.value.map((S,k)=>{const{rowspan:T,colspan:Y}=m(y,S,W,k);if(!T||!Y)return null;const q={...S};q.realWidth=C(V.value,Y,k);const ee={store:e.store,_self:e.context||t,column:q,row:y,$index:W,cellIndex:k,expanded:K};k===g.value&&N&&(ee.treeNode={indent:N.level*j.value,level:N.level},typeof N.expanded=="boolean"&&(ee.treeNode.expanded=N.expanded,"loading"in N&&(ee.treeNode.loading=N.loading),"noLazyChildren"in N&&(ee.treeNode.noLazyChildren=N.noLazyChildren)));const re=`${W},${k}`,de=q.columnKey||q.rawColumnKey||"",ce=E(k,S,ee);return z("td",{style:h(W,k,y,S),class:x(W,k,y,S),key:`${de}${re}`,rowspan:T,colspan:Y,onMouseenter:ue=>r(ue,{...y,tooltipEffect:D}),onMouseleave:a},[ce])}))},E=(y,W,N)=>W.renderCell(N);return{wrappedRowRender:(y,W)=>{const N=e.store,{isRowExpanded:K,assertRowKey:D}=N,{treeData:$,lazyTreeNodeMap:j,childrenColumnName:V,rowKey:U}=N.states,X=N.states.columns.value;if(X.some(({type:S})=>S==="expand")){const S=K(y),k=v(y,W,void 0,S),T=t.renderExpanded;return S?T?[[k,z("tr",{key:`expanded-row__${k.key}`},[z("td",{colspan:X.length,class:"el-table__cell el-table__expanded-cell"},[T({row:y,$index:W,store:N,expanded:S})])])]]:(console.error("[Element Error]renderExpanded is required."),k):[[k]]}else if(Object.keys($.value).length){D();const S=Q(y,U.value);let k=$.value[S],T=null;k&&(T={expanded:k.expanded,level:k.level,display:!0},typeof k.lazy=="boolean"&&(typeof k.loaded=="boolean"&&k.loaded&&(T.noLazyChildren=!(k.children&&k.children.length)),T.loading=k.loading));const Y=[v(y,W,T)];if(k){let q=0;const ee=(de,ce)=>{!(de&&de.length&&ce)||de.forEach(ue=>{const fe={display:ce.display&&ce.expanded,level:ce.level+1,expanded:!1,noLazyChildren:!1,loading:!1},He=Q(ue,U.value);if(He==null)throw new Error("For nested data item, row-key is required.");if(k={...$.value[He]},k&&(fe.expanded=k.expanded,k.level=k.level||fe.level,k.display=!!(k.expanded&&fe.display),typeof k.lazy=="boolean"&&(typeof k.loaded=="boolean"&&k.loaded&&(fe.noLazyChildren=!(k.children&&k.children.length)),fe.loading=k.loading)),q++,Y.push(v(ue,W+q,fe)),k){const tt=j.value[He]||ue[V.value];ee(tt,k)}})};k.display=!0;const re=j.value[S]||y[V.value];ee(re,k)}return Y}else return v(y,W,void 0)},tooltipContent:c,tooltipTrigger:f}}const sr={store:{required:!0,type:Object},stripe:Boolean,tooltipEffect:String,context:{default:()=>({}),type:Object},rowClassName:[String,Function],rowStyle:[Object,Function],fixed:{type:String,default:""},highlight:Boolean};var ir=xe({name:"ElTableBody",props:sr,setup(e){const t=J(),o=ie(he),l=oe("table"),{wrappedRowRender:n,tooltipContent:i,tooltipTrigger:d}=ar(e),{onColumnsChange:s,onScrollableChange:r}=xl(o);return ne(e.store.states.hoverRow,(a,c)=>{if(!e.store.states.isComplex.value||!Te)return;let f=window.requestAnimationFrame;f||(f=u=>window.setTimeout(u,16)),f(()=>{var u;const p=(u=t==null?void 0:t.vnode.el)==null?void 0:u.querySelectorAll(`.${l.e("row")}`),h=p[c],x=p[a];h&&at(h,"hover-row"),x&&Zt(x,"hover-row")})}),Gt(()=>{var a;(a=ye)==null||a()}),jt(()=>{var a;(a=ye)==null||a()}),{ns:l,onColumnsChange:s,onScrollableChange:r,wrappedRowRender:n,tooltipContent:i,tooltipTrigger:d}},render(){const{wrappedRowRender:e,store:t}=this,o=t.states.data.value||[];return z("tbody",{},[o.reduce((l,n)=>l.concat(e(n,l.length)),[])])}});function _t(e){const t=e.tableLayout==="auto";let o=e.columns||[];t&&o.every(n=>n.width===void 0)&&(o=[]);const l=n=>{const i={key:`${e.tableLayout}_${n.id}`,style:{},name:void 0};return t?i.style={width:`${n.width}px`}:i.name=n.id,i};return z("colgroup",{},o.map(n=>z("col",l(n))))}_t.props=["columns","tableLayout"];function cr(){const e=ie(he),t=e==null?void 0:e.store,o=A(()=>t.states.fixedLeafColumnsLength.value),l=A(()=>t.states.rightFixedColumns.value.length),n=A(()=>t.states.columns.value.length),i=A(()=>t.states.fixedColumns.value.length),d=A(()=>t.states.rightFixedColumns.value.length);return{leftFixedLeafCount:o,rightFixedLeafCount:l,columnsCount:n,leftFixedCount:i,rightFixedCount:d,columns:t.states.columns}}function dr(e){const{columns:t}=cr(),o=oe("table");return{getCellClasses:(i,d)=>{const s=i[d],r=[o.e("cell"),s.id,s.align,s.labelClassName,...yt(o.b(),d,s.fixed,e.store)];return s.className&&r.push(s.className),s.children||r.push(o.is("leaf")),r},getCellStyles:(i,d)=>{const s=wt(d,i.fixed,e.store);return We(s,"left"),We(s,"right"),s},columns:t}}var ur=xe({name:"ElTableFooter",props:{fixed:{type:String,default:""},store:{required:!0,type:Object},summaryMethod:Function,sumText:String,border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e){const{getCellClasses:t,getCellStyles:o,columns:l}=dr(e);return{ns:oe("table"),getCellClasses:t,getCellStyles:o,columns:l}},render(){const{columns:e,getCellStyles:t,getCellClasses:o,summaryMethod:l,sumText:n,ns:i}=this,d=this.store.states.data.value;let s=[];return l?s=l({columns:e,data:d}):e.forEach((r,a)=>{if(a===0){s[a]=n;return}const c=d.map(h=>Number(h[r.property])),f=[];let u=!0;c.forEach(h=>{if(!Number.isNaN(+h)){u=!1;const x=`${h}`.split(".")[1];f.push(x?x.length:0)}});const p=Math.max.apply(null,f);u?s[a]="":s[a]=c.reduce((h,x)=>{const m=Number(x);return Number.isNaN(+m)?h:Number.parseFloat((h+x).toFixed(Math.min(p,20)))},0)}),z("table",{class:i.e("footer"),cellspacing:"0",cellpadding:"0",border:"0"},[_t({columns:e}),z("tbody",[z("tr",{},[...e.map((r,a)=>z("td",{key:a,colspan:r.colSpan,rowspan:r.rowSpan,class:o(e,a),style:t(r,a)},[z("div",{class:["cell",r.labelClassName]},[s[a]])]))])])])}});function hr(e){return{setCurrentRow:c=>{e.commit("setCurrentRow",c)},getSelectionRows:()=>e.getSelectionRows(),toggleRowSelection:(c,f)=>{e.toggleRowSelection(c,f,!1),e.updateAllSelected()},clearSelection:()=>{e.clearSelection()},clearFilter:c=>{e.clearFilter(c)},toggleAllSelection:()=>{e.commit("toggleAllSelection")},toggleRowExpansion:(c,f)=>{e.toggleRowExpansionAdapter(c,f)},clearSort:()=>{e.clearSort()},sort:(c,f)=>{e.commit("sort",{prop:c,order:f})}}}function fr(e,t,o,l){const n=_(!1),i=_(null),d=_(!1),s=R=>{d.value=R},r=_({width:null,height:null}),a=_(!1),c={display:"block",verticalAlign:"middle"},f=_();Ae(()=>{t.setHeight(e.height)}),Ae(()=>{t.setMaxHeight(e.maxHeight)}),ne(()=>[e.currentRowKey,o.states.rowKey],([R,S])=>{!w(S)||o.setCurrentRowKey(`${R}`)},{immediate:!0}),ne(()=>e.data,R=>{l.store.commit("setData",R)},{immediate:!0,deep:!0}),Ae(()=>{e.expandRowKeys&&o.setExpandRowKeysAdapter(e.expandRowKeys)});const u=()=>{l.store.commit("setHoverRow",null),l.hoverState&&(l.hoverState=null)},p=(R,S)=>{const{pixelX:k,pixelY:T}=S;Math.abs(k)>=Math.abs(T)&&(l.refs.bodyWrapper.scrollLeft+=S.pixelX/5)},h=A(()=>e.height||e.maxHeight||o.states.fixedColumns.value.length>0||o.states.rightFixedColumns.value.length>0),x=A(()=>({width:t.bodyWidth.value?`${t.bodyWidth.value}px`:""})),m=()=>{h.value&&t.updateElsHeight(),t.updateColumnsWidth(),requestAnimationFrame(v)};Je(async()=>{await me(),o.updateColumns(),E(),requestAnimationFrame(m);const R=l.vnode.el;e.flexible&&R&&R.parentElement&&(R.parentElement.style.minWidth="0"),r.value={width:f.value=R.offsetWidth,height:R.offsetHeight},o.states.columns.value.forEach(S=>{S.filteredValue&&S.filteredValue.length&&l.store.commit("filterChange",{column:S,values:S.filteredValue,silent:!0})}),l.$ready=!0});const C=(R,S)=>{if(!R)return;const k=Array.from(R.classList).filter(T=>!T.startsWith("is-scrolling-"));k.push(t.scrollX.value?S:"is-scrolling-none"),R.className=k.join(" ")},g=R=>{const{tableWrapper:S}=l.refs;C(S,R)},b=R=>{const{tableWrapper:S}=l.refs;return!!(S&&S.classList.contains(R))},v=function(){if(!l.refs.scrollBarRef)return;if(!t.scrollX.value){const re="is-scrolling-none";b(re)||g(re);return}const R=l.refs.scrollBarRef.wrap$;if(!R)return;const{scrollLeft:S,offsetWidth:k,scrollWidth:T}=R,{headerWrapper:Y,footerWrapper:q}=l.refs;Y&&(Y.scrollLeft=S),q&&(q.scrollLeft=S);const ee=T-k-1;S>=ee?g("is-scrolling-right"):g(S===0?"is-scrolling-left":"is-scrolling-middle")},E=()=>{!l.refs.scrollBarRef||(l.refs.scrollBarRef.wrap$&&Nt(l.refs.scrollBarRef.wrap$,"scroll",v,{passive:!0}),e.fit?Jl(l.vnode.el,H):Nt(window,"resize",H))},H=()=>{if(!l.$ready)return;let R=!1;const S=l.vnode.el,{width:k,height:T}=r.value,Y=f.value=S.offsetWidth;k!==Y&&(R=!0);const q=S.offsetHeight;(e.height||h.value)&&T!==q&&(R=!0),R&&(r.value={width:Y,height:q},m())},y=qe(),W=A(()=>{const{bodyWidth:R,scrollY:S,gutterWidth:k}=t;return R.value?`${R.value-(S.value?k:0)}px`:""}),N=A(()=>e.maxHeight?"fixed":e.tableLayout);function K(R,S,k){const T=pt(R),Y=e.showHeader?k:0;if(T!==null)return Ge(T)?`calc(${T} - ${S}px - ${Y}px)`:T-S-Y}const D=A(()=>{const R=t.headerHeight.value||0,S=t.bodyHeight.value,k=t.footerHeight.value||0;if(e.height)return S||void 0;if(e.maxHeight)return K(e.maxHeight,k,R)}),$=A(()=>{const R=t.headerHeight.value||0,S=t.bodyHeight.value,k=t.footerHeight.value||0;if(e.height)return{height:S?`${S}px`:""};if(e.maxHeight){const T=K(e.maxHeight,k,R);if(T!==null)return{"max-height":`${T}${Xe(T)?"px":""}`}}return{}}),j=A(()=>{if(e.data&&e.data.length)return null;let R="100%";return t.appendHeight.value&&(R=`calc(100% - ${t.appendHeight.value}px)`),{width:f.value?`${f.value}px`:"",height:R}}),V=(R,S)=>{const k=l.refs.bodyWrapper;if(Math.abs(S.spinY)>0){const T=k.scrollTop;S.pixelY<0&&T!==0&&R.preventDefault(),S.pixelY>0&&k.scrollHeight-k.clientHeight>T&&R.preventDefault(),k.scrollTop+=Math.ceil(S.pixelY/5)}else k.scrollLeft+=Math.ceil(S.pixelX/5)},U=A(()=>e.maxHeight?e.showSummary?{bottom:0}:{bottom:t.scrollX.value&&e.data.length?`${t.gutterWidth}px`:""}:e.showSummary?{height:t.tableHeight.value?`${t.tableHeight.value}px`:""}:{height:t.viewportHeight.value?`${t.viewportHeight.value}px`:""}),X=A(()=>{if(e.height)return{height:t.fixedBodyHeight.value?`${t.fixedBodyHeight.value}px`:""};if(e.maxHeight){let R=pt(e.maxHeight);if(typeof R=="number")return R=t.scrollX.value?R-t.gutterWidth:R,e.showHeader&&(R-=t.headerHeight.value),R-=t.footerHeight.value,{"max-height":`${R}px`}}return{}});return{isHidden:n,renderExpanded:i,setDragVisible:s,isGroup:a,handleMouseLeave:u,handleHeaderFooterMousewheel:p,tableSize:y,bodyHeight:$,height:D,emptyBlockStyle:j,handleFixedMousewheel:V,fixedHeight:U,fixedBodyHeight:X,resizeProxyVisible:d,bodyWidth:W,resizeState:r,doLayout:m,tableBodyStyles:x,tableLayout:N,scrollbarViewStyle:c}}var br={data:{type:Array,default:()=>[]},size:String,width:[String,Number],height:[String,Number],maxHeight:[String,Number],fit:{type:Boolean,default:!0},stripe:Boolean,border:Boolean,rowKey:[String,Function],showHeader:{type:Boolean,default:!0},showSummary:Boolean,sumText:String,summaryMethod:Function,rowClassName:[String,Function],rowStyle:[Object,Function],cellClassName:[String,Function],cellStyle:[Object,Function],headerRowClassName:[String,Function],headerRowStyle:[Object,Function],headerCellClassName:[String,Function],headerCellStyle:[Object,Function],highlightCurrentRow:Boolean,currentRowKey:[String,Number],emptyText:String,expandRowKeys:Array,defaultExpandAll:Boolean,defaultSort:Object,tooltipEffect:String,spanMethod:Function,selectOnIndeterminate:{type:Boolean,default:!0},indent:{type:Number,default:16},treeProps:{type:Object,default:()=>({hasChildren:"hasChildren",children:"children"})},lazy:Boolean,load:Function,style:{type:Object,default:()=>({})},className:{type:String,default:""},tableLayout:{type:String,default:"fixed"},scrollbarAlwaysOn:{type:Boolean,default:!1},flexible:Boolean};const pr=()=>{const e=_(),t=(i,d)=>{const s=e.value;s&&s.scrollTo(i,d)},o=(i,d)=>{const s=e.value;s&&Xe(d)&&["Top","Left"].includes(i)&&s[`setScroll${i}`](d)};return{scrollBarRef:e,scrollTo:t,setScrollTop:i=>o("Top",i),setScrollLeft:i=>o("Left",i)}};let gr=1;const vr=xe({name:"ElTable",directives:{Mousewheel:ao},components:{TableHeader:or,TableBody:ir,TableFooter:ur,ElScrollbar:Yt,hColgroup:_t},props:br,emits:["select","select-all","selection-change","cell-mouse-enter","cell-mouse-leave","cell-contextmenu","cell-click","cell-dblclick","row-click","row-contextmenu","row-dblclick","header-click","header-contextmenu","sort-change","filter-change","current-change","header-dragend","expand-change"],setup(e){const{t}=el(),o=oe("table"),l=J();Kt(he,l);const n=Vo(l,e);l.store=n;const i=new jo({store:l.store,table:l,fit:e.fit,showHeader:e.showHeader});l.layout=i;const d=A(()=>(n.states.data.value||[]).length===0),{setCurrentRow:s,getSelectionRows:r,toggleRowSelection:a,clearSelection:c,clearFilter:f,toggleAllSelection:u,toggleRowExpansion:p,clearSort:h,sort:x}=hr(n),{isHidden:m,renderExpanded:C,setDragVisible:g,isGroup:b,handleMouseLeave:v,handleHeaderFooterMousewheel:E,tableSize:H,bodyHeight:y,height:W,emptyBlockStyle:N,handleFixedMousewheel:K,fixedHeight:D,fixedBodyHeight:$,resizeProxyVisible:j,bodyWidth:V,resizeState:U,doLayout:X,tableBodyStyles:R,tableLayout:S,scrollbarViewStyle:k}=fr(e,i,n,l),{scrollBarRef:T,scrollTo:Y,setScrollLeft:q,setScrollTop:ee}=pr(),re=Qe(X,50),de=`el-table_${gr++}`;l.tableId=de,l.state={isGroup:b,resizeState:U,doLayout:X,debouncedUpdateLayout:re};const ce=A(()=>e.sumText||t("el.table.sumText")),ue=A(()=>e.emptyText||t("el.table.emptyText"));return{ns:o,layout:i,store:n,handleHeaderFooterMousewheel:E,handleMouseLeave:v,tableId:de,tableSize:H,isHidden:m,isEmpty:d,renderExpanded:C,resizeProxyVisible:j,resizeState:U,isGroup:b,bodyWidth:V,bodyHeight:y,height:W,tableBodyStyles:R,emptyBlockStyle:N,debouncedUpdateLayout:re,handleFixedMousewheel:K,fixedHeight:D,fixedBodyHeight:$,setCurrentRow:s,getSelectionRows:r,toggleRowSelection:a,clearSelection:c,clearFilter:f,toggleAllSelection:u,toggleRowExpansion:p,clearSort:h,doLayout:X,sort:x,t,setDragVisible:g,context:l,computedSumText:ce,computedEmptyText:ue,tableLayout:S,scrollbarViewStyle:k,scrollBarRef:T,scrollTo:Y,setScrollLeft:q,setScrollTop:ee}}}),mr=["data-prefix"],xr={ref:"hiddenColumns",class:"hidden-columns"};function yr(e,t,o,l,n,i){const d=se("hColgroup"),s=se("table-header"),r=se("table-body"),a=se("el-scrollbar"),c=se("table-footer"),f=Vt("mousewheel");return B(),G("div",{ref:"tableWrapper",class:P([{[e.ns.m("fit")]:e.fit,[e.ns.m("striped")]:e.stripe,[e.ns.m("border")]:e.border||e.isGroup,[e.ns.m("hidden")]:e.isHidden,[e.ns.m("group")]:e.isGroup,[e.ns.m("fluid-height")]:e.maxHeight,[e.ns.m("scrollable-x")]:e.layout.scrollX.value,[e.ns.m("scrollable-y")]:e.layout.scrollY.value,[e.ns.m("enable-row-hover")]:!e.store.states.isComplex.value,[e.ns.m("enable-row-transition")]:(e.store.states.data.value||[]).length!==0&&(e.store.states.data.value||[]).length<100,"has-footer":e.showSummary},e.ns.m(e.tableSize),e.className,e.ns.b(),e.ns.m(`layout-${e.tableLayout}`)]),style:Ce(e.style),"data-prefix":e.ns.namespace.value,onMouseleave:t[0]||(t[0]=u=>e.handleMouseLeave())},[le("div",{class:P(e.ns.e("inner-wrapper"))},[le("div",xr,[Le(e.$slots,"default")],512),e.showHeader&&e.tableLayout==="fixed"?_e((B(),G("div",{key:0,ref:"headerWrapper",class:P(e.ns.e("header-wrapper"))},[le("table",{ref:"tableHeader",class:P(e.ns.e("header")),style:Ce(e.tableBodyStyles),border:"0",cellpadding:"0",cellspacing:"0"},[ve(d,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),ve(s,{ref:"tableHeaderRef",border:e.border,"default-sort":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","onSetDragVisible"])],6)],2)),[[f,e.handleHeaderFooterMousewheel]]):ge("v-if",!0),le("div",{ref:"bodyWrapper",style:Ce(e.bodyHeight),class:P(e.ns.e("body-wrapper"))},[ve(a,{ref:"scrollBarRef",height:e.maxHeight?void 0:e.height,"max-height":e.maxHeight?e.height:void 0,"view-style":e.scrollbarViewStyle,always:e.scrollbarAlwaysOn},{default:pe(()=>[le("table",{ref:"tableBody",class:P(e.ns.e("body")),cellspacing:"0",cellpadding:"0",border:"0",style:Ce({width:e.bodyWidth,tableLayout:e.tableLayout})},[ve(d,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),e.showHeader&&e.tableLayout==="auto"?(B(),Se(s,{key:0,border:e.border,"default-sort":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","onSetDragVisible"])):ge("v-if",!0),ve(r,{context:e.context,highlight:e.highlightCurrentRow,"row-class-name":e.rowClassName,"tooltip-effect":e.tooltipEffect,"row-style":e.rowStyle,store:e.store,stripe:e.stripe},null,8,["context","highlight","row-class-name","tooltip-effect","row-style","store","stripe"])],6),e.isEmpty?(B(),G("div",{key:0,ref:"emptyBlock",style:Ce(e.emptyBlockStyle),class:P(e.ns.e("empty-block"))},[le("span",{class:P(e.ns.e("empty-text"))},[Le(e.$slots,"empty",{},()=>[Ze(we(e.computedEmptyText),1)])],2)],6)):ge("v-if",!0),e.$slots.append?(B(),G("div",{key:1,ref:"appendWrapper",class:P(e.ns.e("append-wrapper"))},[Le(e.$slots,"append")],2)):ge("v-if",!0)]),_:3},8,["height","max-height","view-style","always"])],6),e.border||e.isGroup?(B(),G("div",{key:1,class:P(e.ns.e("border-left-patch"))},null,2)):ge("v-if",!0)],2),e.showSummary?_e((B(),G("div",{key:0,ref:"footerWrapper",class:P(e.ns.e("footer-wrapper"))},[ve(c,{border:e.border,"default-sort":e.defaultSort,store:e.store,style:Ce(e.tableBodyStyles),"sum-text":e.computedSumText,"summary-method":e.summaryMethod},null,8,["border","default-sort","store","style","sum-text","summary-method"])],2)),[[Et,!e.isEmpty],[f,e.handleHeaderFooterMousewheel]]):ge("v-if",!0),_e(le("div",{ref:"resizeProxy",class:P(e.ns.e("column-resize-proxy"))},null,2),[[Et,e.resizeProxyVisible]])],46,mr)}var wr=Oe(vr,[["render",yr],["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/table.vue"]]);const _r={selection:"table-column--selection",expand:"table__expand-column"},Cr={default:{order:""},selection:{width:48,minWidth:48,realWidth:48,order:""},expand:{width:48,minWidth:48,realWidth:48,order:""},index:{width:48,minWidth:48,realWidth:48,order:""}},kr=e=>_r[e]||"",Sr={selection:{renderHeader({store:e}){function t(){return e.states.data.value&&e.states.data.value.length===0}return z(Ne,{disabled:t(),size:e.states.tableSize.value,indeterminate:e.states.selection.value.length>0&&!e.states.isAllSelected.value,"onUpdate:modelValue":e.toggleAllSelection,modelValue:e.states.isAllSelected.value})},renderCell({row:e,column:t,store:o,$index:l}){return z(Ne,{disabled:t.selectable?!t.selectable.call(null,e,l):!1,size:o.states.tableSize.value,onChange:()=>{o.commit("rowSelectedChanged",e)},onClick:n=>n.stopPropagation(),modelValue:o.isSelected(e)})},sortable:!1,resizable:!1},index:{renderHeader({column:e}){return e.label||"#"},renderCell({column:e,$index:t}){let o=t+1;const l=e.index;return typeof l=="number"?o=t+l:typeof l=="function"&&(o=l(t)),z("div",{},[o])},sortable:!1},expand:{renderHeader({column:e}){return e.label||""},renderCell({row:e,store:t,expanded:o}){const{ns:l}=t,n=[l.e("expand-icon")];return o&&n.push(l.em("expand-icon","expanded")),z("div",{class:n,onClick:function(d){d.stopPropagation(),t.toggleRowExpansion(e)}},{default:()=>[z(mt,null,{default:()=>[z(Jt)]})]})},sortable:!1,resizable:!1}};function Er({row:e,column:t,$index:o}){var l;const n=t.property,i=n&&ql(e,n).value;return t&&t.formatter?t.formatter(e,t,i,o):((l=i==null?void 0:i.toString)==null?void 0:l.call(i))||""}function Hr({row:e,treeNode:t,store:o},l=!1){const{ns:n}=o;if(!t)return l?[z("span",{class:n.e("placeholder")})]:null;const i=[],d=function(s){s.stopPropagation(),o.loadOrToggle(e)};if(t.indent&&i.push(z("span",{class:n.e("indent"),style:{"padding-left":`${t.indent}px`}})),typeof t.expanded=="boolean"&&!t.noLazyChildren){const s=[n.e("expand-icon"),t.expanded?n.em("expand-icon","expanded"):""];let r=Jt;t.loading&&(r=Ql),i.push(z("div",{class:s,onClick:d},{default:()=>[z(mt,{class:{[n.is("loading")]:t.loading}},{default:()=>[z(r)]})]}))}else i.push(z("span",{class:n.e("placeholder")}));return i}function Ot(e,t){return e.reduce((o,l)=>(o[l]=l,o),t)}function Rr(e,t){const o=J();return{registerComplexWatchers:()=>{const i=["fixed"],d={realWidth:"width",realMinWidth:"minWidth"},s=Ot(i,d);Object.keys(s).forEach(r=>{const a=d[r];$e(t,a)&&ne(()=>t[a],c=>{let f=c;a==="width"&&r==="realWidth"&&(f=xt(c)),a==="minWidth"&&r==="realMinWidth"&&(f=bl(c)),o.columnConfig.value[a]=f,o.columnConfig.value[r]=f;const u=a==="fixed";e.value.store.scheduleLayout(u)})})},registerNormalWatchers:()=>{const i=["label","filters","filterMultiple","sortable","index","formatter","className","labelClassName","showOverflowTooltip"],d={property:"prop",align:"realAlign",headerAlign:"realHeaderAlign"},s=Ot(i,d);Object.keys(s).forEach(r=>{const a=d[r];$e(t,a)&&ne(()=>t[a],c=>{o.columnConfig.value[r]=c})})}}}function Lr(e,t,o){const l=J(),n=_(""),i=_(!1),d=_(),s=_(),r=oe("table");Ae(()=>{d.value=e.align?`is-${e.align}`:null,d.value}),Ae(()=>{s.value=e.headerAlign?`is-${e.headerAlign}`:d.value,s.value});const a=A(()=>{let b=l.vnode.vParent||l.parent;for(;b&&!b.tableId&&!b.columnId;)b=b.vnode.vParent||b.parent;return b}),c=A(()=>{const{store:b}=l.parent;if(!b)return!1;const{treeData:v}=b.states,E=v.value;return E&&Object.keys(E).length>0}),f=_(xt(e.width)),u=_(bl(e.minWidth)),p=b=>(f.value&&(b.width=f.value),u.value&&(b.minWidth=u.value),b.minWidth||(b.minWidth=80),b.realWidth=Number(b.width===void 0?b.minWidth:b.width),b),h=b=>{const v=b.type,E=Sr[v]||{};Object.keys(E).forEach(y=>{const W=E[y];y!=="className"&&W!==void 0&&(b[y]=W)});const H=kr(v);if(H){const y=`${w(r.namespace)}-${H}`;b.className=b.className?`${b.className} ${y}`:y}return b},x=b=>{Array.isArray(b)?b.forEach(E=>v(E)):v(b);function v(E){var H;((H=E==null?void 0:E.type)==null?void 0:H.name)==="ElTableColumn"&&(E.vParent=l)}};return{columnId:n,realAlign:d,isSubColumn:i,realHeaderAlign:s,columnOrTableParent:a,setColumnWidth:p,setColumnForcedProps:h,setColumnRenders:b=>{e.renderHeader||b.type!=="selection"&&(b.renderHeader=H=>{l.columnConfig.value.label;const y=t.header;return y?y(H):b.label});let v=b.renderCell;const E=c.value;return b.type==="expand"?(b.renderCell=H=>z("div",{class:"cell"},[v(H)]),o.value.renderExpanded=H=>t.default?t.default(H):t.default):(v=v||Er,b.renderCell=H=>{let y=null;if(t.default){const D=t.default(H);y=D.some($=>$.type!==Kl)?D:v(H)}else y=v(H);const W=E&&H.cellIndex===0,N=Hr(H,W),K={class:"cell",style:{}};return b.showOverflowTooltip&&(K.class=`${K.class} ${w(r.namespace)}-tooltip`,K.style={width:`${(H.column.realWidth||Number(H.column.width))-1}px`}),x(y),z("div",K,[N,y])}),b},getPropsData:(...b)=>b.reduce((v,E)=>(Array.isArray(E)&&E.forEach(H=>{v[H]=e[H]}),v),{}),getColumnElIndex:(b,v)=>Array.prototype.indexOf.call(b,v)}}var Nr={type:{type:String,default:"default"},label:String,className:String,labelClassName:String,property:String,prop:String,width:{type:[String,Number],default:""},minWidth:{type:[String,Number],default:""},renderHeader:Function,sortable:{type:[Boolean,String],default:!1},sortMethod:Function,sortBy:[String,Function,Array],resizable:{type:Boolean,default:!0},columnKey:String,align:String,headerAlign:String,showTooltipWhenOverflow:Boolean,showOverflowTooltip:Boolean,fixed:[Boolean,String],formatter:Function,selectable:Function,reserveSelection:Boolean,filterMethod:Function,filteredValue:Array,filters:Array,filterPlacement:String,filterMultiple:{type:Boolean,default:!0},index:[Number,Function],sortOrders:{type:Array,default:()=>["ascending","descending",null],validator:e=>e.every(t=>["ascending","descending",null].includes(t))}};let Wr=1;var wl=xe({name:"ElTableColumn",components:{ElCheckbox:Ne},props:Nr,setup(e,{slots:t}){const o=J(),l=_({}),n=A(()=>{let g=o.parent;for(;g&&!g.tableId;)g=g.parent;return g}),{registerNormalWatchers:i,registerComplexWatchers:d}=Rr(n,e),{columnId:s,isSubColumn:r,realHeaderAlign:a,columnOrTableParent:c,setColumnWidth:f,setColumnForcedProps:u,setColumnRenders:p,getPropsData:h,getColumnElIndex:x,realAlign:m}=Lr(e,t,n),C=c.value;s.value=`${C.tableId||C.columnId}_column_${Wr++}`,Dt(()=>{r.value=n.value!==C;const g=e.type||"default",b=e.sortable===""?!0:e.sortable,v={...Cr[g],id:s.value,type:g,property:e.prop||e.property,align:m,headerAlign:a,showOverflowTooltip:e.showOverflowTooltip||e.showTooltipWhenOverflow,filterable:e.filters||e.filterMethod,filteredValue:[],filterPlacement:"",isColumnGroup:!1,isSubColumn:!1,filterOpened:!1,sortable:b,index:e.index,rawColumnKey:o.vnode.key};let N=h(["columnKey","label","className","labelClassName","type","renderHeader","formatter","fixed","resizable"],["sortMethod","sortBy","sortOrders"],["selectable","reserveSelection"],["filterMethod","filters","filterMultiple","filterOpened","filteredValue","filterPlacement"]);N=Ao(v,N),N=Mo(p,f,u)(N),l.value=N,i(),d()}),Je(()=>{var g;const b=c.value,v=r.value?b.vnode.el.children:(g=b.refs.hiddenColumns)==null?void 0:g.children,E=()=>x(v||[],o.vnode.el);l.value.getColumnIndex=E,E()>-1&&n.value.store.commit("insertColumn",l.value,r.value?b.columnConfig.value:null)}),Il(()=>{n.value.store.commit("removeColumn",l.value,r.value?C.columnConfig.value:null)}),o.columnId=s.value,o.columnConfig=l},render(){var e,t,o;try{const l=(t=(e=this.$slots).default)==null?void 0:t.call(e,{row:{},column:{},$index:-1}),n=[];if(Array.isArray(l))for(const d of l)((o=d.type)==null?void 0:o.name)==="ElTableColumn"||d.shapeFlag&2?n.push(d):d.type===Ue&&Array.isArray(d.children)&&d.children.forEach(s=>{(s==null?void 0:s.patchFlag)!==1024&&!Ge(s==null?void 0:s.children)&&n.push(s)});return z("div",n)}catch{return z("div",[])}}});const Dr=Qt(wr,{TableColumn:wl}),jr=vt(wl);export{jr as E,Dr as a}; diff --git a/src/main/resources/static/assets/checkbox.74f2ee5a.css b/src/main/resources/static/assets/checkbox.74f2ee5a.css new file mode 100644 index 0000000..b4dd5e9 --- /dev/null +++ b/src/main/resources/static/assets/checkbox.74f2ee5a.css @@ -0,0 +1 @@ +.el-table{--el-table-border-color: var(--el-border-color-lighter);--el-table-border: 1px solid var(--el-table-border-color);--el-table-text-color: var(--el-text-color-regular);--el-table-header-text-color: var(--el-text-color-secondary);--el-table-row-hover-bg-color: var(--el-fill-color-light);--el-table-current-row-bg-color: var(--el-color-primary-light-9);--el-table-header-bg-color: var(--el-bg-color);--el-table-fixed-box-shadow: var(--el-box-shadow-light);--el-table-bg-color: var(--el-fill-color-blank);--el-table-tr-bg-color: var(--el-fill-color-blank);--el-table-expanded-cell-bg-color: var(--el-fill-color-blank);--el-table-fixed-left-column: inset 10px 0 10px -10px rgba(0, 0, 0, .15);--el-table-fixed-right-column: inset -10px 0 10px -10px rgba(0, 0, 0, .15);position:relative;overflow:hidden;box-sizing:border-box;height:-moz-fit-content;height:fit-content;width:100%;max-width:100%;background-color:var(--el-table-bg-color);font-size:14px;color:var(--el-table-text-color)}.el-table__inner-wrapper{position:relative}.el-table__inner-wrapper:before{left:0;bottom:0px;width:100%;height:1px;z-index:3}.el-table.has-footer .el-table__inner-wrapper:before{bottom:1px}.el-table__empty-block{position:sticky;left:0;min-height:60px;text-align:center;width:100%;display:flex;justify-content:center;align-items:center}.el-table__empty-text{line-height:60px;width:50%;color:var(--el-text-color-secondary)}.el-table__expand-column .cell{padding:0;text-align:center;-webkit-user-select:none;user-select:none}.el-table__expand-icon{position:relative;cursor:pointer;color:var(--el-text-color-regular);font-size:12px;transition:transform var(--el-transition-duration-fast) ease-in-out;height:20px}.el-table__expand-icon--expanded{transform:rotate(90deg)}.el-table__expand-icon>.el-icon{font-size:12px}.el-table__expanded-cell{background-color:var(--el-table-expanded-cell-bg-color)}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-right:0;border-bottom:0}.el-table--fit .el-table__cell.gutter{border-right-width:1px}.el-table thead{color:var(--el-table-header-text-color);font-weight:500}.el-table thead.is-group th.el-table__cell{background:var(--el-fill-color-light)}.el-table .el-table__cell{padding:8px 0;min-width:0;box-sizing:border-box;text-overflow:ellipsis;vertical-align:middle;position:relative;text-align:left;z-index:1}.el-table .el-table__cell.is-center{text-align:center}.el-table .el-table__cell.is-right{text-align:right}.el-table .el-table__cell.gutter{width:15px;border-right-width:0;border-bottom-width:0;padding:0}.el-table .el-table__cell.is-hidden>*{visibility:hidden}.el-table .cell{box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-all;line-height:23px;padding:0 12px}.el-table .cell.el-tooltip{white-space:nowrap;min-width:50px}.el-table--large{font-size:var(--el-font-size-base)}.el-table--large .el-table__cell{padding:12px 0}.el-table--large .cell{padding:0 16px}.el-table--small{font-size:12px}.el-table--small .el-table__cell{padding:4px 0}.el-table--small .cell{padding:0 8px}.el-table tr{background-color:var(--el-table-tr-bg-color)}.el-table tr input[type=checkbox]{margin:0}.el-table th.el-table__cell.is-leaf,.el-table td.el-table__cell{border-bottom:var(--el-table-border)}.el-table th.el-table__cell.is-sortable{cursor:pointer}.el-table th.el-table__cell{-webkit-user-select:none;user-select:none;background-color:var(--el-table-header-bg-color)}.el-table th.el-table__cell>.cell{display:inline-block;box-sizing:border-box;position:relative;vertical-align:middle;width:100%}.el-table th.el-table__cell>.cell.highlight{color:var(--el-color-primary)}.el-table th.el-table__cell.required>div:before{display:inline-block;content:"";width:8px;height:8px;border-radius:50%;background:#ff4d51;margin-right:5px;vertical-align:middle}.el-table td.el-table__cell div{box-sizing:border-box}.el-table td.el-table__cell.gutter{width:0}.el-table--group .el-table__inner-wrapper tr:first-child td:first-child,.el-table--group .el-table__inner-wrapper tr:first-child th:first-child,.el-table--group .el-table__footer-wrapper tr:first-child td:first-child,.el-table--group .el-table__footer-wrapper tr:first-child th:first-child,.el-table--border .el-table__inner-wrapper tr:first-child td:first-child,.el-table--border .el-table__inner-wrapper tr:first-child th:first-child,.el-table--border .el-table__footer-wrapper tr:first-child td:first-child,.el-table--border .el-table__footer-wrapper tr:first-child th:first-child{border-left:var(--el-table-border)}.el-table--group .el-table__footer-wrapper,.el-table--border .el-table__footer-wrapper{border-top:var(--el-table-border)}.el-table--border:after,.el-table--border:before,.el-table--border .el-table__inner-wrapper:after,.el-table__inner-wrapper:before{content:"";position:absolute;background-color:var(--el-table-border-color);z-index:3}.el-table--border .el-table__inner-wrapper:after{left:0;top:0;width:100%;height:1px;z-index:3}.el-table--border:before{top:-1px;left:0;width:1px;height:100%;z-index:3}.el-table--border:after{top:-1px;right:0;width:1px;height:100%;z-index:3}.el-table--border .el-table__inner-wrapper{border-right:none;border-bottom:none}.el-table--border .el-table__footer-wrapper{position:relative;margin-top:-2px}.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table--border th.el-table__cell.gutter:last-of-type{border-bottom:var(--el-table-border);border-bottom-width:1px}.el-table--border th.el-table__cell{border-bottom:var(--el-table-border)}.el-table--hidden{visibility:hidden}.el-table__header-wrapper,.el-table__body-wrapper,.el-table__footer-wrapper{width:100%}.el-table__header-wrapper tr td.el-table-fixed-column--left,.el-table__header-wrapper tr td.el-table-fixed-column--right,.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right,.el-table__body-wrapper tr td.el-table-fixed-column--left,.el-table__body-wrapper tr td.el-table-fixed-column--right,.el-table__body-wrapper tr th.el-table-fixed-column--left,.el-table__body-wrapper tr th.el-table-fixed-column--right,.el-table__footer-wrapper tr td.el-table-fixed-column--left,.el-table__footer-wrapper tr td.el-table-fixed-column--right,.el-table__footer-wrapper tr th.el-table-fixed-column--left,.el-table__footer-wrapper tr th.el-table-fixed-column--right{position:sticky!important;z-index:2;background:var(--el-bg-color)}.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before{content:"";position:absolute;top:0px;width:10px;bottom:-1px;overflow-x:hidden;overflow-y:hidden;box-shadow:none;touch-action:none;pointer-events:none}.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before{left:-10px}.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before{right:-10px;box-shadow:none}.el-table__header-wrapper tr td.el-table__fixed-right-patch,.el-table__header-wrapper tr th.el-table__fixed-right-patch,.el-table__body-wrapper tr td.el-table__fixed-right-patch,.el-table__body-wrapper tr th.el-table__fixed-right-patch,.el-table__footer-wrapper tr td.el-table__fixed-right-patch,.el-table__footer-wrapper tr th.el-table__fixed-right-patch{position:sticky!important;z-index:2;background:#fff;right:0}.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__header,.el-table__body,.el-table__footer{table-layout:fixed;border-collapse:separate}.el-table__header-wrapper,.el-table__footer-wrapper{overflow:hidden}.el-table__header-wrapper tbody td.el-table__cell,.el-table__footer-wrapper tbody td.el-table__cell{background-color:var(--el-table-row-hover-bg-color);color:var(--el-table-text-color)}.el-table__header-wrapper .el-table-column--selection .el-checkbox,.el-table__body-wrapper .el-table-column--selection .el-checkbox{height:unset}.el-table.is-scrolling-left .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-left.el-table--border .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:var(--el-table-border)}.el-table.is-scrolling-left th.el-table-fixed-column--left{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-right th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-middle .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-none .el-table-fixed-column--left.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--left.is-last-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-last-column:before{box-shadow:none}.el-table.is-scrolling-none th.el-table-fixed-column--left,.el-table.is-scrolling-none th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body-wrapper{overflow:hidden;position:relative}.el-table__body-wrapper .el-scrollbar__bar{z-index:2}.el-table .caret-wrapper{display:inline-flex;flex-direction:column;align-items:center;height:14px;width:24px;vertical-align:middle;cursor:pointer;overflow:initial;position:relative}.el-table .sort-caret{width:0;height:0;border:solid 5px transparent;position:absolute;left:7px}.el-table .sort-caret.ascending{border-bottom-color:var(--el-text-color-placeholder);top:-5px}.el-table .sort-caret.descending{border-top-color:var(--el-text-color-placeholder);bottom:-3px}.el-table .ascending .sort-caret.ascending{border-bottom-color:var(--el-color-primary)}.el-table .descending .sort-caret.descending{border-top-color:var(--el-color-primary)}.el-table .hidden-columns{visibility:hidden;position:absolute;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background:var(--el-fill-color-lighter)}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table__body tr.hover-row>td.el-table__cell,.el-table__body tr.hover-row.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped.current-row>td.el-table__cell{background-color:var(--el-table-row-hover-bg-color)}.el-table__body tr.current-row>td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table__column-resize-proxy{position:absolute;left:200px;top:0;bottom:0;width:0;border-left:var(--el-table-border);z-index:10}.el-table__column-filter-trigger{display:inline-block;cursor:pointer}.el-table__column-filter-trigger i{color:var(--el-color-info);font-size:14px;vertical-align:middle}.el-table__border-left-patch{top:0;left:0;width:1px;height:100%;z-index:3;position:absolute;background-color:var(--el-table-border-color)}.el-table__border-bottom-patch{left:0;height:1px;z-index:3;position:absolute;background-color:var(--el-table-border-color)}.el-table__border-right-patch{top:0;height:100%;width:1px;z-index:3;position:absolute;background-color:var(--el-table-border-color)}.el-table--enable-row-transition .el-table__body td.el-table__cell{transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:var(--el-table-row-hover-bg-color)}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;width:12px;line-height:12px;height:12px;text-align:center;margin-right:8px}.el-checkbox{--el-checkbox-font-size: 14px;--el-checkbox-font-weight: var(--el-font-weight-primary);--el-checkbox-text-color: var(--el-text-color-regular);--el-checkbox-input-height: 14px;--el-checkbox-input-width: 14px;--el-checkbox-border-radius: var(--el-border-radius-small);--el-checkbox-bg-color: var(--el-fill-color-blank);--el-checkbox-input-border: var(--el-border);--el-checkbox-disabled-border-color: var(--el-border-color);--el-checkbox-disabled-input-fill: var(--el-fill-color-light);--el-checkbox-disabled-icon-color: var(--el-text-color-placeholder);--el-checkbox-disabled-checked-input-fill: var(--el-border-color-extra-light);--el-checkbox-disabled-checked-input-border-color: var(--el-border-color);--el-checkbox-disabled-checked-icon-color: var(--el-text-color-placeholder);--el-checkbox-checked-text-color: var(--el-color-primary);--el-checkbox-checked-input-border-color: var(--el-color-primary);--el-checkbox-checked-bg-color: var(--el-color-primary);--el-checkbox-checked-icon-color: var(--el-color-white);--el-checkbox-input-border-color-hover: var(--el-color-primary);color:var(--el-checkbox-text-color);font-weight:var(--el-checkbox-font-weight);font-size:var(--el-font-size-base);position:relative;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap;-webkit-user-select:none;user-select:none;margin-right:30px;height:32px}.el-checkbox.is-bordered{padding:0 15px 0 9px;border-radius:var(--el-border-radius-base);border:var(--el-border);box-sizing:border-box}.el-checkbox.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-checkbox.is-bordered.is-disabled{border-color:var(--el-border-color-lighter);cursor:not-allowed}.el-checkbox.is-bordered.el-checkbox--large{padding:0 19px 0 11px;border-radius:var(--el-border-radius-base)}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__label{font-size:var(--el-font-size-base)}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{padding:0 11px 0 7px;border-radius:calc(var(--el-border-radius-base) - 1px)}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox input:focus-visible+.el-checkbox__inner{outline:2px solid var(--el-checkbox-input-border-color-hover);outline-offset:1px;border-radius:var(--el-checkbox-border-radius)}.el-checkbox__input{white-space:nowrap;cursor:pointer;outline:none;display:inline-flex;position:relative}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:var(--el-checkbox-disabled-input-fill);border-color:var(--el-checkbox-disabled-border-color);cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{cursor:not-allowed;border-color:var(--el-checkbox-disabled-icon-color)}.el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label{cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:var(--el-checkbox-disabled-checked-icon-color);border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:var(--el-disabled-text-color);cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-checked .el-checkbox__inner:after{transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:var(--el-checkbox-checked-text-color)}.el-checkbox__input.is-focus:not(.is-checked) .el-checkbox__original:not(:focus-visible){border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{content:"";position:absolute;display:block;background-color:var(--el-checkbox-checked-icon-color);height:2px;transform:scale(.5);left:0;right:0;top:5px}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{display:inline-block;position:relative;border:var(--el-checkbox-input-border);border-radius:var(--el-checkbox-border-radius);box-sizing:border-box;width:var(--el-checkbox-input-width);height:var(--el-checkbox-input-height);background-color:var(--el-checkbox-bg-color);z-index:var(--el-index-normal);transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46),outline .25s cubic-bezier(.71,-.46,.29,1.46)}.el-checkbox__inner:hover{border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__inner:after{box-sizing:content-box;content:"";border:1px solid var(--el-checkbox-checked-icon-color);border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);width:3px;transition:transform .15s ease-in .05s;transform-origin:center}.el-checkbox__original{opacity:0;outline:none;position:absolute;margin:0;width:0;height:0;z-index:-1}.el-checkbox__label{display:inline-block;padding-left:8px;line-height:1;font-size:var(--el-checkbox-font-size)}.el-checkbox.el-checkbox--large{height:40px}.el-checkbox.el-checkbox--large .el-checkbox__label{font-size:14px}.el-checkbox.el-checkbox--large .el-checkbox__inner{width:14px;height:14px}.el-checkbox.el-checkbox--small{height:24px}.el-checkbox.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.el-checkbox--small .el-checkbox__inner{width:12px;height:12px}.el-checkbox.el-checkbox--small .el-checkbox__input.is-indeterminate .el-checkbox__inner:before{top:4px}.el-checkbox.el-checkbox--small .el-checkbox__inner:after{width:2px;height:6px}.el-checkbox:last-of-type{margin-right:0} diff --git a/src/main/resources/static/assets/codicon.c99115f8.ttf b/src/main/resources/static/assets/codicon.c99115f8.ttf new file mode 100644 index 0000000000000000000000000000000000000000..7eba31492ba78bbdc6cb62f91c005e051c790057 GIT binary patch literal 70776 zcmeFa37lJ3c|Ls3z0zHE7u_rAN*ax%8I7db$Fpdp@iJcGY?k9ViIX^sCw4YFiIdn6 zvKW#;Y_<>}Ksp3yn?NbGAyAsqloCTzb|`fyr8K3KW}pj|_|vo)+ENm}=e$3 zM)3UseBXV|&3g_6e>CtB#f1b|E}vl|J7YzWvp~9W6wOh@47wL?tJH?7vbDz zf!TdHAYCDS2A_`u1N&~i?apug=w~mWzV9=p?B0LtHG8U`d@jXUaTR0o)XjVDJRto6 ze+_<5}NlF zfsfOXm4E!<@Cc5c|H;X>UgfO)5i`XVuPT4^)pRD6xb}HI&d2aoV-g+3AJzRZe+3J| zZ*43Nt@5wx`WyK_uO_1%QCb!{G*nv{LJ^?uy+sY7guupM!#|# z;Y{fqjqnlvAdBMLr`Xr7r|3icSea67g!ZG{5Pka7nZ2V7O{J%X0{=YdVAZkcnw%4EYv$Je0po zehf!RB95Yj6vgp~{Azr6@ek*>-q3oW^@Y}#+Io9i8{!y8cDL?ty|wkF)>qnQdpjLD z?T_QS-RxTSb@p|>jei}#$@o;_MfN@(=ht$^H?TI}%+BC%<~6>KuVshXBsbWd?DyFc zTg|U#H?tIf6MHi|#CzGlv**}9L)QNedzgKI-^$Ntck|u+9DXUkn4imc@~ime{33P~ zce)ZnID)4%pfkmo1-a~?B_2z&3}k-~JD+W57qAQ2#q1K6X9ZSdeXO6AS(Od4A;|L) zP+*LWvk7PpGpxpDS)Dc599zTILX%j}Hn2_X9Cj|-!kX-Ib|qV2d)W1CAG?9w$Zlf$ z*)8l=c7PpZFJmufx3O2S+u0rLF7`@x4|@%}kG+ex3aWdq4Xvc8qpxlBamU(>%koyocv_o)>r@@8<)&%qzUg2l)^m<`aAs zpX5_~n$PeCpX00f8a~h0^NoBHKZBpi&*EEnlW*nc@$LKqej(q%FX5N*EBG#cJ>Sa@ z@Pqti{N?;MemlQ|-^uUdhxk4G)%-R5KK@$%I{te8Mt(nk3x6wrkiU(;oiFltvcF)@ zuy3-zVi&O;>>7-x>)54yfnCk^Vsvd|B{smm$L?iE*l+WDF@6KK6METC_$c4QBkVVM zozJot_}M(leRdvy16#-bk-eIIkbQ^!m?v0;%j|hJ#irRtehoj&@8+-MuVRlv#~Wim zVps8Z@L%B%@f-M!{3gDi-^_2}`&gWv4Gr_H(6@K7kF(FR&#+Ikv)GwzGfS{PV2`l( zvaRe2=(&sRGL~c?Vvljoa;z8nw$G2Se_?;hKF2=K{+NA6ra z6=3f}d7S`{qr6^#)9-r)hyk|t34lMb)(rxzjq*kT@GRE4Nr0V!a=!q7Gs>F3HTLr-7SnGfQ_#JB<6kwAmUnT$^$XYKK05@c<+XTQDS?d)7;E=3!y8v5_@(uxT zP1d4o0Ps)Nx=Vn;f@{HQB!H)~)++_TU0Lf@0*rpYTL2uFweArB?`5rf1;B+_>(v76 zpHaR>0Gye%?h^oyW-WR)0Nk3jjtH<1pnR1e*7|D!Xg#d;Z2{;%to1hn(1cj) zSpn!othFQn?TEF$BLF>#wZ1C=jfu7XRsgyaYyF)7v?$j4djaTEto089(5zVNdjin0 zSnD4Jph>Y-O8|NoYqbTSfw9*21)z(u*8dWKR>oRC5P*KhTK^;fO^vml6M)XfTK_Bn z?TxkmMF4snYyD6F8Xaq$6o78WT0atimd9E@7J$CTTK_5l&5yPIO#nI|YyGXR@ROQK!as%OMpC& zZCe0ZEo(ah&~I7W6@aG8+HnE)6iQD3+AnMS0?>n5J0Sp#n6;Av(2ZF;B>*j%wF3d@ z%dDLifac8F83E|fteq8rHqF{S0??~jJ0}1Qo3(odplh>sUI1D*YZnBdf3tQ`0Gc>! z_X$8JXYGCgXy>e55`do0+5-a6*jc+Q0NtInD+18sS-UC#eV(-k1)$lp_K*N{eAXTo zU_V7UBEYGiM+Hc;Y>x?W>cepXPJK8bz^M;c32^GeNdZoMI3>WT52pn<_2G;Fr#`F+ zaO%TZ0Zx5V7vR(<4FOJlGABTu<@Ra;PJOaQfK#8W72wn->jXIU$-DrkepoNSsUJ27 zaH9Q20Zz2vB*2N@X9#ej_htc3^gdI76TQz8;6(4U1vt_B905-BK39Mf{k8~jqF+;h z6aBUdaH8LN0-Wf#O@I^qwhNGlzkPuKC)!*nz=<{&32>s#4gpRyxLAM_4K5Mj^xT&U zaC+{Y0-T=vG67D{dbt3nXT3sz({o%Y!09=532=Ij1p!Xaag_k4w(l0;)b>3BoZ5c1 z0H^j|BfzPR*9vfI%XI>r?ti@ir+e-d;B;)C0HH_$kD5)-h--VLu0{9`6R2RVSK}mH1{M9I5AwUt5Hq{I8 z`%qH70Dmn?su$p|LrL`l{PifQUVy(53IOy@~lnI1Hh_hZF(Mn?M6w@ z1HjT}ZF(L6Ha}~>Ljcx4Yd<6aKLBh0iU2$UtWD1hz&F6!^vnSJZIllSz+b@H?-C%- zSNq)p6i;fuM*!Xg*8WuiiubgCO@RFb<*y5nFSh-N0N;c1Q33cLSo^&K>^D)qPk`4^ z{)Pa&6RiDy0rmn)IuAf}h_yc;z@sRCO8{OB);=mg@uv1M0eCi8`-1}Taj^D>1mNvp z?Z*Vzt5JSf03Hz5{)hm4A*@Yw0oadGepCSd5!U`40aiizxBz@6to^$J@Sd>t#{}R< zVeQ`&fJcS3pAcXhQU1OFzXs*U1^8i?u&Yr1kpQRh@@WB1W8^aeoW{;)1^5jpKPSL%MEQ9EPQ2s`0-Sis z7X|puD8D4YZ$bHG0r-em`;P_SEn@Aj2*7W|+J7QIG0OG{0fuqkep-N{xb3eBz`w-W ze<}b^6Km7>1K@LF?LQNM_ldQ?E&x9iYyY_bJW{Ov4FUM3So<#o;H6^iX9VD{V(q^a zfai*}Y0d-iVX-#Nc>vxl*8Y|N{93I2*8=Pcl;0MBuZy++MgU$f)_zt1{x8;E5`ZU+ zwP~CI@QJbZcLmsEDF0RfelphnI{|piSo`k<;5%dOe-L0)_xA*tkCMhW0M8n0w*=s0 zW9_y8ylt%geF6C0So?nozyrtHKM;T~j#C`S)2F;KoRRUjVFM-hT-2s@Q8hnC*Y~w&p*JQm9o;fv`M-|x>34E zdb{)i>5J00rJu^%+SpPC+u%ItDW1N zhh4?J*8Pb4HTS1+Eq*9|!fSXBdq444`8)jm{;T{4{D=L={7?AbPF$I|J@H`T+sSRo zL&*n{pHI1|4XMjh_oWt7kEgzv`bm%rHUzf?uS+ZG+4Pm^52nAE{z1mhOl7uZ4rJb! zIgxoTo6c^|?$5qI`_rC#dOq6o<(!n;o;#BJaqoq__xFA)zd8Rv{%ZxVaA)D&g)bJq zS@?1BQ1Rj7$BJL=%lBQ`_h8?r`d9TI?LS#sRr=__?7)}HXO&M>uC6><-Bdk3c*)>1 zL#d(Rp#wt?4Lvo?hAYEIhW~z~e`Nc};>eFjE2Eo7-#+@p*udDKu_wmsbp^}=Lja?9lY$@?ddPChmH%;a-Z+SI10d#1iR?M}~3FHV1C z`pYxBXYQPN_smynt7_Y7kJi3Y`^oHv+3ROtH~ZM^x9V%_m((Atf1}|wwlwZ zTz+on-0gFpnETG^eXHNMCb#DLwOiKSxAtS}vg_v8J+STv^JmRJF#qiOo$DW4|H6jE zhRqx9-|*=T-`pr|?B96b#wRvy*!1gXursF4xbKXQY))+6y!pn>pWgiK&EG%s182p~ zT6NY3&-$0MuRi;W=OoVAf6lwl`RcjD=f3XTXSZluMz?I=a$w6tTb^qUH*ah{*!*ns zg{@a^eaqG_pLfZ5PiYkM4VF-wQVk-*DuH_uY8?jo-NG&YPawKePV;W=sTWBZzWCmdD|{njsygJTuPw zZJtb|3OqHn9$^l(zgnM1H&dMh(u*M7B5Un~J7IqJ|!eN4-R8?Kx{p{^HP?gM()d^{q`B z*{qRVdv#hh;F3<-E#-YlH{^6V884(`j|bIMsybc`f@<)&R5>jfx?Il2^B#9{aXHza zh@}hJ04IcJrEu%;{wnTo;_k^(vQ#V8rfbtlt{(Ic9Pp3P+kperpPhDE@Smp0KgvsL zGML7zUc*bpWl0sNmXg!lJ*n%4e!|f8++Qp`eY|qu0MFW;wOYg5bhREN)oQ&lXf+zv;BiqLMq$m_gM;=QK7d$qSb++ATStpZbUp5m z>r2(T7;A!NRg9?qaW00+b%TDzZdi?v7N+N?^Le}#{LJXoXeNAnXmJ0H6{}u%3e$zo z3587Ox6CN+xAL9=Y0LHMbgfjcf)sTO#DopGFwcYJ$_{%;r5v@Ns`d01;Wspid#BoT z+C4kZ2^y z52Gg>M_-z-Cai*AxPM~8%J17(5ch=!^mKTh7^%rpa0tH_Zn&XvjW|F5qVvL$jLA`b zpQtB)0_WLzzgu7DzU%okMn9&Xy3o1rk@^g)G3~%(yT0FDkiHzEvP0Po(yU{v+?@X zNBP1f+4A=ut(D77>p?zO&h|Cqd%E+ZAN-^Tv58q+4Nk6>`W1&Od1(!wnq3cOk8&PN zZGunNgB;@JrRmZvzJQSjDO)P>VpB5Ior)oCm87U1tw#+h)`%)QBYIT2Ns{)@C5EL4 zzw}H=+IprG*~+;jNux_qjjPe6sIJMX(l-JYtZRJx%-vj;xuP!NoFy(xc(_x%tQRqm z8rgUC=}NU!pPs3gz|4}tENF~rodicitLwAGgOlJQ)b!!oh$LE_A)PUa!E5YJXX}bL_F}E^NsX2voG!WnlY#A=WIJ)j!3-e zd(F2*bv^P%E0*kWf=XO3jt*bua&w#QrO!Iw@q#|;6Tx>3(A5##w|uIFM9$f2*zl5C zpGK#i;~ns~L`>tjVZK4C4BS%fy{~ut&EdU_c>KZ0w)4+!&dr^wm*mehVlHQc5|GYn zDWR15E7eL3a{;n<9iIth@U)`#s|tx;rI#mE^yzf9GQp?RDg0b3C4xM!CzSrm%vMMVTMOI(eH{OTWYkjL| zIVmM-I#$uqV#aW);95#F>O|yN#8w<<*tE5HGHE0uyChjrRS5Ve1GI-E zklLhQqc~=n-=gYPP;m0TZfNTD$)Mu(^~5E~>KRB31<5|NI^|ed#niN(WI8+K=97jL zNtr!%C7XeLDB1>2a}trt6h#5iZBr@eFKVd8l&Z;Tv}~qSMKMzu;S1{vMb~n@{`~N; zmne@^-Gt{?8ppF~D;bTX%=9)Z^;sO_o}g&x>wh)ac%b+{eg(G>oWV$f+|^; zFV2a-;|=l0RXG-ujVBG)HJ<#qEFZJqBTMhKD&Cye@Ee}*`<~z}>?FpUMzLC-8dQfQ zQ^AsI)2*XM{Jitx{$_jgA{2&`$|aX5C;zJ1{930^vycsEBR+OF=r&n`I*87)B{eUj zB<_+dLC#kvE7e-1UYijg@IJypWaw0r=;jLE>yz_1Ilv6>Up{9YpT$+x$#H1}k`D7d ztTHI2NcYM^$YQb|loUgaNKhH0VPRkl>#ha5YSFN%9Bu10^B zddR~ePPfGouF@g@R6SDMFZ8DsD;Ea~>GC{5zk4Vy_x~IP!9Ov?1^ZMXg&}+(v+Mtt zlXKR_ql$;#luX*GlpVhR-$C1~-q-Csse2#XjdB+{bI^k2(}URl5M*GfhT)wICm)nH zOf4t{;h}0RAd!!EQlslh?rzc-^i8^cQa{>kE;fyZ-aK5{)r9WcT*?_nPG2;P#hmZk z!@6PUBUZ!ro4ZF8T~~&$qFal8CVjpiaq}z4?(#`|@c>-AMiXFOsz4;$QYuI$f+R^a zr3C&n!dI0h$B{SKPt0-_A|-_xpw<&A%2U_WX6luB37Q{7gkbbLbNvNKZa&nf#{(VK z(d^uyp3Ug_L9ORyQY0ElaM(UkQ}Z-a&ghD6a#ObkN?F~s6dm(6@AEu7Ab4@b&(Gus zR>!z*%6hR$m*Ic$24wEZdmL#L*ie{QxB_dtnSh^wUnOsJ<4I?{H zvLsYrK)lEuHhsyF{ELjk#+;!0UQR^)}Yfshb`4e9`?d0ph+P0 zk4qq8?JLExqFXTYT(1oBh{elhNs1Nv3o$-mmhI?Jl^Y;S;pU(i^y*fsr#F|1Y0sFc zVlidXW!avX+mocrxa~SNuBz}bP9$cQ6s)Qcy@dtmmZA;S{{!fFS(` z=hQ0UFVj!)p-OO5JX2rHAulRF_$9I zGxbWmmsW8%{J1^?2!p?F3k3REh&YQ~~kRE|Qa(v_GVg<#Qa#flqF ze_t_|i5n59VOlJTG7_;PJ0z~FUe?Ox^NwokI4mogu12D=DXWHQ;I?Q6?uEmVs3t?$ znGyB7m--9ym#(0<27mag$<`tofUgBp1)203A{s=qLhc%nnZ#=lN(6LDA{Bssc}~5e zif*W4;#4Li%rkM}1pGiy&v50;LEQpGyjmGpdiPEYZg>Fey5Kjv! zue&KLTd?!Lz0=#Z?$VM5XA-DS-HFmeclPyR)=_tArWHX?!4|<7Ku^TXDtZNd6OCSu zL)5Jp3=u6PDLPg^Gh)VcP#9;E;X>USF)h_D6sfe!zFuIbJ>Prl6s49y}2@laAM4NP3Qw z7>K81F;kDZ7Yq(Qc-g$HDDr&W^UU3zJZnoDiQ8APY9e@pz>Idl1(r%@A~gQmjZ z{$yCei_bX;-vgZk-x$0FonOVN%k?~u7$SUm^^TH7&;Qzs;}>^di`@@6f@?xsAFVry zS&SG6IR%KzH;(&@izkmCKepJd7n=7X&2;z(Yg~PL(f2#^UhQ0q+PYUmriL9+D>aV! zhYug{5Brs4CypLnJmTTwF;v;1%Xbhf&EUEz$j%^@2rbKgXeV$5lfgO9q3!s&s4Pcw zzL5w&Mx#a?qI$&<@zK}gMl{+PN5Y@V{7$_}Xtef^N4m9o@xDnTqU-Uz(>KtUPserf znP(!#WM6!s&&h{}(s}$Gex^2`@{0^p+|RG{tCLjqq|L#@0x}ZFxPb7Vg(0!x6_Cw* z>h|4Meay)_wv}<9yUQ9}1-*qFeUqW#$eL;zG0VQ_#Vs5VE$0#p0?o--y#+g$G91$W z@y&J$wr#}>Q`O{;y!a71kJgco;3D6_yiLLi1^q+EvhW-(TkzGzL@ALd4bt10y@S1Y zO*T8L_~o(cW#;oIRv*?lCb=jwgk4`Q{A@RzHw?AIYK8|o?Ki55QSJP$4Beg&L>q)^EE z!1+RxpZqn7T7nN9N(^abq{LQ5F+*00P-;W>HFT6?BN5MlMPEoY%4N+&Spiaz*wIzd zxN+>D5jV}a(SV*AH;lWWk)t5H6&g-UT##}aOQR7Ff+OVug%n)kM&(%N3Oc|0T7EXn zC(=@ViBvPY^d(T&JiBQ-xX+JevxtAfJSu8*>MxUuLP zIWJXACVC8GBNTQ6ffQ4VzAoV>?6NiRDywYcqg6Rtp3r@Ai}?C+{qLgCBMifc!c2ZF zaqYDUYhd7t0W18pY`c(_o?%7dT_^S(vNDK-P;C!2_xc)%l=qO)zt7J0SUq@wrw@U@ zfL|Z+z_OcO<#6-Jk%#P_p6(fkd}2i&{oXv>I0AYI{`@`Ux)9G?rnDL?Znn=n)7~7u zzp?uPUr+G?vsp z#j_kPtH4P@21-&;=us3m8ckS+Vy10fx3hXoHGAT=tye}0SEc>5HHcUUFHZFNseFpN zPAcl!HnbAk$YovMG_6v9Aj^?NN-5l)zW%zv8XWBMEVOls@~cH#Lx0HWttAe%qP2B6 z!>F+xmo$kR(b{tP=eKua0_}AorW)kJ_R58f_X``$txk*G5f8Dpu*Io!GS^?1Ms#PH z&!Wvq%0=(C`9);xILKZ^?`hG@2TrHny@zT3y_Cu!HBTel%P~b?MA?pOJS^w+Gx-l z;N0E)u+p4#d6B-IJ}zN2|W-_)<pHOG@V~@y#eFo`R@Ec)AhB456H1yY=K`R&P;3_4!Xvjw~ zFA;5FHxV^c6nhAx>4#`~R|8%tNYxYF+#3oFTu_joZWV%c3OE^AwQwpQv9 zYrq?*7`&J!uV$vNxPA8y31GEUi7ZwX$^w z2zct0mGnMzN-OG)bMo=2!t$cnVL1C}s!=E!ldkDsw;9fsV~vHyEy^l4!$kZ)+=z=1_59v8aW(S6 zU{vEP!bpLNOo%X)uBOoI(6H+&#@I(gZ_H0};5b2%WxVjw4RkFq0 zL@rfcH9p|W>HDm~NHm^sq*%i6qK2wP_zowk+lW!jm@zN!>6R;38d)Cor~*`zt8ZL= z)I$}S;k+Izj!g{TZw={*m}Dm*ruyWF8Re=vVw;xd*#3ATh{+Br3NCw3)$*T-vE z6uUY19dFoke9lXQgQb?0ip5fv^Z_*<1ab8P`Dny8Ech8BmSIPtpOvFA`Vx!E4LHC?s?kd=lo%Rp$ z(N3Ri`0w^eU9=t{u=;=g08;X_zWDg7Z+xF_*xd(6QunRsh>S)ZAtz7kh~4f5sWbN8 zuE_Uh8u&U>~nB%0~6!8qF<~IyK2`*Kd$uz!z{qezpK=S$q2U4=v8_Q)J$uhm6 zw6=xfiC>RN@&4`!3z`%Qav9CkO2cd5?iI4WW5c>6dFv~+9+LKTV1)(iHJi<)Q`YN( zCk&!ceq)u<5@rQi07#5LSQv`TbnuBwMn^9hUA;P=U){TetEchT;cw!6j4(R!??&jv zMVx_t6!k5kK5Sit`Y=Plix-=vvq}qx_pj?*FMfw4DJ?b^mtM1c-LfBsyh#{@>fEkf zyJlu)78e$F4b9ZRQiQ!C&cpR;6+bPU1W-q)|8(dtXfh8L3U(^ZhJpd=*fLRxw8#<* z0?`SA((#mE##4wGRt~&62|a2v@{}(Dr>;YJg3brqVTSaPWTmtYjfAtDJXR`RFv!rW z3hBo1cEHrH)-ej9|KLID;M-Fv@C=ya(=#ggNht~IVs@wWJJ>7%uPfEvkLkwiN(h(c z#*CRu<5rSb!Alv46*8El5_k26WMFp$uoCRAfGU1Ra*#Fh*cH;1d~b+M z4UmO@t{zu+x!Tr;JJ&cXt^pyIubIf@u1uwl^zFhme`y|v)6?8^q;n1ND;+jYBlI73 z_zsvWM6ZoFG(tsT;sV^}k*R!yvIG#S3x#rRK`@*ooYwFeyMUya2r+0zEEY2~C8Fk1 z61Jg`e%9qOyQ7vGo)=!ATBZw2(}brP7n!DFxCjv;Ox@*0ap)IuX#aKcb)hFQ8Zmt- z=_7!PYnDEQ$swWZ4o+WmH#sRFn3qMzdL)X3;Vv4^%FpCz#>}dEB4KL17xd~8Eszy& zwWp{qvMeIXo?NV_l#AueUR{eSbgGw3YQ3|X>%^28o%px9nl&?u1WB%=2F*;^YFGnY z)i6EXTY6)?CBW>}lF7K1iDjaSuJvXks_AHPsv;cPLKn&6NlEV^UrQ4FiZU^h6s01@ z(aWc6Ws!uKtRFmzS-9)y(HDMVUw57DZ#f9>0emXRjr2dPp5biPUUAJNreA07KeOyh z?bNlSxA#a6zSQH##W~RPso%4qe*+E{;S`g`k)(uKL0Ji8d1K0S#>49})sp5JV^bwH zJ2442%4pgsm4iY1*kxzD#cw7Gn&+uOMlDZ``c@*CGJGVc=HH8MUy~Xm;nJDUXjcTI zjr`_g;nONAIudt;*CJVlUnzhBMy)`*A=;DF3L7jNT7bVt;(>0y@rJ0phg?iw@Ulw0 zuc#-=nrjVLQ%ZigtUF3@&?7@l^A75UkKo?%RDV7eb6joMkDKv7?1b1_=}zVh1~m9ta2#&0 zWHGg4d;F?&`l|T$Jy%_I{vtvuIF`ChOFtfHmu-3cvJS64j`g?@kIQv+F7BR>wh9}P z?n}MH%BSCqyDM+=ffe-&S@Tnj<0#z$lMIhnPu91m78g^wTTYtS2G_zcOsv)yl^m-sd`U#~k=dSAMoheGZS4vmMhs@eG?-edRbn2<*gr92U8Fv;na<>v9<4vRsLPLew3JrnWL(5|&XvX2E zyIAB1+@y~WQVwq3p74D{JfcW0Gd}FU4c-$RzU!`ng&1f@mS&-Ik#`OQu`H5n$O}dO zIhwM#88_GI$8@~b*}E1Ok^lH-r9oXkqU)8Ce$&kdb`^~NZeLMbt#GCc!5afD4l^rs zBZXPI;Lw<&4lf1$7&}oIwp3frs97u@s4O?7Qa)H&ZcF!i@>q803k|YHQxbzZk?K}) zP>`upiN3UStVF#*xv>&dJ<@*ad zlJVEQ`%<~Fus}ozV>(Mm8qFq@wXQ!S3z;hVLS)i_2aDU+Q4>+KJ90>>)AtIpyYM1o zq2BAF_s$itr<3nwezG;Fc7K=|i}&BbFm{mA3S4qbnzhDpBn;K5x@4JtsVFR^EahWfC&WH}7E z%=ec+G@-c~uDKwR#yZ6!bXX*NA@O2G(dExH*32-PhFO9^LVYn!KI~4nfI(o?Hp2n$ zH~gi82M->?{9OvC!1H@|9Yz*_ae|!q!p8azc#Vmt1|@{zD>ymnG0O{0R56UFW*lp6tE z_R$%mQpt{uWh)h<3R6e7D^5lk9aS<;#nw}uuck&P48;5hmI0Wy!8I6rmK90bX}i=H zM6FzZF{Q+`1)d3O5|wJ^i>m2-gZGCU?H0wU7*Jq+02i zzsnC_FZ_eQ;4S$63I8B`4)_S_iCf|%uFTv zL#YVoF&>OKGCW>TgHJ!@^Ybzoul}|-9B=GHehXf1BC&SNDY#B{%yEl$0;yQyC=ce< zCxqU3bZ%=o;o+5?GGpr$OCGy1HYQujy7T~&N)vt-N?lji6YZu9Hd-yRvc+NKlER1N z-AF<}hW1srMUh71$nj13mVRq!$Qq!x{^b@l=av@rO>Ze#L-@DZrg!L;$ghG>Cs`DS zCY*z(cLvBr-2ba0~|FM`*7}1S|1^CL6#Az$ED^NRR!Q04O-UuPH%pfKT#GMCusxzkUB3xjq#V}8e#O*Xy#LcvFdgw*W-_G z#2~{9JxFaNn%HP%2KxFS{8M$r2+r+Vrj*y}$hM!=Q-)wwN$4XH{KYn~su@XrnYetPtI?pE(793ut zp`GVheF^U`(fYj$^c<17&J*Yh-mZo}=W9rlh*$JjjyI4FZ92#>PtBQ>s?m{0q|eLf z-4UV9LoWlLD|B=<5g-n~K{J46pA4w|5KJ(v@B#0XpKM&DX*W?z5gw+GhQC+SHXqbB zuhF!F`}~c^Z_*I2$4V|6IykhQV@A|QtUGEq9A^%BgpKAdv?%nEV+^RUkv)t7tSRm4 zh}0rDHegp^hS$S}z$k=>B&)t;BexTb;%)bacEy7FT7HMC?703AKcu?bx4V-WduRkH zFmPh}`QW7SB(+rjO7C7*KDg-1?wosW)*7~k?F`4lh+?Q(cI8xeJQl&DI^!R+5#ye^ z3t0~EVRr{3^)e1pgKE<>6E-$BL2cFFhS|`2Sl165v|iYovL^c)VmA1g2+bXOb8f+) z-|sq*YxGT8Q_#90gYXxQHOl6EaTYqp8|md3VZ=blT&EeriS<#t!se01f}_ya(N4Ur zDA(Xj7=NWCI1sJ_F|a5}hu5x&n4hluhVEB<4-)qjUhXy=*@wQmpu|HmSDw7xRd-An z==_N#$}tcB%5()~si)ivE^yRCchO^L8X@dGGYrxQ%?i zvN#8`ViCs5C{$R)eCND(=JQKW!l-z%A#90o+<^;$q@Yw4D>-*H7r0uyY~Q}iil=mC z6`TrAy6#zIl@TGsvkz1jkiHz~Fm`)5%jMUj>RfGH7FZU#}_o`L~3)!6roR}q7*Rk4fO)8bO z94QgR46k6o_lT^=j!tHR4wNUvIQ%-ou|WkltOEzFJMb?oc+5I*z`8@R4<5AdSiaWo zUJEu4ZHSy-RQPnw?be;5c&~Nvpmpc>==wW5wEqF-b9m3XxMgU_mDFdqG-DT-7yQO~ zTVofQ7yfL^7W0A&PHf$3UU(t#A?(ip6)g10bogSBq<{@EplSHW$Ug(FxXg)8>ELAZ zr~z1!X5Q{97w?uLx5BDb&1Gh^GO*VebE@fB@uaasjr4#UA=MU>aW>>hn^wm7E?g6v z@okuXf-ez|Bo0Y=fP;cdV%CR^OTMISnEb>5D9(Upd3RviE?~{#iZ&sH4lZ8yD)E!X zMj!3)PBo);;J|?!)Eh}Z7W24_ds|@+BDgcm6f$ig7@(>UMUvDCxae?82#MSYeM(On z`{T-j?r(S1y%#I)*}DJ9PZZ8n+?y-Pk=Qt#JI0C6xpG-{)w#(9878;5&nY>8HDcin zNSe~*q?)UAA6lY`45E8o6*e?UZ&ZH=Kco=TR}Y<}nsxojU+Fz4yB@K5RNR#@*)V#u zAzZaYb)nC|O~bWHs1vlRSFwUTT%%OQKtlj8G#Rn731(Orw5u=M+{%) z;gut&Rdhyp#fppZ5mg>W1}Svyeqr->#|Y^uw90i3F-p>{OS3hw9wdmspRK6)h$RsC zBu(UG(XETGNIrX~7QuuwDd9POxMsYD6U|Ou=8C6Itk~DLgUlrH`=*11+4UQaE!l zd9g?z{5rJfFnz<7XS7NUpD3;ZPTpurmq4FZ=4B1*vJW0_Y=q8&N$JCxJ{>J9My$M0 z@i>N>G_S5gBDuZ^t9+ZD(L_p|;lZqt6a<_Uti-Q38Xf-gUC68i^jV4%LQ;_BPSQFg zX@$5vx&jGoQ?Tb0^@N-9(nX#RkQS}_rWNgt_1h+>hg9fj)W?1RCtSJNjFeWDqs=B# z(pHRN9}U{`$_6CaZ2EOog@6Jm>F|6Uf$;HAKqdS$S_P z{+_60Ct#gfuKP;ai1pbqQ^6@(RN5DF!|SYcPvUV7L1im)Ebbb3{LUQL_!!2)dgKaT zisuJ6r(uu8oGCbkU_6Esfbx2SWSHLzn$%_~Z%5Doo@=DzBl`-^T!r6?6275khIv;= z8c_b78iN(h`C&N{v9NOALxM{bf6!=7<1d*kiJV`@i8d(c8Wb#-WE<|xC`EJlGESj@i)$(*Fq(^6j zc$S*N@$lKPd~Z~BE&Q(#;Sj(`vFS-MPE^A)RSY0%znkbSScRfhC|JdU_0^anEr3m= zZR|0m3c`fLCA`xksuof}v7KL!YPM^skytopY~N0I$IKb8RTC}^6UUUEDcHrLEo!GR zBjhUOVfJFq%z{qH>*!EPxD;s+bcr;ZQi(=ntG|dy@K~HSXQ0SIVu4+fPMRzcd3*y4 z-_pG+h~xKi&_=W3*zdu8F>$<8GsjLxktr5>VncF7+!)3QE(wQ8NDZD#I3Pw63n`Jk zv62`Qx#cP2!uS0-5wZ|=cMqPs2z#r62;3IvsaN9JMZzJ41!;~@Mr)D*1P0cM=U1`B5oD71!Yd-S6EX$II1G*yi>MfV+9L^6mdj1JX&0|I zV6LLRbC9x$qB9OU^F@q!|He2teX_h{OmruYH2dEe5vQihO12sfj^)XN$^Xj_ z5%AcR^W_wer2+H7&g3Cp)txWIS16xNtdk~dJrucNL~p0F@3aqe3@paLJRR}_+h6CBxQuMwKfBLsR}+|NJbL5eFMFks8U@>ttWyN*Vl~g6} zt3yLbzfn}IoW){(D-|`dl?8sVOdUJ#V7V+5Aw^bIS>=X?^ewd*&&07*IbyiUq2Yv! z6d%2n=ow4Lv4n4&a#F`NER}^j-SK);Shed#uy)^+u;NtLl16XbL2i;`I1}(;MY0eY zS_C@;&<-04HqN1y)fRT*h}f1APmkmh*(8q27Q$dqrJ{(KF;4%75_0NC!zctMdANDp z6!t(^rU_I!$fCHMS5==rb5PcBt50jcECNa)wbGYnyJ{q-6 z_*-Qe3yWo)R5uePb|c_g-c7lx9zpcL!e$@XEDqF*ayR7^u(mszpU4cINgLM<6;}@% zkw^wrM6noHGq7V37WUAJaHIjpw20+bgSel7(Ho7%WQqF;9uKOX6_IUYC=xM7Ru|9~ zJhRA0pl6QJ|3`4zS`e&vr@b92Rj6XL)E(Q*;SCJlkt!;UkP(P~c$&jOgp~#eF(Er? z0{Q_G46rENv>j0IsBa9^=j#K8Kib>b)-SC8h390s zq*@WMP)vQ&9bmOXL&oZ9Jwm09UVxHfBehNEG8V@p=7aqrKuJ_DVP6RB^p`@{jIN%a z%H^i!SC5A7&QPHW^@kWN&OBt}Bs`uQk)M7Z`7=&i%@|-FfevJ6lxRduW7nA38LYj= zyu)Wo)IgHnY@HHK6da-n22%p!rBcOEDy8ZQ`8poyYxMOsHqqPNdftmENSTmFd1OM` z$fa|5${X|9Y`!P0W!B%WMp&#EDIW%Rgaio7dBi1u=?~w;R%!3W}cgmOxjUVz?k&l-Qq42YCQ)AziQf<&Ri$&9U?t~6M zV5Qe@yr^7?n}t{*=J=ogkfwb|i@)n#y|2}@*Xr?CyyEWNnzmbm>D_5_5%Wx;TqmrG zrjR!!1jBfqhA;?Jo_QX56nm_~X1i$@c3Tyz;pxwx{P>>2W~*7)Qz0{kbXV}GY*p5-TI(Tkza$df(Z0EtQPB04_7M9N=1AKD@KM!xq^QU*kQ}GqV`e7Ul!w?t90M{cgA_%SSeH_*_`6 zF4mQc^{kXphX)`Xk+Aaf0xkW*R&t^^Nsm!E9=_vQPWg#X@An#X{dJh96h8@TBsVb( zIrKVZD6jl1Vo)zRJ|fW=PEO}4xm-m*MB_n+d-s9vdb5o$IpS6D$1`x;>L>Sx1IO^n z;W9R(yePi=bK!b5y@IXax?>yuq+Z%*t{jSC+SdZoICN4dSiyw=IHXK%Cd{cFmk^1h z?1S-8R9Cp-l}M>uOr^FXHPU11JlH&R+=VjnGBT>t%`~CTF_s}lwRZ@ zOo_0}zs8B&V3gLAVMO8{Phvx`KpZBbo=daz^z#TRX`R8mImnNHMd9KsgG(Td) z`FCb8Hy31ck-pp*I9Y#ha{j!vUSGf7TTyyOt=Y4inC#-d3GC4xhaZsnu+l@uBbG{H zo{>L;dK(ddU%SKdLG}u|!n5z#Ol7&rz5R9^i5#1-q0*tay?^I@_^|1|&3LBJM~2b) z9gHrr3Ra1kL3RwP!!9;e^gx}m14(_NEy0k?0^Wdx6R zcHkjBQ}}W4$nZ{JT!%v&&s(EyZxNh^O&^3kkR)Frwjof$OkyP0QTU2x*CS0VNk?RD z^@KZtb>~=N*@SL_eU|i1ixYakS{pQNEV030!tP01eS{7CCB0&JSd2NNj>Tqm&lpsb z*hK}lgK9?iG;WcGD)P92eO7cELrI@T6y%gIlj6TV#yQ$vhg%U!agyQ`p|4RmGjXs! zjnt|c?alhk$)yQfyF{}lc}&GnmnX5 zWnPcV^D^ud7=kpULnjG`-4|{sO0oi}GfvuzCH?x^oY9c!f0nct(bNo8OR4XCxa*Gh?FzS@VaHgac(e>BV8T)z(beP>3J$XqiRF2V4bj zpe!up!J!}NrszG0lV}y<1Pl#*;(1HEcKJMU&vbEJ`K0e3L`css-t#-t$|dul%&C|y zd99OJ$2R~@KNVWKkd07J)Kr2NW2o5a5Svy6vr{U@OE9a>AoT(y`BUXw<8Eiqp4VFL`liO!1Ja=qdR){f2K4AmBlVc96ZW}TIR9nmu|I8@HL+>1<|GanoMusAj}G>~&8A3Hq` zl!}2mqOQAFxR*bjiLO-#{6azlcdjG`X7p;mcg8xcOovn)N`htO=vi`c&&wFX!tS({ ze9~6f2ch;&yMoZ()oRDVM$V|^=DoQ*pR;S{Y#zp%zW%XvaVBkzu3KGldn;8z0iGG! zeC~{$TUXAEmb|6X>UE=5dZtJlQ|?_h=*9ea7UKw95-LbNOdf$%M>Yy3oLUjuXr3RF zu9R#@2}P+uX^vt4dc)F`iW1Ssu%i_G&WYE%dPJ2}l`FC2>wR4z`U^fxv5FpO#_+O( z7foOvCrlKQObG4C1*p5oZ6bDDufkNdX#o%=F9*}X-@HTb(PPT?7>`O(1?C#9M%<35 zT+cgRt@mo{Ww4V((kBCIgPt?`jJwq-vj+yK1W&kvjZSo>$DC5{*6-F!N$f~Pdmn<= zCQCH#McXLX>MZ)d7oqFH&ZBKvCSd?4=mVHGQV?Jb(`ynoG+D;MB{TLLHcv;3BdOj> z#FKNB{4t{LvTUyu==a+}yqMPI=sN(w)Bb)HhV2cstP07ppJ>^5rhWhFT z+GV#)3Mv>qMh}gkaGfoVQ1%{NNz-)*N^&DD|3VwpR;Ly0QH=E(n0ci@9N=Ca+u$wu zc}$ixEICOltS)P1^_YtH)ddYl3-A>FzT(8lf~@$r2Zw{({Yp_BIEF2OJuGFiVHo<& z#mIyMZ_8rmdoQ+8Rx)F6%H{4K%OR2;s`PjZ_bEuj!k`?&0(7To^iVgvR!1iw1shDK zL|QIXHe{w_e}b28OYkn^)?1C2e`5jK=goZ=?C5vYOjYyU8UE0qKUb^MLvakD8JK-JqFI(Al;r{1s^NZn@0>7|9c4zwl zp?k#e|F03PyfBL!%q6r%U`bPM093m`kn63+%U^EXdfURno}(=D zhtwQWbe5psP#!F$#!%Z)qoCudwm{`v*&156N7`hh-!aid1m-@DC)r9&!Y<|>gZB9LU8SLO+1C~FM4ydX(c@cZXe$Nr8NBo*Eamc?zKy} znrPaU!7u9X75#^;O9jo))?ax3sqt~-Nca5zljGy?sq^tPzeIaZ(89-%d35rROz7fb zUzyYTG1PuLlvGzxra{Xsu}or)lAY*Z2YkJi4v;BJ!zi< znj_2iTzQ{hJ&bSK7&`#VU2)Ha(3IDGZ%8S{&We^|QyaXEf7m_vyg^A9pF4hBjaku8 z15bTa`Dm0WyMm$(3C-@4F#;>i6y(PJ}-yq(eU># zi6sD1CatHi$5t*Vc)cnXHfQB%zv1A2DY0Ww*H6ZRYM@3Ai`4|XJTK=K3hsq++8cu6 zp>fB^!^ATS@xV76Q%O|=&xYa@_81=RcgP zd1TawEpYr4T9C4)hh#Y~$@gQSbzZgLqW*bz&X1!}@=BeOVk;@kXUyMl0ugiU!zhIk z4_21DxVhvZ6#hAk1?i;?e49TBnX&W1=h8 zQ6mF_0(`W+@&D1>dw|E4U3Z?iuc}_EdauH(fKUJmD4>cYh)e|L&|)Wa5}WFl)J;er zPz2Eg0T6*~(vmD2Em^j@TfsJMjb%$7C()KQc6)Yuyy7~`Gvo1)jw5+?W^H<%M%uAw zYz~NrP@G7x1jmCMm+Z znLMz>c%tM-j~av0?%HK)Uj+rY_HzeI3=TPqe1&iM=;y=F@1pNkhDDs4$xulNn=F4p zZ#s?@Cp@CLWg^%)AfG5$C~_4eD*`kw%n8PVCTss5(?D}E8Jtq^YzQxW(1URr>@XMi|c*urR~rB8wzHzW%B)~)Sc z32o~;`-H9%tV|K;>wkyEb&R0UTbrA#B|*SShsFh3#`pCbI`5e1g14TzjnJ%DPt7cH z2k9W`EctD$sH}aBPw%bm&)qtD>CO6YW9*bwN$dGX@g1T6S-=qK!oIFnAVCGXTB6_x zCo(OhAA};T7WizCZw6!GHp~Cn%-meY?o8&hxdLbn(Ux69Ko>u7e^2v3I!B~`CZ8;x zNVK=63@;J%0Sazm@HT8K(V8@gD1RdTh*OS4y<~^!`z?D*X?46jKG~(x>3qAm5Eu{R zY}wr2W+j}Sy$9iLlj#(kXufsJJ}NlYXjKWNfS$@gQw7YHokQb8ov|R+J9%ufH+G}7 zuerIewKUq^K3bx0bq6>7u}YzJ>1e77|BCNSd6;kvbX5~NlH_}4Cg5#3ppIOrZssQ7VZ;8pDm4LPdR4IDpWjT5QZxeUrSC()6Pebr6my7y$R zT%k$YeAQJ*c{4K}F`&C*`dlxWH4zze8NxqXI>PZstY^4(fy}gX)j}x6!%cg2p$BYN z@C%F}`Ohj4~>SL&GHrKJ@J5>%)_Q>93q1s$9g zL`nJO{5vfBLC{p0&#d9=O#1FNkpwp(o$#(Iip_C0-px}{ve7!W#VUP#Q{oDQQozxTx# zPd)pPw0UEVy3Mt98;BT+m@?7~Xx>B+EKFRfwlOR)d+h?w{gb^t6XUn8&CbqRgZm>Km<3eVyKxo0ij1?ph97pSFVa%%hc_OhINkX$tM&dCQPx;2% zzxc(UKIZ@R#KMoNPM5=rF5fn3_P)7JE2` z-*WeuNaCbwQ^a(LoM$3wi#1skFFDDUlSlo=u8DCZz+Y?aOn0>;l;4gTE#K0KBO1Od zX|Lcp$w)Mv1bf8K^>&iIOgY&$;2R!E$5T-mgF@DwFum9fm-z@+CXe&UyYsq-f!T(1{T&dp7u;`c_TCW{VC)b>4Hw5*VcK%%y)tO>#$>*xwRpNCO9 zu$R$Zcb5F&^{BtG;YZhV^Yg*{eAyou@H#Gac>Hv(s+KA1v-Z@K{aI`3r%qgF?DF+a z5^8Y{r$}b4#&cQk0;ol|XhoQ$fIUFk^z_7q5gQMW8;50{$cy4vwY=Yaf6$kVP1z5b z$)hKZpHSYgHRK(ipP&Dgk&!FY>0GOAb$8o#ORnVs)zP8y662BH1+Zu+|D~XPp`D^i zUt7#QeEZN^7DR#*Z+j3Tn2!1-8;R)3ztolK@`n7OB`++Dbsaz6%O?jM-hiWu+0>lX%I%%xbOg(DS1xVpDn7O?c||7M!F8xn(h=G znt)C4hN3Aa0oT5VQmKdbIS(E@XblX!>Xk}fS4qB0w;nX_nh!eDZ$J1i4jNMrd8Mw# z!TK}AUm!*A5&a-z28|YPL7l}2OHV@IsZZU` z5SgFZf2#p75Y}JrE&l)LZB)ZIUT()iXbH#$@1bo=wB6Q28h-Ng)7ncu2pWF!a9VPA zd`=>`{RfwfRPX6x1SmS=ZunFs4aZ3QLfyuM))+;0j`5(Sh&wxNOkW_XuG1TGhrG@m zHl|kcS=&(MypC2F7gt*0mBdi09cP4n2wi7(-gs{?(CSqAyPs5&u8Mi#&nM03qoGaf z(M0MCo<0Ml+n91QS;q^1dcVQcwKcv%o+0EObqtjVRVcN`8r-7%HUJK8l8KQIY8*?z zH9qg$xFK=Kq-v72inf<{;gFVY^P}Gwt975w7xE-t$j?ZY=m|O`_YHp{3KZBYoNI(* zjE#dvj>K;vCm>5tU&5T_zeHt`Wh%oo2+Oxn z8b~~~{O1Ju0G4(On!jKF)%QsNbN$10Ts@V^5O00s#tpnqDnak2mbn_fC!zjDbO~YR z6p@~`D!Nl^aSwN{Z^&)0YqpFTi<};Qw)H&1!s~b7ZOA!5)7SM?T-P)L^5 zYPkYePIyDNh2cUB9T*-$x4(MSu+@!0Lp+bhCs?)FNjOhkUaK}#5u=R)VDsA3j7%2^ zKXW3}l5t`df>AD=>}-9qtuvY4>`FB!Jk}^TkGYG4s&?8-G^ZZ6!DLJ%>Oa3?6DEhi zg}EjcOW}$~(41W;?QYJww(aJccbA?AJ~Po0U!+l!2OruUnph=jE8q>d-%iO+w`;z5W)0{|BkW?;Dr~@&i;+-u4Vf2Hm=Rqs> z2+?@=;BoX|)7hpgO&@Rip{Ac;wAVukuqmU$(O%@t^$EBmaUiB6@Z_l5Qf1~M~+wxL(ES>R^kS3nH?FkIkZoRQ6|#oWO1PsXL{2yviK$Nq5VMHkvEm?d(%c47BIW?r#C_eQ+J%>Cj*u%Yh+F>WoG?-|CKUQh18bVc7) z*4}XawV-D?E&Ft7UWa%Yp^u_LX=s2)$09P!=&Z&pMpQ@B7!rgVHzl8K_#xIZ!?C+U zd*t)=KfhanxP&-4jrn_*5hV6~vCgtein#ppPin*G+hbqwma{0N+rJ9fh|lYV^>-iTUr)dFStXoq53+UVZM|ZmvHRlg+!{7 z`LBmo=(wqkvQ!&%Uu`~MM;|J8U1@hWNja1_Bq+Q@jTtSWKnLT(Y zk^0#FITSA_XrhJSCq+Z^7JOyjIu?y%JtKSZ*iJb~&wYsQ1V-3UG^KJFohJ$tg&i>F zX|K=gdE5(888kG*qk2b!{}Id-lQtjZPGXcs^@>O@WDr#WGxhIC{bVNm;C$6WRc`hSbt=GLV2H z+cx32jKFi4b|b!C3q$?MZTd;DdUlInThK_IfvQ`KnfodQJ^T<3b0+>eLaIivnM0C7 z5+)%dTV$<)-BX9qv#2dO;*{@n;GRH59~MGGuDFaQJIV^}#hDQP?R4Oe2ywtCu1{C- z^k}2j5C|dN^?68rWB5Y0X^+uS9J_MifFN@N0)R-h+OcXvU=Z=fE02-E!6-2HZa!r0 z0^@AdR4dM4@T@i3P4ecxQqVS3iW)#2w)VBCj?tTKyUd54HAl;?v$7eK`Z%Y1)cQ>n zPXId^(b7;GY4Ym201NrFD3$>N!jF~0K_R_iBZ4W_fK91{r73Wx^blcH7725T?69oSEYyrgI1h1CD`23PNf*w!Zh4c692=k7WC5{~5t9@K#N;{7MW=>0yTAM)(0_0E_ zpen*0tFVYt@H)BdW~SZgZO^p#I>n%JFhS;263b6ICyITM{re+*#S_ltS}3 z@6zrd@5lX2Tecoggyd7J{ls`2~jEl7W2X#o$KPI7ha%hVO#CAv(tp%fQ_efJcAh#(nz2US^}^dtE(yoF_|qle*A5{A-5bvmy41l9W9~zNkNVyk)p}$j zE1EgfRdC19sUrr<4pn|>JLsaTI8;<^Lz93r52{!)og@ul0bN@RmL=j7oRW{Curs64 zfgHFO+c6e*ii49w#iCsJLopP09xSoAT-i<(wI!JYNvB9Ez_^!~&ev(Et3+qqO$(qO zl?Z52q9UB3(|XO050*<2BA{DyZS8}DpXk}z7#hfbIX~Ld+}F0JGWJ+od1tvXu3GBt z)C*0xujw(Q#iw{CkE!aQ9vTQFE6Kza?kd1vU~^^(%$gH8enQ?0vd1FS3DppeDV!>d zB8#A2(FYVU^h}wuHA%kFbO3lpGL`ibq+f-UC%lgm@ZnENdHS)*ot}gpyrbLn=%&~OfD~N`*+CxBuOtZ#Vjzd=@qDNc0CbGoq2!{nf zITi|yYAcYl005bGTck<0FqV)37&z!Mn2&c<5GfrzHjpUpFSQOdn`Pq0u7yr*16kj5 zTH0`~voeF>u8EK%`&2Ym+Fwiz96MOT8r(d%uj&PT>Cm}zkc-40-?9h89g~_NgGb?` z=gk{wTtJKvUT{Z_4xt%BEBKQcs_6*7@RvHRH}9e82!f8@CsRUMw{6$8Z;ONX?c10l z5oAKW$mW?dM3`V<5iJTIG%KXyxx1b0ma;(Hag&E!t zfG>AKdN@V4II=%LQ|(D5-hW0!|U_qJOp`H^W9^0BBckW@ehhOY}%-#jJM ze#@)h%nXU;cBuYCDhFj9Y)`d!q}mT0Xis%edv3cTRSxh#)uZ- z#tJB45F0}ARTe3|DCt#-j%?Pxc_#bVfeY>zb3M6S&mQ^8rP@-dwo+R% z*#^iS(R-*Pfkr@;wP?kj`k7KI!9BmWSU;I7K9uC-@CstcolKC<1f0M1?oEFUB?+;C z(DuWM>8FoX|9WaF@x&9Kd-T!7sZ&=Uo{B$_c;cxLCunQkz9BPA>}O#lo}}>+Uqj8q z2%c&Vd)Wc91H2uyg|(({Y5LZt4>J0&^Ae?8mC=q`E1Z$Scotal8g4d-@+{2^QY$w; zf}aQ{j*g&)knmTY{K%` zzl(yfLUKHEFXLEl#a^r?f@FN}-e@e7IOt`f4rqp;f?A|AMwJmUt-T2x3oO_=ixA#) z0!he>PDr$^Wuv6DiH~}3LyNm2`2)Y|_{~Yne0U$a4d1e3kL^kX?P#6MNP8yXl?r&5 z#0Wwq`q#;z{{W3qsei%-DHs%t0?MmG93IiaGbI!8qqYxl9Dq};NvN%WZJs%ULU=m3 zM00CDHvARD)*{%72bkyg)6xtgOE)UM8>|G?!f0Mr@NQP`+$e5MVNake7Jj25vCKJ* ztURK}fwnO*_z(5%_5x}RbV7Dn#d2OeZ>m%ZyCwfIMy3J>#3fM><}8w#@=BCha=cW7!n&9YHJ}#ADBBKLK0?^w7~?mWt}xSU0dB zQPs_>SY0kpP5Fm=s{2wMLAr8iclSXReZ-sc4y96^513|ke;Z=9(=&gNN zZl{RW6$^y6KhP#VMq9#L5U1Hdj^0O`U`o`Z5L$=8T_=6A#%lwFh~P4kpboT|G@-s0 zm4^8Li_iAm8&gl19zbGo*A)MJi7O^@;&W4{U1=HpiNz*kg%eo11_N^5$J0b7;}2e{ zRD%8cFI^`SRlt!Jjdt zWx@}4X`gFdRUtW=lJgD?ejtYvAMyR;#18`LBt}Jsiu{%Df0bmNxJ%raJS<9*!-u`B zQrSMQci8I*D&A%HO!@AP`wIP2w)a$0MzH@3~6+sITQ zszy^U3OfNHmXzOB8c^_4poX$T6a_-qA&cl4@y(Z`)y5#*0@j#lsH{a@S%{|m*uH%+ zKNZatb8OhwsFd4tk(4)L+ll1oLoDd|kV~lZUU!m=y<$rwYergIBW5vHABGX)=jHHDGQ2{YPc!Y^ht6o2Oj-NktZ}{$WPC7a zgvK#YP=91$#BvNZP2d=6GIm7ILCCaTU>m&G1i7eLZjpzz`7&3&8{D|*o}T&~f&XZ3 z7zyykgmoG*&op2CHQZYC=li^#%gp zSM{**4u^w?(KI=E+`Ww{I#GWndKc_!{wth^If+3eqp5M)sgnR^eM-n-Arjcf@pTMDiuC)9X?lP<-D|FW6TTPk@y##!!wkSMe)TPqa~?E z4q00&2%J8SLEk!_8g#B*yE8yErC9x#U^ks{vP#~3<;D%SYu6{Hdy#fud+#1rS{x#f zL0B&73ryZL%NPtkjN}f%M5TDh&is;S1O^ey`L7=(nI><(BAF(6@fF$KXm@!J@gr%2 ziVnz#&}hRvv(w;#j9*N~ri3VrPvk%vkr6#1rbp9am=HuR!W2__T%`sFdV3yoA}iLU z(-jo{X1EYo&slASW5-gta?j9Uq@&PNc(6Bk)rzCpPdSGgWAdYpzQBvs^#Ov-C#bYz@Vj_r)^S`%i8}#yfryFl;C(GhHMVp}p_AW)x+ZVm*$`>oh$|Dp+O(c9)hRCV7bNIZp9CDT#vOs6}` z9hnmXtJBu@>iq&GI*@n)P>)Nn34-c39D5olCg66+Dws}p^mJr09mjz?0ETBrzlv_L z!pu8Fy*2ID^~JVHg+r7@+La@gut7o?|DIY42COiH>I(RmW(c~7Zg<*B{e5*7JXqU( z0R^Oq6iRh1Ug8Jepvs|ah2}Xz6Pu-)vo06J1c4fe7w}5k@DWZIDHmAQ&rnkN=({)_bfYo6BSC zW6LAmr+@4{@9~dBB1bMSkBxPAKS^7Lz9A*Xt>_k+HVy3}3MJGQ5N4~|<@+~&^yMM( zF$y|KBx~QXw7!v`;LdaBIyLS>cpu5bB=^CGv~eF&nc?wNu=a72AN$BtKl-CDzr3xn z+_;!pD!fY+mv2xHu~b2YCJNo6?|k|2YwGcGSPw1cH}tuZ`=`hpgtyUtR=_Xf*Cqb9 zVn&uAH;j6y)GYy{VNY&2FG^AN7jR!7&#HCdZ-k!Q!s zup96oM~UvBK_{xWJF!%DnwNSf-GLzZ zC2GYBCb{9!I5fewNIJ_C+${4qb%eE;L9>bs<0LLPfBxQa>9NQnP(UZ$6r$MF%* zZLJ}!C*@!49Bpy3bN*c0eUtg@L>IC(i3=))LZzVgc1<42uO(JxL-<$dVkF>oE6yI`da7*!;TX5@)soLoef@58S(KhDKy^gQ zKfbc^<9_aX&cBO~5n6-k8%VvdlveaJmD_jGicW5gg%EE**88_LP4kYdMIk?1XJACE zrkg6_9EcrHa>1gu$U|nT2<%(I>u>TjIH1g(&6hx~y>li8NOMN1j7v7%AO`-YY#<-U z3ix_Bai=Ex=#;eV%k11J*a_Hu^f>Od{VxFBJ6O4qQxT0A>ZVZMqoxOEOrYb_h}F44 zq#G`{m^C6W_3TZ#5hItAEzUt^h#1*HQyz&R8TNIa!ju%?IIR{zzKjSyAlop9LF zZH;{=f?)NKWgW85>F?vhxJw-3_vlU1k?~R1v>Vt?aNGeyH+ZQswSpidpj(+wUz+OO zS}%(DjGb(HD?Km}gJH!5X97kVddNZ^VT5Jl&63`PbV#MSO-ApW*=lrx7M11A6?`UG+gyoHG29LkhCTJnMO+oP%Wwn7e@yX|BP zZSAR1ungju$gq)Nr&n*q56JU^Ocd37xHh)IPl<1ptYl*a-Ja+mG&8{b7=(_A3oPgi9sa!cd)nq z$Yb(Ie?aq$A^*{?+O<8h8?Auof43K}&>Im4z=;L}za@X*h*!nPh9VPd+@tLe9NiTy z9X!c*$L^LxS?iH1@7gfl)_RcoHDX4A}_-+fO%i7$MGh0|%@djhXPfLY!b#tD*w8m;yV) zvh|c`xW-!q)xHo(X0Y>O1A_8s9Uum-=^ziRS;d2o#=CkTk~|PpdiVEEg>J6o2iRY^ z{$Sp(RD8H4p-EuQi~pTu9Y3OR5QLUsj>GbXhofkE8~UQqhfyM~#Cr&J(Hp9Y{N~oY z6U}(BOuRQQs>imTwn#3M$wyjxie@Gw`!nqTMcxWQQ76Nnc|;(@yf1i#gpq0?W)t}T zXCh!3H}|whR-?t979-!&5p(0Yw9)oZc=E4=KT8OQT+3^1&GXPV7)sQLq!Ol0^om&7 zGMU?%O>yWW0)wJ>o!-9v&8{8WzE)q*xRglHozKmHQ~1fIA7>6!u=fDJO=?IXE+c|| zBIw^}%_qb=M*?(EQ2~T4^aby91Wz1<3wg*<=rbtiYqqRXE#zgR4;?7V7rb_=+yIqK zCG3!+%9OqdVKPze5ppV>1X-gqp=crX!pntY*pPXgDC$K$T|SQ{23O*aXe>=q@f60~ z2&f#@m|><1gb=O|!f-Dp>iC_@rNfTE65ay0ORl$SPQWDa)Y79@}C4z4nlwF$VWg*p1G z%1N|13 zb+}St&;^{6xKaZm8H+R-&3q{GJ~F)w5@h%^f*1cg%VG@qJIcknZm<_7{u&4LgsPXLj6s`&L^QHu#B9_DN!g zK=Kwp4vbkuw0DBXCA?$#`K?-P^5nh#bEmd$@c_^4AANj#+=|^c!dd|>(xT3rGuguY z4!tRB?aiq-Z>XhGA>S`_QeuO&HUOq>Of=^#D>-4y5pc+>NwT6r^lBCe0K`Pzk!X^e zG)Db;^c$A=F)^{=w$KE?7t(7mgBTCCqKR^&^?<>Ax`ndsI3KH7Y^IrUL0&+?~t%UIc;1S9sG9D9}qmuZz%GS7ITr#j&xhyL%mQ~tt-~*L zNc7SSI-ab(2V{oGG*%WyEGB7YW$G)N$14W3A! zPRrNF_S|1dRgdm{`tU<&Z9<+?9m;VkDol#D7ei=gH_%VJ>1T!ng(b&rjr~J+-#FFoH8n zRVQ8nf&4pMqCGq!c+C_+AVH7mD#AS3GOYN%kC=}TP~ZTp?O|S3>3BThM)NqF z;lAc7Ftb&rHDkt{qp8Avf|rOyQ4t`pl?k}b-a{MlA|PYQyz?VI_Hv2OTTiOGez z%b%XZG7V&#u`k=?#X5scW$MNapckfBR<7eYwYhTU%pL7GH7!D8KoI*q*d2O|hu&SR zy!VbxBo$OGV-sIH6QEF=4$ipO-uAX9-tmriOrJhYsC(*CO1^$%WM<&_*x2xWBej98 zzLtC_k`Gk;1a>onM0GIt?Axe|43WtQP!X#=!E2#+VM z+n9A4kA~lofn0@vGo*{L!KM+Zz2!FM3u(ebg6c~7Dt{_#xOS}lliem}%#c=?LqP-C-BAAx2+1+!A z+3%2BWqKPo;*KkL;}A505I~ek6b@bA2-EvMNP9@@Tkv0OW94NoVgHgyJNy{L#vft} zVLrE{3`4H7qDZ)@|q{O;|(l%Bj#)(31nU=4^f!4ZPurGfK;FUfGO@-qQLMUew+5Zx7$WyCqo zMxqlf?wB7KcKH~ATDkP@Ok%t+NytYW?C0LhTT0G%f&?AII24J#r5xcdcBJE>SS(pW zG3PjHcxcEBf)=-O#P9GWTGNhA7RD3FQU_`$JgZK2*nb<3#QX}ce4-buNF&lVg{u=O zu40&NO;do6!|_?qTaOeYmNsD>WWkhix$_TN88Sf7Q_#(~u;qH;lEUaa`lc~9L)l3D z`ecNL(R`s+11m;^yUXa(vPJz@xF!teXj5i&Vh}@lT1CQTuY9l6wp>mH?8*7D(73{jGhtT)ced7u{-Py4C zW%E=-BjNo>-A^sC!%eLZk2a-!+r+6175_4!~dH%ZX9@hAGECb zaHqJg6>-QG$F;78^BIdN-e-`L9lU3Vo7RlHfrf4CO=&?(YrnO817X>@(WpF;3N$Qs zqs-)Vh}YH|fQT3FBpGT0rmgY2{aogp$Y5cG*?M@q zgd(e&tR@Spb?@-8Wa|NhoIwFLj6lih7A^6oAu$)UHy0PGtAt{Upgg z`Owh6VGqwPsDTGhW|OG{hpHb7AJRGKwHD)D9q9vu1%Fr7&-We(+Dh@Z=F|`zGaqzx zuZ>aJ(xZpdSHu9(ZArww%qdOvnR9xbsZVJUNxnve$sPC3ty{RYO_KGL552E{fnyLH zy<1K&NzwxT2fh12*T<|Ov5bv=5PWQD13?oKMv2#!d|h~kVm`F65i(=MwNZoT(;-+E z&72>B-TCil&G*iDdop`^3x>+3iD#6gGfD5Eh|zm`?X+abFw$)u{z(X5Su|hk`92i_|NSE!)T+NWwfuQxw4-D6wf^vrfXl@HNu7lJ!9(Tpq3`J!Jt6`t z7f5$DN96 zdBWtqL;QnAzF-Mx#(KnmZp(jR1N4lPS&4rK@l?2FlqY^SUX31!NA7bYLvcSg7>V8& ziOrjPEH^iqb<2HS1F`-2GI%y6)e=1uZ;jf;sD;uyp0(X}JAO7r{MA5nfAgckqruuU zlT$N~J=A!&j4C5fJ%Ej638@SzM8bbW?@6>Ie#IKuxk45|T#Y69PxsiwzKPL13JKw1 zh@S=At{tonT#v^p{SMo4 z_zDY;D#@LM-ceA1JrV)v{Eh;SK$4$C4>^`pK6RQ4VwUv|@xy$Fl{DWG2Z+i1k7Kde zSS;l{=cM>;6hCDP@Esx32G2u%8X@x$$j`D9GzA0khx|*1(Hd1gW$!)vh(wwv3DH>8 z$E(VZj!`6Wjv=xQA22;yp>m-XNis=d#~|f+mGFH-V#Gm(FN5qyA_@cLi#33vFPz{L zT}=Ki=qyg*^6xi65qi>2ppafF{ye{H=L;!?4i>d_IgK`;3ObXi7>BCw$oZn+VV%cCKHIVGwv&J)usi zr`5EYRdZ@dtwS5S@f|LVk6A<-BT>U(TG$Lwg~J$)P7I0i+scj)TNQSo3m-Q13Jrr= z?uZmB7`3r*cS1$^nlKBaWP-C$UNLqC6-}jEo8UoueX_DT8xtn5&oOC_5%C+URP%+2?(#^!JX9^*(u=Jd@U-_LAqQT46Q= z0a(oqjSi16f5yhi3do%KKr~|b4+5B|R9ng`6NQDBR77Xz!iUwyNN6Wfjx!{%8Oqod z(kp?jXzoEA5xut}6BY@x$cGWZ*&Y~(STt)DM~d81S#XkII5K0R6v4|Pk)lchRl#l0 z^z$5`%NSzZf$+UnjF)KTO}Qyo%MIjPuGfg@{K}mO>*G9TN~)4I$Y3gU!N-8i15RtR z&yifG&yYkCAaH;hpEgN4?X)!`lOSlBPMp2Cdq>Abw-34jkCb<7iJ5p{w5lr52)qr? zjHnlxl-3_nq*lCepZchcoi^nL3_q@s>PgVERMM0xCKKRTIAqDRJ!k^%<-`s|4UpmG zjesSg<%n1ybWU1S3q6M2f2_+)Bn<;cFq#CA1**ZrNYF;^u<#-B;!-L7plHknp;Q1J zR2DOaG`v)gXCOzhDYzUW2++Db3-m?aO4l)FQ7J`A3-}sRn^_6vVn>O$@Z5A;9D+pp zF0wk(oOIf5?n%p-_*swu#dc$#S7a+D@S5Oqo=5xe78qpsQtA`xQ&c-r;PrURW+UnO zPt$xvROSRcf`uzwYctIMcQ*ZO(`~|$#p_cb*%+N#gAAz;(c#5tZZJjkEWzF?CN5*& z_!x#mW@w}eH4~|*x=$QyLePFDhhV$qvegj^u#_hMQD4ceF*_cO?33(ggF^BpZ77U; z7Ns_~956)oD`257cT2KaMBAK|mDL8|09J|0xHWPlBDvEHZs{92)Ml(k%-0Ex(K7+# z$}RQM!+hle{-Zt{G-T~Up~hx65FI=tTaeYqkmW}INBVj_%8hF{U+5Z% z$@Bk1W*$vRm&mwquxm+#KOGuvw?s8ZPz%r=j?+TV!vK-KPhfv6f)i{<#o`$-?i~r2 zX9-Ez@1ujcgt4gSucYBaY{cJ+8BG8z!%~I{&!YE;a;K-oxWyiNH=Ksj-STYgZR{{S z6!kb8xRMT!YXQuR-4~@cnnuVO+)QpEqYFyF0MCL-A>k6X)PyM~hoTA$`*mQgijOU6J>myR$B7%7GPS(X?{ zJsOY~wg@B@+ocU-%bQ3}BJM{UaB@zP!s-Ed)3yEKg#C35Y6ctFSjg?&N7 z_=kx-dm3u6G_h*2kx4=fak0wBAB3kV6WyMI`0B`Z!l-W59p|85$xb_h*(36 zkVRD?Pffrs98Ttv{QtO_C60-|5oQUP+YH-G_N|$&tkJ8|zMTS6&QG=$0)Kxh8Kj#b z-*ifII^(AwW=Ekl=|_@Q3TF(}8`*t5o=oPG$q%6hCl^jU_eIl(UoxF+Jcg5bCfm!( z6Lr$jM9F$6Q*ul3u52usO2)EXakeI`u6QI3q({W>&5EaGLq-x?ob;JkO?GHks$#sf z3JsC`2fPy}JP;kWp!G-m6Y&$?LAg&|MnLwqkP$N4;~VR;B*L;_!H~$&WTKSB5v1%91L%8Rr`=;D z6XVC)b9>+G9kTP}n1!c0H)gH&cRZcmD3b#i)hlNpGSlW)SkG`gU~+oPnDNXpGknSVT1^e*H$V~C0OfK{$o zzhgg_`Zd=**EkOUBk>ANfoPk@}ocCbuV*D6mS!@K8*diG&xIM8Pb;uGi9;N~tKRe)CxyHFPHRr?zie zsZMaUn-htI5%&`?nk<2aWBXKxQQ~`+nQ(Kc>sgN-eo2k$1g_e##%x)wF&m4TS?dnB z?A2xD+&YCsIVIYAQDS|qbTsRNi|b^MbUET*s}AhP$7j;LJ~`cc3mAlHhl5kjbm)xx z)KmKR+W!5UlCV;`ZhMW}dVaXZS=*J^dNNuUWN4l*j@K9#M!!bFNwxoga^=2VN3uN2 zb+boH?w#K0$xR)`HR;x$>YkB`PVqB|mJ_YorVvg|n4l4Y0~c!QMj5dT)+)Dev;ult z25|WLLN}SxT6ZTZpoXv7*Sbn1IU?sL=>m&RsasNFmhLN&_VWb>@#G|M4>xfyFFn8+ zVRlUSfs&NEOZwz51XH5iWhH9Re(EIp+O!ckC1`iWXVoMf6& zvGUkU0hW<&{7dVeBEFmMF-h*jXMRc9>a3#WXB{*i6IvNefC#q1i{zlhn75(VD#i(EAc&Ytq4q^2BTQpz`ePRV`I7f9iCzSN)4qr}AF4>YdfC z{KiQ}dB1Q?vhYpK;kiLeBVC}s5bXdO+6GTR(~eEI?k-zddjPNz-IbM!Ai8&2Ids6* zp7s#cU7R-RV=DCdN~7ltv6FB)6QB4USi($A6y&%RAeW&XsEz~MoYw_@??o5>LelpW z2p=uJpX|kX828}{RtU?tf4hz~{Pe+JKM81M$oh@E=Fc5m-fjQ%e zGj2HFaw?17Z?KL!3yXq#HSmYjj`7S`XM*XWB$`P<4#rP0CmgM0*{Vv$`|=oUg=AbY z(9ecSLxC?7mEpeXF!XL1j|QO-AN5N8E+~uxC9iYP?d)_1BfE|EVq~{jY&UmB+S?<$ ztYR_8;*^G7k(iqFVIoUof{dndaMY3!Y`&Q!PO#+mm;BNIsE)eO?*?+QwJTCA>f7kj zB?LEx$b+QAy%G>Q5$qi|W&==ULqrjMqGureb$gBI^iJUC|4uxy&PncXuz$2bdelH% z?Y71ykRN$jfUe5j+E2q0L08~m@eF{}hnYM?TJ5gD0<)BlYEUe+X;63o@(9KKMg?Gv zl~+^;;@kmxTciyU2o(zMkqC51dgL-kTtOH@Ou@n2LJI(l zQD~-af1|SSG;Eq&o$}gv3>*=LOWP#B8ul)l#v&M@A4cJw%WE!A8e-diAb5 z>fi4jYxU~gSsxxg<7DW5|9Gocr+$>1u5HEhhIFtVKP903_3w((X<%6y}d~P4|A`#B7_iVH` zs83O;V3eujwP4 z3MPC%Mo=vuAnH_e_te4#9!zwShU)`5O!&#xRtDDU-sXwD=A8N!E)I*-Yg^vZzLeo| zCI*Qy1`j+1-#P?-e)2klg%on!|MM;kHv{998x8s>>sW}nI)uIBn9N2QdW=HuB)0jS zHeO<74tH^T{AIK{4pTk4aik+0-^7cG5g}ImQ=x~zb=FZzowAjA80gyo5UxJ)X)nyIgO=4`}H{zbk4FOahwo z(M7STsHVCfTd`9BsGesOzCyTf?qS}zys*H}h$4B+{G;#Dq zOVsCc(|e_uijUZZ4JX?#ySB$!t%mB@qYME_F1WPBdrpEqmfAk3g$pdYTXz z@|vf;_E@wPAFvAgG@w)6wBMHe{`<0R&8?jWeJ@kUrGspJ4G>?{P^Z?^V8&$B%J|hI zS3)HDFmA;j{)HDZ!qRW~VYEUu2Z|JY(F}@AbeLLE z3}XcUGL5#?Brlhp0W~$|c)qxT0j$GPAN}`|E8;y>e|+4ptbRpXLL!l@gs71*4ASCe zFpyZoR=gA5LR6z-8-e%An>@;h46LL61sgDxvMhYO&~>5*b#Y*VTL6vx-AMgLEQe(l z8%o-D#dMSwmdY>*@^~}@{!Y~!$M+uTE~L%9*dTh479L?H3K7)8FA!IL6kc*52EMVj zFJO>^CZc?#iHYfp7LLRSLlYBuQgs?f)%V%Nd00dg6%z4y(9+qJCJv^%qcw2j&H0?0 zX#G%bcgD%*Nin@U?-KLUk(4OB3^~*7w-#;N=mFFB8MRkl2a}Sa9?n7;~@phSi2C25AE#CDMoHp&6>6DC;PBF?Wm?@|K8GoU+vpdGO_QI}jZF z&D$aEz8l_7_&oI9j0IgVVoAma+l(DQX?9TJ{~Nav2DLYCBs1Z|!K18~M*vJLoH!~o z;cq2G$i{-fK%J2%F+lDeBTxRrTaf5mq$*f1&3z%Y;MDa0xQ!mLqGSiLdwXs9wU8^{ zaJ+o8wusx6ioR3*w?X5Pr#tWu?Zg8HzjAC<7Rw93hFH&lSebyR)N_l8ak{b8LZtp! zd5I_d$BPf{4~j=07@A9WCRD<&ht8iQ`9&r8`D`Wixc@}K=sS6$oEUq*#~I|XlmPqw zYC({1wTsXeeGThT{^s=%U!^yEe)E|#Z~X8xqT6Uf|~Y_h*vFT2o}fqGfumrwC_SOeJOcwEy&P|t^?fm-s%7MW_Iit3?xI8ese6eY^ zX}M{xX+i%k@lv&>`KFDgML+{rzv0-uXFkQ5tGw(2*Dp1dVBZHY3EX?mX_VSEjy3LH zLiClh*V!kfReqo1=o(L);h7~InAa&weU{m}kMB9|aGt&EO)E_YSZD{g?os24Ma~$| zPrWF;u6a>@^?a8d_kPs(BkhWW%esO#&Q^|cRa_;M2Pcvw&t+O=h;zs)0(9|bfo)?B zwSfg82}(OvNp-1iRaQN!S5J(v{0qhMYQsv$M3M%1XgD=gy)VtM;I;&>YoT{mFYF?dJ3+g#_K`p9_YDq1t6?I9isx`H)Hq>Qx zMLn;ss%z?7)O*x>)%(=9s`smJQ{S#O)eGta>VxV#)Q8k}s_#-C#vS4%^|Jbi`l$Mt z`ndXT^*!o))phlKwALroKTU`n39C^^et$s2^27rhZ)gg!+uSp?*^R zl=`gtY4thvPt?z-pH;7@pHu%-{ZHzjsaMrMS3j@*XZ3k?Q~fXM7t}ARUsAuUentJN z`Ze_h_3P?isDG*cmHG|!uhnm=f1_@x+v>N}Z>!%?zpH*v{l5CQ>Wk`2>JQYvQ~#^_ z_v$~W|4sd&`XhBm{jvJr)t{(8Rez@bT>XXmkLt_nE9(DH|4IF&`YZLH)qhcct^P*c zRe!7gtNL&1zpMYDzN-FD^?#|asjsWQGn!aY#kQgS88H9aI5oLO+(;On;TuUKWuy%Z zqed2kY~Cms%|?sSYP1VZ76L#(35^V@w>7-x-HW6r1<=Ztyd zys=0d_4T4$7!S|VSER!7+Qpg0Mg5$6 zcF5WF2Zv|qYy6$pY&~S{%FK!#9@$t)%v{@8rQ)^A%PVU!y%9glOV?KW*VdO;%&=^q zg@*Ff^{5o0XO|b}_*%YT%h$!3)eG^nt246~YU^^2*C^L$rB&zb>O$?@?95t?((=q4 zrFDzam9^SxumNd0Kzom+Sl2YD;Si^i0i} zJztx>(9iiXT?)4s7uMDjY+qhoUeYbJwIQwJHIC?(aT{B-!0h?e<%_lc*~R6xTC%=z zapw7jiwoDbw-=W5wqHNKTBCJVYhJzI&n+x2*5-ox7Ax3%tv}qCy=Ncqv$(KS^Xoh7 zn~D17+TzUGd40=`g>^>P%<7!OsG3=oH#KJ$7gkoTvV&@duP!B@?TtD8x{I`KBHY|q zk&T$%h_Yzb60^&Ti!&?Xl`b30tNj<*Z_(OksZoaCi?t>CZ((hAV@=juIV8J$ephDJ z*826VsKpzb^t7BJhj_%w)%fgcZH{`+Qtjv*Z{o<8ehYhUW_{+Y41u{CT`sjxHcIRL zdcbZSS+9miwx?b{D?K-+N;8Z78%vjKs|)8AYIDUmIesWizOb~x zgt$mc`dg>yom-o<)69G=6&{stU0zzM&8}y{9Wo62&tC19-*~udWoBcoQC_XBZY%}i zei`dCtLy#eR%b5O>J_T*%Qw#8VT`Rt#R}nWE}Oleud0uodi{6oXAsqExV^Jp9sSVy zFj-r#t@NMeZacT3%FFe))yJ7lI}a~YC$~|N<&~H&^02iF(6y}z!#iGHn5F8x+v-gJ z<%PN0GVi!!Ut{ay^4W#Onme~}?p!}>L2WLfiwpBh5CS?%_A{mQ*bEP?)-FKj*Bx_c>^2zy0Eggu$HJ@Tv@-`e`R5bMIo+9Y1rQ}UAAh^ z&n|Av)!f?iD>F-TnnF-y(6DD+2qiD zx!2hbN3dSYzvle8)tPhasc+ovvE%&4S^WabOHvKJwYZ+F7Z-$_G0)9#J2t<#e75G! zFZZu6OFPx9`PG@TXBo)+uAJ|eg{)Cz;(Fm;#?m?s8`E1{!8%b}P0z0`Z!l@D@=E9W z*RQVBV&`d_b?ZFsLZ3y?v*;zyFRw0KgPcHFSLxpv)mvVVEi9c~e%@r{LH?r)OXrrY zg{8F>`Z~U_wg%nNFYAZp)mps+^yZqmz`Yh`&F6$5T#Y`rw!GwDsGXfT+b=J=z#1R9 zP`esgoVnsL;5n(@xo&+6f?$TlLO3D9;|uFo&$156`!~PN{*b4tADE@qHKwFr-)0fp z;NqaZ$#khL_J=2B@7ed<#@hPAxvS}WcFH3&_w3OROYGd$xb+&;qfyPqtsDFFRjK+_ z(6;rBHBOaxW!78uF`Zr%=J4#sB12|lefiwN^Ul^DPtQ4-+^Z~vQQ3+M%Om52eVi!e z#hLYlE-kMzbEFZ%X|PD|K@!5V)>mt_@W2MdOP}X1!dLaLoo8BD!aKlp*^A2zEG}{> zTnLFzREp-snfayKx^r=6K_<-1TvST7@PWd>Iu~p64A$kPnkD=LH;76X#Pm#aE($4F z=b(9ULHNVOMQ9dXs~Lr;5X{uYjm7na6)03l{MMouH`Z(RQtgVK60R=j*=|vk1T6dL%d7JzZ`P z3VpHyrDO%QS7umgW@nb-nhOf4S5(R_(~R*gtAQC7os|U$E{(VzSy@<0@CRuUI=Oz; z3^(Fb=W2h*@I|G}*T%d@J>ZAw0bz8ldaY6`t1z9y@b<4=+K`@ESzUgPj*LO7)@rt< zR5Wkw(gtrAU!~WCa9m+9&?~yX*W!?9y11W72LxnT)@*|rZbTU)%Pu5>!Ll@4TeB!q zm-DgJ+I;Q#q%2{`L98rrjI~uRl5PESnJ3nG0~SxX5U$f@u3K5W$_-bRg@!KGxCKRY zG@Q4xv36cA(%Tnmb5xVE(A`F9?K~A)S>^$z9SfZfu!r=ND>=bJiN%1R{{Fe;J16noO6g$u$~7#_DVhk~~}U*OoV=J%!&|U0zJB ztt_&BZPRi;+|i)8Hlv5RR$Fw1r|Q>?g`N_&x&EWTq`n0cBwi-7PCTxwFO&f+UNX-x^ zW*aqUIIYgGJ~qyWPv8n3+&F>$x!Snd+LElj>y2uxt*_G8ja#v`F}sem z-MH1|nbn1vvx_xuwKUsbXC$Mt5kp*BtVPym=1qERzP4_!&#YY#QtqJ5tij8#)I2JM zq|C~VWOY8VwKaQjF1fYAdbBXJ(HvGf{Fh(mfE z+gOs7#oZR|{6?4b>uZwCAkELq!UNB0H@2mqIc(?h#RdaIsV-u<6q&qwWugeBSz;I% zmoG-Iz^YqUW>#f8c4cOL_Pl%L{K9%TA}KPx`ehuO;mYSox&I2RUz*YdJ#PCMMTk3d hJN9fWU09;+gY9$Zv+ykI+Vb*6p(y&7N@*qW{|!uD4rBlT literal 0 HcmV?d00001 diff --git a/src/main/resources/static/assets/common.6565cdd3.js b/src/main/resources/static/assets/common.6565cdd3.js new file mode 100644 index 0000000..5c2b117 --- /dev/null +++ b/src/main/resources/static/assets/common.6565cdd3.js @@ -0,0 +1 @@ +import{e as t}from"./request.19cbe8c5.js";import{aq as r}from"./index.bbf7818f.js";const s=e=>r.get(e,{withCredentials:!1}),i=e=>t({url:"/api/parse/content",method:"get",data:e});export{i as a,s as g}; diff --git a/src/main/resources/static/assets/common.a295a3b6.js b/src/main/resources/static/assets/common.a295a3b6.js new file mode 100644 index 0000000..0d6df95 --- /dev/null +++ b/src/main/resources/static/assets/common.a295a3b6.js @@ -0,0 +1 @@ +import{a as r,b as t,h as o,$ as n}from"./index.bbf7818f.js";function i(e,a){return r(),t("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"2",stroke:"currentColor","aria-hidden":"true"},[o("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z"})])}let l={getServerBaseUrl(){return n.baseUrl},isEmpty(e){return typeof e=="undefined"||e==null||e==""},isNotEmpty(e){return!this.isEmpty(e)}};export{i as r,l as u}; diff --git a/src/main/resources/static/assets/common.d0a2bd7a.js b/src/main/resources/static/assets/common.d0a2bd7a.js new file mode 100644 index 0000000..50e8d1c --- /dev/null +++ b/src/main/resources/static/assets/common.d0a2bd7a.js @@ -0,0 +1 @@ +const a="zfile",u="4.0.0",d="ZFile \u6587\u4EF6\u7BA1\u7406",f={dev:"vite",test:"vitest",build:"vite build","dev:host":"vite --host","dev:open":"vite --open",vis:"set vis=true && vite build",preview:"vite preview","deps:fresh":"npx taze -w",coverage:"vitest --coverage",analysis:"npx windicss-analysis",typecheck:"npx vue-tsc --noEmit","deps:fresh:major":"npx taze major -w","deps:fresh:minor":"npx taze minor -w","deps:fresh:patch":"npx taze patch -w","preview:host":"vite preview --host","preview:open":"vite preview --open","auto:create":"plop --plopfile scripts/create.js","auto:remove":"plop --plopfile scripts/remove.js",tailwind:"tailwindcss build src/styles.css -o public/styles.css",lint:"eslint --ext .ts,.js,.jsx,.vue .","lint:fix":"eslint --fix --ext .ts,.js,.jsx,.vue .",prepare:"husky install"},v={"@element-plus/icons-vue":"^2.0.6","@headlessui/vue":"^1.6.5","@heroicons/vue":"^1.0.6","@kangc/v-md-editor":"^2.3.15","@soerenmartius/vue3-clipboard":"^0.1.2","animate.css":"^4.1.1",aplayer:"^1.10.1",artplayer:"^4.5.2","async-validator":"^4.0.7","beautify-qrcode":"^1.0.3",dayjs:"^1.11.3","element-plus":"^2.2.8","file-saver":"^2.0.5","flv.js":"^1.6.2","github-markdown-css":"^5.1.0","hls.js":"^1.1.5",less:"^4.1.3","less-loader":"^10.2.0",marked:"^4.0.17","masonry-layout":"^4.2.2",minimatch:"^5.1.0","monaco-editor":"^0.33.0","path-browserify":"^1.0.1",prismjs:"^1.28.0","script-loader":"^0.7.2",sortablejs:"^1.15.0","v-contextmenu":"^3.0.0","v-viewer":"^3.0.10",viewerjs:"^1.10.5",vue:"^3.2.37","vue-masonry":"^0.15.0",xlsx:"^0.18.5"},m={"@iconify-json/ep":"^1.1.6","@intlify/vite-plugin-vue-i18n":"^3.4.0","@tailwindcss/line-clamp":"^0.4.0","@types/ityped":"^1.0.1","@types/node":"^17.0.35","@types/nprogress":"^0.2.0","@typescript-eslint/parser":"^5.26.0","@vitejs/plugin-vue":"^2.3.3","@vitejs/plugin-vue-jsx":"^1.3.10","@vueuse/components":"^8.7.5","@vueuse/core":"^8.7.5",autoprefixer:"^10.4.7",axios:"^0.26.1",c8:"^7.11.3",eslint:"^8.13.0","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.0.0","eslint-plugin-vue":"^9.0.1","fast-glob":"^3.2.11","fs-extra":"^10.1.0",husky:"^8.0.1",ityped:"^1.0.3","lint-staged":"^12.4.2","local-pkg":"^0.4.1","markdown-it-anchor":"^8.6.4","markdown-it-prism":"^2.2.4",mockjs:"^1.1.0",nprogress:"^0.2.0",pinia:"^2.0.14",plop:"^3.1.1",postcss:"^8.4.14",prettier:"2.6.2","prism-theme-vars":"^0.2.3","rollup-plugin-visualizer":"^5.6.0",sass:"^1.52.3",tailwindcss:"^3.1.4",typescript:"^4.7.4","unplugin-auto-import":"^0.8.7","unplugin-icons":"^0.14.3","unplugin-vue-components":"^0.19.6",vite:"^2.9.13","vite-auto-import-resolvers":"^2.3.0","vite-plugin-compression":"^0.5.1","vite-plugin-inspect":"^0.5.0","vite-plugin-md":"^0.13.1","vite-plugin-mock":"^2.9.6","vite-plugin-pages":"^0.23.0","vite-plugin-removelog":"^0.0.4","vite-plugin-restart":"^0.1.1","vite-plugin-svg-icons":"^2.0.1","vite-plugin-use-modules":"^1.1.0","vite-plugin-vue-meta-layouts":"^0.0.9",vitest:"^0.12.9","vue-i18n":"^9.1.10","vue-request":"^1.2.4","vue-router":"^4.0.16","vue-tsc":"^0.33.9"},y={peerDependencyRules:{ignoreMissing:["rollup","markdown-it","@types/markdown-it"]}},g={optimizeDeps:{include:["@element-plus/icons-vue","@heroicons/vue/solid","@vueuse/core","axios","element-plus","element-plus/es","element-plus/es/components/button/style/css","element-plus/es/components/form-item/style/css","element-plus/es/components/form/style/css","element-plus/es/components/input/style/css","element-plus/es/components/loading/src/directive","element-plus/es/components/loading/style/css","element-plus/es/components/message-box/style/css","element-plus/es/components/message/style/css","element-plus/es/components/notification/style/css","ityped","mockjs","nprogress","pinia","v-viewer","vite-plugin-mock/es/createProdMockServer","vue","vue-i18n","vue-masonry","vue-request","vue-router"]}};var h={name:a,version:u,description:d,scripts:f,dependencies:v,devDependencies:m,pnpm:y,vite:g,"lint-staged":{"*.{js,jsx,vue}":"eslint --cache --fix"}},x=["icon-401","icon-403","icon-404","icon-add-file","icon-add-folder-back","icon-add-folder","icon-add","icon-admin-login","icon-aliyun","icon-baidu","icon-card-layout","icon-copy","icon-delete","icon-download","icon-edit","icon-empty","icon-file-type-apk","icon-file-type-archive","icon-file-type-audio","icon-file-type-back","icon-file-type-css","icon-file-type-deb","icon-file-type-dll","icon-file-type-doc","icon-file-type-document","icon-file-type-docx","icon-file-type-exe","icon-file-type-expression","icon-file-type-file","icon-file-type-folder","icon-file-type-html","icon-file-type-image","icon-file-type-java","icon-file-type-js","icon-file-type-less","icon-file-type-md","icon-file-type-office","icon-file-type-pdf","icon-file-type-php","icon-file-type-ppt","icon-file-type-pptx","icon-file-type-py","icon-file-type-rb","icon-file-type-root","icon-file-type-rpm","icon-file-type-rust","icon-file-type-script","icon-file-type-text","icon-file-type-vbs","icon-file-type-video","icon-file-type-xls","icon-file-type-xlsx","icon-file-type-xml","icon-file-type-yaml","icon-file-upload","icon-files","icon-ftp","icon-huawei","icon-img-disable","icon-img-enable","icon-info","icon-install-step","icon-link","icon-local","icon-login","icon-minio","icon-move","icon-new-folder","icon-onedrive-china","icon-onedrive","icon-preview","icon-qiniu","icon-reset-password","icon-s3","icon-select-all","icon-server","icon-settings","icon-sftp","icon-sharepoint-china","icon-sharepoint","icon-success","icon-table-layout","icon-target","icon-tencent","icon-test","icon-tool-close","icon-tool-close2","icon-tool-delete","icon-tool-download","icon-tool-edit","icon-tool-link","icon-tool-move","icon-tool-preview","icon-tool-setting","icon-ufile","icon-upload-1","icon-upload-folder","icon-upload","icon-upyun","icon-warning","icon-webdav","icon-zfile-basic","icon-zfile-horizontal","icon-zfile"];const s={image:["gif","jpg","jpeg","png","bmp","webp","ico"],video:["mp4","webm","m3u8","rmvb","avi","swf","3gp","mkv","flv"],audio:["mp3","wav","wma","ogg","aac","flac","m4a"],text:["scss","sass","kt","gitignore","bat","properties","yml","css","js","md","xml","txt","py","go","html","less","php","rb","rust","script","java","sh","sql"],executable:["exe","dll","com","vbs"],archive:["7z","zip","rar","tar","gz"],office:["doc","docx","pdf","csv","xls","xlsx","ppt","pptx"],document:["txt","pages","epub","numbers","keynote"]},w=["image","video","audio","text","office"],l=[];x.forEach(i=>{l.push(i.replace(/^icon-file-type-/,""))});let b={responseCode:{SUCCESS:0,FAIL:-1,REQUIRED_PASSWORD:405,INVALID_PASSWORD:406},version:h.version,constant:{fileTypeMap:s,iconFileType:l,previewFileType:w},openPage:i=>{window.open(i)},fileSizeFormat:i=>{if(i===0)return"0 B";let e=1024,t=["B","KB","MB","GB","TB","PB","EB","ZB","YB"],o=Math.floor(Math.log(i)/Math.log(e));return(i/Math.pow(e,o)).toFixed(2)+" "+t[o]},fileSizeFilter:(i,e,t)=>i.type==="BACK"?"":i.type==="FOLDER"?"-":t===0?"0 B":b.fileSizeFormat(t),getFileIconName(i){let e;if(i.type==="BACK"||i.type==="FOLDER"||i.type==="ROOT")return i.type.toLowerCase();{let t=this.getFileSuffix(i.name),o=this.getFileType(i.name);l.indexOf(t)!==-1?e=t:o?e=o:e="file"}return e},getFileSuffix(i){let e=i.lastIndexOf(".");return e===-1?"other":i.substr(e+1).toLowerCase()},getFileType(i){let e;for(let t in s){let o=this.getFileSuffix(i);if(s[t].indexOf(o)!==-1){e=t;break}}return e},removeDuplicateSeparator(i){let e="";i.indexOf("http://")===0?e="http://":i.indexOf("https://")===0&&(e="https://");for(let t=e.length;t \ No newline at end of file diff --git a/src/main/resources/static/assets/cpp.337468ce.js b/src/main/resources/static/assets/cpp.337468ce.js new file mode 100644 index 0000000..b6902ff --- /dev/null +++ b/src/main/resources/static/assets/cpp.337468ce.js @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.33.0(4b1abad427e58dbedc1215d99a0902ffc885fcd4) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/var e={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*#pragma\\s+region\\b"),end:new RegExp("^\\s*#pragma\\s+endregion\\b")}}},t={defaultToken:"",tokenPostfix:".cpp",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.angle",open:"<",close:">"}],keywords:["abstract","amp","array","auto","bool","break","case","catch","char","class","const","constexpr","const_cast","continue","cpu","decltype","default","delegate","delete","do","double","dynamic_cast","each","else","enum","event","explicit","export","extern","false","final","finally","float","for","friend","gcnew","generic","goto","if","in","initonly","inline","int","interface","interior_ptr","internal","literal","long","mutable","namespace","new","noexcept","nullptr","__nullptr","operator","override","partial","pascal","pin_ptr","private","property","protected","public","ref","register","reinterpret_cast","restrict","return","safe_cast","sealed","short","signed","sizeof","static","static_assert","static_cast","struct","switch","template","this","thread_local","throw","tile_static","true","try","typedef","typeid","typename","union","unsigned","using","virtual","void","volatile","wchar_t","where","while","_asm","_based","_cdecl","_declspec","_fastcall","_if_exists","_if_not_exists","_inline","_multiple_inheritance","_pascal","_single_inheritance","_stdcall","_virtual_inheritance","_w64","__abstract","__alignof","__asm","__assume","__based","__box","__builtin_alignof","__cdecl","__clrcall","__declspec","__delegate","__event","__except","__fastcall","__finally","__forceinline","__gc","__hook","__identifier","__if_exists","__if_not_exists","__inline","__int128","__int16","__int32","__int64","__int8","__interface","__leave","__m128","__m128d","__m128i","__m256","__m256d","__m256i","__m64","__multiple_inheritance","__newslot","__nogc","__noop","__nounwind","__novtordisp","__pascal","__pin","__pragma","__property","__ptr32","__ptr64","__raise","__restrict","__resume","__sealed","__single_inheritance","__stdcall","__super","__thiscall","__try","__try_cast","__typeof","__unaligned","__unhook","__uuidof","__value","__virtual_inheritance","__w64","__wchar_t"],operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/,"number.float"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/,"number.hex"],[/0[0-7']*[0-7](@integersuffix)/,"number.octal"],[/0[bB][0-1']*[0-1](@integersuffix)/,"number.binary"],[/\d[\d']*\d(@integersuffix)/,"number"],[/\d(@integersuffix)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@doccomment"],[/\/\*/,"comment","@comment"],[/\/\/.*\\$/,"comment","@linecomment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],linecomment:[[/.*[^\\]$/,"comment","@pop"],[/[^]+/,"comment"]],doccomment:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],raw:[[/(.*)(\))(?:([^ ()\\\t"]*))(\")/,{cases:{"$3==$S2":["string.raw","string.raw.end","string.raw.end",{token:"string.raw.end",next:"@pop"}],"@default":["string.raw","string.raw","string.raw","string.raw"]}}],[/.*/,"string.raw"]],annotation:[{include:"@whitespace"},[/using|alignas/,"keyword"],[/[a-zA-Z0-9_]+/,"annotation"],[/[,:]/,"delimiter"],[/[()]/,"@brackets"],[/\]\s*\]/,{token:"annotation",next:"@pop"}]],include:[[/(\s*)(<)([^<>]*)(>)/,["","keyword.directive.include.begin","string.include.identifier",{token:"keyword.directive.include.end",next:"@pop"}]],[/(\s*)(")([^"]*)(")/,["","keyword.directive.include.begin","string.include.identifier",{token:"keyword.directive.include.end",next:"@pop"}]]]}};export{e as conf,t as language}; diff --git a/src/main/resources/static/assets/css.4c22ed20.js b/src/main/resources/static/assets/css.4c22ed20.js new file mode 100644 index 0000000..f3ea02c --- /dev/null +++ b/src/main/resources/static/assets/css.4c22ed20.js @@ -0,0 +1,8 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.33.0(4b1abad427e58dbedc1215d99a0902ffc885fcd4) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/var e={wordPattern:/(#?-?\d*\.\d\w*%?)|((::|[@#.!:])?[\w-?]+%?)|::|[@#.!:]/g,comments:{blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*\\/\\*\\s*#region\\b\\s*(.*?)\\s*\\*\\/"),end:new RegExp("^\\s*\\/\\*\\s*#endregion\\b.*\\*\\/")}}},t={defaultToken:"",tokenPostfix:".css",ws:`[ +\r\f]*`,identifier:"-?-?([a-zA-Z]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*",brackets:[{open:"{",close:"}",token:"delimiter.bracket"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],tokenizer:{root:[{include:"@selector"}],selector:[{include:"@comments"},{include:"@import"},{include:"@strings"},["[@](keyframes|-webkit-keyframes|-moz-keyframes|-o-keyframes)",{token:"keyword",next:"@keyframedeclaration"}],["[@](page|content|font-face|-moz-document)",{token:"keyword"}],["[@](charset|namespace)",{token:"keyword",next:"@declarationbody"}],["(url-prefix)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],["(url)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],{include:"@selectorname"},["[\\*]","tag"],["[>\\+,]","delimiter"],["\\[",{token:"delimiter.bracket",next:"@selectorattribute"}],["{",{token:"delimiter.bracket",next:"@selectorbody"}]],selectorbody:[{include:"@comments"},["[*_]?@identifier@ws:(?=(\\s|\\d|[^{;}]*[;}]))","attribute.name","@rulevalue"],["}",{token:"delimiter.bracket",next:"@pop"}]],selectorname:[["(\\.|#(?=[^{])|%|(@identifier)|:)+","tag"]],selectorattribute:[{include:"@term"},["]",{token:"delimiter.bracket",next:"@pop"}]],term:[{include:"@comments"},["(url-prefix)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],["(url)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],{include:"@functioninvocation"},{include:"@numbers"},{include:"@name"},{include:"@strings"},["([<>=\\+\\-\\*\\/\\^\\|\\~,])","delimiter"],[",","delimiter"]],rulevalue:[{include:"@comments"},{include:"@strings"},{include:"@term"},["!important","keyword"],[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],warndebug:[["[@](warn|debug)",{token:"keyword",next:"@declarationbody"}]],import:[["[@](import)",{token:"keyword",next:"@declarationbody"}]],urldeclaration:[{include:"@strings"},[`[^)\r +]+`,"string"],["\\)",{token:"delimiter.parenthesis",next:"@pop"}]],parenthizedterm:[{include:"@term"},["\\)",{token:"delimiter.parenthesis",next:"@pop"}]],declarationbody:[{include:"@term"},[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],comments:[["\\/\\*","comment","@comment"],["\\/\\/+.*","comment"]],comment:[["\\*\\/","comment","@pop"],[/[^*/]+/,"comment"],[/./,"comment"]],name:[["@identifier","attribute.value"]],numbers:[["-?(\\d*\\.)?\\d+([eE][\\-+]?\\d+)?",{token:"attribute.value.number",next:"@units"}],["#[0-9a-fA-F_]+(?!\\w)","attribute.value.hex"]],units:[["(em|ex|ch|rem|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?","attribute.value.unit","@pop"]],keyframedeclaration:[["@identifier","attribute.value"],["{",{token:"delimiter.bracket",switchTo:"@keyframebody"}]],keyframebody:[{include:"@term"},["{",{token:"delimiter.bracket",next:"@selectorbody"}],["}",{token:"delimiter.bracket",next:"@pop"}]],functioninvocation:[["@identifier\\(",{token:"attribute.value",next:"@functionarguments"}]],functionarguments:[["\\$@identifier@ws:","attribute.name"],["[,]","delimiter"],{include:"@term"},["\\)",{token:"attribute.value",next:"@pop"}]],strings:[['~?"',{token:"string",next:"@stringenddoublequote"}],["~?'",{token:"string",next:"@stringendquote"}]],stringenddoublequote:[["\\\\.","string"],['"',{token:"string",next:"@pop"}],[/[^\\"]+/,"string"],[".","string"]],stringendquote:[["\\\\.","string"],["'",{token:"string",next:"@pop"}],[/[^\\']+/,"string"],[".","string"]]}};export{e as conf,t as language}; diff --git a/src/main/resources/static/assets/dayjs.min.b4bc51d5.js b/src/main/resources/static/assets/dayjs.min.b4bc51d5.js new file mode 100644 index 0000000..66a38ff --- /dev/null +++ b/src/main/resources/static/assets/dayjs.min.b4bc51d5.js @@ -0,0 +1 @@ +import{M as P}from"./index.bbf7818f.js";var z={exports:{}};(function(V,Q){(function(A,T){V.exports=T()})(P,function(){var A=1e3,T=6e4,U=36e5,j="millisecond",p="second",S="minute",w="hour",M="day",b="week",l="month",F="quarter",y="year",O="date",J="Invalid Date",q=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,B=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,E={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_")},k=function(u,e,t){var r=String(u);return!r||r.length>=e?u:""+Array(e+1-r.length).join(t)+u},G={s:k,z:function(u){var e=-u.utcOffset(),t=Math.abs(e),r=Math.floor(t/60),n=t%60;return(e<=0?"+":"-")+k(r,2,"0")+":"+k(n,2,"0")},m:function u(e,t){if(e.date()1)return u(i[0])}else{var a=e.name;D[a]=e,n=a}return!r&&n&&(Y=n),n||!r&&Y},c=function(u,e){if(I(u))return u.clone();var t=typeof e=="object"?e:{};return t.date=u,t.args=arguments,new W(t)},o=G;o.l=L,o.i=I,o.w=function(u,e){return c(u,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var W=function(){function u(t){this.$L=L(t.locale,null,!0),this.parse(t)}var e=u.prototype;return e.parse=function(t){this.$d=function(r){var n=r.date,s=r.utc;if(n===null)return new Date(NaN);if(o.u(n))return new Date;if(n instanceof Date)return new Date(n);if(typeof n=="string"&&!/Z$/i.test(n)){var i=n.match(q);if(i){var a=i[2]-1||0,f=(i[7]||"0").substring(0,3);return s?new Date(Date.UTC(i[1],a,i[3]||1,i[4]||0,i[5]||0,i[6]||0,f)):new Date(i[1],a,i[3]||1,i[4]||0,i[5]||0,i[6]||0,f)}}return new Date(n)}(t),this.$x=t.x||{},this.init()},e.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},e.$utils=function(){return o},e.isValid=function(){return this.$d.toString()!==J},e.isSame=function(t,r){var n=c(t);return this.startOf(r)<=n&&n<=this.endOf(r)},e.isAfter=function(t,r){return c(t)=r||a<0||d&&m>=l}function g(){var e=I();if(y(e))return b(e);i=setTimeout(g,A(e))}function b(e){return i=void 0,T&&u?x(e):(u=c=void 0,s)}function O(){i!==void 0&&clearTimeout(i),o=0,u=f=c=i=void 0}function C(){return i===void 0?s:b(I())}function v(){var e=I(),a=y(e);if(u=arguments,c=this,f=e,a){if(i===void 0)return W(f);if(d)return clearTimeout(i),i=setTimeout(g,r),x(f)}return i===void 0&&(i=setTimeout(g,r)),s}return v.cancel=O,v.flush=C,v}export{z as d}; diff --git a/src/main/resources/static/assets/default.83526f4b.js b/src/main/resources/static/assets/default.83526f4b.js new file mode 100644 index 0000000..f1fc969 --- /dev/null +++ b/src/main/resources/static/assets/default.83526f4b.js @@ -0,0 +1 @@ +import{_ as o,ae as r,a as t,b as a}from"./index.bbf7818f.js";const c={};function n(_,s){const e=r("router-view");return t(),a(e)}var p=o(c,[["render",n]]);export{p as default}; diff --git a/src/main/resources/static/assets/delete.06c9bd69.svg b/src/main/resources/static/assets/delete.06c9bd69.svg new file mode 100644 index 0000000..3ed0417 --- /dev/null +++ b/src/main/resources/static/assets/delete.06c9bd69.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/dialog.731d01ef.css b/src/main/resources/static/assets/dialog.731d01ef.css new file mode 100644 index 0000000..1953459 --- /dev/null +++ b/src/main/resources/static/assets/dialog.731d01ef.css @@ -0,0 +1 @@ +:root{--el-popup-modal-bg-color: var(--el-color-black);--el-popup-modal-opacity: .5}.v-modal-enter{animation:v-modal-in var(--el-transition-duration-fast) ease}.v-modal-leave{animation:v-modal-out var(--el-transition-duration-fast) ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:var(--el-popup-modal-opacity);background:var(--el-popup-modal-bg-color)}.el-popup-parent--hidden{overflow:hidden}.el-dialog{--el-dialog-width: 50%;--el-dialog-margin-top: 15vh;--el-dialog-bg-color: var(--el-bg-color);--el-dialog-box-shadow: var(--el-box-shadow);--el-dialog-title-font-size: var(--el-font-size-large);--el-dialog-content-font-size: 14px;--el-dialog-font-line-height: var(--el-font-line-height-primary);--el-dialog-padding-primary: 20px;--el-dialog-border-radius: var(--el-border-radius-small);position:relative;margin:var(--el-dialog-margin-top, 15vh) auto 50px;background:var(--el-dialog-bg-color);border-radius:var(--el-dialog-border-radius);box-shadow:var(--el-dialog-box-shadow);box-sizing:border-box;width:var(--el-dialog-width, 50%)}.el-dialog:focus{outline:none!important}.el-dialog.is-fullscreen{--el-dialog-width: 100%;--el-dialog-margin-top: 0;margin-bottom:0;height:100%;overflow:auto}.el-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.el-dialog.is-draggable .el-dialog__header{cursor:move;-webkit-user-select:none;user-select:none}.el-dialog__header{padding:var(--el-dialog-padding-primary);padding-bottom:10px;margin-right:16px;word-break:break-all}.el-dialog__headerbtn{position:absolute;top:6px;right:0;padding:0;width:54px;height:54px;background:transparent;border:none;outline:none;cursor:pointer;font-size:var(--el-message-close-size, 16px)}.el-dialog__headerbtn .el-dialog__close{color:var(--el-color-info);font-size:inherit}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:var(--el-color-primary)}.el-dialog__title{line-height:var(--el-dialog-font-line-height);font-size:var(--el-dialog-title-font-size);color:var(--el-text-color-primary)}.el-dialog__body{padding:calc(var(--el-dialog-padding-primary) + 10px) var(--el-dialog-padding-primary);color:var(--el-text-color-regular);font-size:var(--el-dialog-content-font-size);word-break:break-all}.el-dialog__footer{padding:var(--el-dialog-padding-primary);padding-top:10px;text-align:right;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial;padding:25px calc(var(--el-dialog-padding-primary) + 5px) 30px}.el-dialog--center .el-dialog__footer{text-align:inherit}.el-overlay-dialog{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto}.dialog-fade-enter-active{animation:modal-fade-in var(--el-transition-duration)}.dialog-fade-enter-active .el-overlay-dialog{animation:dialog-fade-in var(--el-transition-duration)}.dialog-fade-leave-active{animation:modal-fade-out var(--el-transition-duration)}.dialog-fade-leave-active .el-overlay-dialog{animation:dialog-fade-out var(--el-transition-duration)}@keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes dialog-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-fade-out{0%{opacity:1}to{opacity:0}} diff --git a/src/main/resources/static/assets/dialog.d131328b.js b/src/main/resources/static/assets/dialog.d131328b.js new file mode 100644 index 0000000..9a49b68 --- /dev/null +++ b/src/main/resources/static/assets/dialog.d131328b.js @@ -0,0 +1 @@ +import{d as S,E as T,c as $,a as p,f as R,p as h,g as r,n as t,u as e,t as V,h as k,e as i,b as x,q as U,k as I,i as F,j as Z,G,r as z,v as J,Q,R as W,I as Y,T as H,W as X}from"./index.bbf7818f.js";import{u as ee,a as oe,E as ae}from"./index.c66de53e.js";import{E as le,_ as M,C as te,A as ie,u as re,w as se}from"./base.197bc1e5.js";import{d as ne,a as de,b as ge,c as pe,u as ce}from"./overlay.21d31a0b.js";import{u as fe}from"./index.eeb08216.js";import{F as me,E as ue}from"./focus-trap.fe4b8179.js";import{c as ve}from"./refs.e098e5db.js";const B=Symbol("dialogInjectionKey"),be=["aria-label"],ye=["id"],he={name:"ElDialogContent"},ke=S({...he,props:ne,emits:de,setup(w){const C=w,{t:c}=fe(),{Close:_}=te,{dialogRef:s,headerRef:f,bodyId:E,ns:l,style:m}=T(B),{focusTrapRef:b}=T(me),y=ve(b,s),u=$(()=>C.draggable);return ee(s,f,u),(a,n)=>(p(),R("div",{ref:e(y),class:t([e(l).b(),e(l).is("fullscreen",a.fullscreen),e(l).is("draggable",e(u)),{[e(l).m("center")]:a.center},a.customClass]),style:F(e(m)),tabindex:"-1",onClick:n[1]||(n[1]=Z(()=>{},["stop"]))},[h("header",{ref_key:"headerRef",ref:f,class:t(e(l).e("header"))},[r(a.$slots,"header",{},()=>[h("span",{role:"heading",class:t(e(l).e("title"))},V(a.title),3)]),a.showClose?(p(),R("button",{key:0,"aria-label":e(c)("el.dialog.close"),class:t(e(l).e("headerbtn")),type:"button",onClick:n[0]||(n[0]=A=>a.$emit("close"))},[k(e(le),{class:t(e(l).e("close"))},{default:i(()=>[(p(),x(U(a.closeIcon||e(_))))]),_:1},8,["class"])],10,be)):I("v-if",!0)],2),h("div",{id:e(E),class:t(e(l).e("body"))},[r(a.$slots,"default")],10,ye),a.$slots.footer?(p(),R("footer",{key:0,class:t(e(l).e("footer"))},[r(a.$slots,"footer")],2)):I("v-if",!0)],6))}});var we=M(ke,[["__file","/home/runner/work/element-plus/element-plus/packages/components/dialog/src/dialog-content.vue"]]);const Ce=["aria-label","aria-labelledby","aria-describedby"],_e={name:"ElDialog"},Ee=S({..._e,props:ge,emits:pe,setup(w,{expose:C}){const c=w,_=G();ie({scope:"el-dialog",from:"the title slot",replacement:"the header slot",version:"3.0.0",ref:"https://element-plus.org/en-US/component/dialog.html#slots"},$(()=>!!_.title));const s=re("dialog"),f=z(),E=z(),l=z(),{visible:m,titleId:b,bodyId:y,style:u,rendered:a,zIndex:n,afterEnter:A,afterLeave:L,beforeLeave:N,handleClose:D,onModalClick:j,onOpenAutoFocus:q,onCloseAutoFocus:O,onCloseRequested:K}=ce(c,f);J(B,{dialogRef:f,headerRef:E,bodyId:y,ns:s,rendered:a,style:u});const d=oe(j),P=$(()=>c.draggable&&!c.fullscreen);return C({visible:m,dialogContentRef:l}),(o,g)=>(p(),x(X,{to:"body",disabled:!o.appendToBody},[k(H,{name:"dialog-fade",onAfterEnter:e(A),onAfterLeave:e(L),onBeforeLeave:e(N),persisted:""},{default:i(()=>[Q(k(e(ae),{"custom-mask-event":"",mask:o.modal,"overlay-class":o.modalClass,"z-index":e(n)},{default:i(()=>[h("div",{role:"dialog","aria-modal":"true","aria-label":o.title||void 0,"aria-labelledby":o.title?void 0:e(b),"aria-describedby":e(y),class:t(`${e(s).namespace.value}-overlay-dialog`),onClick:g[0]||(g[0]=(...v)=>e(d).onClick&&e(d).onClick(...v)),onMousedown:g[1]||(g[1]=(...v)=>e(d).onMousedown&&e(d).onMousedown(...v)),onMouseup:g[2]||(g[2]=(...v)=>e(d).onMouseup&&e(d).onMouseup(...v))},[k(e(ue),{loop:"",trapped:e(m),"focus-start-el":"container",onFocusAfterTrapped:e(q),onFocusAfterReleased:e(O),onReleaseRequested:e(K)},{default:i(()=>[e(a)?(p(),x(we,{key:0,ref_key:"dialogContentRef",ref:l,"custom-class":o.customClass,center:o.center,"close-icon":o.closeIcon,draggable:e(P),fullscreen:o.fullscreen,"show-close":o.showClose,style:F(e(u)),title:o.title,onClose:e(D)},Y({header:i(()=>[o.$slots.title?r(o.$slots,"title",{key:1}):r(o.$slots,"header",{key:0,close:e(D),titleId:e(b),titleClass:e(s).e("title")})]),default:i(()=>[r(o.$slots,"default")]),_:2},[o.$slots.footer?{name:"footer",fn:i(()=>[r(o.$slots,"footer")])}:void 0]),1032,["custom-class","center","close-icon","draggable","fullscreen","show-close","style","title","onClose"])):I("v-if",!0)]),_:3},8,["trapped","onFocusAfterTrapped","onFocusAfterReleased","onReleaseRequested"])],42,Ce)]),_:3},8,["mask","overlay-class","z-index"]),[[W,e(m)]])]),_:3},8,["onAfterEnter","onAfterLeave","onBeforeLeave"])],8,["disabled"]))}});var Re=M(Ee,[["__file","/home/runner/work/element-plus/element-plus/packages/components/dialog/src/dialog.vue"]]);const Se=se(Re);export{Se as E}; diff --git a/src/main/resources/static/assets/directive.b8a17520.js b/src/main/resources/static/assets/directive.b8a17520.js new file mode 100644 index 0000000..de642d2 --- /dev/null +++ b/src/main/resources/static/assets/directive.b8a17520.js @@ -0,0 +1 @@ +import{ad as $,r as w,V as B,ar as I,ah as f,e as N,Q as S,R as P,h as E,T as O,Y as k,m as _,a5 as A,as as R,P as j}from"./index.bbf7818f.js";import{u as V,X as b,L as Y,F,Y as m,V as C}from"./base.197bc1e5.js";function Z(t){let e;const l=V("loading"),n=w(!1),s=B({...t,originalPosition:"",originalOverflow:"",visible:!1});function o(a){s.text=a}function u(){const a=s.parent;if(!a.vLoadingAddClassList){let i=a.getAttribute("loading-number");i=Number.parseInt(i)-1,i?a.setAttribute("loading-number",i.toString()):(b(a,l.bm("parent","relative")),a.removeAttribute("loading-number")),b(a,l.bm("parent","hidden"))}d(),v.unmount()}function d(){var a,i;(i=(a=r.$el)==null?void 0:a.parentNode)==null||i.removeChild(r.$el)}function p(){var a;if(t.beforeClose&&!t.beforeClose())return;const i=s.parent;i.vLoadingAddClassList=void 0,n.value=!0,clearTimeout(e),e=window.setTimeout(()=>{n.value&&(n.value=!1,u())},400),s.visible=!1,(a=t.closed)==null||a.call(t)}function c(){!n.value||(n.value=!1,u())}const v=I({name:"ElLoading",setup(){return()=>{const a=s.spinner||s.svg,i=f("svg",{class:"circular",viewBox:s.svgViewBox?s.svgViewBox:"25 25 50 50",...a?{innerHTML:a}:{}},[f("circle",{class:"path",cx:"50",cy:"50",r:"20",fill:"none"})]),T=s.text?f("p",{class:l.b("text")},[s.text]):void 0;return f(O,{name:l.b("fade"),onAfterLeave:c},{default:N(()=>[S(E("div",{style:{backgroundColor:s.background||""},class:[l.b("mask"),s.customClass,s.fullscreen?"is-fullscreen":""]},[f("div",{class:l.b("spinner")},[i,T])]),[[P,s.visible]])])})}}}),r=v.mount(document.createElement("div"));return{...$(s),setText:o,removeElLoadingChild:d,close:p,handleAfterLeave:c,vm:r,get $el(){return r.$el}}}let g;const q=function(t={}){if(!Y)return;const e=z(t);if(e.fullscreen&&g)return g;const l=Z({...e,closed:()=>{var s;(s=e.closed)==null||s.call(e),e.fullscreen&&(g=void 0)}});D(e,e.parent,l),L(e,e.parent,l),e.parent.vLoadingAddClassList=()=>L(e,e.parent,l);let n=e.parent.getAttribute("loading-number");return n?n=`${Number.parseInt(n)+1}`:n="1",e.parent.setAttribute("loading-number",n),e.parent.appendChild(l.$el),k(()=>l.visible.value=e.visible),e.fullscreen&&(g=l),l},z=t=>{var e,l,n,s;let o;return _(t.target)?o=(e=document.querySelector(t.target))!=null?e:document.body:o=t.target||document.body,{parent:o===document.body||t.body?document.body:o,background:t.background||"",svg:t.svg||"",svgViewBox:t.svgViewBox||"",spinner:t.spinner||!1,text:t.text||"",fullscreen:o===document.body&&((l=t.fullscreen)!=null?l:!0),lock:(n=t.lock)!=null?n:!1,customClass:t.customClass||"",visible:(s=t.visible)!=null?s:!0,target:o}},D=async(t,e,l)=>{const{nextZIndex:n}=F(),s={};if(t.fullscreen)l.originalPosition.value=m(document.body,"position"),l.originalOverflow.value=m(document.body,"overflow"),s.zIndex=n();else if(t.parent===document.body){l.originalPosition.value=m(document.body,"position"),await k();for(const o of["top","left"]){const u=o==="top"?"scrollTop":"scrollLeft";s[o]=`${t.target.getBoundingClientRect()[o]+document.body[u]+document.documentElement[u]-Number.parseInt(m(document.body,`margin-${o}`),10)}px`}for(const o of["height","width"])s[o]=`${t.target.getBoundingClientRect()[o]}px`}else l.originalPosition.value=m(e,"position");for(const[o,u]of Object.entries(s))l.$el.style[o]=u},L=(t,e,l)=>{const n=V("loading");l.originalPosition.value!=="absolute"&&l.originalPosition.value!=="fixed"?C(e,n.bm("parent","relative")):b(e,n.bm("parent","relative")),t.fullscreen&&t.lock?C(e,n.bm("parent","hidden")):b(e,n.bm("parent","hidden"))},y=Symbol("ElLoading"),h=(t,e)=>{var l,n,s,o;const u=e.instance,d=r=>A(e.value)?e.value[r]:void 0,p=r=>{const a=_(r)&&(u==null?void 0:u[r])||r;return a&&w(a)},c=r=>p(d(r)||t.getAttribute(`element-loading-${R(r)}`)),x=(l=d("fullscreen"))!=null?l:e.modifiers.fullscreen,v={text:c("text"),svg:c("svg"),svgViewBox:c("svgViewBox"),spinner:c("spinner"),background:c("background"),customClass:c("customClass"),fullscreen:x,target:(n=d("target"))!=null?n:x?void 0:t,body:(s=d("body"))!=null?s:e.modifiers.body,lock:(o=d("lock"))!=null?o:e.modifiers.lock};t[y]={options:v,instance:q(v)}},H=(t,e)=>{for(const l of Object.keys(e))j(e[l])&&(e[l].value=t[l])},Q={mounted(t,e){e.value&&h(t,e)},updated(t,e){const l=t[y];e.oldValue!==e.value&&(e.value&&!e.oldValue?h(t,e):e.value&&e.oldValue?A(e.value)&&H(e.value,l.options):l==null||l.instance.close())},unmounted(t){var e;(e=t[y])==null||e.instance.close()}};export{q as L,Q as v}; diff --git a/src/main/resources/static/assets/dockerfile.de6a0f2c.js b/src/main/resources/static/assets/dockerfile.de6a0f2c.js new file mode 100644 index 0000000..781ad83 --- /dev/null +++ b/src/main/resources/static/assets/dockerfile.de6a0f2c.js @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.33.0(4b1abad427e58dbedc1215d99a0902ffc885fcd4) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/var e={brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},o={defaultToken:"",tokenPostfix:".dockerfile",variable:/\${?[\w]+}?/,tokenizer:{root:[{include:"@whitespace"},{include:"@comment"},[/(ONBUILD)(\s+)/,["keyword",""]],[/(ENV)(\s+)([\w]+)/,["keyword","",{token:"variable",next:"@arguments"}]],[/(FROM|MAINTAINER|RUN|EXPOSE|ENV|ADD|ARG|VOLUME|LABEL|USER|WORKDIR|COPY|CMD|STOPSIGNAL|SHELL|HEALTHCHECK|ENTRYPOINT)/,{token:"keyword",next:"@arguments"}]],arguments:[{include:"@whitespace"},{include:"@strings"},[/(@variable)/,{cases:{"@eos":{token:"variable",next:"@popall"},"@default":"variable"}}],[/\\/,{cases:{"@eos":"","@default":""}}],[/./,{cases:{"@eos":{token:"",next:"@popall"},"@default":""}}]],whitespace:[[/\s+/,{cases:{"@eos":{token:"",next:"@popall"},"@default":""}}]],comment:[[/(^#.*$)/,"comment","@popall"]],strings:[[/\\'$/,"","@popall"],[/\\'/,""],[/'$/,"string","@popall"],[/'/,"string","@stringBody"],[/"$/,"string","@popall"],[/"/,"string","@dblStringBody"]],stringBody:[[/[^\\\$']/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}],[/\\./,"string.escape"],[/'$/,"string","@popall"],[/'/,"string","@pop"],[/(@variable)/,"variable"],[/\\$/,"string"],[/$/,"string","@popall"]],dblStringBody:[[/[^\\\$"]/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}],[/\\./,"string.escape"],[/"$/,"string","@popall"],[/"/,"string","@pop"],[/(@variable)/,"variable"],[/\\$/,"string"],[/$/,"string","@popall"]]}};export{e as conf,o as language}; diff --git a/src/main/resources/static/assets/download.48c98cdb.svg b/src/main/resources/static/assets/download.48c98cdb.svg new file mode 100644 index 0000000..c74dede --- /dev/null +++ b/src/main/resources/static/assets/download.48c98cdb.svg @@ -0,0 +1,4 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/assets/dropdown-item.32357c71.css b/src/main/resources/static/assets/dropdown-item.32357c71.css new file mode 100644 index 0000000..fcb977d --- /dev/null +++ b/src/main/resources/static/assets/dropdown-item.32357c71.css @@ -0,0 +1 @@ +.el-dropdown{--el-dropdown-menu-box-shadow: var(--el-box-shadow-light);--el-dropdown-menuItem-hover-fill: var(--el-color-primary-light-9);--el-dropdown-menuItem-hover-color: var(--el-color-primary);--el-dropdown-menu-index: 10;display:inline-flex;position:relative;color:var(--el-text-color-regular);font-size:var(--el-font-size-base);line-height:1;vertical-align:top}.el-dropdown.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-dropdown__popper{--el-dropdown-menu-box-shadow: var(--el-box-shadow-light);--el-dropdown-menuItem-hover-fill: var(--el-color-primary-light-9);--el-dropdown-menuItem-hover-color: var(--el-color-primary);--el-dropdown-menu-index: 10}.el-dropdown__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-dropdown-menu-box-shadow)}.el-dropdown__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-dropdown__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-dropdown__popper .el-dropdown-menu{border:none}.el-dropdown__popper .el-dropdown__popper-selfdefine{outline:none}.el-dropdown__popper .el-scrollbar__bar{z-index:calc(var(--el-dropdown-menu-index) + 1)}.el-dropdown__popper .el-dropdown__list{list-style:none;padding:0;margin:0;box-sizing:border-box}.el-dropdown .el-dropdown__caret-button{padding-left:0;padding-right:0;display:inline-flex;justify-content:center;align-items:center;width:32px;border-left:none}.el-dropdown .el-dropdown__caret-button>span{display:inline-flex}.el-dropdown .el-dropdown__caret-button:before{content:"";position:absolute;display:block;width:1px;top:-1px;bottom:-1px;left:0;background:var(--el-overlay-color-lighter)}.el-dropdown .el-dropdown__caret-button.el-button:before{background:var(--el-border-color);opacity:.5}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{font-size:inherit;padding-left:0}.el-dropdown .el-dropdown-selfdefine{outline:none}.el-dropdown--large .el-dropdown__caret-button{width:40px}.el-dropdown--small .el-dropdown__caret-button{width:24px}.el-dropdown-menu{position:relative;top:0;left:0;z-index:var(--el-dropdown-menu-index);padding:5px 0;margin:0;background-color:var(--el-bg-color-overlay);border:none;border-radius:var(--el-border-radius-base);box-shadow:none;list-style:none}.el-dropdown-menu__item{display:flex;align-items:center;white-space:nowrap;list-style:none;line-height:22px;padding:5px 16px;margin:0;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);cursor:pointer;outline:none}.el-dropdown-menu__item:not(.is-disabled):focus{background-color:var(--el-dropdown-menuItem-hover-fill);color:var(--el-dropdown-menuItem-hover-color)}.el-dropdown-menu__item i{margin-right:5px}.el-dropdown-menu__item--divided{margin:6px 0;border-top:1px solid var(--el-border-color-lighter)}.el-dropdown-menu__item.is-disabled{cursor:not-allowed;color:var(--el-text-color-disabled)}.el-dropdown-menu--large{padding:7px 0}.el-dropdown-menu--large .el-dropdown-menu__item{padding:7px 20px;line-height:22px;font-size:14px}.el-dropdown-menu--large .el-dropdown-menu__item--divided{margin:8px 0}.el-dropdown-menu--small{padding:3px 0}.el-dropdown-menu--small .el-dropdown-menu__item{padding:2px 12px;line-height:20px;font-size:12px}.el-dropdown-menu--small .el-dropdown-menu__item--divided{margin:4px 0} diff --git a/src/main/resources/static/assets/dropdown-item.731434fa.js b/src/main/resources/static/assets/dropdown-item.731434fa.js new file mode 100644 index 0000000..ce0f40e --- /dev/null +++ b/src/main/resources/static/assets/dropdown-item.731434fa.js @@ -0,0 +1 @@ +import{b as be,d as q,a4 as h,_ as M,G as se,r as de,E as ie,T as _e,u as x,I as he,R as Ie,w as ye,j as pe}from"./base.197bc1e5.js";import{E as Ee,O as Ce}from"./popper.91c84279.js";import{E as Te}from"./index.e63d92a7.js";import{c as Fe,E as ke,d as $e,a as ue,C as Re,b as Oe,e as Se,f as Pe,g as De,F as Ne,L as Ke}from"./dropdown.e1a9d9ca.js";import{a as ze,o as Ge,c as S,w as le}from"./event.3ec63147.js";import{d as B,r as E,E as y,c as T,v as V,al as Me,x as L,u as C,w as Be,o as Ae,H as Le,g as D,ae as b,a as P,b as A,e as v,h as R,A as Ue,ay as Ye,Y as He,a0 as ce,f as J,I as Ve,z as U,n as X,k as Z,p as Je,q as je,F as We,i as qe}from"./index.bbf7818f.js";import{u as Qe}from"./index.eeb08216.js";import{c as me}from"./refs.e098e5db.js";import{F as Xe}from"./focus-trap.fe4b8179.js";const Ze=be({style:{type:q([String,Array,Object])},currentTabId:{type:q(String)},defaultCurrentTabId:String,loop:Boolean,dir:{type:String,values:["ltr","rtl"],default:"ltr"},orientation:{type:q(String)},onBlur:Function,onFocus:Function,onMousedown:Function}),{ElCollection:xe,ElCollectionItem:eo,COLLECTION_INJECTION_KEY:ee,COLLECTION_ITEM_INJECTION_KEY:oo}=Fe("RovingFocusGroup"),oe=Symbol("elRovingFocusGroup"),fe=Symbol("elRovingFocusGroupItem"),no={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"},ro=(e,o)=>{if(o!=="rtl")return e;switch(e){case h.right:return h.left;case h.left:return h.right;default:return e}},to=(e,o,s)=>{const r=ro(e.key,s);if(!(o==="vertical"&&[h.left,h.right].includes(r))&&!(o==="horizontal"&&[h.up,h.down].includes(r)))return no[r]},lo=(e,o)=>e.map((s,r)=>e[(r+o)%e.length]),ne=e=>{const{activeElement:o}=document;for(const s of e)if(s===o||(s.focus(),o!==document.activeElement))return},ae="currentTabIdChange",Q="rovingFocusGroup.entryFocus",ao={bubbles:!1,cancelable:!0},so=B({name:"ElRovingFocusGroupImpl",inheritAttrs:!1,props:Ze,emits:[ae,"entryFocus"],setup(e,{emit:o}){var s;const r=E((s=e.currentTabId||e.defaultCurrentTabId)!=null?s:null),i=E(!1),u=E(!1),t=E(null),{getItems:l}=y(ee,void 0),c=T(()=>[{outline:"none"},e.style]),w=a=>{o(ae,a)},g=()=>{i.value=!0},_=S(a=>{var m;(m=e.onMousedown)==null||m.call(e,a)},()=>{u.value=!0}),I=S(a=>{var m;(m=e.onFocus)==null||m.call(e,a)},a=>{const m=!C(u),{target:N,currentTarget:F}=a;if(N===F&&m&&!C(i)){const K=new Event(Q,ao);if(F==null||F.dispatchEvent(K),!K.defaultPrevented){const f=l().filter($=>$.focusable),O=f.find($=>$.active),k=f.find($=>$.id===C(r)),G=[O,k,...f].filter(Boolean).map($=>$.ref);ne(G)}}u.value=!1}),n=S(a=>{var m;(m=e.onBlur)==null||m.call(e,a)},()=>{i.value=!1}),d=(...a)=>{o("entryFocus",...a)};V(oe,{currentTabbedId:Me(r),loop:L(e,"loop"),tabIndex:T(()=>C(i)?-1:0),rovingFocusGroupRef:t,rovingFocusGroupRootStyle:c,orientation:L(e,"orientation"),dir:L(e,"dir"),onItemFocus:w,onItemShiftTab:g,onBlur:n,onFocus:I,onMousedown:_}),Be(()=>e.currentTabId,a=>{r.value=a!=null?a:null}),Ae(()=>{const a=C(t);ze(a,Q,d)}),Le(()=>{const a=C(t);Ge(a,Q,d)})}});function io(e,o,s,r,i,u){return D(e.$slots,"default")}var po=M(so,[["render",io],["__file","/home/runner/work/element-plus/element-plus/packages/components/roving-focus-group/src/roving-focus-group-impl.vue"]]);const uo=B({name:"ElRovingFocusGroup",components:{ElFocusGroupCollection:xe,ElRovingFocusGroupImpl:po}});function co(e,o,s,r,i,u){const t=b("el-roving-focus-group-impl"),l=b("el-focus-group-collection");return P(),A(l,null,{default:v(()=>[R(t,Ue(Ye(e.$attrs)),{default:v(()=>[D(e.$slots,"default")]),_:3},16)]),_:3})}var mo=M(uo,[["render",co],["__file","/home/runner/work/element-plus/element-plus/packages/components/roving-focus-group/src/roving-focus-group.vue"]]);const fo=B({components:{ElRovingFocusCollectionItem:eo},props:{focusable:{type:Boolean,default:!0},active:{type:Boolean,default:!1}},emits:["mousedown","focus","keydown"],setup(e,{emit:o}){const{currentTabbedId:s,loop:r,onItemFocus:i,onItemShiftTab:u}=y(oe,void 0),{getItems:t}=y(ee,void 0),l=se(),c=E(null),w=S(n=>{o("mousedown",n)},n=>{e.focusable?i(C(l)):n.preventDefault()}),g=S(n=>{o("focus",n)},()=>{i(C(l))}),_=S(n=>{o("keydown",n)},n=>{const{key:d,shiftKey:a,target:m,currentTarget:N}=n;if(d===h.tab&&a){u();return}if(m!==N)return;const F=to(n);if(F){n.preventDefault();let f=t().filter(O=>O.focusable).map(O=>O.ref);switch(F){case"last":{f.reverse();break}case"prev":case"next":{F==="prev"&&f.reverse();const O=f.indexOf(N);f=r.value?lo(f,O+1):f.slice(O+1);break}}He(()=>{ne(f)})}}),I=T(()=>s.value===C(l));return V(fe,{rovingFocusGroupItemRef:c,tabIndex:T(()=>C(I)?0:-1),handleMousedown:w,handleFocus:g,handleKeydown:_}),{id:l,handleKeydown:_,handleFocus:g,handleMousedown:w}}});function vo(e,o,s,r,i,u){const t=b("el-roving-focus-collection-item");return P(),A(t,{id:e.id,focusable:e.focusable,active:e.active},{default:v(()=>[D(e.$slots,"default")]),_:3},8,["id","focusable","active"])}var wo=M(fo,[["render",vo],["__file","/home/runner/work/element-plus/element-plus/packages/components/roving-focus-group/src/roving-focus-item.vue"]]);const j=Symbol("elDropdown"),{ButtonGroup:go}=de,bo=B({name:"ElDropdown",components:{ElButton:de,ElButtonGroup:go,ElScrollbar:Te,ElDropdownCollection:ke,ElTooltip:Ee,ElRovingFocusGroup:mo,ElOnlyChild:Ce,ElIcon:ie,ArrowDown:_e},props:$e,emits:["visible-change","click","command"],setup(e,{emit:o}){const s=ce(),r=x("dropdown"),{t:i}=Qe(),u=E(),t=E(),l=E(null),c=E(null),w=E(null),g=E(null),_=E(!1),I=[h.enter,h.space,h.down],n=T(()=>({maxHeight:he(e.maxHeight)})),d=T(()=>[r.m(f.value)]),a=se().value,m=T(()=>e.id||a);function N(){F()}function F(){var p;(p=l.value)==null||p.onClose()}function K(){var p;(p=l.value)==null||p.onOpen()}const f=Ie();function O(...p){o("command",...p)}function k(){}function z(){const p=C(c);p==null||p.focus(),g.value=null}function G(p){g.value=p}function $(p){_.value||(p.preventDefault(),p.stopImmediatePropagation())}function re(p){(p==null?void 0:p.type)==="keydown"&&c.value.focus(),o("visible-change",!0)}function Y(){o("visible-change",!1)}return V(j,{contentRef:c,role:T(()=>e.role),triggerId:m,isUsingKeyboard:_,onItemEnter:k,onItemLeave:z}),V("elDropdown",{instance:s,dropdownSize:f,handleClick:N,commandHandler:O,trigger:L(e,"trigger"),hideOnClick:L(e,"hideOnClick")}),{t:i,ns:r,scrollbar:w,wrapStyle:n,dropdownTriggerKls:d,dropdownSize:f,triggerId:m,triggerKeys:I,currentTabId:g,handleCurrentTabIdChange:G,handlerMainButtonClick:p=>{o("click",p)},handleEntryFocus:$,handleClose:F,handleOpen:K,handleShowTooltip:re,handleHideTooltip:Y,onFocusAfterTrapped:p=>{var W,te;p.preventDefault(),(te=(W=c.value)==null?void 0:W.focus)==null||te.call(W,{preventScroll:!0})},popperRef:l,contentRef:c,triggeringElementRef:u,referenceElementRef:t}}});function _o(e,o,s,r,i,u){var t;const l=b("el-dropdown-collection"),c=b("el-roving-focus-group"),w=b("el-scrollbar"),g=b("el-only-child"),_=b("el-tooltip"),I=b("el-button"),n=b("arrow-down"),d=b("el-icon"),a=b("el-button-group");return P(),J("div",{class:X([e.ns.b(),e.ns.is("disabled",e.disabled)])},[R(_,{ref:"popperRef",role:e.role,effect:e.effect,"fallback-placements":["bottom","top"],"popper-options":e.popperOptions,"gpu-acceleration":!1,"hide-after":e.trigger==="hover"?e.hideTimeout:0,"manual-mode":!0,placement:e.placement,"popper-class":[e.ns.e("popper"),e.popperClass],"reference-element":(t=e.referenceElementRef)==null?void 0:t.$el,trigger:e.trigger,"trigger-keys":e.triggerKeys,"trigger-target-el":e.contentRef,"show-after":e.trigger==="hover"?e.showTimeout:0,"stop-popper-mouse-event":!1,"virtual-ref":e.triggeringElementRef,"virtual-triggering":e.splitButton,disabled:e.disabled,transition:`${e.ns.namespace.value}-zoom-in-top`,teleported:"",pure:"",persistent:"",onShow:e.handleShowTooltip,onHide:e.handleHideTooltip},Ve({content:v(()=>[R(w,{ref:"scrollbar","wrap-style":e.wrapStyle,tag:"div","view-class":e.ns.e("list")},{default:v(()=>[R(c,{loop:e.loop,"current-tab-id":e.currentTabId,orientation:"horizontal",onCurrentTabIdChange:e.handleCurrentTabIdChange,onEntryFocus:e.handleEntryFocus},{default:v(()=>[R(l,null,{default:v(()=>[D(e.$slots,"dropdown")]),_:3})]),_:3},8,["loop","current-tab-id","onCurrentTabIdChange","onEntryFocus"])]),_:3},8,["wrap-style","view-class"])]),_:2},[e.splitButton?void 0:{name:"default",fn:v(()=>[R(g,{id:e.triggerId,role:"button",tabindex:e.tabindex},{default:v(()=>[D(e.$slots,"default")]),_:3},8,["id","tabindex"])])}]),1032,["role","effect","popper-options","hide-after","placement","popper-class","reference-element","trigger","trigger-keys","trigger-target-el","show-after","virtual-ref","virtual-triggering","disabled","transition","onShow","onHide"]),e.splitButton?(P(),A(a,{key:0},{default:v(()=>[R(I,U({ref:"referenceElementRef"},e.buttonProps,{size:e.dropdownSize,type:e.type,disabled:e.disabled,tabindex:e.tabindex,onClick:e.handlerMainButtonClick}),{default:v(()=>[D(e.$slots,"default")]),_:3},16,["size","type","disabled","tabindex","onClick"]),R(I,U({id:e.triggerId,ref:"triggeringElementRef"},e.buttonProps,{role:"button",size:e.dropdownSize,type:e.type,class:e.ns.e("caret-button"),disabled:e.disabled,tabindex:e.tabindex,"aria-label":e.t("el.dropdown.toggleDropdown")}),{default:v(()=>[R(d,{class:X(e.ns.e("icon"))},{default:v(()=>[R(n)]),_:1},8,["class"])]),_:1},16,["id","size","type","class","disabled","tabindex","aria-label"])]),_:3})):Z("v-if",!0)],2)}var ho=M(bo,[["render",_o],["__file","/home/runner/work/element-plus/element-plus/packages/components/dropdown/src/dropdown.vue"]]);const Io=B({name:"DropdownItemImpl",components:{ElIcon:ie},props:ue,emits:["pointermove","pointerleave","click","clickimpl"],setup(e,{emit:o}){const s=x("dropdown"),{role:r}=y(j,void 0),{collectionItemRef:i}=y(Re,void 0),{collectionItemRef:u}=y(oo,void 0),{rovingFocusGroupItemRef:t,tabIndex:l,handleFocus:c,handleKeydown:w,handleMousedown:g}=y(fe,void 0),_=me(i,u,t),I=T(()=>r.value==="menu"?"menuitem":r.value==="navigation"?"link":"button"),n=S(d=>{const{code:a}=d;if(a===h.enter||a===h.space)return d.preventDefault(),d.stopImmediatePropagation(),o("clickimpl",d),!0},w);return{ns:s,itemRef:_,dataset:{[Oe]:""},role:I,tabIndex:l,handleFocus:c,handleKeydown:n,handleMousedown:g}}}),yo=["aria-disabled","tabindex","role"];function Eo(e,o,s,r,i,u){const t=b("el-icon");return P(),J(We,null,[e.divided?(P(),J("li",U({key:0,role:"separator",class:e.ns.bem("menu","item","divided")},e.$attrs),null,16)):Z("v-if",!0),Je("li",U({ref:e.itemRef},{...e.dataset,...e.$attrs},{"aria-disabled":e.disabled,class:[e.ns.be("menu","item"),e.ns.is("disabled",e.disabled)],tabindex:e.tabIndex,role:e.role,onClick:o[0]||(o[0]=l=>e.$emit("clickimpl",l)),onFocus:o[1]||(o[1]=(...l)=>e.handleFocus&&e.handleFocus(...l)),onKeydown:o[2]||(o[2]=(...l)=>e.handleKeydown&&e.handleKeydown(...l)),onMousedown:o[3]||(o[3]=(...l)=>e.handleMousedown&&e.handleMousedown(...l)),onPointermove:o[4]||(o[4]=l=>e.$emit("pointermove",l)),onPointerleave:o[5]||(o[5]=l=>e.$emit("pointerleave",l))}),[e.icon?(P(),A(t,{key:0},{default:v(()=>[(P(),A(je(e.icon)))]),_:1})):Z("v-if",!0),D(e.$slots,"default")],16,yo)],64)}var Co=M(Io,[["render",Eo],["__file","/home/runner/work/element-plus/element-plus/packages/components/dropdown/src/dropdown-item-impl.vue"]]);const ve=()=>{const e=y("elDropdown",{}),o=T(()=>e==null?void 0:e.dropdownSize);return{elDropdown:e,_elDropdownSize:o}},To=B({name:"ElDropdownItem",components:{ElDropdownCollectionItem:Se,ElRovingFocusItem:wo,ElDropdownItemImpl:Co},inheritAttrs:!1,props:ue,emits:["pointermove","pointerleave","click"],setup(e,{emit:o,attrs:s}){const{elDropdown:r}=ve(),i=ce(),u=E(null),t=T(()=>{var n,d;return(d=(n=C(u))==null?void 0:n.textContent)!=null?d:""}),{onItemEnter:l,onItemLeave:c}=y(j,void 0),w=S(n=>(o("pointermove",n),n.defaultPrevented),le(n=>{var d;e.disabled?c(n):(l(n),n.defaultPrevented||(d=n.currentTarget)==null||d.focus())})),g=S(n=>(o("pointerleave",n),n.defaultPrevented),le(n=>{c(n)})),_=S(n=>(o("click",n),n.type!=="keydown"&&n.defaultPrevented),n=>{var d,a,m;if(e.disabled){n.stopImmediatePropagation();return}(d=r==null?void 0:r.hideOnClick)!=null&&d.value&&((a=r.handleClick)==null||a.call(r)),(m=r.commandHandler)==null||m.call(r,e.command,i,n)}),I=T(()=>({...e,...s}));return{handleClick:_,handlePointerMove:w,handlePointerLeave:g,textContent:t,propsAndAttrs:I}}});function Fo(e,o,s,r,i,u){var t;const l=b("el-dropdown-item-impl"),c=b("el-roving-focus-item"),w=b("el-dropdown-collection-item");return P(),A(w,{disabled:e.disabled,"text-value":(t=e.textValue)!=null?t:e.textContent},{default:v(()=>[R(c,{focusable:!e.disabled},{default:v(()=>[R(l,U(e.propsAndAttrs,{onPointerleave:e.handlePointerLeave,onPointermove:e.handlePointerMove,onClickimpl:e.handleClick}),{default:v(()=>[D(e.$slots,"default")]),_:3},16,["onPointerleave","onPointermove","onClickimpl"])]),_:3},8,["focusable"])]),_:3},8,["disabled","text-value"])}var we=M(To,[["render",Fo],["__file","/home/runner/work/element-plus/element-plus/packages/components/dropdown/src/dropdown-item.vue"]]);const ko=B({name:"ElDropdownMenu",props:Pe,setup(e){const o=x("dropdown"),{_elDropdownSize:s}=ve(),r=s.value,{focusTrapRef:i,onKeydown:u}=y(Xe,void 0),{contentRef:t,role:l,triggerId:c}=y(j,void 0),{collectionRef:w,getItems:g}=y(De,void 0),{rovingFocusGroupRef:_,rovingFocusGroupRootStyle:I,tabIndex:n,onBlur:d,onFocus:a,onMousedown:m}=y(oe,void 0),{collectionRef:N}=y(ee,void 0),F=T(()=>[o.b("menu"),o.bm("menu",r==null?void 0:r.value)]),K=me(t,w,i,_,N),f=S(k=>{var z;(z=e.onKeydown)==null||z.call(e,k)},k=>{const{currentTarget:z,code:G,target:$}=k;if(z.contains($),h.tab===G&&k.stopImmediatePropagation(),k.preventDefault(),$!==C(t)||!Ne.includes(G))return;const Y=g().filter(H=>!H.disabled).map(H=>H.ref);Ke.includes(G)&&Y.reverse(),ne(Y)});return{size:r,rovingFocusGroupRootStyle:I,tabIndex:n,dropdownKls:F,role:l,triggerId:c,dropdownListWrapperRef:K,handleKeydown:k=>{f(k),u(k)},onBlur:d,onFocus:a,onMousedown:m}}}),$o=["role","aria-labelledby"];function Ro(e,o,s,r,i,u){return P(),J("ul",{ref:e.dropdownListWrapperRef,class:X(e.dropdownKls),style:qe(e.rovingFocusGroupRootStyle),tabindex:-1,role:e.role,"aria-labelledby":e.triggerId,onBlur:o[0]||(o[0]=(...t)=>e.onBlur&&e.onBlur(...t)),onFocus:o[1]||(o[1]=(...t)=>e.onFocus&&e.onFocus(...t)),onKeydown:o[2]||(o[2]=(...t)=>e.handleKeydown&&e.handleKeydown(...t)),onMousedown:o[3]||(o[3]=(...t)=>e.onMousedown&&e.onMousedown(...t))},[D(e.$slots,"default")],46,$o)}var ge=M(ko,[["render",Ro],["__file","/home/runner/work/element-plus/element-plus/packages/components/dropdown/src/dropdown-menu.vue"]]);const Ao=ye(ho,{DropdownItem:we,DropdownMenu:ge}),Lo=pe(we),Uo=pe(ge);export{Lo as E,Uo as a,Ao as b}; diff --git a/src/main/resources/static/assets/dropdown.e1a9d9ca.js b/src/main/resources/static/assets/dropdown.e1a9d9ca.js new file mode 100644 index 0000000..5384b85 --- /dev/null +++ b/src/main/resources/static/assets/dropdown.e1a9d9ca.js @@ -0,0 +1 @@ +import{_ as I,b as f,d as t,B as y,a4 as o}from"./base.197bc1e5.js";import{u as N,a as S}from"./popper.91c84279.js";import{g as C,r as E,v as _,E as b,o as L,u as m,H as $}from"./index.bbf7818f.js";const h={inheritAttrs:!1};function M(n,l,c,s,a,u){return C(n.$slots,"default")}var w=I(h,[["render",M],["__file","/home/runner/work/element-plus/element-plus/packages/components/collection/src/collection.vue"]]);const v={name:"ElCollectionItem",inheritAttrs:!1};function B(n,l,c,s,a,u){return C(n.$slots,"default")}var P=I(v,[["render",B],["__file","/home/runner/work/element-plus/element-plus/packages/components/collection/src/collection-item.vue"]]);const A="data-el-collection-item",K=n=>{const l=`El${n}Collection`,c=`${l}Item`,s=Symbol(l),a=Symbol(c),u={...w,name:l,setup(){const d=E(null),i=new Map;_(s,{itemMap:i,getItems:()=>{const r=m(d);if(!r)return[];const e=Array.from(r.querySelectorAll(`[${A}]`));return[...i.values()].sort((g,O)=>e.indexOf(g.ref)-e.indexOf(O.ref))},collectionRef:d})}},T={...P,name:c,setup(d,{attrs:i}){const p=E(null),r=b(s,void 0);_(a,{collectionItemRef:p}),L(()=>{const e=m(p);e&&r.itemMap.set(e,{ref:e,...i})}),$(()=>{const e=m(p);r.itemMap.delete(e)})}};return{COLLECTION_INJECTION_KEY:s,COLLECTION_ITEM_INJECTION_KEY:a,ElCollection:u,ElCollectionItem:T}},R=f({trigger:N.trigger,effect:{...S.effect,default:"light"},type:{type:t(String)},placement:{type:t(String),default:"bottom"},popperOptions:{type:t(Object),default:()=>({})},id:String,size:{type:String,default:""},splitButton:Boolean,hideOnClick:{type:Boolean,default:!0},loop:{type:Boolean,default:!0},showTimeout:{type:Number,default:150},hideTimeout:{type:Number,default:150},tabindex:{type:t([Number,String]),default:0},maxHeight:{type:t([Number,String]),default:""},popperClass:{type:String,default:""},disabled:{type:Boolean,default:!1},role:{type:String,default:"menu"},buttonProps:{type:t(Object)}}),D=f({command:{type:[Object,String,Number],default:()=>({})},disabled:Boolean,divided:Boolean,textValue:String,icon:{type:y}}),H=f({onKeydown:{type:t(Function)}}),x=[o.down,o.pageDown,o.home],Y=[o.up,o.pageUp,o.end],U=[...x,...Y],{ElCollection:V,ElCollectionItem:q,COLLECTION_INJECTION_KEY:z,COLLECTION_ITEM_INJECTION_KEY:G}=K("Dropdown");export{G as C,V as E,U as F,Y as L,D as a,A as b,K as c,R as d,q as e,H as f,z as g}; diff --git a/src/main/resources/static/assets/edit.a2e2c356.svg b/src/main/resources/static/assets/edit.a2e2c356.svg new file mode 100644 index 0000000..584064f --- /dev/null +++ b/src/main/resources/static/assets/edit.a2e2c356.svg @@ -0,0 +1,5 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/assets/empty.d5d3dec8.svg b/src/main/resources/static/assets/empty.d5d3dec8.svg new file mode 100644 index 0000000..f623a19 --- /dev/null +++ b/src/main/resources/static/assets/empty.d5d3dec8.svg @@ -0,0 +1,145 @@ + + 空数据 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/static/assets/event.3ec63147.js b/src/main/resources/static/assets/event.3ec63147.js new file mode 100644 index 0000000..df7fdd1 --- /dev/null +++ b/src/main/resources/static/assets/event.3ec63147.js @@ -0,0 +1 @@ +const u=(o,s,n,t=!1)=>{o&&s&&n&&(o==null||o.addEventListener(s,n,t))},a=(o,s,n,t=!1)=>{o&&s&&n&&(o==null||o.removeEventListener(s,n,t))},f=(o,s,n)=>{const t=function(...i){n&&n.apply(this,i),a(o,s,t)};u(o,s,t)},r=(o,s,{checkForDefaultPrevented:n=!0}={})=>i=>{const c=o==null?void 0:o(i);if(n===!1||!c)return s==null?void 0:s(i)},l=o=>s=>s.pointerType==="mouse"?o(s):void 0;export{u as a,f as b,r as c,a as o,l as w}; diff --git a/src/main/resources/static/assets/event.776e7e11.js b/src/main/resources/static/assets/event.776e7e11.js new file mode 100644 index 0000000..80cd53a --- /dev/null +++ b/src/main/resources/static/assets/event.776e7e11.js @@ -0,0 +1 @@ +const E="update:modelValue",a="change",s="input";export{a as C,s as I,E as U}; diff --git a/src/main/resources/static/assets/file-type-apk.e1385fc3.svg b/src/main/resources/static/assets/file-type-apk.e1385fc3.svg new file mode 100644 index 0000000..1bc6ab6 --- /dev/null +++ b/src/main/resources/static/assets/file-type-apk.e1385fc3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/file-type-archive.f4b181db.svg b/src/main/resources/static/assets/file-type-archive.f4b181db.svg new file mode 100644 index 0000000..69c5957 --- /dev/null +++ b/src/main/resources/static/assets/file-type-archive.f4b181db.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/file-type-audio.94e75894.svg b/src/main/resources/static/assets/file-type-audio.94e75894.svg new file mode 100644 index 0000000..3c563bb --- /dev/null +++ b/src/main/resources/static/assets/file-type-audio.94e75894.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/file-type-back.ca0b84c2.svg b/src/main/resources/static/assets/file-type-back.ca0b84c2.svg new file mode 100644 index 0000000..9fefef2 --- /dev/null +++ b/src/main/resources/static/assets/file-type-back.ca0b84c2.svg @@ -0,0 +1 @@ + diff --git a/src/main/resources/static/assets/file-type-css.5dfb9ed8.svg b/src/main/resources/static/assets/file-type-css.5dfb9ed8.svg new file mode 100644 index 0000000..70c17fc --- /dev/null +++ b/src/main/resources/static/assets/file-type-css.5dfb9ed8.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/file-type-deb.5804788b.svg b/src/main/resources/static/assets/file-type-deb.5804788b.svg new file mode 100644 index 0000000..0658b9c --- /dev/null +++ b/src/main/resources/static/assets/file-type-deb.5804788b.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/file-type-dll.6ea302d9.svg b/src/main/resources/static/assets/file-type-dll.6ea302d9.svg new file mode 100644 index 0000000..1e97ab2 --- /dev/null +++ b/src/main/resources/static/assets/file-type-dll.6ea302d9.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/file-type-doc.a9d08313.svg b/src/main/resources/static/assets/file-type-doc.a9d08313.svg new file mode 100644 index 0000000..5954673 --- /dev/null +++ b/src/main/resources/static/assets/file-type-doc.a9d08313.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/file-type-document.b6e28e75.svg b/src/main/resources/static/assets/file-type-document.b6e28e75.svg new file mode 100644 index 0000000..1ed15df --- /dev/null +++ b/src/main/resources/static/assets/file-type-document.b6e28e75.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/file-type-exe.b561ed3f.svg b/src/main/resources/static/assets/file-type-exe.b561ed3f.svg new file mode 100644 index 0000000..1566bbc --- /dev/null +++ b/src/main/resources/static/assets/file-type-exe.b561ed3f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/file-type-expression.3aaf04f1.svg b/src/main/resources/static/assets/file-type-expression.3aaf04f1.svg new file mode 100644 index 0000000..0762ad2 --- /dev/null +++ b/src/main/resources/static/assets/file-type-expression.3aaf04f1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/file-type-file.47afa61a.svg b/src/main/resources/static/assets/file-type-file.47afa61a.svg new file mode 100644 index 0000000..71bcf66 --- /dev/null +++ b/src/main/resources/static/assets/file-type-file.47afa61a.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/file-type-folder.35bcb02c.svg b/src/main/resources/static/assets/file-type-folder.35bcb02c.svg new file mode 100644 index 0000000..94748ea --- /dev/null +++ b/src/main/resources/static/assets/file-type-folder.35bcb02c.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/file-type-html.e37c00f9.svg b/src/main/resources/static/assets/file-type-html.e37c00f9.svg new file mode 100644 index 0000000..41e9630 --- /dev/null +++ b/src/main/resources/static/assets/file-type-html.e37c00f9.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/file-type-image.689e667c.svg b/src/main/resources/static/assets/file-type-image.689e667c.svg new file mode 100644 index 0000000..49d09eb --- /dev/null +++ b/src/main/resources/static/assets/file-type-image.689e667c.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/file-type-java.e50a4779.svg b/src/main/resources/static/assets/file-type-java.e50a4779.svg new file mode 100644 index 0000000..e5cceb5 --- /dev/null +++ b/src/main/resources/static/assets/file-type-java.e50a4779.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/file-type-js.5c3b67c3.svg b/src/main/resources/static/assets/file-type-js.5c3b67c3.svg new file mode 100644 index 0000000..98b0888 --- /dev/null +++ b/src/main/resources/static/assets/file-type-js.5c3b67c3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/file-type-less.429d4f89.svg b/src/main/resources/static/assets/file-type-less.429d4f89.svg new file mode 100644 index 0000000..0e69075 --- /dev/null +++ b/src/main/resources/static/assets/file-type-less.429d4f89.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/file-type-md.4dd32bf9.svg b/src/main/resources/static/assets/file-type-md.4dd32bf9.svg new file mode 100644 index 0000000..9e04824 --- /dev/null +++ b/src/main/resources/static/assets/file-type-md.4dd32bf9.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/file-type-office.9af40573.svg b/src/main/resources/static/assets/file-type-office.9af40573.svg new file mode 100644 index 0000000..097bb23 --- /dev/null +++ b/src/main/resources/static/assets/file-type-office.9af40573.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/file-type-pdf.1e018e0c.svg b/src/main/resources/static/assets/file-type-pdf.1e018e0c.svg new file mode 100644 index 0000000..e191dd6 --- /dev/null +++ b/src/main/resources/static/assets/file-type-pdf.1e018e0c.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/file-type-php.4feb4413.svg b/src/main/resources/static/assets/file-type-php.4feb4413.svg new file mode 100644 index 0000000..7da5393 --- /dev/null +++ b/src/main/resources/static/assets/file-type-php.4feb4413.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/file-type-ppt.3d3e6af9.svg b/src/main/resources/static/assets/file-type-ppt.3d3e6af9.svg new file mode 100644 index 0000000..455c1db --- /dev/null +++ b/src/main/resources/static/assets/file-type-ppt.3d3e6af9.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/file-type-py.09b51350.svg b/src/main/resources/static/assets/file-type-py.09b51350.svg new file mode 100644 index 0000000..9dfbfd4 --- /dev/null +++ b/src/main/resources/static/assets/file-type-py.09b51350.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/file-type-rb.32961396.svg b/src/main/resources/static/assets/file-type-rb.32961396.svg new file mode 100644 index 0000000..7b34682 --- /dev/null +++ b/src/main/resources/static/assets/file-type-rb.32961396.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/file-type-root.80ddc97b.svg b/src/main/resources/static/assets/file-type-root.80ddc97b.svg new file mode 100644 index 0000000..13d97a1 --- /dev/null +++ b/src/main/resources/static/assets/file-type-root.80ddc97b.svg @@ -0,0 +1 @@ + diff --git a/src/main/resources/static/assets/file-type-rpm.559b18a5.svg b/src/main/resources/static/assets/file-type-rpm.559b18a5.svg new file mode 100644 index 0000000..281abd1 --- /dev/null +++ b/src/main/resources/static/assets/file-type-rpm.559b18a5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/file-type-rust.69994176.svg b/src/main/resources/static/assets/file-type-rust.69994176.svg new file mode 100644 index 0000000..30ab680 --- /dev/null +++ b/src/main/resources/static/assets/file-type-rust.69994176.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/file-type-script.52b80ced.svg b/src/main/resources/static/assets/file-type-script.52b80ced.svg new file mode 100644 index 0000000..c8e8478 --- /dev/null +++ b/src/main/resources/static/assets/file-type-script.52b80ced.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/file-type-text.8ff306a0.svg b/src/main/resources/static/assets/file-type-text.8ff306a0.svg new file mode 100644 index 0000000..88612f8 --- /dev/null +++ b/src/main/resources/static/assets/file-type-text.8ff306a0.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/file-type-vbs.22c9b0b7.svg b/src/main/resources/static/assets/file-type-vbs.22c9b0b7.svg new file mode 100644 index 0000000..603134c --- /dev/null +++ b/src/main/resources/static/assets/file-type-vbs.22c9b0b7.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/file-type-video.888eeb7b.svg b/src/main/resources/static/assets/file-type-video.888eeb7b.svg new file mode 100644 index 0000000..d0137f5 --- /dev/null +++ b/src/main/resources/static/assets/file-type-video.888eeb7b.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/file-type-xls.db6934ae.svg b/src/main/resources/static/assets/file-type-xls.db6934ae.svg new file mode 100644 index 0000000..0b44f1b --- /dev/null +++ b/src/main/resources/static/assets/file-type-xls.db6934ae.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/file-type-xml.234b67f6.svg b/src/main/resources/static/assets/file-type-xml.234b67f6.svg new file mode 100644 index 0000000..7088473 --- /dev/null +++ b/src/main/resources/static/assets/file-type-xml.234b67f6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/file-type-yaml.c1af7aa9.svg b/src/main/resources/static/assets/file-type-yaml.c1af7aa9.svg new file mode 100644 index 0000000..2a80dea --- /dev/null +++ b/src/main/resources/static/assets/file-type-yaml.c1af7aa9.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/file-upload.65dff662.svg b/src/main/resources/static/assets/file-upload.65dff662.svg new file mode 100644 index 0000000..bfd47f3 --- /dev/null +++ b/src/main/resources/static/assets/file-upload.65dff662.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/file.3623dcff.js b/src/main/resources/static/assets/file.3623dcff.js new file mode 100644 index 0000000..37dab94 --- /dev/null +++ b/src/main/resources/static/assets/file.3623dcff.js @@ -0,0 +1,1195 @@ +import{r as kt,o as ls,w as Jn,d as ar,s as Za,c as lt,a as xe,b as ze,e as ve,f as Le,g as Ot,h as ce,u as S,n as Ge,i as en,j as Qn,k as Ie,T as cs,l as md,m as k0,p as Oe,t as Gt,q as Tc,v as Sa,x as kc,F as Ya,y as Hi,z as Gi,A as vd,N as qt,B as Sc,C as gd,D as xd,E as us,G as yd,H as Fc,I as S0,J as Or,K as wd,L as oo,M as Ha,_ as fs,O as hs,P as $n,Q as mr,R as Fr,S as Cc,U as Oc,V as _d,W as bd,X as Ed,Y as Dc,Z as Ga,$ as Td,a0 as kd,a1 as Sd,a2 as hn}from"./index.bbf7818f.js";import{u as tn,t as so,c as Bc,E as Wr,_ as yn,a as Fd,w as oi,b as wn,d as dt,e as Cd,f as Ic,g as Od,h as Rc,i as Mc,p as Dd,j as Bd,k as Id,l as ds,z as Rd,m as Md,n as Pd,o as Ld,q as Nd,r as Ud,s as Pc,v as Lc,x as F0,y as C0}from"./base.197bc1e5.js";/* empty css */import{E as ps}from"./dialog.d131328b.js";import"./overlay.21d31a0b.js";import{E as Nc,a as Uc}from"./checkbox.4d1c2a75.js";import"./scrollbar.7d059005.js";import"./tooltip.f118fcb0.js";import{E as As}from"./popper.91c84279.js";/* empty css */import{E as jd}from"./table-column.f368ae14.js";import{E as zd}from"./alert.1b484cdc.js";import{c as Xn}from"./common.d0a2bd7a.js";import{u as ms,a as vs,s as Hd,b as lo,c as jc,d as zc,e as Hc,f as Gc,g as Gd,h as Wd}from"./useFileUpload.ba32a7f8.js";import{u as Vd,m as rs,a as Yd,E as ns}from"./request.19cbe8c5.js";import{S as er}from"./SvgIcon.e3258df0.js";/* empty css */import{E as Qd,a as $d}from"./form-item.962ab13d.js";/* empty css */import{E as Xd}from"./image-viewer.9e2d72eb.js";import{t as qd}from"./vue3-clipboard.esm-bundler.34366eba.js";import{E as Jd}from"./index.9aca9b8e.js";import{u as Kd}from"./index.eeb08216.js";import{b as O0}from"./route-block.9b0645f8.js";import{v as Zd}from"./directive.b8a17520.js";import"./index.c66de53e.js";import"./scroll.4cf9bb37.js";import"./focus-trap.fe4b8179.js";import"./refs.e098e5db.js";import"./event.776e7e11.js";import"./index.e63d92a7.js";import"./event.3ec63147.js";import"./debounce.a03a8484.js";import"./index.6dd6d04c.js";import"./validator.998eeed0.js";import"./index.c92ded65.js";import"./isEqual.a8284c4e.js";const D0=e=>e**3,ep=e=>e<.5?D0(e*2)/2:1-D0((1-e)*2)/2,tp=Symbol("rowContextKey"),Wc=Symbol("uploadContextKey"),rp=(e,r=0)=>{if(r===0)return e;const t=kt(!1);let n=0;const a=()=>{n&&clearTimeout(n),n=window.setTimeout(()=>{t.value=e.value},r)};return ls(a),Jn(()=>e.value,o=>{o?a():t.value=o}),t},np={visibilityHeight:{type:Number,default:200},target:{type:String,default:""},right:{type:Number,default:40},bottom:{type:Number,default:40}},ap={click:e=>e instanceof MouseEvent},ip=["onClick"],op={name:"ElBacktop"},sp=ar({...op,props:np,emits:ap,setup(e,{emit:r}){const t=e,n="ElBacktop",a=tn("backtop"),o=Za(),s=Za(),c=kt(!1),d=lt(()=>({right:`${t.right}px`,bottom:`${t.bottom}px`})),f=()=>{if(!o.value)return;const v=Date.now(),x=o.value.scrollTop,m=()=>{if(!o.value)return;const w=(Date.now()-v)/500;w<1?(o.value.scrollTop=x*(1-ep(w)),requestAnimationFrame(m)):o.value.scrollTop=0};requestAnimationFrame(m)},u=()=>{o.value&&(c.value=o.value.scrollTop>=t.visibilityHeight)},p=v=>{f(),r("click",v)},A=Fd(u,300);return Vd(s,"scroll",A),ls(()=>{var v;s.value=document,o.value=document.documentElement,t.target&&(o.value=(v=document.querySelector(t.target))!=null?v:void 0,o.value||so(n,`target is not existed: ${t.target}`),s.value=o.value)}),(v,x)=>(xe(),ze(cs,{name:`${S(a).namespace.value}-fade-in`},{default:ve(()=>[c.value?(xe(),Le("div",{key:0,style:en(S(d)),class:Ge(S(a).b()),onClick:Qn(p,["stop"])},[Ot(v.$slots,"default",{},()=>[ce(S(Wr),{class:Ge(S(a).e("icon"))},{default:ve(()=>[ce(S(Bc))]),_:1},8,["class"])])],14,ip)):Ie("v-if",!0)]),_:3},8,["name"]))}});var lp=yn(sp,[["__file","/home/runner/work/element-plus/element-plus/packages/components/backtop/src/backtop.vue"]]);const cp=oi(lp),up=wn({type:{type:String,default:"line",values:["line","circle","dashboard"]},percentage:{type:Number,default:0,validator:e=>e>=0&&e<=100},status:{type:String,default:"",values:["","success","exception","warning"]},indeterminate:{type:Boolean,default:!1},duration:{type:Number,default:3},strokeWidth:{type:Number,default:6},strokeLinecap:{type:dt(String),default:"round"},textInside:{type:Boolean,default:!1},width:{type:Number,default:126},showText:{type:Boolean,default:!0},color:{type:dt([String,Array,Function]),default:""},format:{type:dt(Function),default:e=>`${e}%`}}),fp=["aria-valuenow"],hp={viewBox:"0 0 100 100"},dp=["d","stroke","stroke-width"],pp=["d","stroke","opacity","stroke-linecap","stroke-width"],Ap={key:0},mp={name:"ElProgress"},vp=ar({...mp,props:up,setup(e){const r=e,t={success:"#13ce66",exception:"#ff4949",warning:"#e6a23c",default:"#20a0ff"},n=tn("progress"),a=lt(()=>({width:`${r.percentage}%`,animationDuration:`${r.duration}s`,backgroundColor:E(r.percentage)})),o=lt(()=>(r.strokeWidth/r.width*100).toFixed(1)),s=lt(()=>["circle","dashboard"].includes(r.type)?Number.parseInt(`${50-Number.parseFloat(o.value)/2}`,10):0),c=lt(()=>{const b=s.value,L=r.type==="dashboard";return` + M 50 50 + m 0 ${L?"":"-"}${b} + a ${b} ${b} 0 1 1 0 ${L?"-":""}${b*2} + a ${b} ${b} 0 1 1 0 ${L?"":"-"}${b*2} + `}),d=lt(()=>2*Math.PI*s.value),f=lt(()=>r.type==="dashboard"?.75:1),u=lt(()=>`${-1*d.value*(1-f.value)/2}px`),p=lt(()=>({strokeDasharray:`${d.value*f.value}px, ${d.value}px`,strokeDashoffset:u.value})),A=lt(()=>({strokeDasharray:`${d.value*f.value*(r.percentage/100)}px, ${d.value}px`,strokeDashoffset:u.value,transition:"stroke-dasharray 0.6s ease 0s, stroke 0.6s ease, opacity ease 0.6s"})),v=lt(()=>{let b;return r.color?b=E(r.percentage):b=t[r.status]||t.default,b}),x=lt(()=>r.status==="warning"?Cd:r.type==="line"?r.status==="success"?Ic:Od:r.status==="success"?Rc:Mc),m=lt(()=>r.type==="line"?12+r.strokeWidth*.4:r.width*.111111+2),w=lt(()=>r.format(r.percentage));function M(b){const L=100/b.length;return b.map((O,R)=>k0(O)?{color:O,percentage:(R+1)*L}:O).sort((O,R)=>O.percentage-R.percentage)}const E=b=>{var L;const{color:N}=r;if(md(N))return N(b);if(k0(N))return N;{const O=M(N);for(const R of O)if(R.percentage>b)return R.color;return(L=O[O.length-1])==null?void 0:L.color}};return(b,L)=>(xe(),Le("div",{class:Ge([S(n).b(),S(n).m(b.type),S(n).is(b.status),{[S(n).m("without-text")]:!b.showText,[S(n).m("text-inside")]:b.textInside}]),role:"progressbar","aria-valuenow":b.percentage,"aria-valuemin":"0","aria-valuemax":"100"},[b.type==="line"?(xe(),Le("div",{key:0,class:Ge(S(n).b("bar"))},[Oe("div",{class:Ge(S(n).be("bar","outer")),style:en({height:`${b.strokeWidth}px`})},[Oe("div",{class:Ge([S(n).be("bar","inner"),{[S(n).bem("bar","inner","indeterminate")]:b.indeterminate}]),style:en(S(a))},[(b.showText||b.$slots.default)&&b.textInside?(xe(),Le("div",{key:0,class:Ge(S(n).be("bar","innerText"))},[Ot(b.$slots,"default",{percentage:b.percentage},()=>[Oe("span",null,Gt(S(w)),1)])],2)):Ie("v-if",!0)],6)],6)],2)):(xe(),Le("div",{key:1,class:Ge(S(n).b("circle")),style:en({height:`${b.width}px`,width:`${b.width}px`})},[(xe(),Le("svg",hp,[Oe("path",{class:Ge(S(n).be("circle","track")),d:S(c),stroke:`var(${S(n).cssVarName("fill-color-light")}, #e5e9f2)`,"stroke-width":S(o),fill:"none",style:en(S(p))},null,14,dp),Oe("path",{class:Ge(S(n).be("circle","path")),d:S(c),stroke:S(v),fill:"none",opacity:b.percentage?1:0,"stroke-linecap":b.strokeLinecap,"stroke-width":S(o),style:en(S(A))},null,14,pp)]))],6)),(b.showText||b.$slots.default)&&!b.textInside?(xe(),Le("div",{key:2,class:Ge(S(n).e("text")),style:en({fontSize:`${S(m)}px`})},[Ot(b.$slots,"default",{percentage:b.percentage},()=>[b.status?(xe(),ze(S(Wr),{key:1},{default:ve(()=>[(xe(),ze(Tc(S(x))))]),_:1})):(xe(),Le("span",Ap,Gt(S(w)),1))])],6)):Ie("v-if",!0)],10,fp))}});var gp=yn(vp,[["__file","/home/runner/work/element-plus/element-plus/packages/components/progress/src/progress.vue"]]);const Vc=oi(gp),xp=["start","center","end","space-around","space-between","space-evenly"],yp=["top","middle","bottom"],wp=wn({tag:{type:String,default:"div"},gutter:{type:Number,default:0},justify:{type:String,values:xp,default:"start"},align:{type:String,values:yp,default:"top"}}),_p={name:"ElRow"},bp=ar({..._p,props:wp,setup(e){const r=e,t=tn("row"),n=lt(()=>r.gutter);Sa(tp,{gutter:n});const a=lt(()=>{const o={};return r.gutter&&(o.marginRight=o.marginLeft=`-${r.gutter/2}px`),o});return(o,s)=>(xe(),ze(Tc(o.tag),{class:Ge([S(t).b(),S(t).is(`justify-${r.justify}`,o.justify!=="start"),S(t).is(`align-${r.align}`,o.align!=="top")]),style:en(S(a))},{default:ve(()=>[Ot(o.$slots,"default")]),_:3},8,["class","style"]))}});var Ep=yn(bp,[["__file","/home/runner/work/element-plus/element-plus/packages/components/row/src/row.vue"]]);const Tp=oi(Ep),kp=wn({animated:{type:Boolean,default:!1},count:{type:Number,default:1},rows:{type:Number,default:3},loading:{type:Boolean,default:!0},throttle:{type:Number}}),Sp=wn({variant:{type:String,values:["circle","rect","h1","h3","text","caption","p","image","button"],default:"text"}}),Fp={name:"ElSkeletonItem"},Cp=ar({...Fp,props:Sp,setup(e){const r=tn("skeleton");return(t,n)=>(xe(),Le("div",{class:Ge([S(r).e("item"),S(r).e(t.variant)])},[t.variant==="image"?(xe(),ze(S(Dd),{key:0})):Ie("v-if",!0)],2))}});var Wi=yn(Cp,[["__file","/home/runner/work/element-plus/element-plus/packages/components/skeleton/src/skeleton-item.vue"]]);const Op={name:"ElSkeleton"},Dp=ar({...Op,props:kp,setup(e,{expose:r}){const t=e,n=tn("skeleton"),a=rp(kc(t,"loading"),t.throttle);return r({uiLoading:a}),(o,s)=>S(a)?(xe(),Le("div",Gi({key:0,class:[S(n).b(),S(n).is("animated",o.animated)]},o.$attrs),[(xe(!0),Le(Ya,null,Hi(o.count,c=>(xe(),Le(Ya,{key:c},[o.loading?Ot(o.$slots,"template",{key:c},()=>[ce(Wi,{class:Ge(S(n).is("first")),variant:"p"},null,8,["class"]),(xe(!0),Le(Ya,null,Hi(o.rows,d=>(xe(),ze(Wi,{key:d,class:Ge([S(n).e("paragraph"),S(n).is("last",d===o.rows&&o.rows>1)]),variant:"p"},null,8,["class"]))),128))]):Ie("v-if",!0)],64))),128))],16)):Ot(o.$slots,"default",vd(Gi({key:1},o.$attrs)))}});var Bp=yn(Dp,[["__file","/home/runner/work/element-plus/element-plus/packages/components/skeleton/src/skeleton.vue"]]);const Ip=oi(Bp,{SkeletonItem:Wi}),Rp=Bd(Wi),Mp="ElUpload";class Pp extends Error{constructor(r,t,n,a){super(r),this.name="UploadAjaxError",this.status=t,this.method=n,this.url=a}}function B0(e,r,t){let n;return t.response?n=`${t.response.error||t.response}`:t.responseText?n=`${t.responseText}`:n=`fail to ${r.method} ${e} ${t.status}`,new Pp(n,t.status,r.method,e)}function Lp(e){const r=e.responseText||e.response;if(!r)return r;try{return JSON.parse(r)}catch{return r}}const Np=e=>{typeof XMLHttpRequest=="undefined"&&so(Mp,"XMLHttpRequest is undefined");const r=new XMLHttpRequest,t=e.action;r.upload&&r.upload.addEventListener("progress",o=>{const s=o;s.percent=o.total>0?o.loaded/o.total*100:0,e.onProgress(s)});const n=new FormData;if(e.data)for(const[o,s]of Object.entries(e.data))Array.isArray(s)?n.append(o,...s):n.append(o,s);n.append(e.filename,e.file,e.file.name),r.addEventListener("error",()=>{e.onError(B0(t,e,r))}),r.addEventListener("load",()=>{if(r.status<200||r.status>=300)return e.onError(B0(t,e,r));e.onSuccess(Lp(r))}),r.open(e.method,t,!0),e.withCredentials&&"withCredentials"in r&&(r.withCredentials=!0);const a=e.headers||{};if(a instanceof Headers)a.forEach((o,s)=>r.setRequestHeader(s,o));else for(const[o,s]of Object.entries(a))Id(s)||r.setRequestHeader(o,String(s));return r.send(n),r},Yc=["text","picture","picture-card"];let Up=1;const Qc=()=>Date.now()+Up++,$c=wn({action:{type:String,default:"#"},headers:{type:dt(Object)},method:{type:String,default:"post"},data:{type:Object,default:()=>rs({})},multiple:{type:Boolean,default:!1},name:{type:String,default:"file"},drag:{type:Boolean,default:!1},withCredentials:Boolean,showFileList:{type:Boolean,default:!0},accept:{type:String,default:""},type:{type:String,default:"select"},fileList:{type:dt(Array),default:()=>rs([])},autoUpload:{type:Boolean,default:!0},listType:{type:String,values:Yc,default:"text"},httpRequest:{type:dt(Function),default:Np},disabled:Boolean,limit:Number}),jp=wn({...$c,beforeUpload:{type:dt(Function),default:qt},beforeRemove:{type:dt(Function)},onRemove:{type:dt(Function),default:qt},onChange:{type:dt(Function),default:qt},onPreview:{type:dt(Function),default:qt},onSuccess:{type:dt(Function),default:qt},onProgress:{type:dt(Function),default:qt},onError:{type:dt(Function),default:qt},onExceed:{type:dt(Function),default:qt}}),zp=wn({files:{type:dt(Array),default:()=>rs([])},disabled:{type:Boolean,default:!1},handlePreview:{type:dt(Function),default:qt},listType:{type:String,values:Yc,default:"text"}}),Hp={remove:e=>!!e},Gp=["onKeydown"],Wp=["src"],Vp=["onClick"],Yp=["onClick"],Qp=["onClick"],$p={name:"ElUploadList"},Xp=ar({...$p,props:zp,emits:Hp,setup(e,{emit:r}){const t=e,{t:n}=Kd(),a=tn("upload"),o=tn("icon"),s=tn("list"),c=kt(!1),d=u=>{t.handlePreview(u)},f=u=>{r("remove",u)};return(u,p)=>(xe(),ze(gd,{tag:"ul",class:Ge([S(a).b("list"),S(a).bm("list",u.listType),S(a).is("disabled",u.disabled)]),name:S(s).b()},{default:ve(()=>[(xe(!0),Le(Ya,null,Hi(u.files,A=>(xe(),Le("li",{key:A.uid||A.name,class:Ge([S(a).be("list","item"),S(a).is(A.status),{focusing:c.value}]),tabindex:"0",onKeydown:Sc(v=>!u.disabled&&f(A),["delete"]),onFocus:p[0]||(p[0]=v=>c.value=!0),onBlur:p[1]||(p[1]=v=>c.value=!1),onClick:p[2]||(p[2]=v=>c.value=!1)},[Ot(u.$slots,"default",{file:A},()=>[u.listType==="picture"||A.status!=="uploading"&&u.listType==="picture-card"?(xe(),Le("img",{key:0,class:Ge(S(a).be("list","item-thumbnail")),src:A.url,alt:""},null,10,Wp)):Ie("v-if",!0),u.listType!=="picture"&&(A.status==="uploading"||u.listType!=="picture-card")?(xe(),Le("div",{key:1,class:Ge(S(a).be("list","item-info"))},[Oe("a",{class:Ge(S(a).be("list","item-name")),onClick:Qn(v=>d(A),["prevent"])},[ce(S(Wr),{class:Ge(S(o).m("document"))},{default:ve(()=>[ce(S(ds))]),_:1},8,["class"]),Oe("span",{class:Ge(S(a).be("list","item-file-name"))},Gt(A.name),3)],10,Vp),A.status==="uploading"?(xe(),ze(S(Vc),{key:0,type:u.listType==="picture-card"?"circle":"line","stroke-width":u.listType==="picture-card"?6:2,percentage:Number(A.percentage),style:en(u.listType==="picture-card"?"":"margin-top: 0.5rem")},null,8,["type","stroke-width","percentage","style"])):Ie("v-if",!0)],2)):Ie("v-if",!0),Oe("label",{class:Ge(S(a).be("list","item-status-label"))},[u.listType==="text"?(xe(),ze(S(Wr),{key:0,class:Ge([S(o).m("upload-success"),S(o).m("circle-check")])},{default:ve(()=>[ce(S(Ic))]),_:1},8,["class"])):["picture-card","picture"].includes(u.listType)?(xe(),ze(S(Wr),{key:1,class:Ge([S(o).m("upload-success"),S(o).m("check")])},{default:ve(()=>[ce(S(Rc))]),_:1},8,["class"])):Ie("v-if",!0)],2),u.disabled?Ie("v-if",!0):(xe(),ze(S(Wr),{key:2,class:Ge(S(o).m("close")),onClick:v=>f(A)},{default:ve(()=>[ce(S(Mc))]),_:2},1032,["class","onClick"])),Ie(" Due to close btn only appears when li gets focused disappears after li gets blurred, thus keyboard navigation can never reach close btn"),Ie(" This is a bug which needs to be fixed "),Ie(" TODO: Fix the incorrect navigation interaction "),u.disabled?Ie("v-if",!0):(xe(),Le("i",{key:3,class:Ge(S(o).m("close-tip"))},Gt(S(n)("el.upload.deleteTip")),3)),u.listType==="picture-card"?(xe(),Le("span",{key:4,class:Ge(S(a).be("list","item-actions"))},[Oe("span",{class:Ge(S(a).be("list","item-preview")),onClick:v=>u.handlePreview(A)},[ce(S(Wr),{class:Ge(S(o).m("zoom-in"))},{default:ve(()=>[ce(S(Rd))]),_:1},8,["class"])],10,Yp),u.disabled?Ie("v-if",!0):(xe(),Le("span",{key:0,class:Ge(S(a).be("list","item-delete")),onClick:v=>f(A)},[ce(S(Wr),{class:Ge(S(o).m("delete"))},{default:ve(()=>[ce(S(Md))]),_:1},8,["class"])],10,Qp))],2)):Ie("v-if",!0)])],42,Gp))),128)),Ot(u.$slots,"append")]),_:3},8,["class","name"]))}});var I0=yn(Xp,[["__file","/home/runner/work/element-plus/element-plus/packages/components/upload/src/upload-list.vue"]]);const qp=wn({disabled:{type:Boolean,default:!1}}),Jp={file:e=>xd(e)},Kp=["onDrop","onDragover"],Zp={name:"ElUploadDrag"},eA=ar({...Zp,props:qp,emits:Jp,setup(e,{emit:r}){const t=e,n="ElUploadDrag",a=us(Wc);a||so(n,"usage: ");const o=tn("upload"),s=kt(!1),c=f=>{if(t.disabled)return;s.value=!1;const u=Array.from(f.dataTransfer.files),p=a.accept.value;if(!p){r("file",u);return}const A=u.filter(v=>{const{type:x,name:m}=v,w=m.includes(".")?`.${m.split(".").pop()}`:"",M=x.replace(/\/.*$/,"");return p.split(",").map(E=>E.trim()).filter(E=>E).some(E=>E.startsWith(".")?w===E:/\/\*$/.test(E)?M===E.replace(/\/\*$/,""):/^[^/]+\/[^/]+$/.test(E)?x===E:!1)});r("file",A)},d=()=>{t.disabled||(s.value=!0)};return(f,u)=>(xe(),Le("div",{class:Ge([S(o).b("dragger"),S(o).is("dragover",s.value)]),onDrop:Qn(c,["prevent"]),onDragover:Qn(d,["prevent"]),onDragleave:u[0]||(u[0]=Qn(p=>s.value=!1,["prevent"]))},[Ot(f.$slots,"default")],42,Kp))}});var tA=yn(eA,[["__file","/home/runner/work/element-plus/element-plus/packages/components/upload/src/upload-dragger.vue"]]);const rA=wn({...$c,beforeUpload:{type:dt(Function),default:qt},onRemove:{type:dt(Function),default:qt},onStart:{type:dt(Function),default:qt},onSuccess:{type:dt(Function),default:qt},onProgress:{type:dt(Function),default:qt},onError:{type:dt(Function),default:qt},onExceed:{type:dt(Function),default:qt}}),nA=["onKeydown"],aA=["name","multiple","accept"],iA={name:"ElUploadContent",inheritAttrs:!1},oA=ar({...iA,props:rA,setup(e,{expose:r}){const t=e,n=tn("upload"),a=Za({}),o=Za(),s=v=>{if(v.length===0)return;const{autoUpload:x,limit:m,fileList:w,multiple:M,onStart:E,onExceed:b}=t;if(m&&w.length+v.length>m){b(v,w);return}M||(v=v.slice(0,1));for(const L of v){const N=L;N.uid=Qc(),E(N),x&&c(N)}},c=async v=>{if(o.value.value="",!t.beforeUpload)return d(v);let x;try{x=await t.beforeUpload(v)}catch{x=!1}if(x===!1){t.onRemove(v);return}let m=v;x instanceof Blob&&(x instanceof File?m=x:m=new File([x],v.name,{type:v.type})),d(Object.assign(m,{uid:v.uid}))},d=v=>{const{headers:x,data:m,method:w,withCredentials:M,name:E,action:b,onProgress:L,onSuccess:N,onError:O,httpRequest:R}=t,{uid:q}=v,H={headers:x||{},withCredentials:M,file:v,data:m,method:w,filename:E,action:b,onProgress:ae=>{L(ae,v)},onSuccess:ae=>{N(ae,v),delete a.value[q]},onError:ae=>{O(ae,v),delete a.value[q]}},le=R(H);a.value[q]=le,le instanceof Promise&&le.then(H.onSuccess,H.onError)},f=v=>{const x=v.target.files;!x||s(Array.from(x))},u=()=>{t.disabled||(o.value.value="",o.value.click())},p=()=>{u()};return r({abort:v=>{Pd(a.value).filter(v?([m])=>String(v.uid)===m:()=>!0).forEach(([m,w])=>{w instanceof XMLHttpRequest&&w.abort(),delete a.value[m]})},upload:c}),(v,x)=>(xe(),Le("div",{class:Ge([S(n).b(),S(n).m(v.listType),S(n).is("drag",v.drag)]),tabindex:"0",onClick:u,onKeydown:Sc(Qn(p,["self"]),["enter","space"])},[v.drag?(xe(),ze(tA,{key:0,disabled:v.disabled,onFile:s},{default:ve(()=>[Ot(v.$slots,"default")]),_:3},8,["disabled"])):Ot(v.$slots,"default",{key:1}),Oe("input",{ref_key:"inputRef",ref:o,class:Ge(S(n).e("input")),name:v.name,multiple:v.multiple,accept:v.accept,type:"file",onChange:f,onClick:x[0]||(x[0]=Qn(()=>{},["stop"]))},null,42,aA)],42,nA))}});var R0=yn(oA,[["__file","/home/runner/work/element-plus/element-plus/packages/components/upload/src/upload-content.vue"]]);const M0="ElUpload",sA=e=>{var r;(r=e.url)!=null&&r.startsWith("blob:")&&URL.revokeObjectURL(e.url)},lA=(e,r)=>{const t=Yd(e,"fileList",void 0,{passive:!0}),n=A=>t.value.find(v=>v.uid===A.uid);function a(A){var v;(v=r.value)==null||v.abort(A)}function o(A=["ready","uploading","success","fail"]){t.value=t.value.filter(v=>!A.includes(v.status))}const s=(A,v)=>{const x=n(v);!x||(console.error(A),x.status="fail",t.value.splice(t.value.indexOf(x),1),e.onError(A,x,t.value),e.onChange(x,t.value))},c=(A,v)=>{const x=n(v);!x||(e.onProgress(A,x,t.value),x.status="uploading",x.percentage=Math.round(A.percent))},d=(A,v)=>{const x=n(v);!x||(x.status="success",x.response=A,e.onSuccess(A,x,t.value),e.onChange(x,t.value))},f=A=>{const v={name:A.name,percentage:0,status:"ready",size:A.size,raw:A,uid:A.uid};if(e.listType==="picture-card"||e.listType==="picture")try{v.url=URL.createObjectURL(A)}catch(x){Ld(M0,x.message),e.onError(x,v,t.value)}t.value.push(v),e.onChange(v,t.value)},u=async A=>{const v=A instanceof File?n(A):A;v||so(M0,"file to be removed not found");const x=m=>{a(m);const w=t.value;w.splice(w.indexOf(m),1),e.onRemove(m,w),sA(m)};e.beforeRemove?await e.beforeRemove(v,t.value)!==!1&&x(v):x(v)};function p(){t.value.filter(({status:A})=>A==="ready").forEach(({raw:A})=>{var v;return A&&((v=r.value)==null?void 0:v.upload(A))})}return Jn(()=>e.listType,A=>{A!=="picture-card"&&A!=="picture"||(t.value=t.value.map(v=>{const{raw:x,url:m}=v;if(!m&&x)try{v.url=URL.createObjectURL(x)}catch(w){e.onError(w,v,t.value)}return v}))}),Jn(t,A=>{for(const v of A)v.uid||(v.uid=Qc()),v.status||(v.status="success")},{immediate:!0,deep:!0}),{uploadFiles:t,abort:a,clearFiles:o,handleError:s,handleProgress:c,handleStart:f,handleSuccess:d,handleRemove:u,submit:p}},cA={name:"ElUpload"},uA=ar({...cA,props:jp,setup(e,{expose:r}){const t=e,n=yd(),a=Nd(),o=Za(),{abort:s,submit:c,clearFiles:d,uploadFiles:f,handleStart:u,handleError:p,handleRemove:A,handleSuccess:v,handleProgress:x}=lA(t,o),m=lt(()=>t.listType==="picture-card"),w=lt(()=>({...t,onStart:u,onProgress:x,onSuccess:v,onError:p,onRemove:A}));return Fc(()=>{f.value.forEach(({url:M})=>{M!=null&&M.startsWith("blob:")&&URL.revokeObjectURL(M)})}),Sa(Wc,{accept:kc(t,"accept")}),r({abort:s,submit:c,clearFiles:d,handleStart:u,handleRemove:A}),(M,E)=>(xe(),Le("div",null,[S(m)&&M.showFileList?(xe(),ze(I0,{key:0,disabled:S(a),"list-type":M.listType,files:S(f),"handle-preview":M.onPreview,onRemove:S(A)},S0({append:ve(()=>[M.listType==="picture-card"?(xe(),ze(R0,Gi({key:0,ref_key:"uploadRef",ref:o},S(w)),{default:ve(()=>[S(n).trigger?Ot(M.$slots,"trigger",{key:0}):Ie("v-if",!0),!S(n).trigger&&S(n).default?Ot(M.$slots,"default",{key:1}):Ie("v-if",!0)]),_:3},16)):Ie("v-if",!0)]),_:2},[M.$slots.file?{name:"default",fn:ve(({file:b})=>[Ot(M.$slots,"file",{file:b})])}:void 0]),1032,["disabled","list-type","files","handle-preview","onRemove"])):Ie("v-if",!0),M.listType!=="picture-card"?(xe(),ze(R0,Gi({key:1,ref_key:"uploadRef",ref:o},S(w)),{default:ve(()=>[S(n).trigger?Ot(M.$slots,"trigger",{key:0}):Ie("v-if",!0),!S(n).trigger&&S(n).default?Ot(M.$slots,"default",{key:1}):Ie("v-if",!0)]),_:3},16)):Ie("v-if",!0),M.$slots.trigger?Ot(M.$slots,"default",{key:2}):Ie("v-if",!0),Ot(M.$slots,"tip"),!S(m)&&M.showFileList?(xe(),ze(I0,{key:3,disabled:S(a),"list-type":M.listType,files:S(f),"handle-preview":M.onPreview,onRemove:S(A)},S0({_:2},[M.$slots.file?{name:"default",fn:ve(({file:b})=>[Ot(M.$slots,"file",{file:b})])}:void 0]),1032,["disabled","list-type","files","handle-preview","onRemove"])):Ie("v-if",!0)]))}});var fA=yn(uA,[["__file","/home/runner/work/element-plus/element-plus/packages/components/upload/src/upload.vue"]]);const hA=oi(fA);const dA={fill:"none",stroke:"currentColor","stroke-width":"1.5","fill-rule":"evenodd","stroke-linecap":"round","stroke-linejoin":"round",width:"17px",height:"17px",viewBox:"0 -2 14 17",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",class:"preview-list-icon vue-feather group-hover-text-theme"},pA=Oe("path",{d:"M0,10.6420028 C0,8.60583431 0,5.5515816 0,1.47924466 C0,0.662280392 0.633305625,0 1.4145277,0 L4.95084696,0 L6.36537467,2.21886699 L12.7307493,2.21886699 C13.5119714,2.21886699 14.145277,2.88114738 14.145277,3.69811164 C14.145277,7.76603445 14.145277,7.76603445 14.145277,11.8339573 C14.145277,12.6509215 13.5119714,13.3132019 12.7307493,13.3132019 C11.9928651,13.3132019 12.1671651,13.3132019 11.798223,13.3132019",id:"Path"},null,-1),AA=Or(),mA=Oe("polyline",{id:"Path-Copy-8",points:"9.49893123 9.53496452 6.74946561 6.60112928 4 9.53496452"},null,-1),vA=Or(),gA=Oe("line",{x1:"6.74946561",y1:"6.60112928",x2:"6.74946561",y2:"13.2022586",id:"Path-Copy-7"},null,-1),xA=[pA,AA,mA,vA,gA];function yA(e,r){return xe(),Le("svg",dA,xA)}var wA={name:"custom-upload-folder",render:yA};const _A={xmlns:"http://www.w3.org/2000/svg",width:"17px",height:"17px",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"vue-feather group-hover-text-theme feather feather-upload-cloud"},bA=Oe("polyline",{points:"16 16 12 12 8 16"},null,-1),EA=Oe("line",{x1:"12",y1:"12",x2:"12",y2:"21"},null,-1),TA=Oe("path",{d:"M20.39 18.39A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.3"},null,-1),kA=Oe("polyline",{points:"16 16 12 12 8 16"},null,-1),SA=[bA,EA,TA,kA];function FA(e,r){return xe(),Le("svg",_A,SA)}var CA={name:"custom-upload",render:FA};const OA={t:"1642829350870",class:"icon",viewBox:"0 0 900 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"4709",width:"200",height:"200"},DA=Oe("path",{d:"M680.554667 508.586667l-38.464-38.165334-102.997334 103.808V85.333333h-54.186666v488.896L381.866667 470.421333l-38.464 38.186667L512 678.442667 680.533333 508.586667z"},null,-1),BA=Oe("path",{d:"M340.224 294.4H341.333333v51.2c-30.293333 0-51.477333 0-67.989333 1.365333-16.192 1.322667-25.6 3.797333-32.810667 7.466667a81.066667 81.066667 0 0 0-35.434666 35.413333c-3.669333 7.210667-6.144 16.64-7.466667 32.853334C196.266667 439.189333 196.266667 460.373333 196.266667 490.666667v213.333333c0 30.293333 0 51.477333 1.365333 67.968 1.322667 16.213333 3.797333 25.642667 7.466667 32.853333a81.066667 81.066667 0 0 0 35.413333 35.413334c7.210667 3.669333 16.64 6.144 32.853333 7.466666 16.490667 1.344 37.674667 1.365333 67.968 1.365334h341.333334c30.293333 0 51.477333 0 67.968-1.365334 16.213333-1.322667 25.642667-3.797333 32.832-7.466666a81.066667 81.066667 0 0 0 35.413333-35.413334c3.690667-7.210667 6.165333-16.64 7.466667-32.853333 1.365333-16.490667 1.386667-37.674667 1.386666-67.968V490.666667c0-30.293333-0.021333-51.477333-1.365333-67.968-1.322667-16.213333-3.797333-25.642667-7.466667-32.853334a81.066667 81.066667 0 0 0-35.434666-35.413333c-7.189333-3.669333-16.64-6.144-32.832-7.466667-16.490667-1.344-37.674667-1.365333-67.968-1.365333v-51.2h1.088c28.949333 0 52.224 0 71.04 1.536 19.370667 1.578667 36.288 4.906667 51.925333 12.885333a132.266667 132.266667 0 0 1 57.792 57.813334c7.957333 15.594667 11.306667 32.512 12.885333 51.882666 1.536 18.837333 1.536 42.112 1.536 71.04v215.530667c0 28.949333 0 52.224-1.536 71.04-1.6 19.392-4.906667 36.309333-12.885333 51.925333a132.266667 132.266667 0 0 1-57.813333 57.813334c-15.616 7.936-32.533333 11.285333-51.882667 12.864-18.837333 1.536-42.112 1.536-71.04 1.536H340.202667c-28.928 0-52.202667 0-71.04-1.536-19.370667-1.578667-36.266667-4.906667-51.904-12.885334a132.266667 132.266667 0 0 1-57.813334-57.813333c-7.936-15.594667-11.285333-32.512-12.864-51.882667-1.536-18.837333-1.536-42.112-1.536-71.04V489.557333c0-28.928 0-52.202667 1.536-71.04 1.578667-19.370667 4.906667-36.266667 12.885334-51.904a132.266667 132.266667 0 0 1 57.813333-57.813333c15.594667-7.936 32.512-11.285333 51.882667-12.864 18.837333-1.536 42.112-1.536 71.04-1.536z"},null,-1),IA=[DA,BA];function RA(e,r){return xe(),Le("svg",OA,IA)}var MA={name:"custom-download",render:RA};const PA={t:"1641821720546",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"4070",width:"200",height:"200"},LA=Oe("defs",null,null,-1),NA=Oe("path",{d:"M128 128v768h369.6v-64H192V192h640v288h64V128H128z m120 160h427.936v64H288V288z m0 160h209.6v64H288v-64z m0 160h122.304v64H288v-64z","p-id":"4071"},null,-1),UA=Oe("path",{d:"M664.832 544a120.8 120.8 0 1 0 0 241.6 120.8 120.8 0 0 0 0-241.6zM480 664.832a184.832 184.832 0 1 1 336.16 106.08L896 850.752 850.752 896l-79.84-79.84a184.8 184.8 0 0 1-290.88-151.36z","p-id":"4072"},null,-1),jA=[LA,NA,UA];function zA(e,r){return xe(),Le("svg",PA,jA)}var HA={name:"custom-preview",render:zA};var Xc={exports:{}};(function(e,r){(function(t,n){e.exports=n()})(window,function(){return function(t){var n={};function a(o){if(n[o])return n[o].exports;var s=n[o]={i:o,l:!1,exports:{}};return t[o].call(s.exports,s,s.exports,a),s.l=!0,s.exports}return a.m=t,a.c=n,a.d=function(o,s,c){a.o(o,s)||Object.defineProperty(o,s,{configurable:!1,enumerable:!0,get:c})},a.r=function(o){Object.defineProperty(o,"__esModule",{value:!0})},a.n=function(o){var s=o&&o.__esModule?function(){return o.default}:function(){return o};return a.d(s,"a",s),s},a.o=function(o,s){return Object.prototype.hasOwnProperty.call(o,s)},a.p="/",a(a.s=41)}([function(t,n,a){Object.defineProperty(n,"__esModule",{value:!0});var o=/mobile/i.test(window.navigator.userAgent),s={secondToTime:function(c){var d=Math.floor(c/3600),f=Math.floor((c-3600*d)/60),u=Math.floor(c-3600*d-60*f);return(d>0?[d,f,u]:[f,u]).map(function(p){return p<10?"0"+p:""+p}).join(":")},getElementViewLeft:function(c){var d=c.offsetLeft,f=c.offsetParent,u=document.body.scrollLeft+document.documentElement.scrollLeft;if(document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement)for(;f!==null&&f!==c;)d+=f.offsetLeft,f=f.offsetParent;else for(;f!==null;)d+=f.offsetLeft,f=f.offsetParent;return d-u},getElementViewTop:function(c,d){for(var f,u=c.offsetTop,p=c.offsetParent;p!==null;)u+=p.offsetTop,p=p.offsetParent;return f=document.body.scrollTop+document.documentElement.scrollTop,d?u:u-f},isMobile:o,storage:{set:function(c,d){localStorage.setItem(c,d)},get:function(c){return localStorage.getItem(c)}},nameMap:{dragStart:o?"touchstart":"mousedown",dragMove:o?"touchmove":"mousemove",dragEnd:o?"touchend":"mouseup"},randomOrder:function(c){return function(d){for(var f=d.length-1;f>=0;f--){var u=Math.floor(Math.random()*(f+1)),p=d[u];d[u]=d[f],d[f]=p}return d}([].concat(function(d){if(Array.isArray(d)){for(var f=0,u=Array(d.length);f + + `,c+=u(x+A),c+=` + `,c+=u(v.name),c+=` + `,c+=u(v.artist),c+=` + +`}),c}},function(t,n,a){t.exports=a(15)},function(t,n,a){Object.defineProperty(n,"__esModule",{value:!0});var o=L(a(33)),s=L(a(32)),c=L(a(31)),d=L(a(30)),f=L(a(29)),u=L(a(28)),p=L(a(27)),A=L(a(26)),v=L(a(25)),x=L(a(24)),m=L(a(23)),w=L(a(22)),M=L(a(21)),E=L(a(20)),b=L(a(19));function L(O){return O&&O.__esModule?O:{default:O}}var N={play:o.default,pause:s.default,volumeUp:c.default,volumeDown:d.default,volumeOff:f.default,orderRandom:u.default,orderList:p.default,menu:A.default,loopAll:v.default,loopOne:x.default,loopNone:m.default,loading:w.default,right:M.default,skip:E.default,lrc:b.default};n.default=N},function(t,n,a){var o,s=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(c){return typeof c}:function(c){return c&&typeof Symbol=="function"&&c.constructor===Symbol&&c!==Symbol.prototype?"symbol":typeof c};o=function(){return this}();try{o=o||Function("return this")()||(0,eval)("this")}catch{(typeof window=="undefined"?"undefined":s(window))==="object"&&(o=window)}t.exports=o},function(t,n,a){var o,s,c=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(d){return typeof d}:function(d){return d&&typeof Symbol=="function"&&d.constructor===Symbol&&d!==Symbol.prototype?"symbol":typeof d};(s=typeof(o=function(){if((typeof window=="undefined"?"undefined":c(window))==="object"&&document.querySelectorAll!==void 0&&window.pageYOffset!==void 0&&history.pushState!==void 0){var d=function(p,A,v,x){return v>x?A:p+(A-p)*((m=v/x)<.5?4*m*m*m:(m-1)*(2*m-2)*(2*m-2)+1);var m},f=function(p,A,v,x){A=A||500;var m=(x=x||window).scrollTop||window.pageYOffset;if(typeof p=="number")var w=parseInt(p);else var w=function(b,L){return b.nodeName==="HTML"?-L:b.getBoundingClientRect().top+L}(p,m);var M=Date.now(),E=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(b){window.setTimeout(b,15)};(function b(){var L=Date.now()-M;x!==window?x.scrollTop=d(m,w,L,A):window.scroll(0,d(m,w,L,A)),L>A?typeof v=="function"&&v(p):E(b)})()},u=function(p){if(!p.defaultPrevented){p.preventDefault(),location.hash!==this.hash&&window.history.pushState(null,null,this.hash);var A=document.getElementById(this.hash.substring(1));if(!A)return;f(A,500,function(v){location.replace("#"+v.id)})}};return document.addEventListener("DOMContentLoaded",function(){for(var p,A=document.querySelectorAll('a[href^="#"]:not([href="#"])'),v=A.length;p=A[--v];)p.addEventListener("click",u,!1)}),f}})=="function"?o.call(n,a,n,t):o)===void 0||(t.exports=s)},function(t,n,a){Object.defineProperty(n,"__esModule",{value:!0});var o=function(){function p(A,v){for(var x=0;x1),x=this.audios.length===0;this.player.template.listOl.innerHTML+=(0,s.default)({theme:this.player.options.theme,audio:A,index:this.audios.length+1}),this.audios=this.audios.concat(A),v&&this.audios.length>1&&this.player.container.classList.add("aplayer-withlist"),this.player.randomOrder=c.default.randomOrder(this.audios.length),this.player.template.listCurs=this.player.container.querySelectorAll(".aplayer-list-cur"),this.player.template.listCurs[this.audios.length-1].style.backgroundColor=A.theme||this.player.options.theme,x&&(this.player.options.order==="random"?this.switch(this.player.randomOrder[0]):this.switch(0))}},{key:"remove",value:function(A){if(this.player.events.trigger("listremove",{index:A}),this.audios[A])if(this.audios.length>1){var v=this.player.container.querySelectorAll(".aplayer-list li");v[A].remove(),this.audios.splice(A,1),this.player.lrc&&this.player.lrc.remove(A),A===this.index&&(this.audios[A]?this.switch(A):this.switch(A-1)),this.index>A&&this.index--;for(var x=A;xf&&!d.player.audio.paused&&(d.player.container.classList.remove("aplayer-loading"),p=!1),f=u)},100)}},{key:"enable",value:function(d){this["enable"+d+"Checker"]=!0,d==="fps"&&this.initfpsChecker()}},{key:"disable",value:function(d){this["enable"+d+"Checker"]=!1}},{key:"destroy",value:function(){var d=this;this.types.forEach(function(f){d["enable"+f+"Checker"]=!1,d[f+"Checker"]&&clearInterval(d[f+"Checker"])})}}]),c}();n.default=s},function(t,n,a){Object.defineProperty(n,"__esModule",{value:!0});var o=function(){function u(p,A){for(var v=0;v1?p.player.options.loop==="one"?(p.player.options.loop="none",p.player.template.loop.innerHTML=c.default.loopNone):p.player.options.loop==="none"?(p.player.options.loop="all",p.player.template.loop.innerHTML=c.default.loopAll):p.player.options.loop==="all"&&(p.player.options.loop="one",p.player.template.loop.innerHTML=c.default.loopOne):p.player.options.loop==="one"||p.player.options.loop==="all"?(p.player.options.loop="none",p.player.template.loop.innerHTML=c.default.loopNone):p.player.options.loop==="none"&&(p.player.options.loop="all",p.player.template.loop.innerHTML=c.default.loopAll)})}},{key:"initMenuButton",value:function(){var p=this;this.player.template.menu.addEventListener("click",function(){p.player.list.toggle()})}},{key:"initMiniSwitcher",value:function(){var p=this;this.player.template.miniSwitcher.addEventListener("click",function(){p.player.setMode(p.player.mode==="mini"?"normal":"mini")})}},{key:"initSkipButton",value:function(){var p=this;this.player.template.skipBackButton.addEventListener("click",function(){p.player.skipBack()}),this.player.template.skipForwardButton.addEventListener("click",function(){p.player.skipForward()}),this.player.template.skipPlayButton.addEventListener("click",function(){p.player.toggle()})}},{key:"initLrcButton",value:function(){var p=this;this.player.template.lrcButton.addEventListener("click",function(){p.player.template.lrcButton.classList.contains("aplayer-icon-lrc-inactivity")?(p.player.template.lrcButton.classList.remove("aplayer-icon-lrc-inactivity"),p.player.lrc&&p.player.lrc.show()):(p.player.template.lrcButton.classList.add("aplayer-icon-lrc-inactivity"),p.player.lrc&&p.player.lrc.hide())})}}]),u}();n.default=f},function(t,n,a){var o=a(2);t.exports=function(s){s=s||{};var c="",d=o.$each,f=s.lyrics,u=(s.$value,s.$index,o.$escape);return d(f,function(p,A){c+=` + +`}),c}},function(t,n,a){Object.defineProperty(n,"__esModule",{value:!0});var o,s=function(){function u(p,A){for(var v=0;v0&&arguments[0]!==void 0?arguments[0]:this.player.audio.currentTime;if(this.index>this.current.length-1||p=this.current[this.index+1][0])for(var A=0;A=this.current[A][0]&&(!this.current[A+1]||p=200&&v.status<300||v.status===304?A.parsed[p]=A.parse(v.responseText):(A.player.notice("LRC file request fails: status "+v.status),A.parsed[p]=[["00:00","Not available"]]),A.container.innerHTML=(0,d.default)({lyrics:A.parsed[p]}),A.update(0),A.current=A.parsed[p])};var x=this.player.list.audios[p].lrc;v.open("get",x,!0),v.send(null)}else this.player.list.audios[p].lrc?this.parsed[p]=this.parse(this.player.list.audios[p].lrc):this.parsed[p]=[["00:00","Not available"]];this.container.innerHTML=(0,d.default)({lyrics:this.parsed[p]}),this.update(0),this.current=this.parsed[p]}},{key:"parse",value:function(p){if(p){for(var A=(p=p.replace(/([^\]^\n])\[/g,function(O,R){return R+` +[`})).split(` +`),v=[],x=A.length,m=0;m/g,"").replace(/^\s+|\s+$/g,"");if(w)for(var E=w.length,b=0;b]/;c.$escape=function(f){return function(u){var p=""+u,A=d.exec(p);if(!A)return u;var v="",x=void 0,m=void 0,w=void 0;for(x=A.index,m=0;x + + `,A(a(1)(v({theme:d.theme,audio:d.audio,index:1}))),c+=` + + +
    +
    +
    `,c+=p.play,c+=`
    +
    + +
    +
    +
    +
    +
    +
    +`):(c+=` +
    +
    +
    `,c+=p.play,c+=`
    +
    +
    +
    + No audio + +
    +
    +
    +
    +
    +
    +
    +
    +
    + + `,c+=p.loading,c+=` + +
    +
    +
    +
    + + 00:00 / 00:00 + + + `,c+=p.skip,c+=` + + + `,c+=p.play,c+=` + + + `,c+=p.skip,c+=` + +
    + +
    +
    +
    +
    +
    +
    + + + + +
    +
    +
    +
    +
    +
    +
    + + `,A(a(1)(v({theme:d.theme,audio:d.audio,index:1}))),c+=` + +
    +`),c}},function(t,n,a){Object.defineProperty(n,"__esModule",{value:!0});var o=function(){function u(p,A){for(var v=0;v'},function(t,n){t.exports=''},function(t,n){t.exports=''},function(t,n){t.exports=''},function(t,n){t.exports=''},function(t,n){t.exports=''},function(t,n){t.exports=''},function(t,n){t.exports=''},function(t,n){t.exports=''},function(t,n){t.exports=''},function(t,n){t.exports=''},function(t,n){t.exports=''},function(t,n){t.exports=''},function(t,n){t.exports=''},function(t,n){t.exports=''},function(t,n,a){var o,s,c=t.exports={};function d(){throw new Error("setTimeout has not been defined")}function f(){throw new Error("clearTimeout has not been defined")}function u(b){if(o===setTimeout)return setTimeout(b,0);if((o===d||!o)&&setTimeout)return o=setTimeout,setTimeout(b,0);try{return o(b,0)}catch{try{return o.call(null,b,0)}catch{return o.call(this,b,0)}}}(function(){try{o=typeof setTimeout=="function"?setTimeout:d}catch{o=d}try{s=typeof clearTimeout=="function"?clearTimeout:f}catch{s=f}})();var p,A=[],v=!1,x=-1;function m(){v&&p&&(v=!1,p.length?A=p.concat(A):x=-1,A.length&&w())}function w(){if(!v){var b=u(m);v=!0;for(var L=A.length;L;){for(p=A,A=[];++x1)for(var N=1;N=0&&(c._idleTimeoutId=setTimeout(function(){c._onTimeout&&c._onTimeout()},d))},a(35),n.setImmediate=setImmediate,n.clearImmediate=clearImmediate},function(t,n,a){(function(o){var s=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(m){return typeof m}:function(m){return m&&typeof Symbol=="function"&&m.constructor===Symbol&&m!==Symbol.prototype?"symbol":typeof m},c=setTimeout;function d(){}function f(m){if(!(this instanceof f))throw new TypeError("Promises must be constructed via new");if(typeof m!="function")throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],x(m,this)}function u(m,w){for(;m._state===3;)m=m._value;m._state!==0?(m._handled=!0,f._immediateFn(function(){var M=m._state===1?w.onFulfilled:w.onRejected;if(M!==null){var E;try{E=M(m._value)}catch(b){return void A(w.promise,b)}p(w.promise,E)}else(m._state===1?p:A)(w.promise,m._value)})):m._deferreds.push(w)}function p(m,w){try{if(w===m)throw new TypeError("A promise cannot be resolved with itself.");if(w&&((w===void 0?"undefined":s(w))==="object"||typeof w=="function")){var M=w.then;if(w instanceof f)return m._state=3,m._value=w,void v(m);if(typeof M=="function")return void x((E=M,b=w,function(){E.apply(b,arguments)}),m)}m._state=1,m._value=w,v(m)}catch(L){A(m,L)}var E,b}function A(m,w){m._state=2,m._value=w,v(m)}function v(m){m._state===2&&m._deferreds.length===0&&f._immediateFn(function(){m._handled||f._unhandledRejectionFn(m._value)});for(var w=0,M=m._deferreds.length;w1&&this.container.classList.add("aplayer-withlist"),c.default.isMobile&&this.container.classList.add("aplayer-mobile"),this.arrow=this.container.offsetWidth<=300,this.arrow&&this.container.classList.add("aplayer-arrow"),this.container=this.options.container,this.options.lrcType===2||this.options.lrcType===!0)for(var R=this.container.getElementsByClassName("aplayer-lrc-content"),q=0;q1?(O.notice("An audio error has occurred, player will skip forward in 2 seconds."),R=setTimeout(function(){O.skipForward(),O.paused||O.play()},2e3)):O.list.audios.length===1&&O.notice("An audio error has occurred.")}),this.events.on("listswitch",function(){R&&clearTimeout(R)}),this.on("ended",function(){O.options.loop==="none"?O.options.order==="list"?O.list.index0&&arguments[0]!==void 0?arguments[0]:this.list.audios[this.list.index].theme||this.options.theme,R=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.list.index;(!(arguments.length>2&&arguments[2]!==void 0)||arguments[2])&&this.list.audios[R]&&(this.list.audios[R].theme=O),this.template.listCurs[R]&&(this.template.listCurs[R].style.backgroundColor=O),R===this.list.index&&(this.template.pic.style.backgroundColor=O,this.template.played.style.background=O,this.template.thumb.style.background=O,this.template.volume.style.background=O)}},{key:"seek",value:function(O){O=Math.max(O,0),O=Math.min(O,this.duration),this.audio.currentTime=O,this.bar.set("played",O/this.duration,"width"),this.template.ptime.innerHTML=c.default.secondToTime(O)}},{key:"setUIPlaying",value:function(){var O=this;if(this.paused&&(this.paused=!1,this.template.button.classList.remove("aplayer-play"),this.template.button.classList.add("aplayer-pause"),this.template.button.innerHTML="",setTimeout(function(){O.template.button.innerHTML=d.default.pause},100),this.template.skipPlayButton.innerHTML=d.default.pause),this.timer.enable("loading"),this.options.mutex)for(var R=0;R=.95?this.template.volumeButton.innerHTML=d.default.volumeUp:this.volume()>0?this.template.volumeButton.innerHTML=d.default.volumeDown:this.template.volumeButton.innerHTML=d.default.volumeOff}},{key:"volume",value:function(O,R){return O=parseFloat(O),isNaN(O)||(O=Math.max(O,0),O=Math.min(O,1),this.bar.set("volume",O,"height"),R||this.storage.set("volume",O),this.audio.volume=O,this.audio.muted&&(this.audio.muted=!1),this.switchVolumeIcon()),this.audio.muted?0:this.audio.volume}},{key:"on",value:function(O,R){this.events.on(O,R)}},{key:"toggle",value:function(){this.template.button.classList.contains("aplayer-play")?this.play():this.template.button.classList.contains("aplayer-pause")&&this.pause()}},{key:"switchAudio",value:function(O){this.list.switch(O)}},{key:"addAudio",value:function(O){this.list.add(O)}},{key:"removeAudio",value:function(O){this.list.remove(O)}},{key:"destroy",value:function(){b.splice(b.indexOf(this),1),this.pause(),this.container.innerHTML="",this.audio.src="",this.timer.destroy(),this.events.trigger("destroy")}},{key:"setMode",value:function(){var O=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"normal";this.mode=O,O==="mini"?this.container.classList.add("aplayer-narrow"):O==="normal"&&this.container.classList.remove("aplayer-narrow")}},{key:"notice",value:function(O){var R=this,q=arguments.length>1&&arguments[1]!==void 0?arguments[1]:2e3,H=arguments.length>2&&arguments[2]!==void 0?arguments[2]:.8;this.template.notice.innerHTML=O,this.template.notice.style.opacity=H,this.noticeTime&&clearTimeout(this.noticeTime),this.events.trigger("noticeshow",{text:O}),q&&(this.noticeTime=setTimeout(function(){R.template.notice.style.opacity=0,R.events.trigger("noticehide")},q))}},{key:"prevIndex",value:function(){if(!(this.list.audios.length>1))return 0;if(this.options.order==="list")return this.list.index-1<0?this.list.audios.length-1:this.list.index-1;if(this.options.order==="random"){var O=this.randomOrder.indexOf(this.list.index);return O===0?this.randomOrder[this.randomOrder.length-1]:this.randomOrder[O-1]}}},{key:"nextIndex",value:function(){if(!(this.list.audios.length>1))return 0;if(this.options.order==="list")return(this.list.index+1)%this.list.audios.length;if(this.options.order==="random"){var O=this.randomOrder.indexOf(this.list.index);return O===this.randomOrder.length-1?this.randomOrder[0]:this.randomOrder[O+1]}}},{key:"skipBack",value:function(){this.list.switch(this.prevIndex())}},{key:"skipForward",value:function(){this.list.switch(this.nextIndex())}},{key:"duration",get:function(){return isNaN(this.audio.duration)?0:this.audio.duration}}],[{key:"version",get:function(){return"1.10.1"}}]),N}();n.default=L},,function(t,n,a){},function(t,n,a){Object.defineProperty(n,"__esModule",{value:!0}),a(40);var o,s=a(38),c=(o=s)&&o.__esModule?o:{default:o};console.log(` + %c APlayer v1.10.1 af84efb %c http://aplayer.js.org +`,"color: #fadfa3; background: #030307; padding:5px 0;","background: #fadfa3; padding:5px 0;"),n.default=c.default}]).default})})(Xc);var GA=wd(Xc.exports);const WA={id:"aplayer"},VA={__name:"AudioPlayer",setup(e){let r=ms(),t=oo();Jn(()=>r.audioArray,s=>{let c=[],d=0;s.forEach((f,u)=>{f.name===r.currentClickRow.name&&(d=u),c.push({name:f.name,artist:" ",url:f.url,cover:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAVqElEQVR4Xu1dXWxcx3U+s1wmkWTAlE0GsOLClB6CwHIQGlIBA4EjGXYDe5naDJAo6EtMPtl9Eol26eShFdUCccx9EPUUt30QmZciTgFTjrlMbAemkhgNUKmh4MhAC1iiAcdGw5XFAibtdH9OcS53qd17Z+6dO3t3788cPnLn95vz3fMzM2cE8B8jwAgoERCMDSPACKgRYIKwdDACPggwQVg8GAEmCMsAI2CGAGsQM9y4liUIMEEsWWiephkCTBAz3LiWJQgwQSxZaJ6mGQJMEDPcuJYlCDBBLFlonqYZAkwQM9y4liUIMEEsWWiephkCTBAz3LiWJQgwQSxZaJ6mGQJMEDPcuJYlCDBBLFlonqYZAkwQM9y4liUIMEEsWWiephkCTBAz3LiWJQgwQSxZaJ6mGQJMEDPcuJYlCDBBLFlonqYZAkwQM9y4liUIMEEsWWiephkCTBAz3LiWJQgwQSxZaJ6mGQJMEDPcuJYlCDBBLFlonqYZAkwQM9x6Umvo8edH82Lgvsrq7KWedMCNhkaACRIasnAVWkIvBIwhiCEQcJJaEIijIMSobmsIsNast4EgNhBgPQf43mZ5dl23DS4XHgEmSHjMlDWGTp4bGthfOyF2STAmYJcMPf9DdAgjdkl0iUkTHeJMkC6wbCeEQDwJQox10VxkVRFgCxDXUOSW6/Xqpa2ff38jssYta4gJYrDgdxdKTwnASSHEhEH1/ldBJIIsVBv1i0yWcPAzQTTxGinMk3Y4jUJMCIAhzWq+xRDhPQBHeJV/Qgjq6ytR9EdtIOKyo1m2By5urc1sRdVuVtthgvisLJlQg/urTwPAdBiHutVkiwC7/oHYghys1Wq1DdOvOI0nf0dtDBs4KoAcfDxpSiAywwTicrVRP2s6nqySon1eTBDJKjuCuL92GgRMh9EWRAghYK2BuFZv1Nf6KXjD3yidxAZO5ISgwEA4jYO4CADn2bn3CgMTpA0TE2IgwkUEXO43Ify+3k7wYN//UdDgpAAxIQTcp/O1d0LJAs5WXi06IWX+A2CCAIABMa4iwGJtO7+YBjv+7idemMjlchRQIHMx8I+IIhBnWKMwQcARHiHOBfkYZD41NcVCP02nQGkOUWA3LF2lIANF4E4EVUWAhdp2/mwaPgJBczH93VoN4uxwD+QvBG3mNYkxd7M8S3Z6Zv7IZ4EGzgUSBXGjgThzc/W55cxMPsRErCTIcKF0RgiY88Mpq8Rwz5k+FIMDecLC1/wis6tWr02lVXuG4ERHUasI0tzLuOC3420LMUyIQqFhJG2SMW3qRx5rCHJ3YZ7s7nOqsC0i/i+AWKiUi76axfRLlJZ6ZHoJhAXfUDHiYnVncMYG3yTzBGlu9pETPqkSUgrV1hq1advMBz/SDo+XpgEdH+VOaTlEOkU8lfVIV6YJEmRSOTvdOZjkuL+cKk4gI5dfEAKekpWwweTKLEGIHCjEmz474UvV7fy0DWZCt+adY54CLPhok8XN8uxUt/0ksX4mCeLnb5CvgQDTNjmaUQieo42FoFC3/BgLYiZJkjmCEDlyQlxQCMVVQJzMut0cBSFkbTj+3IEaOfDSkLATCt7OfzNLWjlTBBkpzJ8GIWgBZX9sUkXEHF+TC3G9ujP4SFZIkhmCjBTmaX9DFala2lwpKqNYEcmNVc04Ph6d2ZJFuTJEkkwQZLhQmhMCzsgktIE4xf5Gb7hrA0lSTxA/n4PJ0RtitLfaPKpC57S8znsGNEmqCaIihxOpQpy09YBd72nR2UPTeac7JDKSpDq6lVqCNMOOv5NuYAl4hDf/+kuTrJIklQTx2wRks6q/xOgwt3bDwFJN0kA8f7M8Ox3f6Mx6Th1Bmmer3pSdyGVymAlBlLX8HPdGo/HNtJm9qSOIKpyb1i9UlMKZlLZUJKGzW7V67cE0HQpNFUF8Ila8z5EUdjTHofQREdc3y7MPJmy4yuGkhiA+fsfVzZViIlJ+pmXR+zVOOjIvAM65+0uTtk8FQVR+B4Vza436WJpUdr+EMyn9DBdKy7Lj8piSSGMqCHJ3YX4hJ8Rpz5cohU5fUgS3X+NoplRad+fmcvyR7fzhpJ/ZSjxBfPY72O/ol5R32Y9qDdNgaiWeIMPjJbr05H5n42p1O38y6V+fLuUqU9WV5+UQH0zy9YNEE0Tl5KXFfs2UhEcwmZHxEt1j7ziOQieCKyvFRyJovidNJJYgju16oHbDfWU2DWq5JyuVgUabGVPedE8FAWYqK0XVPZ5YZ55YgoyMl+h6Z8fNNSdqtTM4yqZVrDLTVefSdU2ww55IgjSPUN+QxM/5bkdX4hl/5d2oVnXDfdEKEc4mMSdZIgmi0B6XKuXZ/jyKGb8cZXoEMt8yqWHfxBFEpT3YMc8WZ4YLpQ3P3kgCtUjiCMLaI1tEUM1Gdq4uiVokUQRh7WEHOVqzTIMWSRRBZEdKEJF9j4zyJg1aJDEEUe17sO+RUXY0pyXTIkm6+JYYgijuevBR9mzzAxRaJDG764khiOxYdJK+JBmX09imp9oXqdZrh5NwjSERBFE559Xt/EHeNY9NdvvWsWJ3PRHHTxJBEMWhRD7O3jcRjbej5jPVL3eMAnFjszx7ON6RJeQZ6JHC/O/cWUrSmAEj7sVMc/8yZx0ScBQ+dg0iu0xDhxIr5dmhNC84jz0cArIQfxJObsdOEJl5lQRgwi0vl+4WAakfmgAzK36CSC71895Ht+KWzvoyMyvuaFbsBBkZL6F7OTdXirGPK50ilu5Ry6JZcYf6YxVE2Q0zPlqSbiHvZvTSaBZArNHMeAkiefgmqRdnull4rquHQDND/K0khXtjJsg8PeF1wgVIorNc6C01lzJFQJbYIU4/JFaCuP0PDu+ailV26inCvbFdtY6NILKwHvsf2RF005nI/JA4ze7YCCJ30JN5cd90sbleeATkG8dwsVIuToRvrfsa8RFE5qAnOD9S91BzC7oIeEL/MT6ZEBtBpLcHU5LxW3ehuZwZArINw7j2xmIjyHDBG8GKM1phtpRcqxcIJEk24iPIeOmWO61oXF+JXiwyt2mOQJKsi9gIIgnxcnIGc5nKVE1pYrmYcmYxQTIlWtmYTJIinLEQRHEHhDVINuS761lYTxBFGvxYD6V1varcQGQIMEG+UTopEDreiYhztzSyleWGIkFARpC4LtHFYmIl6QsRyYpqNjJcKJ0BAfQ08hAiLtca9ZkkpLbRHH7fiiXJBGeC9GnZpW/0JeBKaZ+mH7qbpEQ5mSChly58BZ+XeoGzt8jxZIJY5IPI0hq1xCIu2zo8zftbgwliCUGUzx835Y2P+LMG8SBgi5PuZ1q1g8JHbLwkYQ1igQbxM606RCIBGQT7a0AF98YEyThBgkyrdhFJ8jvhwaLcmxKpJwiZDygEvWM+JgA8r88iwBoArAvEpc3y7Ho7jFk3sXRNqzZM+BSBi2c6BKEsKAMH6k8JbEwIgDEQYtSlmUnu1hsglm+WixdNqBw6zOsIdwMveAbj1zviBubEVOXVIpEGLCCIJxm37+LwfogHHj+COPkMcgNnQIhJXaGnB0IBYaG2kz8f5kkNbYI0n0h7WaYtQgxyrVavTeXz+dGsHjUJY1q148ZvoXRKkYogdBpBCJjTlTl3OSIKNhpTN1efW9ZpQ4sgTXPqTfcFJ50OZAMExKIQ4l867PCYzvubzEFVR8O0WgIAMks9f5yPOIgg8BYAbgohIknegAhzlXLxbND6BxJEcfK2o92hoQNw8OD+vf/durUDW1vbQX27zMX0ZzTxi1q19juGC/NbQog7PR+ODHwgQi14QOEODULZmwV8DAB3+FU7fHhk7+dPP63Chx9u+feCuLhZnp3yK+RLED/N8dnP5uH48SNw/M+PwKFDBz19fPDBLbj8H9fh8uXr8Kc/1bxfTGfOt//SfprXz7SihHi1Rn2MDibK7lsTCrxh6KNBEAGEXFSJFA8//CU4+sC9Hhn75JMqXLv2Prz+2tvKD3ZQBDGIIFJn8/77vwB/+eQxuOuuA4EfDRrkSz/5d3jnnT9I7IrbE08zQYJMq/ZFUBGJbOPKStH7pQlEOJsFWhpExQ36QE9OnYAjRz6vBcBvfvNf8LNX/lNa1s+8VRJE8W4gHDt2GE595yGtQbUXeuXiFXjrrf9W1ks5QZRRK7dm8DVZecNwTz6IIK13MdxCes89Q/DMs4/Bvn2DoeSQrJoXf/SG16LxybslJUgzYnXD7ZSbkqM1i5d+8lu4cuVGp+9BphYCIKTTB9E1rVqTlmYwb/4Y91sYoaStx4Vl78ZQl6Q5pmcKWtaLbIjXfv8+/PjHv/b8pMJeShDZ4+7kiE/PPBGate0jIXNr4dyqxx50vhQpdFLDmFbtOEgfrAQAPtl7G6WRQgk7nNTmT888+6i2WaXisNSaUWgRKUGGJc+iffvUQ3D8ePev8l6+fAN++tJvO7XIri49WykXjePbPf6gSZvXiVrJKspeUnLKxZhiMw78/PocHi+hWzjJIX/2rx/reqj0oX7+B8seU0uWuFBKELd6I7X2D//47a4H1mrg7//up57BNRq5F26u/s33Iuukxw2FNa06NMh4ia7dnpMNkU/27qIiM7Gi+khT+zJzX2ZmeQgicyIpavX05NciEznZ4ADE0ubK32ofHYhsMAYNmZpWra786vOG4S5Kw4V5FK7Q7tzZb3Vl4rcvtcwXkQWKtAjy6GMPwNe//mUDUZJXee21t+GXb/ze9WOqCKIdtVKBpnJC0xzNi0xAJBokaiuGIlrnF37eMWTZXpSHIDIHPWqCKGLSv9hcKT4eJci9aKsb06rDzJIk7951Q+J7C6MXeJm26f6AROV/tI/nudl/DU8QmQBETZDr1/8I//TiLzsH14BLldWi59i8KcC9qNetadU+JlmCZocgvGEo9UGYIOkgSNemVYskiiePnZ/5GQivk84ESThBojKtWgSRvdHY+i1sKiBnY3df9Su90JpBbdY+Gbwa5n5FUHut39nESpGJFaVp1emHlDaEgPvcQhNmw5CijoBA93SGdIUvynLO/QrEmZvl2cUo22WC9IEgI4X50ygEXcfsmW/TzSlc2YbsrqOOWpnuVUeCohRU3baiNguZID0miOnNPl2BaAry3jH2MPVaZf3GqLNhOFyYfzmqC0Qm42+vE3RsPGz7TJBeE0TyxFvYRQoq361Q+J3sDdow1LnIFjT+KH8P6zcF9c0E6TFBVBtxQQuj+7uuGRTUnnLD0OdJbOdE8P4qRdQ6s3gEddaj3xHhvdpOfixKZ50J0mOCqG7uRSEj7TcEu21vZLxEqWlkEShlKqB+mI+686KNzVqjNh31Mw5MkB4TxLkuDGJZFiXSXXxZOSIHAkxHFbVRbRiCIhVQYEQtI2/NM0F6TBASbifKc0dtDBrRRLEQG+v1Tz6zFqUpITva0yKmLBXQ8HiJsstIo3JZOqbCBOkDQbrRFP2qG+btENU16L2I2s7gaJTk7RcGsn6YIEyQPbnQSQUUtOfRbUQtTjIwQVwIpPWwYq+ESCcVkN+eR1QRtV7Nz6Rd1iCsQdo0SGlOCDjjFqTWyd7APY8MZkNhgjBBbhNE8ix260faMPRLFp7VC1ZMECbIHkH8UgFRIgcQYkweco5+g87EHOpFHSYIE6RDrnw2DJXyF3QcpReC2682mSBMEDdB6Li4NPO7QntcrJSLkWQ675fQh+mHCcIE6ZAXvz0Oj/NOybAztOfBYV4O8wZ+PIOOkLQ3kLU9DyYIEySQIFRA8wTy1c2VotRp1+okJYXYxGITyyOqWieQM7jnwRqENYjWdzvoGHuYu+paHSa4EGsQ1iAe8fRLBdSLS0kJ5ofH3OS0PwlP+9MPYYoyFVA/xtvLPliDsAaRypcs00mW7nnokooJwgSRygodOxnYX50TAE6mewRYrO8MzmXlngcTRAMBPu6uAZLlRViDuDRIowFLN1eLqXgfxHLZ7cv0mSBuEyuFbxT2RVIs7YQJwgSxVPT1pm01QXSfv9KDkktlEYHkEkRyuy3qB3RkT7BFnboyi0Jj05zcBDl0zxCcnnkiMgjopdu5M//W0Z7WE2yy+89f/eoX4cmnjkU2ONk71Vm+/BMZcBY1JLtA9sL8X0WGgCySKjvK43mjULabe/DgAfje95+MbHA/fP4VuHVru7M9Sw7hRQZixhuSHdw8Pf04HDp0MJKZy97J1HrllnofLngfdolqcB99tA0v/PAVl2qD9yrlYiISMUeCPjfSNQKyC2RRWjLnz63CBx9uBX6kPRqEasjyxR458nl45tlHu5740tKv4J1rf+hox6ZTql0DaEkDMkvmc58bhNPTT8Bddx3oCgVFkEj6kZYSRHW77bvffRiOPnCv8eBkA3MaY/PKGNMsV5RZMvcf/QI8/fTXjKdNzvn5hVWviQ8gzaYvJQj1PjJe8iQRIAaTFjGxA+nhdnr6+dNPq27zKtPJB4xXkiuCKmFeN1FVkkFy0Nv/nOcsFHf8lQRRHb0mkpw69VAoTUIDWlr8lYccNMio37ZjucoWAqpblseOHYZT33lIe7KkOf75xTe8fodjwMDZSrk4J2tMSZCmLzKZE+KCrCIN8LG/+LKvPUgO+Ruvvw1XrtyQTsSG5APaK8gFpQjQhzqfG1gXQtzpLkDRVSIJ+cd+fxSxev21t6UfaADwvePvSxCVqdU+GNrAOfrAn8E9hw7Cvn2DQEz98INb8O67/+NRZa5JKF9QYllhBNoRCMpNTES5/+i9zse6Zf5ff/eP8NFHH8O1a++riEGvCQemTwokiA5JDJaTyWEAms1V6KEhAbAg0yQmuNAVZgE4sVmepSfwlH9aBKHaYRKb+XXIZpXJcnId50Md0bN6dKSktjM4oXMJTZsgtwfosPhE2CWjQUFOzFVeLa6FrcvlGYEWAs5DQvtr0wA4HVabkNZAwLkw70uGIkhrkE2bcBIRJ/wGSTaeEGIZBSwyMVjIo0SAnPeB3MB0Tgh6r1H2SvBed87HWYjl2nZ+UUdrtI/TiCBuBwrrjSEhcnvZ/uixSzGQ22JSRCkS3JYKASfSlc+PdjzWKmALBKzXPs6vhyVFpAThZWMEsoxA1xoky+Dw3BgBJgjLACMQRZiXUWQEbESANYiNq85z1kaACaINFRe0EQEmiI2rznPWRoAJog0VF7QRASaIjavOc9ZGgAmiDRUXtBEBJoiNq85z1kaACaINFRe0EQEmiI2rznPWRoAJog0VF7QRASaIjavOc9ZGgAmiDRUXtBEBJoiNq85z1kaACaINFRe0EQEmiI2rznPWRoAJog0VF7QRASaIjavOc9ZGgAmiDRUXtBEBJoiNq85z1kaACaINFRe0EQEmiI2rznPWRoAJog0VF7QRASaIjavOc9ZGgAmiDRUXtBEBJoiNq85z1kaACaINFRe0EQEmiI2rznPWRuD/ARWqF5us10LbAAAAAElFTkSuQmCC"})}),o(c,d)});let n="",a,o=(s,c)=>{if(s.length!==0)if(a)n!==t.params.fullpath&&(a.list.clear(),a.list.add(s)),n=t.params.fullpath,a.list.switch(c),a.play();else{const d=document.getElementById("aplayer");a=new GA({container:d,audio:s,fixed:!0,autoplay:!1,preload:"none"}),d.getElementsByClassName("aplayer-miniswitcher")[0].click(),d.getElementsByClassName("aplayer-icon-order")[0].setAttribute("title","\u64AD\u653E\u987A\u5E8F"),d.getElementsByClassName("aplayer-icon-loop")[0].setAttribute("title","\u5FAA\u73AF\u6A21\u5F0F"),d.getElementsByClassName("aplayer-icon-menu")[0].setAttribute("title","\u64AD\u653E\u5217\u8868"),d.getElementsByClassName("aplayer-icon-lrc")[0].style.display="none",a.play(),n=t.params.fullpath}};return(s,c)=>(xe(),Le("div",WA))}};const YA={__name:"BackTop",setup(e){return(r,t)=>{const n=Wr,a=As,o=cp;return xe(),ze(o,{bottom:50,target:".el-main"},{default:ve(()=>[ce(a,{placement:"top",content:"\u56DE\u5230\u9876\u90E8"},{default:ve(()=>[ce(cs,{name:"fade"},{default:ve(()=>[ce(n,null,{default:ve(()=>[ce(S(Bc))]),_:1})]),_:1})]),_:1})]),_:1})}}};var On={exports:{}};(function(e,r){(function(t,n){e.exports=n()})(window,function(){return function(t){var n={};function a(o){if(n[o])return n[o].exports;var s=n[o]={i:o,l:!1,exports:{}};return t[o].call(s.exports,s,s.exports,a),s.l=!0,s.exports}return a.m=t,a.c=n,a.d=function(o,s,c){a.o(o,s)||Object.defineProperty(o,s,{enumerable:!0,get:c})},a.r=function(o){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"__esModule",{value:!0})},a.t=function(o,s){if(1&s&&(o=a(o)),8&s||4&s&&typeof o=="object"&&o&&o.__esModule)return o;var c=Object.create(null);if(a.r(c),Object.defineProperty(c,"default",{enumerable:!0,value:o}),2&s&&typeof o!="string")for(var d in o)a.d(c,d,function(f){return o[f]}.bind(null,d));return c},a.n=function(o){var s=o&&o.__esModule?function(){return o.default}:function(){return o};return a.d(s,"a",s),s},a.o=function(o,s){return Object.prototype.hasOwnProperty.call(o,s)},a.p="/",a(a.s=11)}([function(t,n,a){var o=a(5),s=typeof self=="object"&&self&&self.Object===Object&&self,c=o.a||s||Function("return this")();n.a=c},function(t,n,a){(function(o){var s=a(5),c=r&&!r.nodeType&&r,d=c&&typeof o=="object"&&o&&!o.nodeType&&o,f=d&&d.exports===c&&s.a.process,u=function(){try{var p=d&&d.require&&d.require("util").types;return p||f&&f.binding&&f.binding("util")}catch{}}();n.a=u}).call(this,a(6)(t))},function(t,n,a){function o(E){this._maxSize=E,this.clear()}o.prototype.clear=function(){this._size=0,this._values=Object.create(null)},o.prototype.get=function(E){return this._values[E]},o.prototype.set=function(E,b){return this._size>=this._maxSize&&this.clear(),E in this._values||this._size++,this._values[E]=b};var s=/[^.^\]^[]+|(?=\[\]|\.\.)/g,c=/^\d+$/,d=/^\d/,f=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,u=/^\s*(['"]?)(.*?)(\1)\s*$/,p=new o(512),A=new o(512),v=new o(512);function x(E){return p.get(E)||p.set(E,m(E).map(function(b){return b.replace(u,"$2")}))}function m(E){return E.match(s)}function w(E){return typeof E=="string"&&E&&["'",'"'].indexOf(E.charAt(0))!==-1}function M(E){return!w(E)&&(function(b){return b.match(d)&&!b.match(c)}(E)||function(b){return f.test(b)}(E))}t.exports={Cache:o,split:m,normalizePath:x,setter:function(E){var b=x(E);return A.get(E)||A.set(E,function(L,N){for(var O=0,R=b.length;O-1},Ut=function(i,l){var h=this.__data__,g=Xt(h,i);return g<0?(++this.size,h.push([i,l])):h[g][1]=l,this};function ut(i){var l=-1,h=i==null?0:i.length;for(this.clear();++l-1&&i%1==0&&i-1&&i%1==0&&i<=9007199254740991},_=function(i){if(typeof i=="string"||O(i))return i;var l=i+"";return l=="0"&&1/i==-1/0?"-0":l},D=function(i,l,h){for(var g=-1,y=(l=vi(l,i)).length,k=!1;++g=0||(y[h]=i[h]);return y}var Po=a(4),Bh=/\$\{\s*(\w+)\s*\}/g,Ih=function(i){return function(l){return i.replace(Bh,function(h,g){return da(l[g])})}};function Rr(i,l,h,g){var y=this;this.name="ValidationError",this.value=l,this.path=h,this.type=g,this.errors=[],this.inner=[],i&&[].concat(i).forEach(function(k){y.errors=y.errors.concat(k.errors||k),k.inner&&(y.inner=y.inner.concat(k.inner.length?k.inner:k))}),this.message=this.errors.length>1?this.errors.length+" errors occurred":this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,Rr)}Rr.prototype=Object.create(Error.prototype),Rr.prototype.constructor=Rr,Rr.isError=function(i){return i&&i.name==="ValidationError"},Rr.formatError=function(i,l){typeof i=="string"&&(i=Ih(i));var h=function(g){return g.path=g.label||g.path||"this",typeof i=="function"?i(g):i};return arguments.length===1?h:h(l)};var pl=function(i){return i?Po.SynchronousPromise:Promise};function Al(i,l){return i?null:function(h){return l.push(h),h.value}}function Rh(i){var l=i.validations,h=i.value,g=i.path,y=i.sync,k=i.errors,B=i.sort;return k=function(C){return C===void 0&&(C=[]),C.inner&&C.inner.length?C.inner:[].concat(C)}(k),function(C,W){var G=pl(W);return G.all(C.map(function(Q){return G.resolve(Q).then(function(J){return{fulfilled:!0,value:J}},function(J){return{fulfilled:!1,value:J}})}))}(l,y).then(function(C){var W=C.filter(function(G){return!G.fulfilled}).reduce(function(G,Q){var J=Q.value;if(!Rr.isError(J))throw J;return G.concat(J)},[]);if(B&&W.sort(B),(k=W.concat(k)).length)throw new Rr(k,h,g);return h})}function _i(i){var l,h,g,y=i.endEarly,k=Mo(i,["endEarly"]);return y?(l=k.validations,h=k.value,g=k.sync,pl(g).all(l).catch(function(B){throw B.name==="ValidationError"&&(B.value=h),B}).then(function(){return h})):Rh(k)}var ml=function(i){return Object.prototype.toString.call(i)==="[object Object]"},Mh=function(i){return function(l,h,g){for(var y=-1,k=Object(l),B=g(l),C=B.length;C--;){var W=B[i?C:++y];if(h(k[W],W,k)===!1)break}return l}}(),vl=function(i,l){return i&&Mh(i,l,fa)},Ph=function(i){return this.__data__.set(i,"__lodash_hash_undefined__"),this},Lh=function(i){return this.__data__.has(i)};function bi(i){var l=-1,h=i==null?0:i.length;for(this.__data__=new bn;++lC))return!1;var G=k.get(i);if(G&&k.get(l))return G==l;var Q=-1,J=!0,oe=2&h?new Nh:void 0;for(k.set(i,l),k.set(l,i);++Q=h.length)throw new Error("Yup.reach cannot resolve an array item at index: "+C+", in the path: "+l+". because there is no value at that index. ");y=h,h=h&&h[J],i=i.innerType}if(!G){if(!i.fields||!i.fields[Q])throw new Error("The schema does not contain the path: "+l+". (failed at: "+B+' which is a type: "'+i._type+'")');y=h,h=h&&h[Q],i=i.fields[Q]}k=Q,B=W?"["+C+"]":"."+C}),{schema:i,parent:y,parentPath:k}):{parent:y,parentPath:l,schema:i}}var Cl=function(){function i(){this.list=new Set,this.refs=new Map}var l,h,g=i.prototype;return g.describe=function(){var y=[],k=this.list,B=Array.isArray(k),C=0;for(k=B?k:k[Symbol.iterator]();;){var W;if(B){if(C>=k.length)break;W=k[C++]}else{if((C=k.next()).done)break;W=C.value}var G=W;y.push(G)}var Q=this.refs,J=Array.isArray(Q),oe=0;for(Q=J?Q:Q[Symbol.iterator]();;){var de;if(J){if(oe>=Q.length)break;de=Q[oe++]}else{if((oe=Q.next()).done)break;de=oe.value}var z=de[1];y.push(z.describe())}return y},g.toArray=function(){return cl(this.list).concat(cl(this.refs.values()))},g.add=function(y){kn.isRef(y)?this.refs.set(y.key,y):this.list.add(y)},g.delete=function(y){kn.isRef(y)?this.refs.delete(y.key):this.list.delete(y)},g.has=function(y,k){if(this.list.has(y))return!0;for(var B,C=this.refs.values();!(B=C.next()).done;)if(k(B.value)===y)return!0;return!1},g.clone=function(){var y=new i;return y.list=new Set(this.list),y.refs=new Map(this.refs),y},g.merge=function(y,k){var B=this.clone();return y.list.forEach(function(C){return B.add(C)}),y.refs.forEach(function(C){return B.add(C)}),k.list.forEach(function(C){return B.delete(C)}),k.refs.forEach(function(C){return B.delete(C)}),B},l=i,(h=[{key:"size",get:function(){return this.list.size+this.refs.size}}])&&s(l.prototype,h),i}();function Ue(i){var l=this;if(i===void 0&&(i={}),!(this instanceof Ue))return new Ue;this._deps=[],this._conditions=[],this._options={abortEarly:!0,recursive:!0},this._exclusive=Object.create(null),this._whitelist=new Cl,this._blacklist=new Cl,this.tests=[],this.transforms=[],this.withMutation(function(){l.typeError(pa.notType)}),T(i,"default")&&(this._defaultDefault=i.default),this.type=i.type||"mixed",this._type=i.type||"mixed"}for(var zn=Ue.prototype={__isYupSchema__:!0,constructor:Ue,clone:function(){var i=this;return this._mutate?this:el(this,function(l){if(Aa(l)&&l!==i)return l})},label:function(i){var l=this.clone();return l._label=i,l},meta:function(i){if(arguments.length===0)return this._meta;var l=this.clone();return l._meta=o(l._meta||{},i),l},withMutation:function(i){var l=this._mutate;this._mutate=!0;var h=i(this);return this._mutate=l,h},concat:function(i){if(!i||i===this)return this;if(i._type!==this._type&&this._type!=="mixed")throw new TypeError("You cannot `concat()` schema's of different types: "+this._type+" and "+i._type);var l=function h(g,y){for(var k in y)if(T(y,k)){var B=y[k],C=g[k];if(C===void 0)g[k]=B;else{if(C===B)continue;Aa(C)?Aa(B)&&(g[k]=B.concat(C)):ml(C)?ml(B)&&(g[k]=h(C,B)):Array.isArray(C)&&Array.isArray(B)&&(g[k]=B.concat(C))}}return g}(i.clone(),this);return T(i,"_default")&&(l._default=i._default),l.tests=this.tests,l._exclusive=this._exclusive,l._whitelist=this._whitelist.merge(i._whitelist,i._blacklist),l._blacklist=this._blacklist.merge(i._blacklist,i._whitelist),l.withMutation(function(h){i.tests.forEach(function(g){h.test(g.OPTIONS)})}),l},isType:function(i){return!(!this._nullable||i!==null)||!this._typeCheck||this._typeCheck(i)},resolve:function(i){var l=this;if(l._conditions.length){var h=l._conditions;(l=l.clone())._conditions=[],l=(l=h.reduce(function(g,y){return y.resolve(g,i)},l)).resolve(i)}return l},cast:function(i,l){l===void 0&&(l={});var h=this.resolve(o({},l,{value:i})),g=h._cast(i,l);if(i!==void 0&&l.assert!==!1&&h.isType(g)!==!0){var y=da(i),k=da(g);throw new TypeError("The value of "+(l.path||"field")+' could not be cast to a value that satisfies the schema type: "'+h._type+`". + +attempted value: `+y+` +`+(k!==y?"result of cast: "+k:""))}return g},_cast:function(i){var l=this,h=i===void 0?i:this.transforms.reduce(function(g,y){return y.call(l,g,i)},i);return h===void 0&&T(this,"_default")&&(h=this.default()),h},_validate:function(i,l){var h=this;l===void 0&&(l={});var g=i,y=l.originalValue!=null?l.originalValue:i,k=this._option("strict",l),B=this._option("abortEarly",l),C=l.sync,W=l.path,G=this._label;k||(g=this._cast(g,o({assert:!1},l)));var Q={value:g,path:W,schema:this,options:l,label:G,originalValue:y,sync:C};l.from&&(Q.from=l.from);var J=[];return this._typeError&&J.push(this._typeError(Q)),this._whitelistError&&J.push(this._whitelistError(Q)),this._blacklistError&&J.push(this._blacklistError(Q)),_i({validations:J,endEarly:B,value:g,path:W,sync:C}).then(function(oe){return _i({path:W,sync:C,value:oe,endEarly:B,validations:h.tests.map(function(de){return de(Q)})})})},validate:function(i,l){return l===void 0&&(l={}),this.resolve(o({},l,{value:i}))._validate(i,l)},validateSync:function(i,l){var h,g;if(l===void 0&&(l={}),this.resolve(o({},l,{value:i}))._validate(i,o({},l,{sync:!0})).then(function(y){return h=y}).catch(function(y){return g=y}),g)throw g;return h},isValid:function(i,l){return this.validate(i,l).then(function(){return!0}).catch(function(h){if(h.name==="ValidationError")return!1;throw h})},isValidSync:function(i,l){try{return this.validateSync(i,l),!0}catch(h){if(h.name==="ValidationError")return!1;throw h}},getDefault:function(i){return i===void 0&&(i={}),this.resolve(i).default()},default:function(i){if(arguments.length===0){var l=T(this,"_default")?this._default:this._defaultDefault;return typeof l=="function"?l.call(this):el(l)}var h=this.clone();return h._default=i,h},strict:function(i){i===void 0&&(i=!0);var l=this.clone();return l._options.strict=i,l},_isPresent:function(i){return i!=null},required:function(i){return i===void 0&&(i=pa.required),this.test({message:i,name:"required",exclusive:!0,test:function(l){return this.schema._isPresent(l)}})},notRequired:function(){var i=this.clone();return i.tests=i.tests.filter(function(l){return l.OPTIONS.name!=="required"}),i},nullable:function(i){i===void 0&&(i=!0);var l=this.clone();return l._nullable=i,l},transform:function(i){var l=this.clone();return l.transforms.push(i),l},test:function(){var i;if((i=arguments.length===1?typeof(arguments.length<=0?void 0:arguments[0])=="function"?{test:arguments.length<=0?void 0:arguments[0]}:arguments.length<=0?void 0:arguments[0]:arguments.length===2?{name:arguments.length<=0?void 0:arguments[0],test:arguments.length<=1?void 0:arguments[1]}:{name:arguments.length<=0?void 0:arguments[0],message:arguments.length<=1?void 0:arguments[1],test:arguments.length<=2?void 0:arguments[2]}).message===void 0&&(i.message=pa.default),typeof i.test!="function")throw new TypeError("`test` is a required parameters");var l=this.clone(),h=Ti(i),g=i.exclusive||i.name&&l._exclusive[i.name]===!0;if(i.exclusive&&!i.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return l._exclusive[i.name]=!!i.exclusive,l.tests=l.tests.filter(function(y){return!(y.OPTIONS.name===i.name&&(g||y.OPTIONS.test===h.OPTIONS.test))}),l.tests.push(h),l},when:function(i,l){arguments.length===1&&(l=i,i=".");var h=this.clone(),g=[].concat(i).map(function(y){return new kn(y)});return g.forEach(function(y){y.isSibling&&h._deps.push(y.key)}),h._conditions.push(new Dh(g,l)),h},typeError:function(i){var l=this.clone();return l._typeError=Ti({message:i,name:"typeError",test:function(h){return!(h!==void 0&&!this.schema.isType(h))||this.createError({params:{type:this.schema._type}})}}),l},oneOf:function(i,l){l===void 0&&(l=pa.oneOf);var h=this.clone();return i.forEach(function(g){h._whitelist.add(g),h._blacklist.delete(g)}),h._whitelistError=Ti({message:l,name:"oneOf",test:function(g){if(g===void 0)return!0;var y=this.schema._whitelist;return!!y.has(g,this.resolve)||this.createError({params:{values:y.toArray().join(", ")}})}}),h},notOneOf:function(i,l){l===void 0&&(l=pa.notOneOf);var h=this.clone();return i.forEach(function(g){h._blacklist.add(g),h._whitelist.delete(g)}),h._blacklistError=Ti({message:l,name:"notOneOf",test:function(g){var y=this.schema._blacklist;return!y.has(g,this.resolve)||this.createError({params:{values:y.toArray().join(", ")}})}}),h},strip:function(i){i===void 0&&(i=!0);var l=this.clone();return l._strip=i,l},_option:function(i,l){return T(l,i)?l[i]:this._options[i]},describe:function(){var i=this.clone(),l={type:i._type,meta:i._meta,label:i._label,tests:i.tests.map(function(h){return{name:h.OPTIONS.name,params:h.OPTIONS.params}}).filter(function(h,g,y){return y.findIndex(function(k){return k.name===h.name})===g})};return i._whitelist.size&&(l.oneOf=i._whitelist.describe()),i._blacklist.size&&(l.notOneOf=i._blacklist.describe()),l},defined:function(i){return i===void 0&&(i=pa.defined),this.nullable().test({message:i,name:"defined",exclusive:!0,test:function(l){return l!==void 0}})}},i1=function(){var i=Ol[No];zn[i+"At"]=function(l,h,g){g===void 0&&(g={});var y=a1(this,l,h,g.context),k=y.parent,B=y.parentPath;return y.schema[i](k&&k[B],o({},g,{parent:k,path:l}))}},No=0,Ol=["validate","validateSync"];No0},length:function(i,l){return l===void 0&&(l=ln.length),this.test({message:l,name:"length",exclusive:!0,params:{length:i},test:function(h){return bt(h)||h.length===this.resolve(i)}})},min:function(i,l){return l===void 0&&(l=ln.min),this.test({message:l,name:"min",exclusive:!0,params:{min:i},test:function(h){return bt(h)||h.length>=this.resolve(i)}})},max:function(i,l){return l===void 0&&(l=ln.max),this.test({name:"max",exclusive:!0,message:l,params:{max:i},test:function(h){return bt(h)||h.length<=this.resolve(i)}})},matches:function(i,l){var h,g,y=!1;return l&&(typeof l=="object"?(y=l.excludeEmptyString,h=l.message,g=l.name):h=l),this.test({name:g||"matches",message:h||ln.matches,params:{regex:i},test:function(k){return bt(k)||k===""&&y||k.search(i)!==-1}})},email:function(i){return i===void 0&&(i=ln.email),this.matches(o1,{name:"email",message:i,excludeEmptyString:!0})},url:function(i){return i===void 0&&(i=ln.url),this.matches(s1,{name:"url",message:i,excludeEmptyString:!0})},ensure:function(){return this.default("").transform(function(i){return i===null?"":i})},trim:function(i){return i===void 0&&(i=ln.trim),this.transform(function(l){return l!=null?l.trim():l}).test({message:i,name:"trim",test:l1})},lowercase:function(i){return i===void 0&&(i=ln.lowercase),this.transform(function(l){return bt(l)?l:l.toLowerCase()}).test({message:i,name:"string_case",exclusive:!0,test:function(l){return bt(l)||l===l.toLowerCase()}})},uppercase:function(i){return i===void 0&&(i=ln.uppercase),this.transform(function(l){return bt(l)?l:l.toUpperCase()}).test({message:i,name:"string_case",exclusive:!0,test:function(l){return bt(l)||l===l.toUpperCase()}})}});function Et(){var i=this;if(!(this instanceof Et))return new Et;Ue.call(this,{type:"number"}),this.withMutation(function(){i.transform(function(l){var h=l;if(typeof h=="string"){if((h=h.replace(/\s/g,""))==="")return NaN;h=+h}return this.isType(h)?h:parseFloat(h)})})}ma(Et,Ue,{_typeCheck:function(i){return i instanceof Number&&(i=i.valueOf()),typeof i=="number"&&!function(l){return l!=+l}(i)},min:function(i,l){return l===void 0&&(l=jn.min),this.test({message:l,name:"min",exclusive:!0,params:{min:i},test:function(h){return bt(h)||h>=this.resolve(i)}})},max:function(i,l){return l===void 0&&(l=jn.max),this.test({message:l,name:"max",exclusive:!0,params:{max:i},test:function(h){return bt(h)||h<=this.resolve(i)}})},lessThan:function(i,l){return l===void 0&&(l=jn.lessThan),this.test({message:l,name:"max",exclusive:!0,params:{less:i},test:function(h){return bt(h)||hthis.resolve(i)}})},positive:function(i){return i===void 0&&(i=jn.positive),this.moreThan(0,i)},negative:function(i){return i===void 0&&(i=jn.negative),this.lessThan(0,i)},integer:function(i){return i===void 0&&(i=jn.integer),this.test({name:"integer",message:i,test:function(l){return bt(l)||Number.isInteger(l)}})},truncate:function(){return this.transform(function(i){return bt(i)?i:0|i})},round:function(i){var l=["ceil","floor","round","trunc"];if((i=i&&i.toLowerCase()||"round")==="trunc")return this.truncate();if(l.indexOf(i.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+l.join(", "));return this.transform(function(h){return bt(h)?h:Math[i](h)})}});var c1=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/,u1=new Date("");function Ho(){var i=this;if(!(this instanceof Ho))return new Ho;Ue.call(this,{type:"date"}),this.withMutation(function(){i.transform(function(l){return this.isType(l)?l:(l=function(h){var g,y,k=[1,4,5,6,7,10,11],B=0;if(y=c1.exec(h)){for(var C,W=0;C=k[W];++W)y[C]=+y[C]||0;y[2]=(+y[2]||1)-1,y[3]=+y[3]||1,y[7]=y[7]?String(y[7]).substr(0,3):0,y[8]!==void 0&&y[8]!==""||y[9]!==void 0&&y[9]!==""?(y[8]!=="Z"&&y[9]!==void 0&&(B=60*y[10]+y[11],y[9]==="+"&&(B=0-B)),g=Date.UTC(y[1],y[2],y[3],y[4],y[5]+B,y[6],y[7])):g=+new Date(y[1],y[2],y[3],y[4],y[5],y[6],y[7])}else g=Date.parse?Date.parse(h):NaN;return g}(l),isNaN(l)?u1:new Date(l))})})}function ja(i,l){return l||(l=i.slice(0)),i.raw=l,i}ma(Ho,Ue,{_typeCheck:function(i){return l=i,Object.prototype.toString.call(l)==="[object Date]"&&!isNaN(i.getTime());var l},min:function(i,l){l===void 0&&(l=fl.min);var h=i;if(!kn.isRef(h)&&(h=this.cast(i),!this._typeCheck(h)))throw new TypeError("`min` must be a Date or a value that can be `cast()` to a Date");return this.test({message:l,name:"min",exclusive:!0,params:{min:i},test:function(g){return bt(g)||g>=this.resolve(h)}})},max:function(i,l){l===void 0&&(l=fl.max);var h=i;if(!kn.isRef(h)&&(h=this.cast(i),!this._typeCheck(h)))throw new TypeError("`max` must be a Date or a value that can be `cast()` to a Date");return this.test({message:l,name:"max",exclusive:!0,params:{max:i},test:function(g){return bt(g)||g<=this.resolve(h)}})}});var f1=function(i,l,h,g){var y=-1,k=i==null?0:i.length;for(g&&k&&(h=i[++y]);++yy?0:y+l),(h=h>y?y:h)<0&&(h+=y),y=l>h?0:h-l>>>0,l>>>=0;for(var k=Array(y);++g=g?i:F1(i,l,h)},O1=function(i){return function(l){l=Nn(l);var h=nl(l)?ll(l):void 0,g=h?h[0]:l.charAt(0),y=h?C1(h,1).join(""):l.slice(1);return g[i]()+y}}("toUpperCase"),D1=function(i){return O1(Nn(i).toLowerCase())},B1=Hl(function(i,l,h){return l=l.toLowerCase(),i+(h?D1(l):l)}),I1=function(i,l){var h={};return l=Tl(l),vl(i,function(g,y,k){_e(h,l(g,y,k),g)}),h},R1=a(9),M1=a.n(R1);function Wl(i,l){l===void 0&&(l=[]);var h=[],g=[];function y(C,W){var G=Object(Ei.split)(C)[0];~g.indexOf(G)||g.push(G),~l.indexOf(W+"-"+G)||h.push([W,G])}for(var k in i)if(T(i,k)){var B=i[k];~g.indexOf(k)||g.push(k),kn.isRef(B)&&B.isSibling?y(B.path,k):Aa(B)&&B._deps&&B._deps.forEach(function(C){return y(C,k)})}return M1.a.array(g,h).reverse()}function Vl(i,l){var h=1/0;return i.some(function(g,y){if(l.path.indexOf(g)!==-1)return h=y,!0}),h}function za(i){for(var l=arguments.length,h=new Array(l>1?l-1:0),g=1;g0},of:function(i){var l=this.clone();if(i!==!1&&!Aa(i))throw new TypeError("`array.of()` sub-schema must be a valid yup schema, or `false` to negate a current sub-schema. not: "+da(i));return l._subType=i,l.innerType=i,l},min:function(i,l){return l=l||dl.min,this.test({message:l,name:"min",exclusive:!0,params:{min:i},test:function(h){return bt(h)||h.length>=this.resolve(i)}})},max:function(i,l){return l=l||dl.max,this.test({message:l,name:"max",exclusive:!0,params:{max:i},test:function(h){return bt(h)||h.length<=this.resolve(i)}})},ensure:function(){var i=this;return this.default(function(){return[]}).transform(function(l,h){return i._typeCheck(l)?l:h==null?[]:[].concat(h)})},compact:function(i){var l=i?function(h,g,y){return!i(h,g,y)}:function(h){return!!h};return this.transform(function(h){return h!=null?h.filter(l):h})},describe:function(){var i=Ue.prototype.describe.call(this);return this.innerType&&(i.innerType=this.innerType.describe()),i}});function Kl(i,l){var h=Object.keys(i);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(i);l&&(g=g.filter(function(y){return Object.getOwnPropertyDescriptor(i,y).enumerable})),h.push.apply(h,g)}return h}function Zl(i){for(var l=1;l + `).concat(i.listPoints(h,g).join(""),` + + `)}}function e0(i){this.mode=dr.MODE_8BIT_BYTE,this.data=i,this.parsedData=[];for(var l=0,h=this.data.length;l65536?(g[0]=240|(1835008&y)>>>18,g[1]=128|(258048&y)>>>12,g[2]=128|(4032&y)>>>6,g[3]=128|63&y):y>2048?(g[0]=224|(61440&y)>>>12,g[1]=128|(4032&y)>>>6,g[2]=128|63&y):y>128?(g[0]=192|(1984&y)>>>6,g[1]=128|63&y):g[0]=y,this.parsedData.push(g)}this.parsedData=Array.prototype.concat.apply([],this.parsedData),this.parsedData.length!=this.data.length&&(this.parsedData.unshift(191),this.parsedData.unshift(187),this.parsedData.unshift(239))}function qr(i,l){this.typeNumber=i,this.errorCorrectLevel=l,this.modules=null,this.moduleCount=0,this.position=[],this.dataCache=null,this.dataList=[]}e0.prototype={getLength:function(i){return this.parsedData.length},write:function(i){for(var l=0,h=this.parsedData.length;l=7&&this.setupTypeNumber(i),this.dataCache==null&&(this.dataCache=qr.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,l)},setupPositionProbePattern:function(i,l){for(var h=-1;h<=7;h++)if(!(i+h<=-1||this.moduleCount<=i+h))for(var g=-1;g<=7;g++)l+g<=-1||this.moduleCount<=l+g||(this.modules[i+h][l+g]=0<=h&&h<=6&&(g==0||g==6)||0<=g&&g<=6&&(h==0||h==6)||2<=h&&h<=4&&2<=g&&g<=4)},getBestMaskPattern:function(){for(var i=0,l=0,h=0;h<8;h++){this.makeImpl(!0,h);var g=ft.getLostPoint(this);(h==0||i>g)&&(i=g,l=h)}return l},createMovieClip:function(i,l,h){var g=i.createEmptyMovieClip(l,h);this.make();for(var y=0;y>h&1)==1;this.modules[Math.floor(h/3)][h%3+this.moduleCount-8-3]=g}for(var y=0;y<18;y++){var k=!i&&(l>>y&1)==1;this.modules[y%3+this.moduleCount-8-3][Math.floor(y/3)]=k}},setupTypeInfo:function(i,l){for(var h=this.errorCorrectLevel<<3|l,g=ft.getBCHTypeInfo(h),y=0;y<15;y++){var k=!i&&(g>>y&1)==1;y<6?this.modules[y][8]=k:y<8?this.modules[y+1][8]=k:this.modules[this.moduleCount-15+y][8]=k}for(var B=0;B<15;B++){var C=!i&&(g>>B&1)==1;B<8?this.modules[8][this.moduleCount-B-1]=C:B<9?this.modules[8][15-B-1+1]=C:this.modules[8][15-B-1]=C}this.modules[this.moduleCount-8][8]=!i},mapData:function(i,l){for(var h=-1,g=this.moduleCount-1,y=7,k=0,B=this.moduleCount-1;B>0;B-=2)for(B==6&&B--;;){for(var C=0;C<2;C++)if(this.modules[g][B-C]==null){var W=!1;k>>y&1)==1),ft.getMask(l,g,B-C)&&(W=!W),this.modules[g][B-C]=W,--y==-1&&(k++,y=7)}if((g+=h)<0||this.moduleCount<=g){g-=h,h=-h;break}}}},qr.PAD0=236,qr.PAD1=17,qr.createData=function(i,l,h){for(var g=Mr.getRSBlocks(i,l),y=new Wo,k=0;k8*C)throw new Error("code length overflow. ("+y.getLengthInBits()+">"+8*C+")");for(y.getLengthInBits()+4<=8*C&&y.put(0,4);y.getLengthInBits()%8!=0;)y.putBit(!1);for(;!(y.getLengthInBits()>=8*C||(y.put(qr.PAD0,8),y.getLengthInBits()>=8*C));)y.put(qr.PAD1,8);return qr.createBytes(y,g)},qr.createBytes=function(i,l){for(var h=0,g=0,y=0,k=new Array(l.length),B=new Array(l.length),C=0;C=0?oe.get(z):0}}for(var U=0,Z=0;Z=0;)l^=ft.G15<=0;)l^=ft.G18<>>=1;return l},getPatternPosition:function(i){return ft.PATTERN_POSITION_TABLE[i-1]},getMask:function(i,l,h){switch(i){case z1:return(l+h)%2==0;case H1:return l%2==0;case G1:return h%3==0;case W1:return(l+h)%3==0;case V1:return(Math.floor(l/2)+Math.floor(h/3))%2==0;case Y1:return l*h%2+l*h%3==0;case Q1:return(l*h%2+l*h%3)%2==0;case $1:return(l*h%3+(l+h)%2)%2==0;default:throw new Error("bad maskPattern:"+i)}},getErrorCorrectPolynomial:function(i){for(var l=new ga([1],0),h=0;h5&&(h+=3+k-5)}for(var G=0;G=256;)i-=255;return It.EXP_TABLE[i]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)},ki=0;ki<8;ki++)It.EXP_TABLE[ki]=1<>>7-i%8&1)==1},put:function(i,l){for(var h=0;h>>l-h-1&1)==1)},getLengthInBits:function(){return this.length},putBit:function(i){var l=Math.floor(this.length/8);this.buffer.length<=l&&this.buffer.push(0),i&&(this.buffer[l]|=128>>>this.length%8),this.length++}};var n0=0,cn=1,un=2,Fi=3,Ci=4,Oi=5,Vo=6,q1=7;function a0(i){if(!i.text||i.text.length<=0)return null;var l=new qr((i=r0(r0({},{render:"canvas",width:"100%",height:"100%",typeNumber:-1,correctLevel:1,background:"#ffffff",foreground:"#000000",isSpace:!0}),i)).typeNumber,i.correctLevel);return l.addData(i.text),l.make(),l.$options=i,l}function Sn(i){for(var l=i.getModuleCount(),h=i.getPositionTable(),g=[[3,3],[3,l-4],[l-4,3]],y=new Array(l),k=0;k=0&&g[Q][0]+J=0&&g[Q][1]+oe`)):k===1?y.push(``)):k===2&&y.push(``));else if(g[z][U]===cn)if(W===0)y.push(``));else if(W===1)y.push(``)),y.push(``));else if(W===2){y.push(``)),y.push(``));for(var Z=0;Z`));for(var se=0;se`))}else W===3&&(y.push(``)),y.push(``)));else g[z][U]===un?W===0&&y.push(``)):k===0?y.push(``)):k===1?y.push(``)):k===2&&y.push(``));return y}function i0(i,l){var h=Object.keys(i);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(i);l&&(g=g.filter(function(y){return Object.getOwnPropertyDescriptor(i,y).enumerable})),h.push.apply(h,g)}return h}function xa(i){for(var l=1;l1&&arguments[1]!==void 0?arguments[1]:{};return l=xa(xa({},{type:0,size:100,opacity:100,posType:0}),l),Yo(i,l)},s0=function(i){var l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return l=xa(xa({},{type:1,size:50,opacity:30,posType:1}),l),Yo(i,l)},l0=function(i){var l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return l=xa(xa({},{type:2,size:80,opacity:100,posType:2}),l),Yo(i,l)};function ed(i,l){if(!i)return[];var h=i.getModuleCount(),g=Sn(i),y=[],k=[],B=[],C=l[0]/100,W=l[1]/100,G=l[2]/100,Q=l[3],J=0;C<=0&&(C=70),W<=0&&(W=70);for(var oe=[],de=[],z=0;z`)):Q===1&&(y.push(``)),y.push(``)),y.push(``)),y.push(``)),y.push(``)));else if(g[se][Z]===un)Q===0&&y.push(``));else{if(oe[se][Z]&&de[se][Z]&&se`)),k.push(``)),oe[se][Z]=!1,oe[se+2][Z]=!1,oe[se][Z+2]=!1,oe[se+2][Z+2]=!1,oe[se+1][Z+1]=!1;for(var Ne=0;Ne<3;Ne++)for(var Be=0;Be<3;Be++)de[se+Ne][Z+Be]=!1}}if(oe[se][Z]&&de[se][Z]&&se`)),k.push(``));for(var Jr=0;Jr<2;Jr++)for(var fn=0;fn<2;fn++)oe[se+Jr][Z+fn]=!1,de[se+Jr][Z+fn]=!1}}if(oe[se][Z]&&de[se][Z]&&(Z===0||Z>0&&(!i.isDark(se,Z-1)||!de[se][Z-1]))){for(var Er=Z,Pr=Z,Gn=!0;Gn&&Pr2){for(var pr=Er;pr`)),B.push(``))}}if(oe[se][Z]&&de[se][Z]&&(se===0||se>0&&(!i.isDark(se-1,Z)||!de[se-1][Z]))){for(var ya=se,Tr=se,Lr=!0;Lr&&Tr1){for(var Wn=ya;Wn`))}}oe[se][Z]&&y.push(``))}for(var Fn=0;Fn`)),g.push(``))}}return g}var u0=function(i){return Xr({listPoints:rd})({qrcode:i})};function nd(i,l){if(!i)return[];var h=i.getModuleCount(),g=Sn(i),y=new Array(h),k=1.001,B=l[0],C=l[1],W=l[2],G=l[3],Q=l[4],J=0,oe=[-Math.sqrt(3)/2,.5],de=[Math.sqrt(3)/2,.5],z=[0,0],U="matrix("+String(oe[0])+", "+String(oe[1])+", "+String(de[0])+", "+String(de[1])+", "+String(z[0])+", "+String(z[1])+")";B<=0&&(B=1),C<=0&&(C=1);for(var Z=0;Z`)),y.push(``)),y.push(``))):(y.push(``)),y.push(``)),y.push(``))));return y}function ad(i){if(!i)return"0 0 0 0";var l=i.getModuleCount();return i.$options.isSpace?"".concat(-l," ").concat(-l/2," ").concat(2*l," ").concat(2*l):"".concat(3-l," ").concat(-l/2," ").concat(2*l-6," ").concat(2*l-6)}var id=hr().shape({height:Et().default(.5),height2:Et().default(.5),upColor:ot().default("#FF7F89"),leftColor:ot().default("#FFD7D9"),rightColor:ot().default("#FFEBF3")}),f0=function(i,l){try{l=id.validateSync(l)}catch(g){return console.error(g),""}var h=["height","height2","upColor","leftColor","rightColor"].map(function(g){return l[g]});return Xr({listPoints:nd,getViewBox:ad})({qrcode:i,params:h})};function od(i,l){if(!i)return[];var h=i.getModuleCount(),g=Sn(i),y=new Array(h),k=l[1],B=l[2]/100/3,C=l[3]/100,W=l[4],G=l[5],Q=l[6],J=l[7],oe=0,de=[3,-3],z=[3,-3];B<=0&&(B=1),y.push(``));for(var U=0;U`)):k===1&&y.push(``)):k===0?y.push(``)):k===1&&y.push(``));else if(g[U][Z]===cn){if(i.isDark(U,Z)){if(Q===0)y.push(``));else if(Q===1)y.push(``)),y.push(``)),y.push(``));else if(Q===2){y.push(``)),y.push(``)),y.push(``));for(var se=0;se`));for(var Y=0;Y`))}}}else g[U][Z]===un?i.isDark(U,Z)?Q===0&&y.push(``)):Q===0&&y.push(``)):i.isDark(U,Z)?k===0?y.push(``)):k===1&&y.push(``)):k===0?y.push(``)):k===1&&y.push(``));return y}var sd=hr().shape({backgroudImage:ot(),type:Ue().oneOf([0,1]).default(0),size:Et().default(100),opacity:Et().default(100),otherColorDark:ot().default("#000000"),otherColorLight:ot().default("#FFFFFF"),posType:Ue().oneOf([0,1,2]).default(0),posColor:ot().default("#000000")}),h0=function(i){var l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};try{l=sd.validateSync(l)}catch(y){return console.error(y),""}var h=["backgroudImage","type","size","opacity","otherColorDark","otherColorLight","posType","posColor"].map(function(y){return l[y]}),g=Xr({listPoints:od})({qrcode:i,params:h});return g},ld=function(i){var l=i.qrcode,h=i.params,g=h[5],y=l.$options,k=y.width,B=y.height;return new Promise(function(C,W){(function(G,Q,J,oe){var de=document.createElement("canvas"),z=de.getContext("2d"),U=document.createElement("img"),Z=[];de.style.imageRendering="pixelated",Q*=3,U.src=G[0];var se=G[1]/100,Y=G[2]/100;return new Promise(function(K){U.onload=function(){de.width=Q,de.height=Q,z.imageSmoothingEnabled=!1,z.drawImage(U,0,0,Q,Q);for(var je=0;je(Xe/255+Y-.5)*(se+1)+.5&&(je%3!=1||Ne%3!=1)&&Z.push(``))}var yt,sr,Jr;K(Z)}})})(h,l.getModuleCount(),"#S-black").then(function(G){var Q=` + + + + + + + + + `).concat(G.concat(function(J,oe){if(!J)return[];for(var de=J.getModuleCount(),z=Sn(J),U=new Array(de),Z=oe[3],se=oe[4],Y=oe[6],K=0,je=0;je`)):U.push(``)):Z===0?U.push(``)):U.push(``)):z[je][Ne]===Oi?J.isDark(je,Ne)?se===2?U.push(``)):U.push(``)):se===0?U.push(``)):U.push(``)):z[je][Ne]===cn?J.isDark(je,Ne)&&U.push(``)):z[je][Ne]===un?J.isDark(je,Ne)?U.push(``)):U.push(``)):J.isDark(je,Ne)&&U.push(``))}return U}(l,h)).join(""),` + `);C(Q)}).catch(function(G){C(G)})})},cd=hr().shape({backgroudImage:ot().default(),contrast:Et().default(0),exposure:Et().default(0),alignType:Ue().oneOf([0,1,2]).default(0),timingType:Ue().oneOf([0,1,2]).default(0),otherColor:ot().default("#000000"),posColor:ot().default("#000000")}),d0=function(i){var l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};try{l=cd.validateSync(l)}catch(g){return console.error(g),""}var h=["backgroudImage","contrast","exposure","alignType","timingType","otherColor","posColor"].map(function(g){return l[g]});return ld({qrcode:i,params:h})};function ud(i,l){if(!i)return[];for(var h=i.getModuleCount(),g=Sn(i),y=[],k=[],B=[],C=0,W=l[0],G=l[1],Q=[],J=[],oe=0;oe`)),y.push(``));else if(!(i.isDark(U,z)&&g[U][z]===un)){if(Q[U][z]&&J[U][z]&&U`)),i.isDark(U+1,z+1)&&k.push(``)),Q[U+1][z]=!1,Q[U][z+1]=!1,Q[U+2][z+1]=!1,Q[U+1][z+2]=!1;for(var K=0;K<3;K++)for(var je=0;je<3;je++)J[U+K][z+je]=!1}}if(U`));for(var Ne=0;Ne<2;Ne++)for(var Be=0;Be<2;Be++)Q[U+Ne][z+Be]=!1,J[U+Ne][z+Be]=!1}Q[U][z]&&z`)),Q[U][z]=!1,Q[U][z+1]=!1),Q[U][z]&&U`)),Q[U][z]=!1,Q[U+1][z]=!1),Q[U][z]&&(i.isDark(U,z)?y.push(``)):g[U][z]===n0&&jt(0,1)>.85&&B.push(``)))}for(var Xe=0;Xe`));for(var z=0;z`));else if(C===1)y.push(``)),y.push(``));else if(C===2){y.push(``)),y.push(``));for(var Z=0;Z`));for(var se=0;se`))}else C===3&&(y.push(``)),y.push(``)));else if(i.isDark(z,U)&&g[z][U]===un)C===0&&y.push(``));else{var Y=Math.sqrt(Math.pow((h-1)/2-z,2)+Math.pow((h-1)/2-U,2))/(h/2*Math.sqrt(2));if(B===0){var K=(1-Math.cos(Math.PI*Y))/6+.2,je=G,Ne=Number(i.isDark(z,U));k===0?(K+=.2,y.push(``))):k===1&&y.push(``))}if(B===1){var Be=0,Xe=G,yt=Number(i.isDark(z,U));Y>.25&&Y<.4?(Be=.5,Xe=Q,yt=1):(Be=1/4,k===0&&(Be=.15)),k===0?(Be=2*Be+.1,i.isDark(z,U)?y.push(``)):(Be-=.1,y.push(``)))):k===1&&(i.isDark(z,U)?y.push(``)):y.push(``)))}}return y}var hd=hr().shape({type:Ue().oneOf([0,1]).default(1),size:Ue().oneOf([0,1]).default(0),opacity:Et().default(100),posType:Ue().oneOf([0,1,2,3]).default(1),otherColor:ot().default("#000000"),otherColor2:ot().default("#000000"),posColor:ot().default("#000000")}),dd=hr().shape({type:Ue().oneOf([0,1]).default(1),size:Ue().oneOf([0,1]).default(1),opacity:Et().default(100),posType:Ue().oneOf([0,1,2,3]).default(1),otherColor:ot().default("#ABB8C3"),otherColor2:ot().default("#000000"),posColor:ot().default("#000000")}),m0=function(i,l){try{l=hd.validateSync(l)}catch(g){return console.error(g),""}var h=["type","size","opacity","posType","otherColor","otherColor2","posColor"].map(function(g){return l[g]});return Xr({listPoints:A0})({qrcode:i,params:h})},v0=function(i,l){try{l=dd.validateSync(l)}catch(g){return console.error(g),""}var h=["type","size","opacity","posType","otherColor","otherColor2","posColor"].map(function(g){return l[g]});return Xr({listPoints:A0})({qrcode:i,params:h})};function g0(i,l){if(!i)return[];var h=i.getModuleCount(),g=Sn(i),y=new Array(h),k=l[0],B=l[1]/100,C=l[2]/100,W=l[3],G=0,Q=l[4],J=l[5],oe=[3,-3],de=[3,-3];B<=0&&(B=1);for(var z=[],U=[],Z=0;Z`));else if(W===1)y.push(``)),y.push(``));else if(W===2){y.push(``)),y.push(``));for(var je=0;je`));for(var Ne=0;Ne`))}else W===3&&(y.push(``)),y.push(``)));else if(g[Y][K]===un)W===0&&y.push(``));else{if(k===0){if(Y===0||Y>0&&(!i.isDark(Y-1,K)||!U[Y-1][K])){for(var Be=0,Xe=!0;Xe&&Y+Be1){for(var yt=0;yt`))}}z[Y][K]&&y.push(``))}if(k===1){if(K===0||K>0&&(!i.isDark(Y,K-1)||!U[Y][K-1])){for(var sr=0,Jr=!0;Jr&&K+sr1){for(var fn=0;fn`))}}z[Y][K]&&y.push(``))}if(k===2){if(K===0||K>0&&(!i.isDark(Y,K-1)||!U[Y][K-1])){for(var Er=0,Pr=!0;Pr&&K+Er1){for(var Gn=0;Gn`))}}if(Y===0||Y>0&&(!i.isDark(Y-1,K)||!U[Y-1][K])){for(var pr=0,ya=!0;ya&&Y+pr1){for(var Tr=0;Tr`))}}z[Y][K]&&y.push(``))}if(k===3){if(Y>K^Y+K0&&(!i.isDark(Y,K-1)||!U[Y][K-1])){for(var Lr=0,Wn=!0;Wn&&K+Lr1){for(var Fn=0;Fn`))}}}else if(Y===0||Y>0&&(!i.isDark(Y-1,K)||!U[Y-1][K])){for(var kr=0,w0=!0;w0&&Y+kr1){for(var Di=0;Di`))}}z[Y][K]&&y.push(``))}if(k===4){if(K===0||Y===0||K>0&&Y>0&&(!i.isDark(Y-1,K-1)||!U[Y-1][K-1])){for(var Nr=0,_0=!0;_0&&K+Nr1){for(var wa=0;wa`))}}z[Y][K]&&y.push(``))}if(k===5){if(Y===0||K===h-1||Y>0&&K=0;)i.isDark(Y+Ur,K-Ur)&&z[Y+Ur][K-Ur]?Ur++:b0=!1;if(Ur-0>1){for(var _a=0;_a`))}}z[Y][K]&&y.push(``))}if(k===6){if(Y===0||K===h-1||Y>0&&K=0;)i.isDark(Y+jr,K-jr)&&U[Y+jr][K-jr]?jr++:E0=!1;if(jr-0>1){for(var Bi=0;Bi`))}}if(K===0||Y===0||K>0&&Y>0&&(!i.isDark(Y-1,K-1)||!z[Y-1][K-1])){for(var zr=0,T0=!0;T0&&K+zr1){for(var Ii=0;Ii`))}}y.push(``))}}return y}var pd=hr().shape({type:Ue().oneOf([0,1,2,3,4,5,6]).default(2),size:Et().default(50),opacity:Et().default(100),posType:Ue().oneOf([0,1,2,3]).default(3),otherColor:ot().default("#000000"),posColor:ot().default("#000000")}),Ad=hr().shape({type:Ue().oneOf([0,1,2,3,4,5,6]).default(6),size:Et().default(50),opacity:Et().default(100),posType:Ue().oneOf([0,1,2,3]).default(0),otherColor:ot().default("#000000"),posColor:ot().default("#000000")}),x0=function(i,l){try{l=pd.validateSync(l)}catch(g){return console.error(g),""}var h=["type","size","opacity","posType","otherColor","posColor"].map(function(g){return l[g]});return Xr({listPoints:g0})({qrcode:i,params:h})},y0=function(i,l){try{l=Ad.validateSync(l)}catch(g){return console.error(g),""}var h=["type","size","opacity","posType","otherColor","posColor"].map(function(g){return l[g]});return Xr({listPoints:g0})({qrcode:i,params:h})};n.default={rendererRect:o0,rendererRound:s0,rendererRandRound:l0,rendererDSJ:c0,rendererResImage:d0,rendererImage:h0,renderer25D:f0,rendererRandRect:u0,rendererCircle:p0,rendererFuncA:m0,rendererFuncB:v0,rendererLine:x0,rendererLine2:y0,encodeData:a0}}]).default})})(On,On.exports);let P0=vs(),QA=lt(()=>Vi.value.length>0?Vi.value[0]:null);const Vi=kt([]);let L0=kt(!1);function qc(e,r){const t=()=>{L0.value=!0},n=lt(()=>r.params.storageKey);let a=c=>{qd(c).then(()=>{ns.success("\u590D\u5236\u6210\u529F")})};const o=c=>{let d=document.createElement("xml");d.innerHTML=c;let f=document.createElement("rect");return f.setAttribute("width","100%"),f.setAttribute("height","100%"),f.style.fill="#ffffff",d.children[0].prepend(f),"data:image/svg+xml;utf8,"+encodeURIComponent(d.innerHTML)};return{visible:L0,openLinkDialog:t,copyText:a,data:QA,datas:Vi,loadRowLinkData:c=>{let d=Xn.removeDuplicateSeparator("/"+c.path+"/"+c.name);Hd({storageKey:n.value,path:d}).then(f=>{let u={row:null,currentImg:"",img:{a1:"",a2:"",sp2:"",b1:"",c1:"",sp3:"",aa1:"",aa2:"",ab1:"",ab2:""},link:""};u.row=JSON.parse(JSON.stringify(c)),u.row.size=Xn.fileSizeFormat(c.size),u.link=f.data,d=Xn.removeDuplicateSeparator(P0.config.domain+"/"+P0.config.directLinkPrefix+"/"+n.value+"/"+encodeURI(c.path)+"/"+encodeURI(c.name)),u.directlink=d;const p=On.exports.encodeData({text:f.data,correctLevel:2,isSpace:!1});u.img.a1=o(On.exports.rendererRect(p)),u.img.a2=o(On.exports.rendererRound(p)),u.img.sp1=o(On.exports.rendererDSJ(p)),u.img.aa1=o(On.exports.rendererLine(p)),u.img.ab2=o(On.exports.rendererFuncB(p)),u.currentImg=u.img.a1,Vi.value.push(u)})}}}var Jc={exports:{}};(function(e,r){(function(t,n){n()})(Ha,function(){function t(f,u){return typeof u=="undefined"?u={autoBom:!1}:typeof u!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),u={autoBom:!u}),u.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(f.type)?new Blob(["\uFEFF",f],{type:f.type}):f}function n(f,u,p){var A=new XMLHttpRequest;A.open("GET",f),A.responseType="blob",A.onload=function(){d(A.response,u,p)},A.onerror=function(){console.error("could not download file")},A.send()}function a(f){var u=new XMLHttpRequest;u.open("HEAD",f,!1);try{u.send()}catch{}return 200<=u.status&&299>=u.status}function o(f){try{f.dispatchEvent(new MouseEvent("click"))}catch{var u=document.createEvent("MouseEvents");u.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),f.dispatchEvent(u)}}var s=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof Ha=="object"&&Ha.global===Ha?Ha:void 0,c=s.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),d=s.saveAs||(typeof window!="object"||window!==s?function(){}:"download"in HTMLAnchorElement.prototype&&!c?function(f,u,p){var A=s.URL||s.webkitURL,v=document.createElement("a");u=u||f.name||"download",v.download=u,v.rel="noopener",typeof f=="string"?(v.href=f,v.origin===location.origin?o(v):a(v.href)?n(f,u,p):o(v,v.target="_blank")):(v.href=A.createObjectURL(f),setTimeout(function(){A.revokeObjectURL(v.href)},4e4),setTimeout(function(){o(v)},0))}:"msSaveOrOpenBlob"in navigator?function(f,u,p){if(u=u||f.name||"download",typeof f!="string")navigator.msSaveOrOpenBlob(t(f,p),u);else if(a(f))n(f,u,p);else{var A=document.createElement("a");A.href=f,A.target="_blank",setTimeout(function(){o(A)})}}:function(f,u,p,A){if(A=A||open("","_blank"),A&&(A.document.title=A.document.body.innerText="downloading..."),typeof f=="string")return n(f,u,p);var v=f.type==="application/octet-stream",x=/constructor/i.test(s.HTMLElement)||s.safari,m=/CriOS\/[\d]+/.test(navigator.userAgent);if((m||v&&x||c)&&typeof FileReader!="undefined"){var w=new FileReader;w.onloadend=function(){var b=w.result;b=m?b:b.replace(/^data:[^;]*;/,"data:attachment/file;"),A?A.location.href=b:location=b,A=null},w.readAsDataURL(f)}else{var M=s.URL||s.webkitURL,E=M.createObjectURL(f);A?A.location=E:location.href=E,A=null,setTimeout(function(){M.revokeObjectURL(E)},4e4)}});s.saveAs=d.saveAs=d,e.exports=d})})(Jc);var $A=Jc.exports;/*! xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */var Yi={};Yi.version="0.18.5";var Kc=1252,XA=[874,932,936,949,950,1250,1251,1252,1253,1254,1255,1256,1257,1258,1e4],Zc=function(e){XA.indexOf(e)!=-1&&(Kc=e)};function qA(){Zc(1252)}var ei=function(e){Zc(e)};function JA(){ei(1200),qA()}function KA(e){for(var r=[],t=0;t>1;++t)r[t]=String.fromCharCode(e.charCodeAt(2*t+1)+(e.charCodeAt(2*t)<<8));return r.join("")}var Ri=function(r){return String.fromCharCode(r)},N0=function(r){return String.fromCharCode(r)},Vn,Dn="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function ti(e){for(var r="",t=0,n=0,a=0,o=0,s=0,c=0,d=0,f=0;f>2,n=e.charCodeAt(f++),s=(t&3)<<4|n>>4,a=e.charCodeAt(f++),c=(n&15)<<2|a>>6,d=a&63,isNaN(n)?c=d=64:isNaN(a)&&(d=64),r+=Dn.charAt(o)+Dn.charAt(s)+Dn.charAt(c)+Dn.charAt(d);return r}function gn(e){var r="",t=0,n=0,a=0,o=0,s=0,c=0,d=0;e=e.replace(/[^\w\+\/\=]/g,"");for(var f=0;f>4,r+=String.fromCharCode(t),c=Dn.indexOf(e.charAt(f++)),n=(s&15)<<4|c>>2,c!==64&&(r+=String.fromCharCode(n)),d=Dn.indexOf(e.charAt(f++)),a=(c&3)<<6|d,d!==64&&(r+=String.fromCharCode(a));return r}var Je=function(){return typeof Buffer!="undefined"&&typeof process!="undefined"&&typeof process.versions!="undefined"&&!!process.versions.node}(),_n=function(){if(typeof Buffer!="undefined"){var e=!Buffer.from;if(!e)try{Buffer.from("foo","utf8")}catch{e=!0}return e?function(r,t){return t?new Buffer(r,t):new Buffer(r)}:Buffer.from.bind(Buffer)}return function(){}}();function Kn(e){return Je?Buffer.alloc?Buffer.alloc(e):new Buffer(e):typeof Uint8Array!="undefined"?new Uint8Array(e):new Array(e)}function U0(e){return Je?Buffer.allocUnsafe?Buffer.allocUnsafe(e):new Buffer(e):typeof Uint8Array!="undefined"?new Uint8Array(e):new Array(e)}var Vr=function(r){return Je?_n(r,"binary"):r.split("").map(function(t){return t.charCodeAt(0)&255})};function co(e){if(typeof ArrayBuffer=="undefined")return Vr(e);for(var r=new ArrayBuffer(e.length),t=new Uint8Array(r),n=0;n!=e.length;++n)t[n]=e.charCodeAt(n)&255;return r}function si(e){if(Array.isArray(e))return e.map(function(n){return String.fromCharCode(n)}).join("");for(var r=[],t=0;t>6&31,a[t++]=128|s&63;else if(s>=55296&&s<57344){s=(s&1023)+64;var c=e.charCodeAt(++o)&1023;a[t++]=240|s>>8&7,a[t++]=128|s>>2&63,a[t++]=128|c>>6&15|(s&3)<<4,a[t++]=128|c&63}else a[t++]=224|s>>12&15,a[t++]=128|s>>6&63,a[t++]=128|s&63;t>n&&(r.push(a.slice(0,t)),t=0,a=Kn(65535),n=65530)}return r.push(a.slice(0,t)),Wt(r)}var Qa=/\u0000/g,Mi=/[\u0001-\u0006]/g;function Ca(e){for(var r="",t=e.length-1;t>=0;)r+=e.charAt(t--);return r}function Yr(e,r){var t=""+e;return t.length>=r?t:vt("0",r-t.length)+t}function gs(e,r){var t=""+e;return t.length>=r?t:vt(" ",r-t.length)+t}function Qi(e,r){var t=""+e;return t.length>=r?t:t+vt(" ",r-t.length)}function tm(e,r){var t=""+Math.round(e);return t.length>=r?t:vt("0",r-t.length)+t}function rm(e,r){var t=""+e;return t.length>=r?t:vt("0",r-t.length)+t}var j0=Math.pow(2,32);function ba(e,r){if(e>j0||e<-j0)return tm(e,r);var t=Math.round(e);return rm(t,r)}function $i(e,r){return r=r||0,e.length>=7+r&&(e.charCodeAt(r)|32)===103&&(e.charCodeAt(r+1)|32)===101&&(e.charCodeAt(r+2)|32)===110&&(e.charCodeAt(r+3)|32)===101&&(e.charCodeAt(r+4)|32)===114&&(e.charCodeAt(r+5)|32)===97&&(e.charCodeAt(r+6)|32)===108}var z0=[["Sun","Sunday"],["Mon","Monday"],["Tue","Tuesday"],["Wed","Wednesday"],["Thu","Thursday"],["Fri","Friday"],["Sat","Saturday"]],Qo=[["J","Jan","January"],["F","Feb","February"],["M","Mar","March"],["A","Apr","April"],["M","May","May"],["J","Jun","June"],["J","Jul","July"],["A","Aug","August"],["S","Sep","September"],["O","Oct","October"],["N","Nov","November"],["D","Dec","December"]];function nm(e){return e||(e={}),e[0]="General",e[1]="0",e[2]="0.00",e[3]="#,##0",e[4]="#,##0.00",e[9]="0%",e[10]="0.00%",e[11]="0.00E+00",e[12]="# ?/?",e[13]="# ??/??",e[14]="m/d/yy",e[15]="d-mmm-yy",e[16]="d-mmm",e[17]="mmm-yy",e[18]="h:mm AM/PM",e[19]="h:mm:ss AM/PM",e[20]="h:mm",e[21]="h:mm:ss",e[22]="m/d/yy h:mm",e[37]="#,##0 ;(#,##0)",e[38]="#,##0 ;[Red](#,##0)",e[39]="#,##0.00;(#,##0.00)",e[40]="#,##0.00;[Red](#,##0.00)",e[45]="mm:ss",e[46]="[h]:mm:ss",e[47]="mmss.0",e[48]="##0.0E+0",e[49]="@",e[56]='"\u4E0A\u5348/\u4E0B\u5348 "hh"\u6642"mm"\u5206"ss"\u79D2 "',e}var gt={0:"General",1:"0",2:"0.00",3:"#,##0",4:"#,##0.00",9:"0%",10:"0.00%",11:"0.00E+00",12:"# ?/?",13:"# ??/??",14:"m/d/yy",15:"d-mmm-yy",16:"d-mmm",17:"mmm-yy",18:"h:mm AM/PM",19:"h:mm:ss AM/PM",20:"h:mm",21:"h:mm:ss",22:"m/d/yy h:mm",37:"#,##0 ;(#,##0)",38:"#,##0 ;[Red](#,##0)",39:"#,##0.00;(#,##0.00)",40:"#,##0.00;[Red](#,##0.00)",45:"mm:ss",46:"[h]:mm:ss",47:"mmss.0",48:"##0.0E+0",49:"@",56:'"\u4E0A\u5348/\u4E0B\u5348 "hh"\u6642"mm"\u5206"ss"\u79D2 "'},H0={5:37,6:38,7:39,8:40,23:0,24:0,25:0,26:0,27:14,28:14,29:14,30:14,31:14,50:14,51:14,52:14,53:14,54:14,55:14,56:14,57:14,58:14,59:1,60:2,61:3,62:4,67:9,68:10,69:12,70:13,71:14,72:14,73:15,74:16,75:17,76:20,77:21,78:22,79:45,80:46,81:47,82:0},am={5:'"$"#,##0_);\\("$"#,##0\\)',63:'"$"#,##0_);\\("$"#,##0\\)',6:'"$"#,##0_);[Red]\\("$"#,##0\\)',64:'"$"#,##0_);[Red]\\("$"#,##0\\)',7:'"$"#,##0.00_);\\("$"#,##0.00\\)',65:'"$"#,##0.00_);\\("$"#,##0.00\\)',8:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',66:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',41:'_(* #,##0_);_(* \\(#,##0\\);_(* "-"_);_(@_)',42:'_("$"* #,##0_);_("$"* \\(#,##0\\);_("$"* "-"_);_(@_)',43:'_(* #,##0.00_);_(* \\(#,##0.00\\);_(* "-"??_);_(@_)',44:'_("$"* #,##0.00_);_("$"* \\(#,##0.00\\);_("$"* "-"??_);_(@_)'};function Xi(e,r,t){for(var n=e<0?-1:1,a=e*n,o=0,s=1,c=0,d=1,f=0,u=0,p=Math.floor(a);fr&&(f>r?(u=d,c=o):(u=f,c=s)),!t)return[0,n*c,u];var A=Math.floor(n*c/u);return[A,n*c-A*u,u]}function Pi(e,r,t){if(e>2958465||e<0)return null;var n=e|0,a=Math.floor(86400*(e-n)),o=0,s=[],c={D:n,T:a,u:86400*(e-n)-a,y:0,m:0,d:0,H:0,M:0,S:0,q:0};if(Math.abs(c.u)<1e-6&&(c.u=0),r&&r.date1904&&(n+=1462),c.u>.9999&&(c.u=0,++a==86400&&(c.T=a=0,++n,++c.D)),n===60)s=t?[1317,10,29]:[1900,2,29],o=3;else if(n===0)s=t?[1317,8,29]:[1900,1,0],o=6;else{n>60&&--n;var d=new Date(1900,0,1);d.setDate(d.getDate()+n-1),s=[d.getFullYear(),d.getMonth()+1,d.getDate()],o=d.getDay(),n<60&&(o=(o+6)%7),t&&(o=fm(d,s))}return c.y=s[0],c.m=s[1],c.d=s[2],c.S=a%60,a=Math.floor(a/60),c.M=a%60,a=Math.floor(a/60),c.H=a,c.q=o,c}var eu=new Date(1899,11,31,0,0,0),im=eu.getTime(),om=new Date(1900,2,1,0,0,0);function tu(e,r){var t=e.getTime();return r?t-=1461*24*60*60*1e3:e>=om&&(t+=24*60*60*1e3),(t-(im+(e.getTimezoneOffset()-eu.getTimezoneOffset())*6e4))/(24*60*60*1e3)}function xs(e){return e.indexOf(".")==-1?e:e.replace(/(?:\.0*|(\.\d*[1-9])0+)$/,"$1")}function sm(e){return e.indexOf("E")==-1?e:e.replace(/(?:\.0*|(\.\d*[1-9])0+)[Ee]/,"$1E").replace(/(E[+-])(\d)$/,"$10$2")}function lm(e){var r=e<0?12:11,t=xs(e.toFixed(12));return t.length<=r||(t=e.toPrecision(10),t.length<=r)?t:e.toExponential(5)}function cm(e){var r=xs(e.toFixed(11));return r.length>(e<0?12:11)||r==="0"||r==="-0"?e.toPrecision(6):r}function um(e){var r=Math.floor(Math.log(Math.abs(e))*Math.LOG10E),t;return r>=-4&&r<=-1?t=e.toPrecision(10+r):Math.abs(r)<=9?t=lm(e):r===10?t=e.toFixed(10).substr(0,12):t=cm(e),xs(sm(t.toUpperCase()))}function as(e,r){switch(typeof e){case"string":return e;case"boolean":return e?"TRUE":"FALSE";case"number":return(e|0)===e?e.toString(10):um(e);case"undefined":return"";case"object":if(e==null)return"";if(e instanceof Date)return In(14,tu(e,r&&r.date1904),r)}throw new Error("unsupported value in General format: "+e)}function fm(e,r){r[0]-=581;var t=e.getDay();return e<60&&(t=(t+6)%7),t}function hm(e,r,t,n){var a="",o=0,s=0,c=t.y,d,f=0;switch(e){case 98:c=t.y+543;case 121:switch(r.length){case 1:case 2:d=c%100,f=2;break;default:d=c%1e4,f=4;break}break;case 109:switch(r.length){case 1:case 2:d=t.m,f=r.length;break;case 3:return Qo[t.m-1][1];case 5:return Qo[t.m-1][0];default:return Qo[t.m-1][2]}break;case 100:switch(r.length){case 1:case 2:d=t.d,f=r.length;break;case 3:return z0[t.q][0];default:return z0[t.q][1]}break;case 104:switch(r.length){case 1:case 2:d=1+(t.H+11)%12,f=r.length;break;default:throw"bad hour format: "+r}break;case 72:switch(r.length){case 1:case 2:d=t.H,f=r.length;break;default:throw"bad hour format: "+r}break;case 77:switch(r.length){case 1:case 2:d=t.M,f=r.length;break;default:throw"bad minute format: "+r}break;case 115:if(r!="s"&&r!="ss"&&r!=".0"&&r!=".00"&&r!=".000")throw"bad second format: "+r;return t.u===0&&(r=="s"||r=="ss")?Yr(t.S,r.length):(n>=2?s=n===3?1e3:100:s=n===1?10:1,o=Math.round(s*(t.S+t.u)),o>=60*s&&(o=0),r==="s"?o===0?"0":""+o/s:(a=Yr(o,2+n),r==="ss"?a.substr(0,2):"."+a.substr(2,r.length-1)));case 90:switch(r){case"[h]":case"[hh]":d=t.D*24+t.H;break;case"[m]":case"[mm]":d=(t.D*24+t.H)*60+t.M;break;case"[s]":case"[ss]":d=((t.D*24+t.H)*60+t.M)*60+Math.round(t.S+t.u);break;default:throw"bad abstime format: "+r}f=r.length===3?1:2;break;case 101:d=c,f=1;break}var u=f>0?Yr(d,f):"";return u}function Bn(e){var r=3;if(e.length<=r)return e;for(var t=e.length%r,n=e.substr(0,t);t!=e.length;t+=r)n+=(n.length>0?",":"")+e.substr(t,r);return n}var ru=/%/g;function dm(e,r,t){var n=r.replace(ru,""),a=r.length-n.length;return An(e,n,t*Math.pow(10,2*a))+vt("%",a)}function pm(e,r,t){for(var n=r.length-1;r.charCodeAt(n-1)===44;)--n;return An(e,r.substr(0,n),t/Math.pow(10,3*(r.length-n)))}function nu(e,r){var t,n=e.indexOf("E")-e.indexOf(".")-1;if(e.match(/^#+0.0E\+0$/)){if(r==0)return"0.0E+0";if(r<0)return"-"+nu(e,-r);var a=e.indexOf(".");a===-1&&(a=e.indexOf("E"));var o=Math.floor(Math.log(r)*Math.LOG10E)%a;if(o<0&&(o+=a),t=(r/Math.pow(10,o)).toPrecision(n+1+(a+o)%a),t.indexOf("e")===-1){var s=Math.floor(Math.log(r)*Math.LOG10E);for(t.indexOf(".")===-1?t=t.charAt(0)+"."+t.substr(1)+"E+"+(s-t.length+o):t+="E+"+(s-o);t.substr(0,2)==="0.";)t=t.charAt(0)+t.substr(2,a)+"."+t.substr(2+a),t=t.replace(/^0+([1-9])/,"$1").replace(/^0+\./,"0.");t=t.replace(/\+-/,"-")}t=t.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,function(c,d,f,u){return d+f+u.substr(0,(a+o)%a)+"."+u.substr(o)+"E"})}else t=r.toExponential(n);return e.match(/E\+00$/)&&t.match(/e[+-]\d$/)&&(t=t.substr(0,t.length-1)+"0"+t.charAt(t.length-1)),e.match(/E\-/)&&t.match(/e\+/)&&(t=t.replace(/e\+/,"e")),t.replace("e","E")}var au=/# (\?+)( ?)\/( ?)(\d+)/;function Am(e,r,t){var n=parseInt(e[4],10),a=Math.round(r*n),o=Math.floor(a/n),s=a-o*n,c=n;return t+(o===0?"":""+o)+" "+(s===0?vt(" ",e[1].length+1+e[4].length):gs(s,e[1].length)+e[2]+"/"+e[3]+Yr(c,e[4].length))}function mm(e,r,t){return t+(r===0?"":""+r)+vt(" ",e[1].length+2+e[4].length)}var iu=/^#*0*\.([0#]+)/,ou=/\).*[0#]/,su=/\(###\) ###\\?-####/;function tr(e){for(var r="",t,n=0;n!=e.length;++n)switch(t=e.charCodeAt(n)){case 35:break;case 63:r+=" ";break;case 48:r+="0";break;default:r+=String.fromCharCode(t)}return r}function G0(e,r){var t=Math.pow(10,r);return""+Math.round(e*t)/t}function W0(e,r){var t=e-Math.floor(e),n=Math.pow(10,r);return r<(""+Math.round(t*n)).length?0:Math.round(t*n)}function vm(e,r){return r<(""+Math.round((e-Math.floor(e))*Math.pow(10,r))).length?1:0}function gm(e){return e<2147483647&&e>-2147483648?""+(e>=0?e|0:e-1|0):""+Math.floor(e)}function Sr(e,r,t){if(e.charCodeAt(0)===40&&!r.match(ou)){var n=r.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");return t>=0?Sr("n",n,t):"("+Sr("n",n,-t)+")"}if(r.charCodeAt(r.length-1)===44)return pm(e,r,t);if(r.indexOf("%")!==-1)return dm(e,r,t);if(r.indexOf("E")!==-1)return nu(r,t);if(r.charCodeAt(0)===36)return"$"+Sr(e,r.substr(r.charAt(1)==" "?2:1),t);var a,o,s,c,d=Math.abs(t),f=t<0?"-":"";if(r.match(/^00+$/))return f+ba(d,r.length);if(r.match(/^[#?]+$/))return a=ba(t,0),a==="0"&&(a=""),a.length>r.length?a:tr(r.substr(0,r.length-a.length))+a;if(o=r.match(au))return Am(o,d,f);if(r.match(/^#+0+$/))return f+ba(d,r.length-r.indexOf("0"));if(o=r.match(iu))return a=G0(t,o[1].length).replace(/^([^\.]+)$/,"$1."+tr(o[1])).replace(/\.$/,"."+tr(o[1])).replace(/\.(\d*)$/,function(x,m){return"."+m+vt("0",tr(o[1]).length-m.length)}),r.indexOf("0.")!==-1?a:a.replace(/^0\./,".");if(r=r.replace(/^#+([0.])/,"$1"),o=r.match(/^(0*)\.(#*)$/))return f+G0(d,o[2].length).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,o[1].length?"0.":".");if(o=r.match(/^#{1,3},##0(\.?)$/))return f+Bn(ba(d,0));if(o=r.match(/^#,##0\.([#0]*0)$/))return t<0?"-"+Sr(e,r,-t):Bn(""+(Math.floor(t)+vm(t,o[1].length)))+"."+Yr(W0(t,o[1].length),o[1].length);if(o=r.match(/^#,#*,#0/))return Sr(e,r.replace(/^#,#*,/,""),t);if(o=r.match(/^([0#]+)(\\?-([0#]+))+$/))return a=Ca(Sr(e,r.replace(/[\\-]/g,""),t)),s=0,Ca(Ca(r.replace(/\\/g,"")).replace(/[0#]/g,function(x){return s=0?Kr("n",n,t):"("+Kr("n",n,-t)+")"}if(r.charCodeAt(r.length-1)===44)return xm(e,r,t);if(r.indexOf("%")!==-1)return ym(e,r,t);if(r.indexOf("E")!==-1)return lu(r,t);if(r.charCodeAt(0)===36)return"$"+Kr(e,r.substr(r.charAt(1)==" "?2:1),t);var a,o,s,c,d=Math.abs(t),f=t<0?"-":"";if(r.match(/^00+$/))return f+Yr(d,r.length);if(r.match(/^[#?]+$/))return a=""+t,t===0&&(a=""),a.length>r.length?a:tr(r.substr(0,r.length-a.length))+a;if(o=r.match(au))return mm(o,d,f);if(r.match(/^#+0+$/))return f+Yr(d,r.length-r.indexOf("0"));if(o=r.match(iu))return a=(""+t).replace(/^([^\.]+)$/,"$1."+tr(o[1])).replace(/\.$/,"."+tr(o[1])),a=a.replace(/\.(\d*)$/,function(x,m){return"."+m+vt("0",tr(o[1]).length-m.length)}),r.indexOf("0.")!==-1?a:a.replace(/^0\./,".");if(r=r.replace(/^#+([0.])/,"$1"),o=r.match(/^(0*)\.(#*)$/))return f+(""+d).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,o[1].length?"0.":".");if(o=r.match(/^#{1,3},##0(\.?)$/))return f+Bn(""+d);if(o=r.match(/^#,##0\.([#0]*0)$/))return t<0?"-"+Kr(e,r,-t):Bn(""+t)+"."+vt("0",o[1].length);if(o=r.match(/^#,#*,#0/))return Kr(e,r.replace(/^#,#*,/,""),t);if(o=r.match(/^([0#]+)(\\?-([0#]+))+$/))return a=Ca(Kr(e,r.replace(/[\\-]/g,""),t)),s=0,Ca(Ca(r.replace(/\\/g,"")).replace(/[0#]/g,function(x){return s-1||t=="\\"&&e.charAt(r+1)=="-"&&"0#".indexOf(e.charAt(r+2))>-1););break;case"?":for(;e.charAt(++r)===t;);break;case"*":++r,(e.charAt(r)==" "||e.charAt(r)=="*")&&++r;break;case"(":case")":++r;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":for(;r-1;);break;case" ":++r;break;default:++r;break}return!1}function _m(e,r,t,n){for(var a=[],o="",s=0,c="",d="t",f,u,p,A="H";s=12?"P":"A"),m.t="T",A="h",s+=3):e.substr(s,5).toUpperCase()==="AM/PM"?(f!=null&&(m.v=f.H>=12?"PM":"AM"),m.t="T",s+=5,A="h"):e.substr(s,5).toUpperCase()==="\u4E0A\u5348/\u4E0B\u5348"?(f!=null&&(m.v=f.H>=12?"\u4E0B\u5348":"\u4E0A\u5348"),m.t="T",s+=5,A="h"):(m.t="t",++s),f==null&&m.t==="T")return"";a[a.length]=m,d=c;break;case"[":for(o=c;e.charAt(s++)!=="]"&&s-1&&(o=(o.match(/\$([^-\[\]]*)/)||[])[1]||"$",uu(e)||(a[a.length]={t:"t",v:o}));break;case".":if(f!=null){for(o=c;++s-1;)o+=c;a[a.length]={t:"n",v:o};break;case"?":for(o=c;e.charAt(++s)===c;)o+=c;a[a.length]={t:c,v:o},d=c;break;case"*":++s,(e.charAt(s)==" "||e.charAt(s)=="*")&&++s;break;case"(":case")":a[a.length]={t:n===1?"t":c,v:c},++s;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":for(o=c;s-1;)o+=e.charAt(s);a[a.length]={t:"D",v:o};break;case" ":a[a.length]={t:c,v:c},++s;break;case"$":a[a.length]={t:"t",v:"$"},++s;break;default:if(",$-+/():!^&'~{}<>=\u20ACacfijklopqrtuvwxzP".indexOf(c)===-1)throw new Error("unrecognized character "+c+" in "+e);a[a.length]={t:"t",v:c},++s;break}var w=0,M=0,E;for(s=a.length-1,d="t";s>=0;--s)switch(a[s].t){case"h":case"H":a[s].t=A,d="h",w<1&&(w=1);break;case"s":(E=a[s].v.match(/\.0+$/))&&(M=Math.max(M,E[0].length-1)),w<3&&(w=3);case"d":case"y":case"M":case"e":d=a[s].t;break;case"m":d==="s"&&(a[s].t="M",w<2&&(w=2));break;case"X":break;case"Z":w<1&&a[s].v.match(/[Hh]/)&&(w=1),w<2&&a[s].v.match(/[Mm]/)&&(w=2),w<3&&a[s].v.match(/[Ss]/)&&(w=3)}switch(w){case 0:break;case 1:f.u>=.5&&(f.u=0,++f.S),f.S>=60&&(f.S=0,++f.M),f.M>=60&&(f.M=0,++f.H);break;case 2:f.u>=.5&&(f.u=0,++f.S),f.S>=60&&(f.S=0,++f.M);break}var b="",L;for(s=0;s0){b.charCodeAt(0)==40?(O=r<0&&b.charCodeAt(0)===45?-r:r,R=An("n",b,O)):(O=r<0&&n>1?-r:r,R=An("n",b,O),O<0&&a[0]&&a[0].t=="t"&&(R=R.substr(1),a[0].v="-"+a[0].v)),L=R.length-1;var q=a.length;for(s=0;s-1){q=s;break}var H=a.length;if(q===a.length&&R.indexOf("E")===-1){for(s=a.length-1;s>=0;--s)a[s]==null||"n?".indexOf(a[s].t)===-1||(L>=a[s].v.length-1?(L-=a[s].v.length,a[s].v=R.substr(L+1,a[s].v.length)):L<0?a[s].v="":(a[s].v=R.substr(0,L+1),L=-1),a[s].t="t",H=s);L>=0&&H=0;--s)if(!(a[s]==null||"n?".indexOf(a[s].t)===-1)){for(u=a[s].v.indexOf(".")>-1&&s===q?a[s].v.indexOf(".")-1:a[s].v.length-1,N=a[s].v.substr(u+1);u>=0;--u)L>=0&&(a[s].v.charAt(u)==="0"||a[s].v.charAt(u)==="#")&&(N=R.charAt(L--)+N);a[s].v=N,a[s].t="t",H=s}for(L>=0&&H-1&&s===q?a[s].v.indexOf(".")+1:0,N=a[s].v.substr(0,u);u-1&&(O=n>1&&r<0&&s>0&&a[s-1].v==="-"?-r:r,a[s].v=An(a[s].t,a[s].v,O),a[s].t="t");var le="";for(s=0;s!==a.length;++s)a[s]!=null&&(le+=a[s].v);return le}var V0=/\[(=|>[=]?|<[>=]?)(-?\d+(?:\.\d*)?)\]/;function Y0(e,r){if(r==null)return!1;var t=parseFloat(r[2]);switch(r[1]){case"=":if(e==t)return!0;break;case">":if(e>t)return!0;break;case"<":if(e":if(e!=t)return!0;break;case">=":if(e>=t)return!0;break;case"<=":if(e<=t)return!0;break}return!1}function bm(e,r){var t=wm(e),n=t.length,a=t[n-1].indexOf("@");if(n<4&&a>-1&&--n,t.length>4)throw new Error("cannot find right format for |"+t.join("|")+"|");if(typeof r!="number")return[4,t.length===4||a>-1?t[t.length-1]:"@"];switch(t.length){case 1:t=a>-1?["General","General","General",t[0]]:[t[0],t[0],t[0],"@"];break;case 2:t=a>-1?[t[0],t[0],t[0],t[1]]:[t[0],t[1],t[0],"@"];break;case 3:t=a>-1?[t[0],t[1],t[0],t[2]]:[t[0],t[1],t[2],"@"];break}var o=r>0?t[0]:r<0?t[1]:t[2];if(t[0].indexOf("[")===-1&&t[1].indexOf("[")===-1)return[n,o];if(t[0].match(/\[[=<>]/)!=null||t[1].match(/\[[=<>]/)!=null){var s=t[0].match(V0),c=t[1].match(V0);return Y0(r,s)?[n,t[0]]:Y0(r,c)?[n,t[1]]:[n,t[s!=null&&c!=null?2:1]]}return[n,o]}function In(e,r,t){t==null&&(t={});var n="";switch(typeof e){case"string":e=="m/d/yy"&&t.dateNF?n=t.dateNF:n=e;break;case"number":e==14&&t.dateNF?n=t.dateNF:n=(t.table!=null?t.table:gt)[e],n==null&&(n=t.table&&t.table[H0[e]]||gt[H0[e]]),n==null&&(n=am[e]||"General");break}if($i(n,0))return as(r,t);r instanceof Date&&(r=tu(r,t.date1904));var a=bm(n,r);if($i(a[1]))return as(r,t);if(r===!0)r="TRUE";else if(r===!1)r="FALSE";else if(r===""||r==null)return"";return _m(a[1],r,t,a[0])}function fu(e,r){if(typeof r!="number"){r=+r||-1;for(var t=0;t<392;++t){if(gt[t]==null){r<0&&(r=t);continue}if(gt[t]==e){r=t;break}}r<0&&(r=391)}return gt[r]=e,r}function uo(e){for(var r=0;r!=392;++r)e[r]!==void 0&&fu(e[r],r)}function fo(){gt=nm()}var hu=/[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;function Em(e){var r=typeof e=="number"?gt[e]:e;return r=r.replace(hu,"(\\d+)"),new RegExp("^"+r+"$")}function Tm(e,r,t){var n=-1,a=-1,o=-1,s=-1,c=-1,d=-1;(r.match(hu)||[]).forEach(function(p,A){var v=parseInt(t[A+1],10);switch(p.toLowerCase().charAt(0)){case"y":n=v;break;case"d":o=v;break;case"h":s=v;break;case"s":d=v;break;case"m":s>=0?c=v:a=v;break}}),d>=0&&c==-1&&a>=0&&(c=a,a=-1);var f=(""+(n>=0?n:new Date().getFullYear())).slice(-4)+"-"+("00"+(a>=1?a:1)).slice(-2)+"-"+("00"+(o>=1?o:1)).slice(-2);f.length==7&&(f="0"+f),f.length==8&&(f="20"+f);var u=("00"+(s>=0?s:0)).slice(-2)+":"+("00"+(c>=0?c:0)).slice(-2)+":"+("00"+(d>=0?d:0)).slice(-2);return s==-1&&c==-1&&d==-1?f:n==-1&&a==-1&&o==-1?u:f+"T"+u}var km=function(){var e={};e.version="1.2.0";function r(){for(var R=0,q=new Array(256),H=0;H!=256;++H)R=H,R=R&1?-306674912^R>>>1:R>>>1,R=R&1?-306674912^R>>>1:R>>>1,R=R&1?-306674912^R>>>1:R>>>1,R=R&1?-306674912^R>>>1:R>>>1,R=R&1?-306674912^R>>>1:R>>>1,R=R&1?-306674912^R>>>1:R>>>1,R=R&1?-306674912^R>>>1:R>>>1,R=R&1?-306674912^R>>>1:R>>>1,q[H]=R;return typeof Int32Array!="undefined"?new Int32Array(q):q}var t=r();function n(R){var q=0,H=0,le=0,ae=typeof Int32Array!="undefined"?new Int32Array(4096):new Array(4096);for(le=0;le!=256;++le)ae[le]=R[le];for(le=0;le!=256;++le)for(H=R[le],q=256+le;q<4096;q+=256)H=ae[q]=H>>>8^R[H&255];var Ae=[];for(le=1;le!=16;++le)Ae[le-1]=typeof Int32Array!="undefined"?ae.subarray(le*256,le*256+256):ae.slice(le*256,le*256+256);return Ae}var a=n(t),o=a[0],s=a[1],c=a[2],d=a[3],f=a[4],u=a[5],p=a[6],A=a[7],v=a[8],x=a[9],m=a[10],w=a[11],M=a[12],E=a[13],b=a[14];function L(R,q){for(var H=q^-1,le=0,ae=R.length;le>>8^t[(H^R.charCodeAt(le++))&255];return~H}function N(R,q){for(var H=q^-1,le=R.length-15,ae=0;ae>8&255]^M[R[ae++]^H>>16&255]^w[R[ae++]^H>>>24]^m[R[ae++]]^x[R[ae++]]^v[R[ae++]]^A[R[ae++]]^p[R[ae++]]^u[R[ae++]]^f[R[ae++]]^d[R[ae++]]^c[R[ae++]]^s[R[ae++]]^o[R[ae++]]^t[R[ae++]];for(le+=15;ae>>8^t[(H^R[ae++])&255];return~H}function O(R,q){for(var H=q^-1,le=0,ae=R.length,Ae=0,be=0;le>>8^t[(H^Ae)&255]:Ae<2048?(H=H>>>8^t[(H^(192|Ae>>6&31))&255],H=H>>>8^t[(H^(128|Ae&63))&255]):Ae>=55296&&Ae<57344?(Ae=(Ae&1023)+64,be=R.charCodeAt(le++)&1023,H=H>>>8^t[(H^(240|Ae>>8&7))&255],H=H>>>8^t[(H^(128|Ae>>2&63))&255],H=H>>>8^t[(H^(128|be>>6&15|(Ae&3)<<4))&255],H=H>>>8^t[(H^(128|be&63))&255]):(H=H>>>8^t[(H^(224|Ae>>12&15))&255],H=H>>>8^t[(H^(128|Ae>>6&63))&255],H=H>>>8^t[(H^(128|Ae&63))&255]);return~H}return e.table=t,e.bstr=L,e.buf=N,e.str=O,e}(),at=function(){var r={};r.version="1.2.1";function t(_,D){for(var T=_.split("/"),F=D.split("/"),I=0,P=0,re=Math.min(T.length,F.length);I>>1,_.write_shift(2,T);var F=D.getFullYear()-1980;F=F<<4|D.getMonth()+1,F=F<<5|D.getDate(),_.write_shift(2,F)}function s(_){var D=_.read_shift(2)&65535,T=_.read_shift(2)&65535,F=new Date,I=T&31;T>>>=5;var P=T&15;T>>>=4,F.setMilliseconds(0),F.setFullYear(T+1980),F.setMonth(P-1),F.setDate(I);var re=D&31;D>>>=5;var fe=D&63;return D>>>=6,F.setHours(D),F.setMinutes(fe),F.setSeconds(re<<1),F}function c(_){gr(_,0);for(var D={},T=0;_.l<=_.length-4;){var F=_.read_shift(2),I=_.read_shift(2),P=_.l+I,re={};switch(F){case 21589:T=_.read_shift(1),T&1&&(re.mtime=_.read_shift(4)),I>5&&(T&2&&(re.atime=_.read_shift(4)),T&4&&(re.ctime=_.read_shift(4))),re.mtime&&(re.mt=new Date(re.mtime*1e3));break}_.l=P,D[F]=re}return D}var d;function f(){return d||(d={})}function u(_,D){if(_[0]==80&&_[1]==75)return pi(_,D);if((_[0]|32)==109&&(_[1]|32)==105)return xi(_,D);if(_.length<512)throw new Error("CFB file size "+_.length+" < 512");var T=3,F=512,I=0,P=0,re=0,fe=0,ee=0,te=[],ne=_.slice(0,512);gr(ne,0);var me=p(ne);switch(T=me[0],T){case 3:F=512;break;case 4:F=4096;break;case 0:if(me[1]==0)return pi(_,D);default:throw new Error("Major Version: Expected 3 or 4 saw "+T)}F!==512&&(ne=_.slice(0,F),gr(ne,28));var _e=_.slice(0,F);A(ne,T);var ke=ne.read_shift(4,"i");if(T===3&&ke!==0)throw new Error("# Directory Sectors: Expected 0 saw "+ke);ne.l+=4,re=ne.read_shift(4,"i"),ne.l+=4,ne.chk("00100000","Mini Stream Cutoff Size: "),fe=ne.read_shift(4,"i"),I=ne.read_shift(4,"i"),ee=ne.read_shift(4,"i"),P=ne.read_shift(4,"i");for(var ge=-1,Te=0;Te<109&&(ge=ne.read_shift(4,"i"),!(ge<0));++Te)te[Te]=ge;var Pe=v(_,F);w(ee,P,Pe,F,te);var nt=E(Pe,re,te,F);nt[re].name="!Directory",I>0&&fe!==be&&(nt[fe].name="!MiniFAT"),nt[te[0]].name="!FAT",nt.fat_addrs=te,nt.ssz=F;var Re={},Bt=[],sn=[],_r=[];b(re,nt,Pe,Bt,I,Re,sn,fe),x(sn,_r,Bt),Bt.shift();var Tn={FileIndex:sn,FullPaths:_r};return D&&D.raw&&(Tn.raw={header:_e,sectors:Pe}),Tn}function p(_){if(_[_.l]==80&&_[_.l+1]==75)return[0,0];_.chk(Qe,"Header Signature: "),_.l+=16;var D=_.read_shift(2,"u");return[_.read_shift(2,"u"),D]}function A(_,D){var T=9;switch(_.l+=2,T=_.read_shift(2)){case 9:if(D!=3)throw new Error("Sector Shift: Expected 9 saw "+T);break;case 12:if(D!=4)throw new Error("Sector Shift: Expected 12 saw "+T);break;default:throw new Error("Sector Shift: Expected 9 or 12 saw "+T)}_.chk("0600","Mini Sector Shift: "),_.chk("000000000000","Reserved: ")}function v(_,D){for(var T=Math.ceil(_.length/D)-1,F=[],I=1;I0&&re>=0;)P.push(D.slice(re*Ae,re*Ae+Ae)),I-=Ae,re=Yn(T,re*4);return P.length===0?ue(0):Wt(P).slice(0,_.size)}function w(_,D,T,F,I){var P=be;if(_===be){if(D!==0)throw new Error("DIFAT chain shorter than expected")}else if(_!==-1){var re=T[_],fe=(F>>>2)-1;if(!re)return;for(var ee=0;ee=0;){I[ee]=!0,P[P.length]=ee,re.push(_[ee]);var ne=T[Math.floor(ee*4/F)];if(te=ee*4&fe,F<4+te)throw new Error("FAT boundary crossed: "+ee+" 4 "+F);if(!_[ne])break;ee=Yn(_[ne],te)}return{nodes:P,data:ec([re])}}function E(_,D,T,F){var I=_.length,P=[],re=[],fe=[],ee=[],te=F-1,ne=0,me=0,_e=0,ke=0;for(ne=0;ne=I&&(_e-=I),!re[_e]){ee=[];var ge=[];for(me=_e;me>=0;){ge[me]=!0,re[me]=!0,fe[fe.length]=me,ee.push(_[me]);var Te=T[Math.floor(me*4/F)];if(ke=me*4&te,F<4+ke)throw new Error("FAT boundary crossed: "+me+" 4 "+F);if(!_[Te]||(me=Yn(_[Te],ke),ge[me]))break}P[_e]={nodes:fe,data:ec([ee])}}return P}function b(_,D,T,F,I,P,re,fe){for(var ee=0,te=F.length?2:0,ne=D[_].data,me=0,_e=0,ke;me0&&ee!==be&&(D[ee].name="!StreamData")):Te.size>=4096?(Te.storage="fat",D[Te.start]===void 0&&(D[Te.start]=M(T,Te.start,D.fat_addrs,D.ssz)),D[Te.start].name=Te.name,Te.content=D[Te.start].data.slice(0,Te.size)):(Te.storage="minifat",Te.size<0?Te.size=0:ee!==be&&Te.start!==be&&D[ee]&&(Te.content=m(Te,D[ee].data,(D[fe]||{}).data))),Te.content&&gr(Te.content,0),P[ke]=Te,re.push(Te)}}function L(_,D){return new Date((yr(_,D+4)/1e7*Math.pow(2,32)+yr(_,D)/1e7-11644473600)*1e3)}function N(_,D){return f(),u(d.readFileSync(_),D)}function O(_,D){var T=D&&D.type;switch(T||Je&&Buffer.isBuffer(_)&&(T="buffer"),T||"base64"){case"file":return N(_,D);case"base64":return u(Vr(gn(_)),D);case"binary":return u(Vr(_),D)}return u(_,D)}function R(_,D){var T=D||{},F=T.root||"Root Entry";if(_.FullPaths||(_.FullPaths=[]),_.FileIndex||(_.FileIndex=[]),_.FullPaths.length!==_.FileIndex.length)throw new Error("inconsistent CFB structure");_.FullPaths.length===0&&(_.FullPaths[0]=F+"/",_.FileIndex[0]={name:F,type:5}),T.CLSID&&(_.FileIndex[0].clsid=T.CLSID),q(_)}function q(_){var D="Sh33tJ5";if(!at.find(_,"/"+D)){var T=ue(4);T[0]=55,T[1]=T[3]=50,T[2]=54,_.FileIndex.push({name:D,type:2,content:T,size:4,L:69,R:69,C:69}),_.FullPaths.push(_.FullPaths[0]+D),H(_)}}function H(_,D){R(_);for(var T=!1,F=!1,I=_.FullPaths.length-1;I>=0;--I){var P=_.FileIndex[I];switch(P.type){case 0:F?T=!0:(_.FileIndex.pop(),_.FullPaths.pop());break;case 1:case 2:case 5:F=!0,isNaN(P.R*P.L*P.C)&&(T=!0),P.R>-1&&P.L>-1&&P.R==P.L&&(T=!0);break;default:T=!0;break}}if(!(!T&&!D)){var re=new Date(1987,1,19),fe=0,ee=Object.create?Object.create(null):{},te=[];for(I=0;I<_.FullPaths.length;++I)ee[_.FullPaths[I]]=!0,_.FileIndex[I].type!==0&&te.push([_.FullPaths[I],_.FileIndex[I]]);for(I=0;I1?1:-1,me.size=0,me.type=5;else if(_e.slice(-1)=="/"){for(fe=I+1;fe=te.length?-1:fe,fe=I+1;fe=te.length?-1:fe,me.type=1}else n(_.FullPaths[I+1]||"")==n(_e)&&(me.R=I+1),me.type=2}}}function le(_,D){var T=D||{};if(T.fileType=="mad")return yo(_,T);switch(H(_),T.fileType){case"zip":return Ai(_,T)}var F=function(ke){for(var ge=0,Te=0,Pe=0;Pe0&&(Re<4096?ge+=Re+63>>6:Te+=Re+511>>9)}}for(var Bt=ke.FullPaths.length+3>>2,sn=ge+7>>3,_r=ge+127>>7,Tn=sn+Te+Bt+_r,$r=Tn+127>>7,Ua=$r<=109?0:Math.ceil(($r-109)/127);Tn+$r+Ua+127>>7>$r;)Ua=++$r<=109?0:Math.ceil(($r-109)/127);var br=[1,Ua,$r,_r,Bt,Te,ge,0];return ke.FileIndex[0].size=ge<<6,br[7]=(ke.FileIndex[0].start=br[0]+br[1]+br[2]+br[3]+br[4]+br[5])+(br[6]+7>>3),br}(_),I=ue(F[7]<<9),P=0,re=0;{for(P=0;P<8;++P)I.write_shift(1,Me[P]);for(P=0;P<8;++P)I.write_shift(2,0);for(I.write_shift(2,62),I.write_shift(2,3),I.write_shift(2,65534),I.write_shift(2,9),I.write_shift(2,6),P=0;P<3;++P)I.write_shift(2,0);for(I.write_shift(4,0),I.write_shift(4,F[2]),I.write_shift(4,F[0]+F[1]+F[2]+F[3]-1),I.write_shift(4,0),I.write_shift(4,1<<12),I.write_shift(4,F[3]?F[0]+F[1]+F[2]-1:be),I.write_shift(4,F[3]),I.write_shift(-4,F[1]?F[0]-1:be),I.write_shift(4,F[1]),P=0;P<109;++P)I.write_shift(-4,P>9)));for(fe(F[6]+7>>3);I.l&511;)I.write_shift(-4,We.ENDOFCHAIN);for(re=P=0,ee=0;ee<_.FileIndex.length;++ee)ne=_.FileIndex[ee],ne.content&&(te=ne.content.length,!(!te||te>=4096)&&(ne.start=re,fe(te+63>>6)));for(;I.l&511;)I.write_shift(-4,We.ENDOFCHAIN);for(P=0;P=4096)if(I.l=ne.start+1<<9,Je&&Buffer.isBuffer(ne.content))ne.content.copy(I,I.l,0,ne.size),I.l+=ne.size+511&-512;else{for(ee=0;ee0&&ne.size<4096)if(Je&&Buffer.isBuffer(ne.content))ne.content.copy(I,I.l,0,ne.size),I.l+=ne.size+63&-64;else{for(ee=0;ee>16|D>>8|D)&255}for(var Ce=typeof Uint8Array!="undefined",Ee=Ce?new Uint8Array(1<<8):[],Ke=0;Ke<1<<8;++Ke)Ee[Ke]=De(Ke);function Ye(_,D){var T=Ee[_&255];return D<=8?T>>>8-D:(T=T<<8|Ee[_>>8&255],D<=16?T>>>16-D:(T=T<<8|Ee[_>>16&255],T>>>24-D))}function wt(_,D){var T=D&7,F=D>>>3;return(_[F]|(T<=6?0:_[F+1]<<8))>>>T&3}function $e(_,D){var T=D&7,F=D>>>3;return(_[F]|(T<=5?0:_[F+1]<<8))>>>T&7}function _t(_,D){var T=D&7,F=D>>>3;return(_[F]|(T<=4?0:_[F+1]<<8))>>>T&15}function it(_,D){var T=D&7,F=D>>>3;return(_[F]|(T<=3?0:_[F+1]<<8))>>>T&31}function Se(_,D){var T=D&7,F=D>>>3;return(_[F]|(T<=1?0:_[F+1]<<8))>>>T&127}function Dt(_,D,T){var F=D&7,I=D>>>3,P=(1<>>F;return T<8-F||(re|=_[I+1]<<8-F,T<16-F)||(re|=_[I+2]<<16-F,T<24-F)||(re|=_[I+3]<<24-F),re&P}function Xt(_,D,T){var F=D&7,I=D>>>3;return F<=5?_[I]|=(T&7)<>8-F),D+3}function ir(_,D,T){var F=D&7,I=D>>>3;return T=(T&1)<>>3;return T<<=F,_[I]|=T&255,T>>>=8,_[I+1]=T,D+8}function Nt(_,D,T){var F=D&7,I=D>>>3;return T<<=F,_[I]|=T&255,T>>>=8,_[I+1]=T&255,_[I+2]=T>>>8,D+16}function nn(_,D){var T=_.length,F=2*T>D?2*T:D+5,I=0;if(T>=D)return _;if(Je){var P=U0(F);if(_.copy)_.copy(P);else for(;I<_.length;++I)P[I]=_[I];return P}else if(Ce){var re=new Uint8Array(F);if(re.set)re.set(_);else for(;I>F-me,re=(1<=0;--re)D[fe|re<0;)ee[ee.l++]=fe[te++]}return ee.l}function re(fe,ee){for(var te=0,ne=0,me=Ce?new Uint16Array(32768):[];ne0;)ee[ee.l++]=fe[ne++];te=ee.l*8;continue}te=Xt(ee,te,+(ne+_e==fe.length)+2);for(var ke=0;_e-- >0;){var ge=fe[ne];ke=(ke<<5^ge)&32767;var Te=-1,Pe=0;if((Te=me[ke])&&(Te|=ne&-32768,Te>ne&&(Te-=32768),Te2){ge=I[Pe],ge<=22?te=At(ee,te,Ee[ge+1]>>1)-1:(At(ee,te,3),te+=5,At(ee,te,Ee[ge-23]>>5),te+=3);var nt=ge<8?0:ge-4>>2;nt>0&&(Nt(ee,te,Pe-he[ge]),te+=nt),ge=D[ne-Te],te=At(ee,te,Ee[ge]>>3),te-=3;var Re=ge<4?0:ge-2>>1;Re>0&&(Nt(ee,te,ne-Te-Fe[ge]),te+=Re);for(var Bt=0;Bt>8-ge;for(var Te=(1<<7-ge)-1;Te>=0;--Te)ca[ke|Te<>>=3){case 16:for(P=3+wt(_,D),D+=2,ke=Pe[Pe.length-1];P-- >0;)Pe.push(ke);break;case 17:for(P=3+$e(_,D),D+=3;P-- >0;)Pe.push(0);break;case 18:for(P=11+Se(_,D),D+=7;P-- >0;)Pe.push(0);break;default:Pe.push(ke),ee>>0,fe=0,ee=0;(F&1)==0;){if(F=$e(_,T),T+=3,F>>>1==0){T&7&&(T+=8-(T&7));var te=_[T>>>3]|_[(T>>>3)+1]<<8;if(T+=32,te>0)for(!D&&re0;)I[P++]=_[T>>>3],T+=8;continue}else F>>1==1?(fe=9,ee=5):(T=bn(_,T),fe=on,ee=Ir);for(;;){!D&&re>>1==1?xt[ne]:sa[ne];if(T+=me&15,me>>>=4,(me>>>8&255)===0)I[P++]=me;else{if(me==256)break;me-=257;var _e=me<8?0:me-4>>2;_e>5&&(_e=0);var ke=P+he[me];_e>0&&(ke+=Dt(_,T,_e),T+=_e),ne=Dt(_,T,ee),me=F>>>1==1?or[ne]:la[ne],T+=me&15,me>>>=4;var ge=me<4?0:me-2>>1,Te=Fe[me];for(ge>0&&(Te+=Dt(_,T,ge),T+=ge),!D&&re>>3]:[I.slice(0,P),T+7>>>3]}function mt(_,D){var T=_.slice(_.l||0),F=En(T,D);return _.l+=F[1],F[0]}function di(_,D){if(_)typeof console!="undefined"&&console.error(D);else throw new Error(D)}function pi(_,D){var T=_;gr(T,0);var F=[],I=[],P={FileIndex:F,FullPaths:I};R(P,{root:D.root});for(var re=T.length-4;(T[re]!=80||T[re+1]!=75||T[re+2]!=5||T[re+3]!=6)&&re>=0;)--re;T.l=re+4,T.l+=4;var fe=T.read_shift(2);T.l+=6;var ee=T.read_shift(4);for(T.l=ee,re=0;re0&&(T=T.slice(0,T.length-1),T=T.slice(0,T.lastIndexOf("/")+1),P.slice(0,T.length)!=T););var re=(F[1]||"").match(/boundary="(.*?)"/);if(!re)throw new Error("MAD cannot find boundary");var fe="--"+(re[1]||""),ee=[],te=[],ne={FileIndex:ee,FullPaths:te};R(ne);var me,_e=0;for(I=0;I=32&&ke<128&&++me;var Te=me>=_e*4/5;I.push(F),I.push("Content-Location: "+(T.root||"file:///C:/SheetJS/")+re),I.push("Content-Transfer-Encoding: "+(Te?"quoted-printable":"base64")),I.push("Content-Type: "+mi(fe,re)),I.push(""),I.push(Te?Nn(ne):xo(ne))}return I.push(F+`--\r +`),I.join(`\r +`)}function wo(_){var D={};return R(D,_),D}function ua(_,D,T,F){var I=F&&F.unsafe;I||R(_);var P=!I&&at.find(_,D);if(!P){var re=_.FullPaths[0];D.slice(0,re.length)==re?re=D:(re.slice(-1)!="/"&&(re+="/"),re=(re+D).replace("//","/")),P={name:a(D),type:2},_.FileIndex.push(P),_.FullPaths.push(re),I||at.utils.cfb_gc(_)}return P.content=T,P.size=T?T.length:0,F&&(F.CLSID&&(P.clsid=F.CLSID),F.mt&&(P.mt=F.mt),F.ct&&(P.ct=F.ct)),P}function _o(_,D){R(_);var T=at.find(_,D);if(T){for(var F=0;F<_.FileIndex.length;++F)if(_.FileIndex[F]==T)return _.FileIndex.splice(F,1),_.FullPaths.splice(F,1),!0}return!1}function yi(_,D,T){R(_);var F=at.find(_,D);if(F){for(var I=0;I<_.FileIndex.length;++I)if(_.FileIndex[I]==F)return _.FileIndex[I].name=a(T),_.FullPaths[I]=T,!0}return!1}function Na(_){H(_,!0)}return r.find=ae,r.read=O,r.parse=u,r.write=$t,r.writeFile=Zt,r.utils={cfb_new:wo,cfb_add:ua,cfb_del:_o,cfb_mov:yi,cfb_gc:Na,ReadShift:Xa,CheckField:Ou,prep_blob:gr,bconcat:Wt,use_zlib:j,_deflateRaw:an,_inflateRaw:mt,consts:We},r}();function Sm(e){return typeof e=="string"?co(e):Array.isArray(e)?ZA(e):e}function li(e,r,t){if(typeof Deno!="undefined"){if(t&&typeof r=="string")switch(t){case"utf8":r=new TextEncoder(t).encode(r);break;case"binary":r=co(r);break;default:throw new Error("Unsupported encoding "+t)}return Deno.writeFileSync(e,r)}var n=t=="utf8"?pn(r):r;if(typeof IE_SaveFile!="undefined")return IE_SaveFile(n,e);if(typeof Blob!="undefined"){var a=new Blob([Sm(n)],{type:"application/octet-stream"});if(typeof navigator!="undefined"&&navigator.msSaveBlob)return navigator.msSaveBlob(a,e);if(typeof saveAs!="undefined")return saveAs(a,e);if(typeof URL!="undefined"&&typeof document!="undefined"&&document.createElement&&URL.createObjectURL){var o=URL.createObjectURL(a);if(typeof chrome=="object"&&typeof(chrome.downloads||{}).download=="function")return URL.revokeObjectURL&&typeof setTimeout!="undefined"&&setTimeout(function(){URL.revokeObjectURL(o)},6e4),chrome.downloads.download({url:o,filename:e,saveAs:!0});var s=document.createElement("a");if(s.download!=null)return s.download=e,s.href=o,document.body.appendChild(s),s.click(),document.body.removeChild(s),URL.revokeObjectURL&&typeof setTimeout!="undefined"&&setTimeout(function(){URL.revokeObjectURL(o)},6e4),o}}if(typeof $!="undefined"&&typeof File!="undefined"&&typeof Folder!="undefined")try{var c=File(e);return c.open("w"),c.encoding="binary",Array.isArray(r)&&(r=si(r)),c.write(r),c.close(),r}catch(d){if(!d.message||!d.message.match(/onstruct/))throw d}throw new Error("cannot save file "+e)}function Qt(e){for(var r=Object.keys(e),t=[],n=0;n0?t.setTime(t.getTime()+t.getTimezoneOffset()*60*1e3):r<0&&t.setTime(t.getTime()-t.getTimezoneOffset()*60*1e3),t;if(e instanceof Date)return e;if(Au.getFullYear()==1917&&!isNaN(t.getFullYear())){var n=t.getFullYear();return e.indexOf(""+n)>-1||t.setFullYear(t.getFullYear()+100),t}var a=e.match(/\d+/g)||["2017","2","19","0","0","0"],o=new Date(+a[0],+a[1]-1,+a[2],+a[3]||0,+a[4]||0,+a[5]||0);return e.indexOf("Z")>-1&&(o=new Date(o.getTime()-o.getTimezoneOffset()*60*1e3)),o}function po(e,r){if(Je&&Buffer.isBuffer(e)){if(r){if(e[0]==255&&e[1]==254)return pn(e.slice(2).toString("utf16le"));if(e[1]==254&&e[2]==255)return pn(KA(e.slice(2).toString("binary")))}return e.toString("binary")}if(typeof TextDecoder!="undefined")try{if(r){if(e[0]==255&&e[1]==254)return pn(new TextDecoder("utf-16le").decode(e.slice(2)));if(e[0]==254&&e[1]==255)return pn(new TextDecoder("utf-16be").decode(e.slice(2)))}var t={"\u20AC":"\x80","\u201A":"\x82",\u0192:"\x83","\u201E":"\x84","\u2026":"\x85","\u2020":"\x86","\u2021":"\x87","\u02C6":"\x88","\u2030":"\x89",\u0160:"\x8A","\u2039":"\x8B",\u0152:"\x8C",\u017D:"\x8E","\u2018":"\x91","\u2019":"\x92","\u201C":"\x93","\u201D":"\x94","\u2022":"\x95","\u2013":"\x96","\u2014":"\x97","\u02DC":"\x98","\u2122":"\x99",\u0161:"\x9A","\u203A":"\x9B",\u0153:"\x9C",\u017E:"\x9E",\u0178:"\x9F"};return Array.isArray(e)&&(e=new Uint8Array(e)),new TextDecoder("latin1").decode(e).replace(/[€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ]/g,function(o){return t[o]||o})}catch{}for(var n=[],a=0;a!=e.length;++a)n.push(String.fromCharCode(e[a]));return n.join("")}function ur(e){if(typeof JSON!="undefined"&&!Array.isArray(e))return JSON.parse(JSON.stringify(e));if(typeof e!="object"||e==null)return e;if(e instanceof Date)return new Date(e.getTime());var r={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=ur(e[t]));return r}function vt(e,r){for(var t="";t.length3&&Dm.indexOf(s)==-1)return t}else if(s.match(/[a-z]/))return t;return n<0||n>8099?t:(a>0||o>1)&&n!=101?r:e.match(/[^-0-9:,\/\\]/)?t:r}function He(e,r,t){if(e.FullPaths){if(typeof t=="string"){var n;return Je?n=_n(t):n=em(t),at.utils.cfb_add(e,r,n)}at.utils.cfb_add(e,r,t)}else e.file(r,t)}function ws(){return at.utils.cfb_new()}var Ft=`\r +`,Bm={""":'"',"'":"'",">":">","<":"<","&":"&"},_s=ys(Bm),bs=/[&<>'"]/g,Im=/[\u0000-\u0008\u000b-\u001f]/g;function tt(e){var r=e+"";return r.replace(bs,function(t){return _s[t]}).replace(Im,function(t){return"_x"+("000"+t.charCodeAt(0).toString(16)).slice(-4)+"_"})}function q0(e){return tt(e).replace(/ /g,"_x0020_")}var mu=/[\u0000-\u001f]/g;function Rm(e){var r=e+"";return r.replace(bs,function(t){return _s[t]}).replace(/\n/g,"
    ").replace(mu,function(t){return"&#x"+("000"+t.charCodeAt(0).toString(16)).slice(-4)+";"})}function Mm(e){var r=e+"";return r.replace(bs,function(t){return _s[t]}).replace(mu,function(t){return"&#x"+t.charCodeAt(0).toString(16).toUpperCase()+";"})}function Pm(e){return e.replace(/(\r\n|[\r\n])/g," ")}function Lm(e){switch(e){case 1:case!0:case"1":case"true":case"TRUE":return!0;default:return!1}}function $o(e){for(var r="",t=0,n=0,a=0,o=0,s=0,c=0;t191&&n<224){s=(n&31)<<6,s|=a&63,r+=String.fromCharCode(s);continue}if(o=e.charCodeAt(t++),n<240){r+=String.fromCharCode((n&15)<<12|(a&63)<<6|o&63);continue}s=e.charCodeAt(t++),c=((n&7)<<18|(a&63)<<12|(o&63)<<6|s&63)-65536,r+=String.fromCharCode(55296+(c>>>10&1023)),r+=String.fromCharCode(56320+(c&1023))}return r}function J0(e){var r=Kn(2*e.length),t,n,a=1,o=0,s=0,c;for(n=0;n>>10&1023),t=56320+(t&1023)),s!==0&&(r[o++]=s&255,r[o++]=s>>>8,s=0),r[o++]=t%256,r[o++]=t>>>8;return r.slice(0,o).toString("ucs2")}function K0(e){return _n(e,"binary").toString("utf8")}var Li="foo bar baz\xE2\x98\x83\xF0\x9F\x8D\xA3",$a=Je&&(K0(Li)==$o(Li)&&K0||J0(Li)==$o(Li)&&J0)||$o,pn=Je?function(e){return _n(e,"utf8").toString("binary")}:function(e){for(var r=[],t=0,n=0,a=0;t>6))),r.push(String.fromCharCode(128+(n&63)));break;case(n>=55296&&n<57344):n-=55296,a=e.charCodeAt(t++)-56320+(n<<10),r.push(String.fromCharCode(240+(a>>18&7))),r.push(String.fromCharCode(144+(a>>12&63))),r.push(String.fromCharCode(128+(a>>6&63))),r.push(String.fromCharCode(128+(a&63)));break;default:r.push(String.fromCharCode(224+(n>>12))),r.push(String.fromCharCode(128+(n>>6&63))),r.push(String.fromCharCode(128+(n&63)))}return r.join("")},Nm=function(){var e=[["nbsp"," "],["middot","\xB7"],["quot",'"'],["apos","'"],["gt",">"],["lt","<"],["amp","&"]].map(function(r){return[new RegExp("&"+r[0]+";","ig"),r[1]]});return function(t){for(var n=t.replace(/^[\t\n\r ]+/,"").replace(/[\t\n\r ]+$/,"").replace(/>\s+/g,">").replace(/\s+/g,` +`).replace(/<[^>]*>/g,""),a=0;a"+r+""}function ni(e){return Qt(e).map(function(r){return" "+r+'="'+e[r]+'"'}).join("")}function ye(e,r,t){return"<"+e+(t!=null?ni(t):"")+(r!=null?(r.match(vu)?' xml:space="preserve"':"")+">"+r+""}function is(e,r){try{return e.toISOString().replace(/\.\d*/,"")}catch(t){if(r)throw t}return""}function Um(e,r){switch(typeof e){case"string":var t=ye("vt:lpwstr",tt(e));return r&&(t=t.replace(/"/g,"_x0022_")),t;case"number":return ye((e|0)==e?"vt:i4":"vt:r8",tt(String(e)));case"boolean":return ye("vt:bool",e?"true":"false")}if(e instanceof Date)return ye("vt:filetime",is(e));throw new Error("Unable to serialize "+e)}var Rt={CORE_PROPS:"http://schemas.openxmlformats.org/package/2006/metadata/core-properties",CUST_PROPS:"http://schemas.openxmlformats.org/officeDocument/2006/custom-properties",EXT_PROPS:"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties",CT:"http://schemas.openxmlformats.org/package/2006/content-types",RELS:"http://schemas.openxmlformats.org/package/2006/relationships",TCMNT:"http://schemas.microsoft.com/office/spreadsheetml/2018/threadedcomments",dc:"http://purl.org/dc/elements/1.1/",dcterms:"http://purl.org/dc/terms/",dcmitype:"http://purl.org/dc/dcmitype/",mx:"http://schemas.microsoft.com/office/mac/excel/2008/main",r:"http://schemas.openxmlformats.org/officeDocument/2006/relationships",sjs:"http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties",vt:"http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes",xsi:"http://www.w3.org/2001/XMLSchema-instance",xsd:"http://www.w3.org/2001/XMLSchema"},Ra=["http://schemas.openxmlformats.org/spreadsheetml/2006/main","http://purl.oclc.org/ooxml/spreadsheetml/main","http://schemas.microsoft.com/office/excel/2006/main","http://schemas.microsoft.com/office/excel/2006/2"],xr={o:"urn:schemas-microsoft-com:office:office",x:"urn:schemas-microsoft-com:office:excel",ss:"urn:schemas-microsoft-com:office:spreadsheet",dt:"uuid:C2F41010-65B3-11d1-A29F-00AA00C14882",mv:"http://macVmlSchemaUri",v:"urn:schemas-microsoft-com:vml",html:"http://www.w3.org/TR/REC-html40"};function jm(e,r){for(var t=1-2*(e[r+7]>>>7),n=((e[r+7]&127)<<4)+(e[r+6]>>>4&15),a=e[r+6]&15,o=5;o>=0;--o)a=a*256+e[r+o];return n==2047?a==0?t*(1/0):NaN:(n==0?n=-1022:(n-=1023,a+=Math.pow(2,52)),t*Math.pow(2,n-52)*a)}function zm(e,r,t){var n=(r<0||1/r==-1/0?1:0)<<7,a=0,o=0,s=n?-r:r;isFinite(s)?s==0?a=o=0:(a=Math.floor(Math.log(s)/Math.LN2),o=s*Math.pow(2,52-a),a<=-1023&&(!isFinite(o)||o>4|n}var Z0=function(e){for(var r=[],t=10240,n=0;n0&&Buffer.isBuffer(e[0][0])?Buffer.concat(e[0].map(function(r){return Buffer.isBuffer(r)?r:_n(r)})):Z0(e)}:Z0,tc=function(e,r,t){for(var n=[],a=r;a0?ci(e,r+4,r+4+t-1):""},yu=xu,wu=function(e,r){var t=yr(e,r);return t>0?ci(e,r+4,r+4+t-1):""},_u=wu,bu=function(e,r){var t=2*yr(e,r);return t>0?ci(e,r+4,r+4+t-1):""},Eu=bu,Tu=function(r,t){var n=yr(r,t);return n>0?Es(r,t+4,t+4+n):""},ku=Tu,Su=function(e,r){var t=yr(e,r);return t>0?ci(e,r+4,r+4+t):""},Fu=Su,Cu=function(e,r){return jm(e,r)},Ji=Cu,Ts=function(r){return Array.isArray(r)||typeof Uint8Array!="undefined"&&r instanceof Uint8Array};Je&&(yu=function(r,t){if(!Buffer.isBuffer(r))return xu(r,t);var n=r.readUInt32LE(t);return n>0?r.toString("utf8",t+4,t+4+n-1):""},_u=function(r,t){if(!Buffer.isBuffer(r))return wu(r,t);var n=r.readUInt32LE(t);return n>0?r.toString("utf8",t+4,t+4+n-1):""},Eu=function(r,t){if(!Buffer.isBuffer(r))return bu(r,t);var n=2*r.readUInt32LE(t);return r.toString("utf16le",t+4,t+4+n-1)},ku=function(r,t){if(!Buffer.isBuffer(r))return Tu(r,t);var n=r.readUInt32LE(t);return r.toString("utf16le",t+4,t+4+n)},Fu=function(r,t){if(!Buffer.isBuffer(r))return Su(r,t);var n=r.readUInt32LE(t);return r.toString("utf8",t+4,t+4+n)},Ji=function(r,t){return Buffer.isBuffer(r)?r.readDoubleLE(t):Cu(r,t)},Ts=function(r){return Buffer.isBuffer(r)||Array.isArray(r)||typeof Uint8Array!="undefined"&&r instanceof Uint8Array});var ka=function(e,r){return e[r]},Va=function(e,r){return e[r+1]*(1<<8)+e[r]},Hm=function(e,r){var t=e[r+1]*256+e[r];return t<32768?t:(65535-t+1)*-1},yr=function(e,r){return e[r+3]*(1<<24)+(e[r+2]<<16)+(e[r+1]<<8)+e[r]},Yn=function(e,r){return e[r+3]<<24|e[r+2]<<16|e[r+1]<<8|e[r]},Gm=function(e,r){return e[r]<<24|e[r+1]<<16|e[r+2]<<8|e[r+3]};function Xa(e,r){var t="",n,a,o=[],s,c,d,f;switch(r){case"dbcs":if(f=this.l,Je&&Buffer.isBuffer(this))t=this.slice(this.l,this.l+2*e).toString("utf16le");else for(d=0;d0?Yn:Gm)(this,this.l),this.l+=4,n):(a=yr(this,this.l),this.l+=4,a);case 8:case-8:if(r==="f")return e==8?a=Ji(this,this.l):a=Ji([this[this.l+7],this[this.l+6],this[this.l+5],this[this.l+4],this[this.l+3],this[this.l+2],this[this.l+1],this[this.l+0]],0),this.l+=8,a;e=8;case 16:t=gu(this,this.l,e);break}}return this.l+=e,t}var Wm=function(e,r,t){e[t]=r&255,e[t+1]=r>>>8&255,e[t+2]=r>>>16&255,e[t+3]=r>>>24&255},Vm=function(e,r,t){e[t]=r&255,e[t+1]=r>>8&255,e[t+2]=r>>16&255,e[t+3]=r>>24&255},Ym=function(e,r,t){e[t]=r&255,e[t+1]=r>>>8&255};function Qm(e,r,t){var n=0,a=0;if(t==="dbcs"){for(a=0;a!=r.length;++a)Ym(this,r.charCodeAt(a),this.l+2*a);n=2*r.length}else if(t==="sbcs"){for(r=r.replace(/[^\x00-\x7F]/g,"_"),a=0;a!=r.length;++a)this[this.l+a]=r.charCodeAt(a)&255;n=r.length}else if(t==="hex"){for(;a>8}for(;this.l>>=8,this[this.l+1]=r&255;break;case 3:n=3,this[this.l]=r&255,r>>>=8,this[this.l+1]=r&255,r>>>=8,this[this.l+2]=r&255;break;case 4:n=4,Wm(this,r,this.l);break;case 8:if(n=8,t==="f"){zm(this,r,this.l);break}case 16:break;case-4:n=4,Vm(this,r,this.l);break}return this.l+=n,this}function Ou(e,r){var t=gu(this,this.l,e.length>>1);if(t!==e)throw new Error(r+"Expected "+e+" saw "+t);this.l+=e.length>>1}function gr(e,r){e.l=r,e.read_shift=Xa,e.chk=Ou,e.write_shift=Qm}function rn(e,r){e.l+=r}function ue(e){var r=Kn(e);return gr(r,0),r}function lr(){var e=[],r=Je?256:2048,t=function(f){var u=ue(f);return gr(u,0),u},n=t(r),a=function(){!n||(n.length>n.l&&(n=n.slice(0,n.l),n.l=n.length),n.length>0&&e.push(n),n=null)},o=function(f){return n&&f=128?1:0)+1,n>=128&&++o,n>=16384&&++o,n>=2097152&&++o;var s=e.next(o);a<=127?s.write_shift(1,a):(s.write_shift(1,(a&127)+128),s.write_shift(1,a>>7));for(var c=0;c!=4;++c)if(n>=128)s.write_shift(1,(n&127)+128),n>>=7;else{s.write_shift(1,n);break}n>0&&Ts(t)&&e.push(t)}}function qa(e,r,t){var n=ur(e);if(r.s?(n.cRel&&(n.c+=r.s.c),n.rRel&&(n.r+=r.s.r)):(n.cRel&&(n.c+=r.c),n.rRel&&(n.r+=r.r)),!t||t.biff<12){for(;n.c>=256;)n.c-=256;for(;n.r>=65536;)n.r-=65536}return n}function ac(e,r,t){var n=ur(e);return n.s=qa(n.s,r.s,t),n.e=qa(n.e,r.s,t),n}function Ja(e,r){if(e.cRel&&e.c<0)for(e=ur(e);e.c<0;)e.c+=r>8?16384:256;if(e.rRel&&e.r<0)for(e=ur(e);e.r<0;)e.r+=r>8?1048576:r>5?65536:16384;var t=rt(e);return!e.cRel&&e.cRel!=null&&(t=qm(t)),!e.rRel&&e.rRel!=null&&(t=$m(t)),t}function Xo(e,r){return e.s.r==0&&!e.s.rRel&&e.e.r==(r.biff>=12?1048575:r.biff>=8?65536:16384)&&!e.e.rRel?(e.s.cRel?"":"$")+Jt(e.s.c)+":"+(e.e.cRel?"":"$")+Jt(e.e.c):e.s.c==0&&!e.s.cRel&&e.e.c==(r.biff>=12?16383:255)&&!e.e.cRel?(e.s.rRel?"":"$")+Yt(e.s.r)+":"+(e.e.rRel?"":"$")+Yt(e.e.r):Ja(e.s,r.biff)+":"+Ja(e.e,r.biff)}function ks(e){return parseInt(Xm(e),10)-1}function Yt(e){return""+(e+1)}function $m(e){return e.replace(/([A-Z]|^)(\d+)$/,"$1$$$2")}function Xm(e){return e.replace(/\$(\d+)$/,"$1")}function Ss(e){for(var r=Jm(e),t=0,n=0;n!==r.length;++n)t=26*t+r.charCodeAt(n)-64;return t-1}function Jt(e){if(e<0)throw new Error("invalid column "+e);var r="";for(++e;e;e=Math.floor((e-1)/26))r=String.fromCharCode((e-1)%26+65)+r;return r}function qm(e){return e.replace(/^([A-Z])/,"$$$1")}function Jm(e){return e.replace(/^\$([A-Z])/,"$1")}function Km(e){return e.replace(/(\$?[A-Z]*)(\$?\d*)/,"$1,$2").split(",")}function Mt(e){for(var r=0,t=0,n=0;n=48&&a<=57?r=10*r+(a-48):a>=65&&a<=90&&(t=26*t+(a-64))}return{c:t-1,r:r-1}}function rt(e){for(var r=e.c+1,t="";r;r=(r-1)/26|0)t=String.fromCharCode((r-1)%26+65)+t;return t+(e.r+1)}function wr(e){var r=e.indexOf(":");return r==-1?{s:Mt(e),e:Mt(e)}:{s:Mt(e.slice(0,r)),e:Mt(e.slice(r+1))}}function St(e,r){return typeof r=="undefined"||typeof r=="number"?St(e.s,e.e):(typeof e!="string"&&(e=rt(e)),typeof r!="string"&&(r=rt(r)),e==r?e:e+":"+r)}function ct(e){var r={s:{c:0,r:0},e:{c:0,r:0}},t=0,n=0,a=0,o=e.length;for(t=0;n26);++n)t=26*t+a;for(r.s.c=--t,t=0;n9);++n)t=10*t+a;if(r.s.r=--t,n===o||a!=10)return r.e.c=r.s.c,r.e.r=r.s.r,r;for(++n,t=0;n!=o&&!((a=e.charCodeAt(n)-64)<1||a>26);++n)t=26*t+a;for(r.e.c=--t,t=0;n!=o&&!((a=e.charCodeAt(n)-48)<0||a>9);++n)t=10*t+a;return r.e.r=--t,r}function ic(e,r){var t=e.t=="d"&&r instanceof Date;if(e.z!=null)try{return e.w=In(e.z,t?cr(r):r)}catch{}try{return e.w=In((e.XF||{}).numFmtId||(t?14:0),t?cr(r):r)}catch{return""+r}}function xn(e,r,t){return e==null||e.t==null||e.t=="z"?"":e.w!==void 0?e.w:(e.t=="d"&&!e.z&&t&&t.dateNF&&(e.z=t.dateNF),e.t=="e"?ui[e.v]||e.v:r==null?ic(e,e.v):ic(e,r))}function ta(e,r){var t=r&&r.sheet?r.sheet:"Sheet1",n={};return n[t]=e,{SheetNames:[t],Sheets:n}}function Du(e,r,t){var n=t||{},a=e?Array.isArray(e):n.dense,o=e||(a?[]:{}),s=0,c=0;if(o&&n.origin!=null){if(typeof n.origin=="number")s=n.origin;else{var d=typeof n.origin=="string"?Mt(n.origin):n.origin;s=d.r,c=d.c}o["!ref"]||(o["!ref"]="A1:A1")}var f={s:{c:1e7,r:1e7},e:{c:0,r:0}};if(o["!ref"]){var u=ct(o["!ref"]);f.s.c=u.s.c,f.s.r=u.s.r,f.e.c=Math.max(f.e.c,u.e.c),f.e.r=Math.max(f.e.r,u.e.r),s==-1&&(f.e.r=s=u.e.r+1)}for(var p=0;p!=r.length;++p)if(!!r[p]){if(!Array.isArray(r[p]))throw new Error("aoa_to_sheet expects an array of arrays");for(var A=0;A!=r[p].length;++A)if(typeof r[p][A]!="undefined"){var v={v:r[p][A]},x=s+p,m=c+A;if(f.s.r>x&&(f.s.r=x),f.s.c>m&&(f.s.c=m),f.e.r0&&r.write_shift(0,e,"dbcs"),t?r.slice(0,r.l):r}function e2(e){return{ich:e.read_shift(2),ifnt:e.read_shift(2)}}function t2(e,r){return r||(r=ue(4)),r.write_shift(2,e.ich||0),r.write_shift(2,e.ifnt||0),r}function Fs(e,r){var t=e.l,n=e.read_shift(1),a=Kt(e),o=[],s={t:a,h:a};if((n&1)!==0){for(var c=e.read_shift(4),d=0;d!=c;++d)o.push(e2(e));s.r=o}else s.r=[{ich:0,ifnt:0}];return e.l=t+r,s}function r2(e,r){var t=!1;return r==null&&(t=!0,r=ue(15+4*e.t.length)),r.write_shift(1,0),Pt(e.t,r),t?r.slice(0,r.l):r}var n2=Fs;function a2(e,r){var t=!1;return r==null&&(t=!0,r=ue(23+4*e.t.length)),r.write_shift(1,1),Pt(e.t,r),r.write_shift(4,1),t2({ich:0,ifnt:0},r),t?r.slice(0,r.l):r}function Dr(e){var r=e.read_shift(4),t=e.read_shift(2);return t+=e.read_shift(1)<<16,e.l++,{c:r,iStyleRef:t}}function ra(e,r){return r==null&&(r=ue(8)),r.write_shift(-4,e.c),r.write_shift(3,e.iStyleRef||e.s),r.write_shift(1,0),r}function na(e){var r=e.read_shift(2);return r+=e.read_shift(1)<<16,e.l++,{c:-1,iStyleRef:r}}function aa(e,r){return r==null&&(r=ue(4)),r.write_shift(3,e.iStyleRef||e.s),r.write_shift(1,0),r}var i2=Kt,Bu=Pt;function Cs(e){var r=e.read_shift(4);return r===0||r===4294967295?"":e.read_shift(r,"dbcs")}function Ki(e,r){var t=!1;return r==null&&(t=!0,r=ue(127)),r.write_shift(4,e.length>0?e.length:4294967295),e.length>0&&r.write_shift(0,e,"dbcs"),t?r.slice(0,r.l):r}var o2=Kt,os=Cs,Os=Ki;function Iu(e){var r=e.slice(e.l,e.l+4),t=r[0]&1,n=r[0]&2;e.l+=4;var a=n===0?Ji([0,0,0,0,r[0]&252,r[1],r[2],r[3]],0):Yn(r,0)>>2;return t?a/100:a}function Ru(e,r){r==null&&(r=ue(4));var t=0,n=0,a=e*100;if(e==(e|0)&&e>=-(1<<29)&&e<1<<29?n=1:a==(a|0)&&a>=-(1<<29)&&a<1<<29&&(n=1,t=1),n)r.write_shift(-4,((t?a:e)<<2)+(t+2));else throw new Error("unsupported RkNumber "+e)}function Mu(e){var r={s:{},e:{}};return r.s.r=e.read_shift(4),r.e.r=e.read_shift(4),r.s.c=e.read_shift(4),r.e.c=e.read_shift(4),r}function s2(e,r){return r||(r=ue(16)),r.write_shift(4,e.s.r),r.write_shift(4,e.e.r),r.write_shift(4,e.s.c),r.write_shift(4,e.e.c),r}var ia=Mu,Pa=s2;function La(e){if(e.length-e.l<8)throw"XLS Xnum Buffer underflow";return e.read_shift(8,"f")}function Zn(e,r){return(r||ue(8)).write_shift(8,e,"f")}function l2(e){var r={},t=e.read_shift(1),n=t>>>1,a=e.read_shift(1),o=e.read_shift(2,"i"),s=e.read_shift(1),c=e.read_shift(1),d=e.read_shift(1);switch(e.l++,n){case 0:r.auto=1;break;case 1:r.index=a;var f=v2[a];f&&(r.rgb=mc(f));break;case 2:r.rgb=mc([s,c,d]);break;case 3:r.theme=a;break}return o!=0&&(r.tint=o>0?o/32767:o/32768),r}function Zi(e,r){if(r||(r=ue(8)),!e||e.auto)return r.write_shift(4,0),r.write_shift(4,0),r;e.index!=null?(r.write_shift(1,2),r.write_shift(1,e.index)):e.theme!=null?(r.write_shift(1,6),r.write_shift(1,e.theme)):(r.write_shift(1,5),r.write_shift(1,0));var t=e.tint||0;if(t>0?t*=32767:t<0&&(t*=32768),r.write_shift(2,t),!e.rgb||e.theme!=null)r.write_shift(2,0),r.write_shift(1,0),r.write_shift(1,0);else{var n=e.rgb||"FFFFFF";typeof n=="number"&&(n=("000000"+n.toString(16)).slice(-6)),r.write_shift(1,parseInt(n.slice(0,2),16)),r.write_shift(1,parseInt(n.slice(2,4),16)),r.write_shift(1,parseInt(n.slice(4,6),16)),r.write_shift(1,255)}return r}function c2(e){var r=e.read_shift(1);e.l++;var t={fBold:r&1,fItalic:r&2,fUnderline:r&4,fStrikeout:r&8,fOutline:r&16,fShadow:r&32,fCondense:r&64,fExtend:r&128};return t}function u2(e,r){r||(r=ue(2));var t=(e.italic?2:0)|(e.strike?8:0)|(e.outline?16:0)|(e.shadow?32:0)|(e.condense?64:0)|(e.extend?128:0);return r.write_shift(1,t),r.write_shift(1,0),r}var Pu=2,vr=3,Ni=11,eo=19,Ui=64,f2=65,h2=71,d2=4108,p2=4126,Ht=80,oc={1:{n:"CodePage",t:Pu},2:{n:"Category",t:Ht},3:{n:"PresentationFormat",t:Ht},4:{n:"ByteCount",t:vr},5:{n:"LineCount",t:vr},6:{n:"ParagraphCount",t:vr},7:{n:"SlideCount",t:vr},8:{n:"NoteCount",t:vr},9:{n:"HiddenCount",t:vr},10:{n:"MultimediaClipCount",t:vr},11:{n:"ScaleCrop",t:Ni},12:{n:"HeadingPairs",t:d2},13:{n:"TitlesOfParts",t:p2},14:{n:"Manager",t:Ht},15:{n:"Company",t:Ht},16:{n:"LinksUpToDate",t:Ni},17:{n:"CharacterCount",t:vr},19:{n:"SharedDoc",t:Ni},22:{n:"HyperlinksChanged",t:Ni},23:{n:"AppVersion",t:vr,p:"version"},24:{n:"DigSig",t:f2},26:{n:"ContentType",t:Ht},27:{n:"ContentStatus",t:Ht},28:{n:"Language",t:Ht},29:{n:"Version",t:Ht},255:{},2147483648:{n:"Locale",t:eo},2147483651:{n:"Behavior",t:eo},1919054434:{}},sc={1:{n:"CodePage",t:Pu},2:{n:"Title",t:Ht},3:{n:"Subject",t:Ht},4:{n:"Author",t:Ht},5:{n:"Keywords",t:Ht},6:{n:"Comments",t:Ht},7:{n:"Template",t:Ht},8:{n:"LastAuthor",t:Ht},9:{n:"RevNumber",t:Ht},10:{n:"EditTime",t:Ui},11:{n:"LastPrinted",t:Ui},12:{n:"CreatedDate",t:Ui},13:{n:"ModifiedDate",t:Ui},14:{n:"PageCount",t:vr},15:{n:"WordCount",t:vr},16:{n:"CharCount",t:vr},17:{n:"Thumbnail",t:h2},18:{n:"Application",t:Ht},19:{n:"DocSecurity",t:vr},255:{},2147483648:{n:"Locale",t:eo},2147483651:{n:"Behavior",t:eo},1919054434:{}};function A2(e){return e.map(function(r){return[r>>16&255,r>>8&255,r&255]})}var m2=A2([0,16777215,16711680,65280,255,16776960,16711935,65535,0,16777215,16711680,65280,255,16776960,16711935,65535,8388608,32768,128,8421376,8388736,32896,12632256,8421504,10066431,10040166,16777164,13434879,6684774,16744576,26316,13421823,128,16711935,16776960,65535,8388736,8388608,32896,255,52479,13434879,13434828,16777113,10079487,16751052,13408767,16764057,3368703,3394764,10079232,16763904,16750848,16737792,6710937,9868950,13158,3381606,13056,3355392,10040064,10040166,3355545,3355443,16777215,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),v2=ur(m2),ui={0:"#NULL!",7:"#DIV/0!",15:"#VALUE!",23:"#REF!",29:"#NAME?",36:"#NUM!",42:"#N/A",43:"#GETTING_DATA",255:"#WTF?"},g2={"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":"workbooks","application/vnd.ms-excel.sheet.macroEnabled.main+xml":"workbooks","application/vnd.ms-excel.sheet.binary.macroEnabled.main":"workbooks","application/vnd.ms-excel.addin.macroEnabled.main+xml":"workbooks","application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":"workbooks","application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":"sheets","application/vnd.ms-excel.worksheet":"sheets","application/vnd.ms-excel.binIndexWs":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":"charts","application/vnd.ms-excel.chartsheet":"charts","application/vnd.ms-excel.macrosheet+xml":"macros","application/vnd.ms-excel.macrosheet":"macros","application/vnd.ms-excel.intlmacrosheet":"TODO","application/vnd.ms-excel.binIndexMs":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":"dialogs","application/vnd.ms-excel.dialogsheet":"dialogs","application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml":"strs","application/vnd.ms-excel.sharedStrings":"strs","application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":"styles","application/vnd.ms-excel.styles":"styles","application/vnd.openxmlformats-package.core-properties+xml":"coreprops","application/vnd.openxmlformats-officedocument.custom-properties+xml":"custprops","application/vnd.openxmlformats-officedocument.extended-properties+xml":"extprops","application/vnd.openxmlformats-officedocument.customXmlProperties+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":"comments","application/vnd.ms-excel.comments":"comments","application/vnd.ms-excel.threadedcomments+xml":"threadedcomments","application/vnd.ms-excel.person+xml":"people","application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml":"metadata","application/vnd.ms-excel.sheetMetadata":"metadata","application/vnd.ms-excel.pivotTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.chart+xml":"TODO","application/vnd.ms-office.chartcolorstyle+xml":"TODO","application/vnd.ms-office.chartstyle+xml":"TODO","application/vnd.ms-office.chartex+xml":"TODO","application/vnd.ms-excel.calcChain":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings":"TODO","application/vnd.ms-office.activeX":"TODO","application/vnd.ms-office.activeX+xml":"TODO","application/vnd.ms-excel.attachedToolbars":"TODO","application/vnd.ms-excel.connections":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":"TODO","application/vnd.ms-excel.externalLink":"links","application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml":"links","application/vnd.ms-excel.pivotCacheDefinition":"TODO","application/vnd.ms-excel.pivotCacheRecords":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml":"TODO","application/vnd.ms-excel.queryTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml":"TODO","application/vnd.ms-excel.userNames":"TODO","application/vnd.ms-excel.revisionHeaders":"TODO","application/vnd.ms-excel.revisionLog":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml":"TODO","application/vnd.ms-excel.tableSingleCells":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml":"TODO","application/vnd.ms-excel.slicer":"TODO","application/vnd.ms-excel.slicerCache":"TODO","application/vnd.ms-excel.slicer+xml":"TODO","application/vnd.ms-excel.slicerCache+xml":"TODO","application/vnd.ms-excel.wsSortMap":"TODO","application/vnd.ms-excel.table":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":"TODO","application/vnd.openxmlformats-officedocument.theme+xml":"themes","application/vnd.openxmlformats-officedocument.themeOverride+xml":"TODO","application/vnd.ms-excel.Timeline+xml":"TODO","application/vnd.ms-excel.TimelineCache+xml":"TODO","application/vnd.ms-office.vbaProject":"vba","application/vnd.ms-office.vbaProjectSignature":"TODO","application/vnd.ms-office.volatileDependencies":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml":"TODO","application/vnd.ms-excel.controlproperties+xml":"TODO","application/vnd.openxmlformats-officedocument.model+data":"TODO","application/vnd.ms-excel.Survey+xml":"TODO","application/vnd.openxmlformats-officedocument.drawing+xml":"drawings","application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml":"TODO","application/vnd.openxmlformats-officedocument.vmlDrawing":"TODO","application/vnd.openxmlformats-package.relationships+xml":"rels","application/vnd.openxmlformats-officedocument.oleObject":"TODO","image/png":"TODO",sheet:"js"},ji={workbooks:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml",xlsm:"application/vnd.ms-excel.sheet.macroEnabled.main+xml",xlsb:"application/vnd.ms-excel.sheet.binary.macroEnabled.main",xlam:"application/vnd.ms-excel.addin.macroEnabled.main+xml",xltx:"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml"},strs:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml",xlsb:"application/vnd.ms-excel.sharedStrings"},comments:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml",xlsb:"application/vnd.ms-excel.comments"},sheets:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml",xlsb:"application/vnd.ms-excel.worksheet"},charts:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml",xlsb:"application/vnd.ms-excel.chartsheet"},dialogs:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml",xlsb:"application/vnd.ms-excel.dialogsheet"},macros:{xlsx:"application/vnd.ms-excel.macrosheet+xml",xlsb:"application/vnd.ms-excel.macrosheet"},metadata:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml",xlsb:"application/vnd.ms-excel.sheetMetadata"},styles:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml",xlsb:"application/vnd.ms-excel.styles"}};function Lu(){return{workbooks:[],sheets:[],charts:[],dialogs:[],macros:[],rels:[],strs:[],comments:[],threadedcomments:[],links:[],coreprops:[],extprops:[],custprops:[],themes:[],styles:[],calcchains:[],vba:[],drawings:[],metadata:[],people:[],TODO:[],xmlns:""}}function Nu(e,r){var t=Fm(g2),n=[],a;n[n.length]=Ft,n[n.length]=ye("Types",null,{xmlns:Rt.CT,"xmlns:xsd":Rt.xsd,"xmlns:xsi":Rt.xsi}),n=n.concat([["xml","application/xml"],["bin","application/vnd.ms-excel.sheet.binary.macroEnabled.main"],["vml","application/vnd.openxmlformats-officedocument.vmlDrawing"],["data","application/vnd.openxmlformats-officedocument.model+data"],["bmp","image/bmp"],["png","image/png"],["gif","image/gif"],["emf","image/x-emf"],["wmf","image/x-wmf"],["jpg","image/jpeg"],["jpeg","image/jpeg"],["tif","image/tiff"],["tiff","image/tiff"],["pdf","application/pdf"],["rels","application/vnd.openxmlformats-package.relationships+xml"]].map(function(d){return ye("Default",null,{Extension:d[0],ContentType:d[1]})}));var o=function(d){e[d]&&e[d].length>0&&(a=e[d][0],n[n.length]=ye("Override",null,{PartName:(a[0]=="/"?"":"/")+a,ContentType:ji[d][r.bookType]||ji[d].xlsx}))},s=function(d){(e[d]||[]).forEach(function(f){n[n.length]=ye("Override",null,{PartName:(f[0]=="/"?"":"/")+f,ContentType:ji[d][r.bookType]||ji[d].xlsx})})},c=function(d){(e[d]||[]).forEach(function(f){n[n.length]=ye("Override",null,{PartName:(f[0]=="/"?"":"/")+f,ContentType:t[d][0]})})};return o("workbooks"),s("sheets"),s("charts"),c("themes"),["strs","styles"].forEach(o),["coreprops","extprops","custprops"].forEach(c),c("vba"),c("comments"),c("threadedcomments"),c("drawings"),s("metadata"),c("people"),n.length>2&&(n[n.length]="",n[1]=n[1].replace("/>",">")),n.join("")}var qe={WB:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument",SHEET:"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument",HLINK:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink",VML:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing",XPATH:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath",XMISS:"http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing",XLINK:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink",CXML:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml",CXMLP:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps",CMNT:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments",CORE_PROPS:"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties",EXT_PROPS:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties",CUST_PROPS:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties",SST:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings",STY:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles",THEME:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme",CHART:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart",CHARTEX:"http://schemas.microsoft.com/office/2014/relationships/chartEx",CS:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet",WS:["http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet","http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet"],DS:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet",MS:"http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet",IMG:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",DRAW:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing",XLMETA:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sheetMetadata",TCMNT:"http://schemas.microsoft.com/office/2017/10/relationships/threadedComment",PEOPLE:"http://schemas.microsoft.com/office/2017/10/relationships/person",VBA:"http://schemas.microsoft.com/office/2006/relationships/vbaProject"};function Uu(e){var r=e.lastIndexOf("/");return e.slice(0,r+1)+"_rels/"+e.slice(r+1)+".rels"}function Oa(e){var r=[Ft,ye("Relationships",null,{xmlns:Rt.RELS})];return Qt(e["!id"]).forEach(function(t){r[r.length]=ye("Relationship",null,e["!id"][t])}),r.length>2&&(r[r.length]="",r[1]=r[1].replace("/>",">")),r.join("")}function et(e,r,t,n,a,o){if(a||(a={}),e["!id"]||(e["!id"]={}),e["!idx"]||(e["!idx"]=1),r<0)for(r=e["!idx"];e["!id"]["rId"+r];++r);if(e["!idx"]=r+1,a.Id="rId"+r,a.Type=n,a.Target=t,o?a.TargetMode=o:[qe.HLINK,qe.XPATH,qe.XMISS].indexOf(a.Type)>-1&&(a.TargetMode="External"),e["!id"][a.Id])throw new Error("Cannot rewrite rId "+r);return e["!id"][a.Id]=a,e[("/"+a.Target).replace("//","/")]=a,r}function x2(e){var r=[Ft];r.push(` +`),r.push(` +`);for(var t=0;t +`);return r.push(""),r.join("")}function lc(e,r,t){return[' +`,' +`,` +`].join("")}function y2(e,r){return[' +`,' +`,` +`].join("")}function w2(e){var r=[Ft];r.push(` +`);for(var t=0;t!=e.length;++t)r.push(lc(e[t][0],e[t][1])),r.push(y2("",e[t][0]));return r.push(lc("","Document","pkg")),r.push(""),r.join("")}function ju(){return'SheetJS '+Yi.version+""}var qn=[["cp:category","Category"],["cp:contentStatus","ContentStatus"],["cp:keywords","Keywords"],["cp:lastModifiedBy","LastAuthor"],["cp:lastPrinted","LastPrinted"],["cp:revision","RevNumber"],["cp:version","Version"],["dc:creator","Author"],["dc:description","Comments"],["dc:identifier","Identifier"],["dc:language","Language"],["dc:subject","Subject"],["dc:title","Title"],["dcterms:created","CreatedDate","date"],["dcterms:modified","ModifiedDate","date"]];function qo(e,r,t,n,a){a[e]!=null||r==null||r===""||(a[e]=r,r=tt(r),n[n.length]=t?ye(e,r,t):Vt(e,r))}function zu(e,r){var t=r||{},n=[Ft,ye("cp:coreProperties",null,{"xmlns:cp":Rt.CORE_PROPS,"xmlns:dc":Rt.dc,"xmlns:dcterms":Rt.dcterms,"xmlns:dcmitype":Rt.dcmitype,"xmlns:xsi":Rt.xsi})],a={};if(!e&&!t.Props)return n.join("");e&&(e.CreatedDate!=null&&qo("dcterms:created",typeof e.CreatedDate=="string"?e.CreatedDate:is(e.CreatedDate,t.WTF),{"xsi:type":"dcterms:W3CDTF"},n,a),e.ModifiedDate!=null&&qo("dcterms:modified",typeof e.ModifiedDate=="string"?e.ModifiedDate:is(e.ModifiedDate,t.WTF),{"xsi:type":"dcterms:W3CDTF"},n,a));for(var o=0;o!=qn.length;++o){var s=qn[o],c=t.Props&&t.Props[s[1]]!=null?t.Props[s[1]]:e?e[s[1]]:null;c===!0?c="1":c===!1?c="0":typeof c=="number"&&(c=String(c)),c!=null&&qo(s[0],c,null,n,a)}return n.length>2&&(n[n.length]="",n[1]=n[1].replace("/>",">")),n.join("")}var Da=[["Application","Application","string"],["AppVersion","AppVersion","string"],["Company","Company","string"],["DocSecurity","DocSecurity","string"],["Manager","Manager","string"],["HyperlinksChanged","HyperlinksChanged","bool"],["SharedDoc","SharedDoc","bool"],["LinksUpToDate","LinksUpToDate","bool"],["ScaleCrop","ScaleCrop","bool"],["HeadingPairs","HeadingPairs","raw"],["TitlesOfParts","TitlesOfParts","raw"]],Hu=["Worksheets","SheetNames","NamedRanges","DefinedNames","Chartsheets","ChartNames"];function Gu(e){var r=[],t=ye;return e||(e={}),e.Application="SheetJS",r[r.length]=Ft,r[r.length]=ye("Properties",null,{xmlns:Rt.EXT_PROPS,"xmlns:vt":Rt.vt}),Da.forEach(function(n){if(e[n[1]]!==void 0){var a;switch(n[2]){case"string":a=tt(String(e[n[1]]));break;case"bool":a=e[n[1]]?"true":"false";break}a!==void 0&&(r[r.length]=t(n[0],a))}}),r[r.length]=t("HeadingPairs",t("vt:vector",t("vt:variant","Worksheets")+t("vt:variant",t("vt:i4",String(e.Worksheets))),{size:2,baseType:"variant"})),r[r.length]=t("TitlesOfParts",t("vt:vector",e.SheetNames.map(function(n){return""+tt(n)+""}).join(""),{size:e.Worksheets,baseType:"lpstr"})),r.length>2&&(r[r.length]="",r[1]=r[1].replace("/>",">")),r.join("")}function Wu(e){var r=[Ft,ye("Properties",null,{xmlns:Rt.CUST_PROPS,"xmlns:vt":Rt.vt})];if(!e)return r.join("");var t=1;return Qt(e).forEach(function(a){++t,r[r.length]=ye("property",Um(e[a],!0),{fmtid:"{D5CDD505-2E9C-101B-9397-08002B2CF9AE}",pid:t,name:tt(a)})}),r.length>2&&(r[r.length]="",r[1]=r[1].replace("/>",">")),r.join("")}var cc={Title:"Title",Subject:"Subject",Author:"Author",Keywords:"Keywords",Comments:"Description",LastAuthor:"LastAuthor",RevNumber:"Revision",Application:"AppName",LastPrinted:"LastPrinted",CreatedDate:"Created",ModifiedDate:"LastSaved",Category:"Category",Manager:"Manager",Company:"Company",AppVersion:"Version",ContentStatus:"ContentStatus",Identifier:"Identifier",Language:"Language"};function _2(e,r){var t=[];return Qt(cc).map(function(n){for(var a=0;a'+a.join("")+""}function E2(e){var r=typeof e=="string"?new Date(Date.parse(e)):e,t=r.getTime()/1e3+11644473600,n=t%Math.pow(2,32),a=(t-n)/Math.pow(2,32);n*=1e7,a*=1e7;var o=n/Math.pow(2,32)|0;o>0&&(n=n%Math.pow(2,32),a+=o);var s=ue(8);return s.write_shift(4,n),s.write_shift(4,a),s}function uc(e,r){var t=ue(4),n=ue(4);switch(t.write_shift(4,e==80?31:e),e){case 3:n.write_shift(-4,r);break;case 5:n=ue(8),n.write_shift(8,r,"f");break;case 11:n.write_shift(4,r?1:0);break;case 64:n=E2(r);break;case 31:case 80:for(n=ue(4+2*(r.length+1)+(r.length%2?0:2)),n.write_shift(4,r.length+1),n.write_shift(0,r,"dbcs");n.l!=n.length;)n.write_shift(1,0);break;default:throw new Error("TypedPropertyValue unrecognized type "+e+" "+r)}return Wt([t,n])}var Vu=["CodePage","Thumbnail","_PID_LINKBASE","_PID_HLINKS","SystemIdentifier","FMTID"];function T2(e){switch(typeof e){case"boolean":return 11;case"number":return(e|0)==e?3:5;case"string":return 31;case"object":if(e instanceof Date)return 64;break}return-1}function fc(e,r,t){var n=ue(8),a=[],o=[],s=8,c=0,d=ue(8),f=ue(8);if(d.write_shift(4,2),d.write_shift(4,1200),f.write_shift(4,1),o.push(d),a.push(f),s+=8+d.length,!r){f=ue(8),f.write_shift(4,0),a.unshift(f);var u=[ue(4)];for(u[0].write_shift(4,e.length),c=0;c-1||Hu.indexOf(e[c][0])>-1)&&e[c][1]!=null){var A=e[c][1],v=0;if(r){v=+r[e[c][0]];var x=t[v];if(x.p=="version"&&typeof A=="string"){var m=A.split(".");A=(+m[0]<<16)+(+m[1]||0)}d=uc(x.t,A)}else{var w=T2(A);w==-1&&(w=31,A=String(A)),d=uc(w,A)}o.push(d),f=ue(8),f.write_shift(4,r?v:2+c),a.push(f),s+=8+d.length}var M=8*(o.length+1);for(c=0;c=12?2:1),a="sbcs-cont";if(t&&t.biff>=8,!t||t.biff==8){var o=e.read_shift(1);o&&(a="dbcs-cont")}else t.biff==12&&(a="wstr");t.biff>=2&&t.biff<=5&&(a="cpstr");var s=n?e.read_shift(n,a):"";return s}function F2(e){var r=e.t||"",t=ue(3+0);t.write_shift(2,r.length),t.write_shift(1,1);var n=ue(2*r.length);n.write_shift(2*r.length,r,"utf16le");var a=[t,n];return Wt(a)}function C2(e,r,t){var n;if(t){if(t.biff>=2&&t.biff<=5)return e.read_shift(r,"cpstr");if(t.biff>=12)return e.read_shift(r,"dbcs-cont")}var a=e.read_shift(1);return a===0?n=e.read_shift(r,"sbcs-cont"):n=e.read_shift(r,"dbcs-cont"),n}function O2(e,r,t){var n=e.read_shift(t&&t.biff==2?1:2);return n===0?(e.l++,""):C2(e,n,t)}function D2(e,r,t){if(t.biff>5)return O2(e,r,t);var n=e.read_shift(1);return n===0?(e.l++,""):e.read_shift(n,t.biff<=4||!e.lens?"cpstr":"sbcs-cont")}function Xu(e,r,t){return t||(t=ue(3+2*e.length)),t.write_shift(2,e.length),t.write_shift(1,1),t.write_shift(31,e,"utf16le"),t}function dc(e,r){r||(r=ue(6+e.length*2)),r.write_shift(4,1+e.length);for(var t=0;t-1?31:23;switch(n.charAt(0)){case"#":o=28;break;case".":o&=-3;break}r.write_shift(4,2),r.write_shift(4,o);var s=[8,6815827,6619237,4849780,83];for(t=0;t-1?n.slice(0,a):n;for(r.write_shift(4,2*(c.length+1)),t=0;t-1?n.slice(a+1):"",r)}else{for(s="03 03 00 00 00 00 00 00 c0 00 00 00 00 00 00 46".split(" "),t=0;t8?4:2,a=e.read_shift(n),o=e.read_shift(n,"i"),s=e.read_shift(n,"i");return[a,o,s]}function R2(e){var r=e.read_shift(2),t=e.read_shift(2),n=e.read_shift(2),a=e.read_shift(2);return{s:{c:n,r},e:{c:a,r:t}}}function qu(e,r){return r||(r=ue(8)),r.write_shift(2,e.s.r),r.write_shift(2,e.e.r),r.write_shift(2,e.s.c),r.write_shift(2,e.e.c),r}function Ds(e,r,t){var n=1536,a=16;switch(t.bookType){case"biff8":break;case"biff5":n=1280,a=8;break;case"biff4":n=4,a=6;break;case"biff3":n=3,a=6;break;case"biff2":n=2,a=4;break;case"xla":break;default:throw new Error("unsupported BIFF version")}var o=ue(a);return o.write_shift(2,n),o.write_shift(2,r),a>4&&o.write_shift(2,29282),a>6&&o.write_shift(2,1997),a>8&&(o.write_shift(2,49161),o.write_shift(2,1),o.write_shift(2,1798),o.write_shift(2,0)),o}function M2(e,r){var t=!r||r.biff==8,n=ue(t?112:54);for(n.write_shift(r.biff==8?2:1,7),t&&n.write_shift(1,0),n.write_shift(4,859007059),n.write_shift(4,5458548|(t?0:536870912));n.l=8?2:1,n=ue(8+t*e.name.length);n.write_shift(4,e.pos),n.write_shift(1,e.hs||0),n.write_shift(1,e.dt),n.write_shift(1,e.name.length),r.biff>=8&&n.write_shift(1,1),n.write_shift(t*e.name.length,e.name,r.biff<8?"sbcs":"utf16le");var a=n.slice(0,n.l);return a.l=n.l,a}function L2(e,r){var t=ue(8);t.write_shift(4,e.Count),t.write_shift(4,e.Unique);for(var n=[],a=0;an.l?n.slice(0,n.l):n;return o.l==null&&(o.l=o.length),o}function W2(e,r){var t=r.biff==8||!r.biff?4:2,n=ue(2*t+6);return n.write_shift(t,e.s.r),n.write_shift(t,e.e.r+1),n.write_shift(2,e.s.c),n.write_shift(2,e.e.c+1),n.write_shift(2,0),n}function pc(e,r,t,n){var a=t&&t.biff==5;n||(n=ue(a?16:20)),n.write_shift(2,0),e.style?(n.write_shift(2,e.numFmtId||0),n.write_shift(2,65524)):(n.write_shift(2,e.numFmtId||0),n.write_shift(2,r<<4));var o=0;return e.numFmtId>0&&a&&(o|=1024),n.write_shift(4,o),n.write_shift(4,0),a||n.write_shift(4,0),n.write_shift(2,0),n}function V2(e){var r=ue(8);return r.write_shift(4,0),r.write_shift(2,e[0]?e[0]+1:0),r.write_shift(2,e[1]?e[1]+1:0),r}function Y2(e,r,t,n,a,o){var s=ue(8);return ea(e,r,n,s),Qu(t,o,s),s}function Q2(e,r,t,n){var a=ue(14);return ea(e,r,n,a),Zn(t,a),a}function $2(e,r,t){if(t.biff<8)return X2(e,r,t);for(var n=[],a=e.l+r,o=e.read_shift(t.biff>8?4:2);o--!==0;)n.push(I2(e,t.biff>8?12:6,t));if(e.l!=a)throw new Error("Bad ExternSheet: "+e.l+" != "+a);return n}function X2(e,r,t){e[e.l+1]==3&&e[e.l]++;var n=$u(e,r,t);return n.charCodeAt(0)==3?n.slice(1):n}function q2(e){var r=ue(2+e.length*8);r.write_shift(2,e.length);for(var t=0;t=12?4:2,a=e.read_shift(n),o=e.read_shift(n),s=e.read_shift(n),c=e.read_shift(n),d=e.read_shift(2);n==2&&(e.l+=2);var f={s:a,e:o,w:s,ixfe:c,flags:d};return(t.biff>=5||!t.biff)&&(f.level=d>>8&7),f}function tv(e,r){var t=ue(12);t.write_shift(2,r),t.write_shift(2,r),t.write_shift(2,e.width*256),t.write_shift(2,0);var n=0;return e.hidden&&(n|=1),t.write_shift(1,n),n=e.level||0,t.write_shift(1,n),t.write_shift(2,0),t}function rv(e){for(var r=ue(2*e),t=0;t1048576&&(m=1e6),p!=2&&(w=u.read_shift(2));var M=u.read_shift(2),E=d.codepage||1252;p!=2&&(u.l+=16,u.read_shift(1),u[u.l]!==0&&(E=e[u[u.l]]),u.l+=1,u.l+=2),x&&(u.l+=36);for(var b=[],L={},N=Math.min(u.length,p==2?521:w-10-(v?264:0)),O=x?32:11;u.l0;){if(u[u.l]===42){u.l+=M;continue}for(++u.l,f[++R]=[],q=0,q=0;q!=b.length;++q){var H=u.slice(u.l,u.l+b[q].len);u.l+=b[q].len,gr(H,0);var le=Vn.utils.decode(E,H);switch(b[q].type){case"C":le.trim().length&&(f[R][q]=le.replace(/\s+$/,""));break;case"D":le.length===8?f[R][q]=new Date(+le.slice(0,4),+le.slice(4,6)-1,+le.slice(6,8)):f[R][q]=le;break;case"F":f[R][q]=parseFloat(le.trim());break;case"+":case"I":f[R][q]=x?H.read_shift(-4,"i")^2147483648:H.read_shift(4,"i");break;case"L":switch(le.trim().toUpperCase()){case"Y":case"T":f[R][q]=!0;break;case"N":case"F":f[R][q]=!1;break;case"":case"?":break;default:throw new Error("DBF Unrecognized L:|"+le+"|")}break;case"M":if(!A)throw new Error("DBF Unexpected MEMO for type "+p.toString(16));f[R][q]="##MEMO##"+(x?parseInt(le.trim(),10):H.read_shift(4));break;case"N":le=le.replace(/\u0000/g,"").trim(),le&&le!="."&&(f[R][q]=+le||0);break;case"@":f[R][q]=new Date(H.read_shift(-8,"f")-621356832e5);break;case"T":f[R][q]=new Date((H.read_shift(4)-2440588)*864e5+H.read_shift(4));break;case"Y":f[R][q]=H.read_shift(4,"i")/1e4+H.read_shift(4,"i")/1e4*Math.pow(2,32);break;case"O":f[R][q]=-H.read_shift(-8,"f");break;case"B":if(v&&b[q].len==8){f[R][q]=H.read_shift(8,"f");break}case"G":case"P":H.l+=b[q].len;break;case"0":if(b[q].name==="_NullFlags")break;default:throw new Error("DBF Unsupported data type "+b[q].type)}}}if(p!=2&&u.l=0&&ei(+f.codepage),f.type=="string")throw new Error("Cannot write DBF to JS string");var u=lr(),p=io(c,{header:1,raw:!0,cellDates:!0}),A=p[0],v=p.slice(1),x=c["!cols"]||[],m=0,w=0,M=0,E=1;for(m=0;m250&&(H=250),q=((x[m]||{}).DBF||{}).type,q=="C"&&x[m].DBF.len>H&&(H=x[m].DBF.len),R=="B"&&q=="N"&&(R="N",O[m]=x[m].DBF.dec,H=x[m].DBF.len),N[m]=R=="C"||q=="N"?H:o[R]||0,E+=N[m],L[m]=R}var ae=u.next(32);for(ae.write_shift(4,318902576),ae.write_shift(4,v.length),ae.write_shift(2,296+32*M),ae.write_shift(2,E),m=0;m<4;++m)ae.write_shift(4,0);for(ae.write_shift(4,0|(+r[Kc]||3)<<8),m=0,w=0;m":190,"?":191,"{":223},r=new RegExp("\x1BN("+Qt(e).join("|").replace(/\|\|\|/,"|\\||").replace(/([?()+])/g,"\\$1")+"|\\|)","gm"),t=function(A,v){var x=e[v];return typeof x=="number"?N0(x):x},n=function(A,v,x){var m=v.charCodeAt(0)-32<<4|x.charCodeAt(0)-48;return m==59?A:N0(m)};e["|"]=254;function a(A,v){switch(v.type){case"base64":return o(gn(A),v);case"binary":return o(A,v);case"buffer":return o(Je&&Buffer.isBuffer(A)?A.toString("binary"):si(A),v);case"array":return o(po(A),v)}throw new Error("Unrecognized type "+v.type)}function o(A,v){var x=A.split(/[\n\r]+/),m=-1,w=-1,M=0,E=0,b=[],L=[],N=null,O={},R=[],q=[],H=[],le=0,ae;for(+v.codepage>=0&&ei(+v.codepage);M!==x.length;++M){le=0;var Ae=x[M].trim().replace(/\x1B([\x20-\x2F])([\x30-\x3F])/g,n).replace(r,t),be=Ae.replace(/;;/g,"\0").split(";").map(function(V){return V.replace(/\u0000/g,";")}),Qe=be[0],Me;if(Ae.length>0)switch(Qe){case"ID":break;case"E":break;case"B":break;case"O":break;case"W":break;case"P":be[1].charAt(0)=="P"&&L.push(Ae.slice(3).replace(/;;/g,";"));break;case"C":var Ve=!1,We=!1,Zt=!1,pt=!1,$t=-1,Lt=-1;for(E=1;E-1&&b[$t][Lt];if(!ie||!ie[1])throw new Error("SYLK shared formula cannot find base");b[m][w][1]=ig(ie[1],{r:m-$t,c:w-Lt})}break;case"F":var X=0;for(E=1;E0?(R[m].hpt=le,R[m].hpx=tf(le)):le===0&&(R[m].hidden=!0);break;default:if(v&&v.WTF)throw new Error("SYLK bad record "+Ae)}X<1&&(N=null);break;default:if(v&&v.WTF)throw new Error("SYLK bad record "+Ae)}}return R.length>0&&(O["!rows"]=R),q.length>0&&(O["!cols"]=q),v&&v.sheetRows&&(b=b.slice(0,v.sheetRows)),[b,O]}function s(A,v){var x=a(A,v),m=x[0],w=x[1],M=Ma(m,v);return Qt(w).forEach(function(E){M[E]=w[E]}),M}function c(A,v){return ta(s(A,v),v)}function d(A,v,x,m){var w="C;Y"+(x+1)+";X"+(m+1)+";K";switch(A.t){case"n":w+=A.v||0,A.f&&!A.F&&(w+=";E"+Rs(A.f,{r:x,c:m}));break;case"b":w+=A.v?"TRUE":"FALSE";break;case"e":w+=A.w||A.v;break;case"d":w+='"'+(A.w||A.v)+'"';break;case"s":w+='"'+A.v.replace(/"/g,"").replace(/;/g,";;")+'"';break}return w}function f(A,v){v.forEach(function(x,m){var w="F;W"+(m+1)+" "+(m+1)+" ";x.hidden?w+="0":(typeof x.width=="number"&&!x.wpx&&(x.wpx=to(x.width)),typeof x.wpx=="number"&&!x.wch&&(x.wch=ro(x.wpx)),typeof x.wch=="number"&&(w+=Math.round(x.wch))),w.charAt(w.length-1)!=" "&&A.push(w)})}function u(A,v){v.forEach(function(x,m){var w="F;";x.hidden?w+="M0;":x.hpt?w+="M"+20*x.hpt+";":x.hpx&&(w+="M"+20*no(x.hpx)+";"),w.length>2&&A.push(w+"R"+(m+1))})}function p(A,v){var x=["ID;PWXL;N;E"],m=[],w=ct(A["!ref"]),M,E=Array.isArray(A),b=`\r +`;x.push("P;PGeneral"),x.push("F;P0;DG0G8;M255"),A["!cols"]&&f(x,A["!cols"]),A["!rows"]&&u(x,A["!rows"]),x.push("B;Y"+(w.e.r-w.s.r+1)+";X"+(w.e.c-w.s.c+1)+";D"+[w.s.c,w.s.r,w.e.c,w.e.r].join(" "));for(var L=w.s.r;L<=w.e.r;++L)for(var N=w.s.c;N<=w.e.c;++N){var O=rt({r:L,c:N});M=E?(A[L]||[])[N]:A[O],!(!M||M.v==null&&(!M.f||M.F))&&m.push(d(M,A,L,N))}return x.join(b)+b+m.join(b)+b+"E"+b}return{to_workbook:c,to_sheet:s,from_sheet:p}}(),sv=function(){function e(o,s){switch(s.type){case"base64":return r(gn(o),s);case"binary":return r(o,s);case"buffer":return r(Je&&Buffer.isBuffer(o)?o.toString("binary"):si(o),s);case"array":return r(po(o),s)}throw new Error("Unrecognized type "+s.type)}function r(o,s){for(var c=o.split(` +`),d=-1,f=-1,u=0,p=[];u!==c.length;++u){if(c[u].trim()==="BOT"){p[++d]=[],f=0;continue}if(!(d<0)){var A=c[u].trim().split(","),v=A[0],x=A[1];++u;for(var m=c[u]||"";(m.match(/["]/g)||[]).length&1&&u=0&&x[m].length===0;)--m;for(var w=10,M=0,E=0;E<=m;++E)M=x[E].indexOf(" "),M==-1?M=x[E].length:M++,w=Math.max(w,M);for(E=0;E<=m;++E){v[E]=[];var b=0;for(e(x[E].slice(0,w).trim(),v,E,b,A),b=1;b<=(x[E].length-w)/10+1;++b)e(x[E].slice(w+(b-1)*10,w+b*10).trim(),v,E,b,A)}return A.sheetRows&&(v=v.slice(0,A.sheetRows)),v}var t={44:",",9:" ",59:";",124:"|"},n={44:3,9:2,59:1,124:0};function a(u){for(var p={},A=!1,v=0,x=0;v0&&le(),x["!ref"]=St(m),x}function s(u,p){return!(p&&p.PRN)||p.FS||u.slice(0,4)=="sep="||u.indexOf(" ")>=0||u.indexOf(",")>=0||u.indexOf(";")>=0?o(u,p):Ma(r(u,p),p)}function c(u,p){var A="",v=p.type=="string"?[0,0,0,0]:y_(u,p);switch(p.type){case"base64":A=gn(u);break;case"binary":A=u;break;case"buffer":p.codepage==65001?A=u.toString("utf8"):p.codepage&&typeof Vn!="undefined"?A=Vn.utils.decode(p.codepage,u):A=Je&&Buffer.isBuffer(u)?u.toString("binary"):si(u);break;case"array":A=po(u);break;case"string":A=u;break;default:throw new Error("Unrecognized type "+p.type)}return v[0]==239&&v[1]==187&&v[2]==191?A=$a(A.slice(3)):p.type!="string"&&p.type!="buffer"&&p.codepage==65001?A=$a(A):p.type=="binary"&&typeof Vn!="undefined"&&p.codepage&&(A=Vn.utils.decode(p.codepage,Vn.utils.encode(28591,A))),A.slice(0,19)=="socialcalc:version:"?Ju.to_sheet(p.type=="string"?A:$a(A),p):s(A,p)}function d(u,p){return ta(c(u,p),p)}function f(u){for(var p=[],A=ct(u["!ref"]),v,x=Array.isArray(u),m=A.s.r;m<=A.e.r;++m){for(var w=[],M=A.s.c;M<=A.e.c;++M){var E=rt({r:m,c:M});if(v=x?(u[m]||[])[M]:u[E],!v||v.v==null){w.push(" ");continue}for(var b=(v.w||(xn(v),v.w)||"").slice(0,10);b.length<10;)b+=" ";w.push(b+(M===0?" ":""))}p.push(w.join(""))}return p.join(` +`)}return{to_workbook:d,to_sheet:c,from_sheet:f}}(),Ac=function(){function e(j,ie,X){if(!!j){gr(j,j.l||0);for(var V=X.Enum||$t;j.l=16&&j[14]==5&&j[15]===108)throw new Error("Unsupported Works 3 for Mac file");if(j[2]==2)X.Enum=$t,e(j,function(Se,Dt,Xt){switch(Xt){case 0:X.vers=Se,Se>=4096&&(X.qpro=!0);break;case 6:Ye=Se;break;case 204:Se&&(Fe=Se);break;case 222:Fe=Se;break;case 15:case 51:X.qpro||(Se[1].v=Se[1].v.slice(1));case 13:case 14:case 16:Xt==14&&(Se[2]&112)==112&&(Se[2]&15)>1&&(Se[2]&15)<15&&(Se[1].z=X.dateNF||gt[14],X.cellDates&&(Se[1].t="d",Se[1].v=pu(Se[1].v))),X.qpro&&Se[3]>De&&(V["!ref"]=St(Ye),Ce[he]=V,Ee.push(he),V=X.dense?[]:{},Ye={s:{r:0,c:0},e:{r:0,c:0}},De=Se[3],he=Fe||"Sheet"+(De+1),Fe="");var ir=X.dense?(V[Se[0].r]||[])[Se[0].c]:V[rt(Se[0])];if(ir){ir.t=Se[1].t,ir.v=Se[1].v,Se[1].z!=null&&(ir.z=Se[1].z),Se[1].f!=null&&(ir.f=Se[1].f);break}X.dense?(V[Se[0].r]||(V[Se[0].r]=[]),V[Se[0].r][Se[0].c]=Se[1]):V[rt(Se[0])]=Se[1];break}},X);else if(j[2]==26||j[2]==14)X.Enum=Lt,j[2]==14&&(X.qpro=!0,j.l=0),e(j,function(Se,Dt,Xt){switch(Xt){case 204:he=Se;break;case 22:Se[1].v=Se[1].v.slice(1);case 23:case 24:case 25:case 37:case 39:case 40:if(Se[3]>De&&(V["!ref"]=St(Ye),Ce[he]=V,Ee.push(he),V=X.dense?[]:{},Ye={s:{r:0,c:0},e:{r:0,c:0}},De=Se[3],he="Sheet"+(De+1)),wt>0&&Se[0].r>=wt)break;X.dense?(V[Se[0].r]||(V[Se[0].r]=[]),V[Se[0].r][Se[0].c]=Se[1]):V[rt(Se[0])]=Se[1],Ye.e.c=0&&ei(+X.codepage),X.type=="string")throw new Error("Cannot write WK1 to JS string");var V=lr(),he=ct(j["!ref"]),Fe=Array.isArray(j),De=[];we(V,0,o(1030)),we(V,6,d(he));for(var Ce=Math.min(he.e.r,8191),Ee=he.s.r;Ee<=Ce;++Ee)for(var Ke=Yt(Ee),Ye=he.s.c;Ye<=he.e.c;++Ye){Ee===he.s.r&&(De[Ye]=Jt(Ye));var wt=De[Ye]+Ke,$e=Fe?(j[Ee]||[])[Ye]:j[wt];if(!(!$e||$e.t=="z"))if($e.t=="n")($e.v|0)==$e.v&&$e.v>=-32768&&$e.v<=32767?we(V,13,v(Ee,Ye,$e.v)):we(V,14,m(Ee,Ye,$e.v));else{var _t=xn($e);we(V,15,p(Ee,Ye,_t.slice(0,239)))}}return we(V,1),V.end()}function a(j,ie){var X=ie||{};if(+X.codepage>=0&&ei(+X.codepage),X.type=="string")throw new Error("Cannot write WK3 to JS string");var V=lr();we(V,0,s(j));for(var he=0,Fe=0;he8191&&(X=8191),ie.write_shift(2,X),ie.write_shift(1,he),ie.write_shift(1,V),ie.write_shift(2,0),ie.write_shift(2,0),ie.write_shift(1,1),ie.write_shift(1,2),ie.write_shift(4,0),ie.write_shift(4,0),ie}function c(j,ie,X){var V={s:{c:0,r:0},e:{c:0,r:0}};return ie==8&&X.qpro?(V.s.c=j.read_shift(1),j.l++,V.s.r=j.read_shift(2),V.e.c=j.read_shift(1),j.l++,V.e.r=j.read_shift(2),V):(V.s.c=j.read_shift(2),V.s.r=j.read_shift(2),ie==12&&X.qpro&&(j.l+=2),V.e.c=j.read_shift(2),V.e.r=j.read_shift(2),ie==12&&X.qpro&&(j.l+=2),V.s.c==65535&&(V.s.c=V.e.c=V.s.r=V.e.r=0),V)}function d(j){var ie=ue(8);return ie.write_shift(2,j.s.c),ie.write_shift(2,j.s.r),ie.write_shift(2,j.e.c),ie.write_shift(2,j.e.r),ie}function f(j,ie,X){var V=[{c:0,r:0},{t:"n",v:0},0,0];return X.qpro&&X.vers!=20768?(V[0].c=j.read_shift(1),V[3]=j.read_shift(1),V[0].r=j.read_shift(2),j.l+=2):(V[2]=j.read_shift(1),V[0].c=j.read_shift(2),V[0].r=j.read_shift(2)),V}function u(j,ie,X){var V=j.l+ie,he=f(j,ie,X);if(he[1].t="s",X.vers==20768){j.l++;var Fe=j.read_shift(1);return he[1].v=j.read_shift(Fe,"utf8"),he}return X.qpro&&j.l++,he[1].v=j.read_shift(V-j.l,"cstr"),he}function p(j,ie,X){var V=ue(7+X.length);V.write_shift(1,255),V.write_shift(2,ie),V.write_shift(2,j),V.write_shift(1,39);for(var he=0;he=128?95:Fe)}return V.write_shift(1,0),V}function A(j,ie,X){var V=f(j,ie,X);return V[1].v=j.read_shift(2,"i"),V}function v(j,ie,X){var V=ue(7);return V.write_shift(1,255),V.write_shift(2,ie),V.write_shift(2,j),V.write_shift(2,X,"i"),V}function x(j,ie,X){var V=f(j,ie,X);return V[1].v=j.read_shift(8,"f"),V}function m(j,ie,X){var V=ue(13);return V.write_shift(1,255),V.write_shift(2,ie),V.write_shift(2,j),V.write_shift(8,X,"f"),V}function w(j,ie,X){var V=j.l+ie,he=f(j,ie,X);if(he[1].v=j.read_shift(8,"f"),X.qpro)j.l=V;else{var Fe=j.read_shift(2);L(j.slice(j.l,j.l+Fe),he),j.l+=Fe}return he}function M(j,ie,X){var V=ie&32768;return ie&=-32769,ie=(V?j:0)+(ie>=8192?ie-16384:ie),(V?"":"$")+(X?Jt(ie):Yt(ie))}var E={51:["FALSE",0],52:["TRUE",0],70:["LEN",1],80:["SUM",69],81:["AVERAGEA",69],82:["COUNTA",69],83:["MINA",69],84:["MAXA",69],111:["T",1]},b=["","","","","","","","","","+","-","*","/","^","=","<>","<=",">=","<",">","","","","","&","","","","","","",""];function L(j,ie){gr(j,0);for(var X=[],V=0,he="",Fe="",De="",Ce="";j.lX.length){console.error("WK1 bad formula parse 0x"+Ee.toString(16)+":|"+X.join("|")+"|");return}var $e=X.slice(-V);X.length-=V,X.push(E[Ee][0]+"("+$e.join(",")+")")}else return Ee<=7?console.error("WK1 invalid opcode "+Ee.toString(16)):Ee<=24?console.error("WK1 unsupported op "+Ee.toString(16)):Ee<=30?console.error("WK1 invalid opcode "+Ee.toString(16)):Ee<=115?console.error("WK1 unsupported function opcode "+Ee.toString(16)):console.error("WK1 unrecognized opcode "+Ee.toString(16))}}X.length==1?ie[1].f=""+X[0]:console.error("WK1 bad formula parse |"+X.join("|")+"|")}function N(j){var ie=[{c:0,r:0},{t:"n",v:0},0];return ie[0].r=j.read_shift(2),ie[3]=j[j.l++],ie[0].c=j[j.l++],ie}function O(j,ie){var X=N(j);return X[1].t="s",X[1].v=j.read_shift(ie-4,"cstr"),X}function R(j,ie,X,V){var he=ue(6+V.length);he.write_shift(2,j),he.write_shift(1,X),he.write_shift(1,ie),he.write_shift(1,39);for(var Fe=0;Fe=128?95:De)}return he.write_shift(1,0),he}function q(j,ie){var X=N(j);X[1].v=j.read_shift(2);var V=X[1].v>>1;if(X[1].v&1)switch(V&7){case 0:V=(V>>3)*5e3;break;case 1:V=(V>>3)*500;break;case 2:V=(V>>3)/20;break;case 3:V=(V>>3)/200;break;case 4:V=(V>>3)/2e3;break;case 5:V=(V>>3)/2e4;break;case 6:V=(V>>3)/16;break;case 7:V=(V>>3)/64;break}return X[1].v=V,X}function H(j,ie){var X=N(j),V=j.read_shift(4),he=j.read_shift(4),Fe=j.read_shift(2);if(Fe==65535)return V===0&&he===3221225472?(X[1].t="e",X[1].v=15):V===0&&he===3489660928?(X[1].t="e",X[1].v=42):X[1].v=0,X;var De=Fe&32768;return Fe=(Fe&32767)-16446,X[1].v=(1-De*2)*(he*Math.pow(2,Fe+32)+V*Math.pow(2,Fe)),X}function le(j,ie,X,V){var he=ue(14);if(he.write_shift(2,j),he.write_shift(1,X),he.write_shift(1,ie),V==0)return he.write_shift(4,0),he.write_shift(4,0),he.write_shift(2,65535),he;var Fe=0,De=0,Ce=0,Ee=0;return V<0&&(Fe=1,V=-V),De=Math.log2(V)|0,V/=Math.pow(2,De-31),Ee=V>>>0,(Ee&2147483648)==0&&(V/=2,++De,Ee=V>>>0),V-=Ee,Ee|=2147483648,Ee>>>=0,V*=Math.pow(2,32),Ce=V>>>0,he.write_shift(4,Ce),he.write_shift(4,Ee),De+=16383+(Fe?32768:0),he.write_shift(2,De),he}function ae(j,ie){var X=H(j);return j.l+=ie-14,X}function Ae(j,ie){var X=N(j),V=j.read_shift(4);return X[1].v=V>>6,X}function be(j,ie){var X=N(j),V=j.read_shift(8,"f");return X[1].v=V,X}function Qe(j,ie){var X=be(j);return j.l+=ie-10,X}function Me(j,ie){return j[j.l+ie-1]==0?j.read_shift(ie,"cstr"):""}function Ve(j,ie){var X=j[j.l++];X>ie-1&&(X=ie-1);for(var V="";V.length127?95:he}return X[X.l++]=0,X}var $t={0:{n:"BOF",f:Yu},1:{n:"EOF"},2:{n:"CALCMODE"},3:{n:"CALCORDER"},4:{n:"SPLIT"},5:{n:"SYNC"},6:{n:"RANGE",f:c},7:{n:"WINDOW1"},8:{n:"COLW1"},9:{n:"WINTWO"},10:{n:"COLW2"},11:{n:"NAME"},12:{n:"BLANK"},13:{n:"INTEGER",f:A},14:{n:"NUMBER",f:x},15:{n:"LABEL",f:u},16:{n:"FORMULA",f:w},24:{n:"TABLE"},25:{n:"ORANGE"},26:{n:"PRANGE"},27:{n:"SRANGE"},28:{n:"FRANGE"},29:{n:"KRANGE1"},32:{n:"HRANGE"},35:{n:"KRANGE2"},36:{n:"PROTEC"},37:{n:"FOOTER"},38:{n:"HEADER"},39:{n:"SETUP"},40:{n:"MARGINS"},41:{n:"LABELFMT"},42:{n:"TITLES"},43:{n:"SHEETJS"},45:{n:"GRAPH"},46:{n:"NGRAPH"},47:{n:"CALCCOUNT"},48:{n:"UNFORMATTED"},49:{n:"CURSORW12"},50:{n:"WINDOW"},51:{n:"STRING",f:u},55:{n:"PASSWORD"},56:{n:"LOCKED"},60:{n:"QUERY"},61:{n:"QUERYNAME"},62:{n:"PRINT"},63:{n:"PRINTNAME"},64:{n:"GRAPH2"},65:{n:"GRAPHNAME"},66:{n:"ZOOM"},67:{n:"SYMSPLIT"},68:{n:"NSROWS"},69:{n:"NSCOLS"},70:{n:"RULER"},71:{n:"NNAME"},72:{n:"ACOMM"},73:{n:"AMACRO"},74:{n:"PARSE"},102:{n:"PRANGES??"},103:{n:"RRANGES??"},104:{n:"FNAME??"},105:{n:"MRANGES??"},204:{n:"SHEETNAMECS",f:Me},222:{n:"SHEETNAMELP",f:Ve},65535:{n:""}},Lt={0:{n:"BOF"},1:{n:"EOF"},2:{n:"PASSWORD"},3:{n:"CALCSET"},4:{n:"WINDOWSET"},5:{n:"SHEETCELLPTR"},6:{n:"SHEETLAYOUT"},7:{n:"COLUMNWIDTH"},8:{n:"HIDDENCOLUMN"},9:{n:"USERRANGE"},10:{n:"SYSTEMRANGE"},11:{n:"ZEROFORCE"},12:{n:"SORTKEYDIR"},13:{n:"FILESEAL"},14:{n:"DATAFILLNUMS"},15:{n:"PRINTMAIN"},16:{n:"PRINTSTRING"},17:{n:"GRAPHMAIN"},18:{n:"GRAPHSTRING"},19:{n:"??"},20:{n:"ERRCELL"},21:{n:"NACELL"},22:{n:"LABEL16",f:O},23:{n:"NUMBER17",f:H},24:{n:"NUMBER18",f:q},25:{n:"FORMULA19",f:ae},26:{n:"FORMULA1A"},27:{n:"XFORMAT",f:Zt},28:{n:"DTLABELMISC"},29:{n:"DTLABELCELL"},30:{n:"GRAPHWINDOW"},31:{n:"CPA"},32:{n:"LPLAUTO"},33:{n:"QUERY"},34:{n:"HIDDENSHEET"},35:{n:"??"},37:{n:"NUMBER25",f:Ae},38:{n:"??"},39:{n:"NUMBER27",f:be},40:{n:"FORMULA28",f:Qe},142:{n:"??"},147:{n:"??"},150:{n:"??"},151:{n:"??"},152:{n:"??"},153:{n:"??"},154:{n:"??"},155:{n:"??"},156:{n:"??"},163:{n:"??"},174:{n:"??"},175:{n:"??"},176:{n:"??"},177:{n:"??"},184:{n:"??"},185:{n:"??"},186:{n:"??"},187:{n:"??"},188:{n:"??"},195:{n:"??"},201:{n:"??"},204:{n:"SHEETNAMECS",f:Me},205:{n:"??"},206:{n:"??"},207:{n:"??"},208:{n:"??"},256:{n:"??"},259:{n:"??"},260:{n:"??"},261:{n:"??"},262:{n:"??"},263:{n:"??"},265:{n:"??"},266:{n:"??"},267:{n:"??"},268:{n:"??"},270:{n:"??"},271:{n:"??"},384:{n:"??"},389:{n:"??"},390:{n:"??"},393:{n:"??"},396:{n:"??"},512:{n:"??"},514:{n:"??"},513:{n:"??"},516:{n:"??"},517:{n:"??"},640:{n:"??"},641:{n:"??"},642:{n:"??"},643:{n:"??"},644:{n:"??"},645:{n:"??"},646:{n:"??"},647:{n:"??"},648:{n:"??"},658:{n:"??"},659:{n:"??"},660:{n:"??"},661:{n:"??"},662:{n:"??"},665:{n:"??"},666:{n:"??"},768:{n:"??"},772:{n:"??"},1537:{n:"SHEETINFOQP",f:We},1600:{n:"??"},1602:{n:"??"},1793:{n:"??"},1794:{n:"??"},1795:{n:"??"},1796:{n:"??"},1920:{n:"??"},2048:{n:"??"},2049:{n:"??"},2052:{n:"??"},2688:{n:"??"},10998:{n:"??"},12849:{n:"??"},28233:{n:"??"},28484:{n:"??"},65535:{n:""}};return{sheet_to_wk1:n,book_to_wk3:a,to_workbook:r}}(),cv=/^\s|\s$|[\t\n\r]/;function Ku(e,r){if(!r.bookSST)return"";var t=[Ft];t[t.length]=ye("sst",null,{xmlns:Ra[0],count:e.Count,uniqueCount:e.Unique});for(var n=0;n!=e.length;++n)if(e[n]!=null){var a=e[n],o="";a.r?o+=a.r:(o+=""),o+="",t[t.length]=o}return t.length>2&&(t[t.length]="",t[1]=t[1].replace("/>",">")),t.join("")}function uv(e){return[e.read_shift(4),e.read_shift(4)]}function fv(e,r){return r||(r=ue(8)),r.write_shift(4,e.Count),r.write_shift(4,e.Unique),r}var hv=r2;function dv(e){var r=lr();pe(r,159,fv(e));for(var t=0;t=0;--o)s=t[o],c=(r&16384)===0?0:1,d=r<<1&32767,f=c|d,r=f^s;return r^52811}var Av=function(){function e(a,o){switch(o.type){case"base64":return r(gn(a),o);case"binary":return r(a,o);case"buffer":return r(Je&&Buffer.isBuffer(a)?a.toString("binary"):si(a),o);case"array":return r(po(a),o)}throw new Error("Unrecognized type "+o.type)}function r(a,o){var s=o||{},c=s.dense?[]:{},d=a.match(/\\trowd.*?\\row\b/g);if(!d.length)throw new Error("RTF missing table");var f={s:{c:0,r:0},e:{c:0,r:d.length-1}};return d.forEach(function(u,p){Array.isArray(c)&&(c[p]=[]);for(var A=/\\\w+\b/g,v=0,x,m=-1;x=A.exec(u);){switch(x[0]){case"\\cell":var w=u.slice(v,A.lastIndex-x[0].length);if(w[0]==" "&&(w=w.slice(1)),++m,w.length){var M={v:w,t:"s"};Array.isArray(c)?c[p][m]=M:c[rt({r:p,c:m})]=M}break}v=A.lastIndex}m>f.e.c&&(f.e.c=m)}),c["!ref"]=St(f),c}function t(a,o){return ta(e(a,o),o)}function n(a){for(var o=["{\\rtf1\\ansi"],s=ct(a["!ref"]),c,d=Array.isArray(a),f=s.s.r;f<=s.e.r;++f){o.push("\\trowd\\trautofit1");for(var u=s.s.c;u<=s.e.c;++u)o.push("\\cellx"+(u+1));for(o.push("\\pard\\intbl"),u=s.s.c;u<=s.e.c;++u){var p=rt({r:f,c:u});c=d?(a[f]||[])[u]:a[p],!(!c||c.v==null&&(!c.f||c.F))&&(o.push(" "+(c.w||(xn(c),c.w))),o.push("\\cell"))}o.push("\\pard\\intbl\\row")}return o.join("")+"}"}return{to_workbook:t,to_sheet:e,from_sheet:n}}();function mc(e){for(var r=0,t=1;r!=3;++r)t=t*256+(e[r]>255?255:e[r]<0?0:e[r]);return t.toString(16).toUpperCase().slice(1)}var mv=6,vn=mv;function to(e){return Math.floor((e+Math.round(128/vn)/256)*vn)}function ro(e){return Math.floor((e-5)/vn*100+.5)/100}function ss(e){return Math.round((e*vn+5)/vn*256)/256}function Bs(e){e.width?(e.wpx=to(e.width),e.wch=ro(e.wpx),e.MDW=vn):e.wpx?(e.wch=ro(e.wpx),e.width=ss(e.wch),e.MDW=vn):typeof e.wch=="number"&&(e.width=ss(e.wch),e.wpx=to(e.width),e.MDW=vn),e.customWidth&&delete e.customWidth}var vv=96,ef=vv;function no(e){return e*96/ef}function tf(e){return e*ef/96}function gv(e){var r=[""];return[[5,8],[23,26],[41,44],[50,392]].forEach(function(t){for(var n=t[0];n<=t[1];++n)e[n]!=null&&(r[r.length]=ye("numFmt",null,{numFmtId:n,formatCode:tt(e[n])}))}),r.length===1?"":(r[r.length]="",r[0]=ye("numFmts",null,{count:r.length-2}).replace("/>",">"),r.join(""))}function xv(e){var r=[];return r[r.length]=ye("cellXfs",null),e.forEach(function(t){r[r.length]=ye("xf",null,t)}),r[r.length]="",r.length===2?"":(r[0]=ye("cellXfs",null,{count:r.length-2}).replace("/>",">"),r.join(""))}function rf(e,r){var t=[Ft,ye("styleSheet",null,{xmlns:Ra[0],"xmlns:vt":Rt.vt})],n;return e.SSF&&(n=gv(e.SSF))!=null&&(t[t.length]=n),t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',(n=xv(r.cellXfs))&&(t[t.length]=n),t[t.length]='',t[t.length]='',t[t.length]='',t.length>2&&(t[t.length]="",t[1]=t[1].replace("/>",">")),t.join("")}function yv(e,r){var t=e.read_shift(2),n=Kt(e);return[t,n]}function wv(e,r,t){t||(t=ue(6+4*r.length)),t.write_shift(2,e),Pt(r,t);var n=t.length>t.l?t.slice(0,t.l):t;return t.l==null&&(t.l=t.length),n}function _v(e,r,t){var n={};n.sz=e.read_shift(2)/20;var a=c2(e);a.fItalic&&(n.italic=1),a.fCondense&&(n.condense=1),a.fExtend&&(n.extend=1),a.fShadow&&(n.shadow=1),a.fOutline&&(n.outline=1),a.fStrikeout&&(n.strike=1);var o=e.read_shift(2);switch(o===700&&(n.bold=1),e.read_shift(2)){case 1:n.vertAlign="superscript";break;case 2:n.vertAlign="subscript";break}var s=e.read_shift(1);s!=0&&(n.underline=s);var c=e.read_shift(1);c>0&&(n.family=c);var d=e.read_shift(1);switch(d>0&&(n.charset=d),e.l++,n.color=l2(e),e.read_shift(1)){case 1:n.scheme="major";break;case 2:n.scheme="minor";break}return n.name=Kt(e),n}function bv(e,r){r||(r=ue(25+4*32)),r.write_shift(2,e.sz*20),u2(e,r),r.write_shift(2,e.bold?700:400);var t=0;e.vertAlign=="superscript"?t=1:e.vertAlign=="subscript"&&(t=2),r.write_shift(2,t),r.write_shift(1,e.underline||0),r.write_shift(1,e.family||0),r.write_shift(1,e.charset||0),r.write_shift(1,0),Zi(e.color,r);var n=0;return e.scheme=="major"&&(n=1),e.scheme=="minor"&&(n=2),r.write_shift(1,n),Pt(e.name,r),r.length>r.l?r.slice(0,r.l):r}var Ev=["none","solid","mediumGray","darkGray","lightGray","darkHorizontal","darkVertical","darkDown","darkUp","darkGrid","darkTrellis","lightHorizontal","lightVertical","lightDown","lightUp","lightGrid","lightTrellis","gray125","gray0625"],Jo,Tv=rn;function vc(e,r){r||(r=ue(4*3+8*7+16*1)),Jo||(Jo=ys(Ev));var t=Jo[e.patternType];t==null&&(t=40),r.write_shift(4,t);var n=0;if(t!=40)for(Zi({auto:1},r),Zi({auto:1},r);n<12;++n)r.write_shift(4,0);else{for(;n<4;++n)r.write_shift(4,0);for(;n<12;++n)r.write_shift(4,0)}return r.length>r.l?r.slice(0,r.l):r}function kv(e,r){var t=e.l+r,n=e.read_shift(2),a=e.read_shift(2);return e.l=t,{ixfe:n,numFmtId:a}}function nf(e,r,t){t||(t=ue(16)),t.write_shift(2,r||0),t.write_shift(2,e.numFmtId||0),t.write_shift(2,0),t.write_shift(2,0),t.write_shift(2,0),t.write_shift(1,0),t.write_shift(1,0);var n=0;return t.write_shift(1,n),t.write_shift(1,0),t.write_shift(1,0),t.write_shift(1,0),t}function Wa(e,r){return r||(r=ue(10)),r.write_shift(1,0),r.write_shift(1,0),r.write_shift(4,0),r.write_shift(4,0),r}var Sv=rn;function Fv(e,r){return r||(r=ue(51)),r.write_shift(1,0),Wa(null,r),Wa(null,r),Wa(null,r),Wa(null,r),Wa(null,r),r.length>r.l?r.slice(0,r.l):r}function Cv(e,r){return r||(r=ue(12+4*10)),r.write_shift(4,e.xfId),r.write_shift(2,1),r.write_shift(1,+e.builtinId),r.write_shift(1,0),Ki(e.name||"",r),r.length>r.l?r.slice(0,r.l):r}function Ov(e,r,t){var n=ue(2052);return n.write_shift(4,e),Ki(r,n),Ki(t,n),n.length>n.l?n.slice(0,n.l):n}function Dv(e,r){if(!!r){var t=0;[[5,8],[23,26],[41,44],[50,392]].forEach(function(n){for(var a=n[0];a<=n[1];++a)r[a]!=null&&++t}),t!=0&&(pe(e,615,Qr(t)),[[5,8],[23,26],[41,44],[50,392]].forEach(function(n){for(var a=n[0];a<=n[1];++a)r[a]!=null&&pe(e,44,wv(a,r[a]))}),pe(e,616))}}function Bv(e){var r=1;pe(e,611,Qr(r)),pe(e,43,bv({sz:12,color:{theme:1},name:"Calibri",family:2,scheme:"minor"})),pe(e,612)}function Iv(e){var r=2;pe(e,603,Qr(r)),pe(e,45,vc({patternType:"none"})),pe(e,45,vc({patternType:"gray125"})),pe(e,604)}function Rv(e){var r=1;pe(e,613,Qr(r)),pe(e,46,Fv()),pe(e,614)}function Mv(e){var r=1;pe(e,626,Qr(r)),pe(e,47,nf({numFmtId:0,fontId:0,fillId:0,borderId:0},65535)),pe(e,627)}function Pv(e,r){pe(e,617,Qr(r.length)),r.forEach(function(t){pe(e,47,nf(t,0))}),pe(e,618)}function Lv(e){var r=1;pe(e,619,Qr(r)),pe(e,48,Cv({xfId:0,builtinId:0,name:"Normal"})),pe(e,620)}function Nv(e){var r=0;pe(e,505,Qr(r)),pe(e,506)}function Uv(e){var r=0;pe(e,508,Ov(r,"TableStyleMedium9","PivotStyleMedium4")),pe(e,509)}function jv(e,r){var t=lr();return pe(t,278),Dv(t,e.SSF),Bv(t),Iv(t),Rv(t),Mv(t),Pv(t,r.cellXfs),Lv(t),Nv(t),Uv(t),pe(t,279),t.end()}function af(e,r){if(r&&r.themeXLSX)return r.themeXLSX;if(e&&typeof e.raw=="string")return e.raw;var t=[Ft];return t[t.length]='',t[t.length]="",t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]="",t[t.length]='',t[t.length]="",t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]="",t[t.length]="",t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]="",t[t.length]="",t[t.length]='',t[t.length]="",t[t.length]='',t[t.length]='',t[t.length]="",t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]="",t[t.length]='',t[t.length]="",t[t.length]='',t[t.length]="",t[t.length]='',t[t.length]='',t[t.length]="",t[t.length]='',t[t.length]="",t[t.length]="",t[t.length]="",t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]="",t[t.length]="",t[t.length]="",t[t.length]="",t[t.length]='',t[t.length]="",t[t.length]="",t[t.length]="",t[t.length]="",t[t.length]='',t[t.length]="",t[t.length]="",t[t.length]="",t[t.length]="",t[t.length]='',t[t.length]="",t[t.length]='',t[t.length]='',t[t.length]="",t[t.length]="",t[t.length]="",t[t.length]='',t[t.length]='',t[t.length]="",t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]="",t[t.length]='',t[t.length]="",t[t.length]='',t[t.length]="",t[t.length]='',t[t.length]='',t[t.length]="",t[t.length]='',t[t.length]="",t[t.length]="",t[t.length]="",t[t.length]="",t[t.length]="",t[t.length]="",t[t.length]='',t[t.length]="",t[t.length]="",t[t.length]='',t[t.length]="",t[t.length]="",t[t.length]="",t[t.length]="",t.join("")}function zv(e,r){return{flags:e.read_shift(4),version:e.read_shift(4),name:Kt(e)}}function Hv(e){var r=ue(12+2*e.name.length);return r.write_shift(4,e.flags),r.write_shift(4,e.version),Pt(e.name,r),r.slice(0,r.l)}function Gv(e){for(var r=[],t=e.read_shift(4);t-- >0;)r.push([e.read_shift(4),e.read_shift(4)]);return r}function Wv(e){var r=ue(4+8*e.length);r.write_shift(4,e.length);for(var t=0;t + + + + + + + + + + + + + + + + + +`),e.join("")}function Xv(e){var r={};r.i=e.read_shift(4);var t={};t.r=e.read_shift(4),t.c=e.read_shift(4),r.r=rt(t);var n=e.read_shift(1);return n&2&&(r.l="1"),n&8&&(r.a="1"),r}var Fa=1024;function sf(e,r){for(var t=[21600,21600],n=["m0,0l0",t[1],t[0],t[1],t[0],"0xe"].join(","),a=[ye("xml",null,{"xmlns:v":xr.v,"xmlns:o":xr.o,"xmlns:x":xr.x,"xmlns:mv":xr.mv}).replace(/\/>/,">"),ye("o:shapelayout",ye("o:idmap",null,{"v:ext":"edit",data:e}),{"v:ext":"edit"}),ye("v:shapetype",[ye("v:stroke",null,{joinstyle:"miter"}),ye("v:path",null,{gradientshapeok:"t","o:connecttype":"rect"})].join(""),{id:"_x0000_t202","o:spt":202,coordsize:t.join(","),path:n})];Fa",f,ye("v:shadow",null,u),ye("v:path",null,{"o:connecttype":"none"}),'
    ','',"","",Vt("x:Anchor",[s.c+1,0,s.r+1,0,s.c+3,20,s.r+5,20].join(",")),Vt("x:AutoFill","False"),Vt("x:Row",String(s.r)),Vt("x:Column",String(s.c)),o[1].hidden?"":"","",""])}),a.push(""),a.join("")}function lf(e){var r=[Ft,ye("comments",null,{xmlns:Ra[0]})],t=[];return r.push(""),e.forEach(function(n){n[1].forEach(function(a){var o=tt(a.a);t.indexOf(o)==-1&&(t.push(o),r.push(""+o+"")),a.T&&a.ID&&t.indexOf("tc="+a.ID)==-1&&(t.push("tc="+a.ID),r.push("tc="+a.ID+""))})}),t.length==0&&(t.push("SheetJ5"),r.push("SheetJ5")),r.push(""),r.push(""),e.forEach(function(n){var a=0,o=[];if(n[1][0]&&n[1][0].T&&n[1][0].ID?a=t.indexOf("tc="+n[1][0].ID):n[1].forEach(function(d){d.a&&(a=t.indexOf(tt(d.a))),o.push(d.t||"")}),r.push(''),o.length<=1)r.push(Vt("t",tt(o[0]||"")));else{for(var s=`Comment: + `+o[0]+` +`,c=1;c")}),r.push(""),r.length>2&&(r[r.length]="",r[1]=r[1].replace("/>",">")),r.join("")}function qv(e,r,t){var n=[Ft,ye("ThreadedComments",null,{xmlns:Rt.TCMNT}).replace(/[\/]>/,">")];return e.forEach(function(a){var o="";(a[1]||[]).forEach(function(s,c){if(!s.T){delete s.ID;return}s.a&&r.indexOf(s.a)==-1&&r.push(s.a);var d={ref:a[0],id:"{54EE7951-7262-4200-6969-"+("000000000000"+t.tcid++).slice(-12)+"}"};c==0?o=d.id:d.parentId=o,s.ID=d.id,s.a&&(d.personId="{54EE7950-7262-4200-6969-"+("000000000000"+r.indexOf(s.a)).slice(-12)+"}"),n.push(ye("threadedComment",Vt("text",s.t||""),d))})}),n.push(""),n.join("")}function Jv(e){var r=[Ft,ye("personList",null,{xmlns:Rt.TCMNT,"xmlns:x":Ra[0]}).replace(/[\/]>/,">")];return e.forEach(function(t,n){r.push(ye("person",null,{displayName:t,id:"{54EE7950-7262-4200-6969-"+("000000000000"+n).slice(-12)+"}",userId:t,providerId:"None"}))}),r.push(""),r.join("")}function Kv(e){var r={};r.iauthor=e.read_shift(4);var t=ia(e);return r.rfx=t.s,r.ref=rt(t.s),e.l+=16,r}function Zv(e,r){return r==null&&(r=ue(36)),r.write_shift(4,e[1].iauthor),Pa(e[0],r),r.write_shift(4,0),r.write_shift(4,0),r.write_shift(4,0),r.write_shift(4,0),r}var eg=Kt;function tg(e){return Pt(e.slice(0,54))}function rg(e){var r=lr(),t=[];return pe(r,628),pe(r,630),e.forEach(function(n){n[1].forEach(function(a){t.indexOf(a.a)>-1||(t.push(a.a.slice(0,54)),pe(r,632,tg(a.a)))})}),pe(r,631),pe(r,633),e.forEach(function(n){n[1].forEach(function(a){a.iauthor=t.indexOf(a.a);var o={s:Mt(n[0]),e:Mt(n[0])};pe(r,635,Zv([o,a])),a.t&&a.t.length>0&&pe(r,637,a2(a)),pe(r,636),delete a.iauthor})}),pe(r,634),pe(r,629),r.end()}function ng(e,r){r.FullPaths.forEach(function(t,n){if(n!=0){var a=t.replace(/[^\/]*[\/]/,"/_VBA_PROJECT_CUR/");a.slice(-1)!=="/"&&at.utils.cfb_add(e,a,r.FileIndex[n].content)}})}var cf=["xlsb","xlsm","xlam","biff8","xla"],ag=function(){var e=/(^|[^A-Za-z_])R(\[?-?\d+\]|[1-9]\d*|)C(\[?-?\d+\]|[1-9]\d*|)(?![A-Za-z0-9_])/g,r={r:0,c:0};function t(n,a,o,s){var c=!1,d=!1;o.length==0?d=!0:o.charAt(0)=="["&&(d=!0,o=o.slice(1,-1)),s.length==0?c=!0:s.charAt(0)=="["&&(c=!0,s=s.slice(1,-1));var f=o.length>0?parseInt(o,10)|0:0,u=s.length>0?parseInt(s,10)|0:0;return c?u+=r.c:--u,d?f+=r.r:--f,a+(c?"":"$")+Jt(u)+(d?"":"$")+Yt(f)}return function(a,o){return r=o,a.replace(e,t)}}(),Is=/(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)(10[0-3]\d{4}|104[0-7]\d{3}|1048[0-4]\d{2}|10485[0-6]\d|104857[0-6]|[1-9]\d{0,5})(?![_.\(A-Za-z0-9])/g,Rs=function(){return function(r,t){return r.replace(Is,function(n,a,o,s,c,d){var f=Ss(s)-(o?0:t.c),u=ks(d)-(c?0:t.r),p=u==0?"":c?u+1:"["+u+"]",A=f==0?"":o?f+1:"["+f+"]";return a+"R"+p+"C"+A})}}();function ig(e,r){return e.replace(Is,function(t,n,a,o,s,c){return n+(a=="$"?a+o:Jt(Ss(o)+r.c))+(s=="$"?s+c:Yt(ks(c)+r.r))})}function og(e){return e.length!=1}function Tt(e){e.l+=1}function Rn(e,r){var t=e.read_shift(r==1?1:2);return[t&16383,t>>14&1,t>>15&1]}function uf(e,r,t){var n=2;if(t){if(t.biff>=2&&t.biff<=5)return ff(e);t.biff==12&&(n=4)}var a=e.read_shift(n),o=e.read_shift(n),s=Rn(e,2),c=Rn(e,2);return{s:{r:a,c:s[0],cRel:s[1],rRel:s[2]},e:{r:o,c:c[0],cRel:c[1],rRel:c[2]}}}function ff(e){var r=Rn(e,2),t=Rn(e,2),n=e.read_shift(1),a=e.read_shift(1);return{s:{r:r[0],c:n,cRel:r[1],rRel:r[2]},e:{r:t[0],c:a,cRel:t[1],rRel:t[2]}}}function sg(e,r,t){if(t.biff<8)return ff(e);var n=e.read_shift(t.biff==12?4:2),a=e.read_shift(t.biff==12?4:2),o=Rn(e,2),s=Rn(e,2);return{s:{r:n,c:o[0],cRel:o[1],rRel:o[2]},e:{r:a,c:s[0],cRel:s[1],rRel:s[2]}}}function hf(e,r,t){if(t&&t.biff>=2&&t.biff<=5)return lg(e);var n=e.read_shift(t&&t.biff==12?4:2),a=Rn(e,2);return{r:n,c:a[0],cRel:a[1],rRel:a[2]}}function lg(e){var r=Rn(e,2),t=e.read_shift(1);return{r:r[0],c:t,cRel:r[1],rRel:r[2]}}function cg(e){var r=e.read_shift(2),t=e.read_shift(2);return{r,c:t&255,fQuoted:!!(t&16384),cRel:t>>15,rRel:t>>15}}function ug(e,r,t){var n=t&&t.biff?t.biff:8;if(n>=2&&n<=5)return fg(e);var a=e.read_shift(n>=12?4:2),o=e.read_shift(2),s=(o&16384)>>14,c=(o&32768)>>15;if(o&=16383,c==1)for(;a>524287;)a-=1048576;if(s==1)for(;o>8191;)o=o-16384;return{r:a,c:o,cRel:s,rRel:c}}function fg(e){var r=e.read_shift(2),t=e.read_shift(1),n=(r&32768)>>15,a=(r&16384)>>14;return r&=16383,n==1&&r>=8192&&(r=r-16384),a==1&&t>=128&&(t=t-256),{r,c:t,cRel:a,rRel:n}}function hg(e,r,t){var n=(e[e.l++]&96)>>5,a=uf(e,t.biff>=2&&t.biff<=5?6:8,t);return[n,a]}function dg(e,r,t){var n=(e[e.l++]&96)>>5,a=e.read_shift(2,"i"),o=8;if(t)switch(t.biff){case 5:e.l+=12,o=6;break;case 12:o=12;break}var s=uf(e,o,t);return[n,a,s]}function pg(e,r,t){var n=(e[e.l++]&96)>>5;return e.l+=t&&t.biff>8?12:t.biff<8?6:8,[n]}function Ag(e,r,t){var n=(e[e.l++]&96)>>5,a=e.read_shift(2),o=8;if(t)switch(t.biff){case 5:e.l+=12,o=6;break;case 12:o=12;break}return e.l+=o,[n,a]}function mg(e,r,t){var n=(e[e.l++]&96)>>5,a=sg(e,r-1,t);return[n,a]}function vg(e,r,t){var n=(e[e.l++]&96)>>5;return e.l+=t.biff==2?6:t.biff==12?14:7,[n]}function gc(e){var r=e[e.l+1]&1,t=1;return e.l+=4,[r,t]}function gg(e,r,t){e.l+=2;for(var n=e.read_shift(t&&t.biff==2?1:2),a=[],o=0;o<=n;++o)a.push(e.read_shift(t&&t.biff==2?1:2));return a}function xg(e,r,t){var n=e[e.l+1]&255?1:0;return e.l+=2,[n,e.read_shift(t&&t.biff==2?1:2)]}function yg(e,r,t){var n=e[e.l+1]&255?1:0;return e.l+=2,[n,e.read_shift(t&&t.biff==2?1:2)]}function wg(e){var r=e[e.l+1]&255?1:0;return e.l+=2,[r,e.read_shift(2)]}function _g(e,r,t){var n=e[e.l+1]&255?1:0;return e.l+=t&&t.biff==2?3:4,[n]}function df(e){var r=e.read_shift(1),t=e.read_shift(1);return[r,t]}function bg(e){return e.read_shift(2),df(e)}function Eg(e){return e.read_shift(2),df(e)}function Tg(e,r,t){var n=(e[e.l]&96)>>5;e.l+=1;var a=hf(e,0,t);return[n,a]}function kg(e,r,t){var n=(e[e.l]&96)>>5;e.l+=1;var a=ug(e,0,t);return[n,a]}function Sg(e,r,t){var n=(e[e.l]&96)>>5;e.l+=1;var a=e.read_shift(2);t&&t.biff==5&&(e.l+=12);var o=hf(e,0,t);return[n,a,o]}function Fg(e,r,t){var n=(e[e.l]&96)>>5;e.l+=1;var a=e.read_shift(t&&t.biff<=3?1:2);return[Fx[a],mf[a],n]}function Cg(e,r,t){var n=e[e.l++],a=e.read_shift(1),o=t&&t.biff<=3?[n==88?-1:0,e.read_shift(1)]:Og(e);return[a,(o[0]===0?mf:Sx)[o[1]]]}function Og(e){return[e[e.l+1]>>7,e.read_shift(2)&32767]}function Dg(e,r,t){e.l+=t&&t.biff==2?3:4}function Bg(e,r,t){if(e.l++,t&&t.biff==12)return[e.read_shift(4,"i"),0];var n=e.read_shift(2),a=e.read_shift(t&&t.biff==2?1:2);return[n,a]}function Ig(e){return e.l++,ui[e.read_shift(1)]}function Rg(e){return e.l++,e.read_shift(2)}function Mg(e){return e.l++,e.read_shift(1)!==0}function Pg(e){return e.l++,La(e)}function Lg(e,r,t){return e.l++,$u(e,r-1,t)}function Ng(e,r){var t=[e.read_shift(1)];if(r==12)switch(t[0]){case 2:t[0]=4;break;case 4:t[0]=16;break;case 0:t[0]=1;break;case 1:t[0]=2;break}switch(t[0]){case 4:t[1]=S2(e,1)?"TRUE":"FALSE",r!=12&&(e.l+=7);break;case 37:case 16:t[1]=ui[e[e.l]],e.l+=r==12?4:8;break;case 0:e.l+=8;break;case 1:t[1]=La(e);break;case 2:t[1]=D2(e,0,{biff:r>0&&r<8?2:r});break;default:throw new Error("Bad SerAr: "+t[0])}return t}function Ug(e,r,t){for(var n=e.read_shift(t.biff==12?4:2),a=[],o=0;o!=n;++o)a.push((t.biff==12?ia:R2)(e));return a}function jg(e,r,t){var n=0,a=0;t.biff==12?(n=e.read_shift(4),a=e.read_shift(4)):(a=1+e.read_shift(1),n=1+e.read_shift(2)),t.biff>=2&&t.biff<8&&(--n,--a==0&&(a=256));for(var o=0,s=[];o!=n&&(s[o]=[]);++o)for(var c=0;c!=a;++c)s[o][c]=Ng(e,t.biff);return s}function zg(e,r,t){var n=e.read_shift(1)>>>5&3,a=!t||t.biff>=8?4:2,o=e.read_shift(a);switch(t.biff){case 2:e.l+=5;break;case 3:case 4:e.l+=8;break;case 5:e.l+=12;break}return[n,0,o]}function Hg(e,r,t){if(t.biff==5)return Gg(e);var n=e.read_shift(1)>>>5&3,a=e.read_shift(2),o=e.read_shift(4);return[n,a,o]}function Gg(e){var r=e.read_shift(1)>>>5&3,t=e.read_shift(2,"i");e.l+=8;var n=e.read_shift(2);return e.l+=12,[r,t,n]}function Wg(e,r,t){var n=e.read_shift(1)>>>5&3;e.l+=t&&t.biff==2?3:4;var a=e.read_shift(t&&t.biff==2?1:2);return[n,a]}function Vg(e,r,t){var n=e.read_shift(1)>>>5&3,a=e.read_shift(t&&t.biff==2?1:2);return[n,a]}function Yg(e,r,t){var n=e.read_shift(1)>>>5&3;return e.l+=4,t.biff<8&&e.l--,t.biff==12&&(e.l+=2),[n]}function Qg(e,r,t){var n=(e[e.l++]&96)>>5,a=e.read_shift(2),o=4;if(t)switch(t.biff){case 5:o=15;break;case 12:o=6;break}return e.l+=o,[n,a]}var $g=rn,Xg=rn,qg=rn;function fi(e,r,t){return e.l+=2,[cg(e)]}function Ms(e){return e.l+=6,[]}var Jg=fi,Kg=Ms,Zg=Ms,ex=fi;function pf(e){return e.l+=2,[Yu(e),e.read_shift(2)&1]}var tx=fi,rx=pf,nx=Ms,ax=fi,ix=fi,ox=["Data","All","Headers","??","?Data2","??","?DataHeaders","??","Totals","??","??","??","?DataTotals","??","??","??","?Current"];function sx(e){e.l+=2;var r=e.read_shift(2),t=e.read_shift(2),n=e.read_shift(4),a=e.read_shift(2),o=e.read_shift(2),s=ox[t>>2&31];return{ixti:r,coltype:t&3,rt:s,idx:n,c:a,C:o}}function lx(e){return e.l+=2,[e.read_shift(4)]}function cx(e,r,t){return e.l+=5,e.l+=2,e.l+=t.biff==2?1:4,["PTGSHEET"]}function ux(e,r,t){return e.l+=t.biff==2?4:5,["PTGENDSHEET"]}function fx(e){var r=e.read_shift(1)>>>5&3,t=e.read_shift(2);return[r,t]}function hx(e){var r=e.read_shift(1)>>>5&3,t=e.read_shift(2);return[r,t]}function dx(e){return e.l+=4,[0,0]}var xc={1:{n:"PtgExp",f:Bg},2:{n:"PtgTbl",f:qg},3:{n:"PtgAdd",f:Tt},4:{n:"PtgSub",f:Tt},5:{n:"PtgMul",f:Tt},6:{n:"PtgDiv",f:Tt},7:{n:"PtgPower",f:Tt},8:{n:"PtgConcat",f:Tt},9:{n:"PtgLt",f:Tt},10:{n:"PtgLe",f:Tt},11:{n:"PtgEq",f:Tt},12:{n:"PtgGe",f:Tt},13:{n:"PtgGt",f:Tt},14:{n:"PtgNe",f:Tt},15:{n:"PtgIsect",f:Tt},16:{n:"PtgUnion",f:Tt},17:{n:"PtgRange",f:Tt},18:{n:"PtgUplus",f:Tt},19:{n:"PtgUminus",f:Tt},20:{n:"PtgPercent",f:Tt},21:{n:"PtgParen",f:Tt},22:{n:"PtgMissArg",f:Tt},23:{n:"PtgStr",f:Lg},26:{n:"PtgSheet",f:cx},27:{n:"PtgEndSheet",f:ux},28:{n:"PtgErr",f:Ig},29:{n:"PtgBool",f:Mg},30:{n:"PtgInt",f:Rg},31:{n:"PtgNum",f:Pg},32:{n:"PtgArray",f:vg},33:{n:"PtgFunc",f:Fg},34:{n:"PtgFuncVar",f:Cg},35:{n:"PtgName",f:zg},36:{n:"PtgRef",f:Tg},37:{n:"PtgArea",f:hg},38:{n:"PtgMemArea",f:Wg},39:{n:"PtgMemErr",f:$g},40:{n:"PtgMemNoMem",f:Xg},41:{n:"PtgMemFunc",f:Vg},42:{n:"PtgRefErr",f:Yg},43:{n:"PtgAreaErr",f:pg},44:{n:"PtgRefN",f:kg},45:{n:"PtgAreaN",f:mg},46:{n:"PtgMemAreaN",f:fx},47:{n:"PtgMemNoMemN",f:hx},57:{n:"PtgNameX",f:Hg},58:{n:"PtgRef3d",f:Sg},59:{n:"PtgArea3d",f:dg},60:{n:"PtgRefErr3d",f:Qg},61:{n:"PtgAreaErr3d",f:Ag},255:{}},px={64:32,96:32,65:33,97:33,66:34,98:34,67:35,99:35,68:36,100:36,69:37,101:37,70:38,102:38,71:39,103:39,72:40,104:40,73:41,105:41,74:42,106:42,75:43,107:43,76:44,108:44,77:45,109:45,78:46,110:46,79:47,111:47,88:34,120:34,89:57,121:57,90:58,122:58,91:59,123:59,92:60,124:60,93:61,125:61},Ax={1:{n:"PtgElfLel",f:pf},2:{n:"PtgElfRw",f:ax},3:{n:"PtgElfCol",f:Jg},6:{n:"PtgElfRwV",f:ix},7:{n:"PtgElfColV",f:ex},10:{n:"PtgElfRadical",f:tx},11:{n:"PtgElfRadicalS",f:nx},13:{n:"PtgElfColS",f:Kg},15:{n:"PtgElfColSV",f:Zg},16:{n:"PtgElfRadicalLel",f:rx},25:{n:"PtgList",f:sx},29:{n:"PtgSxName",f:lx},255:{}},mx={0:{n:"PtgAttrNoop",f:dx},1:{n:"PtgAttrSemi",f:_g},2:{n:"PtgAttrIf",f:yg},4:{n:"PtgAttrChoose",f:gg},8:{n:"PtgAttrGoto",f:xg},16:{n:"PtgAttrSum",f:Dg},32:{n:"PtgAttrBaxcel",f:gc},33:{n:"PtgAttrBaxcel",f:gc},64:{n:"PtgAttrSpace",f:bg},65:{n:"PtgAttrSpaceSemi",f:Eg},128:{n:"PtgAttrIfError",f:wg},255:{}};function vx(e,r,t,n){if(n.biff<8)return rn(e,r);for(var a=e.l+r,o=[],s=0;s!==t.length;++s)switch(t[s][0]){case"PtgArray":t[s][1]=jg(e,0,n),o.push(t[s][1]);break;case"PtgMemArea":t[s][2]=Ug(e,t[s][1],n),o.push(t[s][2]);break;case"PtgExp":n&&n.biff==12&&(t[s][1][1]=e.read_shift(4),o.push(t[s][1]));break;case"PtgList":case"PtgElfRadicalS":case"PtgElfColS":case"PtgElfColSV":throw"Unsupported "+t[s][0]}return r=a-e.l,r!==0&&o.push(rn(e,r)),o}function gx(e,r,t){for(var n=e.l+r,a,o,s=[];n!=e.l;)r=n-e.l,o=e[e.l],a=xc[o]||xc[px[o]],(o===24||o===25)&&(a=(o===24?Ax:mx)[e[e.l+1]]),!a||!a.f?rn(e,r):s.push([a.n,a.f(e,r,t)]);return s}function xx(e){for(var r=[],t=0;t=",PtgGt:">",PtgLe:"<=",PtgLt:"<",PtgMul:"*",PtgNe:"<>",PtgPower:"^",PtgSub:"-"};function wx(e,r){if(!e&&!(r&&r.biff<=5&&r.biff>=2))throw new Error("empty sheet name");return/[^\w\u4E00-\u9FFF\u3040-\u30FF]/.test(e)?"'"+e+"'":e}function Af(e,r,t){if(!e)return"SH33TJSERR0";if(t.biff>8&&(!e.XTI||!e.XTI[r]))return e.SheetNames[r];if(!e.XTI)return"SH33TJSERR6";var n=e.XTI[r];if(t.biff<8)return r>1e4&&(r-=65536),r<0&&(r=-r),r==0?"":e.XTI[r-1];if(!n)return"SH33TJSERR1";var a="";if(t.biff>8)switch(e[n[0]][0]){case 357:return a=n[1]==-1?"#REF":e.SheetNames[n[1]],n[1]==n[2]?a:a+":"+e.SheetNames[n[2]];case 358:return t.SID!=null?e.SheetNames[t.SID]:"SH33TJSSAME"+e[n[0]][0];case 355:default:return"SH33TJSSRC"+e[n[0]][0]}switch(e[n[0]][0][0]){case 1025:return a=n[1]==-1?"#REF":e.SheetNames[n[1]]||"SH33TJSERR3",n[1]==n[2]?a:a+":"+e.SheetNames[n[2]];case 14849:return e[n[0]].slice(1).map(function(o){return o.Name}).join(";;");default:return e[n[0]][0][3]?(a=n[1]==-1?"#REF":e[n[0]][0][3][n[1]]||"SH33TJSERR4",n[1]==n[2]?a:a+":"+e[n[0]][0][3][n[2]]):"SH33TJSERR2"}}function yc(e,r,t){var n=Af(e,r,t);return n=="#REF"?n:wx(n,t)}function Ia(e,r,t,n,a){var o=a&&a.biff||8,s={s:{c:0,r:0},e:{c:0,r:0}},c=[],d,f,u,p=0,A=0,v,x="";if(!e[0]||!e[0][0])return"";for(var m=-1,w="",M=0,E=e[0].length;M=0){switch(e[0][m][1][0]){case 0:w=vt(" ",e[0][m][1][1]);break;case 1:w=vt("\r",e[0][m][1][1]);break;default:if(w="",a.WTF)throw new Error("Unexpected PtgAttrSpaceType "+e[0][m][1][0])}f=f+w,m=-1}c.push(f+yx[b[0]]+d);break;case"PtgIsect":d=c.pop(),f=c.pop(),c.push(f+" "+d);break;case"PtgUnion":d=c.pop(),f=c.pop(),c.push(f+","+d);break;case"PtgRange":d=c.pop(),f=c.pop(),c.push(f+":"+d);break;case"PtgAttrChoose":break;case"PtgAttrGoto":break;case"PtgAttrIf":break;case"PtgAttrIfError":break;case"PtgRef":u=qa(b[1][1],s,a),c.push(Ja(u,o));break;case"PtgRefN":u=t?qa(b[1][1],t,a):b[1][1],c.push(Ja(u,o));break;case"PtgRef3d":p=b[1][1],u=qa(b[1][2],s,a),x=yc(n,p,a),c.push(x+"!"+Ja(u,o));break;case"PtgFunc":case"PtgFuncVar":var L=b[1][0],N=b[1][1];L||(L=0),L&=127;var O=L==0?[]:c.slice(-L);c.length-=L,N==="User"&&(N=O.shift()),c.push(N+"("+O.join(",")+")");break;case"PtgBool":c.push(b[1]?"TRUE":"FALSE");break;case"PtgInt":c.push(b[1]);break;case"PtgNum":c.push(String(b[1]));break;case"PtgStr":c.push('"'+b[1].replace(/"/g,'""')+'"');break;case"PtgErr":c.push(b[1]);break;case"PtgAreaN":v=ac(b[1][1],t?{s:t}:s,a),c.push(Xo(v,a));break;case"PtgArea":v=ac(b[1][1],s,a),c.push(Xo(v,a));break;case"PtgArea3d":p=b[1][1],v=b[1][2],x=yc(n,p,a),c.push(x+"!"+Xo(v,a));break;case"PtgAttrSum":c.push("SUM("+c.pop()+")");break;case"PtgAttrBaxcel":case"PtgAttrSemi":break;case"PtgName":A=b[1][2];var R=(n.names||[])[A-1]||(n[0]||[])[A],q=R?R.Name:"SH33TJSNAME"+String(A);q&&q.slice(0,6)=="_xlfn."&&!a.xlfn&&(q=q.slice(6)),c.push(q);break;case"PtgNameX":var H=b[1][1];A=b[1][2];var le;if(a.biff<=5)H<0&&(H=-H),n[H]&&(le=n[H][A]);else{var ae="";if(((n[H]||[])[0]||[])[0]==14849||(((n[H]||[])[0]||[])[0]==1025?n[H][A]&&n[H][A].itab>0&&(ae=n.SheetNames[n[H][A].itab-1]+"!"):ae=n.SheetNames[A-1]+"!"),n[H]&&n[H][A])ae+=n[H][A].Name;else if(n[0]&&n[0][A])ae+=n[0][A].Name;else{var Ae=(Af(n,H,a)||"").split(";;");Ae[A-1]?ae=Ae[A-1]:ae+="SH33TJSERRX"}c.push(ae);break}le||(le={Name:"SH33TJSERRY"}),c.push(le.Name);break;case"PtgParen":var be="(",Qe=")";if(m>=0){switch(w="",e[0][m][1][0]){case 2:be=vt(" ",e[0][m][1][1])+be;break;case 3:be=vt("\r",e[0][m][1][1])+be;break;case 4:Qe=vt(" ",e[0][m][1][1])+Qe;break;case 5:Qe=vt("\r",e[0][m][1][1])+Qe;break;default:if(a.WTF)throw new Error("Unexpected PtgAttrSpaceType "+e[0][m][1][0])}m=-1}c.push(be+c.pop()+Qe);break;case"PtgRefErr":c.push("#REF!");break;case"PtgRefErr3d":c.push("#REF!");break;case"PtgExp":u={c:b[1][1],r:b[1][0]};var Me={c:t.c,r:t.r};if(n.sharedf[rt(u)]){var Ve=n.sharedf[rt(u)];c.push(Ia(Ve,s,Me,n,a))}else{var We=!1;for(d=0;d!=n.arrayf.length;++d)if(f=n.arrayf[d],!(u.cf[0].e.c)&&!(u.rf[0].e.r)){c.push(Ia(f[1],s,Me,n,a)),We=!0;break}We||c.push(b[1])}break;case"PtgArray":c.push("{"+xx(b[1])+"}");break;case"PtgMemArea":break;case"PtgAttrSpace":case"PtgAttrSpaceSemi":m=M;break;case"PtgTbl":break;case"PtgMemErr":break;case"PtgMissArg":c.push("");break;case"PtgAreaErr":c.push("#REF!");break;case"PtgAreaErr3d":c.push("#REF!");break;case"PtgList":c.push("Table"+b[1].idx+"[#"+b[1].rt+"]");break;case"PtgMemAreaN":case"PtgMemNoMemN":case"PtgAttrNoop":case"PtgSheet":case"PtgEndSheet":break;case"PtgMemFunc":break;case"PtgMemNoMem":break;case"PtgElfCol":case"PtgElfColS":case"PtgElfColSV":case"PtgElfColV":case"PtgElfLel":case"PtgElfRadical":case"PtgElfRadicalLel":case"PtgElfRadicalS":case"PtgElfRw":case"PtgElfRwV":throw new Error("Unsupported ELFs");case"PtgSxName":throw new Error("Unrecognized Formula Token: "+String(b));default:throw new Error("Unrecognized Formula Token: "+String(b))}var Zt=["PtgAttrSpace","PtgAttrSpaceSemi","PtgAttrGoto"];if(a.biff!=3&&m>=0&&Zt.indexOf(e[0][M][0])==-1){b=e[0][m];var pt=!0;switch(b[1][0]){case 4:pt=!1;case 0:w=vt(" ",b[1][1]);break;case 5:pt=!1;case 1:w=vt("\r",b[1][1]);break;default:if(w="",a.WTF)throw new Error("Unexpected PtgAttrSpaceType "+b[1][0])}c.push((pt?w:"")+c.pop()+(pt?"":w)),m=-1}}if(c.length>1&&a.WTF)throw new Error("bad formula stack");return c[0]}function _x(e){if(e==null){var r=ue(8);return r.write_shift(1,3),r.write_shift(1,0),r.write_shift(2,0),r.write_shift(2,0),r.write_shift(2,65535),r}else if(typeof e=="number")return Zn(e);return Zn(0)}function bx(e,r,t,n,a){var o=ea(r,t,a),s=_x(e.v),c=ue(6),d=33;c.write_shift(2,d),c.write_shift(4,0);for(var f=ue(e.bf.length),u=0;u0?vx(e,o,a,t):null;return[a,s]}var Ex=Ao,mo=Ao,Tx=Ao,kx=Ao,Sx={0:"BEEP",1:"OPEN",2:"OPEN.LINKS",3:"CLOSE.ALL",4:"SAVE",5:"SAVE.AS",6:"FILE.DELETE",7:"PAGE.SETUP",8:"PRINT",9:"PRINTER.SETUP",10:"QUIT",11:"NEW.WINDOW",12:"ARRANGE.ALL",13:"WINDOW.SIZE",14:"WINDOW.MOVE",15:"FULL",16:"CLOSE",17:"RUN",22:"SET.PRINT.AREA",23:"SET.PRINT.TITLES",24:"SET.PAGE.BREAK",25:"REMOVE.PAGE.BREAK",26:"FONT",27:"DISPLAY",28:"PROTECT.DOCUMENT",29:"PRECISION",30:"A1.R1C1",31:"CALCULATE.NOW",32:"CALCULATION",34:"DATA.FIND",35:"EXTRACT",36:"DATA.DELETE",37:"SET.DATABASE",38:"SET.CRITERIA",39:"SORT",40:"DATA.SERIES",41:"TABLE",42:"FORMAT.NUMBER",43:"ALIGNMENT",44:"STYLE",45:"BORDER",46:"CELL.PROTECTION",47:"COLUMN.WIDTH",48:"UNDO",49:"CUT",50:"COPY",51:"PASTE",52:"CLEAR",53:"PASTE.SPECIAL",54:"EDIT.DELETE",55:"INSERT",56:"FILL.RIGHT",57:"FILL.DOWN",61:"DEFINE.NAME",62:"CREATE.NAMES",63:"FORMULA.GOTO",64:"FORMULA.FIND",65:"SELECT.LAST.CELL",66:"SHOW.ACTIVE.CELL",67:"GALLERY.AREA",68:"GALLERY.BAR",69:"GALLERY.COLUMN",70:"GALLERY.LINE",71:"GALLERY.PIE",72:"GALLERY.SCATTER",73:"COMBINATION",74:"PREFERRED",75:"ADD.OVERLAY",76:"GRIDLINES",77:"SET.PREFERRED",78:"AXES",79:"LEGEND",80:"ATTACH.TEXT",81:"ADD.ARROW",82:"SELECT.CHART",83:"SELECT.PLOT.AREA",84:"PATTERNS",85:"MAIN.CHART",86:"OVERLAY",87:"SCALE",88:"FORMAT.LEGEND",89:"FORMAT.TEXT",90:"EDIT.REPEAT",91:"PARSE",92:"JUSTIFY",93:"HIDE",94:"UNHIDE",95:"WORKSPACE",96:"FORMULA",97:"FORMULA.FILL",98:"FORMULA.ARRAY",99:"DATA.FIND.NEXT",100:"DATA.FIND.PREV",101:"FORMULA.FIND.NEXT",102:"FORMULA.FIND.PREV",103:"ACTIVATE",104:"ACTIVATE.NEXT",105:"ACTIVATE.PREV",106:"UNLOCKED.NEXT",107:"UNLOCKED.PREV",108:"COPY.PICTURE",109:"SELECT",110:"DELETE.NAME",111:"DELETE.FORMAT",112:"VLINE",113:"HLINE",114:"VPAGE",115:"HPAGE",116:"VSCROLL",117:"HSCROLL",118:"ALERT",119:"NEW",120:"CANCEL.COPY",121:"SHOW.CLIPBOARD",122:"MESSAGE",124:"PASTE.LINK",125:"APP.ACTIVATE",126:"DELETE.ARROW",127:"ROW.HEIGHT",128:"FORMAT.MOVE",129:"FORMAT.SIZE",130:"FORMULA.REPLACE",131:"SEND.KEYS",132:"SELECT.SPECIAL",133:"APPLY.NAMES",134:"REPLACE.FONT",135:"FREEZE.PANES",136:"SHOW.INFO",137:"SPLIT",138:"ON.WINDOW",139:"ON.DATA",140:"DISABLE.INPUT",142:"OUTLINE",143:"LIST.NAMES",144:"FILE.CLOSE",145:"SAVE.WORKBOOK",146:"DATA.FORM",147:"COPY.CHART",148:"ON.TIME",149:"WAIT",150:"FORMAT.FONT",151:"FILL.UP",152:"FILL.LEFT",153:"DELETE.OVERLAY",155:"SHORT.MENUS",159:"SET.UPDATE.STATUS",161:"COLOR.PALETTE",162:"DELETE.STYLE",163:"WINDOW.RESTORE",164:"WINDOW.MAXIMIZE",166:"CHANGE.LINK",167:"CALCULATE.DOCUMENT",168:"ON.KEY",169:"APP.RESTORE",170:"APP.MOVE",171:"APP.SIZE",172:"APP.MINIMIZE",173:"APP.MAXIMIZE",174:"BRING.TO.FRONT",175:"SEND.TO.BACK",185:"MAIN.CHART.TYPE",186:"OVERLAY.CHART.TYPE",187:"SELECT.END",188:"OPEN.MAIL",189:"SEND.MAIL",190:"STANDARD.FONT",191:"CONSOLIDATE",192:"SORT.SPECIAL",193:"GALLERY.3D.AREA",194:"GALLERY.3D.COLUMN",195:"GALLERY.3D.LINE",196:"GALLERY.3D.PIE",197:"VIEW.3D",198:"GOAL.SEEK",199:"WORKGROUP",200:"FILL.GROUP",201:"UPDATE.LINK",202:"PROMOTE",203:"DEMOTE",204:"SHOW.DETAIL",206:"UNGROUP",207:"OBJECT.PROPERTIES",208:"SAVE.NEW.OBJECT",209:"SHARE",210:"SHARE.NAME",211:"DUPLICATE",212:"APPLY.STYLE",213:"ASSIGN.TO.OBJECT",214:"OBJECT.PROTECTION",215:"HIDE.OBJECT",216:"SET.EXTRACT",217:"CREATE.PUBLISHER",218:"SUBSCRIBE.TO",219:"ATTRIBUTES",220:"SHOW.TOOLBAR",222:"PRINT.PREVIEW",223:"EDIT.COLOR",224:"SHOW.LEVELS",225:"FORMAT.MAIN",226:"FORMAT.OVERLAY",227:"ON.RECALC",228:"EDIT.SERIES",229:"DEFINE.STYLE",240:"LINE.PRINT",243:"ENTER.DATA",249:"GALLERY.RADAR",250:"MERGE.STYLES",251:"EDITION.OPTIONS",252:"PASTE.PICTURE",253:"PASTE.PICTURE.LINK",254:"SPELLING",256:"ZOOM",259:"INSERT.OBJECT",260:"WINDOW.MINIMIZE",265:"SOUND.NOTE",266:"SOUND.PLAY",267:"FORMAT.SHAPE",268:"EXTEND.POLYGON",269:"FORMAT.AUTO",272:"GALLERY.3D.BAR",273:"GALLERY.3D.SURFACE",274:"FILL.AUTO",276:"CUSTOMIZE.TOOLBAR",277:"ADD.TOOL",278:"EDIT.OBJECT",279:"ON.DOUBLECLICK",280:"ON.ENTRY",281:"WORKBOOK.ADD",282:"WORKBOOK.MOVE",283:"WORKBOOK.COPY",284:"WORKBOOK.OPTIONS",285:"SAVE.WORKSPACE",288:"CHART.WIZARD",289:"DELETE.TOOL",290:"MOVE.TOOL",291:"WORKBOOK.SELECT",292:"WORKBOOK.ACTIVATE",293:"ASSIGN.TO.TOOL",295:"COPY.TOOL",296:"RESET.TOOL",297:"CONSTRAIN.NUMERIC",298:"PASTE.TOOL",302:"WORKBOOK.NEW",305:"SCENARIO.CELLS",306:"SCENARIO.DELETE",307:"SCENARIO.ADD",308:"SCENARIO.EDIT",309:"SCENARIO.SHOW",310:"SCENARIO.SHOW.NEXT",311:"SCENARIO.SUMMARY",312:"PIVOT.TABLE.WIZARD",313:"PIVOT.FIELD.PROPERTIES",314:"PIVOT.FIELD",315:"PIVOT.ITEM",316:"PIVOT.ADD.FIELDS",318:"OPTIONS.CALCULATION",319:"OPTIONS.EDIT",320:"OPTIONS.VIEW",321:"ADDIN.MANAGER",322:"MENU.EDITOR",323:"ATTACH.TOOLBARS",324:"VBAActivate",325:"OPTIONS.CHART",328:"VBA.INSERT.FILE",330:"VBA.PROCEDURE.DEFINITION",336:"ROUTING.SLIP",338:"ROUTE.DOCUMENT",339:"MAIL.LOGON",342:"INSERT.PICTURE",343:"EDIT.TOOL",344:"GALLERY.DOUGHNUT",350:"CHART.TREND",352:"PIVOT.ITEM.PROPERTIES",354:"WORKBOOK.INSERT",355:"OPTIONS.TRANSITION",356:"OPTIONS.GENERAL",370:"FILTER.ADVANCED",373:"MAIL.ADD.MAILER",374:"MAIL.DELETE.MAILER",375:"MAIL.REPLY",376:"MAIL.REPLY.ALL",377:"MAIL.FORWARD",378:"MAIL.NEXT.LETTER",379:"DATA.LABEL",380:"INSERT.TITLE",381:"FONT.PROPERTIES",382:"MACRO.OPTIONS",383:"WORKBOOK.HIDE",384:"WORKBOOK.UNHIDE",385:"WORKBOOK.DELETE",386:"WORKBOOK.NAME",388:"GALLERY.CUSTOM",390:"ADD.CHART.AUTOFORMAT",391:"DELETE.CHART.AUTOFORMAT",392:"CHART.ADD.DATA",393:"AUTO.OUTLINE",394:"TAB.ORDER",395:"SHOW.DIALOG",396:"SELECT.ALL",397:"UNGROUP.SHEETS",398:"SUBTOTAL.CREATE",399:"SUBTOTAL.REMOVE",400:"RENAME.OBJECT",412:"WORKBOOK.SCROLL",413:"WORKBOOK.NEXT",414:"WORKBOOK.PREV",415:"WORKBOOK.TAB.SPLIT",416:"FULL.SCREEN",417:"WORKBOOK.PROTECT",420:"SCROLLBAR.PROPERTIES",421:"PIVOT.SHOW.PAGES",422:"TEXT.TO.COLUMNS",423:"FORMAT.CHARTTYPE",424:"LINK.FORMAT",425:"TRACER.DISPLAY",430:"TRACER.NAVIGATE",431:"TRACER.CLEAR",432:"TRACER.ERROR",433:"PIVOT.FIELD.GROUP",434:"PIVOT.FIELD.UNGROUP",435:"CHECKBOX.PROPERTIES",436:"LABEL.PROPERTIES",437:"LISTBOX.PROPERTIES",438:"EDITBOX.PROPERTIES",439:"PIVOT.REFRESH",440:"LINK.COMBO",441:"OPEN.TEXT",442:"HIDE.DIALOG",443:"SET.DIALOG.FOCUS",444:"ENABLE.OBJECT",445:"PUSHBUTTON.PROPERTIES",446:"SET.DIALOG.DEFAULT",447:"FILTER",448:"FILTER.SHOW.ALL",449:"CLEAR.OUTLINE",450:"FUNCTION.WIZARD",451:"ADD.LIST.ITEM",452:"SET.LIST.ITEM",453:"REMOVE.LIST.ITEM",454:"SELECT.LIST.ITEM",455:"SET.CONTROL.VALUE",456:"SAVE.COPY.AS",458:"OPTIONS.LISTS.ADD",459:"OPTIONS.LISTS.DELETE",460:"SERIES.AXES",461:"SERIES.X",462:"SERIES.Y",463:"ERRORBAR.X",464:"ERRORBAR.Y",465:"FORMAT.CHART",466:"SERIES.ORDER",467:"MAIL.LOGOFF",468:"CLEAR.ROUTING.SLIP",469:"APP.ACTIVATE.MICROSOFT",470:"MAIL.EDIT.MAILER",471:"ON.SHEET",472:"STANDARD.WIDTH",473:"SCENARIO.MERGE",474:"SUMMARY.INFO",475:"FIND.FILE",476:"ACTIVE.CELL.FONT",477:"ENABLE.TIPWIZARD",478:"VBA.MAKE.ADDIN",480:"INSERTDATATABLE",481:"WORKGROUP.OPTIONS",482:"MAIL.SEND.MAILER",485:"AUTOCORRECT",489:"POST.DOCUMENT",491:"PICKLIST",493:"VIEW.SHOW",494:"VIEW.DEFINE",495:"VIEW.DELETE",509:"SHEET.BACKGROUND",510:"INSERT.MAP.OBJECT",511:"OPTIONS.MENONO",517:"MSOCHECKS",518:"NORMAL",519:"LAYOUT",520:"RM.PRINT.AREA",521:"CLEAR.PRINT.AREA",522:"ADD.PRINT.AREA",523:"MOVE.BRK",545:"HIDECURR.NOTE",546:"HIDEALL.NOTES",547:"DELETE.NOTE",548:"TRAVERSE.NOTES",549:"ACTIVATE.NOTES",620:"PROTECT.REVISIONS",621:"UNPROTECT.REVISIONS",647:"OPTIONS.ME",653:"WEB.PUBLISH",667:"NEWWEBQUERY",673:"PIVOT.TABLE.CHART",753:"OPTIONS.SAVE",755:"OPTIONS.SPELL",808:"HIDEALL.INKANNOTS"},mf={0:"COUNT",1:"IF",2:"ISNA",3:"ISERROR",4:"SUM",5:"AVERAGE",6:"MIN",7:"MAX",8:"ROW",9:"COLUMN",10:"NA",11:"NPV",12:"STDEV",13:"DOLLAR",14:"FIXED",15:"SIN",16:"COS",17:"TAN",18:"ATAN",19:"PI",20:"SQRT",21:"EXP",22:"LN",23:"LOG10",24:"ABS",25:"INT",26:"SIGN",27:"ROUND",28:"LOOKUP",29:"INDEX",30:"REPT",31:"MID",32:"LEN",33:"VALUE",34:"TRUE",35:"FALSE",36:"AND",37:"OR",38:"NOT",39:"MOD",40:"DCOUNT",41:"DSUM",42:"DAVERAGE",43:"DMIN",44:"DMAX",45:"DSTDEV",46:"VAR",47:"DVAR",48:"TEXT",49:"LINEST",50:"TREND",51:"LOGEST",52:"GROWTH",53:"GOTO",54:"HALT",55:"RETURN",56:"PV",57:"FV",58:"NPER",59:"PMT",60:"RATE",61:"MIRR",62:"IRR",63:"RAND",64:"MATCH",65:"DATE",66:"TIME",67:"DAY",68:"MONTH",69:"YEAR",70:"WEEKDAY",71:"HOUR",72:"MINUTE",73:"SECOND",74:"NOW",75:"AREAS",76:"ROWS",77:"COLUMNS",78:"OFFSET",79:"ABSREF",80:"RELREF",81:"ARGUMENT",82:"SEARCH",83:"TRANSPOSE",84:"ERROR",85:"STEP",86:"TYPE",87:"ECHO",88:"SET.NAME",89:"CALLER",90:"DEREF",91:"WINDOWS",92:"SERIES",93:"DOCUMENTS",94:"ACTIVE.CELL",95:"SELECTION",96:"RESULT",97:"ATAN2",98:"ASIN",99:"ACOS",100:"CHOOSE",101:"HLOOKUP",102:"VLOOKUP",103:"LINKS",104:"INPUT",105:"ISREF",106:"GET.FORMULA",107:"GET.NAME",108:"SET.VALUE",109:"LOG",110:"EXEC",111:"CHAR",112:"LOWER",113:"UPPER",114:"PROPER",115:"LEFT",116:"RIGHT",117:"EXACT",118:"TRIM",119:"REPLACE",120:"SUBSTITUTE",121:"CODE",122:"NAMES",123:"DIRECTORY",124:"FIND",125:"CELL",126:"ISERR",127:"ISTEXT",128:"ISNUMBER",129:"ISBLANK",130:"T",131:"N",132:"FOPEN",133:"FCLOSE",134:"FSIZE",135:"FREADLN",136:"FREAD",137:"FWRITELN",138:"FWRITE",139:"FPOS",140:"DATEVALUE",141:"TIMEVALUE",142:"SLN",143:"SYD",144:"DDB",145:"GET.DEF",146:"REFTEXT",147:"TEXTREF",148:"INDIRECT",149:"REGISTER",150:"CALL",151:"ADD.BAR",152:"ADD.MENU",153:"ADD.COMMAND",154:"ENABLE.COMMAND",155:"CHECK.COMMAND",156:"RENAME.COMMAND",157:"SHOW.BAR",158:"DELETE.MENU",159:"DELETE.COMMAND",160:"GET.CHART.ITEM",161:"DIALOG.BOX",162:"CLEAN",163:"MDETERM",164:"MINVERSE",165:"MMULT",166:"FILES",167:"IPMT",168:"PPMT",169:"COUNTA",170:"CANCEL.KEY",171:"FOR",172:"WHILE",173:"BREAK",174:"NEXT",175:"INITIATE",176:"REQUEST",177:"POKE",178:"EXECUTE",179:"TERMINATE",180:"RESTART",181:"HELP",182:"GET.BAR",183:"PRODUCT",184:"FACT",185:"GET.CELL",186:"GET.WORKSPACE",187:"GET.WINDOW",188:"GET.DOCUMENT",189:"DPRODUCT",190:"ISNONTEXT",191:"GET.NOTE",192:"NOTE",193:"STDEVP",194:"VARP",195:"DSTDEVP",196:"DVARP",197:"TRUNC",198:"ISLOGICAL",199:"DCOUNTA",200:"DELETE.BAR",201:"UNREGISTER",204:"USDOLLAR",205:"FINDB",206:"SEARCHB",207:"REPLACEB",208:"LEFTB",209:"RIGHTB",210:"MIDB",211:"LENB",212:"ROUNDUP",213:"ROUNDDOWN",214:"ASC",215:"DBCS",216:"RANK",219:"ADDRESS",220:"DAYS360",221:"TODAY",222:"VDB",223:"ELSE",224:"ELSE.IF",225:"END.IF",226:"FOR.CELL",227:"MEDIAN",228:"SUMPRODUCT",229:"SINH",230:"COSH",231:"TANH",232:"ASINH",233:"ACOSH",234:"ATANH",235:"DGET",236:"CREATE.OBJECT",237:"VOLATILE",238:"LAST.ERROR",239:"CUSTOM.UNDO",240:"CUSTOM.REPEAT",241:"FORMULA.CONVERT",242:"GET.LINK.INFO",243:"TEXT.BOX",244:"INFO",245:"GROUP",246:"GET.OBJECT",247:"DB",248:"PAUSE",251:"RESUME",252:"FREQUENCY",253:"ADD.TOOLBAR",254:"DELETE.TOOLBAR",255:"User",256:"RESET.TOOLBAR",257:"EVALUATE",258:"GET.TOOLBAR",259:"GET.TOOL",260:"SPELLING.CHECK",261:"ERROR.TYPE",262:"APP.TITLE",263:"WINDOW.TITLE",264:"SAVE.TOOLBAR",265:"ENABLE.TOOL",266:"PRESS.TOOL",267:"REGISTER.ID",268:"GET.WORKBOOK",269:"AVEDEV",270:"BETADIST",271:"GAMMALN",272:"BETAINV",273:"BINOMDIST",274:"CHIDIST",275:"CHIINV",276:"COMBIN",277:"CONFIDENCE",278:"CRITBINOM",279:"EVEN",280:"EXPONDIST",281:"FDIST",282:"FINV",283:"FISHER",284:"FISHERINV",285:"FLOOR",286:"GAMMADIST",287:"GAMMAINV",288:"CEILING",289:"HYPGEOMDIST",290:"LOGNORMDIST",291:"LOGINV",292:"NEGBINOMDIST",293:"NORMDIST",294:"NORMSDIST",295:"NORMINV",296:"NORMSINV",297:"STANDARDIZE",298:"ODD",299:"PERMUT",300:"POISSON",301:"TDIST",302:"WEIBULL",303:"SUMXMY2",304:"SUMX2MY2",305:"SUMX2PY2",306:"CHITEST",307:"CORREL",308:"COVAR",309:"FORECAST",310:"FTEST",311:"INTERCEPT",312:"PEARSON",313:"RSQ",314:"STEYX",315:"SLOPE",316:"TTEST",317:"PROB",318:"DEVSQ",319:"GEOMEAN",320:"HARMEAN",321:"SUMSQ",322:"KURT",323:"SKEW",324:"ZTEST",325:"LARGE",326:"SMALL",327:"QUARTILE",328:"PERCENTILE",329:"PERCENTRANK",330:"MODE",331:"TRIMMEAN",332:"TINV",334:"MOVIE.COMMAND",335:"GET.MOVIE",336:"CONCATENATE",337:"POWER",338:"PIVOT.ADD.DATA",339:"GET.PIVOT.TABLE",340:"GET.PIVOT.FIELD",341:"GET.PIVOT.ITEM",342:"RADIANS",343:"DEGREES",344:"SUBTOTAL",345:"SUMIF",346:"COUNTIF",347:"COUNTBLANK",348:"SCENARIO.GET",349:"OPTIONS.LISTS.GET",350:"ISPMT",351:"DATEDIF",352:"DATESTRING",353:"NUMBERSTRING",354:"ROMAN",355:"OPEN.DIALOG",356:"SAVE.DIALOG",357:"VIEW.GET",358:"GETPIVOTDATA",359:"HYPERLINK",360:"PHONETIC",361:"AVERAGEA",362:"MAXA",363:"MINA",364:"STDEVPA",365:"VARPA",366:"STDEVA",367:"VARA",368:"BAHTTEXT",369:"THAIDAYOFWEEK",370:"THAIDIGIT",371:"THAIMONTHOFYEAR",372:"THAINUMSOUND",373:"THAINUMSTRING",374:"THAISTRINGLENGTH",375:"ISTHAIDIGIT",376:"ROUNDBAHTDOWN",377:"ROUNDBAHTUP",378:"THAIYEAR",379:"RTD",380:"CUBEVALUE",381:"CUBEMEMBER",382:"CUBEMEMBERPROPERTY",383:"CUBERANKEDMEMBER",384:"HEX2BIN",385:"HEX2DEC",386:"HEX2OCT",387:"DEC2BIN",388:"DEC2HEX",389:"DEC2OCT",390:"OCT2BIN",391:"OCT2HEX",392:"OCT2DEC",393:"BIN2DEC",394:"BIN2OCT",395:"BIN2HEX",396:"IMSUB",397:"IMDIV",398:"IMPOWER",399:"IMABS",400:"IMSQRT",401:"IMLN",402:"IMLOG2",403:"IMLOG10",404:"IMSIN",405:"IMCOS",406:"IMEXP",407:"IMARGUMENT",408:"IMCONJUGATE",409:"IMAGINARY",410:"IMREAL",411:"COMPLEX",412:"IMSUM",413:"IMPRODUCT",414:"SERIESSUM",415:"FACTDOUBLE",416:"SQRTPI",417:"QUOTIENT",418:"DELTA",419:"GESTEP",420:"ISEVEN",421:"ISODD",422:"MROUND",423:"ERF",424:"ERFC",425:"BESSELJ",426:"BESSELK",427:"BESSELY",428:"BESSELI",429:"XIRR",430:"XNPV",431:"PRICEMAT",432:"YIELDMAT",433:"INTRATE",434:"RECEIVED",435:"DISC",436:"PRICEDISC",437:"YIELDDISC",438:"TBILLEQ",439:"TBILLPRICE",440:"TBILLYIELD",441:"PRICE",442:"YIELD",443:"DOLLARDE",444:"DOLLARFR",445:"NOMINAL",446:"EFFECT",447:"CUMPRINC",448:"CUMIPMT",449:"EDATE",450:"EOMONTH",451:"YEARFRAC",452:"COUPDAYBS",453:"COUPDAYS",454:"COUPDAYSNC",455:"COUPNCD",456:"COUPNUM",457:"COUPPCD",458:"DURATION",459:"MDURATION",460:"ODDLPRICE",461:"ODDLYIELD",462:"ODDFPRICE",463:"ODDFYIELD",464:"RANDBETWEEN",465:"WEEKNUM",466:"AMORDEGRC",467:"AMORLINC",468:"CONVERT",724:"SHEETJS",469:"ACCRINT",470:"ACCRINTM",471:"WORKDAY",472:"NETWORKDAYS",473:"GCD",474:"MULTINOMIAL",475:"LCM",476:"FVSCHEDULE",477:"CUBEKPIMEMBER",478:"CUBESET",479:"CUBESETCOUNT",480:"IFERROR",481:"COUNTIFS",482:"SUMIFS",483:"AVERAGEIF",484:"AVERAGEIFS"},Fx={2:1,3:1,10:0,15:1,16:1,17:1,18:1,19:0,20:1,21:1,22:1,23:1,24:1,25:1,26:1,27:2,30:2,31:3,32:1,33:1,34:0,35:0,38:1,39:2,40:3,41:3,42:3,43:3,44:3,45:3,47:3,48:2,53:1,61:3,63:0,65:3,66:3,67:1,68:1,69:1,70:1,71:1,72:1,73:1,74:0,75:1,76:1,77:1,79:2,80:2,83:1,85:0,86:1,89:0,90:1,94:0,95:0,97:2,98:1,99:1,101:3,102:3,105:1,106:1,108:2,111:1,112:1,113:1,114:1,117:2,118:1,119:4,121:1,126:1,127:1,128:1,129:1,130:1,131:1,133:1,134:1,135:1,136:2,137:2,138:2,140:1,141:1,142:3,143:4,144:4,161:1,162:1,163:1,164:1,165:2,172:1,175:2,176:2,177:3,178:2,179:1,184:1,186:1,189:3,190:1,195:3,196:3,197:1,198:1,199:3,201:1,207:4,210:3,211:1,212:2,213:2,214:1,215:1,225:0,229:1,230:1,231:1,232:1,233:1,234:1,235:3,244:1,247:4,252:2,257:1,261:1,271:1,273:4,274:2,275:2,276:2,277:3,278:3,279:1,280:3,281:3,282:3,283:1,284:1,285:2,286:4,287:3,288:2,289:4,290:3,291:3,292:3,293:4,294:1,295:3,296:1,297:3,298:1,299:2,300:3,301:3,302:4,303:2,304:2,305:2,306:2,307:2,308:2,309:3,310:2,311:2,312:2,313:2,314:2,315:2,316:4,325:2,326:2,327:2,328:2,331:2,332:2,337:2,342:1,343:1,346:2,347:1,350:4,351:3,352:1,353:2,360:1,368:1,369:1,370:1,371:1,372:1,373:1,374:1,375:1,376:1,377:1,378:1,382:3,385:1,392:1,393:1,396:2,397:2,398:2,399:1,400:1,401:1,402:1,403:1,404:1,405:1,406:1,407:1,408:1,409:1,410:1,414:4,415:1,416:1,417:2,420:1,421:1,422:2,424:1,425:2,426:2,427:2,428:2,430:3,438:3,439:3,440:3,443:2,444:2,445:2,446:2,447:6,448:6,449:2,450:2,464:2,468:3,476:2,479:1,480:2,65535:0};function Cx(e){var r="of:="+e.replace(Is,"$1[.$2$3$4$5]").replace(/\]:\[/g,":");return r.replace(/;/g,"|").replace(/,/g,";")}function Ox(e){return e.replace(/\./,"!")}var Ka=typeof Map!="undefined";function Ps(e,r,t){var n=0,a=e.length;if(t){if(Ka?t.has(r):Object.prototype.hasOwnProperty.call(t,r)){for(var o=Ka?t.get(r):t[r];n-1?(t.width=ss(n),t.customWidth=1):r.width!=null&&(t.width=r.width),r.hidden&&(t.hidden=!0),r.level!=null&&(t.outlineLevel=t.level=r.level),t}function vf(e,r){if(!!e){var t=[.7,.7,.75,.75,.3,.3];r=="xlml"&&(t=[1,1,1,1,.5,.5]),e.left==null&&(e.left=t[0]),e.right==null&&(e.right=t[1]),e.top==null&&(e.top=t[2]),e.bottom==null&&(e.bottom=t[3]),e.header==null&&(e.header=t[4]),e.footer==null&&(e.footer=t[5])}}function Pn(e,r,t){var n=t.revssf[r.z!=null?r.z:"General"],a=60,o=e.length;if(n==null&&t.ssf){for(;a<392;++a)if(t.ssf[a]==null){fu(r.z,a),t.ssf[a]=r.z,t.revssf[r.z]=n=a;break}}for(a=0;a!=o;++a)if(e[a].numFmtId===n)return a;return e[o]={numFmtId:n,fontId:0,fillId:0,borderId:0,xfId:0,applyNumberFormat:1},o}function Dx(e,r,t){if(e&&e["!ref"]){var n=ct(e["!ref"]);if(n.e.c',t=0;t!=e.length;++t)r+='';return r+""}function Ix(e,r,t,n,a){var o=!1,s={},c=null;if(n.bookType!=="xlsx"&&r.vbaraw){var d=r.SheetNames[t];try{r.Workbook&&(d=r.Workbook.Sheets[t].CodeName||d)}catch{}o=!0,s.codeName=pn(tt(d))}if(e&&e["!outline"]){var f={summaryBelow:1,summaryRight:1};e["!outline"].above&&(f.summaryBelow=0),e["!outline"].left&&(f.summaryRight=0),c=(c||"")+ye("outlinePr",null,f)}!o&&!c||(a[a.length]=ye("sheetPr",c,s))}var Rx=["objects","scenarios","selectLockedCells","selectUnlockedCells"],Mx=["formatColumns","formatRows","formatCells","insertColumns","insertRows","insertHyperlinks","deleteColumns","deleteRows","sort","autoFilter","pivotTables"];function Px(e){var r={sheet:1};return Rx.forEach(function(t){e[t]!=null&&e[t]&&(r[t]="1")}),Mx.forEach(function(t){e[t]!=null&&!e[t]&&(r[t]="0")}),e.password&&(r.password=Zu(e.password).toString(16).toUpperCase()),ye("sheetProtection",null,r)}function Lx(e){return vf(e),ye("pageMargins",null,e)}function Nx(e,r){for(var t=[""],n,a=0;a!=r.length;++a)!(n=r[a])||(t[t.length]=ye("col",null,vo(a,n)));return t[t.length]="",t.join("")}function Ux(e,r,t,n){var a=typeof e.ref=="string"?e.ref:St(e.ref);t.Workbook||(t.Workbook={Sheets:[]}),t.Workbook.Names||(t.Workbook.Names=[]);var o=t.Workbook.Names,s=wr(a);s.s.r==s.e.r&&(s.e.r=wr(r["!ref"]).e.r,a=St(s));for(var c=0;c32767)throw new Error("Text length must not exceed 32767 characters");if(n&&n.bookSST){c=Vt("v",""+Ps(n.Strings,e.v,n.revStrings)),d.t="s";break}d.t="str";break}if(e.t!=o&&(e.t=o,e.v=s),typeof e.f=="string"&&e.f){var u=e.F&&e.F.slice(0,r.length)==r?{t:"array",ref:e.F}:null;c=ye("f",tt(e.f),u)+(e.v!=null?c:"")}return e.l&&t["!links"].push([r,e.l]),e.D&&(d.cm=1),ye("c",c,d)}function Hx(e,r,t,n){var a=[],o=[],s=ct(e["!ref"]),c="",d,f="",u=[],p=0,A=0,v=e["!rows"],x=Array.isArray(e),m={r:f},w,M=-1;for(A=s.s.c;A<=s.e.c;++A)u[A]=Jt(A);for(p=s.s.r;p<=s.e.r;++p){for(o=[],f=Yt(p),A=s.s.c;A<=s.e.c;++A){d=u[A]+f;var E=x?(e[p]||[])[A]:e[d];E!==void 0&&(c=zx(E,d,e,r))!=null&&o.push(c)}(o.length>0||v&&v[p])&&(m={r:f},v&&v[p]&&(w=v[p],w.hidden&&(m.hidden=1),M=-1,w.hpx?M=no(w.hpx):w.hpt&&(M=w.hpt),M>-1&&(m.ht=M,m.customHeight=1),w.level&&(m.outlineLevel=w.level)),a[a.length]=ye("row",o.join(""),m))}if(v)for(;p-1&&(m.ht=M,m.customHeight=1),w.level&&(m.outlineLevel=w.level),a[a.length]=ye("row","",m));return a.join("")}function gf(e,r,t,n){var a=[Ft,ye("worksheet",null,{xmlns:Ra[0],"xmlns:r":Rt.r})],o=t.SheetNames[e],s=0,c="",d=t.Sheets[o];d==null&&(d={});var f=d["!ref"]||"A1",u=ct(f);if(u.e.c>16383||u.e.r>1048575){if(r.WTF)throw new Error("Range "+f+" exceeds format limit A1:XFD1048576");u.e.c=Math.min(u.e.c,16383),u.e.r=Math.min(u.e.c,1048575),f=St(u)}n||(n={}),d["!comments"]=[];var p=[];Ix(d,t,e,r,a),a[a.length]=ye("dimension",null,{ref:f}),a[a.length]=jx(d,r,e,t),r.sheetFormat&&(a[a.length]=ye("sheetFormatPr",null,{defaultRowHeight:r.sheetFormat.defaultRowHeight||"16",baseColWidth:r.sheetFormat.baseColWidth||"10",outlineLevelRow:r.sheetFormat.outlineLevelRow||"7"})),d["!cols"]!=null&&d["!cols"].length>0&&(a[a.length]=Nx(d,d["!cols"])),a[s=a.length]="",d["!links"]=[],d["!ref"]!=null&&(c=Hx(d,r),c.length>0&&(a[a.length]=c)),a.length>s+1&&(a[a.length]="",a[s]=a[s].replace("/>",">")),d["!protect"]&&(a[a.length]=Px(d["!protect"])),d["!autofilter"]!=null&&(a[a.length]=Ux(d["!autofilter"],d,t,e)),d["!merges"]!=null&&d["!merges"].length>0&&(a[a.length]=Bx(d["!merges"]));var A=-1,v,x=-1;return d["!links"].length>0&&(a[a.length]="",d["!links"].forEach(function(m){!m[1].Target||(v={ref:m[0]},m[1].Target.charAt(0)!="#"&&(x=et(n,-1,tt(m[1].Target).replace(/#.*$/,""),qe.HLINK),v["r:id"]="rId"+x),(A=m[1].Target.indexOf("#"))>-1&&(v.location=tt(m[1].Target.slice(A+1))),m[1].Tooltip&&(v.tooltip=tt(m[1].Tooltip)),a[a.length]=ye("hyperlink",null,v))}),a[a.length]=""),delete d["!links"],d["!margins"]!=null&&(a[a.length]=Lx(d["!margins"])),(!r||r.ignoreEC||r.ignoreEC==null)&&(a[a.length]=Vt("ignoredErrors",ye("ignoredError",null,{numberStoredAsText:1,sqref:f}))),p.length>0&&(x=et(n,-1,"../drawings/drawing"+(e+1)+".xml",qe.DRAW),a[a.length]=ye("drawing",null,{"r:id":"rId"+x}),d["!drawing"]=p),d["!comments"].length>0&&(x=et(n,-1,"../drawings/vmlDrawing"+(e+1)+".vml",qe.VML),a[a.length]=ye("legacyDrawing",null,{"r:id":"rId"+x}),d["!legacy"]=x),a.length>1&&(a[a.length]="",a[1]=a[1].replace("/>",">")),a.join("")}function Gx(e,r){var t={},n=e.l+r;t.r=e.read_shift(4),e.l+=4;var a=e.read_shift(2);e.l+=1;var o=e.read_shift(1);return e.l=n,o&7&&(t.level=o&7),o&16&&(t.hidden=!0),o&32&&(t.hpt=a/20),t}function Wx(e,r,t){var n=ue(145),a=(t["!rows"]||[])[e]||{};n.write_shift(4,e),n.write_shift(4,0);var o=320;a.hpx?o=no(a.hpx)*20:a.hpt&&(o=a.hpt*20),n.write_shift(2,o),n.write_shift(1,0);var s=0;a.level&&(s|=a.level),a.hidden&&(s|=16),(a.hpx||a.hpt)&&(s|=32),n.write_shift(1,s),n.write_shift(1,0);var c=0,d=n.l;n.l+=4;for(var f={r:e,c:0},u=0;u<16;++u)if(!(r.s.c>u+1<<10||r.e.cn.l?n.slice(0,n.l):n}function Vx(e,r,t,n){var a=Wx(n,t,r);(a.length>17||(r["!rows"]||[])[n])&&pe(e,0,a)}var Yx=ia,Qx=Pa;function $x(){}function Xx(e,r){var t={},n=e[e.l];return++e.l,t.above=!(n&64),t.left=!(n&128),e.l+=18,t.name=i2(e),t}function qx(e,r,t){t==null&&(t=ue(84+4*e.length));var n=192;r&&(r.above&&(n&=-65),r.left&&(n&=-129)),t.write_shift(1,n);for(var a=1;a<3;++a)t.write_shift(1,0);return Zi({auto:1},t),t.write_shift(-4,-1),t.write_shift(-4,-1),Bu(e,t),t.slice(0,t.l)}function Jx(e){var r=Dr(e);return[r]}function Kx(e,r,t){return t==null&&(t=ue(8)),ra(r,t)}function Zx(e){var r=na(e);return[r]}function ey(e,r,t){return t==null&&(t=ue(4)),aa(r,t)}function ty(e){var r=Dr(e),t=e.read_shift(1);return[r,t,"b"]}function ry(e,r,t){return t==null&&(t=ue(9)),ra(r,t),t.write_shift(1,e.v?1:0),t}function ny(e){var r=na(e),t=e.read_shift(1);return[r,t,"b"]}function ay(e,r,t){return t==null&&(t=ue(5)),aa(r,t),t.write_shift(1,e.v?1:0),t}function iy(e){var r=Dr(e),t=e.read_shift(1);return[r,t,"e"]}function oy(e,r,t){return t==null&&(t=ue(9)),ra(r,t),t.write_shift(1,e.v),t}function sy(e){var r=na(e),t=e.read_shift(1);return[r,t,"e"]}function ly(e,r,t){return t==null&&(t=ue(8)),aa(r,t),t.write_shift(1,e.v),t.write_shift(2,0),t.write_shift(1,0),t}function cy(e){var r=Dr(e),t=e.read_shift(4);return[r,t,"s"]}function uy(e,r,t){return t==null&&(t=ue(12)),ra(r,t),t.write_shift(4,r.v),t}function fy(e){var r=na(e),t=e.read_shift(4);return[r,t,"s"]}function hy(e,r,t){return t==null&&(t=ue(8)),aa(r,t),t.write_shift(4,r.v),t}function dy(e){var r=Dr(e),t=La(e);return[r,t,"n"]}function py(e,r,t){return t==null&&(t=ue(16)),ra(r,t),Zn(e.v,t),t}function Ay(e){var r=na(e),t=La(e);return[r,t,"n"]}function my(e,r,t){return t==null&&(t=ue(12)),aa(r,t),Zn(e.v,t),t}function vy(e){var r=Dr(e),t=Iu(e);return[r,t,"n"]}function gy(e,r,t){return t==null&&(t=ue(12)),ra(r,t),Ru(e.v,t),t}function xy(e){var r=na(e),t=Iu(e);return[r,t,"n"]}function yy(e,r,t){return t==null&&(t=ue(8)),aa(r,t),Ru(e.v,t),t}function wy(e){var r=Dr(e),t=Fs(e);return[r,t,"is"]}function _y(e){var r=Dr(e),t=Kt(e);return[r,t,"str"]}function by(e,r,t){return t==null&&(t=ue(12+4*e.v.length)),ra(r,t),Pt(e.v,t),t.length>t.l?t.slice(0,t.l):t}function Ey(e){var r=na(e),t=Kt(e);return[r,t,"str"]}function Ty(e,r,t){return t==null&&(t=ue(8+4*e.v.length)),aa(r,t),Pt(e.v,t),t.length>t.l?t.slice(0,t.l):t}function ky(e,r,t){var n=e.l+r,a=Dr(e);a.r=t["!row"];var o=e.read_shift(1),s=[a,o,"b"];if(t.cellFormula){e.l+=2;var c=mo(e,n-e.l,t);s[3]=Ia(c,null,a,t.supbooks,t)}else e.l=n;return s}function Sy(e,r,t){var n=e.l+r,a=Dr(e);a.r=t["!row"];var o=e.read_shift(1),s=[a,o,"e"];if(t.cellFormula){e.l+=2;var c=mo(e,n-e.l,t);s[3]=Ia(c,null,a,t.supbooks,t)}else e.l=n;return s}function Fy(e,r,t){var n=e.l+r,a=Dr(e);a.r=t["!row"];var o=La(e),s=[a,o,"n"];if(t.cellFormula){e.l+=2;var c=mo(e,n-e.l,t);s[3]=Ia(c,null,a,t.supbooks,t)}else e.l=n;return s}function Cy(e,r,t){var n=e.l+r,a=Dr(e);a.r=t["!row"];var o=Kt(e),s=[a,o,"str"];if(t.cellFormula){e.l+=2;var c=mo(e,n-e.l,t);s[3]=Ia(c,null,a,t.supbooks,t)}else e.l=n;return s}var Oy=ia,Dy=Pa;function By(e,r){return r==null&&(r=ue(4)),r.write_shift(4,e),r}function Iy(e,r){var t=e.l+r,n=ia(e),a=Cs(e),o=Kt(e),s=Kt(e),c=Kt(e);e.l=t;var d={rfx:n,relId:a,loc:o,display:c};return s&&(d.Tooltip=s),d}function Ry(e,r){var t=ue(50+4*(e[1].Target.length+(e[1].Tooltip||"").length));Pa({s:Mt(e[0]),e:Mt(e[0])},t),Os("rId"+r,t);var n=e[1].Target.indexOf("#"),a=n==-1?"":e[1].Target.slice(n+1);return Pt(a||"",t),Pt(e[1].Tooltip||"",t),Pt("",t),t.slice(0,t.l)}function My(){}function Py(e,r,t){var n=e.l+r,a=Mu(e),o=e.read_shift(1),s=[a];if(s[2]=o,t.cellFormula){var c=Ex(e,n-e.l,t);s[1]=c}else e.l=n;return s}function Ly(e,r,t){var n=e.l+r,a=ia(e),o=[a];if(t.cellFormula){var s=kx(e,n-e.l,t);o[1]=s,e.l=n}else e.l=n;return o}function Ny(e,r,t){t==null&&(t=ue(18));var n=vo(e,r);t.write_shift(-4,e),t.write_shift(-4,e),t.write_shift(4,(n.width||10)*256),t.write_shift(4,0);var a=0;return r.hidden&&(a|=1),typeof n.width=="number"&&(a|=2),r.level&&(a|=r.level<<8),t.write_shift(2,a),t}var xf=["left","right","top","bottom","header","footer"];function Uy(e){var r={};return xf.forEach(function(t){r[t]=La(e)}),r}function jy(e,r){return r==null&&(r=ue(6*8)),vf(e),xf.forEach(function(t){Zn(e[t],r)}),r}function zy(e){var r=e.read_shift(2);return e.l+=28,{RTL:r&32}}function Hy(e,r,t){t==null&&(t=ue(30));var n=924;return(((r||{}).Views||[])[0]||{}).RTL&&(n|=32),t.write_shift(2,n),t.write_shift(4,0),t.write_shift(4,0),t.write_shift(4,0),t.write_shift(1,0),t.write_shift(1,0),t.write_shift(2,0),t.write_shift(2,100),t.write_shift(2,0),t.write_shift(2,0),t.write_shift(2,0),t.write_shift(4,0),t}function Gy(e){var r=ue(24);return r.write_shift(4,4),r.write_shift(4,1),Pa(e,r),r}function Wy(e,r){return r==null&&(r=ue(16*4+2)),r.write_shift(2,e.password?Zu(e.password):0),r.write_shift(4,1),[["objects",!1],["scenarios",!1],["formatCells",!0],["formatColumns",!0],["formatRows",!0],["insertColumns",!0],["insertRows",!0],["insertHyperlinks",!0],["deleteColumns",!0],["deleteRows",!0],["selectLockedCells",!1],["sort",!0],["autoFilter",!0],["pivotTables",!0],["selectUnlockedCells",!1]].forEach(function(t){t[1]?r.write_shift(4,e[t[0]]!=null&&!e[t[0]]?1:0):r.write_shift(4,e[t[0]]!=null&&e[t[0]]?0:1)}),r}function Vy(){}function Yy(){}function Qy(e,r,t,n,a,o,s){if(r.v===void 0)return!1;var c="";switch(r.t){case"b":c=r.v?"1":"0";break;case"d":r=ur(r),r.z=r.z||gt[14],r.v=cr(nr(r.v)),r.t="n";break;case"n":case"e":c=""+r.v;break;default:c=r.v;break}var d={r:t,c:n};switch(d.s=Pn(a.cellXfs,r,a),r.l&&o["!links"].push([rt(d),r.l]),r.c&&o["!comments"].push([rt(d),r.c]),r.t){case"s":case"str":return a.bookSST?(c=Ps(a.Strings,r.v,a.revStrings),d.t="s",d.v=c,s?pe(e,18,hy(r,d)):pe(e,7,uy(r,d))):(d.t="str",s?pe(e,17,Ty(r,d)):pe(e,6,by(r,d))),!0;case"n":return r.v==(r.v|0)&&r.v>-1e3&&r.v<1e3?s?pe(e,13,yy(r,d)):pe(e,2,gy(r,d)):s?pe(e,16,my(r,d)):pe(e,5,py(r,d)),!0;case"b":return d.t="b",s?pe(e,15,ay(r,d)):pe(e,4,ry(r,d)),!0;case"e":return d.t="e",s?pe(e,14,ly(r,d)):pe(e,3,oy(r,d)),!0}return s?pe(e,12,ey(r,d)):pe(e,1,Kx(r,d)),!0}function $y(e,r,t,n){var a=ct(r["!ref"]||"A1"),o,s="",c=[];pe(e,145);var d=Array.isArray(r),f=a.e.r;r["!rows"]&&(f=Math.max(a.e.r,r["!rows"].length-1));for(var u=a.s.r;u<=f;++u){s=Yt(u),Vx(e,r,a,u);var p=!1;if(u<=a.e.r)for(var A=a.s.c;A<=a.e.c;++A){u===a.s.r&&(c[A]=Jt(A)),o=c[A]+s;var v=d?(r[u]||[])[A]:r[o];if(!v){p=!1;continue}p=Qy(e,v,u,A,n,r,p)}}pe(e,146)}function Xy(e,r){!r||!r["!merges"]||(pe(e,177,By(r["!merges"].length)),r["!merges"].forEach(function(t){pe(e,176,Dy(t))}),pe(e,178))}function qy(e,r){!r||!r["!cols"]||(pe(e,390),r["!cols"].forEach(function(t,n){t&&pe(e,60,Ny(n,t))}),pe(e,391))}function Jy(e,r){!r||!r["!ref"]||(pe(e,648),pe(e,649,Gy(ct(r["!ref"]))),pe(e,650))}function Ky(e,r,t){r["!links"].forEach(function(n){if(!!n[1].Target){var a=et(t,-1,n[1].Target.replace(/#.*$/,""),qe.HLINK);pe(e,494,Ry(n,a))}}),delete r["!links"]}function Zy(e,r,t,n){if(r["!comments"].length>0){var a=et(n,-1,"../drawings/vmlDrawing"+(t+1)+".vml",qe.VML);pe(e,551,Os("rId"+a)),r["!legacy"]=a}}function ew(e,r,t,n){if(!!r["!autofilter"]){var a=r["!autofilter"],o=typeof a.ref=="string"?a.ref:St(a.ref);t.Workbook||(t.Workbook={Sheets:[]}),t.Workbook.Names||(t.Workbook.Names=[]);var s=t.Workbook.Names,c=wr(o);c.s.r==c.e.r&&(c.e.r=wr(r["!ref"]).e.r,o=St(c));for(var d=0;d16383||d.e.r>1048575){if(r.WTF)throw new Error("Range "+(s["!ref"]||"A1")+" exceeds format limit A1:XFD1048576");d.e.c=Math.min(d.e.c,16383),d.e.r=Math.min(d.e.c,1048575)}return s["!links"]=[],s["!comments"]=[],pe(a,129),(t.vbaraw||s["!outline"])&&pe(a,147,qx(c,s["!outline"])),pe(a,148,Qx(d)),tw(a,s,t.Workbook),qy(a,s),$y(a,s,e,r),rw(a,s),ew(a,s,t,e),Xy(a,s),Ky(a,s,n),s["!margins"]&&pe(a,476,jy(s["!margins"])),(!r||r.ignoreEC||r.ignoreEC==null)&&Jy(a,s),Zy(a,s,e,n),pe(a,130),a.end()}function aw(e,r){e.l+=10;var t=Kt(e);return{name:t}}var iw=[["allowRefreshQuery",!1,"bool"],["autoCompressPictures",!0,"bool"],["backupFile",!1,"bool"],["checkCompatibility",!1,"bool"],["CodeName",""],["date1904",!1,"bool"],["defaultThemeVersion",0,"int"],["filterPrivacy",!1,"bool"],["hidePivotFieldList",!1,"bool"],["promptedSolutions",!1,"bool"],["publishItems",!1,"bool"],["refreshAllConnections",!1,"bool"],["saveExternalLinkValues",!0,"bool"],["showBorderUnselectedTables",!0,"bool"],["showInkAnnotation",!0,"bool"],["showObjects","all"],["showPivotChartFilter",!1,"bool"],["updateLinks","userSet"]];function ow(e){return!e.Workbook||!e.Workbook.WBProps?"false":Lm(e.Workbook.WBProps.date1904)?"true":"false"}var sw="][*?/\\".split("");function yf(e,r){if(e.length>31){if(r)return!1;throw new Error("Sheet names cannot exceed 31 chars")}var t=!0;return sw.forEach(function(n){if(e.indexOf(n)!=-1){if(!r)throw new Error("Sheet name cannot contain : \\ / ? * [ ]");t=!1}}),t}function lw(e,r,t){e.forEach(function(n,a){yf(n);for(var o=0;o22)throw new Error("Bad Code Name: Worksheet"+s)}})}function cw(e){if(!e||!e.SheetNames||!e.Sheets)throw new Error("Invalid Workbook");if(!e.SheetNames.length)throw new Error("Workbook is empty");var r=e.Workbook&&e.Workbook.Sheets||[];lw(e.SheetNames,r,!!e.vbaraw);for(var t=0;t0,n={codeName:"ThisWorkbook"};e.Workbook&&e.Workbook.WBProps&&(iw.forEach(function(c){e.Workbook.WBProps[c[0]]!=null&&e.Workbook.WBProps[c[0]]!=c[1]&&(n[c[0]]=e.Workbook.WBProps[c[0]])}),e.Workbook.WBProps.CodeName&&(n.codeName=e.Workbook.WBProps.CodeName,delete n.CodeName)),r[r.length]=ye("workbookPr",null,n);var a=e.Workbook&&e.Workbook.Sheets||[],o=0;if(a&&a[0]&&!!a[0].Hidden){for(r[r.length]="",o=0;o!=e.SheetNames.length&&!(!a[o]||!a[o].Hidden);++o);o==e.SheetNames.length&&(o=0),r[r.length]='',r[r.length]=""}for(r[r.length]="",o=0;o!=e.SheetNames.length;++o){var s={name:tt(e.SheetNames[o].slice(0,31))};if(s.sheetId=""+(o+1),s["r:id"]="rId"+(o+1),a[o])switch(a[o].Hidden){case 1:s.state="hidden";break;case 2:s.state="veryHidden";break}r[r.length]=ye("sheet",null,s)}return r[r.length]="",t&&(r[r.length]="",e.Workbook&&e.Workbook.Names&&e.Workbook.Names.forEach(function(c){var d={name:c.Name};c.Comment&&(d.comment=c.Comment),c.Sheet!=null&&(d.localSheetId=""+c.Sheet),c.Hidden&&(d.hidden="1"),c.Ref&&(r[r.length]=ye("definedName",tt(c.Ref),d))}),r[r.length]=""),r.length>2&&(r[r.length]="",r[1]=r[1].replace("/>",">")),r.join("")}function uw(e,r){var t={};return t.Hidden=e.read_shift(4),t.iTabID=e.read_shift(4),t.strRelID=os(e),t.name=Kt(e),t}function fw(e,r){return r||(r=ue(127)),r.write_shift(4,e.Hidden),r.write_shift(4,e.iTabID),Os(e.strRelID,r),Pt(e.name.slice(0,31),r),r.length>r.l?r.slice(0,r.l):r}function hw(e,r){var t={},n=e.read_shift(4);t.defaultThemeVersion=e.read_shift(4);var a=r>8?Kt(e):"";return a.length>0&&(t.CodeName=a),t.autoCompressPictures=!!(n&65536),t.backupFile=!!(n&64),t.checkCompatibility=!!(n&4096),t.date1904=!!(n&1),t.filterPrivacy=!!(n&8),t.hidePivotFieldList=!!(n&1024),t.promptedSolutions=!!(n&16),t.publishItems=!!(n&2048),t.refreshAllConnections=!!(n&262144),t.saveExternalLinkValues=!!(n&128),t.showBorderUnselectedTables=!!(n&4),t.showInkAnnotation=!!(n&32),t.showObjects=["all","placeholders","none"][n>>13&3],t.showPivotChartFilter=!!(n&32768),t.updateLinks=["userSet","never","always"][n>>8&3],t}function dw(e,r){r||(r=ue(72));var t=0;return e&&e.filterPrivacy&&(t|=8),r.write_shift(4,t),r.write_shift(4,0),Bu(e&&e.CodeName||"ThisWorkbook",r),r.slice(0,r.l)}function pw(e,r,t){var n=e.l+r;e.l+=4,e.l+=1;var a=e.read_shift(4),o=o2(e),s=Tx(e,0,t),c=Cs(e);e.l=n;var d={Name:o,Ptg:s};return a<268435455&&(d.Sheet=a),c&&(d.Comment=c),d}function Aw(e,r){pe(e,143);for(var t=0;t!=r.SheetNames.length;++t){var n=r.Workbook&&r.Workbook.Sheets&&r.Workbook.Sheets[t]&&r.Workbook.Sheets[t].Hidden||0,a={Hidden:n,iTabID:t+1,strRelID:"rId"+(t+1),name:r.SheetNames[t]};pe(e,156,fw(a))}pe(e,144)}function mw(e,r){r||(r=ue(127));for(var t=0;t!=4;++t)r.write_shift(4,0);return Pt("SheetJS",r),Pt(Yi.version,r),Pt(Yi.version,r),Pt("7262",r),r.length>r.l?r.slice(0,r.l):r}function vw(e,r){r||(r=ue(29)),r.write_shift(-4,0),r.write_shift(-4,460),r.write_shift(4,28800),r.write_shift(4,17600),r.write_shift(4,500),r.write_shift(4,e),r.write_shift(4,e);var t=120;return r.write_shift(1,t),r.length>r.l?r.slice(0,r.l):r}function gw(e,r){if(!(!r.Workbook||!r.Workbook.Sheets)){for(var t=r.Workbook.Sheets,n=0,a=-1,o=-1;na||(pe(e,135),pe(e,158,vw(a)),pe(e,136))}}function xw(e,r){var t=lr();return pe(t,131),pe(t,128,mw()),pe(t,153,dw(e.Workbook&&e.Workbook.WBProps||null)),gw(t,e),Aw(t,e),pe(t,132),t.end()}function yw(e,r,t){return(r.slice(-4)===".bin"?xw:wf)(e)}function ww(e,r,t,n,a){return(r.slice(-4)===".bin"?nw:gf)(e,t,n,a)}function _w(e,r,t){return(r.slice(-4)===".bin"?jv:rf)(e,t)}function bw(e,r,t){return(r.slice(-4)===".bin"?dv:Ku)(e,t)}function Ew(e,r,t){return(r.slice(-4)===".bin"?rg:lf)(e)}function Tw(e){return(e.slice(-4)===".bin"?$v:of)()}function kw(e,r){var t=[];return e.Props&&t.push(_2(e.Props,r)),e.Custprops&&t.push(b2(e.Props,e.Custprops)),t.join("")}function Sw(){return""}function Fw(e,r){var t=[''];return r.cellXfs.forEach(function(n,a){var o=[];o.push(ye("NumberFormat",null,{"ss:Format":tt(gt[n.numFmtId])}));var s={"ss:ID":"s"+(21+a)};t.push(ye("Style",o.join(""),s))}),ye("Styles",t.join(""))}function _f(e){return ye("NamedRange",null,{"ss:Name":e.Name,"ss:RefersTo":"="+Rs(e.Ref,{r:0,c:0})})}function Cw(e){if(!((e||{}).Workbook||{}).Names)return"";for(var r=e.Workbook.Names,t=[],n=0;n"),e["!margins"].header&&a.push(ye("Header",null,{"x:Margin":e["!margins"].header})),e["!margins"].footer&&a.push(ye("Footer",null,{"x:Margin":e["!margins"].footer})),a.push(ye("PageMargins",null,{"x:Bottom":e["!margins"].bottom||"0.75","x:Left":e["!margins"].left||"0.7","x:Right":e["!margins"].right||"0.7","x:Top":e["!margins"].top||"0.75"})),a.push("")),n&&n.Workbook&&n.Workbook.Sheets&&n.Workbook.Sheets[t])if(n.Workbook.Sheets[t].Hidden)a.push(ye("Visible",n.Workbook.Sheets[t].Hidden==1?"SheetHidden":"SheetVeryHidden",{}));else{for(var o=0;o")}return((((n||{}).Workbook||{}).Views||[])[0]||{}).RTL&&a.push(""),e["!protect"]&&(a.push(Vt("ProtectContents","True")),e["!protect"].objects&&a.push(Vt("ProtectObjects","True")),e["!protect"].scenarios&&a.push(Vt("ProtectScenarios","True")),e["!protect"].selectLockedCells!=null&&!e["!protect"].selectLockedCells?a.push(Vt("EnableSelection","NoSelection")):e["!protect"].selectUnlockedCells!=null&&!e["!protect"].selectUnlockedCells&&a.push(Vt("EnableSelection","UnlockedCells")),[["formatCells","AllowFormatCells"],["formatColumns","AllowSizeCols"],["formatRows","AllowSizeRows"],["insertColumns","AllowInsertCols"],["insertRows","AllowInsertRows"],["insertHyperlinks","AllowInsertHyperlinks"],["deleteColumns","AllowDeleteCols"],["deleteRows","AllowDeleteRows"],["sort","AllowSort"],["autoFilter","AllowFilter"],["pivotTables","AllowUsePivotTables"]].forEach(function(s){e["!protect"][s[0]]&&a.push("<"+s[1]+"/>")})),a.length==0?"":ye("WorksheetOptions",a.join(""),{xmlns:xr.x})}function Bw(e){return e.map(function(r){var t=Pm(r.t||""),n=ye("ss:Data",t,{xmlns:"http://www.w3.org/TR/REC-html40"});return ye("Comment",n,{"ss:Author":r.a})}).join("")}function Iw(e,r,t,n,a,o,s){if(!e||e.v==null&&e.f==null)return"";var c={};if(e.f&&(c["ss:Formula"]="="+tt(Rs(e.f,s))),e.F&&e.F.slice(0,r.length)==r){var d=Mt(e.F.slice(r.length+1));c["ss:ArrayRange"]="RC:R"+(d.r==s.r?"":"["+(d.r-s.r)+"]")+"C"+(d.c==s.c?"":"["+(d.c-s.c)+"]")}if(e.l&&e.l.Target&&(c["ss:HRef"]=tt(e.l.Target),e.l.Tooltip&&(c["x:HRefScreenTip"]=tt(e.l.Tooltip))),t["!merges"])for(var f=t["!merges"],u=0;u!=f.length;++u)f[u].s.c!=s.c||f[u].s.r!=s.r||(f[u].e.c>f[u].s.c&&(c["ss:MergeAcross"]=f[u].e.c-f[u].s.c),f[u].e.r>f[u].s.r&&(c["ss:MergeDown"]=f[u].e.r-f[u].s.r));var p="",A="";switch(e.t){case"z":if(!n.sheetStubs)return"";break;case"n":p="Number",A=String(e.v);break;case"b":p="Boolean",A=e.v?"1":"0";break;case"e":p="Error",A=ui[e.v];break;case"d":p="DateTime",A=new Date(e.v).toISOString(),e.z==null&&(e.z=e.z||gt[14]);break;case"s":p="String",A=Mm(e.v||"");break}var v=Pn(n.cellXfs,e,n);c["ss:StyleID"]="s"+(21+v),c["ss:Index"]=s.c+1;var x=e.v!=null?A:"",m=e.t=="z"?"":''+x+"";return(e.c||[]).length>0&&(m+=Bw(e.c)),ye("Cell",m,c)}function Rw(e,r){var t='"}function Mw(e,r,t,n){if(!e["!ref"])return"";var a=ct(e["!ref"]),o=e["!merges"]||[],s=0,c=[];e["!cols"]&&e["!cols"].forEach(function(w,M){Bs(w);var E=!!w.width,b=vo(M,w),L={"ss:Index":M+1};E&&(L["ss:Width"]=to(b.width)),w.hidden&&(L["ss:Hidden"]="1"),c.push(ye("Column",null,L))});for(var d=Array.isArray(e),f=a.s.r;f<=a.e.r;++f){for(var u=[Rw(f,(e["!rows"]||[])[f])],p=a.s.c;p<=a.e.c;++p){var A=!1;for(s=0;s!=o.length;++s)if(!(o[s].s.c>p)&&!(o[s].s.r>f)&&!(o[s].e.c"),u.length>2&&c.push(u.join(""))}return c.join("")}function Pw(e,r,t){var n=[],a=t.SheetNames[e],o=t.Sheets[a],s=o?Ow(o,r,e,t):"";return s.length>0&&n.push(""+s+""),s=o?Mw(o,r,e,t):"",s.length>0&&n.push(""+s+"
    "),n.push(Dw(o,r,e,t)),n.join("")}function Lw(e,r){r||(r={}),e.SSF||(e.SSF=ur(gt)),e.SSF&&(fo(),uo(e.SSF),r.revssf=ho(e.SSF),r.revssf[e.SSF[65535]]=0,r.ssf=e.SSF,r.cellXfs=[],Pn(r.cellXfs,{},{revssf:{General:0}}));var t=[];t.push(kw(e,r)),t.push(Sw()),t.push(""),t.push("");for(var n=0;n-1||Hu.indexOf(a[o][0])>-1||a[o][1]!=null&&f.push(a[o]);n.length&&at.utils.cfb_add(r,"/SummaryInformation",hc(n,Ko.SI,d,sc)),(t.length||f.length)&&at.utils.cfb_add(r,"/DocumentSummaryInformation",hc(t,Ko.DSI,c,oc,f.length?f:null,Ko.UDI))}function Uw(e,r){var t=r||{},n=at.utils.cfb_new({root:"R"}),a="/Workbook";switch(t.bookType||"xls"){case"xls":t.bookType="biff8";case"xla":t.bookType||(t.bookType="xla");case"biff8":a="/Workbook",t.biff=8;break;case"biff5":a="/Book",t.biff=5;break;default:throw new Error("invalid type "+t.bookType+" for XLS CFB")}return at.utils.cfb_add(n,a,bf(e,t)),t.biff==8&&(e.Props||e.Custprops)&&Nw(e,n),t.biff==8&&e.vbaraw&&ng(n,at.read(e.vbaraw,{type:typeof e.vbaraw=="string"?"binary":"buffer"})),n}var jw={0:{f:Gx},1:{f:Jx},2:{f:vy},3:{f:iy},4:{f:ty},5:{f:dy},6:{f:_y},7:{f:cy},8:{f:Cy},9:{f:Fy},10:{f:ky},11:{f:Sy},12:{f:Zx},13:{f:xy},14:{f:sy},15:{f:ny},16:{f:Ay},17:{f:Ey},18:{f:fy},19:{f:Fs},20:{},21:{},22:{},23:{},24:{},25:{},26:{},27:{},28:{},29:{},30:{},31:{},32:{},33:{},34:{},35:{T:1},36:{T:-1},37:{T:1},38:{T:-1},39:{f:pw},40:{},42:{},43:{f:_v},44:{f:yv},45:{f:Tv},46:{f:Sv},47:{f:kv},48:{},49:{f:Zm},50:{},51:{f:Gv},52:{T:1},53:{T:-1},54:{T:1},55:{T:-1},56:{T:1},57:{T:-1},58:{},59:{},60:{f:ev},62:{f:wy},63:{f:Xv},64:{f:Vy},65:{},66:{},67:{},68:{},69:{},70:{},128:{},129:{T:1},130:{T:-1},131:{T:1,f:rn,p:0},132:{T:-1},133:{T:1},134:{T:-1},135:{T:1},136:{T:-1},137:{T:1,f:zy},138:{T:-1},139:{T:1},140:{T:-1},141:{T:1},142:{T:-1},143:{T:1},144:{T:-1},145:{T:1},146:{T:-1},147:{f:Xx},148:{f:Yx,p:16},151:{f:My},152:{},153:{f:hw},154:{},155:{},156:{f:uw},157:{},158:{},159:{T:1,f:uv},160:{T:-1},161:{T:1,f:ia},162:{T:-1},163:{T:1},164:{T:-1},165:{T:1},166:{T:-1},167:{},168:{},169:{},170:{},171:{},172:{T:1},173:{T:-1},174:{},175:{},176:{f:Oy},177:{T:1},178:{T:-1},179:{T:1},180:{T:-1},181:{T:1},182:{T:-1},183:{T:1},184:{T:-1},185:{T:1},186:{T:-1},187:{T:1},188:{T:-1},189:{T:1},190:{T:-1},191:{T:1},192:{T:-1},193:{T:1},194:{T:-1},195:{T:1},196:{T:-1},197:{T:1},198:{T:-1},199:{T:1},200:{T:-1},201:{T:1},202:{T:-1},203:{T:1},204:{T:-1},205:{T:1},206:{T:-1},207:{T:1},208:{T:-1},209:{T:1},210:{T:-1},211:{T:1},212:{T:-1},213:{T:1},214:{T:-1},215:{T:1},216:{T:-1},217:{T:1},218:{T:-1},219:{T:1},220:{T:-1},221:{T:1},222:{T:-1},223:{T:1},224:{T:-1},225:{T:1},226:{T:-1},227:{T:1},228:{T:-1},229:{T:1},230:{T:-1},231:{T:1},232:{T:-1},233:{T:1},234:{T:-1},235:{T:1},236:{T:-1},237:{T:1},238:{T:-1},239:{T:1},240:{T:-1},241:{T:1},242:{T:-1},243:{T:1},244:{T:-1},245:{T:1},246:{T:-1},247:{T:1},248:{T:-1},249:{T:1},250:{T:-1},251:{T:1},252:{T:-1},253:{T:1},254:{T:-1},255:{T:1},256:{T:-1},257:{T:1},258:{T:-1},259:{T:1},260:{T:-1},261:{T:1},262:{T:-1},263:{T:1},264:{T:-1},265:{T:1},266:{T:-1},267:{T:1},268:{T:-1},269:{T:1},270:{T:-1},271:{T:1},272:{T:-1},273:{T:1},274:{T:-1},275:{T:1},276:{T:-1},277:{},278:{T:1},279:{T:-1},280:{T:1},281:{T:-1},282:{T:1},283:{T:1},284:{T:-1},285:{T:1},286:{T:-1},287:{T:1},288:{T:-1},289:{T:1},290:{T:-1},291:{T:1},292:{T:-1},293:{T:1},294:{T:-1},295:{T:1},296:{T:-1},297:{T:1},298:{T:-1},299:{T:1},300:{T:-1},301:{T:1},302:{T:-1},303:{T:1},304:{T:-1},305:{T:1},306:{T:-1},307:{T:1},308:{T:-1},309:{T:1},310:{T:-1},311:{T:1},312:{T:-1},313:{T:-1},314:{T:1},315:{T:-1},316:{T:1},317:{T:-1},318:{T:1},319:{T:-1},320:{T:1},321:{T:-1},322:{T:1},323:{T:-1},324:{T:1},325:{T:-1},326:{T:1},327:{T:-1},328:{T:1},329:{T:-1},330:{T:1},331:{T:-1},332:{T:1},333:{T:-1},334:{T:1},335:{f:zv},336:{T:-1},337:{f:Yv,T:1},338:{T:-1},339:{T:1},340:{T:-1},341:{T:1},342:{T:-1},343:{T:1},344:{T:-1},345:{T:1},346:{T:-1},347:{T:1},348:{T:-1},349:{T:1},350:{T:-1},351:{},352:{},353:{T:1},354:{T:-1},355:{f:os},357:{},358:{},359:{},360:{T:1},361:{},362:{f:$2},363:{},364:{},366:{},367:{},368:{},369:{},370:{},371:{},372:{T:1},373:{T:-1},374:{T:1},375:{T:-1},376:{T:1},377:{T:-1},378:{T:1},379:{T:-1},380:{T:1},381:{T:-1},382:{T:1},383:{T:-1},384:{T:1},385:{T:-1},386:{T:1},387:{T:-1},388:{T:1},389:{T:-1},390:{T:1},391:{T:-1},392:{T:1},393:{T:-1},394:{T:1},395:{T:-1},396:{},397:{},398:{},399:{},400:{},401:{T:1},403:{},404:{},405:{},406:{},407:{},408:{},409:{},410:{},411:{},412:{},413:{},414:{},415:{},416:{},417:{},418:{},419:{},420:{},421:{},422:{T:1},423:{T:1},424:{T:-1},425:{T:-1},426:{f:Py},427:{f:Ly},428:{},429:{T:1},430:{T:-1},431:{T:1},432:{T:-1},433:{T:1},434:{T:-1},435:{T:1},436:{T:-1},437:{T:1},438:{T:-1},439:{T:1},440:{T:-1},441:{T:1},442:{T:-1},443:{T:1},444:{T:-1},445:{T:1},446:{T:-1},447:{T:1},448:{T:-1},449:{T:1},450:{T:-1},451:{T:1},452:{T:-1},453:{T:1},454:{T:-1},455:{T:1},456:{T:-1},457:{T:1},458:{T:-1},459:{T:1},460:{T:-1},461:{T:1},462:{T:-1},463:{T:1},464:{T:-1},465:{T:1},466:{T:-1},467:{T:1},468:{T:-1},469:{T:1},470:{T:-1},471:{},472:{},473:{T:1},474:{T:-1},475:{},476:{f:Uy},477:{},478:{},479:{T:1},480:{T:-1},481:{T:1},482:{T:-1},483:{T:1},484:{T:-1},485:{f:$x},486:{T:1},487:{T:-1},488:{T:1},489:{T:-1},490:{T:1},491:{T:-1},492:{T:1},493:{T:-1},494:{f:Iy},495:{T:1},496:{T:-1},497:{T:1},498:{T:-1},499:{},500:{T:1},501:{T:-1},502:{T:1},503:{T:-1},504:{},505:{T:1},506:{T:-1},507:{},508:{T:1},509:{T:-1},510:{T:1},511:{T:-1},512:{},513:{},514:{T:1},515:{T:-1},516:{T:1},517:{T:-1},518:{T:1},519:{T:-1},520:{T:1},521:{T:-1},522:{},523:{},524:{},525:{},526:{},527:{},528:{T:1},529:{T:-1},530:{T:1},531:{T:-1},532:{T:1},533:{T:-1},534:{},535:{},536:{},537:{},538:{T:1},539:{T:-1},540:{T:1},541:{T:-1},542:{T:1},548:{},549:{},550:{f:os},551:{},552:{},553:{},554:{T:1},555:{T:-1},556:{T:1},557:{T:-1},558:{T:1},559:{T:-1},560:{T:1},561:{T:-1},562:{},564:{},565:{T:1},566:{T:-1},569:{T:1},570:{T:-1},572:{},573:{T:1},574:{T:-1},577:{},578:{},579:{},580:{},581:{},582:{},583:{},584:{},585:{},586:{},587:{},588:{T:-1},589:{},590:{T:1},591:{T:-1},592:{T:1},593:{T:-1},594:{T:1},595:{T:-1},596:{},597:{T:1},598:{T:-1},599:{T:1},600:{T:-1},601:{T:1},602:{T:-1},603:{T:1},604:{T:-1},605:{T:1},606:{T:-1},607:{},608:{T:1},609:{T:-1},610:{},611:{T:1},612:{T:-1},613:{T:1},614:{T:-1},615:{T:1},616:{T:-1},617:{T:1},618:{T:-1},619:{T:1},620:{T:-1},625:{},626:{T:1},627:{T:-1},628:{T:1},629:{T:-1},630:{T:1},631:{T:-1},632:{f:eg},633:{T:1},634:{T:-1},635:{T:1,f:Kv},636:{T:-1},637:{f:n2},638:{T:1},639:{},640:{T:-1},641:{T:1},642:{T:-1},643:{T:1},644:{},645:{T:-1},646:{T:1},648:{T:1},649:{},650:{T:-1},651:{f:aw},652:{},653:{T:1},654:{T:-1},655:{T:1},656:{T:-1},657:{T:1},658:{T:-1},659:{},660:{T:1},661:{},662:{T:-1},663:{},664:{T:1},665:{},666:{T:-1},667:{},668:{},669:{},671:{T:1},672:{T:-1},673:{T:1},674:{T:-1},675:{},676:{},677:{},678:{},679:{},680:{},681:{},1024:{},1025:{},1026:{T:1},1027:{T:-1},1028:{T:1},1029:{T:-1},1030:{},1031:{T:1},1032:{T:-1},1033:{T:1},1034:{T:-1},1035:{},1036:{},1037:{},1038:{T:1},1039:{T:-1},1040:{},1041:{T:1},1042:{T:-1},1043:{},1044:{},1045:{},1046:{T:1},1047:{T:-1},1048:{T:1},1049:{T:-1},1050:{},1051:{T:1},1052:{T:1},1053:{f:Yy},1054:{T:1},1055:{},1056:{T:1},1057:{T:-1},1058:{T:1},1059:{T:-1},1061:{},1062:{T:1},1063:{T:-1},1064:{T:1},1065:{T:-1},1066:{T:1},1067:{T:-1},1068:{T:1},1069:{T:-1},1070:{T:1},1071:{T:-1},1072:{T:1},1073:{T:-1},1075:{T:1},1076:{T:-1},1077:{T:1},1078:{T:-1},1079:{T:1},1080:{T:-1},1081:{T:1},1082:{T:-1},1083:{T:1},1084:{T:-1},1085:{},1086:{T:1},1087:{T:-1},1088:{T:1},1089:{T:-1},1090:{T:1},1091:{T:-1},1092:{T:1},1093:{T:-1},1094:{T:1},1095:{T:-1},1096:{},1097:{T:1},1098:{},1099:{T:-1},1100:{T:1},1101:{T:-1},1102:{},1103:{},1104:{},1105:{},1111:{},1112:{},1113:{T:1},1114:{T:-1},1115:{T:1},1116:{T:-1},1117:{},1118:{T:1},1119:{T:-1},1120:{T:1},1121:{T:-1},1122:{T:1},1123:{T:-1},1124:{T:1},1125:{T:-1},1126:{},1128:{T:1},1129:{T:-1},1130:{},1131:{T:1},1132:{T:-1},1133:{T:1},1134:{T:-1},1135:{T:1},1136:{T:-1},1137:{T:1},1138:{T:-1},1139:{T:1},1140:{T:-1},1141:{},1142:{T:1},1143:{T:-1},1144:{T:1},1145:{T:-1},1146:{},1147:{T:1},1148:{T:-1},1149:{T:1},1150:{T:-1},1152:{T:1},1153:{T:-1},1154:{T:-1},1155:{T:-1},1156:{T:-1},1157:{T:1},1158:{T:-1},1159:{T:1},1160:{T:-1},1161:{T:1},1162:{T:-1},1163:{T:1},1164:{T:-1},1165:{T:1},1166:{T:-1},1167:{T:1},1168:{T:-1},1169:{T:1},1170:{T:-1},1171:{},1172:{T:1},1173:{T:-1},1177:{},1178:{T:1},1180:{},1181:{},1182:{},2048:{T:1},2049:{T:-1},2050:{},2051:{T:1},2052:{T:-1},2053:{},2054:{},2055:{T:1},2056:{T:-1},2057:{T:1},2058:{T:-1},2060:{},2067:{},2068:{T:1},2069:{T:-1},2070:{},2071:{},2072:{T:1},2073:{T:-1},2075:{},2076:{},2077:{T:1},2078:{T:-1},2079:{},2080:{T:1},2081:{T:-1},2082:{},2083:{T:1},2084:{T:-1},2085:{T:1},2086:{T:-1},2087:{T:1},2088:{T:-1},2089:{T:1},2090:{T:-1},2091:{},2092:{},2093:{T:1},2094:{T:-1},2095:{},2096:{T:1},2097:{T:-1},2098:{T:1},2099:{T:-1},2100:{T:1},2101:{T:-1},2102:{},2103:{T:1},2104:{T:-1},2105:{},2106:{T:1},2107:{T:-1},2108:{},2109:{T:1},2110:{T:-1},2111:{T:1},2112:{T:-1},2113:{T:1},2114:{T:-1},2115:{},2116:{},2117:{},2118:{T:1},2119:{T:-1},2120:{},2121:{T:1},2122:{T:-1},2123:{T:1},2124:{T:-1},2125:{},2126:{T:1},2127:{T:-1},2128:{},2129:{T:1},2130:{T:-1},2131:{T:1},2132:{T:-1},2133:{T:1},2134:{},2135:{},2136:{},2137:{T:1},2138:{T:-1},2139:{T:1},2140:{T:-1},2141:{},3072:{},3073:{},4096:{T:1},4097:{T:-1},5002:{T:1},5003:{T:-1},5081:{T:1},5082:{T:-1},5083:{},5084:{T:1},5085:{T:-1},5086:{T:1},5087:{T:-1},5088:{},5089:{},5090:{},5092:{T:1},5093:{T:-1},5094:{},5095:{T:1},5096:{T:-1},5097:{},5099:{},65535:{n:""}};function we(e,r,t,n){var a=r;if(!isNaN(a)){var o=n||(t||[]).length||0,s=e.next(4);s.write_shift(2,a),s.write_shift(2,o),o>0&&Ts(t)&&e.push(t)}}function zw(e,r,t,n){var a=n||(t||[]).length||0;if(a<=8224)return we(e,r,t,a);var o=r;if(!isNaN(o)){for(var s=t.parts||[],c=0,d=0,f=0;f+(s[c]||8224)<=8224;)f+=s[c]||8224,c++;var u=e.next(4);for(u.write_shift(2,o),u.write_shift(2,f),e.push(t.slice(d,d+f)),d+=f;d=0&&a<65536?we(e,2,av(t,n,a)):we(e,3,nv(t,n,a));return;case"b":case"e":we(e,5,Hw(t,n,r.v,r.t));return;case"s":case"str":we(e,4,Gw(t,n,(r.v||"").slice(0,255)));return}we(e,1,hi(null,t,n))}function Vw(e,r,t,n){var a=Array.isArray(r),o=ct(r["!ref"]||"A1"),s,c="",d=[];if(o.e.c>255||o.e.r>16383){if(n.WTF)throw new Error("Range "+(r["!ref"]||"A1")+" exceeds format limit A1:IV16384");o.e.c=Math.min(o.e.c,255),o.e.r=Math.min(o.e.c,16383),s=St(o)}for(var f=o.s.r;f<=o.e.r;++f){c=Yt(f);for(var u=o.s.c;u<=o.e.c;++u){f===o.s.r&&(d[u]=Jt(u)),s=d[u]+c;var p=a?(r[f]||[])[u]:r[s];!p||Ww(e,p,f,u)}}}function Yw(e,r){for(var t=r||{},n=lr(),a=0,o=0;o255||v.e.r>=x){if(r.WTF)throw new Error("Range "+(o["!ref"]||"A1")+" exceeds format limit A1:IV16384");v.e.c=Math.min(v.e.c,255),v.e.r=Math.min(v.e.c,x-1)}we(n,2057,Ds(t,16,r)),we(n,13,Cr(1)),we(n,12,Cr(100)),we(n,15,rr(!0)),we(n,17,rr(!1)),we(n,16,Zn(.001)),we(n,95,rr(!0)),we(n,42,rr(!1)),we(n,43,rr(!1)),we(n,130,Cr(1)),we(n,128,V2([0,0])),we(n,131,rr(!1)),we(n,132,rr(!1)),f&&Kw(n,o["!cols"]),we(n,512,W2(v,r)),f&&(o["!links"]=[]);for(var m=v.s.r;m<=v.e.r;++m){p=Yt(m);for(var w=v.s.c;w<=v.e.c;++w){m===v.s.r&&(A[w]=Jt(w)),u=A[w]+p;var M=d?(o[m]||[])[w]:o[u];!M||(Zw(n,M,m,w,r),f&&M.l&&o["!links"].push([u,M.l]))}}var E=c.CodeName||c.name||a;return f&&we(n,574,U2((s.Views||[])[0])),f&&(o["!merges"]||[]).length&&we(n,229,q2(o["!merges"])),f&&Jw(n,o),we(n,442,Xu(E)),f&&Xw(n,o),we(n,10),n.end()}function t_(e,r,t){var n=lr(),a=(e||{}).Workbook||{},o=a.Sheets||[],s=a.WBProps||{},c=t.biff==8,d=t.biff==5;if(we(n,2057,Ds(e,5,t)),t.bookType=="xla"&&we(n,135),we(n,225,c?Cr(1200):null),we(n,193,k2(2)),d&&we(n,191),d&&we(n,192),we(n,226),we(n,92,M2("SheetJS",t)),we(n,66,Cr(c?1200:1252)),c&&we(n,353,Cr(0)),c&&we(n,448),we(n,317,rv(e.SheetNames.length)),c&&e.vbaraw&&we(n,211),c&&e.vbaraw){var f=s.CodeName||"ThisWorkbook";we(n,442,Xu(f))}we(n,156,Cr(17)),we(n,25,rr(!1)),we(n,18,rr(!1)),we(n,19,Cr(0)),c&&we(n,431,rr(!1)),c&&we(n,444,Cr(0)),we(n,61,N2()),we(n,64,rr(!1)),we(n,141,Cr(0)),we(n,34,rr(ow(e)=="true")),we(n,14,rr(!0)),c&&we(n,439,rr(!1)),we(n,218,Cr(0)),Qw(n,e,t),$w(n,e.SSF,t),qw(n,t),c&&we(n,352,rr(!1));var u=n.end(),p=lr();c&&we(p,140,Z2()),c&&t.Strings&&zw(p,252,L2(t.Strings)),we(p,10);var A=p.end(),v=lr(),x=0,m=0;for(m=0;m255&&typeof console!="undefined"&&console.error&&console.error("Worksheet '"+e.SheetNames[t]+"' extends beyond column IV (255). Data may be lost.")}}var o=r||{};switch(o.biff||2){case 8:case 5:return r_(e,r);case 4:case 3:case 2:return Yw(e,r)}throw new Error("invalid type "+o.bookType+" for BIFF")}function n_(e,r,t,n){for(var a=e["!merges"]||[],o=[],s=r.s.c;s<=r.e.c;++s){for(var c=0,d=0,f=0;ft||a[f].s.c>s)&&!(a[f].e.r1&&(v.rowspan=c),d>1&&(v.colspan=d),n.editable?A=''+A+"":p&&(v["data-t"]=p&&p.t||"z",p.v!=null&&(v["data-v"]=p.v),p.z!=null&&(v["data-z"]=p.z),p.l&&(p.l.Target||"#").charAt(0)!="#"&&(A=''+A+"")),v.id=(n.id||"sjs")+"-"+u,o.push(ye("td",A,v))}}var x="";return x+o.join("")+""}var a_='SheetJS Table Export',i_="";function o_(e,r,t){var n=[];return n.join("")+""}function Ef(e,r){var t=r||{},n=t.header!=null?t.header:a_,a=t.footer!=null?t.footer:i_,o=[n],s=wr(e["!ref"]);t.dense=Array.isArray(e),o.push(o_(e,s,t));for(var c=s.s.r;c<=s.e.r;++c)o.push(n_(e,s,c,t));return o.push(""+a),o.join("")}function Tf(e,r,t){var n=t||{},a=0,o=0;if(n.origin!=null)if(typeof n.origin=="number")a=n.origin;else{var s=typeof n.origin=="string"?Mt(n.origin):n.origin;a=s.r,o=s.c}var c=r.getElementsByTagName("tr"),d=Math.min(n.sheetRows||1e7,c.length),f={s:{r:0,c:0},e:{r:a,c:o}};if(e["!ref"]){var u=wr(e["!ref"]);f.s.r=Math.min(f.s.r,u.s.r),f.s.c=Math.min(f.s.c,u.s.c),f.e.r=Math.max(f.e.r,u.e.r),f.e.c=Math.max(f.e.c,u.e.c),a==-1&&(f.e.r=a=u.e.r+1)}var p=[],A=0,v=e["!rows"]||(e["!rows"]=[]),x=0,m=0,w=0,M=0,E=0,b=0;for(e["!cols"]||(e["!cols"]=[]);x1||b>1)&&p.push({s:{r:m+a,c:M+o},e:{r:m+a+(E||1)-1,c:M+o+(b||1)-1}});var le={t:"s",v:R},ae=O.getAttribute("data-t")||O.getAttribute("t")||"";R!=null&&(R.length==0?le.t=ae||"z":n.raw||R.trim().length==0||ae=="s"||(R==="TRUE"?le={t:"b",v:!0}:R==="FALSE"?le={t:"b",v:!1}:isNaN(mn(R))?isNaN(ri(R).getDate())||(le={t:"d",v:nr(R)},n.cellDates||(le={t:"n",v:cr(le.v)}),le.z=n.dateNF||gt[14]):le={t:"n",v:mn(R)})),le.z===void 0&&q!=null&&(le.z=q);var Ae="",be=O.getElementsByTagName("A");if(be&&be.length)for(var Qe=0;Qe=d&&(e["!fullref"]=St((f.e.r=c.length-x+m-1+a,f))),e}function kf(e,r){var t=r||{},n=t.dense?[]:{};return Tf(n,e,r)}function s_(e,r){return ta(kf(e,r),r)}function wc(e){var r="",t=l_(e);return t&&(r=t(e).getPropertyValue("display")),r||(r=e.style&&e.style.display),r==="none"}function l_(e){return e.ownerDocument.defaultView&&typeof e.ownerDocument.defaultView.getComputedStyle=="function"?e.ownerDocument.defaultView.getComputedStyle:typeof getComputedStyle=="function"?getComputedStyle:null}var c_=function(){var e=["",'',"",'',"",'',"",""].join(""),r=""+e+"";return function(){return Ft+r}}(),_c=function(){var e=function(o){return tt(o).replace(/ +/g,function(s){return''}).replace(/\t/g,"").replace(/\n/g,"").replace(/^ /,"").replace(/ $/,"")},r=` +`,t=` +`,n=function(o,s,c){var d=[];d.push(' +`);var f=0,u=0,p=wr(o["!ref"]||"A1"),A=o["!merges"]||[],v=0,x=Array.isArray(o);if(o["!cols"])for(u=0;u<=p.e.c;++u)d.push(" +`);var m="",w=o["!rows"]||[];for(f=0;f +`);for(;f<=p.e.r;++f){for(m=w[f]?' table:style-name="ro'+w[f].ods+'"':"",d.push(" +`),u=0;uu)&&!(A[v].s.r>f)&&!(A[v].e.c +`)}return d.push(` +`),d.join("")},a=function(o,s){o.push(` +`),o.push(` +`),o.push(` +`),o.push(` / +`),o.push(` +`),o.push(` / +`),o.push(` +`),o.push(` +`);var c=0;s.SheetNames.map(function(f){return s.Sheets[f]}).forEach(function(f){if(!!f&&f["!cols"]){for(var u=0;u +`),o.push(' +`),o.push(` +`),++c}}});var d=0;s.SheetNames.map(function(f){return s.Sheets[f]}).forEach(function(f){if(!!f&&f["!rows"]){for(var u=0;u +`),o.push(' +`),o.push(` +`),++d}}}),o.push(` +`),o.push(` +`),o.push(` +`),o.push(` +`),o.push(` +`)};return function(s,c){var d=[Ft],f=ni({"xmlns:office":"urn:oasis:names:tc:opendocument:xmlns:office:1.0","xmlns:table":"urn:oasis:names:tc:opendocument:xmlns:table:1.0","xmlns:style":"urn:oasis:names:tc:opendocument:xmlns:style:1.0","xmlns:text":"urn:oasis:names:tc:opendocument:xmlns:text:1.0","xmlns:draw":"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0","xmlns:fo":"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","xmlns:xlink":"http://www.w3.org/1999/xlink","xmlns:dc":"http://purl.org/dc/elements/1.1/","xmlns:meta":"urn:oasis:names:tc:opendocument:xmlns:meta:1.0","xmlns:number":"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0","xmlns:presentation":"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0","xmlns:svg":"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0","xmlns:chart":"urn:oasis:names:tc:opendocument:xmlns:chart:1.0","xmlns:dr3d":"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0","xmlns:math":"http://www.w3.org/1998/Math/MathML","xmlns:form":"urn:oasis:names:tc:opendocument:xmlns:form:1.0","xmlns:script":"urn:oasis:names:tc:opendocument:xmlns:script:1.0","xmlns:ooo":"http://openoffice.org/2004/office","xmlns:ooow":"http://openoffice.org/2004/writer","xmlns:oooc":"http://openoffice.org/2004/calc","xmlns:dom":"http://www.w3.org/2001/xml-events","xmlns:xforms":"http://www.w3.org/2002/xforms","xmlns:xsd":"http://www.w3.org/2001/XMLSchema","xmlns:xsi":"http://www.w3.org/2001/XMLSchema-instance","xmlns:sheet":"urn:oasis:names:tc:opendocument:sh33tjs:1.0","xmlns:rpt":"http://openoffice.org/2005/report","xmlns:of":"urn:oasis:names:tc:opendocument:xmlns:of:1.2","xmlns:xhtml":"http://www.w3.org/1999/xhtml","xmlns:grddl":"http://www.w3.org/2003/g/data-view#","xmlns:tableooo":"http://openoffice.org/2009/table","xmlns:drawooo":"http://openoffice.org/2010/draw","xmlns:calcext":"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0","xmlns:loext":"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0","xmlns:field":"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0","xmlns:formx":"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0","xmlns:css3t":"http://www.w3.org/TR/css3-text/","office:version":"1.2"}),u=ni({"xmlns:config":"urn:oasis:names:tc:opendocument:xmlns:config:1.0","office:mimetype":"application/vnd.oasis.opendocument.spreadsheet"});c.bookType=="fods"?(d.push(" +`),d.push(ju().replace(/office:document-meta/g,"office:meta"))):d.push(" +`),a(d,s),d.push(` +`),d.push(` +`);for(var p=0;p!=s.SheetNames.length;++p)d.push(n(s.Sheets[s.SheetNames[p]],s,p));return d.push(` +`),d.push(` +`),c.bookType=="fods"?d.push(""):d.push(""),d.join("")}}();function Sf(e,r){if(r.bookType=="fods")return _c(e,r);var t=ws(),n="",a=[],o=[];return n="mimetype",He(t,n,"application/vnd.oasis.opendocument.spreadsheet"),n="content.xml",He(t,n,_c(e,r)),a.push([n,"text/xml"]),o.push([n,"ContentFile"]),n="styles.xml",He(t,n,c_(e,r)),a.push([n,"text/xml"]),o.push([n,"StylesFile"]),n="meta.xml",He(t,n,Ft+ju()),a.push([n,"text/xml"]),o.push([n,"MetadataFile"]),n="manifest.rdf",He(t,n,w2(o)),a.push([n,"application/rdf+xml"]),n="META-INF/manifest.xml",He(t,n,x2(a)),t}/*! sheetjs (C) 2013-present SheetJS -- http://sheetjs.com */function ao(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function u_(e){return typeof TextEncoder!="undefined"?new TextEncoder().encode(e):Vr(pn(e))}function f_(e,r){e:for(var t=0;t<=e.length-r.length;++t){for(var n=0;n>7,e[r+14]|=(n&127)<<1;for(var o=0;a>=1;++o,a/=256)e[r+o]=a&255;e[r+15]|=t>=0?0:128}function ai(e,r){var t=r?r[0]:0,n=e[t]&127;e:if(e[t++]>=128&&(n|=(e[t]&127)<<7,e[t++]<128||(n|=(e[t]&127)<<14,e[t++]<128)||(n|=(e[t]&127)<<21,e[t++]<128)||(n+=(e[t]&127)*Math.pow(2,28),++t,e[t++]<128)||(n+=(e[t]&127)*Math.pow(2,35),++t,e[t++]<128)||(n+=(e[t]&127)*Math.pow(2,42),++t,e[t++]<128)))break e;return r&&(r[0]=t),n}function Ze(e){var r=new Uint8Array(7);r[0]=e&127;var t=1;e:if(e>127){if(r[t-1]|=128,r[t]=e>>7&127,++t,e<=16383||(r[t-1]|=128,r[t]=e>>14&127,++t,e<=2097151)||(r[t-1]|=128,r[t]=e>>21&127,++t,e<=268435455)||(r[t-1]|=128,r[t]=e/256>>>21&127,++t,e<=34359738367)||(r[t-1]|=128,r[t]=e/65536>>>21&127,++t,e<=4398046511103))break e;r[t-1]|=128,r[t]=e/16777216>>>21&127,++t}return r.slice(0,t)}function Ba(e){var r=0,t=e[r]&127;e:if(e[r++]>=128){if(t|=(e[r]&127)<<7,e[r++]<128||(t|=(e[r]&127)<<14,e[r++]<128)||(t|=(e[r]&127)<<21,e[r++]<128))break e;t|=(e[r]&127)<<28}return t}function Ct(e){for(var r=[],t=[0];t[0]=128;);c=e.slice(d,t[0])}break;case 5:s=4,c=e.slice(t[0],t[0]+s),t[0]+=s;break;case 1:s=8,c=e.slice(t[0],t[0]+s),t[0]+=s;break;case 2:s=ai(e,t),c=e.slice(t[0],t[0]+s),t[0]+=s;break;case 3:case 4:default:throw new Error("PB Type ".concat(o," for Field ").concat(a," at offset ").concat(n))}var f={data:c,type:o};r[a]==null?r[a]=[f]:r[a].push(f)}return r}function zt(e){var r=[];return e.forEach(function(t,n){t.forEach(function(a){!a.data||(r.push(Ze(n*8+a.type)),a.type==2&&r.push(Ze(a.data.length)),r.push(a.data))})}),Mn(r)}function Hr(e){for(var r,t=[],n=[0];n[0]>>0>0),t.push(s)}return t}function Ea(e){var r=[];return e.forEach(function(t){var n=[];n[1]=[{data:Ze(t.id),type:0}],n[2]=[],t.merge!=null&&(n[3]=[{data:Ze(+!!t.merge),type:0}]);var a=[];t.messages.forEach(function(s){a.push(s.data),s.meta[3]=[{type:0,data:Ze(s.data.length)}],n[2].push({data:zt(s.meta),type:2})});var o=zt(n);r.push(Ze(o.length)),r.push(o),a.forEach(function(s){return r.push(s)})}),Mn(r)}function d_(e,r){if(e!=0)throw new Error("Unexpected Snappy chunk type ".concat(e));for(var t=[0],n=ai(r,t),a=[];t[0]>2;if(s<60)++s;else{var c=s-59;s=r[t[0]],c>1&&(s|=r[t[0]+1]<<8),c>2&&(s|=r[t[0]+2]<<16),c>3&&(s|=r[t[0]+3]<<24),s>>>=0,s++,t[0]+=c}a.push(r.slice(t[0],t[0]+s)),t[0]+=s;continue}else{var d=0,f=0;if(o==1?(f=(r[t[0]]>>2&7)+4,d=(r[t[0]++]&224)<<3,d|=r[t[0]++]):(f=(r[t[0]++]>>2)+1,o==2?(d=r[t[0]]|r[t[0]+1]<<8,t[0]+=2):(d=(r[t[0]]|r[t[0]+1]<<8|r[t[0]+2]<<16|r[t[0]+3]<<24)>>>0,t[0]+=4)),a=[Mn(a)],d==0)throw new Error("Invalid offset 0");if(d>a[0].length)throw new Error("Invalid offset beyond length");if(f>=d)for(a.push(a[0].slice(-d)),f-=d;f>=a[a.length-1].length;)a.push(a[a.length-1]),f-=a[a.length-1].length;a.push(a[0].slice(-d,-d+f))}}var u=Mn(a);if(u.length!=n)throw new Error("Unexpected length: ".concat(u.length," != ").concat(n));return u}function Gr(e){for(var r=[],t=0;t>8&255]))):n<=16777216?(s+=4,r.push(new Uint8Array([248,n-1&255,n-1>>8&255,n-1>>16&255]))):n<=4294967296&&(s+=5,r.push(new Uint8Array([252,n-1&255,n-1>>8&255,n-1>>16&255,n-1>>>24&255]))),r.push(e.slice(t,t+n)),s+=n,a[0]=0,a[1]=s&255,a[2]=s>>8&255,a[3]=s>>16&255,t+=n}return Mn(r)}function Zo(e,r){var t=new Uint8Array(32),n=ao(t),a=12,o=0;switch(t[0]=5,e.t){case"n":t[1]=2,h_(t,a,e.v),o|=1,a+=16;break;case"b":t[1]=6,n.setFloat64(a,e.v?1:0,!0),o|=2,a+=8;break;case"s":if(r.indexOf(e.v)==-1)throw new Error("Value ".concat(e.v," missing from SST!"));t[1]=3,n.setUint32(a,r.indexOf(e.v),!0),o|=8,a+=4;break;default:throw"unsupported cell type "+e.t}return n.setUint32(8,o,!0),t.slice(0,a)}function es(e,r){var t=new Uint8Array(32),n=ao(t),a=12,o=0;switch(t[0]=3,e.t){case"n":t[2]=2,n.setFloat64(a,e.v,!0),o|=32,a+=8;break;case"b":t[2]=6,n.setFloat64(a,e.v?1:0,!0),o|=32,a+=8;break;case"s":if(r.indexOf(e.v)==-1)throw new Error("Value ".concat(e.v," missing from SST!"));t[2]=3,n.setUint32(a,r.indexOf(e.v),!0),o|=16,a+=4;break;default:throw"unsupported cell type "+e.t}return n.setUint32(4,o,!0),t.slice(0,a)}function Cn(e){var r=Ct(e);return ai(r[1][0].data)}function p_(e,r,t){var n,a,o,s;if(!((n=e[6])!=null&&n[0])||!((a=e[7])!=null&&a[0]))throw"Mutation only works on post-BNC storages!";var c=((s=(o=e[8])==null?void 0:o[0])==null?void 0:s.data)&&Ba(e[8][0].data)>0||!1;if(c)throw"Math only works with normal offsets";for(var d=0,f=ao(e[7][0].data),u=0,p=[],A=ao(e[4][0].data),v=0,x=[],m=0;m1&&console.error("The Numbers writer currently writes only the first table");var n=wr(t["!ref"]);n.s.r=n.s.c=0;var a=!1;n.e.c>9&&(a=!0,n.e.c=9),n.e.r>49&&(a=!0,n.e.r=49),a&&console.error("The Numbers writer is currently limited to ".concat(St(n)));var o=io(t,{range:n,header:1}),s=["~Sh33tJ5~"];o.forEach(function(ie){return ie.forEach(function(X){typeof X=="string"&&s.push(X)})});var c={},d=[],f=at.read(r.numbers,{type:"base64"});f.FileIndex.map(function(ie,X){return[ie,f.FullPaths[X]]}).forEach(function(ie){var X=ie[0],V=ie[1];if(X.type==2&&!!X.name.match(/\.iwa/)){var he=X.content,Fe=Gr(he),De=Hr(Fe);De.forEach(function(Ce){d.push(Ce.id),c[Ce.id]={deps:[],location:V,type:Ba(Ce.messages[0].meta[1][0].data)}})}}),d.sort(function(ie,X){return ie-X});var u=d.filter(function(ie){return ie>1}).map(function(ie){return[ie,Ze(ie)]});f.FileIndex.map(function(ie,X){return[ie,f.FullPaths[X]]}).forEach(function(ie){var X=ie[0];if(ie[1],!!X.name.match(/\.iwa/)){var V=Hr(Gr(X.content));V.forEach(function(he){he.messages.forEach(function(Fe){u.forEach(function(De){he.messages.some(function(Ce){return Ba(Ce.meta[1][0].data)!=11006&&f_(Ce.data,De[1])})&&c[De[0]].deps.push(he.id)})})})}});for(var p=at.find(f,c[1].location),A=Hr(Gr(p.content)),v,x=0;x-1,a=Lu();Ls(r=r||{});var o=ws(),s="",c=0;if(r.cellXfs=[],Pn(r.cellXfs,{},{revssf:{General:0}}),e.Props||(e.Props={}),s="docProps/core.xml",He(o,s,zu(e.Props,r)),a.coreprops.push(s),et(r.rels,2,s,qe.CORE_PROPS),s="docProps/app.xml",!(e.Props&&e.Props.SheetNames))if(!e.Workbook||!e.Workbook.Sheets)e.Props.SheetNames=e.SheetNames;else{for(var d=[],f=0;f0&&(s="docProps/custom.xml",He(o,s,Wu(e.Custprops)),a.custprops.push(s),et(r.rels,4,s,qe.CUST_PROPS)),c=1;c<=e.SheetNames.length;++c){var u={"!id":{}},p=e.Sheets[e.SheetNames[c-1]],A=(p||{})["!type"]||"sheet";switch(A){case"chart":default:s="xl/worksheets/sheet"+c+"."+t,He(o,s,ww(c-1,s,r,e,u)),a.sheets.push(s),et(r.wbrels,-1,"worksheets/sheet"+c+"."+t,qe.WS[0])}if(p){var v=p["!comments"],x=!1,m="";v&&v.length>0&&(m="xl/comments"+c+"."+t,He(o,m,Ew(v,m)),a.comments.push(m),et(u,-1,"../comments"+c+"."+t,qe.CMNT),x=!0),p["!legacy"]&&x&&He(o,"xl/drawings/vmlDrawing"+c+".vml",sf(c,p["!comments"])),delete p["!comments"],delete p["!legacy"]}u["!id"].rId1&&He(o,Uu(s),Oa(u))}return r.Strings!=null&&r.Strings.length>0&&(s="xl/sharedStrings."+t,He(o,s,bw(r.Strings,s,r)),a.strs.push(s),et(r.wbrels,-1,"sharedStrings."+t,qe.SST)),s="xl/workbook."+t,He(o,s,yw(e,s)),a.workbooks.push(s),et(r.rels,1,s,qe.WB),s="xl/theme/theme1.xml",He(o,s,af(e.Themes,r)),a.themes.push(s),et(r.wbrels,-1,"theme/theme1.xml",qe.THEME),s="xl/styles."+t,He(o,s,_w(e,s,r)),a.styles.push(s),et(r.wbrels,-1,"styles."+t,qe.STY),e.vbaraw&&n&&(s="xl/vbaProject.bin",He(o,s,e.vbaraw),a.vba.push(s),et(r.wbrels,-1,"vbaProject.bin",qe.VBA)),s="xl/metadata."+t,He(o,s,Tw(s)),a.metadata.push(s),et(r.wbrels,-1,"metadata."+t,qe.XLMETA),He(o,"[Content_Types].xml",Nu(a,r)),He(o,"_rels/.rels",Oa(r.rels)),He(o,"xl/_rels/workbook."+t+".rels",Oa(r.wbrels)),delete r.revssf,delete r.ssf,o}function x_(e,r){Fa=1024,e&&!e.SSF&&(e.SSF=ur(gt)),e&&e.SSF&&(fo(),uo(e.SSF),r.revssf=ho(e.SSF),r.revssf[e.SSF[65535]]=0,r.ssf=e.SSF),r.rels={},r.wbrels={},r.Strings=[],r.Strings.Count=0,r.Strings.Unique=0,Ka?r.revStrings=new Map:(r.revStrings={},r.revStrings.foo=[],delete r.revStrings.foo);var t="xml",n=cf.indexOf(r.bookType)>-1,a=Lu();Ls(r=r||{});var o=ws(),s="",c=0;if(r.cellXfs=[],Pn(r.cellXfs,{},{revssf:{General:0}}),e.Props||(e.Props={}),s="docProps/core.xml",He(o,s,zu(e.Props,r)),a.coreprops.push(s),et(r.rels,2,s,qe.CORE_PROPS),s="docProps/app.xml",!(e.Props&&e.Props.SheetNames))if(!e.Workbook||!e.Workbook.Sheets)e.Props.SheetNames=e.SheetNames;else{for(var d=[],f=0;f0&&(s="docProps/custom.xml",He(o,s,Wu(e.Custprops)),a.custprops.push(s),et(r.rels,4,s,qe.CUST_PROPS));var u=["SheetJ5"];for(r.tcid=0,c=1;c<=e.SheetNames.length;++c){var p={"!id":{}},A=e.Sheets[e.SheetNames[c-1]],v=(A||{})["!type"]||"sheet";switch(v){case"chart":default:s="xl/worksheets/sheet"+c+"."+t,He(o,s,gf(c-1,r,e,p)),a.sheets.push(s),et(r.wbrels,-1,"worksheets/sheet"+c+"."+t,qe.WS[0])}if(A){var x=A["!comments"],m=!1,w="";if(x&&x.length>0){var M=!1;x.forEach(function(E){E[1].forEach(function(b){b.T==!0&&(M=!0)})}),M&&(w="xl/threadedComments/threadedComment"+c+"."+t,He(o,w,qv(x,u,r)),a.threadedcomments.push(w),et(p,-1,"../threadedComments/threadedComment"+c+"."+t,qe.TCMNT)),w="xl/comments"+c+"."+t,He(o,w,lf(x)),a.comments.push(w),et(p,-1,"../comments"+c+"."+t,qe.CMNT),m=!0}A["!legacy"]&&m&&He(o,"xl/drawings/vmlDrawing"+c+".vml",sf(c,A["!comments"])),delete A["!comments"],delete A["!legacy"]}p["!id"].rId1&&He(o,Uu(s),Oa(p))}return r.Strings!=null&&r.Strings.length>0&&(s="xl/sharedStrings."+t,He(o,s,Ku(r.Strings,r)),a.strs.push(s),et(r.wbrels,-1,"sharedStrings."+t,qe.SST)),s="xl/workbook."+t,He(o,s,wf(e)),a.workbooks.push(s),et(r.rels,1,s,qe.WB),s="xl/theme/theme1.xml",He(o,s,af(e.Themes,r)),a.themes.push(s),et(r.wbrels,-1,"theme/theme1.xml",qe.THEME),s="xl/styles."+t,He(o,s,rf(e,r)),a.styles.push(s),et(r.wbrels,-1,"styles."+t,qe.STY),e.vbaraw&&n&&(s="xl/vbaProject.bin",He(o,s,e.vbaraw),a.vba.push(s),et(r.wbrels,-1,"vbaProject.bin",qe.VBA)),s="xl/metadata."+t,He(o,s,of()),a.metadata.push(s),et(r.wbrels,-1,"metadata."+t,qe.XLMETA),u.length>1&&(s="xl/persons/person.xml",He(o,s,Jv(u)),a.people.push(s),et(r.wbrels,-1,"persons/person.xml",qe.PEOPLE)),He(o,"[Content_Types].xml",Nu(a,r)),He(o,"_rels/.rels",Oa(r.rels)),He(o,"xl/_rels/workbook."+t+".rels",Oa(r.wbrels)),delete r.revssf,delete r.ssf,o}function y_(e,r){var t="";switch((r||{}).type||"base64"){case"buffer":return[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7]];case"base64":t=gn(e.slice(0,12));break;case"binary":t=e;break;case"array":return[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7]];default:throw new Error("Unrecognized type "+(r&&r.type||"undefined"))}return[t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2),t.charCodeAt(3),t.charCodeAt(4),t.charCodeAt(5),t.charCodeAt(6),t.charCodeAt(7)]}function Ff(e,r){switch(r.type){case"base64":case"binary":break;case"buffer":case"array":r.type="";break;case"file":return li(r.file,at.write(e,{type:Je?"buffer":""}));case"string":throw new Error("'string' output type invalid for '"+r.bookType+"' files");default:throw new Error("Unrecognized type "+r.type)}return at.write(e,r)}function w_(e,r){var t=ur(r||{}),n=v_(e,t);return __(n,t)}function __(e,r){var t={},n=Je?"nodebuffer":typeof Uint8Array!="undefined"?"array":"string";if(r.compression&&(t.compression="DEFLATE"),r.password)t.type=n;else switch(r.type){case"base64":t.type="base64";break;case"binary":t.type="string";break;case"string":throw new Error("'string' output type invalid for '"+r.bookType+"' files");case"buffer":case"file":t.type=n;break;default:throw new Error("Unrecognized type "+r.type)}var a=e.FullPaths?at.write(e,{fileType:"zip",type:{nodebuffer:"buffer",string:"binary"}[t.type]||t.type,compression:!!r.compression}):e.generate(t);if(typeof Deno!="undefined"&&typeof a=="string"){if(r.type=="binary"||r.type=="base64")return a;a=new Uint8Array(co(a))}return r.password&&typeof encrypt_agile!="undefined"?Ff(encrypt_agile(a,r.password),r):r.type==="file"?li(r.file,a):r.type=="string"?$a(a):a}function b_(e,r){var t=r||{},n=Uw(e,t);return Ff(n,t)}function Zr(e,r,t){t||(t="");var n=t+e;switch(r.type){case"base64":return ti(pn(n));case"binary":return pn(n);case"string":return e;case"file":return li(r.file,n,"utf8");case"buffer":return Je?_n(n,"utf8"):typeof TextEncoder!="undefined"?new TextEncoder().encode(n):Zr(n,{type:"binary"}).split("").map(function(a){return a.charCodeAt(0)})}throw new Error("Unrecognized type "+r.type)}function E_(e,r){switch(r.type){case"base64":return ti(e);case"binary":return e;case"string":return e;case"file":return li(r.file,e,"binary");case"buffer":return Je?_n(e,"binary"):e.split("").map(function(t){return t.charCodeAt(0)})}throw new Error("Unrecognized type "+r.type)}function zi(e,r){switch(r.type){case"string":case"base64":case"binary":for(var t="",n=0;n0&&(a=0);var p=Yt(d.s.r),A=[],v=[],x=0,m=0,w=Array.isArray(e),M=d.s.r,E=0,b={};w&&!e[M]&&(e[M]=[]);var L=f.skipHidden&&e["!cols"]||[],N=f.skipHidden&&e["!rows"]||[];for(E=d.s.c;E<=d.e.c;++E)if(!(L[E]||{}).hidden)switch(A[E]=Jt(E),t=w?e[M][E]:e[A[E]+p],n){case 1:o[E]=E-d.s.c;break;case 2:o[E]=A[E];break;case 3:o[E]=f.header[E-d.s.c];break;default:if(t==null&&(t={w:"__EMPTY",t:"s"}),c=s=xn(t,null,f),m=b[s]||0,!m)b[s]=1;else{do c=s+"_"+m++;while(b[c]);b[s]=m,b[c]=1}o[E]=c}for(M=d.s.r+a;M<=d.e.r;++M)if(!(N[M]||{}).hidden){var O=T_(e,d,M,A,n,o,w,f);(O.isempty===!1||(n===1?f.blankrows!==!1:!!f.blankrows))&&(v[x++]=O.row)}return v.length=x,v}var bc=/"/g;function k_(e,r,t,n,a,o,s,c){for(var d=!0,f=[],u="",p=Yt(t),A=r.s.c;A<=r.e.c;++A)if(!!n[A]){var v=c.dense?(e[t]||[])[A]:e[n[A]+p];if(v==null)u="";else if(v.v!=null){d=!1,u=""+(c.rawNumbers&&v.t=="n"?v.v:xn(v,null,c));for(var x=0,m=0;x!==u.length;++x)if((m=u.charCodeAt(x))===a||m===o||m===34||c.forceQuotes){u='"'+u.replace(bc,'""')+'"';break}u=="ID"&&(u='"ID"')}else v.f!=null&&!v.F?(d=!1,u="="+v.f,u.indexOf(",")>=0&&(u='"'+u.replace(bc,'""')+'"')):u="";f.push(u)}return c.blankrows===!1&&d?null:f.join(s)}function Ns(e,r){var t=[],n=r==null?{}:r;if(e==null||e["!ref"]==null)return"";var a=ct(e["!ref"]),o=n.FS!==void 0?n.FS:",",s=o.charCodeAt(0),c=n.RS!==void 0?n.RS:` +`,d=c.charCodeAt(0),f=new RegExp((o=="|"?"\\|":o)+"+$"),u="",p=[];n.dense=Array.isArray(e);for(var A=n.skipHidden&&e["!cols"]||[],v=n.skipHidden&&e["!rows"]||[],x=a.s.c;x<=a.e.c;++x)(A[x]||{}).hidden||(p[x]=Jt(x));for(var m=0,w=a.s.r;w<=a.e.r;++w)(v[w]||{}).hidden||(u=k_(e,a,w,p,s,d,o,n),u!=null&&(n.strip&&(u=u.replace(f,"")),(u||n.blankrows!==!1)&&t.push((m++?c:"")+u)));return delete n.dense,t.join("")}function Of(e,r){r||(r={}),r.FS=" ",r.RS=` +`;var t=Ns(e,r);return t}function S_(e){var r="",t,n="";if(e==null||e["!ref"]==null)return[];var a=ct(e["!ref"]),o="",s=[],c,d=[],f=Array.isArray(e);for(c=a.s.c;c<=a.e.c;++c)s[c]=Jt(c);for(var u=a.s.r;u<=a.e.r;++u)for(o=Yt(u),c=a.s.c;c<=a.e.c;++c)if(r=s[c]+o,t=f?(e[u]||[])[c]:e[r],n="",t!==void 0){if(t.F!=null){if(r=t.F,!t.f)continue;n=t.f,r.indexOf(":")==-1&&(r=r+":"+r)}if(t.f!=null)n=t.f;else{if(t.t=="z")continue;if(t.t=="n"&&t.v!=null)n=""+t.v;else if(t.t=="b")n=t.v?"TRUE":"FALSE";else if(t.w!==void 0)n="'"+t.w;else{if(t.v===void 0)continue;t.t=="s"?n="'"+t.v:n=""+t.v}}d[d.length]=r+"="+n}return d}function Df(e,r,t){var n=t||{},a=+!n.skipHeader,o=e||{},s=0,c=0;if(o&&n.origin!=null)if(typeof n.origin=="number")s=n.origin;else{var d=typeof n.origin=="string"?Mt(n.origin):n.origin;s=d.r,c=d.c}var f,u={s:{c:0,r:0},e:{c,r:s+r.length-1+a}};if(o["!ref"]){var p=ct(o["!ref"]);u.e.c=Math.max(u.e.c,p.e.c),u.e.r=Math.max(u.e.r,p.e.r),s==-1&&(s=p.e.r+1,u.e.r=s+r.length-1+a)}else s==-1&&(s=0,u.e.r=r.length-1+a);var A=n.header||[],v=0;r.forEach(function(m,w){Qt(m).forEach(function(M){(v=A.indexOf(M))==-1&&(A[v=A.length]=M);var E=m[M],b="z",L="",N=rt({c:c+v,r:s+w+a});f=ii(o,N),E&&typeof E=="object"&&!(E instanceof Date)?o[N]=E:(typeof E=="number"?b="n":typeof E=="boolean"?b="b":typeof E=="string"?b="s":E instanceof Date?(b="d",n.cellDates||(b="n",E=cr(E)),L=n.dateNF||gt[14]):E===null&&n.nullError&&(b="e",E=0),f?(f.t=b,f.v=E,delete f.w,delete f.R,L&&(f.z=L)):o[N]=f={t:b,v:E},L&&(f.z=L))})}),u.e.c=Math.max(u.e.c,c+A.length-1);var x=Yt(s);if(a)for(v=0;v=0&&e.SheetNames.length>r)return r;throw new Error("Cannot find sheet # "+r)}else if(typeof r=="string"){var t=e.SheetNames.indexOf(r);if(t>-1)return t;throw new Error("Cannot find sheet name |"+r+"|")}else throw new Error("Cannot find sheet |"+r+"|")}function O_(){return{SheetNames:[],Sheets:{}}}function D_(e,r,t,n){var a=1;if(!t)for(;a<=65535&&e.SheetNames.indexOf(t="Sheet"+a)!=-1;++a,t=void 0);if(!t||e.SheetNames.length>=65535)throw new Error("Too many worksheets");if(n&&e.SheetNames.indexOf(t)>=0){var o=t.match(/(^.*?)(\d+)$/);a=o&&+o[2]||0;var s=o&&o[1]||t;for(++a;a<=65535&&e.SheetNames.indexOf(t=s+a)!=-1;++a);}if(yf(t),e.SheetNames.indexOf(t)>=0)throw new Error("Worksheet with name |"+t+"| already exists!");return e.SheetNames.push(t),e.Sheets[t]=r,t}function B_(e,r,t){e.Workbook||(e.Workbook={}),e.Workbook.Sheets||(e.Workbook.Sheets=[]);var n=C_(e,r);switch(e.Workbook.Sheets[n]||(e.Workbook.Sheets[n]={}),t){case 0:case 1:case 2:break;default:throw new Error("Bad sheet visibility setting "+t)}e.Workbook.Sheets[n].Hidden=t}function I_(e,r){return e.z=r,e}function Bf(e,r,t){return r?(e.l={Target:r},t&&(e.l.Tooltip=t)):delete e.l,e}function R_(e,r,t){return Bf(e,"#"+r,t)}function M_(e,r,t){e.c||(e.c=[]),e.c.push({t:r,a:t||"SheetJS"})}function P_(e,r,t,n){for(var a=typeof r!="string"?r:ct(r),o=typeof r=="string"?r:St(r),s=a.s.r;s<=a.e.r;++s)for(var c=a.s.c;c<=a.e.c;++c){var d=ii(e,s,c);d.t="n",d.F=o,delete d.v,s==a.s.r&&c==a.s.c&&(d.f=t,n&&(d.D=!0))}return e}var L_={encode_col:Jt,encode_row:Yt,encode_cell:rt,encode_range:St,decode_col:Ss,decode_row:ks,split_cell:Km,decode_cell:Mt,decode_range:wr,format_cell:xn,sheet_add_aoa:Du,sheet_add_json:Df,sheet_add_dom:Tf,aoa_to_sheet:Ma,json_to_sheet:F_,table_to_sheet:kf,table_to_book:s_,sheet_to_csv:Ns,sheet_to_txt:Of,sheet_to_json:io,sheet_to_html:Ef,sheet_to_formulae:S_,sheet_to_row_object_array:io,sheet_get_cell:ii,book_new:O_,book_append_sheet:D_,book_set_sheet_visibility:B_,cell_set_number_format:I_,cell_set_hyperlink:Bf,cell_set_internal_link:R_,cell_add_comment:M_,sheet_set_array_formula:P_,consts:{SHEET_VISIBLE:0,SHEET_HIDDEN:1,SHEET_VERY_HIDDEN:2}};const N_={key:0,class:"zfile-file-download-link-body"},U_=Or(" \u76F4\u94FE "),j_=Or(" \u77ED\u94FE "),z_={class:"flex flex-row space-x-10"},H_={class:"flex flex-col mt-3 space-y-3.5 overflow-y-auto"},G_={class:"w-full"},W_=Or("\u5BFC\u51FA"),V_=Or("\u5173\u95ED"),Y_={__name:"Link",props:{rowData:{type:Object}},setup(e){let r=vs(),t=hs(),n=oo(),{visible:a,copyText:o,data:s,datas:c,loadRowLinkData:d}=qc(t,n),{selectFiles:f}=lo(t,n);Jn(()=>a.value,x=>{x?f.value.length===0?ns.warning("\u8BF7\u81F3\u5C11\u9009\u62E9\u4E00\u4E2A\u6587\u4EF6"):f.value.forEach(m=>{d(m)}):c.value=[]});const u=()=>{let x=[];c.value.forEach(m=>{x.push(m.link)}),o(x.join(` +`))},p=()=>{let x=[];c.value.forEach(m=>{x.push(m.directlink)}),o(x.join(` +`))},{height:A}=jc(),v=()=>{let x={raw:!0},m=new Date,w=m.getFullYear(),M=m.getMonth()+1,E=m.getDate(),b=w+""+M+E,L=L_.table_to_book(document.querySelector(".zfile-download-link-table"),x),N=[{wch:50},{wch:50},{wch:50}];c.value.forEach(R=>{let q=R.row.name.length,H=R.directlink.length,le=R.link.length;q>N[0].wch&&(N[0].wch=q),H>N[1].wch&&(N[1].wch=H+20),le>N[2].wch&&(N[2].wch=le)}),L.Sheets.Sheet1["!cols"]=N;let O=Cf(L,{bookType:"xlsx",bookSST:!0,type:"array"});try{$A.saveAs(new Blob([O],{type:"application/octet-stream"}),b+"ZFile \u76F4\u94FE\u5BFC\u51FA.xlsx")}catch(R){typeof console!="undefined"&&ns.error(R+O)}return O};return(x,m)=>{const w=Nc,M=er,E=As,b=Uc,L=Xd,N=Jd,O=Qd,R=$d,q=Tp,H=Ud,le=ps;return S(a)?(xe(),Le("div",N_,[ce(le,{modelValue:S(a),"onUpdate:modelValue":m[13]||(m[13]=ae=>$n(a)?a.value=ae:a=ae),"destroy-on-close":!0,onClose:m[14]||(m[14]=ae=>$n(a)?a.value=!1:a=!1),title:"\u751F\u6210\u76F4\u94FE","custom-class":S(f).length>1?"zfile-file-download-link-dialog-multiple":"zfile-file-download-link-dialog-single",draggable:"",top:"5vh"},{footer:ve(()=>[ce(H,{type:"primary",onClick:v},{default:ve(()=>[W_]),_:1}),ce(H,{type:"info",onClick:m[12]||(m[12]=ae=>$n(a)?a.value=!1:a=!1)},{default:ve(()=>[V_]),_:1})]),default:ve(()=>[S(f).length>1?(xe(),ze(b,{key:0,class:"zfile-download-link-table","max-height":S(A)*.7,data:S(c)},{default:ve(()=>[ce(w,{"show-tooltip-when-overflow":"",label:"\u6587\u4EF6\u540D"},{default:ve(ae=>[Or(Gt(ae.row.row.name),1)]),_:1}),ce(w,{"show-overflow-tooltip":""},{header:ve(ae=>[U_,ce(E,{"show-arrow":!1,offset:15,effect:"dark",content:"\u6279\u91CF\u590D\u5236\u5230\u526A\u8D34\u677F",placement:"top"},{default:ve(()=>[ce(M,{onClick:p,class:"inline cursor-pointer l-5",name:"copy"})]),_:1})]),default:ve(ae=>[Or(Gt(ae.row.directlink),1)]),_:1}),ce(w,{"show-overflow-tooltip":"",width:"250"},{header:ve(ae=>[j_,ce(E,{"show-arrow":!1,offset:15,effect:"dark",content:"\u6279\u91CF\u590D\u5236\u5230\u526A\u8D34\u677F",placement:"top"},{default:ve(()=>[ce(M,{onClick:u,class:"inline cursor-pointer l-5",name:"copy"})]),_:1})]),default:ve(ae=>[Or(Gt(ae.row.link),1)]),_:1})]),_:1},8,["max-height","data"])):Ie("",!0),S(f).length===1&&S(s)?(xe(),ze(q,{key:1,class:"space-y-6"},{default:ve(()=>[Oe("div",z_,[ce(L,{ref:"qrcodeRef",class:"w-3/4",src:S(s).currentImg},null,8,["src"]),Oe("div",H_,[Oe("div",{class:Ge(["border w-10 h-10 p-1 rounded-md cursor-pointer",S(s).currentImg===S(s).img.a1?"border-blue-400":""]),onClick:m[0]||(m[0]=ae=>S(s).currentImg=S(s).img.a1)},[ce(L,{class:"w-full h-full",src:S(s).img.a1},null,8,["src"])],2),Oe("div",{class:Ge(["border w-10 h-10 p-1 rounded-md cursor-pointer",S(s).currentImg===S(s).img.a2?"border-blue-400":""]),onClick:m[1]||(m[1]=ae=>S(s).currentImg=S(s).img.a2)},[ce(L,{class:"w-full h-full",src:S(s).img.a2},null,8,["src"])],2),Oe("div",{class:Ge(["border w-10 h-10 p-1 rounded-md cursor-pointer",S(s).currentImg===S(s).img.sp1?"border-blue-400":""]),onClick:m[2]||(m[2]=ae=>S(s).currentImg=S(s).img.sp1)},[ce(L,{class:"w-full h-full",src:S(s).img.sp1},null,8,["src"])],2),Oe("div",{class:Ge(["border w-10 h-10 p-1 rounded-md cursor-pointer",S(s).currentImg===S(s).img.aa1?"border-blue-400":""]),onClick:m[3]||(m[3]=ae=>S(s).currentImg=S(s).img.aa1)},[ce(L,{class:"w-full h-full",src:S(s).img.aa1},null,8,["src"])],2),Oe("div",{class:Ge(["border w-10 h-10 p-1 rounded-md cursor-pointer",S(s).currentImg===S(s).img.ab2?"border-blue-400":""]),onClick:m[4]||(m[4]=ae=>S(s).currentImg=S(s).img.ab2)},[ce(L,{class:"w-full h-full",src:S(s).img.ab2},null,8,["src"])],2)])]),Oe("div",G_,[ce(R,null,{default:ve(()=>[ce(O,null,{default:ve(()=>[ce(N,{readonly:"","prefix-icon":S(ds),modelValue:S(s).row.name,"onUpdate:modelValue":m[5]||(m[5]=ae=>S(s).row.name=ae)},null,8,["prefix-icon","modelValue"])]),_:1}),ce(O,null,{default:ve(()=>[ce(N,{readonly:"","prefix-icon":S(Pc),modelValue:S(s).row.time,"onUpdate:modelValue":m[6]||(m[6]=ae=>S(s).row.time=ae)},null,8,["prefix-icon","modelValue"])]),_:1}),ce(O,null,{default:ve(()=>[ce(N,{readonly:"","prefix-icon":S(Lc),modelValue:S(s).row.size,"onUpdate:modelValue":m[7]||(m[7]=ae=>S(s).row.size=ae)},null,8,["prefix-icon","modelValue"])]),_:1}),S(r).config.showLinkBtn&&S(r).config.showPathLink?(xe(),ze(O,{key:0},{default:ve(()=>[ce(E,{"append-to":".zfile-file-download-link-body","popper-class":"zfile-link-tips",placement:"left",content:"\u8DEF\u5F84\u76F4\u94FE\u5730\u5740\uFF0C\u5305\u542B\u6587\u4EF6\u5B8C\u6574\u8DEF\u5F84."},{default:ve(()=>[ce(N,{onClick:m[8]||(m[8]=ae=>S(o)(S(s).directlink)),"prefix-icon":S(F0),type:"small",modelValue:S(s).directlink,"onUpdate:modelValue":m[9]||(m[9]=ae=>S(s).directlink=ae)},null,8,["prefix-icon","modelValue"])]),_:1})]),_:1})):Ie("",!0),S(r).config.showLinkBtn&&S(r).config.showShortLink?(xe(),ze(O,{key:1},{default:ve(()=>[ce(E,{"append-to":".zfile-file-download-link-body","popper-class":"zfile-link-tips",placement:"left",content:"\u7F29\u77ED\u7248\u76F4\u94FE\u5730\u5740\uFF0C\u4FBF\u4E8E\u590D\u5236\u5206\u53D1."},{default:ve(()=>[ce(N,{onClick:m[10]||(m[10]=ae=>S(o)(S(s).link)),"prefix-icon":S(F0),type:"small",modelValue:S(s).link,"onUpdate:modelValue":m[11]||(m[11]=ae=>S(s).link=ae)},null,8,["prefix-icon","modelValue"])]),_:1})]),_:1})):Ie("",!0)]),_:1})])]),_:1})):Ie("",!0)]),_:1},8,["modelValue","custom-class"])])):Ie("",!0)}}};var Q_=fs(Y_,[["__scopeId","data-v-0948030b"]]);const Us=e=>(Cc("data-v-3f3c23fc"),e=e(),Oc(),e),$_={class:"zfile-file-upload-body"},X_={class:"el-upload__text text-gray-400"},q_=Or(" \u62D6\u62FD\u6587\u4EF6\u5230\u8FD9\u91CC\u6216"),J_=Us(()=>Oe("em",null," \u70B9\u51FB\u4E0A\u4F20",-1)),K_=Or(", \u4E0A\u4F20\u81F3 "),Z_={class:"mt-5 space-y-2.5"},e4={class:"mr-2 p-1.5"},t4={class:"space-y-3 p-1.5"},r4={class:"font-medium text-sm"},n4={class:"text-xs text-gray-400"},a4=Us(()=>Oe("span",null,"/",-1)),i4=Us(()=>Oe("span",null," - ",-1)),o4={key:0,class:"text-green-500"},s4={key:1,class:"text-blue-400"},l4={class:"absolute w-full h-full hover:opacity-100 opacity-0 transition-opacity duration-300"},c4={class:"drop-sub"},u4={__name:"ZUpload",setup(e,{emit:r}){let t=hs(),n=oo(),{storageConfig:a,currentPath:o}=lo(t,n);zc(t,n);const{visible:s,cancelUpload:c,beforeUpload:d,uploadProgressInfoSorted:f,dropState:u,listenDropFile:p}=Hc(t,n),A=()=>{let x=!1;for(let m=f.value.length-1;m>=0;m--)f.value[m].status==="finished"&&(x=!0,f.value.splice(m,1));x&&r("close")},v=kt();return ls(()=>{p()}),(x,m)=>{const w=er,M=Wr,E=hA,b=er,L=ps;return xe(),Le("div",$_,[S(s)?(xe(),ze(L,{key:0,modelValue:S(s),"onUpdate:modelValue":m[0]||(m[0]=N=>$n(s)?s.value=N:null),"destroy-on-close":!0,onClose:A,title:"\u4E0A\u4F20","custom-class":"zfile-file-upload-dialog",draggable:"",top:"5vh",width:"70%"},{default:ve(()=>[ce(E,{drag:"","http-request":S(d),ref:"uploadRef","show-file-list":!1,multiple:""},{default:ve(()=>[ce(M,{class:"el-icon--upload"},{default:ve(()=>[ce(w,{name:"upload-1"})]),_:1}),Oe("div",X_,[q_,J_,K_,Oe("em",null,Gt(S(o)),1)])]),_:1},8,["http-request"]),Oe("div",Z_,[(xe(!0),Le(Ya,null,Hi(S(f),N=>(xe(),Le("div",{class:"flex flex-row w-full relative",key:N.index},[Oe("div",e4,[ce(b,{class:"text-5xl",name:"file-type-"+S(Xn).getFileIconName(N)},null,8,["name"])]),Oe("div",t4,[Oe("div",r4,Gt(N.name),1),Oe("div",n4,[Oe("span",null,Gt(S(Xn).fileSizeFormat(N.loaded)),1),a4,Oe("span",null,Gt(S(Xn).fileSizeFormat(N.size)),1),i4,N.status==="finished"?(xe(),Le("span",o4," \u5B8C\u6210 ")):(xe(),Le("span",s4,Gt(N.speed),1))])]),mr(Oe("div",{class:"absolute left-0 border-b-2 border-b-blue-300 h-full",style:en([{width:N.progress+"%"},{background:"rgba(132, 133, 141, 0.08)"}])},null,4),[[Fr,N.status==="uploading"]]),mr(Oe("div",l4,[ce(w,{onClick:O=>S(c)(N),class:"text-2xl absolute right-5 top-0 bottom-0 my-auto cursor-pointer rounded-full hover:bg-gray-200",name:"tool-close2"},null,8,["onClick"])],512),[[Fr,N.status==="uploading"]])]))),128))])]),_:1},8,["modelValue"])):Ie("",!0),S(a).enableFileOperator!==!1?mr((xe(),Le("div",{key:1,ref_key:"dropBoxRef",ref:v,id:"dropBox",class:"drop-view"},[Oe("div",c4,[Oe("span",null,"\u4E0A\u4F20\u6587\u4EF6\u81F3 "+Gt(S(o)),1)])],512)),[[Fr,S(u)]]):Ie("",!0)])}}};var f4=fs(u4,[["__scopeId","data-v-3f3c23fc"]]);var ht={contextmenu:"v-contextmenu",contextmenuIcon:"v-contextmenu-icon",contextmenuInner:"v-contextmenu-inner",contextmenuDivider:"v-contextmenu-divider",contextmenuItem:"v-contextmenu-item",contextmenuItemHover:"v-contextmenu-item--hover",contextmenuItemDisabled:"v-contextmenu-item--disabled",contextmenuGroup:"v-contextmenu-group",contextmenuGroupTitle:"v-contextmenu-group__title",contextmenuGroupMenus:"v-contextmenu-group__menus",contextmenuSubmenu:"v-contextmenu-submenu",contextmenuSubmenuTitle:"v-contextmenu-submenu__title",contextmenuSubmenuMenus:"v-contextmenu-submenu__menus",contextmenuSubmenuMenusTop:"v-contextmenu-submenu__menus--top",contextmenuSubmenuMenusRight:"v-contextmenu-submenu__menus--right",contextmenuSubmenuMenusBottom:"v-contextmenu-submenu__menus--bottom",contextmenuSubmenuMenusLeft:"v-contextmenu-submenu__menus--left",contextmenuSubmenuArrow:"v-contextmenu-submenu__arrow"};function h4(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!Ed(e)}var d4={trigger:["contextmenu"]},p4=ar({name:"VContextmenu",props:{modelValue:{type:Boolean,default:!1},autoAjustPlacement:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},teleport:{type:[String,Object],default:function(){return"body"}}},emits:["show","hide","update:modelValue"],setup:function(r,t){var n=t.emit,a=kt(null),o=kt(r.modelValue||!1),s=function(b){o.value=b,n("update:modelValue",b)},c=kt({top:0,left:0}),d=lt(function(){return{top:"".concat(c.value.top,"px"),left:"".concat(c.value.left,"px")}}),f=kt(null),u=function(b,L){var N=b instanceof Event?L:b,O=(N==null?void 0:N.autoAjustPlacement)||r.autoAjustPlacement,R={top:(N==null?void 0:N.top)||0,left:(N==null?void 0:N.left)||0};if(b instanceof Event){var q,H;b.preventDefault(),R.top=(q=N==null?void 0:N.top)!==null&&q!==void 0?q:b.pageY,R.left=(H=N==null?void 0:N.left)!==null&&H!==void 0?H:b.pageX}s(!0),Dc(function(){if(O){var le=a.value;if(!le)return;var ae=le.clientWidth,Ae=le.clientHeight;if(Ae+R.top>=window.innerHeight+window.scrollY){var be=R.top-Ae;be>window.scrollY&&(R.top=be)}if(ae+R.left>=window.innerWidth+window.scrollX){var Qe=R.left-ae;Qe>window.scrollX&&(R.left=Qe)}}c.value=R,n("show")})},p=function(){f.value=null,s(!1),n("hide")},A=_d(new Map),v=kt(),x=lt(function(){return v.value&&A.get(v.value)}),m=function(b,L){var N=function(){return L!=null&&L.trigger?Array.isArray(L.trigger)?L.trigger:[L.trigger]:d4.trigger}(),O=function(q){r.disabled||(v.value=b,u(q,{}))};N.forEach(function(R){b.addEventListener(R,O)}),A.set(b,{triggers:N,handler:O})},w=function(b){var L=A.get(b);!L||(L.triggers.forEach(function(N){b.removeEventListener(N,L.handler)}),A.delete(b))},M=function(b){if(!(!b.target||!a.value||!v.value)){var L=a.value.contains(b.target)||x.value&&x.value.triggers.includes("click")&&v.value.contains(b.target);L||s(!1)}};return Jn(o,function(E){E?document.addEventListener("click",M):document.removeEventListener("click",M)}),Fc(function(){document.removeEventListener("click",M)}),Sa("visible",o),Sa("autoAjustPlacement",r.autoAjustPlacement),Sa("show",u),Sa("hide",p),{visible:o,style:d,currentReferenceOptions:x,currentOptions:f,contextmenuRef:a,addReference:m,removeReference:w,toggle:s,show:u,hide:p}},methods:{renderContent:function(){var r,t;return mr(ce("div",{class:ht.contextmenu,ref:"contextmenuRef",style:this.style},[ce("ul",{class:ht.contextmenuInner},[(r=(t=this.$slots).default)===null||r===void 0?void 0:r.call(t,{triggerOptions:"currentReferenceOptions",options:"currentOptions"})])]),[[Fr,"visible"]])}},render:function(){var r;return this.visible?this.teleport?ce(bd,{to:this.teleport},h4(r=this.renderContent())?r:{default:function(){return[r]}}):this.renderContent():null}});function Ar(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}var dn=ar({name:"VContextmenuItem",props:{disabled:{type:Boolean,default:!1},hideOnClick:{type:Boolean,default:!0}},emits:["click","mouseenter","mouseleave"],setup:function(r,t){var n=t.emit,a=us("hide"),o=kt(!1),s=lt(function(){var u;return u={},Ar(u,ht.contextmenuItem,!0),Ar(u,ht.contextmenuItemDisabled,r.disabled),Ar(u,ht.contextmenuItemHover,o.value),u}),c=function(p){r.disabled||(n("click",p),r.hideOnClick&&(a==null||a()))},d=function(p){r.disabled||(o.value=!0,n("mouseenter",p))},f=function(p){r.disabled||(o.value=!1,n("mouseleave",p))};return{classes:s,handleClick:c,handleMouseenter:d,handleMouseleave:f}},render:function(){var r,t;return ce("li",{class:this.classes,onClick:this.handleClick,onMouseenter:this.handleMouseenter,onMouseleave:this.handleMouseleave},[(r=(t=this.$slots).default)===null||r===void 0?void 0:r.call(t)])}}),Ec=ar({name:"VContextmenuDivider",render:function(){return ce("li",{class:ht.contextmenuDivider},null)}}),A4=ar({name:"VContextmenuIcon",props:{name:{type:String,required:!0}},render:function(){return ce("i",{class:[ht.contextmenuIcon,"".concat(ht.contextmenuIcon,"-").concat(this.name)]},null)}});ar({name:"VContextmenuSubmenu",props:{title:{type:String,required:!0},disabled:{type:Boolean,default:!1}},emits:["mouseenter","mouseleave"],setup:function(r,t){var n=t.emit,a=kt(null),o=us("autoAjustPlacement"),s=kt(["top","right"]),c=kt(!1),d=function(v){r.disabled||(c.value=!0,n("mouseenter",v),Dc(function(){var x=[];if(o){var m=v.target,w=m.getBoundingClientRect();if(!a.value)return;var M=a.value.clientWidth,E=a.value.clientHeight;w.right+M>=window.innerWidth?x.push("left"):x.push("right"),w.bottom+E>=window.innerHeight?x.push("bottom"):x.push("top")}s.value=x}))},f=function(v){r.disabled||(c.value=!1,n("mouseleave",v))},u=lt(function(){var A;return A={},Ar(A,ht.contextmenuItem,!0),Ar(A,ht.contextmenuSubmenuTitle,!0),Ar(A,ht.contextmenuItemHover,c.value),Ar(A,ht.contextmenuItemDisabled,r.disabled),A}),p=lt(function(){var A;return A={},Ar(A,ht.contextmenu,!0),Ar(A,ht.contextmenuSubmenuMenus,!0),Ar(A,ht.contextmenuSubmenuMenusTop,s.value.includes("top")),Ar(A,ht.contextmenuSubmenuMenusRight,s.value.includes("right")),Ar(A,ht.contextmenuSubmenuMenusBottom,s.value.includes("bottom")),Ar(A,ht.contextmenuSubmenuMenusLeft,s.value.includes("left")),A});return{hover:c,submenuRef:a,titleClasses:u,menusClasses:p,handleMouseenter:d,handleMouseleave:f}},render:function(){var r,t,n,a;return ce("li",{class:ht.contextmenuSubmenu,onMouseenter:this.handleMouseenter,onMouseleave:this.handleMouseleave},[ce("div",{class:this.titleClasses},[((r=(t=this.$slots).title)===null||r===void 0?void 0:r.call(t))||this.title,ce("span",{class:ht.contextmenuSubmenuArrow},[ce(A4,{name:"right-arrow"},null)])]),this.hover?ce("div",{ref:"submenuRef",class:this.menusClasses},[ce("ul",{class:ht.contextmenuInner},[(n=(a=this.$slots).default)===null||n===void 0?void 0:n.call(a)])]):null])}});ar({name:"VContextmenuGroup",props:{title:{type:String,default:void 0},maxWidth:{type:[Number,String],default:void 0}},setup:function(r){var t=lt(function(){if(!!r.maxWidth)return{"max-width":typeof r.maxWidth=="number"?"".concat(r.maxWidth,"px"):r.maxWidth,"overflow-x":"auto"}});return{style:t}},methods:{renderTitle:function(){var r,t,n=((r=(t=this.$slots).title)===null||r===void 0?void 0:r.call(t))||this.title;return n?ce("div",{class:ht.contextmenuGroupTitle},[n]):null}},render:function(){var r,t;return ce("li",{class:ht.contextmenuGroup},[this.renderTitle(),ce("ul",{style:this.style,class:ht.contextmenuGroupMenus},[(r=(t=this.$slots).default)===null||r===void 0?void 0:r.call(t)])])}});let m4=ms();const{clearSelection:v4,toggleRowSelection:g4}=Gc(),ts=kt(!1);function x4(e,r,t){const{storageKey:n,selectRows:a}=lo(e,r);return{showMenu:(s,c,d)=>{if(s.type==="BACK")return;let f=t.proxy.$refs.contextmenu;!n.value||(m4.updateCurrentRightClickRow(s),a.value.includes(s)||(v4(),g4(s,!0)),d.preventDefault(),f.show({top:d.clientY,left:d.clientX}),ts.value=!0,window.onclick=()=>{f.hide(),ts.value=!1},f.$el.hidden=!1)},visible:ts}}const Br=e=>(Cc("data-v-78a4eb96"),e=e(),Oc(),e),y4={key:0,class:"zfile-index-hover-tools"},w4={class:"zfile-index-hover-body"},_4=Br(()=>Oe("div",{class:"font-bold text-base"},"\u6570\u636E\u4E3A\u7A7A\uFF0C\u8BF7\u5148\u4E0A\u4F20\u6216\u6DFB\u52A0\u6587\u4EF6",-1)),b4=Br(()=>Oe("span",null,"\u6587\u4EF6\u540D",-1)),E4={key:0},T4={key:1},k4=Br(()=>Oe("span",null,"\u4FEE\u6539\u65F6\u95F4",-1)),S4={key:0},F4={key:1},C4=Br(()=>Oe("span",null,"\u5927\u5C0F",-1)),O4={key:0},D4={key:1},B4=Br(()=>Oe("label",null,"\u6253\u5F00",-1)),I4=Br(()=>Oe("label",null,"\u9884\u89C8",-1)),R4=Br(()=>Oe("label",null,"\u4E0B\u8F7D",-1)),M4=Br(()=>Oe("label",null,"\u91CD\u547D\u540D",-1)),P4=Br(()=>Oe("label",null,"\u751F\u6210\u76F4\u94FE",-1)),L4=Br(()=>Oe("label",null,"\u65B0\u5EFA\u6587\u4EF6\u5939",-1)),N4=Br(()=>Oe("label",null,"\u4E0A\u4F20\u6587\u4EF6",-1)),U4=Br(()=>Oe("label",null,"\u4E0A\u4F20\u6587\u4EF6\u5939",-1)),j4={key:0,class:"text-green-500"},z4={key:1,class:"text-red-500"},If={__name:"file",setup(e){const r=Ga(()=>new Promise((ir,At)=>{(async function(){try{const Nt=await hn(()=>import("./preview.91ef53b4.js").then(function(ut){return ut.p}),["assets/preview.91ef53b4.js","assets/index.bbf7818f.js","assets/index.b549c954.css","assets/vue.runtime.esm-bundler.1e3a6623.js"]);hn(()=>Promise.resolve({}),["assets/preview.ebfa3115.css"]),hn(()=>Promise.resolve({}),["assets/github.1e923e45.css"]);const nn=await hn(()=>import("./index.02d854ed.js").then(function(ut){return ut.i}),[]),Ut=await hn(()=>import("./github.6902a714.js").then(function(ut){return ut.g}),["assets/github.6902a714.js","assets/index.bbf7818f.js","assets/index.b549c954.css"]);Nt.use(Ut,{Hljs:nn}),ir(Nt)}catch(Nt){At(Nt)}})()})),t=Ga(()=>hn(()=>import("./VideoPlayer.70650d66.js"),["assets/VideoPlayer.70650d66.js","assets/VideoPlayer.1614ab82.css","assets/request.19cbe8c5.js","assets/index.bbf7818f.js","assets/index.b549c954.css","assets/base.197bc1e5.js","assets/base.ef3e45d0.css","assets/tooltip.f118fcb0.js","assets/popper.91c84279.js","assets/popper.e5c0055c.css","assets/focus-trap.fe4b8179.js","assets/event.3ec63147.js","assets/useFileUpload.ba32a7f8.js","assets/common.d0a2bd7a.js","assets/index.6dd6d04c.js","assets/index.9aca9b8e.js","assets/event.776e7e11.js","assets/index.c66de53e.js","assets/scroll.4cf9bb37.js","assets/validator.998eeed0.js","assets/index.eeb08216.js","assets/directive.b8a17520.js"])),n=Ga(()=>hn(()=>import("./TextViewer.a3d21d3c.js").then(function(ir){return ir.T}),["assets/TextViewer.a3d21d3c.js","assets/TextViewer.a4e3072e.css","assets/index.bbf7818f.js","assets/index.b549c954.css","assets/common.6565cdd3.js","assets/request.19cbe8c5.js","assets/base.197bc1e5.js","assets/base.ef3e45d0.css","assets/useFileUpload.ba32a7f8.js","assets/common.d0a2bd7a.js","assets/index.6dd6d04c.js","assets/index.9aca9b8e.js","assets/event.776e7e11.js","assets/index.c66de53e.js","assets/scroll.4cf9bb37.js","assets/event.3ec63147.js","assets/focus-trap.fe4b8179.js","assets/validator.998eeed0.js","assets/index.eeb08216.js","assets/directive.b8a17520.js"])),a=Ga(()=>hn(()=>import("./MarkdownViewer.6a8257c9.js"),["assets/MarkdownViewer.6a8257c9.js","assets/MarkdownViewer.d4ddbd4f.css","assets/common.6565cdd3.js","assets/request.19cbe8c5.js","assets/index.bbf7818f.js","assets/index.b549c954.css","assets/base.197bc1e5.js","assets/base.ef3e45d0.css"])),o=Ga(()=>hn(()=>import("./FileGallery.4ff55311.js"),["assets/FileGallery.4ff55311.js","assets/FileGallery.34e81982.css","assets/base.197bc1e5.js","assets/base.ef3e45d0.css","assets/index.bbf7818f.js","assets/index.b549c954.css","assets/image-viewer.9e2d72eb.js","assets/image-viewer.856a8939.css","assets/request.19cbe8c5.js","assets/index.eeb08216.js","assets/debounce.a03a8484.js","assets/index.9aca9b8e.js","assets/event.776e7e11.js","assets/scroll.4cf9bb37.js","assets/common.d0a2bd7a.js","assets/useFileUpload.ba32a7f8.js","assets/index.6dd6d04c.js","assets/index.c66de53e.js","assets/event.3ec63147.js","assets/focus-trap.fe4b8179.js","assets/validator.998eeed0.js","assets/directive.b8a17520.js"])),{isNotMobile:s}=jc();let c=oo(),d=hs(),f=ms(),u=vs();Td();const p=kt(),A=kt(),v=kt(),{clearSelection:x}=Gc(p),m=kd(),{showMenu:w,visible:M}=x4(d,c,m);Sd(()=>{E()});const E=()=>{c.params.storageKey&&(Qe(),Zt())};Jn(()=>[c.params.storageKey,c.params.fullpath],()=>{E()});const{currentPath:b,storageKey:L,openRow:N,sortChangeMethod:O,checkSelectable:R,selectRowsChange:q,selectRow:H,selectRows:le,basicLoading:ae,skeletonLoading:Ae,skeletonData:be,loadFile:Qe,tableRowClassName:Me,selectStatistics:Ve,storageConfig:We,loadFileConfig:Zt}=lo(d,c),{openLinkDialog:pt,visible:$t}=qc(),{tableClickRow:Lt,tableDbClickRow:j,tableHoverRow:ie,tableLeaveRow:X}=Gd(d,c),{dialogVideoVisible:V,dialogTextVisible:he,dialogOfficeVisible:Fe}=Wd(),{rename:De,batchDownloadFile:Ce,moveTo:Ee,copyTo:Ke,newFolder:Ye,batchDelete:wt,batchDeleteResult:$e,batchDeleteDialogShow:_t,batchDeleteCloseAction:it,batchDeletePercentage:Se}=zc(d,c),{openUploadDialog:Dt,openUploadFolderDialog:Xt}=Hc(d,c);return(ir,At)=>{var En;const Nt=As,nn=zd,Ut=jd,ut=Nc,xt=Wr,or=Rp,fr=Ip,oa=Uc,an=HA,sa=MA,la=CA,ca=wA,on=ps,Ir=Vc,bn=Zd;return xe(),Le("div",{class:"zfile-index-body",ref_key:"rootRef",ref:v},[ce(cs,{"enter-active-class":"animate__animated animate__fadeInUp animate__faster","leave-active-class":"animate__animated animate__fadeOutDown animate__faster"},{default:ve(()=>[S(We).enableFileOperator!==!1?mr((xe(),Le("div",y4,[Oe("div",w4,[S(Ve).isAllFile&&S(Ve).isSingleSelect?(xe(),ze(Nt,{key:0,"show-arrow":!1,offset:15,effect:"dark",content:"\u9884\u89C8",placement:"top"},{default:ve(()=>[S(Ve).isAllFile&&S(Ve).isSingleSelect?(xe(),ze(er,{key:0,onClick:At[0]||(At[0]=mt=>S(N)(S(H))),name:"tool-preview"})):Ie("",!0)]),_:1})):Ie("",!0),S(Ve).isAllFile?(xe(),ze(Nt,{key:1,"show-arrow":!1,offset:15,effect:"dark",content:"\u4E0B\u8F7D",placement:"top"},{default:ve(()=>[S(Ve).isAllFile?(xe(),ze(er,{key:0,onClick:S(Ce),name:"tool-download"},null,8,["onClick"])):Ie("",!0)]),_:1})):Ie("",!0),S(Ve).isSingleSelect?(xe(),ze(Nt,{key:2,"show-arrow":!1,offset:15,effect:"dark",content:"\u91CD\u547D\u540D",placement:"top"},{default:ve(()=>[S(Ve).isSingleSelect?(xe(),ze(er,{key:0,onClick:S(De),name:"tool-edit"},null,8,["onClick"])):Ie("",!0)]),_:1})):Ie("",!0),ce(Nt,{"show-arrow":!1,offset:15,effect:"dark",content:"\u79FB\u52A8",placement:"top"},{default:ve(()=>[ce(er,{onClick:S(Ee),name:"tool-move"},null,8,["onClick"])]),_:1}),ce(Nt,{"show-arrow":!1,offset:15,effect:"dark",content:"\u5220\u9664",placement:"top"},{default:ve(()=>[ce(er,{onClick:S(wt),name:"tool-delete"},null,8,["onClick"])]),_:1}),ce(Nt,{"show-arrow":!1,offset:15,effect:"dark",content:"\u751F\u6210\u76F4\u94FE",placement:"top"},{default:ve(()=>[S(Ve).isAllFile&&S(Ve).isAllFile&&S(u).config.showLinkBtn&&(S(u).config.showShortLink||S(u).config.showPathLink)?(xe(),ze(er,{key:0,onClick:S(pt),name:"tool-link"},null,8,["onClick"])):Ie("",!0)]),_:1}),ce(Nt,{"show-arrow":!1,offset:15,disabled:S(le).length===0,effect:"dark",content:"\u53D6\u6D88\u9009\u62E9",placement:"top"},{default:ve(()=>[ce(er,{onClick:S(x),name:"tool-close"},null,8,["onClick"])]),_:1},8,["disabled"])])],512)),[[Fr,S(le).length>0&&S(L)&&!S(f).imgMode&&S($t)===!1]]):Ie("",!0)]),_:1}),S(u).config.announcement?(xe(),ze(nn,{key:0,class:"zfile-index-announcement",type:"success"},{default:ve(()=>[ce(S(r),{text:S(u).config.announcement},null,8,["text"])]),_:1})):Ie("",!0),S(c).params.storageKey&&S(We).readmeDisplayMode==="top"?(xe(),ze(Ut,{key:1,class:"my-3"},{default:ve(()=>[ce(S(r),{text:S(We).readmeText},null,8,["text"])]),_:1})):Ie("",!0),S(f).imgMode?Ie("",!0):mr((xe(),ze(oa,{key:2,id:"ListTable",ref_key:"fileTableRef",ref:p,"element-loading-text":"\u62FC\u547D\u52A0\u8F7D\u4E2D","element-loading-background":"rgba(255, 255, 255, 0.6)",onSortChange:S(O),onRowClick:S(Lt),onRowDblclick:S(j),onCellMouseEnter:S(ie),onCellMouseLeave:S(X),size:(En=S(u).config)==null?void 0:En.tableSize,"empty-text":"",onRowContextmenu:S(w),"row-class-name":S(Me),onSelectionChange:S(q),data:S(Ae)?S(be):S(f).fileList},{empty:ve(()=>[mr(Oe("div",null,[ce(er,{class:"empty-icon",name:"empty"}),_4],512),[[Fr,!S(ae)]])]),default:ve(()=>[ce(ut,{width:"45px",type:"selection",selectable:S(R)},null,8,["selectable"]),ce(ut,{prop:"name",sortable:"custom","class-name":"zfile-table-col-name","label-class-name":"table-header-left","min-width":"100%"},{header:ve(()=>[ce(xt,null,{default:ve(()=>[ce(S(ds))]),_:1}),b4]),default:ve(mt=>[S(Ae)?(xe(),Le("div",E4,[ce(fr,{animated:""},{template:ve(()=>[ce(or,{variant:"circle",style:{"vertical-align":"middle",width:"18px",height:"18px","margin-right":"20px"}}),ce(or,{variant:"text",style:{"vertical-align":"middle",width:"30%"}})]),_:1})])):(xe(),Le("div",T4,[ce(er,{name:"file-type-"+mt.row.icon},null,8,["name"]),Or(" "+Gt(mt.row.name),1)]))]),_:1}),S(s)?(xe(),ze(ut,{key:0,prop:"time",sortable:"custom","class-name":"zfile-table-col-time","min-width":"25%"},{header:ve(()=>[ce(xt,null,{default:ve(()=>[ce(S(Pc))]),_:1}),k4]),default:ve(mt=>[S(Ae)?(xe(),Le("div",S4,[ce(fr,{animated:""},{template:ve(()=>[ce(or,{variant:"text",style:{width:"60%"}})]),_:1})])):(xe(),Le("div",F4,Gt(mt.row.time),1))]),_:1})):Ie("",!0),S(s)?(xe(),ze(ut,{key:1,prop:"size","class-name":"zfile-table-col-size",sortable:"custom","min-width":"20%"},{header:ve(()=>[ce(xt,null,{default:ve(()=>[ce(S(Lc))]),_:1}),C4]),default:ve(mt=>[S(Ae)?(xe(),Le("div",O4,[ce(fr,{animated:""},{template:ve(()=>[ce(or,{variant:"text",style:{width:"30%"}})]),_:1})])):(xe(),Le("div",D4,Gt(S(Xn).fileSizeFilter(mt.row,null,mt.row.size)),1))]),_:1})):Ie("",!0)]),_:1},8,["onSortChange","onRowClick","onRowDblclick","onCellMouseEnter","onCellMouseLeave","size","onRowContextmenu","row-class-name","onSelectionChange","data"])),[[bn,S(ae)]]),S(f).imgMode?(xe(),ze(S(o),{key:3})):Ie("",!0),ce(S(p4),{ref_key:"contextmenu",ref:A},{default:ve(()=>[Oe("div",null,[mr(ce(S(dn),{onClick:At[1]||(At[1]=mt=>S(N)(S(H)))},{default:ve(()=>[ce(xt,{class:"contextmenu-icon"},{default:ve(()=>[ce(S(C0))]),_:1}),B4]),_:1},512),[[Fr,S(Ve).isSingleSelect&&S(Ve).isAllFolder]])]),mr(Oe("div",null,[mr(ce(S(dn),{onClick:At[2]||(At[2]=mt=>S(N)(S(H)))},{default:ve(()=>[ce(xt,{class:"contextmenu-icon"},{default:ve(()=>[ce(an)]),_:1}),I4]),_:1},512),[[Fr,S(Ve).isSingleSelect&&S(Ve).isAllFile]]),mr(ce(S(dn),{onClick:S(Ce)},{default:ve(()=>[ce(xt,{class:"contextmenu-icon"},{default:ve(()=>[ce(sa)]),_:1}),R4]),_:1},8,["onClick"]),[[Fr,S(Ve).isAllFile]]),ce(S(Ec)),mr(ce(S(dn),{onClick:S(De)},{default:ve(()=>[ce(xt,{class:"contextmenu-icon"},{default:ve(()=>[ce(er,{name:"edit"})]),_:1}),M4]),_:1},8,["onClick"]),[[Fr,S(Ve).isSingleSelect]]),ce(S(dn),{onClick:S(wt)},{default:ve(()=>[ce(xt,{class:"contextmenu-icon"},{default:ve(()=>[ce(er,{class:"inline",name:"delete"})]),_:1}),Oe("label",null,"\u5220\u9664 "+Gt(S(le).length>0?"("+S(le).length+")":""),1)]),_:1},8,["onClick"]),mr(ce(S(dn),{onClick:S(pt)},{default:ve(()=>[ce(xt,{class:"contextmenu-icon"},{default:ve(()=>[ce(er,{class:"inline",name:"link"})]),_:1}),P4]),_:1},8,["onClick"]),[[Fr,S(Ve).isAllFile&&S(u).config.showLinkBtn&&(S(u).config.showShortLink||S(u).config.showPathLink)]]),ce(S(Ec)),ce(S(dn),{onClick:S(Ye)},{default:ve(()=>[ce(xt,{class:"contextmenu-icon"},{default:ve(()=>[ce(S(C0))]),_:1}),L4]),_:1},8,["onClick"]),ce(S(dn),{onClick:S(Dt)},{default:ve(()=>[ce(xt,{class:"contextmenu-icon"},{default:ve(()=>[ce(la)]),_:1}),N4]),_:1},8,["onClick"]),ce(S(dn),{onClick:S(Xt)},{default:ve(()=>[ce(xt,{class:"contextmenu-icon"},{default:ve(()=>[ce(ca)]),_:1}),U4]),_:1},8,["onClick"])],512),[[Fr,S(We).enableFileOperator!==!1]])]),_:1},512),ce(on,{draggable:"","custom-class":"zfile-video-dialog","destroy-on-close":!0,top:"5vh",width:"80%",modelValue:S(V),"onUpdate:modelValue":At[3]||(At[3]=mt=>$n(V)?V.value=mt:null)},{default:ve(()=>[S(V)?(xe(),ze(S(t),{key:0,ref:"videoPlayer"},null,512)):Ie("",!0)]),_:1},8,["modelValue"]),ce(on,{draggable:"","custom-class":"zfile-text-dialog","destroy-on-close":!0,top:"5vh",title:S(f).currentClickRow.name,modelValue:S(he),"onUpdate:modelValue":At[4]||(At[4]=mt=>$n(he)?he.value=mt:null)},{default:ve(()=>[S(he)&&S(f).currentClickRow.name.indexOf(".md")===-1?(xe(),ze(S(n),{key:0,"file-name":S(f).currentClickRow.name,"file-url":S(f).currentClickRow.url},null,8,["file-name","file-url"])):Ie("",!0),S(he)&&S(f).currentClickRow.name.indexOf(".md")!==-1?(xe(),ze(S(a),{key:1,"file-name":S(f).currentClickRow.name,"file-url":S(f).currentClickRow.url},null,8,["file-name","file-url"])):Ie("",!0)]),_:1},8,["title","modelValue"]),ce(Q_),ce(on,{draggable:"","destroy-on-close":!0,width:"40%",title:"\u64CD\u4F5C\u7ED3\u679C",onClose:S(it),modelValue:S(_t),"onUpdate:modelValue":At[5]||(At[5]=mt=>$n(_t)?_t.value=mt:null)},{default:ve(()=>[ce(Ir,{"text-inside":!0,"stroke-width":26,percentage:S(Se),status:S(Se)===100?"success":""},null,8,["percentage","status"]),ce(oa,{data:S($e),height:"60vh",style:{width:"100%"}},{default:ve(()=>[ce(ut,{"show-overflow-tooltip":"",prop:"name",label:"\u6587\u4EF6\u540D"}),ce(ut,{prop:"status",label:"\u72B6\u6001",width:"150"},{default:ve(mt=>[mt.row.status?(xe(),Le("span",j4,"\u6210\u529F")):(xe(),Le("span",z4,"\u5931\u8D25"))]),_:1})]),_:1},8,["data"])]),_:1},8,["onClose","modelValue"]),ce(f4,{onClose:E}),ce(VA),ce(YA),S(We).readmeDisplayMode==="dialog"?(xe(),ze(on,{key:4,draggable:"","custom-class":"zfile-readme-dialog","model-value":!0},{default:ve(()=>[ce(S(r),{text:S(We).readmeText},null,8,["text"])]),_:1})):Ie("",!0),S(We).readmeDisplayMode==="bottom"?(xe(),ze(Ut,{key:5,class:"mt-5"},{default:ve(()=>[ce(S(r),{text:S(We).readmeText},null,8,["text"])]),_:1})):Ie("",!0)],512)}}};typeof O0=="function"&&O0(If);var T3=fs(If,[["__scopeId","data-v-78a4eb96"]]);export{T3 as default}; diff --git a/src/main/resources/static/assets/file.68aaede4.js b/src/main/resources/static/assets/file.68aaede4.js new file mode 100644 index 0000000..9a4fd57 --- /dev/null +++ b/src/main/resources/static/assets/file.68aaede4.js @@ -0,0 +1 @@ +import{d as Z,r as j,v as ut,o as Ae,a as m,f as V,g as re,n as $,u as t,E as ct,ad as Ne,p as v,b as U,e as z,q as Mt,t as ge,a0 as Tt,G as Lt,c as y,i as se,ae as xe,h as f,Q as Se,R as Ye,k as O,j as $e,T as Kt,W as At,V as Fe,w as q,ag as Ft,B as Ce,m as He,D as Rt,Y as Pe,s as Ut,P as Me,ah as Ot,F as de,y as be,_ as Xe,$ as Yt,O as We,L as mt,S as Ht,U as jt,J as ue,a1 as Xt,aG as Wt}from"./index.bbf7818f.js";import{u as qt,f as Gt,e as ft,E as pt,k as Jt,h as et,l as Qt}from"./request.19cbe8c5.js";import{b as fe,B as Dt,u as ee,_ as le,d as pe,E as Te,w as ze,j as Ve,i as Zt,A as er,I as tr,M as je,Q as D,k as ke,aq as bt,a5 as Ee,R as gt,q as rr,T as lr,b5 as ar,U as nr,b3 as or,o as Le,a4 as ir,t as sr,P as dr,b6 as ur,r as cr}from"./base.197bc1e5.js";import{b as mr,c as fr,u as pr}from"./overlay.21d31a0b.js";import{E as br}from"./switch.4caa5287.js";/* empty css */import"./tooltip.f118fcb0.js";import{E as qe}from"./popper.91c84279.js";import{S as vt}from"./SvgIcon.e3258df0.js";import"./scrollbar.7d059005.js";import{E as ht,a as _t}from"./select.3d28f8f8.js";import{u as Ge,a as ve,c as wt,r as gr,d as vr,e as hr,b as _r,l as wr}from"./useFileUpload.ba32a7f8.js";import{E as yt}from"./index.6dd6d04c.js";import{E as yr}from"./index.9aca9b8e.js";import{C as Je,I as Re,U as he}from"./event.776e7e11.js";import{u as Qe}from"./index.eeb08216.js";import{v as tt}from"./index.7fa0be7b.js";import{d as rt}from"./debounce.a03a8484.js";import{E as xr}from"./index.c66de53e.js";import{E as kr}from"./focus-trap.fe4b8179.js";import{E as Sr,a as zr,b as Vr}from"./dropdown-item.731434fa.js";/* empty css */import{E as Cr}from"./index.e63d92a7.js";import{c as Ie}from"./common.d0a2bd7a.js";import"./validator.998eeed0.js";import"./event.3ec63147.js";import"./index.283c220f.js";import"./scroll.4cf9bb37.js";import"./isEqual.a8284c4e.js";import"./directive.b8a17520.js";import"./dropdown.e1a9d9ca.js";import"./refs.e098e5db.js";const xt=Symbol("breadcrumbKey"),kt=Symbol("sliderContextKey"),Er=fe({separator:{type:String,default:"/"},separatorIcon:{type:Dt,default:""}}),Ir={name:"ElBreadcrumb"},Br=Z({...Ir,props:Er,setup(e){const r=e,l=ee("breadcrumb"),a=j();return ut(xt,r),Ae(()=>{const o=a.value.querySelectorAll(`.${l.e("item")}`);o.length&&o[o.length-1].setAttribute("aria-current","page")}),(o,u)=>(m(),V("div",{ref_key:"breadcrumb",ref:a,class:$(t(l).b()),"aria-label":"Breadcrumb",role:"navigation"},[re(o.$slots,"default")],2))}});var $r=le(Br,[["__file","/home/runner/work/element-plus/element-plus/packages/components/breadcrumb/src/breadcrumb.vue"]]);const Nr=fe({to:{type:pe([String,Object]),default:""},replace:{type:Boolean,default:!1}}),Pr={name:"ElBreadcrumbItem"},Mr=Z({...Pr,props:Nr,setup(e){const r=e,l=Tt(),a=ct(xt,void 0),o=ee("breadcrumb"),{separator:u,separatorIcon:d}=Ne(a),i=l.appContext.config.globalProperties.$router,w=j(),p=()=>{!r.to||!i||(r.replace?i.replace(r.to):i.push(r.to))};return(c,s)=>(m(),V("span",{class:$(t(o).e("item"))},[v("span",{ref_key:"link",ref:w,class:$([t(o).e("inner"),t(o).is("link",!!c.to)]),role:"link",onClick:p},[re(c.$slots,"default")],2),t(d)?(m(),U(t(Te),{key:0,class:$(t(o).e("separator"))},{default:z(()=>[(m(),U(Mt(t(d))))]),_:1},8,["class"])):(m(),V("span",{key:1,class:$(t(o).e("separator")),role:"presentation"},ge(t(u)),3))],2))}});var St=le(Mr,[["__file","/home/runner/work/element-plus/element-plus/packages/components/breadcrumb/src/breadcrumb-item.vue"]]);const Tr=ze($r,{BreadcrumbItem:St}),Lr=Ve(St),Kr={name:"ElContainer"},Ar=Z({...Kr,props:{direction:{type:String}},setup(e){const r=e,l=Lt(),a=ee("container"),o=y(()=>r.direction==="vertical"?!0:r.direction==="horizontal"?!1:l&&l.default?l.default().some(d=>{const i=d.type.name;return i==="ElHeader"||i==="ElFooter"}):!1);return(u,d)=>(m(),V("section",{class:$([t(a).b(),t(a).is("vertical",t(o))])},[re(u.$slots,"default")],2))}});var Fr=le(Ar,[["__file","/home/runner/work/element-plus/element-plus/packages/components/container/src/container.vue"]]);const Rr={name:"ElAside"},Ur=Z({...Rr,props:{width:{type:String,default:null}},setup(e){const r=e,l=ee("aside"),a=y(()=>r.width?l.cssVarBlock({width:r.width}):{});return(o,u)=>(m(),V("aside",{class:$(t(l).b()),style:se(t(a))},[re(o.$slots,"default")],6))}});var zt=le(Ur,[["__file","/home/runner/work/element-plus/element-plus/packages/components/container/src/aside.vue"]]);const Or={name:"ElFooter"},Yr=Z({...Or,props:{height:{type:String,default:null}},setup(e){const r=e,l=ee("footer"),a=y(()=>r.height?l.cssVarBlock({height:r.height}):{});return(o,u)=>(m(),V("footer",{class:$(t(l).b()),style:se(t(a))},[re(o.$slots,"default")],6))}});var Vt=le(Yr,[["__file","/home/runner/work/element-plus/element-plus/packages/components/container/src/footer.vue"]]);const Hr={name:"ElHeader"},jr=Z({...Hr,props:{height:{type:String,default:null}},setup(e){const r=e,l=ee("header"),a=y(()=>r.height?l.cssVarBlock({height:r.height}):{});return(o,u)=>(m(),V("header",{class:$(t(l).b()),style:se(t(a))},[re(o.$slots,"default")],6))}});var Ct=le(jr,[["__file","/home/runner/work/element-plus/element-plus/packages/components/container/src/header.vue"]]);const Xr={name:"ElMain"},Wr=Z({...Xr,setup(e){const r=ee("main");return(l,a)=>(m(),V("main",{class:$(t(r).b())},[re(l.$slots,"default")],2))}});var Et=le(Wr,[["__file","/home/runner/work/element-plus/element-plus/packages/components/container/src/main.vue"]]);const qr=ze(Fr,{Aside:zt,Footer:Vt,Header:Ct,Main:Et});Ve(zt);const Gr=Ve(Vt),Jr=Ve(Ct),Qr=Ve(Et),Dr=fe({...mr,direction:{type:String,default:"rtl",values:["ltr","rtl","ttb","btt"]},size:{type:[String,Number],default:"30%"},withHeader:{type:Boolean,default:!0},modalFade:{type:Boolean,default:!0}}),Zr=fr,el=Z({name:"ElDrawer",components:{ElOverlay:xr,ElFocusTrap:kr,ElIcon:Te,Close:Zt},props:Dr,emits:Zr,setup(e,{slots:r}){er({scope:"el-drawer",from:"the title slot",replacement:"the header slot",version:"3.0.0",ref:"https://element-plus.org/en-US/component/drawer.html#slots"},y(()=>!!r.title));const l=j(),a=j(),o=ee("drawer"),{t:u}=Qe(),d=y(()=>e.direction==="rtl"||e.direction==="ltr"),i=y(()=>tr(e.size));return{...pr(e,l),drawerRef:l,focusStartRef:a,isHorizontal:d,drawerSize:i,ns:o,t:u}}}),tl=["aria-label","aria-labelledby","aria-describedby"],rl=["id"],ll=["aria-label"],al=["id"];function nl(e,r,l,a,o,u){const d=xe("close"),i=xe("el-icon"),w=xe("el-focus-trap"),p=xe("el-overlay");return m(),U(At,{to:"body",disabled:!e.appendToBody},[f(Kt,{name:e.ns.b("fade"),onAfterEnter:e.afterEnter,onAfterLeave:e.afterLeave,onBeforeLeave:e.beforeLeave,persisted:""},{default:z(()=>[Se(f(p,{mask:e.modal,"overlay-class":e.modalClass,"z-index":e.zIndex,onClick:e.onModalClick},{default:z(()=>[f(w,{loop:"",trapped:e.visible,"focus-trap-el":e.drawerRef,"focus-start-el":e.focusStartRef,onReleaseRequested:e.onCloseRequested},{default:z(()=>[v("div",{ref:"drawerRef","aria-modal":"true","aria-label":e.title||void 0,"aria-labelledby":e.title?void 0:e.titleId,"aria-describedby":e.bodyId,class:$([e.ns.b(),e.direction,e.visible&&"open",e.customClass]),style:se(e.isHorizontal?"width: "+e.drawerSize:"height: "+e.drawerSize),role:"dialog",onClick:r[1]||(r[1]=$e(()=>{},["stop"]))},[v("span",{ref:"focusStartRef",class:$(e.ns.e("sr-focus")),tabindex:"-1"},null,2),e.withHeader?(m(),V("header",{key:0,class:$(e.ns.e("header"))},[e.$slots.title?re(e.$slots,"title",{key:1},()=>[O(" DEPRECATED SLOT ")]):re(e.$slots,"header",{key:0,close:e.handleClose,titleId:e.titleId,titleClass:e.ns.e("title")},()=>[e.$slots.title?O("v-if",!0):(m(),V("span",{key:0,id:e.titleId,role:"heading",class:$(e.ns.e("title"))},ge(e.title),11,rl))]),e.showClose?(m(),V("button",{key:2,"aria-label":e.t("el.drawer.close"),class:$(e.ns.e("close-btn")),type:"button",onClick:r[0]||(r[0]=(...c)=>e.handleClose&&e.handleClose(...c))},[f(i,{class:$(e.ns.e("close"))},{default:z(()=>[f(d)]),_:1},8,["class"])],10,ll)):O("v-if",!0)],2)):O("v-if",!0),e.rendered?(m(),V("div",{key:1,id:e.bodyId,class:$(e.ns.e("body"))},[re(e.$slots,"default")],10,al)):O("v-if",!0),e.$slots.footer?(m(),V("div",{key:2,class:$(e.ns.e("footer"))},[re(e.$slots,"footer")],2)):O("v-if",!0)],14,tl)]),_:3},8,["trapped","focus-trap-el","focus-start-el","onReleaseRequested"])]),_:3},8,["mask","overlay-class","z-index","onClick"]),[[Ye,e.visible]])]),_:3},8,["name","onAfterEnter","onAfterLeave","onBeforeLeave"])],8,["disabled"])}var ol=le(el,[["render",nl],["__file","/home/runner/work/element-plus/element-plus/packages/components/drawer/src/drawer.vue"]]);const il=ze(ol),sl=fe({id:{type:String,default:void 0},step:{type:Number,default:1},stepStrictly:Boolean,max:{type:Number,default:Number.POSITIVE_INFINITY},min:{type:Number,default:Number.NEGATIVE_INFINITY},modelValue:Number,disabled:Boolean,size:je,controls:{type:Boolean,default:!0},controlsPosition:{type:String,default:"",values:["","right"]},valueOnClear:{type:[String,Number,null],validator:e=>e===null||D(e)||["min","max"].includes(e),default:null},name:String,label:String,placeholder:String,precision:{type:Number,validator:e=>e>=0&&e===Number.parseInt(`${e}`,10)}}),dl={[Je]:(e,r)=>e!==r,blur:e=>e instanceof FocusEvent,focus:e=>e instanceof FocusEvent,[Re]:e=>D(e)||ke(e),[he]:e=>D(e)||ke(e)},ul=["aria-label","onKeydown"],cl=["aria-label","onKeydown"],ml={name:"ElInputNumber"},fl=Z({...ml,props:sl,emits:dl,setup(e,{expose:r,emit:l}){const a=e,{t:o}=Qe(),u=ee("input-number"),d=j(),i=Fe({currentValue:a.modelValue,userInput:null}),{formItem:w}=bt(),p=y(()=>D(a.modelValue)&&T(a.modelValue,-1)D(a.modelValue)&&T(a.modelValue)>a.max),s=y(()=>{const n=K(a.step);return Ee(a.precision)?Math.max(K(a.modelValue),n):(n>a.precision,a.precision)}),_=y(()=>a.controls&&a.controlsPosition==="right"),h=gt(),N=rr(),Y=y(()=>{if(i.userInput!==null)return i.userInput;let n=i.currentValue;if(ke(n))return"";if(D(n)){if(Number.isNaN(n))return"";Ee(a.precision)||(n=n.toFixed(a.precision))}return n}),X=(n,b)=>{if(Ee(b)&&(b=s.value),b===0)return Math.round(n);let I=String(n);const P=I.indexOf(".");if(P===-1||!I.replace(".","").split("")[P+b])return n;const B=I.length;return I.charAt(B-1)==="5"&&(I=`${I.slice(0,Math.max(0,B-1))}6`),Number.parseFloat(Number(I).toFixed(b))},K=n=>{if(ke(n))return 0;const b=n.toString(),I=b.indexOf(".");let P=0;return I!==-1&&(P=b.length-I-1),P},T=(n,b=1)=>D(n)?X(n+a.step*b):i.currentValue,H=()=>{if(N.value||c.value)return;const n=a.modelValue||0,b=T(n);S(b)},g=()=>{if(N.value||p.value)return;const n=a.modelValue||0,b=T(n,-1);S(b)},C=(n,b)=>{const{max:I,min:P,step:L,precision:R,stepStrictly:B,valueOnClear:W}=a;let A=Number(n);if(ke(n)||Number.isNaN(A))return null;if(n===""){if(W===null)return null;A=He(W)?{min:P,max:I}[W]:W}return B&&(A=Math.round(A/L)*L),Ee(R)||(A=X(A,R)),(A>I||AI?I:P,b&&l("update:modelValue",A)),A},S=n=>{var b;const I=i.currentValue,P=C(n);I!==P&&(i.userInput=null,l("update:modelValue",P),l("input",P),l("change",P,I),(b=w==null?void 0:w.validate)==null||b.call(w,"change").catch(L=>Le()),i.currentValue=P)},ae=n=>i.userInput=n,ne=n=>{const b=n!==""?Number(n):"";(D(b)&&!Number.isNaN(b)||n==="")&&S(b),i.userInput=null},J=()=>{var n,b;(b=(n=d.value)==null?void 0:n.focus)==null||b.call(n)},Q=()=>{var n,b;(b=(n=d.value)==null?void 0:n.blur)==null||b.call(n)},x=n=>{l("focus",n)},M=n=>{var b;l("blur",n),(b=w==null?void 0:w.validate)==null||b.call(w,"blur").catch(I=>Le())};return q(()=>a.modelValue,n=>{i.currentValue=C(n,!0),i.userInput=null},{immediate:!0}),Ae(()=>{var n;const{min:b,max:I,modelValue:P}=a,L=(n=d.value)==null?void 0:n.input;if(L.setAttribute("role","spinbutton"),Number.isFinite(I)?L.setAttribute("aria-valuemax",String(I)):L.removeAttribute("aria-valuemax"),Number.isFinite(b)?L.setAttribute("aria-valuemin",String(b)):L.removeAttribute("aria-valuemin"),L.setAttribute("aria-valuenow",String(i.currentValue)),L.setAttribute("aria-disabled",String(N.value)),!D(P)&&P!=null){let R=Number(P);Number.isNaN(R)&&(R=null),l("update:modelValue",R)}}),Ft(()=>{var n;const b=(n=d.value)==null?void 0:n.input;b==null||b.setAttribute("aria-valuenow",`${i.currentValue}`)}),r({focus:J,blur:Q}),(n,b)=>(m(),V("div",{class:$([t(u).b(),t(u).m(t(h)),t(u).is("disabled",t(N)),t(u).is("without-controls",!n.controls),t(u).is("controls-right",t(_))]),onDragstart:b[0]||(b[0]=$e(()=>{},["prevent"]))},[n.controls?Se((m(),V("span",{key:0,role:"button","aria-label":t(o)("el.inputNumber.decrease"),class:$([t(u).e("decrease"),t(u).is("disabled",t(p))]),onKeydown:Ce(g,["enter"])},[f(t(Te),null,{default:z(()=>[t(_)?(m(),U(t(lr),{key:0})):(m(),U(t(ar),{key:1}))]),_:1})],42,ul)),[[t(tt),g]]):O("v-if",!0),n.controls?Se((m(),V("span",{key:1,role:"button","aria-label":t(o)("el.inputNumber.increase"),class:$([t(u).e("increase"),t(u).is("disabled",t(c))]),onKeydown:Ce(H,["enter"])},[f(t(Te),null,{default:z(()=>[t(_)?(m(),U(t(nr),{key:0})):(m(),U(t(or),{key:1}))]),_:1})],42,cl)),[[t(tt),H]]):O("v-if",!0),f(t(yr),{id:n.id,ref_key:"input",ref:d,type:"number",step:n.step,"model-value":t(Y),placeholder:n.placeholder,disabled:t(N),size:t(h),max:n.max,min:n.min,name:n.name,label:n.label,"validate-event":!1,onKeydown:[Ce($e(H,["prevent"]),["up"]),Ce($e(g,["prevent"]),["down"])],onBlur:M,onFocus:x,onInput:ae,onChange:ne},null,8,["id","step","model-value","placeholder","disabled","size","max","min","name","label","onKeydown"])],34))}});var pl=le(fl,[["__file","/home/runner/work/element-plus/element-plus/packages/components/input-number/src/input-number.vue"]]);const It=ze(pl),bl=fe({modelValue:{type:pe([Number,Array]),default:0},id:{type:String,default:void 0},min:{type:Number,default:0},max:{type:Number,default:100},step:{type:Number,default:1},showInput:Boolean,showInputControls:{type:Boolean,default:!0},size:je,inputSize:je,showStops:Boolean,showTooltip:{type:Boolean,default:!0},formatTooltip:{type:pe(Function),default:void 0},disabled:Boolean,range:Boolean,vertical:Boolean,height:String,debounce:{type:Number,default:300},label:{type:String,default:void 0},rangeStartLabel:{type:String,default:void 0},rangeEndLabel:{type:String,default:void 0},formatValueText:{type:pe(Function),default:void 0},tooltipClass:{type:String,default:void 0},marks:{type:pe(Object)}}),Ue=e=>D(e)||Rt(e)&&e.every(D),gl={[he]:Ue,[Re]:Ue,[Je]:Ue},vl=(e,r,l)=>{const a=j();return Ae(async()=>{e.range?(Array.isArray(e.modelValue)?(r.firstValue=Math.max(e.min,e.modelValue[0]),r.secondValue=Math.min(e.max,e.modelValue[1])):(r.firstValue=e.min,r.secondValue=e.max),r.oldValue=[r.firstValue,r.secondValue]):(typeof e.modelValue!="number"||Number.isNaN(e.modelValue)?r.firstValue=e.min:r.firstValue=Math.min(e.max,Math.max(e.min,e.modelValue)),r.oldValue=r.firstValue),qt(window,"resize",l),await Pe(),l()}),{sliderWrapper:a}},hl=e=>y(()=>e.marks?Object.keys(e.marks).map(parseFloat).sort((l,a)=>l-a).filter(l=>l<=e.max&&l>=e.min).map(l=>({point:l,position:(l-e.min)*100/(e.max-e.min),mark:e.marks[l]})):[]),_l=(e,r,l)=>{const{form:a,formItem:o}=bt(),u=Ut(),d=j(),i=j(),w={firstButton:d,secondButton:i},p=y(()=>e.disabled||(a==null?void 0:a.disabled)||!1),c=y(()=>Math.min(r.firstValue,r.secondValue)),s=y(()=>Math.max(r.firstValue,r.secondValue)),_=y(()=>e.range?`${100*(s.value-c.value)/(e.max-e.min)}%`:`${100*(r.firstValue-e.min)/(e.max-e.min)}%`),h=y(()=>e.range?`${100*(c.value-e.min)/(e.max-e.min)}%`:"0%"),N=y(()=>e.vertical?{height:e.height}:{}),Y=y(()=>e.vertical?{height:_.value,bottom:h.value}:{width:_.value,left:h.value}),X=()=>{u.value&&(r.sliderSize=u.value[`client${e.vertical?"Height":"Width"}`])},K=x=>{const M=e.min+x*(e.max-e.min)/100;if(!e.range)return d;let n;return Math.abs(c.value-M)r.secondValue?"firstButton":"secondButton",w[n]},T=x=>{const M=K(x);return M.value.setPosition(x),M},H=x=>{r.firstValue=x,C(e.range?[c.value,s.value]:x)},g=x=>{r.secondValue=x,e.range&&C([c.value,s.value])},C=x=>{l(he,x),l(Re,x)},S=async()=>{await Pe(),l(Je,e.range?[c.value,s.value]:e.modelValue)},ae=x=>{var M,n,b,I,P,L;if(p.value||r.dragging)return;X();let R=0;if(e.vertical){const B=(b=(n=(M=x.touches)==null?void 0:M.item(0))==null?void 0:n.clientY)!=null?b:x.clientY;R=(u.value.getBoundingClientRect().bottom-B)/r.sliderSize*100}else{const B=(L=(P=(I=x.touches)==null?void 0:I.item(0))==null?void 0:P.clientX)!=null?L:x.clientX,W=u.value.getBoundingClientRect().left;R=(B-W)/r.sliderSize*100}if(!(R<0||R>100))return T(R)};return{elFormItem:o,slider:u,firstButton:d,secondButton:i,sliderDisabled:p,minValue:c,maxValue:s,runwayStyle:N,barStyle:Y,resetSize:X,setPosition:T,emitChange:S,onSliderWrapperPrevent:x=>{var M,n;(((M=w.firstButton.value)==null?void 0:M.dragging)||((n=w.secondButton.value)==null?void 0:n.dragging))&&x.preventDefault()},onSliderClick:x=>{ae(x)&&S()},onSliderDown:async x=>{const M=ae(x);M&&(await Pe(),M.value.onButtonDown(x))},setFirstValue:H,setSecondValue:g}},{left:wl,down:yl,right:xl,up:kl,home:Sl,end:zl,pageUp:Vl,pageDown:Cl}=ir,El=(e,r,l)=>{const a=j(),o=j(!1),u=y(()=>r.value instanceof Function),d=y(()=>u.value&&r.value(e.modelValue)||e.modelValue),i=rt(()=>{l.value&&(o.value=!0)},50),w=rt(()=>{l.value&&(o.value=!1)},50);return{tooltip:a,tooltipVisible:o,formatValue:d,displayTooltip:i,hideTooltip:w}},Il=(e,r,l)=>{const{disabled:a,min:o,max:u,step:d,showTooltip:i,precision:w,sliderSize:p,formatTooltip:c,emitChange:s,resetSize:_,updateDragging:h}=ct(kt),{tooltip:N,tooltipVisible:Y,formatValue:X,displayTooltip:K,hideTooltip:T}=El(e,c,i),H=j(),g=y(()=>`${(e.modelValue-o.value)/(u.value-o.value)*100}%`),C=y(()=>e.vertical?{bottom:g.value}:{left:g.value}),S=()=>{r.hovering=!0,K()},ae=()=>{r.hovering=!1,r.dragging||T()},ne=k=>{a.value||(k.preventDefault(),R(k),window.addEventListener("mousemove",B),window.addEventListener("touchmove",B),window.addEventListener("mouseup",W),window.addEventListener("touchend",W),window.addEventListener("contextmenu",W),H.value.focus())},J=k=>{a.value||(r.newPosition=Number.parseFloat(g.value)+k/(u.value-o.value)*100,A(r.newPosition),s())},Q=()=>{J(-d.value)},x=()=>{J(d.value)},M=()=>{J(-d.value*4)},n=()=>{J(d.value*4)},b=()=>{a.value||(A(0),s())},I=()=>{a.value||(A(100),s())},P=k=>{let F=!0;[wl,yl].includes(k.key)?Q():[xl,kl].includes(k.key)?x():k.key===Sl?b():k.key===zl?I():k.key===Cl?M():k.key===Vl?n():F=!1,F&&k.preventDefault()},L=k=>{let F,oe;return k.type.startsWith("touch")?(oe=k.touches[0].clientY,F=k.touches[0].clientX):(oe=k.clientY,F=k.clientX),{clientX:F,clientY:oe}},R=k=>{r.dragging=!0,r.isClick=!0;const{clientX:F,clientY:oe}=L(k);e.vertical?r.startY=oe:r.startX=F,r.startPosition=Number.parseFloat(g.value),r.newPosition=r.startPosition},B=k=>{if(r.dragging){r.isClick=!1,K(),_();let F;const{clientX:oe,clientY:ce}=L(k);e.vertical?(r.currentY=ce,F=(r.startY-r.currentY)/p.value*100):(r.currentX=oe,F=(r.currentX-r.startX)/p.value*100),r.newPosition=r.startPosition+F,A(r.newPosition)}},W=()=>{r.dragging&&(setTimeout(()=>{r.dragging=!1,r.hovering||T(),r.isClick||(A(r.newPosition),s())},0),window.removeEventListener("mousemove",B),window.removeEventListener("touchmove",B),window.removeEventListener("mouseup",W),window.removeEventListener("touchend",W),window.removeEventListener("contextmenu",W))},A=async k=>{if(k===null||Number.isNaN(+k))return;k<0?k=0:k>100&&(k=100);const F=100/((u.value-o.value)/d.value);let ce=Math.round(k/F)*F*(u.value-o.value)*.01+o.value;ce=Number.parseFloat(ce.toFixed(w.value)),l(he,ce),!r.dragging&&e.modelValue!==r.oldValue&&(r.oldValue=e.modelValue),await Pe(),r.dragging&&K(),N.value.updatePopper()};return q(()=>r.dragging,k=>{h(k)}),{button:H,tooltip:N,tooltipVisible:Y,showTooltip:i,wrapperStyle:C,formatValue:X,handleMouseEnter:S,handleMouseLeave:ae,onButtonDown:ne,onKeyDown:P,setPosition:A}},Bl=(e,r,l,a)=>({stops:y(()=>{if(!e.showStops||e.min>e.max)return[];if(e.step===0)return[];const d=(e.max-e.min)/e.step,i=100*e.step/(e.max-e.min),w=Array.from({length:d-1}).map((p,c)=>(c+1)*i);return e.range?w.filter(p=>p<100*(l.value-e.min)/(e.max-e.min)||p>100*(a.value-e.min)/(e.max-e.min)):w.filter(p=>p>100*(r.firstValue-e.min)/(e.max-e.min))}),getStopStyle:d=>e.vertical?{bottom:`${d}%`}:{left:`${d}%`}}),$l=(e,r,l,a,o,u)=>{const d=p=>{o(he,p),o(Re,p)},i=()=>e.range?![l.value,a.value].every((p,c)=>p===r.oldValue[c]):e.modelValue!==r.oldValue,w=()=>{var p,c;if(e.min>e.max){sr("Slider","min should not be greater than max.");return}const s=e.modelValue;e.range&&Array.isArray(s)?s[1]e.max?d([e.max,e.max]):s[0]e.max?d([s[0],e.max]):(r.firstValue=s[0],r.secondValue=s[1],i()&&((p=u==null?void 0:u.validate)==null||p.call(u,"change").catch(_=>Le()),r.oldValue=s.slice())):!e.range&&typeof s=="number"&&!Number.isNaN(s)&&(se.max?d(e.max):(r.firstValue=s,i()&&((c=u==null?void 0:u.validate)==null||c.call(u,"change").catch(_=>Le()),r.oldValue=s)))};w(),q(()=>r.dragging,p=>{p||w()}),q(()=>e.modelValue,(p,c)=>{r.dragging||Array.isArray(p)&&Array.isArray(c)&&p.every((s,_)=>s===c[_])&&r.firstValue===p[0]&&r.secondValue===p[1]||w()},{deep:!0}),q(()=>[e.min,e.max],()=>{w()})},Nl=fe({modelValue:{type:Number,default:0},vertical:Boolean,tooltipClass:String}),Pl={[he]:e=>D(e)},Ml={name:"ElSliderButton"},Tl=Z({...Ml,props:Nl,emits:Pl,setup(e,{expose:r,emit:l}){const a=e,o=ee("slider"),u=Fe({hovering:!1,dragging:!1,isClick:!1,startX:0,currentX:0,startY:0,currentY:0,startPosition:0,newPosition:0,oldValue:a.modelValue}),{button:d,tooltip:i,showTooltip:w,tooltipVisible:p,wrapperStyle:c,formatValue:s,handleMouseEnter:_,handleMouseLeave:h,onButtonDown:N,onKeyDown:Y,setPosition:X}=Il(a,u,l),{hovering:K,dragging:T}=Ne(u);return r({onButtonDown:N,onKeyDown:Y,setPosition:X,hovering:K,dragging:T}),(H,g)=>(m(),V("div",{ref_key:"button",ref:d,class:$([t(o).e("button-wrapper"),{hover:t(K),dragging:t(T)}]),style:se(t(c)),tabindex:"0",onMouseenter:g[1]||(g[1]=(...C)=>t(_)&&t(_)(...C)),onMouseleave:g[2]||(g[2]=(...C)=>t(h)&&t(h)(...C)),onMousedown:g[3]||(g[3]=(...C)=>t(N)&&t(N)(...C)),onTouchstart:g[4]||(g[4]=(...C)=>t(N)&&t(N)(...C)),onFocus:g[5]||(g[5]=(...C)=>t(_)&&t(_)(...C)),onBlur:g[6]||(g[6]=(...C)=>t(h)&&t(h)(...C)),onKeydown:g[7]||(g[7]=(...C)=>t(Y)&&t(Y)(...C))},[f(t(qe),{ref_key:"tooltip",ref:i,visible:t(p),"onUpdate:visible":g[0]||(g[0]=C=>Me(p)?p.value=C:null),placement:"top","stop-popper-mouse-event":!1,"popper-class":H.tooltipClass,disabled:!t(w),persistent:""},{content:z(()=>[v("span",null,ge(t(s)),1)]),default:z(()=>[v("div",{class:$([t(o).e("button"),{hover:t(K),dragging:t(T)}])},null,2)]),_:1},8,["visible","popper-class","disabled"])],38))}});var lt=le(Tl,[["__file","/home/runner/work/element-plus/element-plus/packages/components/slider/src/button.vue"]]);const Ll=fe({mark:{type:pe([String,Object]),default:void 0}});var Kl=Z({name:"ElSliderMarker",props:Ll,setup(e){const r=ee("slider"),l=y(()=>He(e.mark)?e.mark:e.mark.label),a=y(()=>He(e.mark)?void 0:e.mark.style);return()=>Ot("div",{class:r.e("marks-text"),style:a},l.value)}});const Al=["id","role","aria-label","aria-labelledby"],Fl={key:1},Rl={name:"ElSlider"},Ul=Z({...Rl,props:bl,emits:gl,setup(e,{expose:r,emit:l}){const a=e,o=ee("slider"),{t:u}=Qe(),d=Fe({firstValue:0,secondValue:0,oldValue:0,dragging:!1,sliderSize:1}),{elFormItem:i,slider:w,firstButton:p,secondButton:c,sliderDisabled:s,minValue:_,maxValue:h,runwayStyle:N,barStyle:Y,resetSize:X,emitChange:K,onSliderWrapperPrevent:T,onSliderClick:H,onSliderDown:g,setFirstValue:C,setSecondValue:S}=_l(a,d,l),{stops:ae,getStopStyle:ne}=Bl(a,d,_,h),{inputId:J,isLabeledByFormItem:Q}=dr(a,{formItemContext:i}),x=gt(),M=y(()=>a.inputSize||x.value),n=y(()=>a.label||u("el.slider.defaultLabel",{min:a.min,max:a.max})),b=y(()=>a.range?a.rangeStartLabel||u("el.slider.defaultRangeStartLabel"):n.value),I=y(()=>a.formatValueText?a.formatValueText(k.value):`${k.value}`),P=y(()=>a.rangeEndLabel||u("el.slider.defaultRangeEndLabel")),L=y(()=>a.formatValueText?a.formatValueText(F.value):`${F.value}`),R=y(()=>[o.b(),o.m(x.value),o.is("vertical",a.vertical),{[o.m("with-input")]:a.showInput}]),B=hl(a);$l(a,d,_,h,l,i);const W=y(()=>{const E=[a.min,a.max,a.step].map(ie=>{const _e=`${ie}`.split(".")[1];return _e?_e.length:0});return Math.max.apply(null,E)}),{sliderWrapper:A}=vl(a,d,X),{firstValue:k,secondValue:F,sliderSize:oe}=Ne(d),ce=E=>{d.dragging=E};return ut(kt,{...Ne(a),sliderSize:oe,disabled:s,precision:W,emitChange:K,resetSize:X,updateDragging:ce}),r({onSliderClick:H}),(E,ie)=>{var _e,Ze;return m(),V("div",{id:E.range?t(J):void 0,ref_key:"sliderWrapper",ref:A,class:$(t(R)),role:E.range?"group":void 0,"aria-label":E.range&&!t(Q)?t(n):void 0,"aria-labelledby":E.range&&t(Q)?(_e=t(i))==null?void 0:_e.labelId:void 0,onTouchstart:ie[2]||(ie[2]=(...G)=>t(T)&&t(T)(...G)),onTouchmove:ie[3]||(ie[3]=(...G)=>t(T)&&t(T)(...G))},[v("div",{ref_key:"slider",ref:w,class:$([t(o).e("runway"),{"show-input":E.showInput&&!E.range},t(o).is("disabled",t(s))]),style:se(t(N)),onMousedown:ie[0]||(ie[0]=(...G)=>t(g)&&t(g)(...G)),onTouchstart:ie[1]||(ie[1]=(...G)=>t(g)&&t(g)(...G))},[v("div",{class:$(t(o).e("bar")),style:se(t(Y))},null,6),f(lt,{id:E.range?void 0:t(J),ref_key:"firstButton",ref:p,"model-value":t(k),vertical:E.vertical,"tooltip-class":E.tooltipClass,role:"slider","aria-label":E.range||!t(Q)?t(b):void 0,"aria-labelledby":!E.range&&t(Q)?(Ze=t(i))==null?void 0:Ze.labelId:void 0,"aria-valuemin":E.min,"aria-valuemax":E.range?t(F):E.max,"aria-valuenow":t(k),"aria-valuetext":t(I),"aria-orientation":E.vertical?"vertical":"horizontal","aria-disabled":t(s),"onUpdate:modelValue":t(C)},null,8,["id","model-value","vertical","tooltip-class","aria-label","aria-labelledby","aria-valuemin","aria-valuemax","aria-valuenow","aria-valuetext","aria-orientation","aria-disabled","onUpdate:modelValue"]),E.range?(m(),U(lt,{key:0,ref_key:"secondButton",ref:c,"model-value":t(F),vertical:E.vertical,"tooltip-class":E.tooltipClass,role:"slider","aria-label":t(P),"aria-valuemin":t(k),"aria-valuemax":E.max,"aria-valuenow":t(F),"aria-valuetext":t(L),"aria-orientation":E.vertical?"vertical":"horizontal","aria-disabled":t(s),"onUpdate:modelValue":t(S)},null,8,["model-value","vertical","tooltip-class","aria-label","aria-valuemin","aria-valuemax","aria-valuenow","aria-valuetext","aria-orientation","aria-disabled","onUpdate:modelValue"])):O("v-if",!0),E.showStops?(m(),V("div",Fl,[(m(!0),V(de,null,be(t(ae),(G,we)=>(m(),V("div",{key:we,class:$(t(o).e("stop")),style:se(t(ne)(G))},null,6))),128))])):O("v-if",!0),t(B).length>0?(m(),V(de,{key:2},[v("div",null,[(m(!0),V(de,null,be(t(B),(G,we)=>(m(),V("div",{key:we,style:se(t(ne)(G.position)),class:$([t(o).e("stop"),t(o).e("marks-stop")])},null,6))),128))]),v("div",{class:$(t(o).e("marks"))},[(m(!0),V(de,null,be(t(B),(G,we)=>(m(),U(t(Kl),{key:we,mark:G.mark,style:se(t(ne)(G.position))},null,8,["mark","style"]))),128))],2)],64)):O("v-if",!0)],38),E.showInput&&!E.range?(m(),U(t(It),{key:0,ref:"input","model-value":t(k),class:$(t(o).e("input")),step:E.step,disabled:t(s),controls:E.showInputControls,min:E.min,max:E.max,debounce:E.debounce,size:t(M),"onUpdate:modelValue":t(C),onChange:t(K)},null,8,["model-value","class","step","disabled","controls","min","max","debounce","size","onUpdate:modelValue","onChange"])):O("v-if",!0)],42,Al)}}});var Ol=le(Ul,[["__file","/home/runner/work/element-plus/element-plus/packages/components/slider/src/slider.vue"]]);const Yl=ze(Ol);const at=j(!1);let Bt={view:{size:2},gallery:{column:3,mobileColumn:1,columnSpacing:50,rowSpacing:10,showInfo:!0,showInfoMode:"hover",roundedBorder:!0},getShortLinkListPreview:{mode:"only"},imagePreview:{mode:"only"}};const $t=(e,r)=>{r=r||globalThis;for(let l in e)r[l]===void 0?r[l]=e[l]:e[l]instanceof Object&&r[l]instanceof Object&&$t(e[l],r[l])},nt=Gt("zfile-setting-cache",Bt);function Nt(){const e=()=>{at.value=!0};return $t(Bt,nt.value),{visible:at,zfileSettingCache:nt,openSettingVisible:e}}const Hl=e=>ft({url:"/api/site/reset-password",method:"get",data:e}),jl=e=>ft({url:"/api/storage/list",method:"get",data:e});let Oe=Ge(),Xl=ve(),me=j([]),ye=j(),ot=!1;function De(e,r){let l=Xl.config.rootShowStorage;const a=y(()=>r.params.storageKey);let o=()=>new Promise(c=>{jl().then(s=>{if(me.value=s.data,me.value.length===0){yt.confirm("\u5F53\u524D\u65E0\u53EF\u7528\u5B58\u50A8\u6E90\uFF0C\u662F\u5426\u8DF3\u8F6C\u81F3\u7BA1\u7406\u5458\u9875\u9762\u6DFB\u52A0\u5B58\u50A8\u6E90\uFF1F","\u63D0\u793A",{confirmButtonText:"\u786E\u5B9A",cancelButtonText:"\u53D6\u6D88",type:"info",callback:_=>{_==="confirm"&&e.push("/login")}});return}u(l),c(s)})});const u=c=>{a.value?p(a.value)?ye.value=a.value:w():c?Oe.updateFileList(d.value):w(),i()},d=y(()=>{let c=[];return me.value.forEach(s=>{c.push({name:s.name,path:s.key,size:0,time:"-",type:"ROOT"})}),c}),i=()=>{me.value.some(c=>{c.key===ye.value&&Oe.updateCurrentStorageSource(c)})};ot||(q(()=>ye.value,(c,s)=>{Oe.updateOldStorageKey(s),(c&&!r.params.fullpath||s!==void 0)&&(e.push("/"+c),i())}),q(()=>r.params.storageKey,c=>{u(!0)}));const w=()=>{let c=me.value[0].key;ye.value=c,e.push("/"+c)},p=c=>me.value.find(s=>{if(s.key==c)return s});return ot=!0,{loadStorageSourceList:o,storageList:me,findStorageByKey:p,storageKey:a,currentStorageKey:ye}}const te=e=>(Ht("data-v-1b79e9b8"),e=e(),jt(),e),Wl={class:"zfile-index-setting-drawer"},ql={class:"zfile-index-setting-drawer-body"},Gl={key:0,class:"zfile-index-setting-drawer-group"},Jl=te(()=>v("div",{class:"zfile-index-setting-drawer-title"},"\u5B58\u50A8\u6E90",-1)),Ql={class:"w-full"},Dl={class:"zfile-index-setting-drawer-group"},Zl=te(()=>v("div",{class:"zfile-index-setting-drawer-title"},"\u89C6\u56FE",-1)),ea={class:"zfile-index-setting-drawer-blockCheckbox"},ta={class:"zfile-index-setting-drawer-item current"},ra={class:"zfile-index-setting-drawer-item"},la={class:"px-2.5"},aa={class:"zfile-index-setting-drawer-group"},na=te(()=>v("div",{class:"zfile-index-setting-drawer-title"},"\u753B\u5ECA",-1)),oa=te(()=>v("div",{class:"text-gray-400 text-sm"},"\u5982\u5DF2\u5904\u4E8E\u753B\u5ECA\u6A21\u5F0F\uFF0C\u9700\u91CD\u65B0\u542F\u7528\u753B\u5ECA\u6A21\u5F0F\u751F\u6548.",-1)),ia={class:"flex justify-between"},sa=te(()=>v("div",{class:"text-lg font-medium"},"\u56FE\u7247\u5217\u6570",-1)),da={class:"flex justify-between"},ua=te(()=>v("div",{class:"text-lg font-medium"},"\u5217\u95F4\u8DDD",-1)),ca={class:"flex justify-between"},ma=te(()=>v("div",{class:"text-lg font-medium"},"\u884C\u95F4\u8DDD",-1)),fa={class:"flex justify-between"},pa=te(()=>v("div",{class:"text-lg font-medium"},"\u56FE\u7247\u662F\u5426\u5E26\u5706\u89D2\u8FB9\u6846",-1)),ba={class:"flex justify-between"},ga=te(()=>v("div",{class:"text-lg font-medium"},"\u663E\u793A\u540D\u79F0",-1)),va={class:"flex justify-between"},ha=te(()=>v("div",{class:"text-lg font-medium"},"\u540D\u79F0\u663E\u793A\u6A21\u5F0F",-1)),_a={class:"flex justify-between"},wa=te(()=>v("div",{class:"text-lg font-medium"},"\u53CC\u51FB\u9884\u89C8\u6A21\u5F0F",-1)),ya=te(()=>v("div",{class:"text-gray-400 text-sm mt-10"}," Tips: \u8BBE\u7F6E\u4F1A\u81EA\u52A8\u4FDD\u5B58\uFF0C\u5237\u65B0\u540E\u4ECD\u6709\u6548. ",-1)),xa={__name:"Setting",setup(e){const{visible:r,zfileSettingCache:l}=Nt();let a=Yt(),o=ve();const u=Fe({1:"\u5C0F",2:"\u4E2D",3:"\u5927"}),d={1:"small",2:"default",3:"large"};q(()=>l.value,_=>{var h,N;a.zfileConfig.gallery.column=_.gallery.column,a.zfileConfig.gallery.columnSpacing=_.gallery.columnSpacing,a.zfileConfig.gallery.rowSpacing=_.gallery.rowSpacing,a.zfileConfig.gallery.showInfo=_.gallery.showInfo,a.zfileConfig.gallery.showInfoMode=_.gallery.showInfoMode,a.zfileConfig.gallery.roundedBorder=_.gallery.roundedBorder,(h=_==null?void 0:_.view)!=null&&h.size&&(o.config.tableSize=d[_.view.size]),o.config.tableSize||(o.config.tableSize="defualt"),(N=_==null?void 0:_.imagePreview)!=null&&N.mode&&(a.zfileConfig.imagePreview.mode=_.imagePreview.mode)},{immediate:!0,deep:!0});let i=We(),w=mt();const{isMobile:p}=wt(),{currentStorageKey:c,storageList:s}=De(i,w);return(_,h)=>{const N=ht,Y=_t,X=vt,K=qe,T=Yl,H=It,g=br,C=il;return m(),V("div",Wl,[f(C,{modelValue:t(r),"onUpdate:modelValue":h[9]||(h[9]=S=>Me(r)?r.value=S:null),title:"\u4E2A\u4EBA\u8BBE\u7F6E","custom-class":"text-left","with-header":!1,direction:"rtl"},{default:z(()=>[v("div",ql,[t(p)?(m(),V("div",Gl,[Jl,v("div",Ql,[f(Y,{size:"large",class:"w-full",modelValue:t(c),"onUpdate:modelValue":h[0]||(h[0]=S=>Me(c)?c.value=S:null),placeholder:"\u8BF7\u9009\u62E9\u5B58\u50A8\u6E90"},{default:z(()=>[(m(!0),V(de,null,be(t(s),S=>(m(),U(N,{key:S.key,label:S.name,value:S.key},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])])])):O("",!0),v("div",Dl,[Zl,v("div",ea,[f(K,{effect:"dark",content:"\u5217\u8868\u6A21\u5F0F",placement:"bottom"},{default:z(()=>[v("div",ta,[f(X,{name:"table-layout"})])]),_:1}),f(K,{effect:"dark",content:"\u56FE\u6807\u6A21\u5F0F\uFF08\u6682\u672A\u5B9E\u73B0\uFF09",placement:"bottom"},{default:z(()=>[v("div",ra,[f(X,{name:"card-layout"})])]),_:1})]),v("div",la,[f(T,{size:"large","show-tooltip":!1,marks:u,modelValue:t(l).view.size,"onUpdate:modelValue":h[1]||(h[1]=S=>t(l).view.size=S),step:1,min:1,max:3,"show-stops":""},null,8,["marks","modelValue"])])]),v("div",aa,[na,oa,v("div",ia,[sa,f(H,{modelValue:t(l).gallery.column,"onUpdate:modelValue":h[2]||(h[2]=S=>t(l).gallery.column=S),min:1},null,8,["modelValue"])]),v("div",da,[ua,f(H,{modelValue:t(l).gallery.columnSpacing,"onUpdate:modelValue":h[3]||(h[3]=S=>t(l).gallery.columnSpacing=S),min:0},null,8,["modelValue"])]),v("div",ca,[ma,f(H,{modelValue:t(l).gallery.rowSpacing,"onUpdate:modelValue":h[4]||(h[4]=S=>t(l).gallery.rowSpacing=S),min:0},null,8,["modelValue"])]),v("div",fa,[pa,f(g,{modelValue:t(l).gallery.roundedBorder,"onUpdate:modelValue":h[5]||(h[5]=S=>t(l).gallery.roundedBorder=S)},null,8,["modelValue"])]),v("div",ba,[ga,f(g,{modelValue:t(l).gallery.showInfo,"onUpdate:modelValue":h[6]||(h[6]=S=>t(l).gallery.showInfo=S)},null,8,["modelValue"])]),v("div",va,[ha,f(Y,{class:"w-[150px]",modelValue:t(l).gallery.showInfoMode,"onUpdate:modelValue":h[7]||(h[7]=S=>t(l).gallery.showInfoMode=S)},{default:z(()=>[f(N,{label:"\u60AC\u6D6E\u663E\u793A",value:"hover"}),f(N,{label:"\u5E95\u90E8\u663E\u793A",value:"bottom"})]),_:1},8,["modelValue"])]),v("div",_a,[wa,f(Y,{class:"w-[150px]",modelValue:t(l).imagePreview.mode,"onUpdate:modelValue":h[8]||(h[8]=S=>t(l).imagePreview.mode=S)},{default:z(()=>[f(N,{label:"\u663E\u793A\u5168\u90E8",value:"full"}),f(N,{label:"\u663E\u793A\u5355\u5F20",value:"only"})]),_:1},8,["modelValue"])])]),ya])]),_:1},8,["modelValue"])])}}};var ka=Xe(xa,[["__scopeId","data-v-1b79e9b8"]]);const Sa={"data-v-280b1501":"",xmlns:"http://www.w3.org/2000/svg",width:"20px",height:"20px",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"feather feather-settings"},za=v("circle",{"data-v-280b1501":"",cx:"12",cy:"12",r:"3"},null,-1),Va=v("path",{"data-v-280b1501":"",d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"},null,-1),Ca=[za,Va];function Ea(e,r){return m(),V("svg",Sa,Ca)}var Ia={name:"custom-tool-setting",render:Ea};function Ba(){return{resetAdminPwd:()=>{yt.confirm("\u662F\u5426\u786E\u8BA4\u91CD\u7F6E\u540E\u53F0\u7BA1\u7406\u5458\u5BC6\u7801\uFF1F\u91CD\u7F6E\u540E\u7528\u6237\u540D/\u5BC6\u7801\u5C06\u5F3A\u5236\u4FEE\u6539\u4E3A admin 123456","\u63D0\u793A",{confirmButtonText:"\u786E\u5B9A",cancelButtonText:"\u53D6\u6D88",type:"warning",callback:r=>{r==="confirm"&&Hl().then(l=>{l.code===0&&pt.success("\u91CD\u7F6E\u6210\u529F\uFF0C\u8BF7\u53CA\u65F6\u5173\u95ED debug \u529F\u80FD\uFF0C\u9632\u6B62\u51FA\u73B0\u5B89\u5168\u95EE\u9898\uFF01")})}})}}}let Pt=Ge(),Ke=j(!1);q(()=>Ke.value,()=>{Pt.switchImgMode(Ke.value)});q(()=>Pt.newImgMode,e=>{Ke.value=e});function $a(){return{imgModel:Ke}}let Na=ve(),Be=j([]),it=!1;function Pa(e,r){let l=Na.config.rootShowStorage,a=y(()=>r.params.storageKey),o=()=>{if(Be.value=[],l){let{findStorageByKey:d}=De(e,r),i=d(a.value);i&&Be.value.push({name:i.name,fullPath:"/"+i.key})}r.params.fullpath&&r.params.fullpath.forEach((d,i,w)=>{let p={name:d,fullPath:gr("/"+a.value+"/"+w.slice(0,i+1).join("/"))};Be.value.push(p)})},u=y(()=>"/"+(l?"":a.value));return it||(q(()=>r.params.fullpath,()=>{o()}),q(()=>r.params.storageKey,d=>{o()})),it=!0,{rootPath:u,breadcrumbData:Be,buildBreadcrumbData:o}}let Ma=Ge(),st,dt=j();function Ta(){return q(()=>dt.value,e=>{clearTimeout(st),st=setTimeout(()=>{Ma.updateSearchParam(e)},150)}),{search:dt}}const La={class:"zfile-header"},Ka={class:"zfile-header-breadcrumb box animate__animated animate__fadeIn"},Aa=ue(ge("\u9996\u9875")),Fa={class:"zfile-header-right box animate__animated animate__fadeIn"},Ra={key:0,class:"zfile-header-btn"},Ua=ue(" \u6B64\u529F\u80FD\u4E3A DEBUG \u6A21\u5F0F\u4E0B\u91CD\u7F6E\u7BA1\u7406\u5458\u5BC6\u7801\u529F\u80FD, \u4F7F\u7528\u5B8C\u540E\u8BF7\u5173\u95ED DEBUG \u6A21\u5F0F\u5E76\u91CD\u542F\u670D\u52A1. "),Oa=ue(" \u91CD\u7F6E\u7BA1\u7406\u5458\u5BC6\u7801 "),Ya=ue(" \u767B\u9646\u540E\u53F0 "),Ha=ue(" \u65B0\u5EFA\u6587\u4EF6\u5939 "),ja=ue(" \u4E0A\u4F20\u6587\u4EF6 "),Xa=ue(" \u4E0A\u4F20\u6587\u4EF6\u5939 "),Wa={key:1,class:"zfile-header-storage-select"},qa={__name:"Header",setup(e){let r=We(),l=mt();const{resetAdminPwd:a}=Ba(),{imgModel:o}=$a(),{loadStorageSourceList:u,currentStorageKey:d,storageList:i}=De(r,l),{buildBreadcrumbData:w,rootPath:p,breadcrumbData:c}=Pa(r,l);let s=ve();Ae(()=>{u().then(()=>{w()})}),Ta(),q(()=>l.params.storageKey,g=>{g===void 0&&(d.value="")}),q(()=>[l.params.storageKey,l.params.fullpath],()=>{o.value=!1});const{newFolder:_}=vr(r,l),{openUploadDialog:h,openUploadFolderDialog:N}=hr(r,l),{openSettingVisible:Y}=Nt(),{isNotMobile:X}=wt();let{storageConfig:K,initStorageConfig:T}=_r(r,l);ur(()=>K.value.defaultSwitchToImgMode,g=>{g===!0&&(o.value=g)});const H=()=>{window.location.href="/login"};if(s.config.customCss&&Jt(s.config.customCss),s.config.customJs){let g=document.createElement("script");g.type="text/javascript",g.text=s.config.customJs,document.getElementsByTagName("head")[0].appendChild(g)}return(g,C)=>{const S=Lr,ae=Tr,ne=Cr,J=cr,Q=qe,x=vt,M=Sr,n=zr,b=Vr,I=Ia,P=ht,L=_t,R=ka;return m(),V(de,null,[v("div",La,[f(ne,null,{default:z(()=>[v("div",Ka,[f(ae,{separator:"/","separator-class":"ArrowRight"},{default:z(()=>[f(S,{to:t(p)},{default:z(()=>[Aa]),_:1},8,["to"]),(m(!0),V(de,null,be(t(c),B=>(m(),U(S,{to:{path:B.fullPath},key:B.fullPath,class:"hidden-xs-only"},{default:z(()=>[ue(ge(B.name),1)]),_:2},1032,["to"]))),128))]),_:1})])]),_:1}),v("div",Fa,[t(T)?(m(),V("div",Ra,[f(Q,{placement:"bottom"},{content:z(()=>[Ua]),default:z(()=>[t(s).config.debugMode?(m(),U(J,{key:0,onClick:t(a),type:"danger"},{default:z(()=>[Oa]),_:1},8,["onClick"])):O("",!0)]),_:1}),f(Q,{placement:"bottom"},{content:z(()=>[Ya]),default:z(()=>[t(s).config.showLogin?(m(),V("div",{key:0,onClick:H},[f(x,{class:"text-2xl text-gray-500 hover:text-blue-500",name:"login"})])):O("",!0)]),_:1}),t(K).enableFileOperator!==!1?(m(),U(b,{key:0,trigger:"click","popper-class":"zfile-header-dropdown"},{dropdown:z(()=>[f(n,{class:"font-medium"},{default:z(()=>[f(M,{onClick:t(_)},{default:z(()=>[f(x,{class:"text-[17px] mr-3",name:"add-folder"}),Ha]),_:1},8,["onClick"]),f(M,{onClick:t(h),divided:""},{default:z(()=>[f(x,{class:"text-[17px] mr-3",name:"upload"}),ja]),_:1},8,["onClick"]),f(M,{onClick:t(N)},{default:z(()=>[f(x,{class:"text-[17px] mr-3",name:"upload-folder"}),Xa]),_:1},8,["onClick"])]),_:1})]),default:z(()=>[Se(v("div",null,[f(x,{class:"text-2xl text-gray-500 hover:text-blue-500",name:"add"})],512),[[Ye,t(l).params.storageKey]])]),_:1})):O("",!0),Se(v("div",{onClick:C[0]||(C[0]=B=>o.value=!t(o))},[t(o)?(m(),U(x,{key:0,class:"text-4xl",name:"img-enable"})):(m(),U(x,{key:1,class:"text-4xl",name:"img-disable"}))],512),[[Ye,t(l).params.storageKey]]),v("div",{onClick:C[1]||(C[1]=(...B)=>t(Y)&&t(Y)(...B))},[f(I)])])):O("",!0),t(X)?(m(),V("div",Wa,[f(L,{size:"default",modelValue:t(d),"onUpdate:modelValue":C[2]||(C[2]=B=>Me(d)?d.value=B:null),placeholder:"\u8BF7\u9009\u62E9\u5B58\u50A8\u6E90"},{default:z(()=>[(m(!0),V(de,null,be(t(i),B=>(m(),U(P,{key:B.key,label:B.name,value:B.key},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])])):O("",!0)])]),f(R)],64)}}};var Ga=Xe(qa,[["__scopeId","data-v-25af4f91"]]);const Ja={target:"_blank",class:"text-gray-500",href:"https://beian.miit.gov.cn/"},Qa={__name:"Footer",setup(e){let r=ve();return(l,a)=>{var o;return m(),V("div",null,[v("a",Ja,ge((o=t(r).config)==null?void 0:o.icp),1)])}}};const Da={__name:"file",setup(e){let r=ve();Xt(()=>{o()});let l=We(),a=j(!1);const o=()=>{wr().then(i=>{if(!i.data.installed){l.push("/install");return}r.updateConfig(i.data),i.data.customAudioSuffix&&(Ie.constant.fileTypeMap.audio=i.data.customAudioSuffix.split(",")),i.data.customImageSuffix&&(Ie.constant.fileTypeMap.image=i.data.customImageSuffix.split(",")),i.data.customTextSuffix&&(Ie.constant.fileTypeMap.text=i.data.customTextSuffix.split(",")),i.data.customVideoSuffix&&(Ie.constant.fileTypeMap.video=i.data.customVideoSuffix.split(",")),a.value=!0}).catch(i=>{i.message==="Network Error"&&pt.error("\u52A0\u8F7D\u5931\u8D25\uFF0C\u65E0\u6CD5\u8FDE\u63A5\u5230\u670D\u52A1\u7AEF\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458.")})},u=et("Meta"),d=et("Control");return y(()=>u.value||d.value),Qt(),(i,w)=>{const p=Jr,c=xe("router-view"),s=Qr,_=Gr,h=qr;return t(a)?(m(),U(h,{key:0},{default:z(()=>[f(p,null,{default:z(()=>[(m(),U(Wt,null,{default:z(()=>[f(Ga)]),_:1}))]),_:1}),f(s,null,{default:z(()=>[f(c)]),_:1}),f(_,null,{default:z(()=>[f(Qa)]),_:1})]),_:1})):O("",!0)}}};var Nn=Xe(Da,[["__scopeId","data-v-c71da65a"]]);export{Nn as default}; diff --git a/src/main/resources/static/assets/file.733502d9.css b/src/main/resources/static/assets/file.733502d9.css new file mode 100644 index 0000000..6ff6aaf --- /dev/null +++ b/src/main/resources/static/assets/file.733502d9.css @@ -0,0 +1 @@ +.el-container{display:flex;flex-direction:row;flex:1;flex-basis:auto;box-sizing:border-box;min-width:0}.el-container.is-vertical{flex-direction:column}.el-aside{overflow:auto;box-sizing:border-box;flex-shrink:0;width:var(--el-aside-width, 300px)}.el-footer{--el-footer-padding: 0 20px;--el-footer-height: 60px;padding:var(--el-footer-padding);box-sizing:border-box;flex-shrink:0;height:var(--el-footer-height)}.el-header{--el-header-padding: 0 20px;--el-header-height: 60px;padding:var(--el-header-padding);box-sizing:border-box;flex-shrink:0;height:var(--el-header-height)}.el-main{--el-main-padding: 20px;display:block;flex:1;flex-basis:auto;overflow:auto;box-sizing:border-box;padding:var(--el-main-padding)}.el-drawer{--el-drawer-bg-color: var(--el-dialog-bg-color, var(--el-bg-color));--el-drawer-padding-primary: var(--el-dialog-padding-primary, 20px);position:absolute;box-sizing:border-box;background-color:var(--el-drawer-bg-color);display:flex;flex-direction:column;box-shadow:var(--el-box-shadow-dark);overflow:hidden;transition:all var(--el-transition-duration)}.el-drawer .rtl,.el-drawer .ltr,.el-drawer .ttb,.el-drawer .btt{transform:translate(0)}.el-drawer__sr-focus:focus{outline:none!important}.el-drawer__header{align-items:center;color:#72767b;display:flex;margin-bottom:32px;padding:var(--el-drawer-padding-primary);padding-bottom:0}.el-drawer__header>:first-child{flex:1}.el-drawer__title{margin:0;flex:1;line-height:inherit;font-size:1rem}.el-drawer__footer{padding:var(--el-drawer-padding-primary);padding-top:10px;text-align:right}.el-drawer__close-btn{border:none;cursor:pointer;font-size:var(--el-font-size-extra-large);color:inherit;background-color:transparent;outline:none}.el-drawer__close-btn:focus i,.el-drawer__close-btn:hover i{color:var(--el-color-primary)}.el-drawer__close-btn .el-icon{font-size:inherit;vertical-align:text-bottom}.el-drawer__body{flex:1;padding:var(--el-drawer-padding-primary);overflow:auto}.el-drawer__body>*{box-sizing:border-box}.el-drawer.ltr,.el-drawer.rtl{height:100%;top:0;bottom:0}.el-drawer.ttb,.el-drawer.btt{width:100%;left:0;right:0}.el-drawer.ltr{left:0}.el-drawer.rtl{right:0}.el-drawer.ttb{top:0}.el-drawer.btt{bottom:0}.el-drawer-fade-enter-active,.el-drawer-fade-leave-active{transition:all var(--el-transition-duration)}.el-drawer-fade-enter-from,.el-drawer-fade-enter-active,.el-drawer-fade-enter-to,.el-drawer-fade-leave-from,.el-drawer-fade-leave-active,.el-drawer-fade-leave-to{overflow:hidden!important}.el-drawer-fade-enter-from,.el-drawer-fade-leave-to{opacity:0}.el-drawer-fade-enter-to,.el-drawer-fade-leave-from{opacity:1}.el-drawer-fade-enter-from .rtl,.el-drawer-fade-leave-to .rtl{transform:translate(100%)}.el-drawer-fade-enter-from .ltr,.el-drawer-fade-leave-to .ltr{transform:translate(-100%)}.el-drawer-fade-enter-from .ttb,.el-drawer-fade-leave-to .ttb{transform:translateY(-100%)}.el-drawer-fade-enter-from .btt,.el-drawer-fade-leave-to .btt{transform:translateY(100%)}.el-input-number{position:relative;display:inline-block;width:150px;line-height:30px}.el-input-number .el-input__wrapper{padding-left:42px;padding-right:42px}.el-input-number .el-input__inner{-webkit-appearance:none;-moz-appearance:textfield;text-align:center;line-height:1}.el-input-number .el-input__inner::-webkit-inner-spin-button,.el-input-number .el-input__inner::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.el-input-number__increase,.el-input-number__decrease{display:flex;justify-content:center;align-items:center;height:auto;position:absolute;z-index:1;top:1px;bottom:1px;width:32px;background:var(--el-fill-color-light);color:var(--el-text-color-regular);cursor:pointer;font-size:13px;-webkit-user-select:none;user-select:none}.el-input-number__increase:hover,.el-input-number__decrease:hover{color:var(--el-color-primary)}.el-input-number__increase:hover~.el-input:not(.is-disabled) .el-input_wrapper,.el-input-number__decrease:hover~.el-input:not(.is-disabled) .el-input_wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color, var(--el-color-primary)) inset}.el-input-number__increase.is-disabled,.el-input-number__decrease.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-input-number__increase{right:1px;border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0;border-left:var(--el-border)}.el-input-number__decrease{left:1px;border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);border-right:var(--el-border)}.el-input-number.is-disabled .el-input-number__increase,.el-input-number.is-disabled .el-input-number__decrease{border-color:var(--el-disabled-border-color);color:var(--el-disabled-border-color)}.el-input-number.is-disabled .el-input-number__increase:hover,.el-input-number.is-disabled .el-input-number__decrease:hover{color:var(--el-disabled-border-color);cursor:not-allowed}.el-input-number--large{width:180px;line-height:38px}.el-input-number--large .el-input-number__increase,.el-input-number--large .el-input-number__decrease{width:40px;font-size:14px}.el-input-number--large .el-input__wrapper{padding-left:47px;padding-right:47px}.el-input-number--small{width:120px;line-height:22px}.el-input-number--small .el-input-number__increase,.el-input-number--small .el-input-number__decrease{width:24px;font-size:12px}.el-input-number--small .el-input__wrapper{padding-left:31px;padding-right:31px}.el-input-number--small .el-input-number__increase [class*=el-icon],.el-input-number--small .el-input-number__decrease [class*=el-icon]{transform:scale(.9)}.el-input-number.is-without-controls .el-input__wrapper{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__wrapper{padding-left:15px;padding-right:42px}.el-input-number.is-controls-right .el-input-number__increase,.el-input-number.is-controls-right .el-input-number__decrease{--el-input-number-controls-height: 15px;height:var(--el-input-number-controls-height);line-height:var(--el-input-number-controls-height)}.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon],.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{bottom:auto;left:auto;border-radius:0 var(--el-border-radius-base) 0 0;border-bottom:var(--el-border)}.el-input-number.is-controls-right .el-input-number__decrease{right:1px;top:auto;left:auto;border-right:none;border-left:var(--el-border);border-radius:0 0 var(--el-border-radius-base) 0}.el-input-number.is-controls-right[class*=large] [class*=increase],.el-input-number.is-controls-right[class*=large] [class*=decrease]{--el-input-number-controls-height: 19px}.el-input-number.is-controls-right[class*=small] [class*=increase],.el-input-number.is-controls-right[class*=small] [class*=decrease]{--el-input-number-controls-height: 11px}.el-slider{--el-slider-main-bg-color: var(--el-color-primary);--el-slider-runway-bg-color: var(--el-border-color-light);--el-slider-stop-bg-color: var(--el-color-white);--el-slider-disabled-color: var(--el-text-color-placeholder);--el-slider-border-radius: 3px;--el-slider-height: 6px;--el-slider-button-size: 20px;--el-slider-button-wrapper-size: 36px;--el-slider-button-wrapper-offset: -15px;width:100%;height:32px;display:flex;align-items:center}.el-slider__runway{flex:1;height:var(--el-slider-height);background-color:var(--el-slider-runway-bg-color);border-radius:var(--el-slider-border-radius);position:relative;cursor:pointer}.el-slider__runway.show-input{margin-right:30px;width:auto}.el-slider__runway.is-disabled{cursor:default}.el-slider__runway.is-disabled .el-slider__bar{background-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button{border-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button-wrapper:hover,.el-slider__runway.is-disabled .el-slider__button-wrapper.hover,.el-slider__runway.is-disabled .el-slider__button-wrapper.dragging{cursor:not-allowed}.el-slider__runway.is-disabled .el-slider__button:hover,.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button.dragging{transform:scale(1)}.el-slider__runway.is-disabled .el-slider__button:hover,.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button.dragging{cursor:not-allowed}.el-slider__input{flex-shrink:0;width:130px}.el-slider__bar{height:var(--el-slider-height);background-color:var(--el-slider-main-bg-color);border-top-left-radius:var(--el-slider-border-radius);border-bottom-left-radius:var(--el-slider-border-radius);position:absolute}.el-slider__button-wrapper{height:var(--el-slider-button-wrapper-size);width:var(--el-slider-button-wrapper-size);position:absolute;z-index:1;top:var(--el-slider-button-wrapper-offset);transform:translate(-50%);background-color:transparent;text-align:center;-webkit-user-select:none;user-select:none;line-height:normal;outline:none}.el-slider__button-wrapper:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-slider__button-wrapper:hover,.el-slider__button-wrapper.hover{cursor:grab}.el-slider__button-wrapper.dragging{cursor:grabbing}.el-slider__button{display:inline-block;width:var(--el-slider-button-size);height:var(--el-slider-button-size);vertical-align:middle;border:solid 2px var(--el-slider-main-bg-color);background-color:var(--el-color-white);border-radius:50%;box-sizing:border-box;transition:var(--el-transition-duration-fast);-webkit-user-select:none;user-select:none}.el-slider__button:hover,.el-slider__button.hover,.el-slider__button.dragging{transform:scale(1.2)}.el-slider__button:hover,.el-slider__button.hover{cursor:grab}.el-slider__button.dragging{cursor:grabbing}.el-slider__stop{position:absolute;height:var(--el-slider-height);width:var(--el-slider-height);border-radius:var(--el-border-radius-circle);background-color:var(--el-slider-stop-bg-color);transform:translate(-50%)}.el-slider__marks{top:0;left:12px;width:18px;height:100%}.el-slider__marks-text{position:absolute;transform:translate(-50%);font-size:14px;color:var(--el-color-info);margin-top:15px}.el-slider.is-vertical{position:relative;height:100%;flex:0}.el-slider.is-vertical .el-slider__runway{width:var(--el-slider-height);height:100%;margin:0 16px}.el-slider.is-vertical .el-slider__bar{width:var(--el-slider-height);height:auto;border-radius:0 0 3px 3px}.el-slider.is-vertical .el-slider__button-wrapper{top:auto;left:var(--el-slider-button-wrapper-offset);transform:translateY(50%)}.el-slider.is-vertical .el-slider__stop{transform:translateY(50%)}.el-slider.is-vertical .el-slider__marks-text{margin-top:0;left:15px;transform:translateY(50%)}.el-slider--large{height:40px}.el-slider--small{height:24px}.zfile-index-setting-drawer[data-v-1b79e9b8] .el-drawer{width:90%!important}@media (min-width: 640px){.zfile-index-setting-drawer[data-v-1b79e9b8] .el-drawer{width:50%!important}}@media (min-width: 768px){.zfile-index-setting-drawer[data-v-1b79e9b8] .el-drawer{width:41.666667%!important}}@media (min-width: 1024px){.zfile-index-setting-drawer[data-v-1b79e9b8] .el-drawer{width:33.333333%!important}}@media (min-width: 1280px){.zfile-index-setting-drawer[data-v-1b79e9b8] .el-drawer{width:25%!important}}.zfile-index-setting-drawer .zfile-index-setting-drawer-body[data-v-1b79e9b8]>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(4rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(4rem * var(--tw-space-y-reverse))}.zfile-index-setting-drawer .zfile-index-setting-drawer-body[data-v-1b79e9b8]{padding-left:.375rem;padding-right:.375rem}.zfile-index-setting-drawer .zfile-index-setting-drawer-body .zfile-index-setting-drawer-group[data-v-1b79e9b8]>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.zfile-index-setting-drawer .zfile-index-setting-drawer-body .zfile-index-setting-drawer-group[data-v-1b79e9b8]:first-child>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.zfile-index-setting-drawer .zfile-index-setting-drawer-body .zfile-index-setting-drawer-group .zfile-index-setting-drawer-title[data-v-1b79e9b8]{font-size:1.5rem;line-height:2rem;font-weight:500;--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.zfile-index-setting-drawer .zfile-index-setting-drawer-body .zfile-index-setting-drawer-group .zfile-index-setting-drawer-blockCheckbox[data-v-1b79e9b8]{display:flex}.zfile-index-setting-drawer .zfile-index-setting-drawer-body .zfile-index-setting-drawer-group .zfile-index-setting-drawer-blockCheckbox[data-v-1b79e9b8]>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1.5rem * var(--tw-space-x-reverse));margin-left:calc(1.5rem * calc(1 - var(--tw-space-x-reverse)))}.zfile-index-setting-drawer .zfile-index-setting-drawer-body .zfile-index-setting-drawer-group .zfile-index-setting-drawer-blockCheckbox .zfile-index-setting-drawer-item[data-v-1b79e9b8]{cursor:pointer;border-radius:.5rem}.zfile-index-setting-drawer .zfile-index-setting-drawer-body .zfile-index-setting-drawer-group .zfile-index-setting-drawer-blockCheckbox .zfile-index-setting-drawer-item[data-v-1b79e9b8]:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.zfile-index-setting-drawer .zfile-index-setting-drawer-body .zfile-index-setting-drawer-group .zfile-index-setting-drawer-blockCheckbox .zfile-index-setting-drawer-item svg[data-v-1b79e9b8]{height:3rem;width:3rem;padding:.75rem}.zfile-index-setting-drawer .zfile-index-setting-drawer-body .zfile-index-setting-drawer-group .zfile-index-setting-drawer-blockCheckbox .zfile-index-setting-drawer-item.current[data-v-1b79e9b8]{border-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}.zfile-index-setting-drawer .zfile-index-setting-drawer-body .zfile-index-setting-drawer-group .zfile-index-setting-drawer-blockCheckbox .zfile-index-setting-drawer-item.current svg[data-v-1b79e9b8]{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity))}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb:before,.el-breadcrumb:after{display:table;content:""}.el-breadcrumb:after{clear:both}.el-breadcrumb__separator{margin:0 9px;font-weight:700;color:var(--el-text-color-placeholder)}.el-breadcrumb__separator.el-icon{margin:0 6px;font-weight:400}.el-breadcrumb__separator.el-icon svg{vertical-align:middle}.el-breadcrumb__item{float:left;display:flex;align-items:center}.el-breadcrumb__inner{color:var(--el-text-color-regular)}.el-breadcrumb__inner.is-link,.el-breadcrumb__inner a{font-weight:700;text-decoration:none;transition:var(--el-transition-color);color:var(--el-text-color-primary)}.el-breadcrumb__inner.is-link:hover,.el-breadcrumb__inner a:hover{color:var(--el-color-primary);cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover{font-weight:400;color:var(--el-text-color-regular);cursor:text}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.zfile-header[data-v-25af4f91]{display:flex;flex-flow:row nowrap;justify-content:space-between;height:48px;line-height:48px!important;padding:0 15px;background-color:#fff;color:#606266;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration);border-bottom:1px solid rgba(132,133,141,.2)}.zfile-header[data-v-25af4f91]>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(5rem * var(--tw-space-x-reverse));margin-left:calc(5rem * calc(1 - var(--tw-space-x-reverse)))}.zfile-header .el-scrollbar[data-v-25af4f91]{max-width:40%}@media (min-width: 768px){.zfile-header .el-scrollbar[data-v-25af4f91]{max-width:50%}}@media (min-width: 1024px){.zfile-header .el-scrollbar[data-v-25af4f91]{max-width:60%}}@media (min-width: 1280px){.zfile-header .el-scrollbar[data-v-25af4f91]{max-width:70%}}.zfile-header .el-scrollbar[data-v-25af4f91] .el-scrollbar__bar.is-vertical{display:none!important}.zfile-header .zfile-header-breadcrumb[data-v-25af4f91] .el-breadcrumb{line-height:48px;font-size:13px;white-space:nowrap;margin-left:14px}.zfile-header .zfile-header-breadcrumb[data-v-25af4f91] .el-breadcrumb .el-breadcrumb__item{display:inline;float:none}.zfile-header .zfile-header-right[data-v-25af4f91]{display:flex}.zfile-header .zfile-header-right[data-v-25af4f91]>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(2.5rem * var(--tw-space-x-reverse));margin-left:calc(2.5rem * calc(1 - var(--tw-space-x-reverse)))}.zfile-header .zfile-header-right .zfile-header-btn[data-v-25af4f91]{display:flex;align-items:center}.zfile-header .zfile-header-right .zfile-header-btn[data-v-25af4f91]>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(2.5rem * var(--tw-space-x-reverse));margin-left:calc(2.5rem * calc(1 - var(--tw-space-x-reverse)))}.zfile-header .zfile-header-right .zfile-header-btn[data-v-25af4f91]{font-size:2.25rem;line-height:2.5rem}.zfile-header .zfile-header-right .zfile-header-btn div[data-v-25af4f91]{height:1.25rem!important;cursor:pointer!important}.zfile-header .zfile-header-right .zfile-header-storage-select[data-v-25af4f91]{margin-right:1rem}@media only screen and (max-width: 767px){.zfile-header[data-v-25af4f91] .el-breadcrumb__separator,.zfile-header[data-v-25af4f91] .el-form-item__label{display:none!important}.zfile-header[data-v-25af4f91] .el-select{width:120px}}.zfile-debug-tips[data-v-25af4f91] .el-form-item__label{font-weight:700;color:red!important}.zfile-header-dropdown .el-dropdown-menu__item:hover,.zfile-header-dropdown .el-dropdown-menu__item:hover svg{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity))}.el-container[data-v-c71da65a]{height:100%;width:100%}.el-container .el-header[data-v-c71da65a],.el-container .el-footer[data-v-c71da65a]{color:var(--el-text-color-primary);padding:0;text-align:center}.el-container .el-header[data-v-c71da65a]{--el-header-height: unset;height:48px;line-height:48px!important}.el-container .el-main[data-v-c71da65a]{height:100%;width:100%;padding:0;overflow-x:hidden}.el-container .el-footer[data-v-c71da65a]{border-top:var(--zfile-header-footer-border-top);height:40px;line-height:40px;font-size:14px} diff --git a/src/main/resources/static/assets/file.8ce7ebe5.css b/src/main/resources/static/assets/file.8ce7ebe5.css new file mode 100644 index 0000000..9050c6c --- /dev/null +++ b/src/main/resources/static/assets/file.8ce7ebe5.css @@ -0,0 +1 @@ +@charset "UTF-8";.el-progress{position:relative;line-height:1;display:flex;align-items:center}.el-progress__text{font-size:14px;color:var(--el-text-color-regular);margin-left:5px;min-width:50px;line-height:1}.el-progress__text i{vertical-align:middle;display:block}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;transform:translateY(-50%)}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{vertical-align:middle;display:inline-block}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{padding-right:0;margin-right:0;display:block}.el-progress--text-inside .el-progress-bar{padding-right:0;margin-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:var(--el-color-success)}.el-progress.is-success .el-progress__text{color:var(--el-color-success)}.el-progress.is-warning .el-progress-bar__inner{background-color:var(--el-color-warning)}.el-progress.is-warning .el-progress__text{color:var(--el-color-warning)}.el-progress.is-exception .el-progress-bar__inner{background-color:var(--el-color-danger)}.el-progress.is-exception .el-progress__text{color:var(--el-color-danger)}.el-progress-bar{flex-grow:1;box-sizing:border-box}.el-progress-bar__outer{height:6px;border-radius:100px;background-color:var(--el-border-color-lighter);overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:var(--el-color-primary);text-align:right;border-radius:100px;line-height:1;white-space:nowrap;transition:width .6s ease}.el-progress-bar__inner:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-progress-bar__inner--indeterminate{transform:translateZ(0);animation:indeterminate 3s infinite}.el-progress-bar__innerText{display:inline-block;vertical-align:middle;color:#fff;font-size:12px;margin:0 5px}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}@keyframes indeterminate{0%{left:-100%}to{left:100%}}.el-skeleton{--el-skeleton-color: var(--el-fill-color);--el-skeleton-to-color: var(--el-fill-color-darker)}@keyframes el-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}.el-skeleton{width:100%}.el-skeleton__first-line,.el-skeleton__paragraph{height:16px;margin-top:16px;background:var(--el-skeleton-color)}.el-skeleton.is-animated .el-skeleton__item{background:linear-gradient(90deg,var(--el-skeleton-color) 25%,var(--el-skeleton-to-color) 37%,var(--el-skeleton-color) 63%);background-size:400% 100%;animation:el-skeleton-loading 1.4s ease infinite}.el-skeleton{--el-skeleton-circle-size: var(--el-avatar-size)}.el-skeleton__item{background:var(--el-skeleton-color);display:inline-block;height:16px;border-radius:var(--el-border-radius-base);width:100%}.el-skeleton__circle{border-radius:50%;width:var(--el-skeleton-circle-size);height:var(--el-skeleton-circle-size);line-height:var(--el-skeleton-circle-size)}.el-skeleton__button{height:40px;width:64px;border-radius:4px}.el-skeleton__p{width:100%}.el-skeleton__p.is-last{width:61%}.el-skeleton__p.is-first{width:33%}.el-skeleton__text{width:100%;height:var(--el-font-size-small)}.el-skeleton__caption{height:var(--el-font-size-extra-small)}.el-skeleton__h1{height:var(--el-font-size-extra-large)}.el-skeleton__h3{height:var(--el-font-size-large)}.el-skeleton__h5{height:var(--el-font-size-medium)}.el-skeleton__image{width:unset;display:flex;align-items:center;justify-content:center;border-radius:0}.el-skeleton__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;width:22%;height:22%}.aplayer{background:#fff;font-family:Arial,Helvetica,sans-serif;margin:5px;box-shadow:0 2px 2px #00000012,0 1px 5px #0000001a;border-radius:2px;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none;line-height:normal;position:relative}.aplayer *{box-sizing:content-box}.aplayer svg{width:100%;height:100%}.aplayer svg circle,.aplayer svg path{fill:#fff}.aplayer.aplayer-withlist .aplayer-info{border-bottom:1px solid #e9e9e9}.aplayer.aplayer-withlist .aplayer-list{display:block}.aplayer.aplayer-withlist .aplayer-icon-order,.aplayer.aplayer-withlist .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon.aplayer-icon-menu{display:inline}.aplayer.aplayer-withlrc .aplayer-pic{height:90px;width:90px}.aplayer.aplayer-withlrc .aplayer-info{margin-left:90px;height:90px;padding:10px 7px 0}.aplayer.aplayer-withlrc .aplayer-lrc{display:block}.aplayer.aplayer-narrow{width:66px}.aplayer.aplayer-narrow .aplayer-info,.aplayer.aplayer-narrow .aplayer-list{display:none}.aplayer.aplayer-narrow .aplayer-body,.aplayer.aplayer-narrow .aplayer-pic{height:66px;width:66px}.aplayer.aplayer-fixed{position:fixed;bottom:0;left:0;right:0;margin:0;z-index:99;overflow:visible;max-width:400px;box-shadow:none}.aplayer.aplayer-fixed .aplayer-list{margin-bottom:65px;border:1px solid #eee;border-bottom:none}.aplayer.aplayer-fixed .aplayer-body{position:fixed;bottom:0;left:0;right:0;margin:0;z-index:99;background:#fff;padding-right:18px;transition:all .3s ease;max-width:400px}.aplayer.aplayer-fixed .aplayer-lrc{display:block;position:fixed;bottom:10px;left:0;right:0;margin:0;z-index:98;pointer-events:none;text-shadow:-1px -1px 0 #fff}.aplayer.aplayer-fixed .aplayer-lrc:after,.aplayer.aplayer-fixed .aplayer-lrc:before{display:none}.aplayer.aplayer-fixed .aplayer-info{transform:scaleX(1);transform-origin:0 0;transition:all .3s ease;border-bottom:none;border-top:1px solid #e9e9e9}.aplayer.aplayer-fixed .aplayer-info .aplayer-music{width:calc(100% - 105px)}.aplayer.aplayer-fixed .aplayer-miniswitcher{display:block}.aplayer.aplayer-fixed.aplayer-narrow .aplayer-info{display:block;transform:scaleX(0)}.aplayer.aplayer-fixed.aplayer-narrow .aplayer-body{width:66px!important}.aplayer.aplayer-fixed.aplayer-narrow .aplayer-miniswitcher .aplayer-icon{transform:rotateY(0)}.aplayer.aplayer-fixed .aplayer-icon-back,.aplayer.aplayer-fixed .aplayer-icon-forward,.aplayer.aplayer-fixed .aplayer-icon-lrc,.aplayer.aplayer-fixed .aplayer-icon-play{display:inline-block}.aplayer.aplayer-fixed .aplayer-icon-back,.aplayer.aplayer-fixed .aplayer-icon-forward,.aplayer.aplayer-fixed .aplayer-icon-menu,.aplayer.aplayer-fixed .aplayer-icon-play{position:absolute;bottom:27px;width:20px;height:20px}.aplayer.aplayer-fixed .aplayer-icon-back{right:75px}.aplayer.aplayer-fixed .aplayer-icon-play{right:50px}.aplayer.aplayer-fixed .aplayer-icon-forward{right:25px}.aplayer.aplayer-fixed .aplayer-icon-menu{right:0}.aplayer.aplayer-arrow .aplayer-icon-loop,.aplayer.aplayer-arrow .aplayer-icon-order,.aplayer.aplayer-mobile .aplayer-icon-volume-down{display:none}.aplayer.aplayer-loading .aplayer-info .aplayer-controller .aplayer-loading-icon{display:block}.aplayer.aplayer-loading .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar .aplayer-played .aplayer-thumb{transform:scale(1)}.aplayer .aplayer-body{position:relative}.aplayer .aplayer-icon{width:15px;height:15px;border:none;background-color:transparent;outline:none;cursor:pointer;opacity:.8;vertical-align:middle;padding:0;font-size:12px;margin:0;display:inline-block}.aplayer .aplayer-icon path{transition:all .2s ease-in-out}.aplayer .aplayer-icon-back,.aplayer .aplayer-icon-forward,.aplayer .aplayer-icon-lrc,.aplayer .aplayer-icon-order,.aplayer .aplayer-icon-play{display:none}.aplayer .aplayer-icon-lrc-inactivity svg{opacity:.4}.aplayer .aplayer-icon-forward{transform:rotate(180deg)}.aplayer .aplayer-lrc-content{display:none}.aplayer .aplayer-pic{position:relative;float:left;height:66px;width:66px;background-size:cover;background-position:50%;transition:all .3s ease;cursor:pointer}.aplayer .aplayer-pic:hover .aplayer-button{opacity:1}.aplayer .aplayer-pic .aplayer-button{position:absolute;border-radius:50%;opacity:.8;text-shadow:0 1px 1px rgba(0,0,0,.2);box-shadow:0 1px 1px #0003;background:rgba(0,0,0,.2);transition:all .1s ease}.aplayer .aplayer-pic .aplayer-button path{fill:#fff}.aplayer .aplayer-pic .aplayer-hide{display:none}.aplayer .aplayer-pic .aplayer-play{width:26px;height:26px;border:2px solid #fff;bottom:50%;right:50%;margin:0 -15px -15px 0}.aplayer .aplayer-pic .aplayer-play svg{position:absolute;top:3px;left:4px;height:20px;width:20px}.aplayer .aplayer-pic .aplayer-pause{width:16px;height:16px;border:2px solid #fff;bottom:4px;right:4px}.aplayer .aplayer-pic .aplayer-pause svg{position:absolute;top:2px;left:2px;height:12px;width:12px}.aplayer .aplayer-info{margin-left:66px;padding:14px 7px 0 10px;height:66px;box-sizing:border-box}.aplayer .aplayer-info .aplayer-music{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin:0 0 13px 5px;-webkit-user-select:text;-moz-user-select:text;user-select:text;cursor:default;padding-bottom:2px;height:20px}.aplayer .aplayer-info .aplayer-music .aplayer-title{font-size:14px}.aplayer .aplayer-info .aplayer-music .aplayer-author{font-size:12px;color:#666}.aplayer .aplayer-info .aplayer-controller{position:relative;display:flex}.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap{margin:0 0 0 5px;padding:4px 0;cursor:pointer!important;flex:1}.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap:hover .aplayer-bar .aplayer-played .aplayer-thumb{transform:scale(1)}.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar{position:relative;height:2px;width:100%;background:#cdcdcd}.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar .aplayer-loaded{position:absolute;left:0;top:0;bottom:0;background:#aaa;height:2px;transition:all .5s ease}.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar .aplayer-played{position:absolute;left:0;top:0;bottom:0;height:2px}.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar .aplayer-played .aplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:10px;width:10px;border-radius:50%;cursor:pointer;transition:all .3s ease-in-out;transform:scale(0)}.aplayer .aplayer-info .aplayer-controller .aplayer-time{position:relative;right:0;bottom:4px;height:17px;color:#999;font-size:11px;padding-left:7px}.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-time-inner{vertical-align:middle}.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon{cursor:pointer;transition:all .2s ease}.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon path{fill:#666}.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon.aplayer-icon-loop{margin-right:2px}.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon:hover path{fill:#000}.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon.aplayer-icon-menu,.aplayer .aplayer-info .aplayer-controller .aplayer-time.aplayer-time-narrow .aplayer-icon-menu,.aplayer .aplayer-info .aplayer-controller .aplayer-time.aplayer-time-narrow .aplayer-icon-mode{display:none}.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap{position:relative;display:inline-block;margin-left:3px;cursor:pointer!important}.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap:hover .aplayer-volume-bar-wrap{height:40px}.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap .aplayer-volume-bar-wrap{position:absolute;bottom:15px;right:-3px;width:25px;height:0;z-index:99;overflow:hidden;transition:all .2s ease-in-out}.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap .aplayer-volume-bar-wrap.aplayer-volume-bar-wrap-active{height:40px}.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap .aplayer-volume-bar-wrap .aplayer-volume-bar{position:absolute;bottom:0;right:10px;width:5px;height:35px;background:#aaa;border-radius:2.5px;overflow:hidden}.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap .aplayer-volume-bar-wrap .aplayer-volume-bar .aplayer-volume{position:absolute;bottom:0;right:0;width:5px;transition:all .1s ease}.aplayer .aplayer-info .aplayer-controller .aplayer-loading-icon{display:none}.aplayer .aplayer-info .aplayer-controller .aplayer-loading-icon svg{position:absolute;-webkit-animation:rotate 1s linear infinite;animation:rotate 1s linear infinite}.aplayer .aplayer-lrc{display:none;position:relative;height:30px;text-align:center;overflow:hidden;margin:-10px 0 7px}.aplayer .aplayer-lrc:before{top:0;height:10%;background:linear-gradient(180deg,#fff 0,hsla(0,0%,100%,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#ffffff",endColorstr="#00ffffff",GradientType=0)}.aplayer .aplayer-lrc:after,.aplayer .aplayer-lrc:before{position:absolute;z-index:1;display:block;overflow:hidden;width:100%;content:" "}.aplayer .aplayer-lrc:after{bottom:0;height:33%;background:linear-gradient(180deg,hsla(0,0%,100%,0) 0,hsla(0,0%,100%,.8));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#00ffffff",endColorstr="#ccffffff",GradientType=0)}.aplayer .aplayer-lrc p{font-size:12px;color:#666;line-height:16px!important;height:16px!important;padding:0!important;margin:0!important;transition:all .5s ease-out;opacity:.4;overflow:hidden}.aplayer .aplayer-lrc p.aplayer-lrc-current{opacity:1;overflow:visible;height:auto!important;min-height:16px}.aplayer .aplayer-lrc.aplayer-lrc-hide{display:none}.aplayer .aplayer-lrc .aplayer-lrc-contents{width:100%;transition:all .5s ease-out;-webkit-user-select:text;-moz-user-select:text;user-select:text;cursor:default}.aplayer .aplayer-list{overflow:auto;transition:all .5s ease;will-change:height;display:none;overflow:hidden}.aplayer .aplayer-list.aplayer-list-hide{max-height:0!important}.aplayer .aplayer-list ol{list-style-type:none;margin:0;padding:0;overflow-y:auto}.aplayer .aplayer-list ol::-webkit-scrollbar{width:5px}.aplayer .aplayer-list ol::-webkit-scrollbar-thumb{border-radius:3px;background-color:#eee}.aplayer .aplayer-list ol::-webkit-scrollbar-thumb:hover{background-color:#ccc}.aplayer .aplayer-list ol li{position:relative;height:32px;line-height:32px;padding:0 15px;font-size:12px;border-top:1px solid #e9e9e9;cursor:pointer;transition:all .2s ease;overflow:hidden;margin:0}.aplayer .aplayer-list ol li:first-child{border-top:none}.aplayer .aplayer-list ol li:hover{background:#efefef}.aplayer .aplayer-list ol li.aplayer-list-light{background:#e9e9e9}.aplayer .aplayer-list ol li.aplayer-list-light .aplayer-list-cur{display:inline-block}.aplayer .aplayer-list ol li .aplayer-list-cur{display:none;width:3px;height:22px;position:absolute;left:0;top:5px;cursor:pointer}.aplayer .aplayer-list ol li .aplayer-list-index{color:#666;margin-right:12px;cursor:pointer}.aplayer .aplayer-list ol li .aplayer-list-author{color:#666;float:right;cursor:pointer}.aplayer .aplayer-notice{opacity:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:12px;border-radius:4px;padding:5px 10px;transition:all .3s ease-in-out;overflow:hidden;color:#fff;pointer-events:none;background-color:#f4f4f5;color:#909399}.aplayer .aplayer-miniswitcher{display:none;position:absolute;top:0;right:0;bottom:0;height:100%;background:#e6e6e6;width:18px;border-radius:0 2px 2px 0}.aplayer .aplayer-miniswitcher .aplayer-icon{height:100%;width:100%;transform:rotateY(180deg);transition:all .3s ease}.aplayer .aplayer-miniswitcher .aplayer-icon path{fill:#666}.aplayer .aplayer-miniswitcher .aplayer-icon:hover path{fill:#000}@-webkit-keyframes aplayer-roll{0%{left:0}to{left:-100%}}@keyframes aplayer-roll{0%{left:0}to{left:-100%}}@-webkit-keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.el-backtop{--el-backtop-bg-color: var(--el-bg-color-overlay);--el-backtop-text-color: var(--el-color-primary);--el-backtop-hover-bg-color: var(--el-border-color-extra-light);position:fixed;background-color:var(--el-backtop-bg-color);width:40px;height:40px;border-radius:50%;color:var(--el-backtop-text-color);display:flex;align-items:center;justify-content:center;font-size:20px;box-shadow:var(--el-box-shadow-lighter);cursor:pointer;z-index:5}.el-backtop:hover{background-color:var(--el-backtop-hover-bg-color)}.el-backtop__icon{font-size:20px}.el-row{display:flex;flex-wrap:wrap;position:relative;box-sizing:border-box}.el-row.is-justify-center{justify-content:center}.el-row.is-justify-end{justify-content:flex-end}.el-row.is-justify-space-between{justify-content:space-between}.el-row.is-justify-space-around{justify-content:space-around}.el-row.is-justify-space-evenly{justify-content:space-evenly}.el-row.is-align-middle{align-items:center}.el-row.is-align-bottom{align-items:flex-end}.zfile-file-download-link-body[data-v-0948030b] .zfile-file-download-link-dialog-single{width:83.333333%}@media (min-width: 768px){.zfile-file-download-link-body[data-v-0948030b] .zfile-file-download-link-dialog-single{width:24rem}}.zfile-file-download-link-body[data-v-0948030b] .zfile-file-download-link-dialog-multiple{width:83.333333%}.zfile-file-download-link-body[data-v-0948030b] .zfile-link-tips{display:none}@media (min-width: 768px){.zfile-file-download-link-body[data-v-0948030b] .zfile-link-tips{display:block}}.el-upload{--el-upload-dragger-padding-horizontal: 40px;--el-upload-dragger-padding-vertical: 10px;display:inline-flex;justify-content:center;align-items:center;cursor:pointer;outline:none}.el-upload__input{display:none}.el-upload__tip{font-size:12px;color:var(--el-text-color-regular);margin-top:7px}.el-upload iframe{position:absolute;z-index:-1;top:0;left:0;opacity:0;filter:alpha(opacity=0)}.el-upload--picture-card{--el-upload-picture-card-size: 148px;background-color:var(--el-fill-color-lighter);border:1px dashed var(--el-border-color-darker);border-radius:6px;box-sizing:border-box;width:var(--el-upload-picture-card-size);height:var(--el-upload-picture-card-size);cursor:pointer;vertical-align:top;display:inline-flex;justify-content:center;align-items:center}.el-upload--picture-card i{font-size:28px;color:var(--el-text-color-secondary)}.el-upload--picture-card:hover{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload.is-drag{display:block}.el-upload:focus{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload:focus .el-upload-dragger{border-color:var(--el-color-primary)}.el-upload-dragger{padding:var(--el-upload-dragger-padding-horizontal) var(--el-upload-dragger-padding-vertical);background-color:var(--el-fill-color-blank);border:1px dashed var(--el-border-color);border-radius:6px;box-sizing:border-box;text-align:center;cursor:pointer;position:relative;overflow:hidden}.el-upload-dragger .el-icon--upload{font-size:67px;color:var(--el-text-color-placeholder);margin-bottom:16px;line-height:50px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:var(--el-border);margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:var(--el-text-color-regular);font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:var(--el-color-primary);font-style:normal}.el-upload-dragger:hover{border-color:var(--el-color-primary)}.el-upload-dragger.is-dragover{padding:calc(var(--el-upload-dragger-padding-horizontal) - 1px) calc(var(--el-upload-dragger-padding-vertical) - 1px);background-color:var(--el-color-primary-light-9);border:2px dashed var(--el-color-primary)}.el-upload-list{margin:10px 0 0;padding:0;list-style:none;position:relative}.el-upload-list__item{transition:all .5s cubic-bezier(.55,0,.1,1);font-size:14px;color:var(--el-text-color-regular);margin-bottom:5px;position:relative;box-sizing:border-box;border-radius:4px;width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item .el-icon--upload-success{color:var(--el-color-success)}.el-upload-list__item .el-icon--close{display:none;position:absolute;right:5px;top:50%;cursor:pointer;opacity:.75;color:var(--el-text-color-regular);transition:opacity var(--el-transition-duration);transform:translateY(-50%)}.el-upload-list__item .el-icon--close:hover{opacity:1;color:var(--el-color-primary)}.el-upload-list__item .el-icon--close-tip{display:none;position:absolute;top:1px;right:5px;font-size:12px;cursor:pointer;opacity:1;color:var(--el-color-primary);font-style:normal}.el-upload-list__item:hover{background-color:var(--el-fill-color-light)}.el-upload-list__item:hover .el-icon--close{display:inline-flex}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item .el-upload-list__item-info{display:inline-flex;justify-content:center;flex-direction:column;width:calc(100% - 30px);margin-left:4px}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:inline-flex}.el-upload-list__item.is-success .el-upload-list__item-name:hover,.el-upload-list__item.is-success .el-upload-list__item-name:focus{color:var(--el-color-primary);cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon--close-tip{display:inline-block}.el-upload-list__item.is-success:not(.focusing):focus,.el-upload-list__item.is-success:active{outline-width:0}.el-upload-list__item.is-success:not(.focusing):focus .el-icon--close-tip,.el-upload-list__item.is-success:active .el-icon--close-tip{display:none}.el-upload-list__item.is-success:hover .el-upload-list__item-status-label,.el-upload-list__item.is-success:focus .el-upload-list__item-status-label{display:none;opacity:0}.el-upload-list.is-disabled .el-upload-list__item:hover,.el-upload-list.is-disabled .el-upload-list__item-status-label{display:block}.el-upload-list__item-name{color:var(--el-text-color-regular);display:inline-flex;text-align:center;align-items:center;padding:0 4px;transition:color var(--el-transition-duration);font-size:var(--el-font-size-base)}.el-upload-list__item-name .el-icon{margin-right:6px;color:var(--el-text-color-secondary)}.el-upload-list__item-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-upload-list__item-status-label{position:absolute;right:5px;top:0;line-height:inherit;display:none;height:100%;justify-content:center;align-items:center;transition:opacity var(--el-transition-duration)}.el-upload-list__item-delete{position:absolute;right:10px;top:0;font-size:12px;color:var(--el-text-color-regular);display:none}.el-upload-list__item-delete:hover{color:var(--el-color-primary)}.el-upload-list--picture-card{--el-upload-list-picture-card-size: 148px;display:inline-flex;flex-wrap:wrap;margin:0}.el-upload-list--picture-card .el-upload-list__item{overflow:hidden;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;width:var(--el-upload-list-picture-card-size);height:var(--el-upload-list-picture-card-size);margin:0 8px 8px 0;padding:0;display:inline-flex}.el-upload-list--picture-card .el-upload-list__item .el-icon--check,.el-upload-list--picture-card .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon--close{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{opacity:0;display:block}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{width:100%;height:100%;object-fit:contain}.el-upload-list--picture-card .el-upload-list__item-status-label{right:-15px;top:-6px;width:40px;height:24px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{position:absolute;width:100%;height:100%;left:0;top:0;cursor:default;display:inline-flex;justify-content:center;align-items:center;color:#fff;opacity:0;font-size:20px;background-color:var(--el-overlay-color-lighter);transition:opacity var(--el-transition-duration)}.el-upload-list--picture-card .el-upload-list__item-actions span{display:none;cursor:pointer}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:1rem}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{position:static;font-size:inherit;color:inherit}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-flex}.el-upload-list--picture-card .el-progress{top:50%;left:50%;transform:translate(-50%,-50%);bottom:auto;width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{overflow:hidden;z-index:0;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;margin-top:10px;padding:10px}.el-upload-list--picture .el-upload-list__item .el-icon--check,.el-upload-list--picture .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{opacity:0;display:block}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item .el-icon--close{top:5px;transform:translateY(0)}.el-upload-list--picture .el-upload-list__item-thumbnail{display:inline-flex;justify-content:center;align-items:center;width:70px;height:70px;object-fit:contain;position:relative;z-index:1;background-color:var(--el-color-white)}.el-upload-list--picture .el-upload-list__item-status-label{position:absolute;right:-17px;top:-7px;width:46px;height:26px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;z-index:10;cursor:default}.el-upload-cover:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-upload-cover img{display:block;width:100%;height:100%}.el-upload-cover__label{right:-15px;top:-6px;width:40px;height:24px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-cover__label i{font-size:12px;margin-top:11px;transform:rotate(-45deg);color:#fff}.el-upload-cover__progress{display:inline-block;vertical-align:middle;position:static;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{position:absolute;top:0;left:0;width:100%;height:100%}.el-upload-cover__interact{position:absolute;bottom:0;left:0;width:100%;height:100%;background-color:var(--el-overlay-color-light);text-align:center}.el-upload-cover__interact .btn{display:inline-block;color:#fff;font-size:14px;cursor:pointer;vertical-align:middle;transition:var(--el-transition-md-fade);margin-top:60px}.el-upload-cover__interact .btn i{margin-top:0}.el-upload-cover__interact .btn span{opacity:0;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{position:absolute;bottom:0;left:0;background-color:#fff;height:36px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;text-align:left;padding:0 10px;margin:0;line-height:36px;font-size:14px;color:var(--el-text-color-primary)}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.zfile-file-upload-body[data-v-3f3c23fc] .el-dialog__header{text-align:center}.zfile-file-upload-body[data-v-3f3c23fc] .el-dialog__body{max-height:80vh;overflow-y:auto}.zfile-file-upload-body .drop-view[data-v-3f3c23fc]{position:fixed;left:0px;bottom:0px;z-index:10;display:flex;height:100%;width:100%;flex-direction:row;align-items:center;justify-content:center;background-color:rgb(0 0 0 / var(--tw-bg-opacity));--tw-bg-opacity: .2}.zfile-file-upload-body .drop-view .drop-sub[data-v-3f3c23fc]{display:flex;height:83.333333%;width:83.333333%;align-items:center;justify-content:center;border-radius:1rem;border-width:2px;border-style:dashed;--tw-border-opacity: 1;border-color:rgb(156 163 175 / var(--tw-border-opacity));font-size:1.5rem;line-height:2rem;font-weight:700;--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.el-table__body .el-table__row:nth-child(0){opacity:0;-webkit-animation:table-show .15s 0ms forwards linear;animation:table-show .15s 0ms forwards linear}.el-table__body .el-table__row:nth-child(1){opacity:0;-webkit-animation:table-show .15s 10ms forwards linear;animation:table-show .15s 10ms forwards linear}.el-table__body .el-table__row:nth-child(2){opacity:0;-webkit-animation:table-show .15s 20ms forwards linear;animation:table-show .15s 20ms forwards linear}.el-table__body .el-table__row:nth-child(3){opacity:0;-webkit-animation:table-show .15s 30ms forwards linear;animation:table-show .15s 30ms forwards linear}.el-table__body .el-table__row:nth-child(4){opacity:0;-webkit-animation:table-show .15s 40ms forwards linear;animation:table-show .15s 40ms forwards linear}.el-table__body .el-table__row:nth-child(5){opacity:0;-webkit-animation:table-show .15s 50ms forwards linear;animation:table-show .15s 50ms forwards linear}.el-table__body .el-table__row:nth-child(6){opacity:0;-webkit-animation:table-show .15s 60ms forwards linear;animation:table-show .15s 60ms forwards linear}.el-table__body .el-table__row:nth-child(7){opacity:0;-webkit-animation:table-show .15s 70ms forwards linear;animation:table-show .15s 70ms forwards linear}.el-table__body .el-table__row:nth-child(8){opacity:0;-webkit-animation:table-show .15s 80ms forwards linear;animation:table-show .15s 80ms forwards linear}.el-table__body .el-table__row:nth-child(9){opacity:0;-webkit-animation:table-show .15s 90ms forwards linear;animation:table-show .15s 90ms forwards linear}.el-table__body .el-table__row:nth-child(10){opacity:0;-webkit-animation:table-show .15s .1s forwards linear;animation:table-show .15s .1s forwards linear}.el-table__body .el-table__row:nth-child(11){opacity:0;-webkit-animation:table-show .15s .11s forwards linear;animation:table-show .15s .11s forwards linear}.el-table__body .el-table__row:nth-child(12){opacity:0;-webkit-animation:table-show .15s .12s forwards linear;animation:table-show .15s .12s forwards linear}.el-table__body .el-table__row:nth-child(13){opacity:0;-webkit-animation:table-show .15s .13s forwards linear;animation:table-show .15s .13s forwards linear}.el-table__body .el-table__row:nth-child(14){opacity:0;-webkit-animation:table-show .15s .14s forwards linear;animation:table-show .15s .14s forwards linear}.el-table__body .el-table__row:nth-child(15){opacity:0;-webkit-animation:table-show .15s .15s forwards linear;animation:table-show .15s .15s forwards linear}.el-table__body .el-table__row:nth-child(16){opacity:0;-webkit-animation:table-show .15s .16s forwards linear;animation:table-show .15s .16s forwards linear}.el-table__body .el-table__row:nth-child(17){opacity:0;-webkit-animation:table-show .15s .17s forwards linear;animation:table-show .15s .17s forwards linear}.el-table__body .el-table__row:nth-child(18){opacity:0;-webkit-animation:table-show .15s .18s forwards linear;animation:table-show .15s .18s forwards linear}.el-table__body .el-table__row:nth-child(19){opacity:0;-webkit-animation:table-show .15s .19s forwards linear;animation:table-show .15s .19s forwards linear}.el-table__body .el-table__row:nth-child(20){opacity:0;-webkit-animation:table-show .15s .2s forwards linear;animation:table-show .15s .2s forwards linear}.el-table__body .el-table__row:nth-child(21){opacity:0;-webkit-animation:table-show .15s .21s forwards linear;animation:table-show .15s .21s forwards linear}.el-table__body .el-table__row:nth-child(22){opacity:0;-webkit-animation:table-show .15s .22s forwards linear;animation:table-show .15s .22s forwards linear}.el-table__body .el-table__row:nth-child(23){opacity:0;-webkit-animation:table-show .15s .23s forwards linear;animation:table-show .15s .23s forwards linear}.el-table__body .el-table__row:nth-child(24){opacity:0;-webkit-animation:table-show .15s .24s forwards linear;animation:table-show .15s .24s forwards linear}.el-table__body .el-table__row:nth-child(25){opacity:0;-webkit-animation:table-show .15s .25s forwards linear;animation:table-show .15s .25s forwards linear}.el-table__body .el-table__row:nth-child(26){opacity:0;-webkit-animation:table-show .15s .26s forwards linear;animation:table-show .15s .26s forwards linear}.el-table__body .el-table__row:nth-child(27){opacity:0;-webkit-animation:table-show .15s .27s forwards linear;animation:table-show .15s .27s forwards linear}.el-table__body .el-table__row:nth-child(28){opacity:0;-webkit-animation:table-show .15s .28s forwards linear;animation:table-show .15s .28s forwards linear}.el-table__body .el-table__row:nth-child(29){opacity:0;-webkit-animation:table-show .15s .29s forwards linear;animation:table-show .15s .29s forwards linear}.el-table__body .el-table__row:nth-child(30){opacity:0;-webkit-animation:table-show .15s .3s forwards linear;animation:table-show .15s .3s forwards linear}.el-table__body .el-table__row:nth-child(31){opacity:0;-webkit-animation:table-show .15s .31s forwards linear;animation:table-show .15s .31s forwards linear}.el-table__body .el-table__row:nth-child(32){opacity:0;-webkit-animation:table-show .15s .32s forwards linear;animation:table-show .15s .32s forwards linear}.el-table__body .el-table__row:nth-child(33){opacity:0;-webkit-animation:table-show .15s .33s forwards linear;animation:table-show .15s .33s forwards linear}.el-table__body .el-table__row:nth-child(34){opacity:0;-webkit-animation:table-show .15s .34s forwards linear;animation:table-show .15s .34s forwards linear}.el-table__body .el-table__row:nth-child(35){opacity:0;-webkit-animation:table-show .15s .35s forwards linear;animation:table-show .15s .35s forwards linear}.el-table__body .el-table__row:nth-child(36){opacity:0;-webkit-animation:table-show .15s .36s forwards linear;animation:table-show .15s .36s forwards linear}.el-table__body .el-table__row:nth-child(37){opacity:0;-webkit-animation:table-show .15s .37s forwards linear;animation:table-show .15s .37s forwards linear}.el-table__body .el-table__row:nth-child(38){opacity:0;-webkit-animation:table-show .15s .38s forwards linear;animation:table-show .15s .38s forwards linear}.el-table__body .el-table__row:nth-child(39){opacity:0;-webkit-animation:table-show .15s .39s forwards linear;animation:table-show .15s .39s forwards linear}.el-table__body .el-table__row:nth-child(40){opacity:0;-webkit-animation:table-show .15s .4s forwards linear;animation:table-show .15s .4s forwards linear}.el-table__body .el-table__row:nth-child(41){opacity:0;-webkit-animation:table-show .15s .41s forwards linear;animation:table-show .15s .41s forwards linear}.el-table__body .el-table__row:nth-child(42){opacity:0;-webkit-animation:table-show .15s .42s forwards linear;animation:table-show .15s .42s forwards linear}.el-table__body .el-table__row:nth-child(43){opacity:0;-webkit-animation:table-show .15s .43s forwards linear;animation:table-show .15s .43s forwards linear}.el-table__body .el-table__row:nth-child(44){opacity:0;-webkit-animation:table-show .15s .44s forwards linear;animation:table-show .15s .44s forwards linear}.el-table__body .el-table__row:nth-child(45){opacity:0;-webkit-animation:table-show .15s .45s forwards linear;animation:table-show .15s .45s forwards linear}.el-table__body .el-table__row:nth-child(46){opacity:0;-webkit-animation:table-show .15s .46s forwards linear;animation:table-show .15s .46s forwards linear}.el-table__body .el-table__row:nth-child(47){opacity:0;-webkit-animation:table-show .15s .47s forwards linear;animation:table-show .15s .47s forwards linear}.el-table__body .el-table__row:nth-child(48){opacity:0;-webkit-animation:table-show .15s .48s forwards linear;animation:table-show .15s .48s forwards linear}.el-table__body .el-table__row:nth-child(49){opacity:0;-webkit-animation:table-show .15s .49s forwards linear;animation:table-show .15s .49s forwards linear}.el-table__body .el-table__row:nth-child(50){opacity:0;-webkit-animation:table-show .15s .5s forwards linear;animation:table-show .15s .5s forwards linear}.el-table__body .el-table__row:nth-child(51){opacity:0;-webkit-animation:table-show .15s .51s forwards linear;animation:table-show .15s .51s forwards linear}.el-table__body .el-table__row:nth-child(52){opacity:0;-webkit-animation:table-show .15s .52s forwards linear;animation:table-show .15s .52s forwards linear}.el-table__body .el-table__row:nth-child(53){opacity:0;-webkit-animation:table-show .15s .53s forwards linear;animation:table-show .15s .53s forwards linear}.el-table__body .el-table__row:nth-child(54){opacity:0;-webkit-animation:table-show .15s .54s forwards linear;animation:table-show .15s .54s forwards linear}.el-table__body .el-table__row:nth-child(55){opacity:0;-webkit-animation:table-show .15s .55s forwards linear;animation:table-show .15s .55s forwards linear}.el-table__body .el-table__row:nth-child(56){opacity:0;-webkit-animation:table-show .15s .56s forwards linear;animation:table-show .15s .56s forwards linear}.el-table__body .el-table__row:nth-child(57){opacity:0;-webkit-animation:table-show .15s .57s forwards linear;animation:table-show .15s .57s forwards linear}.el-table__body .el-table__row:nth-child(58){opacity:0;-webkit-animation:table-show .15s .58s forwards linear;animation:table-show .15s .58s forwards linear}.el-table__body .el-table__row:nth-child(59){opacity:0;-webkit-animation:table-show .15s .59s forwards linear;animation:table-show .15s .59s forwards linear}.el-table__body .el-table__row:nth-child(60){opacity:0;-webkit-animation:table-show .15s .6s forwards linear;animation:table-show .15s .6s forwards linear}.el-table__body .el-table__row:nth-child(61){opacity:0;-webkit-animation:table-show .15s .61s forwards linear;animation:table-show .15s .61s forwards linear}.el-table__body .el-table__row:nth-child(62){opacity:0;-webkit-animation:table-show .15s .62s forwards linear;animation:table-show .15s .62s forwards linear}.el-table__body .el-table__row:nth-child(63){opacity:0;-webkit-animation:table-show .15s .63s forwards linear;animation:table-show .15s .63s forwards linear}.el-table__body .el-table__row:nth-child(64){opacity:0;-webkit-animation:table-show .15s .64s forwards linear;animation:table-show .15s .64s forwards linear}.el-table__body .el-table__row:nth-child(65){opacity:0;-webkit-animation:table-show .15s .65s forwards linear;animation:table-show .15s .65s forwards linear}.el-table__body .el-table__row:nth-child(66){opacity:0;-webkit-animation:table-show .15s .66s forwards linear;animation:table-show .15s .66s forwards linear}.el-table__body .el-table__row:nth-child(67){opacity:0;-webkit-animation:table-show .15s .67s forwards linear;animation:table-show .15s .67s forwards linear}.el-table__body .el-table__row:nth-child(68){opacity:0;-webkit-animation:table-show .15s .68s forwards linear;animation:table-show .15s .68s forwards linear}.el-table__body .el-table__row:nth-child(69){opacity:0;-webkit-animation:table-show .15s .69s forwards linear;animation:table-show .15s .69s forwards linear}.el-table__body .el-table__row:nth-child(70){opacity:0;-webkit-animation:table-show .15s .7s forwards linear;animation:table-show .15s .7s forwards linear}.el-table__body .el-table__row:nth-child(71){opacity:0;-webkit-animation:table-show .15s .71s forwards linear;animation:table-show .15s .71s forwards linear}.el-table__body .el-table__row:nth-child(72){opacity:0;-webkit-animation:table-show .15s .72s forwards linear;animation:table-show .15s .72s forwards linear}.el-table__body .el-table__row:nth-child(73){opacity:0;-webkit-animation:table-show .15s .73s forwards linear;animation:table-show .15s .73s forwards linear}.el-table__body .el-table__row:nth-child(74){opacity:0;-webkit-animation:table-show .15s .74s forwards linear;animation:table-show .15s .74s forwards linear}.el-table__body .el-table__row:nth-child(75){opacity:0;-webkit-animation:table-show .15s .75s forwards linear;animation:table-show .15s .75s forwards linear}.el-table__body .el-table__row:nth-child(76){opacity:0;-webkit-animation:table-show .15s .76s forwards linear;animation:table-show .15s .76s forwards linear}.el-table__body .el-table__row:nth-child(77){opacity:0;-webkit-animation:table-show .15s .77s forwards linear;animation:table-show .15s .77s forwards linear}.el-table__body .el-table__row:nth-child(78){opacity:0;-webkit-animation:table-show .15s .78s forwards linear;animation:table-show .15s .78s forwards linear}.el-table__body .el-table__row:nth-child(79){opacity:0;-webkit-animation:table-show .15s .79s forwards linear;animation:table-show .15s .79s forwards linear}.el-table__body .el-table__row:nth-child(80){opacity:0;-webkit-animation:table-show .15s .8s forwards linear;animation:table-show .15s .8s forwards linear}.el-table__body .el-table__row:nth-child(81){opacity:0;-webkit-animation:table-show .15s .81s forwards linear;animation:table-show .15s .81s forwards linear}.el-table__body .el-table__row:nth-child(82){opacity:0;-webkit-animation:table-show .15s .82s forwards linear;animation:table-show .15s .82s forwards linear}.el-table__body .el-table__row:nth-child(83){opacity:0;-webkit-animation:table-show .15s .83s forwards linear;animation:table-show .15s .83s forwards linear}.el-table__body .el-table__row:nth-child(84){opacity:0;-webkit-animation:table-show .15s .84s forwards linear;animation:table-show .15s .84s forwards linear}.el-table__body .el-table__row:nth-child(85){opacity:0;-webkit-animation:table-show .15s .85s forwards linear;animation:table-show .15s .85s forwards linear}.el-table__body .el-table__row:nth-child(86){opacity:0;-webkit-animation:table-show .15s .86s forwards linear;animation:table-show .15s .86s forwards linear}.el-table__body .el-table__row:nth-child(87){opacity:0;-webkit-animation:table-show .15s .87s forwards linear;animation:table-show .15s .87s forwards linear}.el-table__body .el-table__row:nth-child(88){opacity:0;-webkit-animation:table-show .15s .88s forwards linear;animation:table-show .15s .88s forwards linear}.el-table__body .el-table__row:nth-child(89){opacity:0;-webkit-animation:table-show .15s .89s forwards linear;animation:table-show .15s .89s forwards linear}.el-table__body .el-table__row:nth-child(90){opacity:0;-webkit-animation:table-show .15s .9s forwards linear;animation:table-show .15s .9s forwards linear}.el-table__body .el-table__row:nth-child(91){opacity:0;-webkit-animation:table-show .15s .91s forwards linear;animation:table-show .15s .91s forwards linear}.el-table__body .el-table__row:nth-child(92){opacity:0;-webkit-animation:table-show .15s .92s forwards linear;animation:table-show .15s .92s forwards linear}.el-table__body .el-table__row:nth-child(93){opacity:0;-webkit-animation:table-show .15s .93s forwards linear;animation:table-show .15s .93s forwards linear}.el-table__body .el-table__row:nth-child(94){opacity:0;-webkit-animation:table-show .15s .94s forwards linear;animation:table-show .15s .94s forwards linear}.el-table__body .el-table__row:nth-child(95){opacity:0;-webkit-animation:table-show .15s .95s forwards linear;animation:table-show .15s .95s forwards linear}.el-table__body .el-table__row:nth-child(96){opacity:0;-webkit-animation:table-show .15s .96s forwards linear;animation:table-show .15s .96s forwards linear}.el-table__body .el-table__row:nth-child(97){opacity:0;-webkit-animation:table-show .15s .97s forwards linear;animation:table-show .15s .97s forwards linear}.el-table__body .el-table__row:nth-child(98){opacity:0;-webkit-animation:table-show .15s .98s forwards linear;animation:table-show .15s .98s forwards linear}.el-table__body .el-table__row:nth-child(99){opacity:0;-webkit-animation:table-show .15s .99s forwards linear;animation:table-show .15s .99s forwards linear}@-webkit-keyframes table-show{0%{transform:translateY(10px);opacity:.5}to{transform:translateY(0);opacity:1}}@keyframes table-show{0%{transform:translateY(10px);opacity:.5}to{transform:translateY(0);opacity:1}}@font-face{font-family:v-contextmenu;src:url(data:application/vnd.ms-fontobject;base64,AAgAAFgHAAABAAIAAAAAAAIABQMAAAAAAAABAJABAAAAAExQAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAr5f4wwAAAAAAAAAAAAAAAAAAAAAAABAAaQBjAG8AbgBmAG8AbgB0AAAADgBSAGUAZwB1AGwAYQByAAAAFgBWAGUAcgBzAGkAbwBuACAAMQAuADAAAAAQAGkAYwBvAG4AZgBvAG4AdAAAAAAAAAEAAAALAIAAAwAwR1NVQrD+s+0AAAE4AAAAQk9TLzJW7kgMAAABfAAAAFZjbWFwmcAGvgAAAeAAAAGGZ2x5ZodVRJIAAANwAAABPGhlYWQPY7HCAAAA4AAAADZoaGVhB94DhAAAALwAAAAkaG10eAvpAAAAAAHUAAAADGxvY2EAdgCeAAADaAAAAAhtYXhwARIAXQAAARgAAAAgbmFtZT5U/n0AAASsAAACbXBvc3RBG9LpAAAHHAAAADkAAQAAA4D/gABcBAAAAAAABAAAAQAAAAAAAAAAAAAAAAAAAAMAAQAAAAEAAMP4l69fDzz1AAsEAAAAAADWIjbmAAAAANYiNuYAAP/hBAADGAAAAAgAAgAAAAAAAAABAAAAAwBRAAUAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQP4AZAABQAIAokCzAAAAI8CiQLMAAAB6wAyAQgAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABAAHjmIgOA/4AAXAOAAIAAAAABAAAAAAAABAAAAAPpAAAEAAAAAAAABQAAAAMAAAAsAAAABAAAAV4AAQAAAAAAWAADAAEAAAAsAAMACgAAAV4ABAAsAAAABgAEAAEAAgB45iL//wAAAHjmIv//AAAAAAABAAYABgAAAAEAAgAAAQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAKAAAAAAAAAACAAAAeAAAAHgAAAABAADmIgAA5iIAAAACAAAAAAAAAHYAngAFAAD/4QO8AxgAEwAoADEARABQAAABBisBIg4CHQEhJzQuAisBFSEFFRcUDgMnIychByMiLgM9ARciBhQWMjY0JhcGBwYPAQ4BHgEzITI2Jy4CJwE1ND4COwEyFh0BARkbGlMSJRwSA5ABChgnHoX+SgKiARUfIxwPPi3+SSw/FDIgEwh3DBISGRISjAgGBQUIAgIEDw4BbRcWCQUJCgb+pAUPGhW8HykCHwEMGScaTFkNIBsSYYg0bh0lFwkBAYCAARMbIA6nPxEaEREaEXwaFhMSGQcQDQgYGg0jJBQBd+QLGBMMHSbjAAAAAAEAAAAAAtYC8AARAAABFAcBBi4BNjcJAS4BPgEXARYC1Q3+qQ4hGAENATj+yA0BGCINAVcNAYASDP66CwEZIQ0BJwEnDSEZAQv+ugwAAAAAAAASAN4AAQAAAAAAAAAVAAAAAQAAAAAAAQAIABUAAQAAAAAAAgAHAB0AAQAAAAAAAwAIACQAAQAAAAAABAAIACwAAQAAAAAABQALADQAAQAAAAAABgAIAD8AAQAAAAAACgArAEcAAQAAAAAACwATAHIAAwABBAkAAAAqAIUAAwABBAkAAQAQAK8AAwABBAkAAgAOAL8AAwABBAkAAwAQAM0AAwABBAkABAAQAN0AAwABBAkABQAWAO0AAwABBAkABgAQAQMAAwABBAkACgBWARMAAwABBAkACwAmAWkKQ3JlYXRlZCBieSBpY29uZm9udAppY29uZm9udFJlZ3VsYXJpY29uZm9udGljb25mb250VmVyc2lvbiAxLjBpY29uZm9udEdlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAAoAQwByAGUAYQB0AGUAZAAgAGIAeQAgAGkAYwBvAG4AZgBvAG4AdAAKAGkAYwBvAG4AZgBvAG4AdABSAGUAZwB1AGwAYQByAGkAYwBvAG4AZgBvAG4AdABpAGMAbwBuAGYAbwBuAHQAVgBlAHIAcwBpAG8AbgAgADEALgAwAGkAYwBvAG4AZgBvAG4AdABHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAHMAdgBnADIAdAB0AGYAIABmAHIAbwBtACAARgBvAG4AdABlAGwAbABvACAAcAByAG8AagBlAGMAdAAuAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAQIBAwEEAAF4C2Fycm93LXJpZ2h0AAAAAAA=);src:url(data:application/vnd.ms-fontobject;base64,AAgAAFgHAAABAAIAAAAAAAIABQMAAAAAAAABAJABAAAAAExQAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAr5f4wwAAAAAAAAAAAAAAAAAAAAAAABAAaQBjAG8AbgBmAG8AbgB0AAAADgBSAGUAZwB1AGwAYQByAAAAFgBWAGUAcgBzAGkAbwBuACAAMQAuADAAAAAQAGkAYwBvAG4AZgBvAG4AdAAAAAAAAAEAAAALAIAAAwAwR1NVQrD+s+0AAAE4AAAAQk9TLzJW7kgMAAABfAAAAFZjbWFwmcAGvgAAAeAAAAGGZ2x5ZodVRJIAAANwAAABPGhlYWQPY7HCAAAA4AAAADZoaGVhB94DhAAAALwAAAAkaG10eAvpAAAAAAHUAAAADGxvY2EAdgCeAAADaAAAAAhtYXhwARIAXQAAARgAAAAgbmFtZT5U/n0AAASsAAACbXBvc3RBG9LpAAAHHAAAADkAAQAAA4D/gABcBAAAAAAABAAAAQAAAAAAAAAAAAAAAAAAAAMAAQAAAAEAAMP4l69fDzz1AAsEAAAAAADWIjbmAAAAANYiNuYAAP/hBAADGAAAAAgAAgAAAAAAAAABAAAAAwBRAAUAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQP4AZAABQAIAokCzAAAAI8CiQLMAAAB6wAyAQgAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABAAHjmIgOA/4AAXAOAAIAAAAABAAAAAAAABAAAAAPpAAAEAAAAAAAABQAAAAMAAAAsAAAABAAAAV4AAQAAAAAAWAADAAEAAAAsAAMACgAAAV4ABAAsAAAABgAEAAEAAgB45iL//wAAAHjmIv//AAAAAAABAAYABgAAAAEAAgAAAQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAKAAAAAAAAAACAAAAeAAAAHgAAAABAADmIgAA5iIAAAACAAAAAAAAAHYAngAFAAD/4QO8AxgAEwAoADEARABQAAABBisBIg4CHQEhJzQuAisBFSEFFRcUDgMnIychByMiLgM9ARciBhQWMjY0JhcGBwYPAQ4BHgEzITI2Jy4CJwE1ND4COwEyFh0BARkbGlMSJRwSA5ABChgnHoX+SgKiARUfIxwPPi3+SSw/FDIgEwh3DBISGRISjAgGBQUIAgIEDw4BbRcWCQUJCgb+pAUPGhW8HykCHwEMGScaTFkNIBsSYYg0bh0lFwkBAYCAARMbIA6nPxEaEREaEXwaFhMSGQcQDQgYGg0jJBQBd+QLGBMMHSbjAAAAAAEAAAAAAtYC8AARAAABFAcBBi4BNjcJAS4BPgEXARYC1Q3+qQ4hGAENATj+yA0BGCINAVcNAYASDP66CwEZIQ0BJwEnDSEZAQv+ugwAAAAAAAASAN4AAQAAAAAAAAAVAAAAAQAAAAAAAQAIABUAAQAAAAAAAgAHAB0AAQAAAAAAAwAIACQAAQAAAAAABAAIACwAAQAAAAAABQALADQAAQAAAAAABgAIAD8AAQAAAAAACgArAEcAAQAAAAAACwATAHIAAwABBAkAAAAqAIUAAwABBAkAAQAQAK8AAwABBAkAAgAOAL8AAwABBAkAAwAQAM0AAwABBAkABAAQAN0AAwABBAkABQAWAO0AAwABBAkABgAQAQMAAwABBAkACgBWARMAAwABBAkACwAmAWkKQ3JlYXRlZCBieSBpY29uZm9udAppY29uZm9udFJlZ3VsYXJpY29uZm9udGljb25mb250VmVyc2lvbiAxLjBpY29uZm9udEdlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAAoAQwByAGUAYQB0AGUAZAAgAGIAeQAgAGkAYwBvAG4AZgBvAG4AdAAKAGkAYwBvAG4AZgBvAG4AdABSAGUAZwB1AGwAYQByAGkAYwBvAG4AZgBvAG4AdABpAGMAbwBuAGYAbwBuAHQAVgBlAHIAcwBpAG8AbgAgADEALgAwAGkAYwBvAG4AZgBvAG4AdABHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAHMAdgBnADIAdAB0AGYAIABmAHIAbwBtACAARgBvAG4AdABlAGwAbABvACAAcAByAG8AagBlAGMAdAAuAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAQIBAwEEAAF4C2Fycm93LXJpZ2h0AAAAAAA=#iefix) format("embedded-opentype"),url(data:font/woff;base64,d09GRgABAAAAAAUAAAsAAAAAB1gAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADMAAABCsP6z7U9TLzIAAAE8AAAARAAAAFZW7kgMY21hcAAAAYAAAABeAAABhpnABr5nbHlmAAAB4AAAAS4AAAE8h1VEkmhlYWQAAAMQAAAALwAAADYPY7HCaGhlYQAAA0AAAAAcAAAAJAfeA4RobXR4AAADXAAAAAwAAAAMC+kAAGxvY2EAAANoAAAACAAAAAgAdgCebWF4cAAAA3AAAAAfAAAAIAESAF1uYW1lAAADkAAAAUUAAAJtPlT+fXBvc3QAAATYAAAAKAAAADlBG9LpeJxjYGRgYOBikGPQYWB0cfMJYeBgYGGAAJAMY05meiJQDMoDyrGAaQ4gZoOIAgCKIwNPAHicY2Bk/sE4gYGVgYOpk+kMAwNDP4RmfM1gxMjBwMDEwMrMgBUEpLmmMDgwVDxTYm7438AQw9zA0AAUZgTJAQAl4gyOeJzFkMENgDAMAy9t6QMxRV88GIgXc3TirlFMKA8mqCXHimMpUYAFiOIhJrAL48Ep19yPrO4nz2SpEait9K7+U0U0y65BJTMNNm/1H5vXfXT6CnVQJ7byknADpO8MFwAAeJwVjL1Kw1AARu93Y/7a3MTe/KdN2yS2V6kGjLEKYru4KA6Cgzj6ALp2cegiODj4DCKIr1D6AL6A7qIP4BNE48fhwFk+IhPy+yktpYDYZJ1skyNyRgiUEVKTxkhEmdMR3ER2fceURCYSNUtz6RB+qjheMS6HvqIqFkx0sZMUY5FTgd1yQg9QeDEQtqNzPuhw6RGNQHTvqhP6BLeXdazJVnW8OXWKvq3NDM5Dzh80RZY1SlcsE9e+p8t6Q6meZStyl70N2oMRiuj0kvXb/Oq+vIkHvg7M57DbffNl2opaNbeRZ/NQXWVaELFszcHsuxnYRjz8IvXwL/pBf0irDkeFkmO8pyPHBD48+s6qVzMJwLBfvTEEKcMFw5wb1aKJMGEQECwJ0awWRv30B+KIMJEAAHicY2BkYGAA4sM/urfH89t8ZeBmYQCBa0pmzxD0/4csDMwSQC4HAxNIFABNGgrfAHicY2BkYGBu+N/AEMPCAAJAkpEBFTADAEcJAmwEAAAAA+kAAAQAAAAAAAAAAHYAnnicY2BkYGBgZghkYGUAASYg5gJCBob/YD4DABD3AXAAeJxlj01OwzAQhV/6B6QSqqhgh+QFYgEo/RGrblhUavdddN+mTpsqiSPHrdQDcB6OwAk4AtyAO/BIJ5s2lsffvHljTwDc4Acejt8t95E9XDI7cg0XuBeuU38QbpBfhJto41W4Rf1N2MczpsJtdGF5g9e4YvaEd2EPHXwI13CNT+E69S/hBvlbuIk7/Aq30PHqwj7mXle4jUcv9sdWL5xeqeVBxaHJIpM5v4KZXu+Sha3S6pxrW8QmU4OgX0lTnWlb3VPs10PnIhVZk6oJqzpJjMqt2erQBRvn8lGvF4kehCblWGP+tsYCjnEFhSUOjDFCGGSIyujoO1Vm9K+xQ8Jee1Y9zed0WxTU/3OFAQL0z1xTurLSeTpPgT1fG1J1dCtuy56UNJFezUkSskJe1rZUQuoBNmVXjhF6XNGJPyhnSP8ACVpuyAAAAHicY2BigAAuBuyAmZGJkZmRhYGxgjuxqCi/XLcoMz2jhIEBAC8dBRY=) format("woff"),url(data:font/ttf;base64,AAEAAAALAIAAAwAwR1NVQrD+s+0AAAE4AAAAQk9TLzJW7kgMAAABfAAAAFZjbWFwmcAGvgAAAeAAAAGGZ2x5ZodVRJIAAANwAAABPGhlYWQPY7HCAAAA4AAAADZoaGVhB94DhAAAALwAAAAkaG10eAvpAAAAAAHUAAAADGxvY2EAdgCeAAADaAAAAAhtYXhwARIAXQAAARgAAAAgbmFtZT5U/n0AAASsAAACbXBvc3RBG9LpAAAHHAAAADkAAQAAA4D/gABcBAAAAAAABAAAAQAAAAAAAAAAAAAAAAAAAAMAAQAAAAEAAMP4i7dfDzz1AAsEAAAAAADWIjbmAAAAANYiNuYAAP/hBAADGAAAAAgAAgAAAAAAAAABAAAAAwBRAAUAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQP4AZAABQAIAokCzAAAAI8CiQLMAAAB6wAyAQgAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABAAHjmIgOA/4AAXAOAAIAAAAABAAAAAAAABAAAAAPpAAAEAAAAAAAABQAAAAMAAAAsAAAABAAAAV4AAQAAAAAAWAADAAEAAAAsAAMACgAAAV4ABAAsAAAABgAEAAEAAgB45iL//wAAAHjmIv//AAAAAAABAAYABgAAAAEAAgAAAQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAKAAAAAAAAAACAAAAeAAAAHgAAAABAADmIgAA5iIAAAACAAAAAAAAAHYAngAFAAD/4QO8AxgAEwAoADEARABQAAABBisBIg4CHQEhJzQuAisBFSEFFRcUDgMnIychByMiLgM9ARciBhQWMjY0JhcGBwYPAQ4BHgEzITI2Jy4CJwE1ND4COwEyFh0BARkbGlMSJRwSA5ABChgnHoX+SgKiARUfIxwPPi3+SSw/FDIgEwh3DBISGRISjAgGBQUIAgIEDw4BbRcWCQUJCgb+pAUPGhW8HykCHwEMGScaTFkNIBsSYYg0bh0lFwkBAYCAARMbIA6nPxEaEREaEXwaFhMSGQcQDQgYGg0jJBQBd+QLGBMMHSbjAAAAAAEAAAAAAtYC8AARAAABFAcBBi4BNjcJAS4BPgEXARYC1Q3+qQ4hGAENATj+yA0BGCINAVcNAYASDP66CwEZIQ0BJwEnDSEZAQv+ugwAAAAAAAASAN4AAQAAAAAAAAAVAAAAAQAAAAAAAQAIABUAAQAAAAAAAgAHAB0AAQAAAAAAAwAIACQAAQAAAAAABAAIACwAAQAAAAAABQALADQAAQAAAAAABgAIAD8AAQAAAAAACgArAEcAAQAAAAAACwATAHIAAwABBAkAAAAqAIUAAwABBAkAAQAQAK8AAwABBAkAAgAOAL8AAwABBAkAAwAQAM0AAwABBAkABAAQAN0AAwABBAkABQAWAO0AAwABBAkABgAQAQMAAwABBAkACgBWARMAAwABBAkACwAmAWkKQ3JlYXRlZCBieSBpY29uZm9udAppY29uZm9udFJlZ3VsYXJpY29uZm9udGljb25mb250VmVyc2lvbiAxLjBpY29uZm9udEdlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAAoAQwByAGUAYQB0AGUAZAAgAGIAeQAgAGkAYwBvAG4AZgBvAG4AdAAKAGkAYwBvAG4AZgBvAG4AdABSAGUAZwB1AGwAYQByAGkAYwBvAG4AZgBvAG4AdABpAGMAbwBuAGYAbwBuAHQAVgBlAHIAcwBpAG8AbgAgADEALgAwAGkAYwBvAG4AZgBvAG4AdABHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAHMAdgBnADIAdAB0AGYAIABmAHIAbwBtACAARgBvAG4AdABlAGwAbABvACAAcAByAG8AagBlAGMAdAAuAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAQIBAwEEAAF4C2Fycm93LXJpZ2h0AAAAAAA=) format("truetype"),url(data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20standalone%3D%22no%22%3F%3E%0A%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%20%3E%0A%3C!--%0A2013-9-30%3A%20Created.%0A--%3E%0A%3Csvg%3E%0A%3Cmetadata%3E%0ACreated%20by%20iconfont%0A%3C%2Fmetadata%3E%0A%3Cdefs%3E%0A%0A%3Cfont%20id%3D%22iconfont%22%20horiz-adv-x%3D%221024%22%20%3E%0A%20%20%3Cfont-face%0A%20%20%20%20font-family%3D%22iconfont%22%0A%20%20%20%20font-weight%3D%22500%22%0A%20%20%20%20font-stretch%3D%22normal%22%0A%20%20%20%20units-per-em%3D%221024%22%0A%20%20%20%20ascent%3D%22896%22%0A%20%20%20%20descent%3D%22-128%22%0A%20%20%2F%3E%0A%20%20%20%20%3Cmissing-glyph%20%2F%3E%0A%20%20%20%20%0A%20%20%20%20%3Cglyph%20glyph-name%3D%22x%22%20unicode%3D%22x%22%20horiz-adv-x%3D%221001%22%0Ad%3D%22M281%20543q-27%20-1%20-53%20-1h-83q-18%200%20-36.5%20-6t-32.5%20-18.5t-23%20-32t-9%20-45.5v-76h912v41q0%2016%20-0.5%2030t-0.5%2018q0%2013%20-5%2029t-17%2029.5t-31.5%2022.5t-49.5%209h-133v-97h-438v97zM955%20310v-52q0%20-23%200.5%20-52t0.5%20-58t-10.5%20-47.5t-26%20-30t-33%20-16t-31.5%20-4.5q-14%20-1%20-29.5%20-0.5%0At-29.5%200.5h-32l-45%20128h-439l-44%20-128h-29h-34q-20%200%20-45%201q-25%200%20-41%209.5t-25.5%2023t-13.5%2029.5t-4%2030v167h911zM163%20247q-12%200%20-21%20-8.5t-9%20-21.5t9%20-21.5t21%20-8.5q13%200%2022%208.5t9%2021.5t-9%2021.5t-22%208.5zM316%20123q-8%20-26%20-14%20-48q-5%20-19%20-10.5%20-37t-7.5%20-25t-3%20-15t1%20-14.5%0At9.5%20-10.5t21.5%20-4h37h67h81h80h64h36q23%200%2034%2012t2%2038q-5%2013%20-9.5%2030.5t-9.5%2034.5q-5%2019%20-11%2039h-368zM336%20498v228q0%2011%202.5%2023t10%2021.5t20.5%2015.5t34%206h188q31%200%2051.5%20-14.5t20.5%20-52.5v-227h-327z%22%20%2F%3E%0A%20%20%20%20%0A%0A%20%20%20%20%0A%20%20%20%20%3Cglyph%20glyph-name%3D%22arrow-right%22%20unicode%3D%22%26%2358914%3B%22%20d%3D%22M725.3399071604938%20383.8342991012345a41.425224691358025%2041.425224691358025%200%200%200-12.924670103703681-30.074713125925918l-343.82936493827134-325.2708642765434a41.425224691358025%2041.425224691358025%200%200%200-56.91825872592596%2060.23227670123452l312.0976428246912%20295.1961511506175-312.0976428246914%20295.4447024987654a41.50807514074074%2041.50807514074074%200%200%200-1.6570089876543506%2058.575267713580246c15.74158538271605%2016.570089876543207%2042.00517783703699%2017.315743920987664%2058.575267713580246%201.6570089876543506l343.8293649382716-325.6022660740737a41.425224691358025%2041.425224691358025%200%200%200%2012.924670103703713-30.15756357530862z%22%20%20horiz-adv-x%3D%221024%22%20%2F%3E%0A%0A%20%20%20%20%0A%0A%0A%20%20%3C%2Ffont%3E%0A%3C%2Fdefs%3E%3C%2Fsvg%3E%0A) format("svg")}.v-contextmenu-icon{font-family:v-contextmenu!important;font-size:inherit;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.v-contextmenu-icon-right-arrow:before{content:"\e622"}.v-contextmenu{position:absolute;background-color:#fff;border:1px solid #e8e8e8;border-radius:4px;-webkit-box-shadow:2px 2px 8px 0 rgba(150,150,150,.2);box-shadow:2px 2px 8px #96969633;font-size:14px;white-space:nowrap;line-height:1;z-index:2020;-webkit-tap-highlight-color:transparent}.v-contextmenu-inner{padding:5px 0;margin:0;list-style:none}.v-contextmenu-item{padding:5px 14px;line-height:1;color:#333;cursor:pointer}.v-contextmenu-item--hover{color:#fff;background-color:#46a0fc}.v-contextmenu-item--disabled{color:#3336;cursor:not-allowed}.v-contextmenu-divider{height:0;margin:5px 0;border-bottom:1px solid #e8e8e8}.v-contextmenu-group__title{padding:5px 14px 2.5px;color:#3333338c;font-size:60%}.v-contextmenu-group__menus{padding:0 5px;margin:0;list-style:none}.v-contextmenu-group__menus .v-contextmenu-item{display:inline-block;padding:5px 9px}.v-contextmenu-submenu{position:relative}.v-contextmenu-submenu__title{padding-right:22.4px}.v-contextmenu-submenu__menus{position:absolute}.v-contextmenu-submenu__menus--left{left:0;-webkit-transform:translateX(-100%);transform:translate(-100%)}.v-contextmenu-submenu__menus--right{right:0;-webkit-transform:translateX(100%);transform:translate(100%)}.v-contextmenu-submenu__menus--top{top:-6px}.v-contextmenu-submenu__menus--bottom{bottom:-6px}.v-contextmenu-submenu__arrow{position:absolute;right:5px}.v-contextmenu-enter-active{-webkit-transition:opacity .3s ease-out;transition:opacity .3s ease-out}.v-contextmenu-leave-active{-webkit-transition:opacity .3s cubic-bezier(1,.5,.8,1);transition:opacity .3s cubic-bezier(1,.5,.8,1)}.v-contextmenu-enter-from,.v-contextmenu-leave-to{opacity:0}.zfile-index-body[data-v-78a4eb96]{height:100%;padding:0 15px}@media (max-device-width: 768px){.zfile-index-body[data-v-78a4eb96]{padding:0}}.el-table[data-v-78a4eb96]{overflow-y:hidden}@media (max-device-width: 768px){.el-table[data-v-78a4eb96]{margin:0;padding-right:0}}.el-table .el-table__header-wrapper .el-icon[data-v-78a4eb96]{margin-right:12px;top:1.5px;font-size:13px}.el-table .el-table__body-wrapper .zfile-table-col-name svg[data-v-78a4eb96]{position:relative;top:-1.5px;margin-right:.375rem;display:inline;vertical-align:middle;font-size:1.25rem;line-height:1.75rem}.el-table .operator-btn[data-v-78a4eb96]{margin-right:20px;display:inline-block}.el-table .operator-btn svg[data-v-78a4eb96]{color:#1e9fff;font-size:16px}.el-table[data-v-78a4eb96] tr{-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-table.el-table--default .el-table__body-wrapper .zfile-table-col-name svg[data-v-78a4eb96]{font-size:1.5rem;line-height:2rem}.el-table.el-table--large .el-table__body-wrapper .zfile-table-col-name svg[data-v-78a4eb96]{font-size:1.875rem;line-height:2.25rem}.zfile-index-body[data-v-78a4eb96] .el-dialog__header{margin-bottom:-10px;padding:5px 0;margin-left:.5rem;width:83.333333%;text-align:center;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.zfile-index-body[data-v-78a4eb96] .el-overlay-dialog{overflow:hidden}.zfile-index-body[data-v-78a4eb96] .zfile-video-dialog .el-dialog__body{padding:10px 0 0}.zfile-index-body[data-v-78a4eb96] .zfile-video-dialog .el-dialog__headerbtn{top:-6px}@media screen and (max-device-width: 769px){.zfile-index-body[data-v-78a4eb96] .zfile-video-dialog{margin-top:10vh!important;width:90%!important}}.v-contextmenu-item[data-v-78a4eb96] label{margin-left:10px}.v-contextmenu-item[data-v-78a4eb96] .contextmenu-icon{top:1px;padding-top:1px}.zfile-dialog-link-result-info .el-form-item[data-v-78a4eb96]{margin-bottom:10px}#batchCopyLinkDialog > > > thead[data-v-78a4eb96]{cursor:pointer}#ListTable > > > .img-mode-img[data-v-78a4eb96]{display:block;width:80%;height:auto;margin:0 auto}.zfile-index-body[data-v-78a4eb96] .select-row{background-color:#f4f5f6}.zfile-index-body[data-v-78a4eb96] .select-row:hover{--el-table-row-hover-bg-color: #F4F5F6}.zfile-index-body[data-v-78a4eb96] .el-table__body-wrapper .el-scrollbar__view{height:100%}.zfile-index-body[data-v-78a4eb96] .empty-icon{display:initial;height:20rem;width:20rem}.zfile-index-body[data-v-78a4eb96] .v-md-editor-preview .github-markdown-body{padding:unset}.zfile-index-announcement[data-v-78a4eb96]{margin:10px 0}.zfile-index-body[data-v-78a4eb96] .zfile-readme-dialog .el-dialog__header{margin-bottom:unset;padding:var(--el-dialog-padding-primary);padding-bottom:10px}.zfile-index-body[data-v-78a4eb96] .zfile-readme-dialog .el-dialog__header .el-dialog__title{display:none}.zfile-index-body .zfile-index-hover-tools[data-v-78a4eb96]{position:absolute;bottom:0px;left:0px;right:0px;z-index:10;margin-left:auto;margin-right:auto;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}@media (min-width: 640px){.zfile-index-body .zfile-index-hover-tools[data-v-78a4eb96]{bottom:2.5rem}}.zfile-index-body .zfile-index-hover-tools .zfile-index-hover-body[data-v-78a4eb96]{margin-left:auto;margin-right:auto;height:3rem;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.zfile-index-body .zfile-index-hover-tools .zfile-index-hover-body[data-v-78a4eb96]>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1.5rem * var(--tw-space-x-reverse));margin-left:calc(1.5rem * calc(1 - var(--tw-space-x-reverse)))}.zfile-index-body .zfile-index-hover-tools .zfile-index-hover-body[data-v-78a4eb96]{border-radius:.25rem;--tw-bg-opacity: 1;background-color:rgb(49 49 54 / var(--tw-bg-opacity));padding:.5rem 1.25rem;font-size:1.5rem;line-height:2rem;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.zfile-index-body .zfile-index-hover-tools .zfile-index-hover-body svg[data-v-78a4eb96]{display:inline;cursor:pointer;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity));outline:2px solid transparent;outline-offset:2px}.zfile-index-body .zfile-index-hover-tools .zfile-index-hover-body svg[data-v-78a4eb96]:hover{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity))}.zfile-index-body[data-v-78a4eb96] .zfile-text-dialog{width:90%}.zfile-index-body[data-v-78a4eb96] .zfile-text-dialog .el-dialog__body{padding:15px 5px}.zfile-index-body[data-v-78a4eb96] .zfile-text-dialog .el-dialog__headerbtn{top:-6px} diff --git a/src/main/resources/static/assets/files.a94428cd.svg b/src/main/resources/static/assets/files.a94428cd.svg new file mode 100644 index 0000000..c7e2538 --- /dev/null +++ b/src/main/resources/static/assets/files.a94428cd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/focus-trap.fe4b8179.js b/src/main/resources/static/assets/focus-trap.fe4b8179.js new file mode 100644 index 0000000..0a160bb --- /dev/null +++ b/src/main/resources/static/assets/focus-trap.fe4b8179.js @@ -0,0 +1 @@ +import{L as N,a4 as U,k as j,_ as q}from"./base.197bc1e5.js";import{o as H,H as x,d as W,r as Y,v as J,w as b,u as v,Y as A,m as z,g as G}from"./index.bbf7818f.js";let l=[];const Q=e=>{const n=s=>{const o=s;o.key===U.esc&&l.forEach(c=>c(o))};H(()=>{l.length===0&&document.addEventListener("keydown",n),N&&l.push(e)}),x(()=>{l=l.filter(s=>s!==e),l.length===0&&N&&document.removeEventListener("keydown",n)})},$=e=>{const n=[],s=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:o=>{const c=o.tagName==="INPUT"&&o.type==="hidden";return o.disabled||o.hidden||c?NodeFilter.FILTER_SKIP:o.tabIndex>=0||o===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;s.nextNode();)n.push(s.currentNode);return n},I=(e,n)=>{for(const s of e)if(!X(s,n))return s},X=(e,n)=>{if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(n&&e===n)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1},Z=e=>{const n=$(e),s=I(n,e),o=I(n.reverse(),e);return[s,o]},ee=e=>e instanceof HTMLInputElement&&"select"in e,d=(e,n)=>{if(e&&e.focus){const s=document.activeElement;e.focus({preventScroll:!0}),e!==s&&ee(e)&&n&&e.select()}};function P(e,n){const s=[...e],o=e.indexOf(n);return o!==-1&&s.splice(o,1),s}const te=()=>{let e=[];return{push:o=>{const c=e[0];c&&o!==c&&c.pause(),e=P(e,o),e.unshift(o)},remove:o=>{var c,u;e=P(e,o),(u=(c=e[0])==null?void 0:c.resume)==null||u.call(c)}}},ne=(e,n=!1)=>{const s=document.activeElement;for(const o of e)if(d(o,n),document.activeElement!==s)return},w=te(),S="focus-trap.focus-after-trapped",y="focus-trap.focus-after-released",K={cancelable:!0,bubbles:!1},R="focusAfterTrapped",D="focusAfterReleased",se=Symbol("elFocusTrap"),oe=W({name:"ElFocusTrap",inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:"first"}},emits:[R,D,"focusin","focusout","focusout-prevented","release-requested"],setup(e,{emit:n}){const s=Y();let o,c;Q(t=>{e.trapped&&!u.paused&&n("release-requested",t)});const u={paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}},p=t=>{if(!e.loop&&!e.trapped||u.paused)return;const{key:r,altKey:a,ctrlKey:i,metaKey:f,currentTarget:V,shiftKey:O}=t,{loop:k}=e,M=r===U.tab&&!a&&!i&&!f,E=document.activeElement;if(M&&E){const T=V,[F,_]=Z(T);F&&_?!O&&E===_?(t.preventDefault(),k&&d(F,!0),n("focusout-prevented")):O&&[F,T].includes(E)&&(t.preventDefault(),k&&d(_,!0),n("focusout-prevented")):E===T&&(t.preventDefault(),n("focusout-prevented"))}};J(se,{focusTrapRef:s,onKeydown:p}),b(()=>e.focusTrapEl,t=>{t&&(s.value=t)},{immediate:!0}),b([s],([t],[r])=>{t&&(t.addEventListener("keydown",p),t.addEventListener("focusin",h),t.addEventListener("focusout",g)),r&&(r.removeEventListener("keydown",p),r.removeEventListener("focusin",h),r.removeEventListener("focusout",g))});const m=t=>{n(R,t)},B=t=>n(D,t),h=t=>{const r=v(s);if(!r)return;const a=t.target,i=a&&r.contains(a);i&&n("focusin",t),!u.paused&&e.trapped&&(i?c=a:d(c,!0))},g=t=>{const r=v(s);if(!(u.paused||!r))if(e.trapped){const a=t.relatedTarget;!j(a)&&!r.contains(a)&&setTimeout(()=>{!u.paused&&e.trapped&&d(c,!0)},0)}else{const a=t.target;a&&r.contains(a)||n("focusout",t)}};async function L(){await A();const t=v(s);if(t){w.push(u);const r=document.activeElement;if(o=r,!t.contains(r)){const i=new Event(S,K);t.addEventListener(S,m),t.dispatchEvent(i),i.defaultPrevented||A(()=>{let f=e.focusStartEl;z(f)||(d(f),document.activeElement!==f&&(f="first")),f==="first"&&ne($(t),!0),(document.activeElement===r||f==="container")&&d(t)})}}}function C(){const t=v(s);if(t){t.removeEventListener(S,m);const r=new Event(y,K);t.addEventListener(y,B),t.dispatchEvent(r),r.defaultPrevented||d(o!=null?o:document.body,!0),t.removeEventListener(y,m),w.remove(u)}}return H(()=>{e.trapped&&L(),b(()=>e.trapped,t=>{t?L():C()})}),x(()=>{e.trapped&&C()}),{onKeydown:p}}});function re(e,n,s,o,c,u){return G(e.$slots,"default",{handleKeydown:e.onKeydown})}var ie=q(oe,[["render",re],["__file","/home/runner/work/element-plus/element-plus/packages/components/focus-trap/src/focus-trap.vue"]]);export{ie as E,se as F}; diff --git a/src/main/resources/static/assets/form-item.4ffcf52c.css b/src/main/resources/static/assets/form-item.4ffcf52c.css new file mode 100644 index 0000000..b65218c --- /dev/null +++ b/src/main/resources/static/assets/form-item.4ffcf52c.css @@ -0,0 +1 @@ +.el-form{--el-form-label-font-size: var(--el-font-size-base)}.el-form--label-left .el-form-item__label{justify-content:flex-start}.el-form--label-top .el-form-item{display:block}.el-form--label-top .el-form-item .el-form-item__label{display:block;height:auto;text-align:left;margin-bottom:8px;line-height:22px}.el-form--inline .el-form-item{display:inline-flex;vertical-align:middle;margin-right:32px}.el-form--inline.el-form--label-top{display:flex;flex-wrap:wrap}.el-form--inline.el-form--label-top .el-form-item{display:block}.el-form--large.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:12px;line-height:22px}.el-form--default.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:8px;line-height:22px}.el-form--small.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:4px;line-height:20px}.el-form-item{display:flex;--font-size: 14px;margin-bottom:18px}.el-form-item .el-form-item{margin-bottom:0}.el-form-item .el-input__validateIcon{display:none}.el-form-item--large{--font-size: 14px;--el-form-label-font-size: var(--font-size);margin-bottom:22px}.el-form-item--large .el-form-item__label{height:40px;line-height:40px}.el-form-item--large .el-form-item__content{line-height:40px}.el-form-item--large .el-form-item__error{padding-top:4px}.el-form-item--default{--font-size: 14px;--el-form-label-font-size: var(--font-size);margin-bottom:18px}.el-form-item--default .el-form-item__label{height:32px;line-height:32px}.el-form-item--default .el-form-item__content{line-height:32px}.el-form-item--default .el-form-item__error{padding-top:2px}.el-form-item--small{--font-size: 12px;--el-form-label-font-size: var(--font-size);margin-bottom:18px}.el-form-item--small .el-form-item__label{height:24px;line-height:24px}.el-form-item--small .el-form-item__content{line-height:24px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item__label-wrap{display:flex}.el-form-item__label{display:inline-flex;justify-content:flex-end;align-items:flex-start;flex:0 0 auto;font-size:var(--el-form-label-font-size);color:var(--el-text-color-regular);height:32px;line-height:32px;padding:0 12px 0 0;box-sizing:border-box}.el-form-item__content{display:flex;flex-wrap:wrap;align-items:center;flex:1;line-height:32px;position:relative;font-size:var(--font-size);min-width:0}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:var(--el-color-danger);font-size:12px;line-height:1;padding-top:2px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required:not(.is-no-asterisk)>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk)>.el-form-item__label-wrap>.el-form-item__label:before{content:"*";color:var(--el-color-danger);margin-right:4px}.el-form-item.is-error .el-select-v2__wrapper,.el-form-item.is-error .el-select-v2__wrapper:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-input-group__append .el-input__wrapper,.el-form-item.is-error .el-input-group__prepend .el-input__wrapper{box-shadow:0 0 0 1px transparent inset}.el-form-item.is-error .el-input__validateIcon{color:var(--el-color-danger)}.el-form-item--feedback .el-input__validateIcon{display:inline-flex} diff --git a/src/main/resources/static/assets/form-item.962ab13d.js b/src/main/resources/static/assets/form-item.962ab13d.js new file mode 100644 index 0000000..396ee3f --- /dev/null +++ b/src/main/resources/static/assets/form-item.962ab13d.js @@ -0,0 +1 @@ +import{aa as ee,ab as ct,ac as $e,ad as Oe,ae as mt,af as ce,ag as Ce,b as Ee,d as H,ah as Le,D as Me,R as We,u as te,o as pt,N as re,_ as Be,O as J,t as gt,G as vt,ai as bt,I as me,Z as k,w as ht,j as yt}from"./base.197bc1e5.js";import{D as _t,m as Z,r as O,c as v,d as oe,w as B,v as Pe,V as ze,ad as Ne,a as Q,f as Re,g as M,n as E,u as g,l as Ue,E as P,o as Ve,H as qe,ag as xt,h as z,F as wt,Y as De,G as Tt,e as Y,b as St,J as At,t as pe,i as ge,q as It,k as ve,p as be,T as jt}from"./index.bbf7818f.js";import{S as Ft}from"./index.c92ded65.js";import{b as $t}from"./request.19cbe8c5.js";import{i as Ge,a as Ot,b as Ct,o as Et,k as Ke,g as ke,s as Lt,c as Mt,d as Wt,U as he,e as ne,n as N,f as Ye,h as Bt,S as Pt,j as zt,l as Nt}from"./isEqual.a8284c4e.js";var ye=Object.create,Rt=function(){function e(){}return function(r){if(!ee(r))return{};if(ye)return ye(r);e.prototype=r;var t=new e;return e.prototype=void 0,t}}(),Ut=Rt;function Vt(e,r){var t=-1,l=e.length;for(r||(r=Array(l));++t(_t(e)||Z(e))&&Me(r)&&Z(t)};function bo(){const e=O([]),r=v(()=>{if(!e.value.length)return"0";const i=Math.max(...e.value);return i?`${i}px`:""});function t(i){return e.value.indexOf(i)}function l(i,a){if(i&&a){const s=t(a);e.value.splice(s,1,i)}else i&&e.value.push(i)}function o(i){const a=t(i);a>-1&&e.value.splice(a,1)}return{autoLabelWidth:r,registerLabelWidth:l,deregisterLabelWidth:o}}const L=(e,r)=>{const t=X(r);return t.length>0?e.filter(l=>l.prop&&t.includes(l.prop)):e},ho={name:"ElForm"},yo=oe({...ho,props:go,emits:vo,setup(e,{expose:r,emit:t}){const l=e,o=[],i=We(),a=te("form"),s=v(()=>{const{labelPosition:f,inline:m}=l;return[a.b(),a.m(i.value||"default"),{[a.m(`label-${f}`)]:f,[a.m("inline")]:m}]}),b=f=>{o.push(f)},_=f=>{f.prop&&o.splice(o.indexOf(f),1)},u=(f=[])=>{!l.model||L(o,f).forEach(m=>m.resetField())},p=(f=[])=>{L(o,f).forEach(m=>m.clearValidate())},x=v(()=>!!l.model),S=f=>{if(o.length===0)return[];const m=L(o,f);return m.length?m:[]},A=async f=>h(void 0,f),I=async(f=[])=>{if(!x.value)return!1;const m=S(f);if(m.length===0)return!0;let j={};for(const F of m)try{await F.validate("")}catch($){j={...j,...$}}return Object.keys(j).length===0?!0:Promise.reject(j)},h=async(f=[],m)=>{const j=!Ue(m);try{const F=await I(f);return F===!0&&(m==null||m(F)),F}catch(F){const $=F;return l.scrollToError&&w(Object.keys($)[0]),m==null||m(!1,$),j&&Promise.reject($)}},w=f=>{var m;const j=L(o,f)[0];j&&((m=j.$el)==null||m.scrollIntoView())};return B(()=>l.rules,()=>{l.validateOnRuleChange&&A().catch(f=>pt())},{deep:!0}),Pe(re,ze({...Ne(l),emit:t,resetFields:u,clearValidate:p,validateField:h,addField:b,removeField:_,...bo()})),r({validate:A,validateField:h,resetFields:u,clearValidate:p,scrollToField:w}),(f,m)=>(Q(),Re("form",{class:E(g(s))},[M(f.$slots,"default")],2))}});var _o=Be(yo,[["__file","/home/runner/work/element-plus/element-plus/packages/components/form/src/form.vue"]]);const xo=["","error","validating","success"],wo=Ee({label:String,labelWidth:{type:[String,Number],default:""},prop:{type:H([String,Array])},required:{type:Boolean,default:void 0},rules:{type:H([Object,Array])},error:String,validateStatus:{type:String,values:xo},for:String,inlineMessage:{type:[String,Boolean],default:""},showMessage:{type:Boolean,default:!0},size:{type:String,values:Le}}),Fe="ElLabelWrap";var To=oe({name:Fe,props:{isAutoWidth:Boolean,updateAll:Boolean},setup(e,{slots:r}){const t=P(re,void 0);P(J)||gt(Fe,"usage: ");const o=te("form"),i=O(),a=O(0),s=()=>{var u;if((u=i.value)!=null&&u.firstElementChild){const p=window.getComputedStyle(i.value.firstElementChild).width;return Math.ceil(Number.parseFloat(p))}else return 0},b=(u="update")=>{De(()=>{r.default&&e.isAutoWidth&&(u==="update"?a.value=s():u==="remove"&&(t==null||t.deregisterLabelWidth(a.value)))})},_=()=>b("update");return Ve(()=>{_()}),qe(()=>{b("remove")}),xt(()=>_()),B(a,(u,p)=>{e.updateAll&&(t==null||t.registerLabelWidth(u,p))}),$t(v(()=>{var u,p;return(p=(u=i.value)==null?void 0:u.firstElementChild)!=null?p:null}),_),()=>{var u,p;if(!r)return null;const{isAutoWidth:x}=e;if(x){const S=t==null?void 0:t.autoLabelWidth,A={};if(S&&S!=="auto"){const I=Math.max(0,Number.parseInt(S,10)-a.value),h=t.labelPosition==="left"?"marginRight":"marginLeft";I&&(A[h]=`${I}px`)}return z("div",{ref:i,class:[o.be("item","label-wrap")],style:A},[(u=r.default)==null?void 0:u.call(r)])}else return z(wt,{ref:i},[(p=r.default)==null?void 0:p.call(r)])}}});const So=["role","aria-labelledby"],Ao={name:"ElFormItem"},Io=oe({...Ao,props:wo,setup(e,{expose:r}){const t=e,l=Tt(),o=P(re,void 0),i=P(J,void 0),a=We(void 0,{formItem:!1}),s=te("form-item"),b=vt().value,_=O([]),u=O(""),p=bt(u,100),x=O(""),S=O();let A,I=!1;const h=v(()=>{if((o==null?void 0:o.labelPosition)==="top")return{};const n=me(t.labelWidth||(o==null?void 0:o.labelWidth)||"");return n?{width:n}:{}}),w=v(()=>{if((o==null?void 0:o.labelPosition)==="top"||(o==null?void 0:o.inline))return{};if(!t.label&&!t.labelWidth&&rt)return{};const n=me(t.labelWidth||(o==null?void 0:o.labelWidth)||"");return!t.label&&!l.label?{marginLeft:n}:{}}),f=v(()=>[s.b(),s.m(a.value),s.is("error",u.value==="error"),s.is("validating",u.value==="validating"),s.is("success",u.value==="success"),s.is("required",lt.value||t.required),s.is("no-asterisk",o==null?void 0:o.hideRequiredAsterisk),{[s.m("feedback")]:o==null?void 0:o.statusIcon}]),m=v(()=>Me(t.inlineMessage)?t.inlineMessage:(o==null?void 0:o.inlineMessage)||!1),j=v(()=>[s.e("error"),{[s.em("error","inline")]:m.value}]),F=v(()=>t.prop?Z(t.prop)?t.prop:t.prop.join("."):""),$=v(()=>!!(t.label||l.label)),U=v(()=>t.for||_.value.length===1?_.value[0]:void 0),V=v(()=>!U.value&&$.value),rt=!!i,ie=v(()=>{const n=o==null?void 0:o.model;if(!(!n||!t.prop))return k(n,t.prop).value}),q=v(()=>{const n=t.rules?X(t.rules):[],c=o==null?void 0:o.rules;if(c&&t.prop){const y=k(c,t.prop).value;y&&n.push(...X(y))}return t.required!==void 0&&n.push({required:!!t.required}),n}),ot=v(()=>q.value.length>0),nt=n=>q.value.filter(y=>!y.trigger||!n?!0:Array.isArray(y.trigger)?y.trigger.includes(n):y.trigger===n).map(({trigger:y,...T})=>T),lt=v(()=>q.value.some(n=>n.required===!0)),at=v(()=>{var n;return p.value==="error"&&t.showMessage&&((n=o==null?void 0:o.showMessage)!=null?n:!0)}),se=v(()=>`${t.label||""}${(o==null?void 0:o.labelSuffix)||""}`),C=n=>{u.value=n},it=n=>{var c,y;const{errors:T,fields:K}=n;(!T||!K)&&console.error(n),C("error"),x.value=T?(y=(c=T==null?void 0:T[0])==null?void 0:c.message)!=null?y:`${t.prop} is required`:"",o==null||o.emit("validate",t.prop,!1,x.value)},st=()=>{C("success"),o==null||o.emit("validate",t.prop,!0,"")},ut=async n=>{const c=F.value;return new Ft({[c]:n}).validate({[c]:ie.value},{firstFields:!0}).then(()=>(st(),!0)).catch(T=>(it(T),Promise.reject(T)))},ue=async(n,c)=>{if(I)return I=!1,!1;const y=Ue(c);if(!ot.value)return c==null||c(!1),!1;const T=nt(n);return T.length===0?(c==null||c(!0),!0):(C("validating"),ut(T).then(()=>(c==null||c(!0),!0)).catch(K=>{const{fields:de}=K;return c==null||c(!1,de),y?!1:Promise.reject(de)}))},D=()=>{C(""),x.value=""},fe=async()=>{const n=o==null?void 0:o.model;if(!n||!t.prop)return;const c=k(n,t.prop);Nt(c.value,A)||(I=!0),c.value=je(A),await De(),D()},ft=n=>{_.value.includes(n)||_.value.push(n)},dt=n=>{_.value=_.value.filter(c=>c!==n)};B(()=>t.error,n=>{x.value=n||"",C(n?"error":"")},{immediate:!0}),B(()=>t.validateStatus,n=>C(n||""));const G=ze({...Ne(t),$el:S,size:a,validateState:u,labelId:b,inputIds:_,isGroup:V,addInputId:ft,removeInputId:dt,resetField:fe,clearValidate:D,validate:ue});return Pe(J,G),Ve(()=>{t.prop&&(o==null||o.addField(G),A=je(ie.value))}),qe(()=>{o==null||o.removeField(G)}),r({size:a,validateMessage:x,validateState:u,validate:ue,clearValidate:D,resetField:fe}),(n,c)=>{var y;return Q(),Re("div",{ref_key:"formItemRef",ref:S,class:E(g(f)),role:g(V)?"group":void 0,"aria-labelledby":g(V)?g(b):void 0},[z(g(To),{"is-auto-width":g(h).width==="auto","update-all":((y=g(o))==null?void 0:y.labelWidth)==="auto"},{default:Y(()=>[g($)?(Q(),St(It(g(U)?"label":"div"),{key:0,id:g(b),for:g(U),class:E(g(s).e("label")),style:ge(g(h))},{default:Y(()=>[M(n.$slots,"label",{label:g(se)},()=>[At(pe(g(se)),1)])]),_:3},8,["id","for","class","style"])):ve("v-if",!0)]),_:3},8,["is-auto-width","update-all"]),be("div",{class:E(g(s).e("content")),style:ge(g(w))},[M(n.$slots,"default"),z(jt,{name:`${g(s).namespace.value}-zoom-in-top`},{default:Y(()=>[g(at)?M(n.$slots,"error",{key:0,error:x.value},()=>[be("div",{class:E(g(j))},pe(x.value),3)]):ve("v-if",!0)]),_:3},8,["name"])],6)],10,So)}}});var tt=Be(Io,[["__file","/home/runner/work/element-plus/element-plus/packages/components/form/src/form-item.vue"]]);const Eo=ht(_o,{FormItem:tt}),Lo=yt(tt);export{Lo as E,Eo as a}; diff --git a/src/main/resources/static/assets/ftp.c6a679c1.svg b/src/main/resources/static/assets/ftp.c6a679c1.svg new file mode 100644 index 0000000..1ea8f31 --- /dev/null +++ b/src/main/resources/static/assets/ftp.c6a679c1.svg @@ -0,0 +1,13 @@ + + + sftp 2 + + + + + + + + + + diff --git a/src/main/resources/static/assets/github.1e923e45.css b/src/main/resources/static/assets/github.1e923e45.css new file mode 100644 index 0000000..e78dba3 --- /dev/null +++ b/src/main/resources/static/assets/github.1e923e45.css @@ -0,0 +1 @@ +[data-v-md-anchor]{cursor:pointer}.github-markdown-body{padding:16px 32px 32px;font-size:16px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;line-height:1.5;word-wrap:break-word}.github-markdown-body>:first-child,.github-markdown-body>:last-child,.github-markdown-body>div[data-v-md-line]:first-child>:first-child,.github-markdown-body>div[data-v-md-line]:last-child>:last-child{margin-top:0!important}.github-markdown-body a{color:#0366d6;font-weight:400;text-decoration:none;outline:none;box-shadow:none}.github-markdown-body a:hover{text-decoration:underline}.github-markdown-body kbd{display:inline-block;padding:3px 5px;color:#444d56;font:11px SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;line-height:10px;vertical-align:middle;background-color:#fafbfc;border:1px solid #d1d5da;border-radius:3px;box-shadow:inset 0 -1px #d1d5da}.github-markdown-body:after,.github-markdown-body:before{display:table;content:""}.github-markdown-body:after{clear:both}.github-markdown-body a:not([href]){text-decoration:none}.github-markdown-body .absent{color:#cb2431}.github-markdown-body .anchor{float:left;margin-left:-20px;padding-right:4px;line-height:1}.github-markdown-body .anchor:focus{outline:none}.github-markdown-body blockquote,.github-markdown-body details,.github-markdown-body dl,.github-markdown-body ol,.github-markdown-body p,.github-markdown-body pre,.github-markdown-body table,.github-markdown-body ul{margin-top:0;margin-bottom:16px}.github-markdown-body hr{height:.25em;margin:24px 0;padding:0;background-color:#e1e4e8;border:0}.github-markdown-body blockquote{padding:0 1em;color:#6a737d;border-left:.25em solid #dfe2e5}.github-markdown-body blockquote>:first-child{margin-top:0}.github-markdown-body blockquote>:last-child{margin-bottom:0}.github-markdown-body h1,.github-markdown-body h2,.github-markdown-body h3,.github-markdown-body h4,.github-markdown-body h5,.github-markdown-body h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}.github-markdown-body em,.github-markdown-body i{font-style:italic}.github-markdown-body ul{list-style-type:disc}.github-markdown-body ol ul,.github-markdown-body ul ul{list-style-type:circle}.github-markdown-body ol ol ul,.github-markdown-body ol ul ul,.github-markdown-body ul ol ul,.github-markdown-body ul ul ul{list-style-type:square}.github-markdown-body ol{list-style-type:decimal}.github-markdown-body h1 .octicon-link,.github-markdown-body h2 .octicon-link,.github-markdown-body h3 .octicon-link,.github-markdown-body h4 .octicon-link,.github-markdown-body h5 .octicon-link,.github-markdown-body h6 .octicon-link{color:#1b1f23;vertical-align:middle;visibility:hidden}.github-markdown-body h1:hover .anchor,.github-markdown-body h2:hover .anchor,.github-markdown-body h3:hover .anchor,.github-markdown-body h4:hover .anchor,.github-markdown-body h5:hover .anchor,.github-markdown-body h6:hover .anchor{text-decoration:none}.github-markdown-body h1:hover .anchor .octicon-link,.github-markdown-body h2:hover .anchor .octicon-link,.github-markdown-body h3:hover .anchor .octicon-link,.github-markdown-body h4:hover .anchor .octicon-link,.github-markdown-body h5:hover .anchor .octicon-link,.github-markdown-body h6:hover .anchor .octicon-link{visibility:visible}.github-markdown-body h1 code,.github-markdown-body h1 tt,.github-markdown-body h2 code,.github-markdown-body h2 tt,.github-markdown-body h3 code,.github-markdown-body h3 tt,.github-markdown-body h4 code,.github-markdown-body h4 tt,.github-markdown-body h5 code,.github-markdown-body h5 tt,.github-markdown-body h6 code,.github-markdown-body h6 tt{font-size:inherit}.github-markdown-body h1{font-size:2em}.github-markdown-body h1,.github-markdown-body h2{padding-bottom:.3em;border-bottom:1px solid #eaecef}.github-markdown-body h2{font-size:1.5em}.github-markdown-body h3{font-size:1.25em}.github-markdown-body h4{font-size:1em}.github-markdown-body h5{font-size:.875em}.github-markdown-body h6{color:#6a737d;font-size:.85em}.github-markdown-body ol,.github-markdown-body ul{padding-left:2em}.github-markdown-body ol.no-list,.github-markdown-body ul.no-list{padding:0;list-style-type:none}.github-markdown-body ol ol,.github-markdown-body ol ul,.github-markdown-body ul ol,.github-markdown-body ul ul{margin-top:0;margin-bottom:0}.github-markdown-body li{word-wrap:break-all}.github-markdown-body li>p{margin-top:16px}.github-markdown-body li+li{margin-top:.25em}.github-markdown-body dl{padding:0}.github-markdown-body dl dt{margin-top:16px;padding:0;font-weight:600;font-size:1em;font-style:italic}.github-markdown-body dl dd{margin-bottom:16px;padding:0 16px}.github-markdown-body table{display:block;width:100%;overflow:auto;border-collapse:collapse;border-spacing:0}.github-markdown-body table th{font-weight:600}.github-markdown-body table td,.github-markdown-body table th{padding:6px 13px;border:1px solid #dfe2e5}.github-markdown-body table tr{background-color:#fff;border-top:1px solid #c6cbd1}.github-markdown-body table tr:nth-child(2n){background-color:#f6f8fa}.github-markdown-body table img{background-color:initial}.github-markdown-body img{box-sizing:initial;max-width:100%;background-color:#fff;border:0}.github-markdown-body img[align=right]{padding-left:20px}.github-markdown-body img[align=left]{padding-right:20px}.github-markdown-body .emoji{max-width:none;vertical-align:text-top;background-color:initial}.github-markdown-body span.frame{display:block;overflow:hidden}.github-markdown-body span.frame>span{display:block;float:left;width:auto;margin:13px 0 0;padding:7px;overflow:hidden;border:1px solid #dfe2e5}.github-markdown-body span.frame span img{display:block;float:left}.github-markdown-body span.frame span span{display:block;clear:both;padding:5px 0 0;color:#24292e}.github-markdown-body span.align-center{display:block;clear:both;overflow:hidden}.github-markdown-body span.align-center>span{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.github-markdown-body span.align-center span img{margin:0 auto;text-align:center}.github-markdown-body span.align-right{display:block;clear:both;overflow:hidden}.github-markdown-body span.align-right>span{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.github-markdown-body span.align-right span img{margin:0;text-align:right}.github-markdown-body span.float-left{display:block;float:left;margin-right:13px;overflow:hidden}.github-markdown-body span.float-left span{margin:13px 0 0}.github-markdown-body span.float-right{display:block;float:right;margin-left:13px;overflow:hidden}.github-markdown-body span.float-right>span{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.github-markdown-body code,.github-markdown-body tt{margin:0;padding:.2em .4em;font-size:85%;background-color:#1b1f230d;border-radius:3px}.github-markdown-body code br,.github-markdown-body tt br{display:none}.github-markdown-body del code{text-decoration:inherit}.github-markdown-body div[class*=v-md-pre-wrapper-]{position:relative;background-color:#f6f8fa}.github-markdown-body div[class*=v-md-pre-wrapper-] pre,.github-markdown-body div[class*=v-md-pre-wrapper-] pre[class*=v-md-prism-]{position:relative;z-index:1;background:transparent}.github-markdown-body div[class*=v-md-pre-wrapper-].line-numbers-mode pre{padding-left:4.5rem}.github-markdown-body div[class*=v-md-pre-wrapper-].line-numbers-mode:after{position:absolute;top:0;left:0;z-index:2;width:3.5rem;height:100%;background-color:#f6f8fa;border-right:1px solid #dcdfe6;border-radius:6px 0 0 6px;content:""}.github-markdown-body div[class*=v-md-pre-wrapper-].line-numbers-mode .line-numbers-wrapper{position:absolute;top:0;width:3.5rem;padding:16px 0;color:#909399;font-size:85%;line-height:1.45;text-align:center}.github-markdown-body div[class*=v-md-pre-wrapper-].line-numbers-mode .line-numbers-wrapper .line-number{position:relative;z-index:4;font-size:.85em;-webkit-user-select:none;user-select:none}.github-markdown-body code,.github-markdown-body pre{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}.github-markdown-body pre>code{margin:0;padding:0;font-size:100%;white-space:pre;word-break:normal;background:transparent;border:0}.github-markdown-body pre{margin-bottom:16px;padding:16px;overflow:auto;font-size:85%;line-height:1.45;word-wrap:normal;background-color:#f6f8fa;border-radius:3px}.github-markdown-body pre code,.github-markdown-body pre tt{display:inline;max-width:auto;margin:0;padding:0;overflow:visible;color:#444d56;line-height:inherit;word-wrap:normal;background-color:initial;border:0}.github-markdown-body .csv-data td,.github-markdown-body .csv-data th{padding:5px;overflow:hidden;font-size:12px;line-height:1;white-space:nowrap;text-align:left}.github-markdown-body .csv-data .blob-num{padding:10px 8px 9px;text-align:right;background:#fff;border:0}.github-markdown-body .csv-data tr{border-top:0}.github-markdown-body .csv-data th{font-weight:600;background:#f6f8fa;border-top:0}.github-markdown-body .hljs{display:block;padding:.5em;overflow-x:auto;color:#333;background:#f8f8f8}.github-markdown-body .hljs-comment,.github-markdown-body .hljs-quote{color:#998;font-style:italic}.github-markdown-body .hljs-keyword,.github-markdown-body .hljs-selector-tag,.github-markdown-body .hljs-subst{color:#333;font-weight:700}.github-markdown-body .hljs-literal,.github-markdown-body .hljs-number,.github-markdown-body .hljs-tag .hljs-attr,.github-markdown-body .hljs-template-variable,.github-markdown-body .hljs-variable{color:teal}.github-markdown-body .hljs-doctag,.github-markdown-body .hljs-string{color:#d14}.github-markdown-body .hljs-section,.github-markdown-body .hljs-selector-id,.github-markdown-body .hljs-title{color:#900;font-weight:700}.github-markdown-body .hljs-subst{font-weight:400}.github-markdown-body .hljs-class .hljs-title,.github-markdown-body .hljs-type{color:#458;font-weight:700}.github-markdown-body .hljs-attribute,.github-markdown-body .hljs-name,.github-markdown-body .hljs-tag{color:navy;font-weight:400}.github-markdown-body .hljs-link,.github-markdown-body .hljs-regexp{color:#009926}.github-markdown-body .hljs-bullet,.github-markdown-body .hljs-symbol{color:#990073}.github-markdown-body .hljs-built_in,.github-markdown-body .hljs-builtin-name{color:#0086b3}.github-markdown-body .hljs-meta{color:#999;font-weight:700}.github-markdown-body .hljs-deletion{background:#fdd}.github-markdown-body .hljs-addition{background:#dfd}.github-markdown-body .hljs-emphasis{font-style:italic}.github-markdown-body .hljs-strong{font-weight:700} diff --git a/src/main/resources/static/assets/github.6902a714.js b/src/main/resources/static/assets/github.6902a714.js new file mode 100644 index 0000000..f0b07b0 --- /dev/null +++ b/src/main/resources/static/assets/github.6902a714.js @@ -0,0 +1,19 @@ +import{K as J,M as W}from"./index.bbf7818f.js";function Y(U,Z){return Z.forEach(function(b){b&&typeof b!="string"&&!Array.isArray(b)&&Object.keys(b).forEach(function(x){if(x!=="default"&&!(x in U)){var g=Object.getOwnPropertyDescriptor(b,x);Object.defineProperty(U,x,g.get?g:{enumerable:!0,get:function(){return b[x]}})}})}),Object.freeze(Object.defineProperty(U,Symbol.toStringTag,{value:"Module"}))}var V={exports:{}};(function(U,Z){(function(b,x){U.exports=x()})(typeof self!="undefined"?self:W,function(){return function(b){var x={};function g(a){if(x[a])return x[a].exports;var t=x[a]={i:a,l:!1,exports:{}};return b[a].call(t.exports,t,t.exports,g),t.l=!0,t.exports}return g.m=b,g.c=x,g.d=function(a,t,e){g.o(a,t)||Object.defineProperty(a,t,{enumerable:!0,get:e})},g.r=function(a){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})},g.t=function(a,t){if(1&t&&(a=g(a)),8&t||4&t&&typeof a=="object"&&a&&a.__esModule)return a;var e=Object.create(null);if(g.r(e),Object.defineProperty(e,"default",{enumerable:!0,value:a}),2&t&&typeof a!="string")for(var r in a)g.d(e,r,function(n){return a[n]}.bind(null,r));return e},g.n=function(a){var t=a&&a.__esModule?function(){return a.default}:function(){return a};return g.d(t,"a",t),t},g.o=function(a,t){return Object.prototype.hasOwnProperty.call(a,t)},g.p="",g(g.s=82)}([function(b,x,g){var a=Object.prototype.hasOwnProperty;function t(d,k){return a.call(d,k)}function e(d){return!(d>=55296&&d<=57343)&&!(d>=64976&&d<=65007)&&(65535&d)!=65535&&(65535&d)!=65534&&!(d>=0&&d<=8)&&d!==11&&!(d>=14&&d<=31)&&!(d>=127&&d<=159)&&!(d>1114111)}function r(d){if(d>65535){var k=55296+((d-=65536)>>10),y=56320+(1023&d);return String.fromCharCode(k,y)}return String.fromCharCode(d)}var n=/\\([!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])/g,o=new RegExp(n.source+"|"+/&([a-z#][a-z0-9]{1,31});/gi.source,"gi"),i=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i,s=g(7),l=/[&<>"]/,u=/[&<>"]/g,c={"&":"&","<":"<",">":">",'"':"""};function f(d){return c[d]}var p=/[.?*+^$[\]\\(){}|-]/g,h=g(3);x.lib={},x.lib.mdurl=g(8),x.lib.ucmicro=g(26),x.assign=function(d){var k=Array.prototype.slice.call(arguments,1);return k.forEach(function(y){if(y){if(typeof y!="object")throw new TypeError(y+"must be object");Object.keys(y).forEach(function(v){d[v]=y[v]})}}),d},x.isString=function(d){return function(k){return Object.prototype.toString.call(k)}(d)==="[object String]"},x.has=t,x.unescapeMd=function(d){return d.indexOf("\\")<0?d:d.replace(n,"$1")},x.unescapeAll=function(d){return d.indexOf("\\")<0&&d.indexOf("&")<0?d:d.replace(o,function(k,y,v){return y||function(_,m){var q=0;return t(s,m)?s[m]:m.charCodeAt(0)===35&&i.test(m)&&e(q=m[1].toLowerCase()==="x"?parseInt(m.slice(2),16):parseInt(m.slice(1),10))?r(q):_}(k,v)})},x.isValidEntityCode=e,x.fromCodePoint=r,x.escapeHtml=function(d){return l.test(d)?d.replace(u,f):d},x.arrayReplaceAt=function(d,k,y){return[].concat(d.slice(0,k),y,d.slice(k+1))},x.isSpace=function(d){switch(d){case 9:case 32:return!0}return!1},x.isWhiteSpace=function(d){if(d>=8192&&d<=8202)return!0;switch(d){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1},x.isMdAsciiPunct=function(d){switch(d){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}},x.isPunctChar=function(d){return h.test(d)},x.escapeRE=function(d){return d.replace(p,"\\$&")},x.normalizeReference=function(d){return d=d.trim().replace(/\s+/g," "),"\u1E9E".toLowerCase()==="\u1E7E"&&(d=d.replace(/ẞ/g,"\xDF")),d.toLowerCase().toUpperCase()}},function(b,x,g){function a(){return(a=Object.assign||function(t){for(var e=1;e'+d+""}}x.b=function(){var n=new t.a;return n.set({html:!0,breaks:!0,linkify:!1,typographer:!0}),n}},function(b,x){b.exports=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4E\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/},function(b,x,g){function a(){this.__rules__=[],this.__cache__=null}a.prototype.__find__=function(t){for(var e=0;e=0&&(r=this.attrs[e][1]),r},a.prototype.attrJoin=function(t,e){var r=this.attrIndex(t);r<0?this.attrPush([t,e]):this.attrs[r][1]=this.attrs[r][1]+" "+e},b.exports=a},function(b,x,g){const a=/[\u0000-\u001f]/g,t=/[\s~`!@#$%^&*()\-_+=[\]{}|\\;:"'“”‘’–—<>,.?/]+/g,e=/[\u0300-\u036F]/g;b.exports=function(r){return r.normalize("NFKD").replace(e,"").replace(a,"").replace(t,"-").replace(/\-{2,}/g,"-").replace(/^\-+|\-+$/g,"").replace(/^(\d)/,"_$1").toLowerCase()}},function(b,x,g){b.exports=g(21)},function(b,x,g){b.exports.encode=g(22),b.exports.decode=g(23),b.exports.format=g(24),b.exports.parse=g(25)},function(b,x){b.exports=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/},function(b,x){b.exports=/[\0-\x1F\x7F-\x9F]/},function(b,x){b.exports=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/},function(b,x,g){var a=`<[A-Za-z][A-Za-z0-9\\-]*(?:\\s+[a-zA-Z_:][a-zA-Z0-9:._-]*(?:\\s*=\\s*(?:[^"'=<>\`\\x00-\\x20]+|'[^']*'|"[^"]*"))?)*\\s*\\/?>`,t="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",e=new RegExp("^(?:"+a+"|"+t+"|||<[?][\\s\\S]*?[?]>|]*>|)"),r=new RegExp("^(?:"+a+"|"+t+")");b.exports.HTML_TAG_RE=e,b.exports.HTML_OPEN_CLOSE_TAG_RE=r},function(b,x,g){function a(t,e){var r,n,o,i,s,l=[],u=e.length;for(r=0;r=0;r--)(n=e[r]).marker!==95&&n.marker!==42||n.end!==-1&&(o=e[n.end],l=r>0&&e[r-1].end===n.end+1&&e[r-1].marker===n.marker&&e[r-1].token===n.token-1&&e[n.end+1].token===o.token+1,s=String.fromCharCode(n.marker),(i=t.tokens[n.token]).type=l?"strong_open":"em_open",i.tag=l?"strong":"em",i.nesting=1,i.markup=l?s+s:s,i.content="",(i=t.tokens[o.token]).type=l?"strong_close":"em_close",i.tag=l?"strong":"em",i.nesting=-1,i.markup=l?s+s:s,i.content="",l&&(t.tokens[e[r-1].token].content="",t.tokens[e[n.end+1].token].content="",r--))}b.exports.tokenize=function(t,e){var r,n,o=t.pos,i=t.src.charCodeAt(o);if(e||i!==95&&i!==42)return!1;for(n=t.scanDelims(t.pos,i===42),r=0;r=0?p[h]:p[p.length+h]);var p,h;if(f===void 0)return u;for(let d in l)if(d!=="shift"&&d!=="position"){if(f[d]===void 0)return u;if(d==="children"&&r(l.children)){if(f.children.length===0)return u;let k,y=l.children,v=f.children;if(y.every(_=>_.position!==void 0)){if(k=y.every(_=>e(v,_.position,_).match),k){let _=o(y).position;u.j=_>=0?_:v.length+_}}else for(let _=0;_e(v,_,m).match),k){u.j=_;break}if(k===!1)return u}else switch(typeof l[d]){case"boolean":case"number":case"string":if(f[d]!==l[d])return u;break;case"function":if(!l[d](f[d]))return u;break;case"object":if(n(l[d])){if(l[d].every(k=>k(f[d]))===!1)return u;break}default:throw new Error(`Unknown type of pattern test (key: ${d}). Test should be of type boolean, number, string, function or array of functions.`)}}return u.match=!0,u}function r(i){return Array.isArray(i)&&i.length&&i.every(s=>typeof s=="object")}function n(i){return Array.isArray(i)&&i.length&&i.every(s=>typeof s=="function")}function o(i){return i.slice(-1)[0]||{}}b.exports=function(i,s){let l=Object.assign({},t);l=Object.assign(l,s);const u=a(l);i.core.ruler.before("linkify","curly_attributes",function(c){let f=c.tokens;for(let p=0;p{let v=e(f,p,y);return v.j!==null&&(k=v.j),v.match})&&(d.transform(f,p,k),d.name!=="inline attributes"&&d.name!=="inline nesting 0"||h--)}})}},function(b,x,g){b.exports=g(20)},function(b,x,g){g.r(x),g.d(x,"default",function(){return p});var a=g(1),t=g(15),e=g.n(t),r=function(h,d){var k=(d===void 0?{}:d).lineMarkup,y=k===void 0?"data-line":k,v=function(A,w,C,D,E){return E.renderToken(A,w,C)};function _(A){return function(w,C,D,E,S){var F=w[C];return F.attrPush([y,F.map[0]+1]),A(w,C,D,E,S)}}function m(A){return function(w,C,D,E,S){var F=A(w,C,D,E,S),L=w[C].map[0]+1;return"
    '+F+"
    "}}var q={table_open:_,blockquote_open:_,bullet_list_open:_,ordered_list_open:_,reference_open:_,heading_open:_,lheading_open:_,paragraph_open:_,hr:_,html_block:m,code_block:m,fence:m};Object.keys(q).forEach(function(A){var w=h.renderer.rules[A]||v;h.renderer.rules[A]=q[A](w)})},n=function(h,d){d===void 0&&(d={});var k=d.getMarks;k&&h.core.ruler.push("anchor",function(y){var v={},_=y.tokens;_.filter(function(m){return m.type==="heading_open"}).forEach(function(m){var q=_[_.indexOf(m)+1].content,A=Number(m.tag.substr(1));v[q]=q in v?Number(v[q])+1:"";var w=k(q,A,v[q]);w&&w.forEach(function(C){var D=C.attr,E=C.value;m.attrPush([D,E])})})})},o={includeLevel:[2,3],containerClass:"table-of-contents",listClass:"table-of-content-list",listItemClass:"table-of-content-list-item",markerPattern:/^\[\[toc\]\]/im,listType:"ul",getAnchorAttrs:function(){return[]},format:void 0,forceFullToc:!1,containerHeaderHtml:void 0,containerFooterHtml:void 0,transformLink:void 0},i=function(h,d){var k,y=Object(a.a)({},o,d),v=y.markerPattern;function _(m,q,A){for(var w,C,D=[],E="",S=q.length,F=m;Fw){E+=(C=_(F,q,A))[1],F=C[0];continue}if(I'+D.join("")+""];I==w&&(E+="",D.push(E))}else w=I;var B=z.children.reduce(function(j,O){return j+O.content},""),R=z.content,M=A[R]=R in A?Number(A[R])+1:"",T=y.getAnchorAttrs(R,I,M);E='
  • + ",E+=B,E+="",F++}else F++}return E+=E===""?"":"
  • ",D.push(E),[F,"<"+y.listType+' class="'+y.listClass+'">'+D.join("")+""]}h.renderer.rules.toc_open=function(m,q){var A='
    ';return y.containerHeaderHtml&&(A+=y.containerHeaderHtml),A},h.renderer.rules.toc_close=function(m,q){var A="";return y.containerFooterHtml&&(A=y.containerFooterHtml),A+"
    "},h.renderer.rules.toc_body=function(m,q){var A={};if(y.forceFullToc){for(var w="",C=0,D=k&&k.tokens&&k.tokens.length;C
    '+L+"
    "}},_=h.renderer.rules,m=_.fence,q=_.code_block;h.renderer.rules.fence=v(m),h.renderer.rules.code_block=v(q)},l=function(h,d){var k=d.externalAttrs,y=d.openLinkIcon,v=d.openLinkIconClass,_=!1;h.renderer.rules.link_open=function(m,q,A,w,C){var D=m[q],E=D.attrIndex("href");if(E>=0){var S=D.attrs[E][1];/^https?:/.test(S)&&(Object.keys(k).forEach(function(F){D.attrSet(F,k[F])}),/_blank/i.test(k.target)&&(_=!0))}return C.renderToken(m,q,A)},h.renderer.rules.link_close=function(m,q,A,w,C){return _&&(_=!1,y)?v?''+C.renderToken(m,q,A):''+C.renderToken(m,q,A):C.renderToken(m,q,A)}},u=g(6),c=g.n(u),f=g(2);function p(h){var d=h===void 0?{}:h,k=d.toc,y=d.link,v=d.attrs,_=Object(f.b)();return _.use(l,Object(a.a)({externalAttrs:{target:"_blank"}},y)).use(s,{getWrapperClass:function(m){return"v-md-pre-wrapper v-md-pre-wrapper-"+m}}).use(e.a,Object(a.a)({leftDelimiter:"{{{",rightDelimiter:"}}}"},v,{allowedAttributes:["width","height"].concat(v==null?void 0:v.allowedAttributes)})).use(n,{getMarks:function(m,q,A){return[{attr:"data-v-md-heading",value:c()(m)+(A?"-"+A:"")}]}}).use(i,Object(a.a)({listClass:"v-md-toc",listItemClass:"v-md-toc-item",getAnchorAttrs:function(m,q,A){return[{attr:"data-v-md-anchor",value:c()(m)+(A?"-"+A:"")}]}},k)).use(r,{lineMarkup:"data-v-md-line"}),{previewClass:"markdown-body",extend:function(m){m(_)},markdownParser:_}}},function(b,x,g){const a=g(19);function t(e){return e.slice(-1)[0]}b.exports=e=>{const r=new RegExp("^ {0,3}[-*_]{3,} ?"+a.escapeRegExp(e.leftDelimiter)+"[^"+a.escapeRegExp(e.rightDelimiter)+"]");return[{name:"fenced code blocks",tests:[{shift:0,block:!0,info:a.hasDelimiters("end",e)}],transform:(n,o)=>{let i=n[o],s=i.info.lastIndexOf(e.leftDelimiter),l=a.getAttrs(i.info,s,e);a.addAttrs(l,i),i.info=a.removeDelimiter(i.info,e)}},{name:"inline nesting 0",tests:[{shift:0,type:"inline",children:[{shift:-1,type:n=>n==="image"||n==="code_inline"},{shift:0,type:"text",content:a.hasDelimiters("start",e)}]}],transform:(n,o,i)=>{let s=n[o].children[i],l=s.content.indexOf(e.rightDelimiter),u=n[o].children[i-1],c=a.getAttrs(s.content,0,e);a.addAttrs(c,u),s.content.length===l+e.rightDelimiter.length?n[o].children.splice(i,1):s.content=s.content.slice(l+e.rightDelimiter.length)}},{name:"tables",tests:[{shift:0,type:"table_close"},{shift:1,type:"paragraph_open"},{shift:2,type:"inline",content:a.hasDelimiters("only",e)}],transform:(n,o)=>{let i=n[o+2],s=a.getMatchingOpeningToken(n,o),l=a.getAttrs(i.content,0,e);a.addAttrs(l,s),n.splice(o+1,3)}},{name:"inline attributes",tests:[{shift:0,type:"inline",children:[{shift:-1,nesting:-1},{shift:0,type:"text",content:a.hasDelimiters("start",e)}]}],transform:(n,o,i)=>{let s=n[o].children[i],l=s.content,u=a.getAttrs(l,0,e),c=a.getMatchingOpeningToken(n[o].children,i-1);a.addAttrs(u,c),s.content=l.slice(l.indexOf(e.rightDelimiter)+e.rightDelimiter.length)}},{name:"list softbreak",tests:[{shift:-2,type:"list_item_open"},{shift:0,type:"inline",children:[{position:-2,type:"softbreak"},{position:-1,type:"text",content:a.hasDelimiters("only",e)}]}],transform:(n,o,i)=>{let s=n[o].children[i].content,l=a.getAttrs(s,0,e),u=o-2;for(;n[u-1]&&n[u-1].type!=="ordered_list_open"&&n[u-1].type!=="bullet_list_open";)u--;a.addAttrs(l,n[u-1]),n[o].children=n[o].children.slice(0,-2)}},{name:"list double softbreak",tests:[{shift:0,type:n=>n==="bullet_list_close"||n==="ordered_list_close"},{shift:1,type:"paragraph_open"},{shift:2,type:"inline",content:a.hasDelimiters("only",e),children:n=>n.length===1},{shift:3,type:"paragraph_close"}],transform:(n,o)=>{let i=n[o+2].content,s=a.getAttrs(i,0,e),l=a.getMatchingOpeningToken(n,o);a.addAttrs(s,l),n.splice(o+1,3)}},{name:"list item end",tests:[{shift:-2,type:"list_item_open"},{shift:0,type:"inline",children:[{position:-1,type:"text",content:a.hasDelimiters("end",e)}]}],transform:(n,o,i)=>{let s=n[o].children[i],l=s.content,u=a.getAttrs(l,l.lastIndexOf(e.leftDelimiter),e);a.addAttrs(u,n[o-2]);let c=l.slice(0,l.lastIndexOf(e.leftDelimiter));s.content=t(c)!==" "?c:c.slice(0,-1)}},{name:` +{.a} softbreak then curly in start`,tests:[{shift:0,type:"inline",children:[{position:-2,type:"softbreak"},{position:-1,type:"text",content:a.hasDelimiters("only",e)}]}],transform:(n,o,i)=>{let s=n[o].children[i],l=a.getAttrs(s.content,0,e),u=o+1;for(;n[u+1]&&n[u+1].nesting===-1;)u++;let c=a.getMatchingOpeningToken(n,u);a.addAttrs(l,c),n[o].children=n[o].children.slice(0,-2)}},{name:"horizontal rule",tests:[{shift:0,type:"paragraph_open"},{shift:1,type:"inline",children:n=>n.length===1,content:n=>n.match(r)!==null},{shift:2,type:"paragraph_close"}],transform:(n,o)=>{let i=n[o];i.type="hr",i.tag="hr",i.nesting=0;let s=n[o+1].content,l=s.lastIndexOf(e.leftDelimiter);i.attrs=a.getAttrs(s,l,e),i.markup=s,n.splice(o+1,2)}},{name:"end of block",tests:[{shift:0,type:"inline",children:[{position:-1,content:a.hasDelimiters("end",e),type:n=>n!=="code_inline"}]}],transform:(n,o,i)=>{let s=n[o].children[i],l=s.content,u=a.getAttrs(l,l.lastIndexOf(e.leftDelimiter),e),c=o+1;for(;n[c+1]&&n[c+1].nesting===-1;)c++;let f=a.getMatchingOpeningToken(n,c);a.addAttrs(u,f);let p=l.slice(0,l.lastIndexOf(e.leftDelimiter));s.content=t(p)!==" "?p:p.slice(0,-1)}}]}},function(b,x,g){function a(o){return o.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")}x.getAttrs=function(o,i,s){const l=/[^\t\n\f />"'=]/,u=[];let c="",f="",p=!0,h=!1;for(let d=i+s.leftDelimiter.length;d=p+1:d.length>=p}(s.substring(l,u+i.rightDelimiter.length))}},x.removeDelimiter=function(o,i){const s=a(i.leftDelimiter),l=a(i.rightDelimiter);let u=new RegExp("[ \\n]?"+s+"[^"+s+l+"]+"+l+"$"),c=o.search(u);return c!==-1?o.slice(0,c):o},x.escapeRegExp=a,x.getMatchingOpeningToken=function(o,i){if(o[i].type==="softbreak")return!1;if(o[i].nesting===0)return o[i];let s=o[i].level,l=o[i].type.replace("_close","_open");for(;i>=0;--i)if(o[i].type===l&&o[i].level===s)return o[i]};let t=/[&<>"]/,e=/[&<>"]/g,r={"&":"&","<":"<",">":">",'"':"""};function n(o){return r[o]}x.escapeHtml=function(o){return t.test(o)?o.replace(e,n):o}},function(b,x,g){var a=g(0),t=g(28),e=g(32),r=g(33),n=g(41),o=g(55),i=g(68),s=g(8),l=g(70),u={default:g(73),zero:g(74),commonmark:g(75)},c=/^(vbscript|javascript|file|data):/,f=/^data:image\/(gif|png|jpeg|webp);/;function p(v){var _=v.trim().toLowerCase();return!c.test(_)||!!f.test(_)}var h=["http:","https:","mailto:"];function d(v){var _=s.parse(v,!0);if(_.hostname&&(!_.protocol||h.indexOf(_.protocol)>=0))try{_.hostname=l.toASCII(_.hostname)}catch{}return s.encode(s.format(_))}function k(v){var _=s.parse(v,!0);if(_.hostname&&(!_.protocol||h.indexOf(_.protocol)>=0))try{_.hostname=l.toUnicode(_.hostname)}catch{}return s.decode(s.format(_),s.decode.defaultChars+"%")}function y(v,_){if(!(this instanceof y))return new y(v,_);_||a.isString(v)||(_=v||{},v="default"),this.inline=new o,this.block=new n,this.core=new r,this.renderer=new e,this.linkify=new i,this.validateLink=p,this.normalizeLink=d,this.normalizeLinkText=k,this.utils=a,this.helpers=a.assign({},t),this.options={},this.configure(v),_&&this.set(_)}y.prototype.set=function(v){return a.assign(this.options,v),this},y.prototype.configure=function(v){var _,m=this;if(a.isString(v)&&!(v=u[_=v]))throw new Error('Wrong `markdown-it` preset "'+_+'", check name');if(!v)throw new Error("Wrong `markdown-it` preset, can't be empty");return v.options&&m.set(v.options),v.components&&Object.keys(v.components).forEach(function(q){v.components[q].rules&&m[q].ruler.enableOnly(v.components[q].rules),v.components[q].rules2&&m[q].ruler2.enableOnly(v.components[q].rules2)}),this},y.prototype.enable=function(v,_){var m=[];Array.isArray(v)||(v=[v]),["core","block","inline"].forEach(function(A){m=m.concat(this[A].ruler.enable(v,!0))},this),m=m.concat(this.inline.ruler2.enable(v,!0));var q=v.filter(function(A){return m.indexOf(A)<0});if(q.length&&!_)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+q);return this},y.prototype.disable=function(v,_){var m=[];Array.isArray(v)||(v=[v]),["core","block","inline"].forEach(function(A){m=m.concat(this[A].ruler.disable(v,!0))},this),m=m.concat(this.inline.ruler2.disable(v,!0));var q=v.filter(function(A){return m.indexOf(A)<0});if(q.length&&!_)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+q);return this},y.prototype.use=function(v){var _=[this].concat(Array.prototype.slice.call(arguments,1));return v.apply(v,_),this},y.prototype.parse=function(v,_){if(typeof v!="string")throw new Error("Input data should be a String");var m=new this.core.State(v,this,_);return this.core.process(m),m.tokens},y.prototype.render=function(v,_){return _=_||{},this.renderer.render(this.parse(v,_),this.options,_)},y.prototype.parseInline=function(v,_){var m=new this.core.State(v,this,_);return m.inlineMode=!0,this.core.process(m),m.tokens},y.prototype.renderInline=function(v,_){return _=_||{},this.renderer.render(this.parseInline(v,_),this.options,_)},b.exports=y},function(b){b.exports=JSON.parse('{"Aacute":"\xC1","aacute":"\xE1","Abreve":"\u0102","abreve":"\u0103","ac":"\u223E","acd":"\u223F","acE":"\u223E\u0333","Acirc":"\xC2","acirc":"\xE2","acute":"\xB4","Acy":"\u0410","acy":"\u0430","AElig":"\xC6","aelig":"\xE6","af":"\u2061","Afr":"\u{1D504}","afr":"\u{1D51E}","Agrave":"\xC0","agrave":"\xE0","alefsym":"\u2135","aleph":"\u2135","Alpha":"\u0391","alpha":"\u03B1","Amacr":"\u0100","amacr":"\u0101","amalg":"\u2A3F","amp":"&","AMP":"&","andand":"\u2A55","And":"\u2A53","and":"\u2227","andd":"\u2A5C","andslope":"\u2A58","andv":"\u2A5A","ang":"\u2220","ange":"\u29A4","angle":"\u2220","angmsdaa":"\u29A8","angmsdab":"\u29A9","angmsdac":"\u29AA","angmsdad":"\u29AB","angmsdae":"\u29AC","angmsdaf":"\u29AD","angmsdag":"\u29AE","angmsdah":"\u29AF","angmsd":"\u2221","angrt":"\u221F","angrtvb":"\u22BE","angrtvbd":"\u299D","angsph":"\u2222","angst":"\xC5","angzarr":"\u237C","Aogon":"\u0104","aogon":"\u0105","Aopf":"\u{1D538}","aopf":"\u{1D552}","apacir":"\u2A6F","ap":"\u2248","apE":"\u2A70","ape":"\u224A","apid":"\u224B","apos":"\'","ApplyFunction":"\u2061","approx":"\u2248","approxeq":"\u224A","Aring":"\xC5","aring":"\xE5","Ascr":"\u{1D49C}","ascr":"\u{1D4B6}","Assign":"\u2254","ast":"*","asymp":"\u2248","asympeq":"\u224D","Atilde":"\xC3","atilde":"\xE3","Auml":"\xC4","auml":"\xE4","awconint":"\u2233","awint":"\u2A11","backcong":"\u224C","backepsilon":"\u03F6","backprime":"\u2035","backsim":"\u223D","backsimeq":"\u22CD","Backslash":"\u2216","Barv":"\u2AE7","barvee":"\u22BD","barwed":"\u2305","Barwed":"\u2306","barwedge":"\u2305","bbrk":"\u23B5","bbrktbrk":"\u23B6","bcong":"\u224C","Bcy":"\u0411","bcy":"\u0431","bdquo":"\u201E","becaus":"\u2235","because":"\u2235","Because":"\u2235","bemptyv":"\u29B0","bepsi":"\u03F6","bernou":"\u212C","Bernoullis":"\u212C","Beta":"\u0392","beta":"\u03B2","beth":"\u2136","between":"\u226C","Bfr":"\u{1D505}","bfr":"\u{1D51F}","bigcap":"\u22C2","bigcirc":"\u25EF","bigcup":"\u22C3","bigodot":"\u2A00","bigoplus":"\u2A01","bigotimes":"\u2A02","bigsqcup":"\u2A06","bigstar":"\u2605","bigtriangledown":"\u25BD","bigtriangleup":"\u25B3","biguplus":"\u2A04","bigvee":"\u22C1","bigwedge":"\u22C0","bkarow":"\u290D","blacklozenge":"\u29EB","blacksquare":"\u25AA","blacktriangle":"\u25B4","blacktriangledown":"\u25BE","blacktriangleleft":"\u25C2","blacktriangleright":"\u25B8","blank":"\u2423","blk12":"\u2592","blk14":"\u2591","blk34":"\u2593","block":"\u2588","bne":"=\u20E5","bnequiv":"\u2261\u20E5","bNot":"\u2AED","bnot":"\u2310","Bopf":"\u{1D539}","bopf":"\u{1D553}","bot":"\u22A5","bottom":"\u22A5","bowtie":"\u22C8","boxbox":"\u29C9","boxdl":"\u2510","boxdL":"\u2555","boxDl":"\u2556","boxDL":"\u2557","boxdr":"\u250C","boxdR":"\u2552","boxDr":"\u2553","boxDR":"\u2554","boxh":"\u2500","boxH":"\u2550","boxhd":"\u252C","boxHd":"\u2564","boxhD":"\u2565","boxHD":"\u2566","boxhu":"\u2534","boxHu":"\u2567","boxhU":"\u2568","boxHU":"\u2569","boxminus":"\u229F","boxplus":"\u229E","boxtimes":"\u22A0","boxul":"\u2518","boxuL":"\u255B","boxUl":"\u255C","boxUL":"\u255D","boxur":"\u2514","boxuR":"\u2558","boxUr":"\u2559","boxUR":"\u255A","boxv":"\u2502","boxV":"\u2551","boxvh":"\u253C","boxvH":"\u256A","boxVh":"\u256B","boxVH":"\u256C","boxvl":"\u2524","boxvL":"\u2561","boxVl":"\u2562","boxVL":"\u2563","boxvr":"\u251C","boxvR":"\u255E","boxVr":"\u255F","boxVR":"\u2560","bprime":"\u2035","breve":"\u02D8","Breve":"\u02D8","brvbar":"\xA6","bscr":"\u{1D4B7}","Bscr":"\u212C","bsemi":"\u204F","bsim":"\u223D","bsime":"\u22CD","bsolb":"\u29C5","bsol":"\\\\","bsolhsub":"\u27C8","bull":"\u2022","bullet":"\u2022","bump":"\u224E","bumpE":"\u2AAE","bumpe":"\u224F","Bumpeq":"\u224E","bumpeq":"\u224F","Cacute":"\u0106","cacute":"\u0107","capand":"\u2A44","capbrcup":"\u2A49","capcap":"\u2A4B","cap":"\u2229","Cap":"\u22D2","capcup":"\u2A47","capdot":"\u2A40","CapitalDifferentialD":"\u2145","caps":"\u2229\uFE00","caret":"\u2041","caron":"\u02C7","Cayleys":"\u212D","ccaps":"\u2A4D","Ccaron":"\u010C","ccaron":"\u010D","Ccedil":"\xC7","ccedil":"\xE7","Ccirc":"\u0108","ccirc":"\u0109","Cconint":"\u2230","ccups":"\u2A4C","ccupssm":"\u2A50","Cdot":"\u010A","cdot":"\u010B","cedil":"\xB8","Cedilla":"\xB8","cemptyv":"\u29B2","cent":"\xA2","centerdot":"\xB7","CenterDot":"\xB7","cfr":"\u{1D520}","Cfr":"\u212D","CHcy":"\u0427","chcy":"\u0447","check":"\u2713","checkmark":"\u2713","Chi":"\u03A7","chi":"\u03C7","circ":"\u02C6","circeq":"\u2257","circlearrowleft":"\u21BA","circlearrowright":"\u21BB","circledast":"\u229B","circledcirc":"\u229A","circleddash":"\u229D","CircleDot":"\u2299","circledR":"\xAE","circledS":"\u24C8","CircleMinus":"\u2296","CirclePlus":"\u2295","CircleTimes":"\u2297","cir":"\u25CB","cirE":"\u29C3","cire":"\u2257","cirfnint":"\u2A10","cirmid":"\u2AEF","cirscir":"\u29C2","ClockwiseContourIntegral":"\u2232","CloseCurlyDoubleQuote":"\u201D","CloseCurlyQuote":"\u2019","clubs":"\u2663","clubsuit":"\u2663","colon":":","Colon":"\u2237","Colone":"\u2A74","colone":"\u2254","coloneq":"\u2254","comma":",","commat":"@","comp":"\u2201","compfn":"\u2218","complement":"\u2201","complexes":"\u2102","cong":"\u2245","congdot":"\u2A6D","Congruent":"\u2261","conint":"\u222E","Conint":"\u222F","ContourIntegral":"\u222E","copf":"\u{1D554}","Copf":"\u2102","coprod":"\u2210","Coproduct":"\u2210","copy":"\xA9","COPY":"\xA9","copysr":"\u2117","CounterClockwiseContourIntegral":"\u2233","crarr":"\u21B5","cross":"\u2717","Cross":"\u2A2F","Cscr":"\u{1D49E}","cscr":"\u{1D4B8}","csub":"\u2ACF","csube":"\u2AD1","csup":"\u2AD0","csupe":"\u2AD2","ctdot":"\u22EF","cudarrl":"\u2938","cudarrr":"\u2935","cuepr":"\u22DE","cuesc":"\u22DF","cularr":"\u21B6","cularrp":"\u293D","cupbrcap":"\u2A48","cupcap":"\u2A46","CupCap":"\u224D","cup":"\u222A","Cup":"\u22D3","cupcup":"\u2A4A","cupdot":"\u228D","cupor":"\u2A45","cups":"\u222A\uFE00","curarr":"\u21B7","curarrm":"\u293C","curlyeqprec":"\u22DE","curlyeqsucc":"\u22DF","curlyvee":"\u22CE","curlywedge":"\u22CF","curren":"\xA4","curvearrowleft":"\u21B6","curvearrowright":"\u21B7","cuvee":"\u22CE","cuwed":"\u22CF","cwconint":"\u2232","cwint":"\u2231","cylcty":"\u232D","dagger":"\u2020","Dagger":"\u2021","daleth":"\u2138","darr":"\u2193","Darr":"\u21A1","dArr":"\u21D3","dash":"\u2010","Dashv":"\u2AE4","dashv":"\u22A3","dbkarow":"\u290F","dblac":"\u02DD","Dcaron":"\u010E","dcaron":"\u010F","Dcy":"\u0414","dcy":"\u0434","ddagger":"\u2021","ddarr":"\u21CA","DD":"\u2145","dd":"\u2146","DDotrahd":"\u2911","ddotseq":"\u2A77","deg":"\xB0","Del":"\u2207","Delta":"\u0394","delta":"\u03B4","demptyv":"\u29B1","dfisht":"\u297F","Dfr":"\u{1D507}","dfr":"\u{1D521}","dHar":"\u2965","dharl":"\u21C3","dharr":"\u21C2","DiacriticalAcute":"\xB4","DiacriticalDot":"\u02D9","DiacriticalDoubleAcute":"\u02DD","DiacriticalGrave":"`","DiacriticalTilde":"\u02DC","diam":"\u22C4","diamond":"\u22C4","Diamond":"\u22C4","diamondsuit":"\u2666","diams":"\u2666","die":"\xA8","DifferentialD":"\u2146","digamma":"\u03DD","disin":"\u22F2","div":"\xF7","divide":"\xF7","divideontimes":"\u22C7","divonx":"\u22C7","DJcy":"\u0402","djcy":"\u0452","dlcorn":"\u231E","dlcrop":"\u230D","dollar":"$","Dopf":"\u{1D53B}","dopf":"\u{1D555}","Dot":"\xA8","dot":"\u02D9","DotDot":"\u20DC","doteq":"\u2250","doteqdot":"\u2251","DotEqual":"\u2250","dotminus":"\u2238","dotplus":"\u2214","dotsquare":"\u22A1","doublebarwedge":"\u2306","DoubleContourIntegral":"\u222F","DoubleDot":"\xA8","DoubleDownArrow":"\u21D3","DoubleLeftArrow":"\u21D0","DoubleLeftRightArrow":"\u21D4","DoubleLeftTee":"\u2AE4","DoubleLongLeftArrow":"\u27F8","DoubleLongLeftRightArrow":"\u27FA","DoubleLongRightArrow":"\u27F9","DoubleRightArrow":"\u21D2","DoubleRightTee":"\u22A8","DoubleUpArrow":"\u21D1","DoubleUpDownArrow":"\u21D5","DoubleVerticalBar":"\u2225","DownArrowBar":"\u2913","downarrow":"\u2193","DownArrow":"\u2193","Downarrow":"\u21D3","DownArrowUpArrow":"\u21F5","DownBreve":"\u0311","downdownarrows":"\u21CA","downharpoonleft":"\u21C3","downharpoonright":"\u21C2","DownLeftRightVector":"\u2950","DownLeftTeeVector":"\u295E","DownLeftVectorBar":"\u2956","DownLeftVector":"\u21BD","DownRightTeeVector":"\u295F","DownRightVectorBar":"\u2957","DownRightVector":"\u21C1","DownTeeArrow":"\u21A7","DownTee":"\u22A4","drbkarow":"\u2910","drcorn":"\u231F","drcrop":"\u230C","Dscr":"\u{1D49F}","dscr":"\u{1D4B9}","DScy":"\u0405","dscy":"\u0455","dsol":"\u29F6","Dstrok":"\u0110","dstrok":"\u0111","dtdot":"\u22F1","dtri":"\u25BF","dtrif":"\u25BE","duarr":"\u21F5","duhar":"\u296F","dwangle":"\u29A6","DZcy":"\u040F","dzcy":"\u045F","dzigrarr":"\u27FF","Eacute":"\xC9","eacute":"\xE9","easter":"\u2A6E","Ecaron":"\u011A","ecaron":"\u011B","Ecirc":"\xCA","ecirc":"\xEA","ecir":"\u2256","ecolon":"\u2255","Ecy":"\u042D","ecy":"\u044D","eDDot":"\u2A77","Edot":"\u0116","edot":"\u0117","eDot":"\u2251","ee":"\u2147","efDot":"\u2252","Efr":"\u{1D508}","efr":"\u{1D522}","eg":"\u2A9A","Egrave":"\xC8","egrave":"\xE8","egs":"\u2A96","egsdot":"\u2A98","el":"\u2A99","Element":"\u2208","elinters":"\u23E7","ell":"\u2113","els":"\u2A95","elsdot":"\u2A97","Emacr":"\u0112","emacr":"\u0113","empty":"\u2205","emptyset":"\u2205","EmptySmallSquare":"\u25FB","emptyv":"\u2205","EmptyVerySmallSquare":"\u25AB","emsp13":"\u2004","emsp14":"\u2005","emsp":"\u2003","ENG":"\u014A","eng":"\u014B","ensp":"\u2002","Eogon":"\u0118","eogon":"\u0119","Eopf":"\u{1D53C}","eopf":"\u{1D556}","epar":"\u22D5","eparsl":"\u29E3","eplus":"\u2A71","epsi":"\u03B5","Epsilon":"\u0395","epsilon":"\u03B5","epsiv":"\u03F5","eqcirc":"\u2256","eqcolon":"\u2255","eqsim":"\u2242","eqslantgtr":"\u2A96","eqslantless":"\u2A95","Equal":"\u2A75","equals":"=","EqualTilde":"\u2242","equest":"\u225F","Equilibrium":"\u21CC","equiv":"\u2261","equivDD":"\u2A78","eqvparsl":"\u29E5","erarr":"\u2971","erDot":"\u2253","escr":"\u212F","Escr":"\u2130","esdot":"\u2250","Esim":"\u2A73","esim":"\u2242","Eta":"\u0397","eta":"\u03B7","ETH":"\xD0","eth":"\xF0","Euml":"\xCB","euml":"\xEB","euro":"\u20AC","excl":"!","exist":"\u2203","Exists":"\u2203","expectation":"\u2130","exponentiale":"\u2147","ExponentialE":"\u2147","fallingdotseq":"\u2252","Fcy":"\u0424","fcy":"\u0444","female":"\u2640","ffilig":"\uFB03","fflig":"\uFB00","ffllig":"\uFB04","Ffr":"\u{1D509}","ffr":"\u{1D523}","filig":"\uFB01","FilledSmallSquare":"\u25FC","FilledVerySmallSquare":"\u25AA","fjlig":"fj","flat":"\u266D","fllig":"\uFB02","fltns":"\u25B1","fnof":"\u0192","Fopf":"\u{1D53D}","fopf":"\u{1D557}","forall":"\u2200","ForAll":"\u2200","fork":"\u22D4","forkv":"\u2AD9","Fouriertrf":"\u2131","fpartint":"\u2A0D","frac12":"\xBD","frac13":"\u2153","frac14":"\xBC","frac15":"\u2155","frac16":"\u2159","frac18":"\u215B","frac23":"\u2154","frac25":"\u2156","frac34":"\xBE","frac35":"\u2157","frac38":"\u215C","frac45":"\u2158","frac56":"\u215A","frac58":"\u215D","frac78":"\u215E","frasl":"\u2044","frown":"\u2322","fscr":"\u{1D4BB}","Fscr":"\u2131","gacute":"\u01F5","Gamma":"\u0393","gamma":"\u03B3","Gammad":"\u03DC","gammad":"\u03DD","gap":"\u2A86","Gbreve":"\u011E","gbreve":"\u011F","Gcedil":"\u0122","Gcirc":"\u011C","gcirc":"\u011D","Gcy":"\u0413","gcy":"\u0433","Gdot":"\u0120","gdot":"\u0121","ge":"\u2265","gE":"\u2267","gEl":"\u2A8C","gel":"\u22DB","geq":"\u2265","geqq":"\u2267","geqslant":"\u2A7E","gescc":"\u2AA9","ges":"\u2A7E","gesdot":"\u2A80","gesdoto":"\u2A82","gesdotol":"\u2A84","gesl":"\u22DB\uFE00","gesles":"\u2A94","Gfr":"\u{1D50A}","gfr":"\u{1D524}","gg":"\u226B","Gg":"\u22D9","ggg":"\u22D9","gimel":"\u2137","GJcy":"\u0403","gjcy":"\u0453","gla":"\u2AA5","gl":"\u2277","glE":"\u2A92","glj":"\u2AA4","gnap":"\u2A8A","gnapprox":"\u2A8A","gne":"\u2A88","gnE":"\u2269","gneq":"\u2A88","gneqq":"\u2269","gnsim":"\u22E7","Gopf":"\u{1D53E}","gopf":"\u{1D558}","grave":"`","GreaterEqual":"\u2265","GreaterEqualLess":"\u22DB","GreaterFullEqual":"\u2267","GreaterGreater":"\u2AA2","GreaterLess":"\u2277","GreaterSlantEqual":"\u2A7E","GreaterTilde":"\u2273","Gscr":"\u{1D4A2}","gscr":"\u210A","gsim":"\u2273","gsime":"\u2A8E","gsiml":"\u2A90","gtcc":"\u2AA7","gtcir":"\u2A7A","gt":">","GT":">","Gt":"\u226B","gtdot":"\u22D7","gtlPar":"\u2995","gtquest":"\u2A7C","gtrapprox":"\u2A86","gtrarr":"\u2978","gtrdot":"\u22D7","gtreqless":"\u22DB","gtreqqless":"\u2A8C","gtrless":"\u2277","gtrsim":"\u2273","gvertneqq":"\u2269\uFE00","gvnE":"\u2269\uFE00","Hacek":"\u02C7","hairsp":"\u200A","half":"\xBD","hamilt":"\u210B","HARDcy":"\u042A","hardcy":"\u044A","harrcir":"\u2948","harr":"\u2194","hArr":"\u21D4","harrw":"\u21AD","Hat":"^","hbar":"\u210F","Hcirc":"\u0124","hcirc":"\u0125","hearts":"\u2665","heartsuit":"\u2665","hellip":"\u2026","hercon":"\u22B9","hfr":"\u{1D525}","Hfr":"\u210C","HilbertSpace":"\u210B","hksearow":"\u2925","hkswarow":"\u2926","hoarr":"\u21FF","homtht":"\u223B","hookleftarrow":"\u21A9","hookrightarrow":"\u21AA","hopf":"\u{1D559}","Hopf":"\u210D","horbar":"\u2015","HorizontalLine":"\u2500","hscr":"\u{1D4BD}","Hscr":"\u210B","hslash":"\u210F","Hstrok":"\u0126","hstrok":"\u0127","HumpDownHump":"\u224E","HumpEqual":"\u224F","hybull":"\u2043","hyphen":"\u2010","Iacute":"\xCD","iacute":"\xED","ic":"\u2063","Icirc":"\xCE","icirc":"\xEE","Icy":"\u0418","icy":"\u0438","Idot":"\u0130","IEcy":"\u0415","iecy":"\u0435","iexcl":"\xA1","iff":"\u21D4","ifr":"\u{1D526}","Ifr":"\u2111","Igrave":"\xCC","igrave":"\xEC","ii":"\u2148","iiiint":"\u2A0C","iiint":"\u222D","iinfin":"\u29DC","iiota":"\u2129","IJlig":"\u0132","ijlig":"\u0133","Imacr":"\u012A","imacr":"\u012B","image":"\u2111","ImaginaryI":"\u2148","imagline":"\u2110","imagpart":"\u2111","imath":"\u0131","Im":"\u2111","imof":"\u22B7","imped":"\u01B5","Implies":"\u21D2","incare":"\u2105","in":"\u2208","infin":"\u221E","infintie":"\u29DD","inodot":"\u0131","intcal":"\u22BA","int":"\u222B","Int":"\u222C","integers":"\u2124","Integral":"\u222B","intercal":"\u22BA","Intersection":"\u22C2","intlarhk":"\u2A17","intprod":"\u2A3C","InvisibleComma":"\u2063","InvisibleTimes":"\u2062","IOcy":"\u0401","iocy":"\u0451","Iogon":"\u012E","iogon":"\u012F","Iopf":"\u{1D540}","iopf":"\u{1D55A}","Iota":"\u0399","iota":"\u03B9","iprod":"\u2A3C","iquest":"\xBF","iscr":"\u{1D4BE}","Iscr":"\u2110","isin":"\u2208","isindot":"\u22F5","isinE":"\u22F9","isins":"\u22F4","isinsv":"\u22F3","isinv":"\u2208","it":"\u2062","Itilde":"\u0128","itilde":"\u0129","Iukcy":"\u0406","iukcy":"\u0456","Iuml":"\xCF","iuml":"\xEF","Jcirc":"\u0134","jcirc":"\u0135","Jcy":"\u0419","jcy":"\u0439","Jfr":"\u{1D50D}","jfr":"\u{1D527}","jmath":"\u0237","Jopf":"\u{1D541}","jopf":"\u{1D55B}","Jscr":"\u{1D4A5}","jscr":"\u{1D4BF}","Jsercy":"\u0408","jsercy":"\u0458","Jukcy":"\u0404","jukcy":"\u0454","Kappa":"\u039A","kappa":"\u03BA","kappav":"\u03F0","Kcedil":"\u0136","kcedil":"\u0137","Kcy":"\u041A","kcy":"\u043A","Kfr":"\u{1D50E}","kfr":"\u{1D528}","kgreen":"\u0138","KHcy":"\u0425","khcy":"\u0445","KJcy":"\u040C","kjcy":"\u045C","Kopf":"\u{1D542}","kopf":"\u{1D55C}","Kscr":"\u{1D4A6}","kscr":"\u{1D4C0}","lAarr":"\u21DA","Lacute":"\u0139","lacute":"\u013A","laemptyv":"\u29B4","lagran":"\u2112","Lambda":"\u039B","lambda":"\u03BB","lang":"\u27E8","Lang":"\u27EA","langd":"\u2991","langle":"\u27E8","lap":"\u2A85","Laplacetrf":"\u2112","laquo":"\xAB","larrb":"\u21E4","larrbfs":"\u291F","larr":"\u2190","Larr":"\u219E","lArr":"\u21D0","larrfs":"\u291D","larrhk":"\u21A9","larrlp":"\u21AB","larrpl":"\u2939","larrsim":"\u2973","larrtl":"\u21A2","latail":"\u2919","lAtail":"\u291B","lat":"\u2AAB","late":"\u2AAD","lates":"\u2AAD\uFE00","lbarr":"\u290C","lBarr":"\u290E","lbbrk":"\u2772","lbrace":"{","lbrack":"[","lbrke":"\u298B","lbrksld":"\u298F","lbrkslu":"\u298D","Lcaron":"\u013D","lcaron":"\u013E","Lcedil":"\u013B","lcedil":"\u013C","lceil":"\u2308","lcub":"{","Lcy":"\u041B","lcy":"\u043B","ldca":"\u2936","ldquo":"\u201C","ldquor":"\u201E","ldrdhar":"\u2967","ldrushar":"\u294B","ldsh":"\u21B2","le":"\u2264","lE":"\u2266","LeftAngleBracket":"\u27E8","LeftArrowBar":"\u21E4","leftarrow":"\u2190","LeftArrow":"\u2190","Leftarrow":"\u21D0","LeftArrowRightArrow":"\u21C6","leftarrowtail":"\u21A2","LeftCeiling":"\u2308","LeftDoubleBracket":"\u27E6","LeftDownTeeVector":"\u2961","LeftDownVectorBar":"\u2959","LeftDownVector":"\u21C3","LeftFloor":"\u230A","leftharpoondown":"\u21BD","leftharpoonup":"\u21BC","leftleftarrows":"\u21C7","leftrightarrow":"\u2194","LeftRightArrow":"\u2194","Leftrightarrow":"\u21D4","leftrightarrows":"\u21C6","leftrightharpoons":"\u21CB","leftrightsquigarrow":"\u21AD","LeftRightVector":"\u294E","LeftTeeArrow":"\u21A4","LeftTee":"\u22A3","LeftTeeVector":"\u295A","leftthreetimes":"\u22CB","LeftTriangleBar":"\u29CF","LeftTriangle":"\u22B2","LeftTriangleEqual":"\u22B4","LeftUpDownVector":"\u2951","LeftUpTeeVector":"\u2960","LeftUpVectorBar":"\u2958","LeftUpVector":"\u21BF","LeftVectorBar":"\u2952","LeftVector":"\u21BC","lEg":"\u2A8B","leg":"\u22DA","leq":"\u2264","leqq":"\u2266","leqslant":"\u2A7D","lescc":"\u2AA8","les":"\u2A7D","lesdot":"\u2A7F","lesdoto":"\u2A81","lesdotor":"\u2A83","lesg":"\u22DA\uFE00","lesges":"\u2A93","lessapprox":"\u2A85","lessdot":"\u22D6","lesseqgtr":"\u22DA","lesseqqgtr":"\u2A8B","LessEqualGreater":"\u22DA","LessFullEqual":"\u2266","LessGreater":"\u2276","lessgtr":"\u2276","LessLess":"\u2AA1","lesssim":"\u2272","LessSlantEqual":"\u2A7D","LessTilde":"\u2272","lfisht":"\u297C","lfloor":"\u230A","Lfr":"\u{1D50F}","lfr":"\u{1D529}","lg":"\u2276","lgE":"\u2A91","lHar":"\u2962","lhard":"\u21BD","lharu":"\u21BC","lharul":"\u296A","lhblk":"\u2584","LJcy":"\u0409","ljcy":"\u0459","llarr":"\u21C7","ll":"\u226A","Ll":"\u22D8","llcorner":"\u231E","Lleftarrow":"\u21DA","llhard":"\u296B","lltri":"\u25FA","Lmidot":"\u013F","lmidot":"\u0140","lmoustache":"\u23B0","lmoust":"\u23B0","lnap":"\u2A89","lnapprox":"\u2A89","lne":"\u2A87","lnE":"\u2268","lneq":"\u2A87","lneqq":"\u2268","lnsim":"\u22E6","loang":"\u27EC","loarr":"\u21FD","lobrk":"\u27E6","longleftarrow":"\u27F5","LongLeftArrow":"\u27F5","Longleftarrow":"\u27F8","longleftrightarrow":"\u27F7","LongLeftRightArrow":"\u27F7","Longleftrightarrow":"\u27FA","longmapsto":"\u27FC","longrightarrow":"\u27F6","LongRightArrow":"\u27F6","Longrightarrow":"\u27F9","looparrowleft":"\u21AB","looparrowright":"\u21AC","lopar":"\u2985","Lopf":"\u{1D543}","lopf":"\u{1D55D}","loplus":"\u2A2D","lotimes":"\u2A34","lowast":"\u2217","lowbar":"_","LowerLeftArrow":"\u2199","LowerRightArrow":"\u2198","loz":"\u25CA","lozenge":"\u25CA","lozf":"\u29EB","lpar":"(","lparlt":"\u2993","lrarr":"\u21C6","lrcorner":"\u231F","lrhar":"\u21CB","lrhard":"\u296D","lrm":"\u200E","lrtri":"\u22BF","lsaquo":"\u2039","lscr":"\u{1D4C1}","Lscr":"\u2112","lsh":"\u21B0","Lsh":"\u21B0","lsim":"\u2272","lsime":"\u2A8D","lsimg":"\u2A8F","lsqb":"[","lsquo":"\u2018","lsquor":"\u201A","Lstrok":"\u0141","lstrok":"\u0142","ltcc":"\u2AA6","ltcir":"\u2A79","lt":"<","LT":"<","Lt":"\u226A","ltdot":"\u22D6","lthree":"\u22CB","ltimes":"\u22C9","ltlarr":"\u2976","ltquest":"\u2A7B","ltri":"\u25C3","ltrie":"\u22B4","ltrif":"\u25C2","ltrPar":"\u2996","lurdshar":"\u294A","luruhar":"\u2966","lvertneqq":"\u2268\uFE00","lvnE":"\u2268\uFE00","macr":"\xAF","male":"\u2642","malt":"\u2720","maltese":"\u2720","Map":"\u2905","map":"\u21A6","mapsto":"\u21A6","mapstodown":"\u21A7","mapstoleft":"\u21A4","mapstoup":"\u21A5","marker":"\u25AE","mcomma":"\u2A29","Mcy":"\u041C","mcy":"\u043C","mdash":"\u2014","mDDot":"\u223A","measuredangle":"\u2221","MediumSpace":"\u205F","Mellintrf":"\u2133","Mfr":"\u{1D510}","mfr":"\u{1D52A}","mho":"\u2127","micro":"\xB5","midast":"*","midcir":"\u2AF0","mid":"\u2223","middot":"\xB7","minusb":"\u229F","minus":"\u2212","minusd":"\u2238","minusdu":"\u2A2A","MinusPlus":"\u2213","mlcp":"\u2ADB","mldr":"\u2026","mnplus":"\u2213","models":"\u22A7","Mopf":"\u{1D544}","mopf":"\u{1D55E}","mp":"\u2213","mscr":"\u{1D4C2}","Mscr":"\u2133","mstpos":"\u223E","Mu":"\u039C","mu":"\u03BC","multimap":"\u22B8","mumap":"\u22B8","nabla":"\u2207","Nacute":"\u0143","nacute":"\u0144","nang":"\u2220\u20D2","nap":"\u2249","napE":"\u2A70\u0338","napid":"\u224B\u0338","napos":"\u0149","napprox":"\u2249","natural":"\u266E","naturals":"\u2115","natur":"\u266E","nbsp":"\xA0","nbump":"\u224E\u0338","nbumpe":"\u224F\u0338","ncap":"\u2A43","Ncaron":"\u0147","ncaron":"\u0148","Ncedil":"\u0145","ncedil":"\u0146","ncong":"\u2247","ncongdot":"\u2A6D\u0338","ncup":"\u2A42","Ncy":"\u041D","ncy":"\u043D","ndash":"\u2013","nearhk":"\u2924","nearr":"\u2197","neArr":"\u21D7","nearrow":"\u2197","ne":"\u2260","nedot":"\u2250\u0338","NegativeMediumSpace":"\u200B","NegativeThickSpace":"\u200B","NegativeThinSpace":"\u200B","NegativeVeryThinSpace":"\u200B","nequiv":"\u2262","nesear":"\u2928","nesim":"\u2242\u0338","NestedGreaterGreater":"\u226B","NestedLessLess":"\u226A","NewLine":"\\n","nexist":"\u2204","nexists":"\u2204","Nfr":"\u{1D511}","nfr":"\u{1D52B}","ngE":"\u2267\u0338","nge":"\u2271","ngeq":"\u2271","ngeqq":"\u2267\u0338","ngeqslant":"\u2A7E\u0338","nges":"\u2A7E\u0338","nGg":"\u22D9\u0338","ngsim":"\u2275","nGt":"\u226B\u20D2","ngt":"\u226F","ngtr":"\u226F","nGtv":"\u226B\u0338","nharr":"\u21AE","nhArr":"\u21CE","nhpar":"\u2AF2","ni":"\u220B","nis":"\u22FC","nisd":"\u22FA","niv":"\u220B","NJcy":"\u040A","njcy":"\u045A","nlarr":"\u219A","nlArr":"\u21CD","nldr":"\u2025","nlE":"\u2266\u0338","nle":"\u2270","nleftarrow":"\u219A","nLeftarrow":"\u21CD","nleftrightarrow":"\u21AE","nLeftrightarrow":"\u21CE","nleq":"\u2270","nleqq":"\u2266\u0338","nleqslant":"\u2A7D\u0338","nles":"\u2A7D\u0338","nless":"\u226E","nLl":"\u22D8\u0338","nlsim":"\u2274","nLt":"\u226A\u20D2","nlt":"\u226E","nltri":"\u22EA","nltrie":"\u22EC","nLtv":"\u226A\u0338","nmid":"\u2224","NoBreak":"\u2060","NonBreakingSpace":"\xA0","nopf":"\u{1D55F}","Nopf":"\u2115","Not":"\u2AEC","not":"\xAC","NotCongruent":"\u2262","NotCupCap":"\u226D","NotDoubleVerticalBar":"\u2226","NotElement":"\u2209","NotEqual":"\u2260","NotEqualTilde":"\u2242\u0338","NotExists":"\u2204","NotGreater":"\u226F","NotGreaterEqual":"\u2271","NotGreaterFullEqual":"\u2267\u0338","NotGreaterGreater":"\u226B\u0338","NotGreaterLess":"\u2279","NotGreaterSlantEqual":"\u2A7E\u0338","NotGreaterTilde":"\u2275","NotHumpDownHump":"\u224E\u0338","NotHumpEqual":"\u224F\u0338","notin":"\u2209","notindot":"\u22F5\u0338","notinE":"\u22F9\u0338","notinva":"\u2209","notinvb":"\u22F7","notinvc":"\u22F6","NotLeftTriangleBar":"\u29CF\u0338","NotLeftTriangle":"\u22EA","NotLeftTriangleEqual":"\u22EC","NotLess":"\u226E","NotLessEqual":"\u2270","NotLessGreater":"\u2278","NotLessLess":"\u226A\u0338","NotLessSlantEqual":"\u2A7D\u0338","NotLessTilde":"\u2274","NotNestedGreaterGreater":"\u2AA2\u0338","NotNestedLessLess":"\u2AA1\u0338","notni":"\u220C","notniva":"\u220C","notnivb":"\u22FE","notnivc":"\u22FD","NotPrecedes":"\u2280","NotPrecedesEqual":"\u2AAF\u0338","NotPrecedesSlantEqual":"\u22E0","NotReverseElement":"\u220C","NotRightTriangleBar":"\u29D0\u0338","NotRightTriangle":"\u22EB","NotRightTriangleEqual":"\u22ED","NotSquareSubset":"\u228F\u0338","NotSquareSubsetEqual":"\u22E2","NotSquareSuperset":"\u2290\u0338","NotSquareSupersetEqual":"\u22E3","NotSubset":"\u2282\u20D2","NotSubsetEqual":"\u2288","NotSucceeds":"\u2281","NotSucceedsEqual":"\u2AB0\u0338","NotSucceedsSlantEqual":"\u22E1","NotSucceedsTilde":"\u227F\u0338","NotSuperset":"\u2283\u20D2","NotSupersetEqual":"\u2289","NotTilde":"\u2241","NotTildeEqual":"\u2244","NotTildeFullEqual":"\u2247","NotTildeTilde":"\u2249","NotVerticalBar":"\u2224","nparallel":"\u2226","npar":"\u2226","nparsl":"\u2AFD\u20E5","npart":"\u2202\u0338","npolint":"\u2A14","npr":"\u2280","nprcue":"\u22E0","nprec":"\u2280","npreceq":"\u2AAF\u0338","npre":"\u2AAF\u0338","nrarrc":"\u2933\u0338","nrarr":"\u219B","nrArr":"\u21CF","nrarrw":"\u219D\u0338","nrightarrow":"\u219B","nRightarrow":"\u21CF","nrtri":"\u22EB","nrtrie":"\u22ED","nsc":"\u2281","nsccue":"\u22E1","nsce":"\u2AB0\u0338","Nscr":"\u{1D4A9}","nscr":"\u{1D4C3}","nshortmid":"\u2224","nshortparallel":"\u2226","nsim":"\u2241","nsime":"\u2244","nsimeq":"\u2244","nsmid":"\u2224","nspar":"\u2226","nsqsube":"\u22E2","nsqsupe":"\u22E3","nsub":"\u2284","nsubE":"\u2AC5\u0338","nsube":"\u2288","nsubset":"\u2282\u20D2","nsubseteq":"\u2288","nsubseteqq":"\u2AC5\u0338","nsucc":"\u2281","nsucceq":"\u2AB0\u0338","nsup":"\u2285","nsupE":"\u2AC6\u0338","nsupe":"\u2289","nsupset":"\u2283\u20D2","nsupseteq":"\u2289","nsupseteqq":"\u2AC6\u0338","ntgl":"\u2279","Ntilde":"\xD1","ntilde":"\xF1","ntlg":"\u2278","ntriangleleft":"\u22EA","ntrianglelefteq":"\u22EC","ntriangleright":"\u22EB","ntrianglerighteq":"\u22ED","Nu":"\u039D","nu":"\u03BD","num":"#","numero":"\u2116","numsp":"\u2007","nvap":"\u224D\u20D2","nvdash":"\u22AC","nvDash":"\u22AD","nVdash":"\u22AE","nVDash":"\u22AF","nvge":"\u2265\u20D2","nvgt":">\u20D2","nvHarr":"\u2904","nvinfin":"\u29DE","nvlArr":"\u2902","nvle":"\u2264\u20D2","nvlt":"<\u20D2","nvltrie":"\u22B4\u20D2","nvrArr":"\u2903","nvrtrie":"\u22B5\u20D2","nvsim":"\u223C\u20D2","nwarhk":"\u2923","nwarr":"\u2196","nwArr":"\u21D6","nwarrow":"\u2196","nwnear":"\u2927","Oacute":"\xD3","oacute":"\xF3","oast":"\u229B","Ocirc":"\xD4","ocirc":"\xF4","ocir":"\u229A","Ocy":"\u041E","ocy":"\u043E","odash":"\u229D","Odblac":"\u0150","odblac":"\u0151","odiv":"\u2A38","odot":"\u2299","odsold":"\u29BC","OElig":"\u0152","oelig":"\u0153","ofcir":"\u29BF","Ofr":"\u{1D512}","ofr":"\u{1D52C}","ogon":"\u02DB","Ograve":"\xD2","ograve":"\xF2","ogt":"\u29C1","ohbar":"\u29B5","ohm":"\u03A9","oint":"\u222E","olarr":"\u21BA","olcir":"\u29BE","olcross":"\u29BB","oline":"\u203E","olt":"\u29C0","Omacr":"\u014C","omacr":"\u014D","Omega":"\u03A9","omega":"\u03C9","Omicron":"\u039F","omicron":"\u03BF","omid":"\u29B6","ominus":"\u2296","Oopf":"\u{1D546}","oopf":"\u{1D560}","opar":"\u29B7","OpenCurlyDoubleQuote":"\u201C","OpenCurlyQuote":"\u2018","operp":"\u29B9","oplus":"\u2295","orarr":"\u21BB","Or":"\u2A54","or":"\u2228","ord":"\u2A5D","order":"\u2134","orderof":"\u2134","ordf":"\xAA","ordm":"\xBA","origof":"\u22B6","oror":"\u2A56","orslope":"\u2A57","orv":"\u2A5B","oS":"\u24C8","Oscr":"\u{1D4AA}","oscr":"\u2134","Oslash":"\xD8","oslash":"\xF8","osol":"\u2298","Otilde":"\xD5","otilde":"\xF5","otimesas":"\u2A36","Otimes":"\u2A37","otimes":"\u2297","Ouml":"\xD6","ouml":"\xF6","ovbar":"\u233D","OverBar":"\u203E","OverBrace":"\u23DE","OverBracket":"\u23B4","OverParenthesis":"\u23DC","para":"\xB6","parallel":"\u2225","par":"\u2225","parsim":"\u2AF3","parsl":"\u2AFD","part":"\u2202","PartialD":"\u2202","Pcy":"\u041F","pcy":"\u043F","percnt":"%","period":".","permil":"\u2030","perp":"\u22A5","pertenk":"\u2031","Pfr":"\u{1D513}","pfr":"\u{1D52D}","Phi":"\u03A6","phi":"\u03C6","phiv":"\u03D5","phmmat":"\u2133","phone":"\u260E","Pi":"\u03A0","pi":"\u03C0","pitchfork":"\u22D4","piv":"\u03D6","planck":"\u210F","planckh":"\u210E","plankv":"\u210F","plusacir":"\u2A23","plusb":"\u229E","pluscir":"\u2A22","plus":"+","plusdo":"\u2214","plusdu":"\u2A25","pluse":"\u2A72","PlusMinus":"\xB1","plusmn":"\xB1","plussim":"\u2A26","plustwo":"\u2A27","pm":"\xB1","Poincareplane":"\u210C","pointint":"\u2A15","popf":"\u{1D561}","Popf":"\u2119","pound":"\xA3","prap":"\u2AB7","Pr":"\u2ABB","pr":"\u227A","prcue":"\u227C","precapprox":"\u2AB7","prec":"\u227A","preccurlyeq":"\u227C","Precedes":"\u227A","PrecedesEqual":"\u2AAF","PrecedesSlantEqual":"\u227C","PrecedesTilde":"\u227E","preceq":"\u2AAF","precnapprox":"\u2AB9","precneqq":"\u2AB5","precnsim":"\u22E8","pre":"\u2AAF","prE":"\u2AB3","precsim":"\u227E","prime":"\u2032","Prime":"\u2033","primes":"\u2119","prnap":"\u2AB9","prnE":"\u2AB5","prnsim":"\u22E8","prod":"\u220F","Product":"\u220F","profalar":"\u232E","profline":"\u2312","profsurf":"\u2313","prop":"\u221D","Proportional":"\u221D","Proportion":"\u2237","propto":"\u221D","prsim":"\u227E","prurel":"\u22B0","Pscr":"\u{1D4AB}","pscr":"\u{1D4C5}","Psi":"\u03A8","psi":"\u03C8","puncsp":"\u2008","Qfr":"\u{1D514}","qfr":"\u{1D52E}","qint":"\u2A0C","qopf":"\u{1D562}","Qopf":"\u211A","qprime":"\u2057","Qscr":"\u{1D4AC}","qscr":"\u{1D4C6}","quaternions":"\u210D","quatint":"\u2A16","quest":"?","questeq":"\u225F","quot":"\\"","QUOT":"\\"","rAarr":"\u21DB","race":"\u223D\u0331","Racute":"\u0154","racute":"\u0155","radic":"\u221A","raemptyv":"\u29B3","rang":"\u27E9","Rang":"\u27EB","rangd":"\u2992","range":"\u29A5","rangle":"\u27E9","raquo":"\xBB","rarrap":"\u2975","rarrb":"\u21E5","rarrbfs":"\u2920","rarrc":"\u2933","rarr":"\u2192","Rarr":"\u21A0","rArr":"\u21D2","rarrfs":"\u291E","rarrhk":"\u21AA","rarrlp":"\u21AC","rarrpl":"\u2945","rarrsim":"\u2974","Rarrtl":"\u2916","rarrtl":"\u21A3","rarrw":"\u219D","ratail":"\u291A","rAtail":"\u291C","ratio":"\u2236","rationals":"\u211A","rbarr":"\u290D","rBarr":"\u290F","RBarr":"\u2910","rbbrk":"\u2773","rbrace":"}","rbrack":"]","rbrke":"\u298C","rbrksld":"\u298E","rbrkslu":"\u2990","Rcaron":"\u0158","rcaron":"\u0159","Rcedil":"\u0156","rcedil":"\u0157","rceil":"\u2309","rcub":"}","Rcy":"\u0420","rcy":"\u0440","rdca":"\u2937","rdldhar":"\u2969","rdquo":"\u201D","rdquor":"\u201D","rdsh":"\u21B3","real":"\u211C","realine":"\u211B","realpart":"\u211C","reals":"\u211D","Re":"\u211C","rect":"\u25AD","reg":"\xAE","REG":"\xAE","ReverseElement":"\u220B","ReverseEquilibrium":"\u21CB","ReverseUpEquilibrium":"\u296F","rfisht":"\u297D","rfloor":"\u230B","rfr":"\u{1D52F}","Rfr":"\u211C","rHar":"\u2964","rhard":"\u21C1","rharu":"\u21C0","rharul":"\u296C","Rho":"\u03A1","rho":"\u03C1","rhov":"\u03F1","RightAngleBracket":"\u27E9","RightArrowBar":"\u21E5","rightarrow":"\u2192","RightArrow":"\u2192","Rightarrow":"\u21D2","RightArrowLeftArrow":"\u21C4","rightarrowtail":"\u21A3","RightCeiling":"\u2309","RightDoubleBracket":"\u27E7","RightDownTeeVector":"\u295D","RightDownVectorBar":"\u2955","RightDownVector":"\u21C2","RightFloor":"\u230B","rightharpoondown":"\u21C1","rightharpoonup":"\u21C0","rightleftarrows":"\u21C4","rightleftharpoons":"\u21CC","rightrightarrows":"\u21C9","rightsquigarrow":"\u219D","RightTeeArrow":"\u21A6","RightTee":"\u22A2","RightTeeVector":"\u295B","rightthreetimes":"\u22CC","RightTriangleBar":"\u29D0","RightTriangle":"\u22B3","RightTriangleEqual":"\u22B5","RightUpDownVector":"\u294F","RightUpTeeVector":"\u295C","RightUpVectorBar":"\u2954","RightUpVector":"\u21BE","RightVectorBar":"\u2953","RightVector":"\u21C0","ring":"\u02DA","risingdotseq":"\u2253","rlarr":"\u21C4","rlhar":"\u21CC","rlm":"\u200F","rmoustache":"\u23B1","rmoust":"\u23B1","rnmid":"\u2AEE","roang":"\u27ED","roarr":"\u21FE","robrk":"\u27E7","ropar":"\u2986","ropf":"\u{1D563}","Ropf":"\u211D","roplus":"\u2A2E","rotimes":"\u2A35","RoundImplies":"\u2970","rpar":")","rpargt":"\u2994","rppolint":"\u2A12","rrarr":"\u21C9","Rrightarrow":"\u21DB","rsaquo":"\u203A","rscr":"\u{1D4C7}","Rscr":"\u211B","rsh":"\u21B1","Rsh":"\u21B1","rsqb":"]","rsquo":"\u2019","rsquor":"\u2019","rthree":"\u22CC","rtimes":"\u22CA","rtri":"\u25B9","rtrie":"\u22B5","rtrif":"\u25B8","rtriltri":"\u29CE","RuleDelayed":"\u29F4","ruluhar":"\u2968","rx":"\u211E","Sacute":"\u015A","sacute":"\u015B","sbquo":"\u201A","scap":"\u2AB8","Scaron":"\u0160","scaron":"\u0161","Sc":"\u2ABC","sc":"\u227B","sccue":"\u227D","sce":"\u2AB0","scE":"\u2AB4","Scedil":"\u015E","scedil":"\u015F","Scirc":"\u015C","scirc":"\u015D","scnap":"\u2ABA","scnE":"\u2AB6","scnsim":"\u22E9","scpolint":"\u2A13","scsim":"\u227F","Scy":"\u0421","scy":"\u0441","sdotb":"\u22A1","sdot":"\u22C5","sdote":"\u2A66","searhk":"\u2925","searr":"\u2198","seArr":"\u21D8","searrow":"\u2198","sect":"\xA7","semi":";","seswar":"\u2929","setminus":"\u2216","setmn":"\u2216","sext":"\u2736","Sfr":"\u{1D516}","sfr":"\u{1D530}","sfrown":"\u2322","sharp":"\u266F","SHCHcy":"\u0429","shchcy":"\u0449","SHcy":"\u0428","shcy":"\u0448","ShortDownArrow":"\u2193","ShortLeftArrow":"\u2190","shortmid":"\u2223","shortparallel":"\u2225","ShortRightArrow":"\u2192","ShortUpArrow":"\u2191","shy":"\xAD","Sigma":"\u03A3","sigma":"\u03C3","sigmaf":"\u03C2","sigmav":"\u03C2","sim":"\u223C","simdot":"\u2A6A","sime":"\u2243","simeq":"\u2243","simg":"\u2A9E","simgE":"\u2AA0","siml":"\u2A9D","simlE":"\u2A9F","simne":"\u2246","simplus":"\u2A24","simrarr":"\u2972","slarr":"\u2190","SmallCircle":"\u2218","smallsetminus":"\u2216","smashp":"\u2A33","smeparsl":"\u29E4","smid":"\u2223","smile":"\u2323","smt":"\u2AAA","smte":"\u2AAC","smtes":"\u2AAC\uFE00","SOFTcy":"\u042C","softcy":"\u044C","solbar":"\u233F","solb":"\u29C4","sol":"/","Sopf":"\u{1D54A}","sopf":"\u{1D564}","spades":"\u2660","spadesuit":"\u2660","spar":"\u2225","sqcap":"\u2293","sqcaps":"\u2293\uFE00","sqcup":"\u2294","sqcups":"\u2294\uFE00","Sqrt":"\u221A","sqsub":"\u228F","sqsube":"\u2291","sqsubset":"\u228F","sqsubseteq":"\u2291","sqsup":"\u2290","sqsupe":"\u2292","sqsupset":"\u2290","sqsupseteq":"\u2292","square":"\u25A1","Square":"\u25A1","SquareIntersection":"\u2293","SquareSubset":"\u228F","SquareSubsetEqual":"\u2291","SquareSuperset":"\u2290","SquareSupersetEqual":"\u2292","SquareUnion":"\u2294","squarf":"\u25AA","squ":"\u25A1","squf":"\u25AA","srarr":"\u2192","Sscr":"\u{1D4AE}","sscr":"\u{1D4C8}","ssetmn":"\u2216","ssmile":"\u2323","sstarf":"\u22C6","Star":"\u22C6","star":"\u2606","starf":"\u2605","straightepsilon":"\u03F5","straightphi":"\u03D5","strns":"\xAF","sub":"\u2282","Sub":"\u22D0","subdot":"\u2ABD","subE":"\u2AC5","sube":"\u2286","subedot":"\u2AC3","submult":"\u2AC1","subnE":"\u2ACB","subne":"\u228A","subplus":"\u2ABF","subrarr":"\u2979","subset":"\u2282","Subset":"\u22D0","subseteq":"\u2286","subseteqq":"\u2AC5","SubsetEqual":"\u2286","subsetneq":"\u228A","subsetneqq":"\u2ACB","subsim":"\u2AC7","subsub":"\u2AD5","subsup":"\u2AD3","succapprox":"\u2AB8","succ":"\u227B","succcurlyeq":"\u227D","Succeeds":"\u227B","SucceedsEqual":"\u2AB0","SucceedsSlantEqual":"\u227D","SucceedsTilde":"\u227F","succeq":"\u2AB0","succnapprox":"\u2ABA","succneqq":"\u2AB6","succnsim":"\u22E9","succsim":"\u227F","SuchThat":"\u220B","sum":"\u2211","Sum":"\u2211","sung":"\u266A","sup1":"\xB9","sup2":"\xB2","sup3":"\xB3","sup":"\u2283","Sup":"\u22D1","supdot":"\u2ABE","supdsub":"\u2AD8","supE":"\u2AC6","supe":"\u2287","supedot":"\u2AC4","Superset":"\u2283","SupersetEqual":"\u2287","suphsol":"\u27C9","suphsub":"\u2AD7","suplarr":"\u297B","supmult":"\u2AC2","supnE":"\u2ACC","supne":"\u228B","supplus":"\u2AC0","supset":"\u2283","Supset":"\u22D1","supseteq":"\u2287","supseteqq":"\u2AC6","supsetneq":"\u228B","supsetneqq":"\u2ACC","supsim":"\u2AC8","supsub":"\u2AD4","supsup":"\u2AD6","swarhk":"\u2926","swarr":"\u2199","swArr":"\u21D9","swarrow":"\u2199","swnwar":"\u292A","szlig":"\xDF","Tab":"\\t","target":"\u2316","Tau":"\u03A4","tau":"\u03C4","tbrk":"\u23B4","Tcaron":"\u0164","tcaron":"\u0165","Tcedil":"\u0162","tcedil":"\u0163","Tcy":"\u0422","tcy":"\u0442","tdot":"\u20DB","telrec":"\u2315","Tfr":"\u{1D517}","tfr":"\u{1D531}","there4":"\u2234","therefore":"\u2234","Therefore":"\u2234","Theta":"\u0398","theta":"\u03B8","thetasym":"\u03D1","thetav":"\u03D1","thickapprox":"\u2248","thicksim":"\u223C","ThickSpace":"\u205F\u200A","ThinSpace":"\u2009","thinsp":"\u2009","thkap":"\u2248","thksim":"\u223C","THORN":"\xDE","thorn":"\xFE","tilde":"\u02DC","Tilde":"\u223C","TildeEqual":"\u2243","TildeFullEqual":"\u2245","TildeTilde":"\u2248","timesbar":"\u2A31","timesb":"\u22A0","times":"\xD7","timesd":"\u2A30","tint":"\u222D","toea":"\u2928","topbot":"\u2336","topcir":"\u2AF1","top":"\u22A4","Topf":"\u{1D54B}","topf":"\u{1D565}","topfork":"\u2ADA","tosa":"\u2929","tprime":"\u2034","trade":"\u2122","TRADE":"\u2122","triangle":"\u25B5","triangledown":"\u25BF","triangleleft":"\u25C3","trianglelefteq":"\u22B4","triangleq":"\u225C","triangleright":"\u25B9","trianglerighteq":"\u22B5","tridot":"\u25EC","trie":"\u225C","triminus":"\u2A3A","TripleDot":"\u20DB","triplus":"\u2A39","trisb":"\u29CD","tritime":"\u2A3B","trpezium":"\u23E2","Tscr":"\u{1D4AF}","tscr":"\u{1D4C9}","TScy":"\u0426","tscy":"\u0446","TSHcy":"\u040B","tshcy":"\u045B","Tstrok":"\u0166","tstrok":"\u0167","twixt":"\u226C","twoheadleftarrow":"\u219E","twoheadrightarrow":"\u21A0","Uacute":"\xDA","uacute":"\xFA","uarr":"\u2191","Uarr":"\u219F","uArr":"\u21D1","Uarrocir":"\u2949","Ubrcy":"\u040E","ubrcy":"\u045E","Ubreve":"\u016C","ubreve":"\u016D","Ucirc":"\xDB","ucirc":"\xFB","Ucy":"\u0423","ucy":"\u0443","udarr":"\u21C5","Udblac":"\u0170","udblac":"\u0171","udhar":"\u296E","ufisht":"\u297E","Ufr":"\u{1D518}","ufr":"\u{1D532}","Ugrave":"\xD9","ugrave":"\xF9","uHar":"\u2963","uharl":"\u21BF","uharr":"\u21BE","uhblk":"\u2580","ulcorn":"\u231C","ulcorner":"\u231C","ulcrop":"\u230F","ultri":"\u25F8","Umacr":"\u016A","umacr":"\u016B","uml":"\xA8","UnderBar":"_","UnderBrace":"\u23DF","UnderBracket":"\u23B5","UnderParenthesis":"\u23DD","Union":"\u22C3","UnionPlus":"\u228E","Uogon":"\u0172","uogon":"\u0173","Uopf":"\u{1D54C}","uopf":"\u{1D566}","UpArrowBar":"\u2912","uparrow":"\u2191","UpArrow":"\u2191","Uparrow":"\u21D1","UpArrowDownArrow":"\u21C5","updownarrow":"\u2195","UpDownArrow":"\u2195","Updownarrow":"\u21D5","UpEquilibrium":"\u296E","upharpoonleft":"\u21BF","upharpoonright":"\u21BE","uplus":"\u228E","UpperLeftArrow":"\u2196","UpperRightArrow":"\u2197","upsi":"\u03C5","Upsi":"\u03D2","upsih":"\u03D2","Upsilon":"\u03A5","upsilon":"\u03C5","UpTeeArrow":"\u21A5","UpTee":"\u22A5","upuparrows":"\u21C8","urcorn":"\u231D","urcorner":"\u231D","urcrop":"\u230E","Uring":"\u016E","uring":"\u016F","urtri":"\u25F9","Uscr":"\u{1D4B0}","uscr":"\u{1D4CA}","utdot":"\u22F0","Utilde":"\u0168","utilde":"\u0169","utri":"\u25B5","utrif":"\u25B4","uuarr":"\u21C8","Uuml":"\xDC","uuml":"\xFC","uwangle":"\u29A7","vangrt":"\u299C","varepsilon":"\u03F5","varkappa":"\u03F0","varnothing":"\u2205","varphi":"\u03D5","varpi":"\u03D6","varpropto":"\u221D","varr":"\u2195","vArr":"\u21D5","varrho":"\u03F1","varsigma":"\u03C2","varsubsetneq":"\u228A\uFE00","varsubsetneqq":"\u2ACB\uFE00","varsupsetneq":"\u228B\uFE00","varsupsetneqq":"\u2ACC\uFE00","vartheta":"\u03D1","vartriangleleft":"\u22B2","vartriangleright":"\u22B3","vBar":"\u2AE8","Vbar":"\u2AEB","vBarv":"\u2AE9","Vcy":"\u0412","vcy":"\u0432","vdash":"\u22A2","vDash":"\u22A8","Vdash":"\u22A9","VDash":"\u22AB","Vdashl":"\u2AE6","veebar":"\u22BB","vee":"\u2228","Vee":"\u22C1","veeeq":"\u225A","vellip":"\u22EE","verbar":"|","Verbar":"\u2016","vert":"|","Vert":"\u2016","VerticalBar":"\u2223","VerticalLine":"|","VerticalSeparator":"\u2758","VerticalTilde":"\u2240","VeryThinSpace":"\u200A","Vfr":"\u{1D519}","vfr":"\u{1D533}","vltri":"\u22B2","vnsub":"\u2282\u20D2","vnsup":"\u2283\u20D2","Vopf":"\u{1D54D}","vopf":"\u{1D567}","vprop":"\u221D","vrtri":"\u22B3","Vscr":"\u{1D4B1}","vscr":"\u{1D4CB}","vsubnE":"\u2ACB\uFE00","vsubne":"\u228A\uFE00","vsupnE":"\u2ACC\uFE00","vsupne":"\u228B\uFE00","Vvdash":"\u22AA","vzigzag":"\u299A","Wcirc":"\u0174","wcirc":"\u0175","wedbar":"\u2A5F","wedge":"\u2227","Wedge":"\u22C0","wedgeq":"\u2259","weierp":"\u2118","Wfr":"\u{1D51A}","wfr":"\u{1D534}","Wopf":"\u{1D54E}","wopf":"\u{1D568}","wp":"\u2118","wr":"\u2240","wreath":"\u2240","Wscr":"\u{1D4B2}","wscr":"\u{1D4CC}","xcap":"\u22C2","xcirc":"\u25EF","xcup":"\u22C3","xdtri":"\u25BD","Xfr":"\u{1D51B}","xfr":"\u{1D535}","xharr":"\u27F7","xhArr":"\u27FA","Xi":"\u039E","xi":"\u03BE","xlarr":"\u27F5","xlArr":"\u27F8","xmap":"\u27FC","xnis":"\u22FB","xodot":"\u2A00","Xopf":"\u{1D54F}","xopf":"\u{1D569}","xoplus":"\u2A01","xotime":"\u2A02","xrarr":"\u27F6","xrArr":"\u27F9","Xscr":"\u{1D4B3}","xscr":"\u{1D4CD}","xsqcup":"\u2A06","xuplus":"\u2A04","xutri":"\u25B3","xvee":"\u22C1","xwedge":"\u22C0","Yacute":"\xDD","yacute":"\xFD","YAcy":"\u042F","yacy":"\u044F","Ycirc":"\u0176","ycirc":"\u0177","Ycy":"\u042B","ycy":"\u044B","yen":"\xA5","Yfr":"\u{1D51C}","yfr":"\u{1D536}","YIcy":"\u0407","yicy":"\u0457","Yopf":"\u{1D550}","yopf":"\u{1D56A}","Yscr":"\u{1D4B4}","yscr":"\u{1D4CE}","YUcy":"\u042E","yucy":"\u044E","yuml":"\xFF","Yuml":"\u0178","Zacute":"\u0179","zacute":"\u017A","Zcaron":"\u017D","zcaron":"\u017E","Zcy":"\u0417","zcy":"\u0437","Zdot":"\u017B","zdot":"\u017C","zeetrf":"\u2128","ZeroWidthSpace":"\u200B","Zeta":"\u0396","zeta":"\u03B6","zfr":"\u{1D537}","Zfr":"\u2128","ZHcy":"\u0416","zhcy":"\u0436","zigrarr":"\u21DD","zopf":"\u{1D56B}","Zopf":"\u2124","Zscr":"\u{1D4B5}","zscr":"\u{1D4CF}","zwj":"\u200D","zwnj":"\u200C"}')},function(b,x,g){var a={};function t(e,r,n){var o,i,s,l,u,c="";for(typeof r!="string"&&(n=r,r=t.defaultChars),n===void 0&&(n=!0),u=function(f){var p,h,d=a[f];if(d)return d;for(d=a[f]=[],p=0;p<128;p++)h=String.fromCharCode(p),/^[0-9a-z]$/i.test(h)?d.push(h):d.push("%"+("0"+p.toString(16).toUpperCase()).slice(-2));for(p=0;p=55296&&s<=57343){if(s>=55296&&s<=56319&&o+1=56320&&l<=57343){c+=encodeURIComponent(e[o]+e[o+1]),o++;continue}c+="%EF%BF%BD"}else c+=encodeURIComponent(e[o]);return c}t.defaultChars=";/?:@&=+$,-_.!~*'()#",t.componentChars="-_.!~*'()",b.exports=t},function(b,x,g){var a={};function t(e,r){var n;return typeof r!="string"&&(r=t.defaultChars),n=function(o){var i,s,l=a[o];if(l)return l;for(l=a[o]=[],i=0;i<128;i++)s=String.fromCharCode(i),l.push(s);for(i=0;i=55296&&p<=57343?"\uFFFD\uFFFD\uFFFD":String.fromCharCode(p),i+=6):(248&l)==240&&i+91114111?h+="\uFFFD\uFFFD\uFFFD\uFFFD":(p-=65536,h+=String.fromCharCode(55296+(p>>10),56320+(1023&p))),i+=9):h+="\uFFFD";return h})}t.defaultChars=";/?:@&=+$,#",t.componentChars="",b.exports=t},function(b,x,g){b.exports=function(a){var t="";return t+=a.protocol||"",t+=a.slashes?"//":"",t+=a.auth?a.auth+"@":"",a.hostname&&a.hostname.indexOf(":")!==-1?t+="["+a.hostname+"]":t+=a.hostname||"",t+=a.port?":"+a.port:"",t+=a.pathname||"",t+=a.search||"",t+=a.hash||""}},function(b,x,g){function a(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}var t=/^([a-z0-9.+-]+:)/i,e=/:[0-9]*$/,r=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,n=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r",` +`," "]),o=["'"].concat(n),i=["%","/","?",";","#"].concat(o),s=["/","?","#"],l=/^[+a-z0-9A-Z_-]{0,63}$/,u=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,c={javascript:!0,"javascript:":!0},f={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};a.prototype.parse=function(p,h){var d,k,y,v,_,m=p;if(m=m.trim(),!h&&p.split("#").length===1){var q=r.exec(m);if(q)return this.pathname=q[1],q[2]&&(this.search=q[2]),this}var A=t.exec(m);if(A&&(y=(A=A[0]).toLowerCase(),this.protocol=A,m=m.substr(A.length)),(h||A||m.match(/^\/\/[^@\/]+@[^@\/]+/))&&(!(_=m.substr(0,2)==="//")||A&&c[A]||(m=m.substr(2),this.slashes=!0)),!c[A]&&(_||A&&!f[A])){var w,C,D=-1;for(d=0;d127?z+="x":z+=L[I];if(!z.match(l)){var R=F.slice(0,d),M=F.slice(d+1),T=L.match(u);T&&(R.push(T[1]),M.unshift(T[2])),M.length&&(m=M.join(".")+m),this.hostname=R.join(".");break}}}}this.hostname.length>255&&(this.hostname=""),S&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}var j=m.indexOf("#");j!==-1&&(this.hash=m.substr(j),m=m.slice(0,j));var O=m.indexOf("?");return O!==-1&&(this.search=m.substr(O),m=m.slice(0,O)),m&&(this.pathname=m),f[y]&&this.hostname&&!this.pathname&&(this.pathname=""),this},a.prototype.parseHost=function(p){var h=e.exec(p);h&&((h=h[0])!==":"&&(this.port=h.substr(1)),p=p.substr(0,p.length-h.length)),p&&(this.hostname=p)},b.exports=function(p,h){if(p&&p instanceof a)return p;var d=new a;return d.parse(p,h),d}},function(b,x,g){x.Any=g(9),x.Cc=g(10),x.Cf=g(27),x.P=g(3),x.Z=g(11)},function(b,x){b.exports=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/},function(b,x,g){x.parseLinkLabel=g(29),x.parseLinkDestination=g(30),x.parseLinkTitle=g(31)},function(b,x,g){b.exports=function(a,t,e){var r,n,o,i,s=-1,l=a.posMax,u=a.pos;for(a.pos=t+1,r=1;a.pos32)return s;if(n===41){if(o===0)break;o--}e++}return i===e||o!==0||(s.str=a(t.slice(i,e)),s.lines=0,s.pos=e,s.ok=!0),s}},function(b,x,g){var a=g(0).unescapeAll;b.exports=function(t,e,r){var n,o,i=0,s=e,l={ok:!1,pos:0,lines:0,str:""};if(e>=r||(o=t.charCodeAt(e))!==34&&o!==39&&o!==40)return l;for(e++,o===40&&(o=41);e"+e(o[i].content)+""},r.code_block=function(o,i,s,l,u){var c=o[i];return""+e(o[i].content)+` +`},r.fence=function(o,i,s,l,u){var c,f,p,h,d,k=o[i],y=k.info?t(k.info).trim():"",v="",_="";return y&&(v=(p=y.split(/(\s+)/g))[0],_=p.slice(2).join("")),(c=s.highlight&&s.highlight(k.content,v,_)||e(k.content)).indexOf(""+c+` +`):"
    "+c+`
    +`},r.image=function(o,i,s,l,u){var c=o[i];return c.attrs[c.attrIndex("alt")][1]=u.renderInlineAsText(c.children,s,l),u.renderToken(o,i,s)},r.hardbreak=function(o,i,s){return s.xhtmlOut?`
    +`:`
    +`},r.softbreak=function(o,i,s){return s.breaks?s.xhtmlOut?`
    +`:`
    +`:` +`},r.text=function(o,i){return e(o[i].content)},r.html_block=function(o,i){return o[i].content},r.html_inline=function(o,i){return o[i].content},n.prototype.renderAttrs=function(o){var i,s,l;if(!o.attrs)return"";for(l="",i=0,s=o.attrs.length;i +`:">")},n.prototype.renderInline=function(o,i,s){for(var l,u="",c=this.rules,f=0,p=o.length;f/i.test(e)}b.exports=function(e){var r,n,o,i,s,l,u,c,f,p,h,d,k,y,v,_,m,q,A=e.tokens;if(e.md.options.linkify){for(n=0,o=A.length;n=0;r--)if((l=i[r]).type!=="link_close"){if(l.type==="html_inline"&&(q=l.content,/^\s]/i.test(q)&&k>0&&k--,t(l.content)&&k++),!(k>0)&&l.type==="text"&&e.md.linkify.test(l.content)){for(f=l.content,m=e.md.linkify.match(f),u=[],d=l.level,h=0,c=0;ch&&((s=new e.Token("text","",0)).content=f.slice(h,p),s.level=d,u.push(s)),(s=new e.Token("link_open","a",1)).attrs=[["href",v]],s.level=d++,s.markup="linkify",s.info="auto",u.push(s),(s=new e.Token("text","",0)).content=_,s.level=d,u.push(s),(s=new e.Token("link_close","a",-1)).level=--d,s.markup="linkify",s.info="auto",u.push(s),h=m[c].lastIndex);h=0;l--)(u=s[l]).type!=="text"||c||(u.content=u.content.replace(e,n)),u.type==="link_open"&&u.info==="auto"&&c--,u.type==="link_close"&&u.info==="auto"&&c++}function i(s){var l,u,c=0;for(l=s.length-1;l>=0;l--)(u=s[l]).type!=="text"||c||a.test(u.content)&&(u.content=u.content.replace(/\+-/g,"\xB1").replace(/\.{2,}/g,"\u2026").replace(/([?!])…/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---(?=[^-]|$)/gm,"$1\u2014").replace(/(^|\s)--(?=\s|$)/gm,"$1\u2013").replace(/(^|[^-\s])--(?=[^-\s]|$)/gm,"$1\u2013")),u.type==="link_open"&&u.info==="auto"&&c--,u.type==="link_close"&&u.info==="auto"&&c++}b.exports=function(s){var l;if(s.md.options.typographer)for(l=s.tokens.length-1;l>=0;l--)s.tokens[l].type==="inline"&&(t.test(s.tokens[l].content)&&o(s.tokens[l].children),a.test(s.tokens[l].content)&&i(s.tokens[l].children))}},function(b,x,g){var a=g(0).isWhiteSpace,t=g(0).isPunctChar,e=g(0).isMdAsciiPunct,r=/['"]/,n=/['"]/g;function o(s,l,u){return s.substr(0,l)+u+s.substr(l+1)}function i(s,l){var u,c,f,p,h,d,k,y,v,_,m,q,A,w,C,D,E,S,F,L,z;for(F=[],u=0;u=0&&!(F[E].level<=k);E--);if(F.length=E+1,c.type==="text"){h=0,d=(f=c.content).length;t:for(;h=0)v=f.charCodeAt(p.index-1);else for(E=u-1;E>=0&&s[E].type!=="softbreak"&&s[E].type!=="hardbreak";E--)if(s[E].content){v=s[E].content.charCodeAt(s[E].content.length-1);break}if(_=32,h=48&&v<=57&&(D=C=!1),C&&D&&(C=m,D=q),C||D){if(D){for(E=F.length-1;E>=0&&(y=F[E],!(F[E].level=0;l--)s.tokens[l].type==="inline"&&r.test(s.tokens[l].content)&&i(s.tokens[l].children,s)}},function(b,x,g){var a=g(5);function t(e,r,n){this.src=e,this.env=n,this.tokens=[],this.inlineMode=!1,this.md=r}t.prototype.Token=a,b.exports=t},function(b,x,g){var a=g(4),t=[["table",g(42),["paragraph","reference"]],["code",g(43)],["fence",g(44),["paragraph","reference","blockquote","list"]],["blockquote",g(45),["paragraph","reference","blockquote","list"]],["hr",g(46),["paragraph","reference","blockquote","list"]],["list",g(47),["paragraph","reference","blockquote"]],["reference",g(48)],["html_block",g(49),["paragraph","reference","blockquote"]],["heading",g(51),["paragraph","reference","blockquote"]],["lheading",g(52)],["paragraph",g(53)]];function e(){this.ruler=new a;for(var r=0;r=o))&&!(r.sCount[u]=f){r.line=o;break}for(i=0;io||(p=n+1,r.sCount[p]=4||(u=r.bMarks[p]+r.tShift[p])>=r.eMarks[p]||(C=r.src.charCodeAt(u++))!==124&&C!==45&&C!==58||u>=r.eMarks[p]||(D=r.src.charCodeAt(u++))!==124&&D!==45&&D!==58&&!a(D)||C===45&&a(D))return!1;for(;u=4||((h=e(l)).length&&h[0]===""&&h.shift(),h.length&&h[h.length-1]===""&&h.pop(),(d=h.length)===0||d!==y.length))return!1;if(i)return!0;for(q=r.parentType,r.parentType="table",w=r.md.block.ruler.getRules("blockquote"),(k=r.push("table_open","table",1)).map=_=[n,0],(k=r.push("thead_open","thead",1)).map=[n,n+1],(k=r.push("tr_open","tr",1)).map=[n,n+1],c=0;c=4)break;for((h=e(l)).length&&h[0]===""&&h.shift(),h.length&&h[h.length-1]===""&&h.pop(),p===n+2&&((k=r.push("tbody_open","tbody",1)).map=m=[n+2,0]),(k=r.push("tr_open","tr",1)).map=[p,p+1],c=0;c=4))break;n=++r}return a.line=n,(o=a.push("code_block","code",0)).content=a.getLines(t,n,4+a.blkIndent,!1)+` +`,o.map=[t,a.line],!0}},function(b,x,g){b.exports=function(a,t,e,r){var n,o,i,s,l,u,c,f=!1,p=a.bMarks[t]+a.tShift[t],h=a.eMarks[t];if(a.sCount[t]-a.blkIndent>=4||p+3>h||(n=a.src.charCodeAt(p))!==126&&n!==96||(l=p,(o=(p=a.skipChars(p,n))-l)<3)||(c=a.src.slice(l,p),i=a.src.slice(p,h),n===96&&i.indexOf(String.fromCharCode(n))>=0))return!1;if(r)return!0;for(s=t;!(++s>=e)&&!((p=l=a.bMarks[s]+a.tShift[s])<(h=a.eMarks[s])&&a.sCount[s]=4||(p=a.skipChars(p,n))-l=4||t.src.charCodeAt(S++)!==62)return!1;if(n)return!0;for(l=h=t.sCount[e]+1,t.src.charCodeAt(S)===32?(S++,l++,h++,o=!1,q=!0):t.src.charCodeAt(S)===9?(q=!0,(t.bsCount[e]+h)%4==3?(S++,l++,h++,o=!1):o=!0):q=!1,d=[t.bMarks[e]],t.bMarks[e]=S;S=F,_=[t.sCount[e]],t.sCount[e]=h-l,m=[t.tShift[e]],t.tShift[e]=S-t.bMarks[e],w=t.md.block.ruler.getRules("blockquote"),v=t.parentType,t.parentType="blockquote",p=e+1;p=(F=t.eMarks[p])));p++)if(t.src.charCodeAt(S++)!==62||D){if(c)break;for(A=!1,s=0,u=w.length;s=F,k.push(t.bsCount[p]),t.bsCount[p]=t.sCount[p]+1+(q?1:0),_.push(t.sCount[p]),t.sCount[p]=h-l,m.push(t.tShift[p]),t.tShift[p]=S-t.bMarks[p]}for(y=t.blkIndent,t.blkIndent=0,(C=t.push("blockquote_open","blockquote",1)).markup=">",C.map=f=[e,0],t.md.block.tokenize(t,e,p),(C=t.push("blockquote_close","blockquote",-1)).markup=">",t.lineMax=E,t.parentType=v,f[1]=t.line,s=0;s=4||(o=t.src.charCodeAt(u++))!==42&&o!==45&&o!==95)return!1;for(i=1;u=l||(o=r.src.charCodeAt(s++))<48||o>57)return-1;for(;;){if(s>=l)return-1;if(!((o=r.src.charCodeAt(s++))>=48&&o<=57)){if(o===41||o===46)break;return-1}if(s-i>=10)return-1}return s=4||r.listIndent>=0&&r.sCount[n]-r.listIndent>=4&&r.sCount[n]=r.blkIndent&&(j=!0),(z=e(r,n))>=0){if(h=!0,B=r.bMarks[n]+r.tShift[n],m=Number(r.src.slice(B,z-1)),j&&m!==1)return!1}else{if(!((z=t(r,n))>=0))return!1;h=!1}if(j&&r.skipSpaces(z)>=r.eMarks[n])return!1;if(_=r.src.charCodeAt(z-1),i)return!0;for(v=r.tokens.length,h?(T=r.push("ordered_list_open","ol",1),m!==1&&(T.attrs=[["start",m]])):T=r.push("bullet_list_open","ul",1),T.map=y=[n,0],T.markup=String.fromCharCode(_),A=n,I=!1,M=r.md.block.ruler.getRules("list"),D=r.parentType,r.parentType="list";A=q?1:w-p)>4&&(f=1),c=p+f,(T=r.push("list_item_open","li",1)).markup=String.fromCharCode(_),T.map=d=[n,0],h&&(T.info=r.src.slice(B,z-1)),F=r.tight,S=r.tShift[n],E=r.sCount[n],C=r.listIndent,r.listIndent=r.blkIndent,r.blkIndent=c,r.tight=!0,r.tShift[n]=l-r.bMarks[n],r.sCount[n]=w,l>=q&&r.isEmpty(n+1)?r.line=Math.min(r.line+2,o):r.md.block.tokenize(r,n,o,!0),r.tight&&!I||(O=!1),I=r.line-n>1&&r.isEmpty(r.line-1),r.blkIndent=r.listIndent,r.listIndent=C,r.tShift[n]=S,r.sCount[n]=E,r.tight=F,(T=r.push("list_item_close","li",-1)).markup=String.fromCharCode(_),A=n=r.line,d[1]=A,l=r.bMarks[n],A>=o||r.sCount[A]=4)break;for(R=!1,u=0,k=M.length;u=4||e.src.charCodeAt(C)!==91)return!1;for(;++C3||e.sCount[E]<0)){for(m=!1,f=0,p=q.length;f|$))/i,/<\/(script|pre|style|textarea)>/i,!0],[/^/,!0],[/^<\?/,/\?>/,!0],[/^/,!0],[/^/,!0],[new RegExp("^|$))","i"),/^$/,!0],[new RegExp(t.source+"\\s*$"),/^$/,!1]];b.exports=function(r,n,o,i){var s,l,u,c,f=r.bMarks[n]+r.tShift[n],p=r.eMarks[n];if(r.sCount[n]-r.blkIndent>=4||!r.md.options.html||r.src.charCodeAt(f)!==60)return!1;for(c=r.src.slice(f,p),s=0;s=4||(o=t.src.charCodeAt(u))!==35||u>=c)return!1;for(i=1,o=t.src.charCodeAt(++u);o===35&&u6||uu&&a(t.src.charCodeAt(s-1))&&(c=s),t.line=e+1,(l=t.push("heading_open","h"+String(i),1)).markup="########".slice(0,i),l.map=[e,t.line],(l=t.push("inline","",0)).content=t.src.slice(u,c).trim(),l.map=[e,t.line],l.children=[],(l=t.push("heading_close","h"+String(i),-1)).markup="########".slice(0,i)),!0)}},function(b,x,g){b.exports=function(a,t,e){var r,n,o,i,s,l,u,c,f,p,h=t+1,d=a.md.block.ruler.getRules("paragraph");if(a.sCount[t]-a.blkIndent>=4)return!1;for(p=a.parentType,a.parentType="paragraph";h3)){if(a.sCount[h]>=a.blkIndent&&(l=a.bMarks[h]+a.tShift[h])<(u=a.eMarks[h])&&((f=a.src.charCodeAt(l))===45||f===61)&&(l=a.skipChars(l,f),(l=a.skipSpaces(l))>=u)){c=f===61?1:2;break}if(!(a.sCount[h]<0)){for(n=!1,o=0,i=d.length;o3||a.sCount[l]<0)){for(r=!1,n=0,o=u.length;n0&&this.level++,this.tokens.push(i),i},e.prototype.isEmpty=function(r){return this.bMarks[r]+this.tShift[r]>=this.eMarks[r]},e.prototype.skipEmptyLines=function(r){for(var n=this.lineMax;rn;)if(!t(this.src.charCodeAt(--r)))return r+1;return r},e.prototype.skipChars=function(r,n){for(var o=this.src.length;ro;)if(n!==this.src.charCodeAt(--r))return r+1;return r},e.prototype.getLines=function(r,n,o,i){var s,l,u,c,f,p,h,d=r;if(r>=n)return"";for(p=new Array(n-r),s=0;do?new Array(l-o+1).join(" ")+this.src.slice(c,f):this.src.slice(c,f)}return p.join("")},e.prototype.Token=a,b.exports=e},function(b,x,g){var a=g(4),t=[["text",g(56)],["newline",g(57)],["escape",g(58)],["backticks",g(59)],["strikethrough",g(13).tokenize],["emphasis",g(14).tokenize],["link",g(60)],["image",g(61)],["autolink",g(62)],["html_inline",g(63)],["entity",g(64)]],e=[["balance_pairs",g(65)],["strikethrough",g(13).postProcess],["emphasis",g(14).postProcess],["text_collapse",g(66)]];function r(){var n;for(this.ruler=new a,n=0;n=u)break}else n.pending+=n.src[n.pos++]}n.pending&&n.pushPending()},r.prototype.parse=function(n,o,i,s){var l,u,c,f=new this.State(n,o,i,s);for(this.tokenize(f),c=(u=this.ruler2.getRules("")).length,l=0;l=0&&t.pending.charCodeAt(r)===32)if(r>=1&&t.pending.charCodeAt(r-1)===32){for(o=r-1;o>=1&&t.pending.charCodeAt(o-1)===32;)o--;t.pending=t.pending.slice(0,o),t.push("hardbreak","br",0)}else t.pending=t.pending.slice(0,-1),t.push("softbreak","br",0);else t.push("softbreak","br",0);for(i++;i?@[]^_`{|}~-".split("").forEach(function(r){t[r.charCodeAt(0)]=1}),b.exports=function(r,n){var o,i=r.pos,s=r.posMax;if(r.src.charCodeAt(i)!==92)return!1;if(++i=k)return!1;if(y=u,(c=e.md.helpers.parseLinkDestination(e.src,u,e.posMax)).ok){for(p=e.md.normalizeLink(c.str),e.md.validateLink(p)?u=c.pos:p="",y=u;u=k||e.src.charCodeAt(u)!==41)&&(v=!0),u++}if(v){if(e.env.references===void 0)return!1;if(u=0?i=e.src.slice(y,u++):u=s+1):u=s+1,i||(i=e.src.slice(l,s)),!(f=e.env.references[a(i)]))return e.pos=d,!1;p=f.href,h=f.title}return r||(e.pos=l,e.posMax=s,e.push("link_open","a",1).attrs=n=[["href",p]],h&&n.push(["title",h]),e.md.inline.tokenize(e),e.push("link_close","a",-1)),e.pos=u,e.posMax=k,!0}},function(b,x,g){var a=g(0).normalizeReference,t=g(0).isSpace;b.exports=function(e,r){var n,o,i,s,l,u,c,f,p,h,d,k,y,v="",_=e.pos,m=e.posMax;if(e.src.charCodeAt(e.pos)!==33||e.src.charCodeAt(e.pos+1)!==91||(u=e.pos+2,(l=e.md.helpers.parseLinkLabel(e,e.pos+1,!1))<0))return!1;if((c=l+1)=m)return!1;for(y=c,(p=e.md.helpers.parseLinkDestination(e.src,c,e.posMax)).ok&&(v=e.md.normalizeLink(p.str),e.md.validateLink(v)?c=p.pos:v=""),y=c;c=m||e.src.charCodeAt(c)!==41)return e.pos=_,!1;c++}else{if(e.env.references===void 0)return!1;if(c=0?s=e.src.slice(y,c++):c=l+1):c=l+1,s||(s=e.src.slice(u,l)),!(f=e.env.references[a(s)]))return e.pos=_,!1;v=f.href,h=f.title}return r||(i=e.src.slice(u,l),e.md.inline.parse(i,e.md,e.env,k=[]),(d=e.push("image","img",0)).attrs=n=[["src",v],["alt",""]],d.children=k,d.content=i,h&&n.push(["title",h])),e.pos=c,e.posMax=m,!0}},function(b,x,g){var a=/^([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)$/,t=/^([a-zA-Z][a-zA-Z0-9+.\-]{1,31}):([^<>\x00-\x20]*)$/;b.exports=function(e,r){var n,o,i,s,l,u,c=e.pos;if(e.src.charCodeAt(c)!==60)return!1;for(l=e.pos,u=e.posMax;;){if(++c>=u||(s=e.src.charCodeAt(c))===60)return!1;if(s===62)break}return n=e.src.slice(l+1,c),t.test(n)?(o=e.md.normalizeLink(n),!!e.md.validateLink(o)&&(r||((i=e.push("link_open","a",1)).attrs=[["href",o]],i.markup="autolink",i.info="auto",(i=e.push("text","",0)).content=e.md.normalizeLinkText(n),(i=e.push("link_close","a",-1)).markup="autolink",i.info="auto"),e.pos+=n.length+2,!0)):!!a.test(n)&&(o=e.md.normalizeLink("mailto:"+n),!!e.md.validateLink(o)&&(r||((i=e.push("link_open","a",1)).attrs=[["href",o]],i.markup="autolink",i.info="auto",(i=e.push("text","",0)).content=e.md.normalizeLinkText(n),(i=e.push("link_close","a",-1)).markup="autolink",i.info="auto"),e.pos+=n.length+2,!0))}},function(b,x,g){var a=g(12).HTML_TAG_RE;b.exports=function(t,e){var r,n,o,i=t.pos;return!!t.md.options.html&&(o=t.posMax,!(t.src.charCodeAt(i)!==60||i+2>=o)&&!((r=t.src.charCodeAt(i+1))!==33&&r!==63&&r!==47&&!function(s){var l=32|s;return l>=97&&l<=122}(r))&&!!(n=t.src.slice(i).match(a))&&(e||(t.push("html_inline","",0).content=t.src.slice(i,i+n[0].length)),t.pos+=n[0].length,!0))}},function(b,x,g){var a=g(7),t=g(0).has,e=g(0).isValidEntityCode,r=g(0).fromCodePoint,n=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,o=/^&([a-z][a-z0-9]{1,31});/i;b.exports=function(i,s){var l,u,c=i.pos,f=i.posMax;if(i.src.charCodeAt(c)!==38)return!1;if(c+1s;n-=k[n]+1)if((i=e[n]).marker===o.marker&&i.open&&i.end<0&&(u=!1,(i.close||o.open)&&(i.length+o.length)%3==0&&(i.length%3==0&&o.length%3==0||(u=!0)),!u)){c=n>0&&!e[n-1].open?k[n-1]+1:0,k[r]=r-n+c,k[n]=c,o.open=!1,i.end=r,i.close=!1,l=-1,d=-2;break}l!==-1&&(f[o.marker][(o.open?3:0)+(o.length||0)%3]=l)}}}b.exports=function(t){var e,r=t.tokens_meta,n=t.tokens_meta.length;for(a(0,t.delimiters),e=0;e0&&r++,n[t].type==="text"&&t+10&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],u={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(l),this.tokens_meta.push(u),l},n.prototype.scanDelims=function(o,i){var s,l,u,c,f,p,h,d,k,y=o,v=!0,_=!0,m=this.posMax,q=this.src.charCodeAt(o);for(s=o>0?this.src.charCodeAt(o-1):32;y=3&&f[p-3]===":"||p>=3&&f[p-3]==="/"?0:d.match(h.re.no_http)[0].length:0}},"mailto:":{validate:function(f,p,h){var d=f.slice(p);return h.re.mailto||(h.re.mailto=new RegExp("^"+h.re.src_email_name+"@"+h.re.src_host_strict,"i")),h.re.mailto.test(d)?d.match(h.re.mailto)[0].length:0}}},i="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|\u0440\u0444".split("|");function s(f){var p=f.re=g(69)(f.__opts__),h=f.__tlds__.slice();function d(_){return _.replace("%TLDS%",p.src_tlds)}f.onCompile(),f.__tlds_replaced__||h.push("a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]"),h.push(p.src_xn),p.src_tlds=h.join("|"),p.email_fuzzy=RegExp(d(p.tpl_email_fuzzy),"i"),p.link_fuzzy=RegExp(d(p.tpl_link_fuzzy),"i"),p.link_no_ip_fuzzy=RegExp(d(p.tpl_link_no_ip_fuzzy),"i"),p.host_fuzzy_test=RegExp(d(p.tpl_host_fuzzy_test),"i");var k=[];function y(_,m){throw new Error('(LinkifyIt) Invalid schema "'+_+'": '+m)}f.__compiled__={},Object.keys(f.__schemas__).forEach(function(_){var m=f.__schemas__[_];if(m!==null){var q={validate:null,link:null};if(f.__compiled__[_]=q,t(m)==="[object Object]")return function(A){return t(A)==="[object RegExp]"}(m.validate)?q.validate=function(A){return function(w,C){var D=w.slice(C);return A.test(D)?D.match(A)[0].length:0}}(m.validate):e(m.validate)?q.validate=m.validate:y(_,m),void(e(m.normalize)?q.normalize=m.normalize:m.normalize?y(_,m):q.normalize=function(A,w){w.normalize(A)});(function(A){return t(A)==="[object String]"})(m)?k.push(_):y(_,m)}}),k.forEach(function(_){f.__compiled__[f.__schemas__[_]]&&(f.__compiled__[_].validate=f.__compiled__[f.__schemas__[_]].validate,f.__compiled__[_].normalize=f.__compiled__[f.__schemas__[_]].normalize)}),f.__compiled__[""]={validate:null,normalize:function(_,m){m.normalize(_)}};var v=Object.keys(f.__compiled__).filter(function(_){return _.length>0&&f.__compiled__[_]}).map(r).join("|");f.re.schema_test=RegExp("(^|(?!_)(?:[><\uFF5C]|"+p.src_ZPCc+"))("+v+")","i"),f.re.schema_search=RegExp("(^|(?!_)(?:[><\uFF5C]|"+p.src_ZPCc+"))("+v+")","ig"),f.re.pretest=RegExp("("+f.re.schema_test.source+")|("+f.re.host_fuzzy_test.source+")|@","i"),function(_){_.__index__=-1,_.__text_cache__=""}(f)}function l(f,p){var h=f.__index__,d=f.__last_index__,k=f.__text_cache__.slice(h,d);this.schema=f.__schema__.toLowerCase(),this.index=h+p,this.lastIndex=d+p,this.raw=k,this.text=k,this.url=k}function u(f,p){var h=new l(f,p);return f.__compiled__[h.schema].normalize(h,f),h}function c(f,p){if(!(this instanceof c))return new c(f,p);var h;p||(h=f,Object.keys(h||{}).reduce(function(d,k){return d||n.hasOwnProperty(k)},!1)&&(p=f,f={})),this.__opts__=a({},n,p),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=a({},o,f),this.__compiled__={},this.__tlds__=i,this.__tlds_replaced__=!1,this.re={},s(this)}c.prototype.add=function(f,p){return this.__schemas__[f]=p,s(this),this},c.prototype.set=function(f){return this.__opts__=a(this.__opts__,f),this},c.prototype.test=function(f){if(this.__text_cache__=f,this.__index__=-1,!f.length)return!1;var p,h,d,k,y,v,_,m;if(this.re.schema_test.test(f)){for((_=this.re.schema_search).lastIndex=0;(p=_.exec(f))!==null;)if(k=this.testSchemaAt(f,p[2],_.lastIndex)){this.__schema__=p[2],this.__index__=p.index+p[1].length,this.__last_index__=p.index+p[0].length+k;break}}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(m=f.search(this.re.host_fuzzy_test))>=0&&(this.__index__<0||m=0&&(d=f.match(this.re.email_fuzzy))!==null&&(y=d.index+d[1].length,v=d.index+d[0].length,(this.__index__<0||ythis.__last_index__)&&(this.__schema__="mailto:",this.__index__=y,this.__last_index__=v)),this.__index__>=0},c.prototype.pretest=function(f){return this.re.pretest.test(f)},c.prototype.testSchemaAt=function(f,p,h){return this.__compiled__[p.toLowerCase()]?this.__compiled__[p.toLowerCase()].validate(f,h,this):0},c.prototype.match=function(f){var p=0,h=[];this.__index__>=0&&this.__text_cache__===f&&(h.push(u(this,p)),p=this.__last_index__);for(var d=p?f.slice(p):f;this.test(d);)h.push(u(this,p)),d=d.slice(this.__last_index__),p+=this.__last_index__;return h.length?h:null},c.prototype.tlds=function(f,p){return f=Array.isArray(f)?f:[f],p?(this.__tlds__=this.__tlds__.concat(f).sort().filter(function(h,d,k){return h!==k[d-1]}).reverse(),s(this),this):(this.__tlds__=f.slice(),this.__tlds_replaced__=!0,s(this),this)},c.prototype.normalize=function(f){f.schema||(f.url="http://"+f.url),f.schema!=="mailto:"||/^mailto:/i.test(f.url)||(f.url="mailto:"+f.url)},c.prototype.onCompile=function(){},b.exports=c},function(b,x,g){b.exports=function(a){var t={};return t.src_Any=g(9).source,t.src_Cc=g(10).source,t.src_Z=g(11).source,t.src_P=g(3).source,t.src_ZPCc=[t.src_Z,t.src_P,t.src_Cc].join("|"),t.src_ZCc=[t.src_Z,t.src_Cc].join("|"),t.src_pseudo_letter="(?:(?![><\uFF5C]|"+t.src_ZPCc+")"+t.src_Any+")",t.src_ip4="(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",t.src_auth="(?:(?:(?!"+t.src_ZCc+"|[@/\\[\\]()]).)+@)?",t.src_port="(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?",t.src_host_terminator="(?=$|[><\uFF5C]|"+t.src_ZPCc+")(?!-|_|:\\d|\\.-|\\.(?!$|"+t.src_ZPCc+"))",t.src_path="(?:[/?#](?:(?!"+t.src_ZCc+`|[><\uFF5C]|[()[\\]{}.,"'?!\\-]).|\\[(?:(?!`+t.src_ZCc+"|\\]).)*\\]|\\((?:(?!"+t.src_ZCc+"|[)]).)*\\)|\\{(?:(?!"+t.src_ZCc+'|[}]).)*\\}|\\"(?:(?!'+t.src_ZCc+`|["]).)+\\"|\\'(?:(?!`+t.src_ZCc+"|[']).)+\\'|\\'(?="+t.src_pseudo_letter+"|[-]).|\\.{2,}[a-zA-Z0-9%/&]|\\.(?!"+t.src_ZCc+"|[.]).|"+(a&&a["---"]?"\\-(?!--(?:[^-]|$))(?:-*)|":"\\-+|")+"\\,(?!"+t.src_ZCc+").|\\!+(?!"+t.src_ZCc+"|[!]).|\\?(?!"+t.src_ZCc+"|[?]).)+|\\/)?",t.src_email_name='[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*',t.src_xn="xn--[a-z0-9\\-]{1,59}",t.src_domain_root="(?:"+t.src_xn+"|"+t.src_pseudo_letter+"{1,63})",t.src_domain="(?:"+t.src_xn+"|(?:"+t.src_pseudo_letter+")|(?:"+t.src_pseudo_letter+"(?:-|"+t.src_pseudo_letter+"){0,61}"+t.src_pseudo_letter+"))",t.src_host="(?:(?:(?:(?:"+t.src_domain+")\\.)*"+t.src_domain+"))",t.tpl_host_fuzzy="(?:"+t.src_ip4+"|(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%)))",t.tpl_host_no_ip_fuzzy="(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%))",t.src_host_strict=t.src_host+t.src_host_terminator,t.tpl_host_fuzzy_strict=t.tpl_host_fuzzy+t.src_host_terminator,t.src_host_port_strict=t.src_host+t.src_port+t.src_host_terminator,t.tpl_host_port_fuzzy_strict=t.tpl_host_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_port_no_ip_fuzzy_strict=t.tpl_host_no_ip_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_fuzzy_test="localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:"+t.src_ZPCc+"|>|$))",t.tpl_email_fuzzy='(^|[><\uFF5C]|"|\\(|'+t.src_ZCc+")("+t.src_email_name+"@"+t.tpl_host_fuzzy_strict+")",t.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`|\uFF5C]|"+t.src_ZPCc+"))((?![$+<=>^`|\uFF5C])"+t.tpl_host_port_fuzzy_strict+t.src_path+")",t.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`|\uFF5C]|"+t.src_ZPCc+"))((?![$+<=>^`|\uFF5C])"+t.tpl_host_port_no_ip_fuzzy_strict+t.src_path+")",t}},function(b,x,g){(function(a,t){var e;/*! https://mths.be/punycode v1.4.1 by @mathias */(function(r){x&&x.nodeType,a&&a.nodeType;var n=typeof t=="object"&&t;n.global!==n&&n.window!==n&&n.self;var o,i=2147483647,s=/^xn--/,l=/[^\x20-\x7E]/,u=/[\x2E\u3002\uFF0E\uFF61]/g,c={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},f=Math.floor,p=String.fromCharCode;function h(w){throw new RangeError(c[w])}function d(w,C){for(var D=w.length,E=[];D--;)E[D]=C(w[D]);return E}function k(w,C){var D=w.split("@"),E="";return D.length>1&&(E=D[0]+"@",w=D[1]),E+d((w=w.replace(u,".")).split("."),C).join(".")}function y(w){for(var C,D,E=[],S=0,F=w.length;S=55296&&C<=56319&&S65535&&(D+=p((C-=65536)>>>10&1023|55296),C=56320|1023&C),D+=p(C)}).join("")}function _(w,C){return w+22+75*(w<26)-((C!=0)<<5)}function m(w,C,D){var E=0;for(w=D?f(w/700):w>>1,w+=f(w/C);w>455;E+=36)w=f(w/35);return f(E+36*w/(w+38))}function q(w){var C,D,E,S,F,L,z,I,B,R,M,T=[],j=w.length,O=0,P=128,N=72;for((D=w.lastIndexOf("-"))<0&&(D=0),E=0;E=128&&h("not-basic"),T.push(w.charCodeAt(E));for(S=D>0?D+1:0;S=j&&h("invalid-input"),((I=(M=w.charCodeAt(S++))-48<10?M-22:M-65<26?M-65:M-97<26?M-97:36)>=36||I>f((i-O)/L))&&h("overflow"),O+=I*L,!(I<(B=z<=N?1:z>=N+26?26:z-N));z+=36)L>f(i/(R=36-B))&&h("overflow"),L*=R;N=m(O-F,C=T.length+1,F==0),f(O/C)>i-P&&h("overflow"),P+=f(O/C),O%=C,T.splice(O++,0,P)}return v(T)}function A(w){var C,D,E,S,F,L,z,I,B,R,M,T,j,O,P,N=[];for(T=(w=y(w)).length,C=128,D=0,F=72,L=0;L=C&&Mf((i-D)/(j=E+1))&&h("overflow"),D+=(z-C)*j,C=z,L=0;Li&&h("overflow"),M==C){for(I=D,B=36;!(I<(R=B<=F?1:B>=F+26?26:B-F));B+=36)P=I-R,O=36-R,N.push(p(_(R+P%O,0))),I=f(P/O);N.push(p(_(I,0))),F=m(D,j,E==S),D=0,++E}++D,++C}return N.join("")}o={version:"1.4.1",ucs2:{decode:y,encode:v},decode:q,encode:A,toASCII:function(w){return k(w,function(C){return l.test(C)?"xn--"+A(C):C})},toUnicode:function(w){return k(w,function(C){return s.test(C)?q(C.slice(4).toLowerCase()):C})}},(e=function(){return o}.call(x,g,x,a))===void 0||(a.exports=e)})()}).call(this,g(71)(b),g(72))},function(b,x){b.exports=function(g){return g.webpackPolyfill||(g.deprecate=function(){},g.paths=[],g.children||(g.children=[]),Object.defineProperty(g,"loaded",{enumerable:!0,get:function(){return g.l}}),Object.defineProperty(g,"id",{enumerable:!0,get:function(){return g.i}}),g.webpackPolyfill=1),g}},function(b,x){var g;g=function(){return this}();try{g=g||new Function("return this")()}catch{typeof window=="object"&&(g=window)}b.exports=g},function(b,x,g){b.exports={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"\u201C\u201D\u2018\u2019",highlight:null,maxNesting:100},components:{core:{},block:{},inline:{}}}},function(b,x,g){b.exports={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"\u201C\u201D\u2018\u2019",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline"]},block:{rules:["paragraph"]},inline:{rules:["text"],rules2:["balance_pairs","text_collapse"]}}}},function(b,x,g){b.exports={options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"\u201C\u201D\u2018\u2019",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline"]},block:{rules:["blockquote","code","fence","heading","hr","html_block","lheading","list","reference","paragraph"]},inline:{rules:["autolink","backticks","emphasis","entity","escape","html_inline","image","link","newline","text"],rules2:["balance_pairs","emphasis","text_collapse"]}}}},function(b,x,g){g.r(x),g.d(x,"default",function(){return e});var a=g(17),t=g(2);function e(r){var n=r===void 0?{}:r,o=n.Hljs,i=n.baseConfig,s=n.codeBlockClass,l=n.codeHighlightExtensionMap,u=l===void 0?{}:l,c=Object(a.default)(i);return c.extend(function(f){f.set({highlight:Object(t.a)({codeHighlightExtensionMap:u,hasLang:function(p){return o.getLanguage(p)},codeBlockClass:s,highlight:function(p,h){return o.highlight(p,{language:h}).value}})})}),{previewClass:"markdown-body",extend:function(f){c.extend(function(){f.apply(void 0,arguments)})},markdownParser:c.markdownParser}}},,function(b,x,g){g.r(x);var a=g(76);x.default=function(t,e){e===void 0&&(e={});var r=e,n=r.extend,o=r.config,i=r.codeHighlightExtensionMap,s=function(l){var u=Object(a.default)({Hljs:l.Hljs,baseConfig:l.baseConfig,codeBlockClass:l.codeBlockClass||function(c){return"v-md-hljs-"+c},codeHighlightExtensionMap:l.codeHighlightExtensionMap||{}});return{previewClass:"github-markdown-body",extend:function(c){u.extend(c)},markdownParser:u.markdownParser}}({Hljs:r.Hljs,baseConfig:o,codeHighlightExtensionMap:i});n&&s.extend(n),t.theme(s)}},,function(b,x,g){},,function(b,x,g){g.r(x);var a=g(78);g(80),g(83),x.default={install:function(t,e){t.vMdParser.use(a.default,e)}}},function(b,x,g){}]).default})})(V);var K=J(V.exports),X=Y({__proto__:null,default:K},[V.exports]);export{X as g}; diff --git a/src/main/resources/static/assets/go.1e1292ae.js b/src/main/resources/static/assets/go.1e1292ae.js new file mode 100644 index 0000000..86a76d9 --- /dev/null +++ b/src/main/resources/static/assets/go.1e1292ae.js @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.33.0(4b1abad427e58dbedc1215d99a0902ffc885fcd4) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/var e={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"`",close:"`",notIn:["string"]},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"`",close:"`"},{open:'"',close:'"'},{open:"'",close:"'"}]},n={defaultToken:"",tokenPostfix:".go",keywords:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var","bool","true","false","uint8","uint16","uint32","uint64","int8","int16","int32","int64","float32","float64","complex64","complex128","byte","rune","uint","int","uintptr","string","nil"],operators:["+","-","*","/","%","&","|","^","<<",">>","&^","+=","-=","*=","/=","%=","&=","|=","^=","<<=",">>=","&^=","&&","||","<-","++","--","==","<",">","=","!","!=","<=",">=",":=","...","(",")","","]","{","}",",",";",".",":"],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,"number.hex"],[/0[0-7']*[0-7]/,"number.octal"],[/0[bB][0-1']*[0-1]/,"number.binary"],[/\d[\d']*/,"number"],[/\d/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/`/,"string","@rawstring"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@doccomment"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],doccomment:[[/[^\/*]+/,"comment.doc"],[/\/\*/,"comment.doc.invalid"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],rawstring:[[/[^\`]/,"string"],[/`/,"string","@pop"]]}};export{e as conf,n as language}; diff --git a/src/main/resources/static/assets/graphql.900d9927.js b/src/main/resources/static/assets/graphql.900d9927.js new file mode 100644 index 0000000..cf1617a --- /dev/null +++ b/src/main/resources/static/assets/graphql.900d9927.js @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.33.0(4b1abad427e58dbedc1215d99a0902ffc885fcd4) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/var e={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"""',close:'"""',notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"""',close:'"""'},{open:'"',close:'"'}],folding:{offSide:!0}},n={defaultToken:"invalid",tokenPostfix:".gql",keywords:["null","true","false","query","mutation","subscription","extend","schema","directive","scalar","type","interface","union","enum","input","implements","fragment","on"],typeKeywords:["Int","Float","String","Boolean","ID"],directiveLocations:["SCHEMA","SCALAR","OBJECT","FIELD_DEFINITION","ARGUMENT_DEFINITION","INTERFACE","UNION","ENUM","ENUM_VALUE","INPUT_OBJECT","INPUT_FIELD_DEFINITION","QUERY","MUTATION","SUBSCRIPTION","FIELD","FRAGMENT_DEFINITION","FRAGMENT_SPREAD","INLINE_FRAGMENT","VARIABLE_DEFINITION"],operators:["=","!","?",":","&","|"],symbols:/[=!?:&|]+/,escapes:/\\(?:["\\\/bfnrt]|u[0-9A-Fa-f]{4})/,tokenizer:{root:[[/[a-z_][\w$]*/,{cases:{"@keywords":"keyword","@default":"key.identifier"}}],[/[$][\w$]*/,{cases:{"@keywords":"keyword","@default":"argument.identifier"}}],[/[A-Z][\w\$]*/,{cases:{"@typeKeywords":"keyword","@default":"type.identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/@symbols/,{cases:{"@operators":"operator","@default":""}}],[/@\s*[a-zA-Z_\$][\w\$]*/,{token:"annotation",log:"annotation token: $0"}],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F]+/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/"""/,{token:"string",next:"@mlstring",nextEmbedded:"markdown"}],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,{token:"string.quote",bracket:"@open",next:"@string"}]],mlstring:[[/[^"]+/,"string"],['"""',{token:"string",next:"@pop",nextEmbedded:"@pop"}]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[/#.*$/,"comment"]]}};export{e as conf,n as language}; diff --git a/src/main/resources/static/assets/html.b425aed9.js b/src/main/resources/static/assets/html.b425aed9.js new file mode 100644 index 0000000..83558a7 --- /dev/null +++ b/src/main/resources/static/assets/html.b425aed9.js @@ -0,0 +1,6 @@ +import{m as a}from"./TextViewer.a3d21d3c.js";import"./index.bbf7818f.js";import"./common.6565cdd3.js";import"./request.19cbe8c5.js";import"./base.197bc1e5.js";import"./useFileUpload.ba32a7f8.js";import"./common.d0a2bd7a.js";import"./index.6dd6d04c.js";import"./index.9aca9b8e.js";import"./event.776e7e11.js";import"./index.c66de53e.js";import"./scroll.4cf9bb37.js";import"./event.3ec63147.js";import"./focus-trap.fe4b8179.js";import"./validator.998eeed0.js";import"./index.eeb08216.js";import"./directive.b8a17520.js";/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.33.0(4b1abad427e58dbedc1215d99a0902ffc885fcd4) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/var m=Object.defineProperty,s=Object.getOwnPropertyDescriptor,d=Object.getOwnPropertyNames,l=Object.prototype.hasOwnProperty,c=(r,e,p,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of d(e))!l.call(r,t)&&(p||t!=="default")&&m(r,t,{get:()=>e[t],enumerable:!(i=s(e,t))||i.enumerable});return r},n={};c(n,a);var o=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],j={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:[""]},brackets:[[""],["<",">"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"}],onEnterRules:[{beforeText:new RegExp(`<(?!(?:${o.join("|")}))([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:n.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(`<(?!(?:${o.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),action:{indentAction:n.languages.IndentAction.Indent}}],folding:{markers:{start:new RegExp("^\\s*"),end:new RegExp("^\\s*")}}},C={defaultToken:"",tokenPostfix:".html",ignoreCase:!0,tokenizer:{root:[[/)/,["delimiter","tag","","delimiter"]],[/(<)(script)/,["delimiter",{token:"tag",next:"@script"}]],[/(<)(style)/,["delimiter",{token:"tag",next:"@style"}]],[/(<)((?:[\w\-]+:)?[\w\-]+)/,["delimiter",{token:"tag",next:"@otherTag"}]],[/(<\/)((?:[\w\-]+:)?[\w\-]+)/,["delimiter",{token:"tag",next:"@otherTag"}]],[/]+/,"metatag.content"],[/>/,"metatag","@pop"]],comment:[[/-->/,"comment","@pop"],[/[^-]+/,"comment.content"],[/./,"comment.content"]],otherTag:[[/\/?>/,"delimiter","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter","tag",{token:"delimiter",next:"@pop"}]]],scriptAfterType:[[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/>/,{token:"delimiter",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]],style:[[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter","tag",{token:"delimiter",next:"@pop"}]]],styleAfterType:[[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/>/,{token:"delimiter",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]]}};export{j as conf,C as language}; diff --git a/src/main/resources/static/assets/huawei.57d8824c.svg b/src/main/resources/static/assets/huawei.57d8824c.svg new file mode 100644 index 0000000..1bbd975 --- /dev/null +++ b/src/main/resources/static/assets/huawei.57d8824c.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/static/assets/icon.cca102d8.css b/src/main/resources/static/assets/icon.cca102d8.css new file mode 100644 index 0000000..7d24fbb --- /dev/null +++ b/src/main/resources/static/assets/icon.cca102d8.css @@ -0,0 +1 @@ +.el-icon-loading{animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.el-icon{--color: inherit;height:1em;width:1em;line-height:1em;display:inline-flex;justify-content:center;align-items:center;position:relative;fill:currentColor;color:var(--color);font-size:inherit}.el-icon.is-loading{animation:rotating 2s linear infinite}.el-icon svg{height:1em;width:1em} diff --git a/src/main/resources/static/assets/image-viewer.856a8939.css b/src/main/resources/static/assets/image-viewer.856a8939.css new file mode 100644 index 0000000..14596cf --- /dev/null +++ b/src/main/resources/static/assets/image-viewer.856a8939.css @@ -0,0 +1 @@ +.el-image__error,.el-image__placeholder,.el-image__wrapper,.el-image__inner{width:100%;height:100%}.el-image{position:relative;display:inline-block;overflow:hidden}.el-image__inner{vertical-align:top;opacity:1}.el-image__inner.is-loading{opacity:0}.el-image__wrapper{position:absolute;top:0;left:0}.el-image__placeholder{background:var(--el-fill-color-light)}.el-image__error{display:flex;justify-content:center;align-items:center;font-size:14px;background:var(--el-fill-color-light);color:var(--el-text-color-placeholder);vertical-align:middle}.el-image__preview{cursor:pointer}.el-image-viewer__wrapper{position:fixed;top:0;right:0;bottom:0;left:0}.el-image-viewer__btn{position:absolute;z-index:1;display:flex;align-items:center;justify-content:center;border-radius:50%;opacity:.8;cursor:pointer;box-sizing:border-box;-webkit-user-select:none;user-select:none}.el-image-viewer__btn .el-icon{font-size:inherit;cursor:pointer}.el-image-viewer__close{top:40px;right:40px;width:40px;height:40px;font-size:40px}.el-image-viewer__canvas{width:100%;height:100%;display:flex;justify-content:center;align-items:center;-webkit-user-select:none;user-select:none}.el-image-viewer__actions{left:50%;bottom:30px;transform:translate(-50%);width:282px;height:44px;padding:0 23px;background-color:var(--el-text-color-regular);border-color:#fff;border-radius:22px}.el-image-viewer__actions__inner{width:100%;height:100%;text-align:justify;cursor:default;font-size:23px;color:#fff;display:flex;align-items:center;justify-content:space-around}.el-image-viewer__prev{top:50%;transform:translateY(-50%);left:40px;width:44px;height:44px;font-size:24px;color:#fff;background-color:var(--el-text-color-regular);border-color:#fff}.el-image-viewer__next{top:50%;transform:translateY(-50%);right:40px;text-indent:2px;width:44px;height:44px;font-size:24px;color:#fff;background-color:var(--el-text-color-regular);border-color:#fff}.el-image-viewer__close{width:44px;height:44px;font-size:24px;color:#fff;background-color:var(--el-text-color-regular);border-color:#fff}.el-image-viewer__mask{position:absolute;width:100%;height:100%;top:0;left:0;opacity:.5;background:#000}.viewer-fade-enter-active{animation:viewer-fade-in var(--el-transition-duration)}.viewer-fade-leave-active{animation:viewer-fade-out var(--el-transition-duration)}@keyframes viewer-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes viewer-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}} diff --git a/src/main/resources/static/assets/image-viewer.9e2d72eb.js b/src/main/resources/static/assets/image-viewer.9e2d72eb.js new file mode 100644 index 0000000..776c77a --- /dev/null +++ b/src/main/resources/static/assets/image-viewer.9e2d72eb.js @@ -0,0 +1 @@ +import{m as ce,u as V}from"./request.19cbe8c5.js";import{d as ue,at as se,r as w,au as he,s as ye,c as h,w as ae,Y as fe,o as de,a as y,b as ne,h as c,e as I,p as m,n as u,u as t,j as _e,k as _,f as S,F as oe,q as be,y as ke,Q as xe,R as ze,i as le,g as Q,T as Ie,W as Le,av as Ee,z as Ce,t as Oe,m as Se}from"./index.bbf7818f.js";import{aa as Te,L as $,b as pe,d as re,Q as ie,aj as Ne,ak as $e,u as ve,F as Ae,E as O,i as Re,al as Be,$ as Me,am as Ve,z as Ye,an as De,ao as Fe,_ as me,a4 as M,a6 as je,w as ge,a1 as Xe,a as He}from"./base.197bc1e5.js";import{u as we}from"./index.eeb08216.js";import{d as Pe}from"./debounce.a03a8484.js";import{u as We}from"./index.9aca9b8e.js";import{g as Ze}from"./scroll.4cf9bb37.js";var qe="Expected a function";function te(i,f,n){var l=!0,T=!0;if(typeof i!="function")throw new TypeError(qe);return Te(n)&&(l="leading"in n?!!n.leading:l,T="trailing"in n?!!n.trailing:T),Pe(i,f,{leading:l,maxWait:f,trailing:T})}const Qe=(i,f)=>{if(!$||!i||!f)return!1;const n=i.getBoundingClientRect();let l;return f instanceof Element?l=f.getBoundingClientRect():l={top:0,right:window.innerWidth,bottom:window.innerHeight,left:0},n.topl.top&&n.right>l.left&&n.left$&&/firefox/i.test(window.navigator.userAgent),Ke=pe({urlList:{type:re(Array),default:()=>ce([])},zIndex:{type:Number},initialIndex:{type:Number,default:0},infinite:{type:Boolean,default:!0},hideOnClickModal:{type:Boolean,default:!1},teleported:{type:Boolean,default:!1},closeOnPressEscape:{type:Boolean,default:!0}}),Ue={close:()=>!0,switch:i=>ie(i)},Je=["src"],et={name:"ElImageViewer"},tt=ue({...et,props:Ke,emits:Ue,setup(i,{emit:f}){const n=i,l={CONTAIN:{name:"contain",icon:se(Ne)},ORIGINAL:{name:"original",icon:se($e)}},T=Ge()?"DOMMouseScroll":"mousewheel",{t:L}=we(),r=ve("image-viewer"),{nextZIndex:G}=Ae(),N=w(),b=w([]),k=he(),x=w(!0),d=w(n.initialIndex),v=ye(l.CONTAIN),s=w({scale:1,deg:0,offsetX:0,offsetY:0,enableTransition:!1}),Y=h(()=>{const{urlList:a}=n;return a.length<=1}),A=h(()=>d.value===0),H=h(()=>d.value===n.urlList.length-1),K=h(()=>n.urlList[d.value]),D=h(()=>{const{scale:a,deg:e,offsetX:o,offsetY:p,enableTransition:E}=s.value;let g=o/a,C=p/a;switch(e%360){case 90:case-270:[g,C]=[C,-g];break;case 180:case-180:[g,C]=[-g,-C];break;case 270:case-90:[g,C]=[-C,g];break}const B={transform:`scale(${a}) rotate(${e}deg) translate(${g}px, ${C}px)`,transition:E?"transform .3s":""};return v.value.name===l.CONTAIN.name&&(B.maxWidth=B.maxHeight="100%"),B}),U=h(()=>ie(n.zIndex)?n.zIndex:G());function R(){J(),f("close")}function F(){const a=te(o=>{switch(o.code){case M.esc:n.closeOnPressEscape&&R();break;case M.space:X();break;case M.left:Z();break;case M.up:z("zoomIn");break;case M.right:q();break;case M.down:z("zoomOut");break}}),e=te(o=>{(o.wheelDelta?o.wheelDelta:-o.detail)>0?z("zoomIn",{zoomRate:1.2,enableTransition:!1}):z("zoomOut",{zoomRate:1.2,enableTransition:!1})});k.run(()=>{V(document,"keydown",a),V(document,T,e)})}function J(){k.stop()}function ee(){x.value=!1}function P(a){x.value=!1,a.target.alt=L("el.image.error")}function W(a){if(x.value||a.button!==0||!N.value)return;s.value.enableTransition=!1;const{offsetX:e,offsetY:o}=s.value,p=a.pageX,E=a.pageY,g=te(B=>{s.value={...s.value,offsetX:e+B.pageX-p,offsetY:o+B.pageY-E}}),C=V(document,"mousemove",g);V(document,"mouseup",()=>{C()}),a.preventDefault()}function j(){s.value={scale:1,deg:0,offsetX:0,offsetY:0,enableTransition:!1}}function X(){if(x.value)return;const a=je(l),e=Object.values(l),o=v.value.name,E=(e.findIndex(g=>g.name===o)+1)%a.length;v.value=l[a[E]],j()}function Z(){if(A.value&&!n.infinite)return;const a=n.urlList.length;d.value=(d.value-1+a)%a}function q(){if(H.value&&!n.infinite)return;const a=n.urlList.length;d.value=(d.value+1)%a}function z(a,e={}){if(x.value)return;const{zoomRate:o,rotateDeg:p,enableTransition:E}={zoomRate:1.4,rotateDeg:90,enableTransition:!0,...e};switch(a){case"zoomOut":s.value.scale>.2&&(s.value.scale=Number.parseFloat((s.value.scale/o).toFixed(3)));break;case"zoomIn":s.value.scale<7&&(s.value.scale=Number.parseFloat((s.value.scale*o).toFixed(3)));break;case"clockwise":s.value.deg+=p;break;case"anticlockwise":s.value.deg-=p;break}s.value.enableTransition=E}return ae(K,()=>{fe(()=>{const a=b.value[0];a!=null&&a.complete||(x.value=!0)})}),ae(d,a=>{j(),f("switch",a)}),de(()=>{var a,e;F(),(e=(a=N.value)==null?void 0:a.focus)==null||e.call(a)}),(a,e)=>(y(),ne(Le,{to:"body",disabled:!a.teleported},[c(Ie,{name:"viewer-fade",appear:""},{default:I(()=>[m("div",{ref_key:"wrapper",ref:N,tabindex:-1,class:u(t(r).e("wrapper")),style:le({zIndex:t(U)})},[m("div",{class:u(t(r).e("mask")),onClick:e[0]||(e[0]=_e(o=>a.hideOnClickModal&&R(),["self"]))},null,2),_(" CLOSE "),m("span",{class:u([t(r).e("btn"),t(r).e("close")]),onClick:R},[c(t(O),null,{default:I(()=>[c(t(Re))]),_:1})],2),_(" ARROW "),t(Y)?_("v-if",!0):(y(),S(oe,{key:0},[m("span",{class:u([t(r).e("btn"),t(r).e("prev"),t(r).is("disabled",!a.infinite&&t(A))]),onClick:Z},[c(t(O),null,{default:I(()=>[c(t(Be))]),_:1})],2),m("span",{class:u([t(r).e("btn"),t(r).e("next"),t(r).is("disabled",!a.infinite&&t(H))]),onClick:q},[c(t(O),null,{default:I(()=>[c(t(Me))]),_:1})],2)],64)),_(" ACTIONS "),m("div",{class:u([t(r).e("btn"),t(r).e("actions")])},[m("div",{class:u(t(r).e("actions__inner"))},[c(t(O),{onClick:e[1]||(e[1]=o=>z("zoomOut"))},{default:I(()=>[c(t(Ve))]),_:1}),c(t(O),{onClick:e[2]||(e[2]=o=>z("zoomIn"))},{default:I(()=>[c(t(Ye))]),_:1}),m("i",{class:u(t(r).e("actions__divider"))},null,2),c(t(O),{onClick:X},{default:I(()=>[(y(),ne(be(t(v).icon)))]),_:1}),m("i",{class:u(t(r).e("actions__divider"))},null,2),c(t(O),{onClick:e[3]||(e[3]=o=>z("anticlockwise"))},{default:I(()=>[c(t(De))]),_:1}),c(t(O),{onClick:e[4]||(e[4]=o=>z("clockwise"))},{default:I(()=>[c(t(Fe))]),_:1})],2)],2),_(" CANVAS "),m("div",{class:u(t(r).e("canvas"))},[(y(!0),S(oe,null,ke(a.urlList,(o,p)=>xe((y(),S("img",{ref_for:!0,ref:E=>b.value[p]=E,key:o,src:o,style:le(t(D)),class:u(t(r).e("img")),onLoad:ee,onError:P,onMousedown:W},null,46,Je)),[[ze,p===d.value]])),128))],2),Q(a.$slots,"default")],6)]),_:3})],8,["disabled"]))}});var at=me(tt,[["__file","/home/runner/work/element-plus/element-plus/packages/components/image-viewer/src/image-viewer.vue"]]);const nt=ge(at),ot=pe({hideOnClickModal:{type:Boolean,default:!1},src:{type:String,default:""},fit:{type:String,values:["","contain","cover","fill","none","scale-down"],default:""},loading:{type:String,values:["eager","lazy"]},lazy:{type:Boolean,default:!1},scrollContainer:{type:re([String,Object])},previewSrcList:{type:re(Array),default:()=>ce([])},previewTeleported:{type:Boolean,default:!1},zIndex:{type:Number},initialIndex:{type:Number,default:0},infinite:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0}}),lt={load:i=>i instanceof Event,error:i=>i instanceof Event,switch:i=>ie(i),close:()=>!0},rt=["src","loading"],it={key:0},st={name:"ElImage",inheritAttrs:!1},ct=ue({...st,props:ot,emits:lt,setup(i,{emit:f}){const n=i;let l="";const{t:T}=we(),L=ve("image"),r=Ee(),G=We(),N=w(),b=w(!1),k=w(!0),x=w(!1),d=w(),v=w(),s=$&&"loading"in HTMLImageElement.prototype;let Y,A;const H=h(()=>r.style),K=h(()=>{const{fit:e}=n;return $&&e?{objectFit:e}:{}}),D=h(()=>{const{previewSrcList:e}=n;return Array.isArray(e)&&e.length>0}),U=h(()=>{const{previewSrcList:e,initialIndex:o}=n;let p=o;return o>e.length-1&&(p=0),p}),R=h(()=>n.loading==="eager"?!1:!s&&n.loading==="lazy"||n.lazy),F=()=>{!$||(k.value=!0,b.value=!1,N.value=n.src)};function J(e){k.value=!1,b.value=!1,f("load",e)}function ee(e){k.value=!1,b.value=!0,f("error",e)}function P(){Qe(d.value,v.value)&&(F(),X())}const W=He(P,200);async function j(){var e;if(!$)return;await fe();const{scrollContainer:o}=n;Xe(o)?v.value=o:Se(o)&&o!==""?v.value=(e=document.querySelector(o))!=null?e:void 0:d.value&&(v.value=Ze(d.value)),v.value&&(Y=V(v,"scroll",W),setTimeout(()=>P(),100))}function X(){!$||!v.value||!W||(Y==null||Y(),v.value=void 0)}function Z(e){if(!!e.ctrlKey){if(e.deltaY<0)return e.preventDefault(),!1;if(e.deltaY>0)return e.preventDefault(),!1}}function q(){!D.value||(A=V("wheel",Z,{passive:!1}),l=document.body.style.overflow,document.body.style.overflow="hidden",x.value=!0)}function z(){A==null||A(),document.body.style.overflow=l,x.value=!1,f("close")}function a(e){f("switch",e)}return ae(()=>n.src,()=>{R.value?(k.value=!0,b.value=!1,X(),j()):F()}),de(()=>{R.value?j():F()}),(e,o)=>(y(),S("div",{ref_key:"container",ref:d,class:u([t(L).b(),e.$attrs.class]),style:le(t(H))},[N.value!==void 0&&!b.value?(y(),S("img",Ce({key:0},t(G),{src:N.value,loading:e.loading,style:t(K),class:[t(L).e("inner"),t(D)&&t(L).e("preview"),k.value&&t(L).is("loading")],onClick:q,onLoad:J,onError:ee}),null,16,rt)):_("v-if",!0),k.value||b.value?(y(),S("div",{key:1,class:u(t(L).e("wrapper"))},[k.value?Q(e.$slots,"placeholder",{key:0},()=>[m("div",{class:u(t(L).e("placeholder"))},null,2)]):b.value?Q(e.$slots,"error",{key:1},()=>[m("div",{class:u(t(L).e("error"))},Oe(t(T)("el.image.error")),3)]):_("v-if",!0)],2)):_("v-if",!0),t(D)?(y(),S(oe,{key:2},[x.value?(y(),ne(t(nt),{key:0,"z-index":e.zIndex,"initial-index":t(U),infinite:e.infinite,"url-list":e.previewSrcList,"hide-on-click-modal":e.hideOnClickModal,teleported:e.previewTeleported,"close-on-press-escape":e.closeOnPressEscape,onClose:z,onSwitch:a},{default:I(()=>[e.$slots.viewer?(y(),S("div",it,[Q(e.$slots,"viewer")])):_("v-if",!0)]),_:3},8,["z-index","initial-index","infinite","url-list","hide-on-click-modal","teleported","close-on-press-escape"])):_("v-if",!0)],64)):_("v-if",!0)],6))}});var ut=me(ct,[["__file","/home/runner/work/element-plus/element-plus/packages/components/image/src/image.vue"]]);const ht=ge(ut);export{ht as E}; diff --git a/src/main/resources/static/assets/img-disable.16380239.svg b/src/main/resources/static/assets/img-disable.16380239.svg new file mode 100644 index 0000000..679b1a3 --- /dev/null +++ b/src/main/resources/static/assets/img-disable.16380239.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/assets/img-enable.ca957fe0.svg b/src/main/resources/static/assets/img-enable.ca957fe0.svg new file mode 100644 index 0000000..692de4b --- /dev/null +++ b/src/main/resources/static/assets/img-enable.ca957fe0.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/assets/index.027c5919.css b/src/main/resources/static/assets/index.027c5919.css new file mode 100644 index 0000000..336733d --- /dev/null +++ b/src/main/resources/static/assets/index.027c5919.css @@ -0,0 +1 @@ +.zfile-install-logo[data-v-6462780c]{background-image:url(/assets/install-step.28fbaa8c.svg)}.zfile-install-form[data-v-6462780c]{--zfile-install-input-height: 45px}.zfile-install-form[data-v-6462780c] .el-input__inner{height:var(--zfile-install-input-height)}.zfile-install-form[data-v-6462780c] .el-button--large{--el-button-size: var(--zfile-install-input-height);height:var(--el-button-size)}.zfile-install-form[data-v-6462780c] input:-internal-autofill-selected{-webkit-text-fill-color:var(--el-input-text-color, var(--el-text-color-regular));transition:background-color 1000s ease-out .5s} diff --git a/src/main/resources/static/assets/index.02d854ed.js b/src/main/resources/static/assets/index.02d854ed.js new file mode 100644 index 0000000..7dafc8c --- /dev/null +++ b/src/main/resources/static/assets/index.02d854ed.js @@ -0,0 +1,12 @@ +function Ba(e,t){return t.forEach(function(n){n&&typeof n!="string"&&!Array.isArray(n)&&Object.keys(n).forEach(function(a){if(a!=="default"&&!(a in e)){var r=Object.getOwnPropertyDescriptor(n,a);Object.defineProperty(e,a,r.get?r:{enumerable:!0,get:function(){return n[a]}})}})}),Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}function pt(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(function(t){var n=e[t];typeof n=="object"&&!Object.isFrozen(n)&&pt(n)}),e}var Zt=pt,Ga=pt;Zt.default=Ga;class ht{constructor(t){t.data===void 0&&(t.data={}),this.data=t.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function be(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function ie(e,...t){const n=Object.create(null);for(const a in e)n[a]=e[a];return t.forEach(function(a){for(const r in a)n[r]=a[r]}),n}const Ya="",Mt=e=>!!e.kind;class Ha{constructor(t,n){this.buffer="",this.classPrefix=n.classPrefix,t.walk(this)}addText(t){this.buffer+=be(t)}openNode(t){if(!Mt(t))return;let n=t.kind;t.sublanguage||(n=`${this.classPrefix}${n}`),this.span(n)}closeNode(t){!Mt(t)||(this.buffer+=Ya)}value(){return this.buffer}span(t){this.buffer+=``}}class gt{constructor(){this.rootNode={children:[]},this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(t){this.top.children.push(t)}openNode(t){const n={kind:t,children:[]};this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(t){return this.constructor._walk(t,this.rootNode)}static _walk(t,n){return typeof n=="string"?t.addText(n):n.children&&(t.openNode(n),n.children.forEach(a=>this._walk(t,a)),t.closeNode(n)),t}static _collapse(t){typeof t!="string"&&(!t.children||(t.children.every(n=>typeof n=="string")?t.children=[t.children.join("")]:t.children.forEach(n=>{gt._collapse(n)})))}}class Va extends gt{constructor(t){super(),this.options=t}addKeyword(t,n){t!==""&&(this.openNode(n),this.addText(t),this.closeNode())}addText(t){t!==""&&this.add(t)}addSublanguage(t,n){const a=t.root;a.kind=n,a.sublanguage=!0,this.add(a)}toHTML(){return new Ha(this,this.options).value()}finalize(){return!0}}function qa(e){return new RegExp(e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")}function Ae(e){return e?typeof e=="string"?e:e.source:null}function $a(...e){return e.map(n=>Ae(n)).join("")}function za(...e){return"("+e.map(n=>Ae(n)).join("|")+")"}function Wa(e){return new RegExp(e.toString()+"|").exec("").length-1}function Ka(e,t){const n=e&&e.exec(t);return n&&n.index===0}const Qa=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function Xa(e,t="|"){let n=0;return e.map(a=>{n+=1;const r=n;let i=Ae(a),s="";for(;i.length>0;){const o=Qa.exec(i);if(!o){s+=i;break}s+=i.substring(0,o.index),i=i.substring(o.index+o[0].length),o[0][0]==="\\"&&o[1]?s+="\\"+String(Number(o[1])+r):(s+=o[0],o[0]==="("&&n++)}return s}).map(a=>`(${a})`).join(t)}const Za=/\b\B/,Jt="[a-zA-Z]\\w*",St="[a-zA-Z_]\\w*",Tt="\\b\\d+(\\.\\d+)?",jt="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",en="\\b(0b[01]+)",Ja="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",ja=(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=$a(t,/.*\b/,e.binary,/\b.*/)),ie({className:"meta",begin:t,end:/$/,relevance:0,"on:begin":(n,a)=>{n.index!==0&&a.ignoreMatch()}},e)},ve={begin:"\\\\[\\s\\S]",relevance:0},er={className:"string",begin:"'",end:"'",illegal:"\\n",contains:[ve]},tr={className:"string",begin:'"',end:'"',illegal:"\\n",contains:[ve]},tn={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},$e=function(e,t,n={}){const a=ie({className:"comment",begin:e,end:t,contains:[]},n);return a.contains.push(tn),a.contains.push({className:"doctag",begin:"(?:TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):",relevance:0}),a},nr=$e("//","$"),ar=$e("/\\*","\\*/"),rr=$e("#","$"),ir={className:"number",begin:Tt,relevance:0},or={className:"number",begin:jt,relevance:0},sr={className:"number",begin:en,relevance:0},lr={className:"number",begin:Tt+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},cr={begin:/(?=\/[^/\n]*\/)/,contains:[{className:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[ve,{begin:/\[/,end:/\]/,relevance:0,contains:[ve]}]}]},_r={className:"title",begin:Jt,relevance:0},dr={className:"title",begin:St,relevance:0},ur={begin:"\\.\\s*"+St,relevance:0},mr=function(e){return Object.assign(e,{"on:begin":(t,n)=>{n.data._beginMatch=t[1]},"on:end":(t,n)=>{n.data._beginMatch!==t[1]&&n.ignoreMatch()}})};var Me=Object.freeze({__proto__:null,MATCH_NOTHING_RE:Za,IDENT_RE:Jt,UNDERSCORE_IDENT_RE:St,NUMBER_RE:Tt,C_NUMBER_RE:jt,BINARY_NUMBER_RE:en,RE_STARTERS_RE:Ja,SHEBANG:ja,BACKSLASH_ESCAPE:ve,APOS_STRING_MODE:er,QUOTE_STRING_MODE:tr,PHRASAL_WORDS_MODE:tn,COMMENT:$e,C_LINE_COMMENT_MODE:nr,C_BLOCK_COMMENT_MODE:ar,HASH_COMMENT_MODE:rr,NUMBER_MODE:ir,C_NUMBER_MODE:or,BINARY_NUMBER_MODE:sr,CSS_NUMBER_MODE:lr,REGEXP_MODE:cr,TITLE_MODE:_r,UNDERSCORE_TITLE_MODE:dr,METHOD_GUARD:ur,END_SAME_AS_BEGIN:mr});function Er(e,t){e.input[e.index-1]==="."&&t.ignoreMatch()}function pr(e,t){!t||!e.beginKeywords||(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=Er,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function gr(e,t){!Array.isArray(e.illegal)||(e.illegal=za(...e.illegal))}function Sr(e,t){if(!!e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function Tr(e,t){e.relevance===void 0&&(e.relevance=1)}const br=["of","and","for","in","not","or","if","then","parent","list","value"],Rr="keyword";function nn(e,t,n=Rr){const a={};return typeof e=="string"?r(n,e.split(" ")):Array.isArray(e)?r(n,e):Object.keys(e).forEach(function(i){Object.assign(a,nn(e[i],t,i))}),a;function r(i,s){t&&(s=s.map(o=>o.toLowerCase())),s.forEach(function(o){const l=o.split("|");a[l[0]]=[i,Nr(l[0],l[1])]})}}function Nr(e,t){return t?Number(t):Cr(e)?0:1}function Cr(e){return br.includes(e.toLowerCase())}function fr(e,{plugins:t}){function n(o,l){return new RegExp(Ae(o),"m"+(e.case_insensitive?"i":"")+(l?"g":""))}class a{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(l,c){c.position=this.position++,this.matchIndexes[this.matchAt]=c,this.regexes.push([c,l]),this.matchAt+=Wa(l)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const l=this.regexes.map(c=>c[1]);this.matcherRe=n(Xa(l),!0),this.lastIndex=0}exec(l){this.matcherRe.lastIndex=this.lastIndex;const c=this.matcherRe.exec(l);if(!c)return null;const _=c.findIndex((m,g)=>g>0&&m!==void 0),u=this.matchIndexes[_];return c.splice(0,_),Object.assign(c,u)}}class r{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(l){if(this.multiRegexes[l])return this.multiRegexes[l];const c=new a;return this.rules.slice(l).forEach(([_,u])=>c.addRule(_,u)),c.compile(),this.multiRegexes[l]=c,c}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(l,c){this.rules.push([l,c]),c.type==="begin"&&this.count++}exec(l){const c=this.getMatcher(this.regexIndex);c.lastIndex=this.lastIndex;let _=c.exec(l);if(this.resumingScanAtSamePosition()&&!(_&&_.index===this.lastIndex)){const u=this.getMatcher(0);u.lastIndex=this.lastIndex+1,_=u.exec(l)}return _&&(this.regexIndex+=_.position+1,this.regexIndex===this.count&&this.considerAll()),_}}function i(o){const l=new r;return o.contains.forEach(c=>l.addRule(c.begin,{rule:c,type:"begin"})),o.terminatorEnd&&l.addRule(o.terminatorEnd,{type:"end"}),o.illegal&&l.addRule(o.illegal,{type:"illegal"}),l}function s(o,l){const c=o;if(o.isCompiled)return c;[Sr].forEach(u=>u(o,l)),e.compilerExtensions.forEach(u=>u(o,l)),o.__beforeBegin=null,[pr,gr,Tr].forEach(u=>u(o,l)),o.isCompiled=!0;let _=null;if(typeof o.keywords=="object"&&(_=o.keywords.$pattern,delete o.keywords.$pattern),o.keywords&&(o.keywords=nn(o.keywords,e.case_insensitive)),o.lexemes&&_)throw new Error("ERR: Prefer `keywords.$pattern` to `mode.lexemes`, BOTH are not allowed. (see mode reference) ");return _=_||o.lexemes||/\w+/,c.keywordPatternRe=n(_,!0),l&&(o.begin||(o.begin=/\B|\b/),c.beginRe=n(o.begin),o.endSameAsBegin&&(o.end=o.begin),!o.end&&!o.endsWithParent&&(o.end=/\B|\b/),o.end&&(c.endRe=n(o.end)),c.terminatorEnd=Ae(o.end)||"",o.endsWithParent&&l.terminatorEnd&&(c.terminatorEnd+=(o.end?"|":"")+l.terminatorEnd)),o.illegal&&(c.illegalRe=n(o.illegal)),o.contains||(o.contains=[]),o.contains=[].concat(...o.contains.map(function(u){return Or(u==="self"?o:u)})),o.contains.forEach(function(u){s(u,c)}),o.starts&&s(o.starts,l),c.matcher=i(c),c}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=ie(e.classNameAliases||{}),s(e)}function an(e){return e?e.endsWithParent||an(e.starts):!1}function Or(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(t){return ie(e,{variants:null},t)})),e.cachedVariants?e.cachedVariants:an(e)?ie(e,{starts:e.starts?ie(e.starts):null}):Object.isFrozen(e)?ie(e):e}var Ir="10.7.3";function Ar(e){return Boolean(e||e==="")}function vr(e){const t={props:["language","code","autodetect"],data:function(){return{detectedLanguage:"",unknownLanguage:!1}},computed:{className(){return this.unknownLanguage?"":"hljs "+this.detectedLanguage},highlighted(){if(!this.autoDetect&&!e.getLanguage(this.language))return console.warn(`The language "${this.language}" you specified could not be found.`),this.unknownLanguage=!0,be(this.code);let a={};return this.autoDetect?(a=e.highlightAuto(this.code),this.detectedLanguage=a.language):(a=e.highlight(this.language,this.code,this.ignoreIllegals),this.detectedLanguage=this.language),a.value},autoDetect(){return!this.language||Ar(this.autodetect)},ignoreIllegals(){return!0}},render(a){return a("pre",{},[a("code",{class:this.className,domProps:{innerHTML:this.highlighted}})])}};return{Component:t,VuePlugin:{install(a){a.component("highlightjs",t)}}}}const yr={"after:highlightElement":({el:e,result:t,text:n})=>{const a=Lt(e);if(!a.length)return;const r=document.createElement("div");r.innerHTML=t.value,t.value=Dr(a,Lt(r),n)}};function _t(e){return e.nodeName.toLowerCase()}function Lt(e){const t=[];return function n(a,r){for(let i=a.firstChild;i;i=i.nextSibling)i.nodeType===3?r+=i.nodeValue.length:i.nodeType===1&&(t.push({event:"start",offset:r,node:i}),r=n(i,r),_t(i).match(/br|hr|img|input/)||t.push({event:"stop",offset:r,node:i}));return r}(e,0),t}function Dr(e,t,n){let a=0,r="";const i=[];function s(){return!e.length||!t.length?e.length?e:t:e[0].offset!==t[0].offset?e[0].offset"}function l(_){r+=""}function c(_){(_.event==="start"?o:l)(_.node)}for(;e.length||t.length;){let _=s();if(r+=be(n.substring(a,_[0].offset)),a=_[0].offset,_===e){i.reverse().forEach(l);do c(_.splice(0,1)[0]),_=s();while(_===e&&_.length&&_[0].offset===a);i.reverse().forEach(o)}else _[0].event==="start"?i.push(_[0].node):i.pop(),c(_.splice(0,1)[0])}return r+be(n.substr(a))}const xt={},Je=e=>{console.error(e)},Pt=(e,...t)=>{console.log(`WARN: ${e}`,...t)},X=(e,t)=>{xt[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),xt[`${e}/${t}`]=!0)},je=be,wt=ie,kt=Symbol("nomatch"),hr=function(e){const t=Object.create(null),n=Object.create(null),a=[];let r=!0;const i=/(^(<[^>]+>|\t|)+|\n)/gm,s="Could not find the language '{}', did you forget to load/include a language module?",o={disableAutodetect:!0,name:"Plain text",contains:[]};let l={noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:null,__emitter:Va};function c(p){return l.noHighlightRe.test(p)}function _(p){let b=p.className+" ";b+=p.parentNode?p.parentNode.className:"";const A=l.languageDetectRe.exec(b);if(A){const x=q(A[1]);return x||(Pt(s.replace("{}",A[1])),Pt("Falling back to no-highlight mode for this block.",p)),x?A[1]:"no-highlight"}return b.split(/\s+/).find(x=>c(x)||q(x))}function u(p,b,A,x){let U="",K="";typeof b=="object"?(U=p,A=b.ignoreIllegals,K=b.language,x=void 0):(X("10.7.0","highlight(lang, code, ...args) has been deprecated."),X("10.7.0",`Please use highlight(code, options) instead. +https://github.com/highlightjs/highlight.js/issues/2277`),K=p,U=b);const H={code:U,language:K};J("before:highlight",H);const M=H.result?H.result:m(H.language,H.code,A,x);return M.code=H.code,J("after:highlight",M),M}function m(p,b,A,x){function U(N,I){const D=ae.case_insensitive?I[0].toLowerCase():I[0];return Object.prototype.hasOwnProperty.call(N.keywords,D)&&N.keywords[D]}function K(){if(!y.keywords){G.addText(F);return}let N=0;y.keywordPatternRe.lastIndex=0;let I=y.keywordPatternRe.exec(F),D="";for(;I;){D+=F.substring(N,I.index);const P=U(y,I);if(P){const[V,Ee]=P;if(G.addText(D),D="",me+=Ee,V.startsWith("_"))D+=I[0];else{const Xe=ae.classNameAliases[V]||V;G.addKeyword(I[0],Xe)}}else D+=I[0];N=y.keywordPatternRe.lastIndex,I=y.keywordPatternRe.exec(F)}D+=F.substr(N),G.addText(D)}function H(){if(F==="")return;let N=null;if(typeof y.subLanguage=="string"){if(!t[y.subLanguage]){G.addText(F);return}N=m(y.subLanguage,F,!0,De[y.subLanguage]),De[y.subLanguage]=N.top}else N=E(F,y.subLanguage.length?y.subLanguage:null);y.relevance>0&&(me+=N.relevance),G.addSublanguage(N.emitter,N.language)}function M(){y.subLanguage!=null?H():K(),F=""}function $(N){return N.className&&G.openNode(ae.classNameAliases[N.className]||N.className),y=Object.create(N,{parent:{value:y}}),y}function Q(N,I,D){let P=Ka(N.endRe,D);if(P){if(N["on:end"]){const V=new ht(N);N["on:end"](I,V),V.isMatchIgnored&&(P=!1)}if(P){for(;N.endsParent&&N.parent;)N=N.parent;return N}}if(N.endsWithParent)return Q(N.parent,I,D)}function Re(N){return y.matcher.regexIndex===0?(F+=N[0],1):(fe=!0,0)}function ze(N){const I=N[0],D=N.rule,P=new ht(D),V=[D.__beforeBegin,D["on:begin"]];for(const Ee of V)if(!!Ee&&(Ee(N,P),P.isMatchIgnored))return Re(I);return D&&D.endSameAsBegin&&(D.endRe=qa(I)),D.skip?F+=I:(D.excludeBegin&&(F+=I),M(),!D.returnBegin&&!D.excludeBegin&&(F=I)),$(D),D.returnBegin?0:I.length}function We(N){const I=N[0],D=b.substr(N.index),P=Q(y,N,D);if(!P)return kt;const V=y;V.skip?F+=I:(V.returnEnd||V.excludeEnd||(F+=I),M(),V.excludeEnd&&(F=I));do y.className&&G.closeNode(),!y.skip&&!y.subLanguage&&(me+=y.relevance),y=y.parent;while(y!==P.parent);return P.starts&&(P.endSameAsBegin&&(P.starts.endRe=P.endRe),$(P.starts)),V.returnEnd?0:I.length}function Ke(){const N=[];for(let I=y;I!==ae;I=I.parent)I.className&&N.unshift(I.className);N.forEach(I=>G.openNode(I))}let ue={};function ye(N,I){const D=I&&I[0];if(F+=N,D==null)return M(),0;if(ue.type==="begin"&&I.type==="end"&&ue.index===I.index&&D===""){if(F+=b.slice(I.index,I.index+1),!r){const P=new Error("0 width match regex");throw P.languageName=p,P.badRule=ue.rule,P}return 1}if(ue=I,I.type==="begin")return ze(I);if(I.type==="illegal"&&!A){const P=new Error('Illegal lexeme "'+D+'" for mode "'+(y.className||"")+'"');throw P.mode=y,P}else if(I.type==="end"){const P=We(I);if(P!==kt)return P}if(I.type==="illegal"&&D==="")return 1;if(Ce>1e5&&Ce>I.index*3)throw new Error("potential infinite loop, way more iterations than matches");return F+=D,D.length}const ae=q(p);if(!ae)throw Je(s.replace("{}",p)),new Error('Unknown language: "'+p+'"');const Qe=fr(ae,{plugins:a});let Ne="",y=x||Qe;const De={},G=new l.__emitter(l);Ke();let F="",me=0,re=0,Ce=0,fe=!1;try{for(y.matcher.considerAll();;){Ce++,fe?fe=!1:y.matcher.considerAll(),y.matcher.lastIndex=re;const N=y.matcher.exec(b);if(!N)break;const I=b.substring(re,N.index),D=ye(I,N);re=N.index+D}return ye(b.substr(re)),G.closeAllNodes(),G.finalize(),Ne=G.toHTML(),{relevance:Math.floor(me),value:Ne,language:p,illegal:!1,emitter:G,top:y}}catch(N){if(N.message&&N.message.includes("Illegal"))return{illegal:!0,illegalBy:{msg:N.message,context:b.slice(re-100,re+100),mode:N.mode},sofar:Ne,relevance:0,value:je(b),emitter:G};if(r)return{illegal:!1,relevance:0,value:je(b),emitter:G,language:p,top:y,errorRaised:N};throw N}}function g(p){const b={relevance:0,emitter:new l.__emitter(l),value:je(p),illegal:!1,top:o};return b.emitter.addText(p),b}function E(p,b){b=b||l.languages||Object.keys(t);const A=g(p),x=b.filter(q).filter(Z).map($=>m($,p,!1));x.unshift(A);const U=x.sort(($,Q)=>{if($.relevance!==Q.relevance)return Q.relevance-$.relevance;if($.language&&Q.language){if(q($.language).supersetOf===Q.language)return 1;if(q(Q.language).supersetOf===$.language)return-1}return 0}),[K,H]=U,M=K;return M.second_best=H,M}function S(p){return l.tabReplace||l.useBR?p.replace(i,b=>b===` +`?l.useBR?"
    ":b:l.tabReplace?b.replace(/\t/g,l.tabReplace):b):p}function T(p,b,A){const x=b?n[b]:A;p.classList.add("hljs"),x&&p.classList.add(x)}const C={"before:highlightElement":({el:p})=>{l.useBR&&(p.innerHTML=p.innerHTML.replace(/\n/g,"").replace(//g,` +`))},"after:highlightElement":({result:p})=>{l.useBR&&(p.value=p.value.replace(/\n/g,"
    "))}},R=/^(<[^>]+>|\t)+/gm,f={"after:highlightElement":({result:p})=>{l.tabReplace&&(p.value=p.value.replace(R,b=>b.replace(/\t/g,l.tabReplace)))}};function O(p){let b=null;const A=_(p);if(c(A))return;J("before:highlightElement",{el:p,language:A}),b=p;const x=b.textContent,U=A?u(x,{language:A,ignoreIllegals:!0}):E(x);J("after:highlightElement",{el:p,result:U,text:x}),p.innerHTML=U.value,T(p,A,U.language),p.result={language:U.language,re:U.relevance,relavance:U.relevance},U.second_best&&(p.second_best={language:U.second_best.language,re:U.second_best.relevance,relavance:U.second_best.relevance})}function L(p){p.useBR&&(X("10.3.0","'useBR' will be removed entirely in v11.0"),X("10.3.0","Please see https://github.com/highlightjs/highlight.js/issues/2559")),l=wt(l,p)}const h=()=>{if(h.called)return;h.called=!0,X("10.6.0","initHighlighting() is deprecated. Use highlightAll() instead."),document.querySelectorAll("pre code").forEach(O)};function w(){X("10.6.0","initHighlightingOnLoad() is deprecated. Use highlightAll() instead."),Y=!0}let Y=!1;function v(){if(document.readyState==="loading"){Y=!0;return}document.querySelectorAll("pre code").forEach(O)}function B(){Y&&v()}typeof window!="undefined"&&window.addEventListener&&window.addEventListener("DOMContentLoaded",B,!1);function oe(p,b){let A=null;try{A=b(e)}catch(x){if(Je("Language definition for '{}' could not be registered.".replace("{}",p)),r)Je(x);else throw x;A=o}A.name||(A.name=p),t[p]=A,A.rawDefinition=b.bind(null,e),A.aliases&&te(A.aliases,{languageName:p})}function se(p){delete t[p];for(const b of Object.keys(n))n[b]===p&&delete n[b]}function j(){return Object.keys(t)}function le(p){X("10.4.0","requireLanguage will be removed entirely in v11."),X("10.4.0","Please see https://github.com/highlightjs/highlight.js/pull/2844");const b=q(p);if(b)return b;throw new Error("The '{}' language is required, but not loaded.".replace("{}",p))}function q(p){return p=(p||"").toLowerCase(),t[p]||t[n[p]]}function te(p,{languageName:b}){typeof p=="string"&&(p=[p]),p.forEach(A=>{n[A.toLowerCase()]=b})}function Z(p){const b=q(p);return b&&!b.disableAutodetect}function W(p){p["before:highlightBlock"]&&!p["before:highlightElement"]&&(p["before:highlightElement"]=b=>{p["before:highlightBlock"](Object.assign({block:b.el},b))}),p["after:highlightBlock"]&&!p["after:highlightElement"]&&(p["after:highlightElement"]=b=>{p["after:highlightBlock"](Object.assign({block:b.el},b))})}function ce(p){W(p),a.push(p)}function J(p,b){const A=p;a.forEach(function(x){x[A]&&x[A](b)})}function ne(p){return X("10.2.0","fixMarkup will be removed entirely in v11.0"),X("10.2.0","Please see https://github.com/highlightjs/highlight.js/issues/2534"),S(p)}function _e(p){return X("10.7.0","highlightBlock will be removed entirely in v12.0"),X("10.7.0","Please use highlightElement now."),O(p)}Object.assign(e,{highlight:u,highlightAuto:E,highlightAll:v,fixMarkup:ne,highlightElement:O,highlightBlock:_e,configure:L,initHighlighting:h,initHighlightingOnLoad:w,registerLanguage:oe,unregisterLanguage:se,listLanguages:j,getLanguage:q,registerAliases:te,requireLanguage:le,autoDetection:Z,inherit:wt,addPlugin:ce,vuePlugin:vr(e).VuePlugin}),e.debugMode=function(){r=!1},e.safeMode=function(){r=!0},e.versionString=Ir;for(const p in Me)typeof Me[p]=="object"&&Zt(Me[p]);return Object.assign(e,Me),e.addPlugin(C),e.addPlugin(yr),e.addPlugin(f),e};var Mr=hr({}),Lr=Mr;function xr(e){var t="[A-Za-z\u0410-\u042F\u0430-\u044F\u0451\u0401_][A-Za-z\u0410-\u042F\u0430-\u044F\u0451\u0401_0-9]+",n="\u0434\u0430\u043B\u0435\u0435 ",a="\u0432\u043E\u0437\u0432\u0440\u0430\u0442 \u0432\u044B\u0437\u0432\u0430\u0442\u044C\u0438\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C \u0434\u043B\u044F \u0435\u0441\u043B\u0438 \u0438 \u0438\u0437 \u0438\u043B\u0438 \u0438\u043D\u0430\u0447\u0435 \u0438\u043D\u0430\u0447\u0435\u0435\u0441\u043B\u0438 \u0438\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u043A\u0430\u0436\u0434\u043E\u0433\u043E \u043A\u043E\u043D\u0435\u0446\u0435\u0441\u043B\u0438 \u043A\u043E\u043D\u0435\u0446\u043F\u043E\u043F\u044B\u0442\u043A\u0438 \u043A\u043E\u043D\u0435\u0446\u0446\u0438\u043A\u043B\u0430 \u043D\u0435 \u043D\u043E\u0432\u044B\u0439 \u043F\u0435\u0440\u0435\u0439\u0442\u0438 \u043F\u0435\u0440\u0435\u043C \u043F\u043E \u043F\u043E\u043A\u0430 \u043F\u043E\u043F\u044B\u0442\u043A\u0430 \u043F\u0440\u0435\u0440\u0432\u0430\u0442\u044C \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0442\u043E\u0433\u0434\u0430 \u0446\u0438\u043A\u043B \u044D\u043A\u0441\u043F\u043E\u0440\u0442 ",r=n+a,i="\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C\u0438\u0437\u0444\u0430\u0439\u043B\u0430 ",s="\u0432\u0435\u0431\u043A\u043B\u0438\u0435\u043D\u0442 \u0432\u043C\u0435\u0441\u0442\u043E \u0432\u043D\u0435\u0448\u043D\u0435\u0435\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435 \u043A\u043B\u0438\u0435\u043D\u0442 \u043A\u043E\u043D\u0435\u0446\u043E\u0431\u043B\u0430\u0441\u0442\u0438 \u043C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0435\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043A\u043B\u0438\u0435\u043D\u0442 \u043C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0435\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0441\u0435\u0440\u0432\u0435\u0440 \u043D\u0430\u043A\u043B\u0438\u0435\u043D\u0442\u0435 \u043D\u0430\u043A\u043B\u0438\u0435\u043D\u0442\u0435\u043D\u0430\u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u043D\u0430\u043A\u043B\u0438\u0435\u043D\u0442\u0435\u043D\u0430\u0441\u0435\u0440\u0432\u0435\u0440\u0435\u0431\u0435\u0437\u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u0430 \u043D\u0430\u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u043D\u0430\u0441\u0435\u0440\u0432\u0435\u0440\u0435\u0431\u0435\u0437\u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u0430 \u043E\u0431\u043B\u0430\u0441\u0442\u044C \u043F\u0435\u0440\u0435\u0434 \u043F\u043E\u0441\u043B\u0435 \u0441\u0435\u0440\u0432\u0435\u0440 \u0442\u043E\u043B\u0441\u0442\u044B\u0439\u043A\u043B\u0438\u0435\u043D\u0442\u043E\u0431\u044B\u0447\u043D\u043E\u0435\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0442\u043E\u043B\u0441\u0442\u044B\u0439\u043A\u043B\u0438\u0435\u043D\u0442\u0443\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u043C\u043E\u0435\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0442\u043E\u043D\u043A\u0438\u0439\u043A\u043B\u0438\u0435\u043D\u0442 ",o=i+s,l="\u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u044C\u0441\u0442\u0440\u0430\u043D\u0438\u0446 \u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u044C\u0441\u0442\u0440\u043E\u043A \u0441\u0438\u043C\u0432\u043E\u043B\u0442\u0430\u0431\u0443\u043B\u044F\u0446\u0438\u0438 ",c="ansitooem oemtoansi \u0432\u0432\u0435\u0441\u0442\u0438\u0432\u0438\u0434\u0441\u0443\u0431\u043A\u043E\u043D\u0442\u043E \u0432\u0432\u0435\u0441\u0442\u0438\u043F\u0435\u0440\u0435\u0447\u0438\u0441\u043B\u0435\u043D\u0438\u0435 \u0432\u0432\u0435\u0441\u0442\u0438\u043F\u0435\u0440\u0438\u043E\u0434 \u0432\u0432\u0435\u0441\u0442\u0438\u043F\u043B\u0430\u043D\u0441\u0447\u0435\u0442\u043E\u0432 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u0439\u043F\u043B\u0430\u043D\u0441\u0447\u0435\u0442\u043E\u0432 \u0434\u0430\u0442\u0430\u0433\u043E\u0434 \u0434\u0430\u0442\u0430\u043C\u0435\u0441\u044F\u0446 \u0434\u0430\u0442\u0430\u0447\u0438\u0441\u043B\u043E \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A\u0441\u0438\u0441\u0442\u0435\u043C\u044B \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0432\u0441\u0442\u0440\u043E\u043A\u0443 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0438\u0437\u0441\u0442\u0440\u043E\u043A\u0438 \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0438\u0431 \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043A\u043E\u0434\u0441\u0438\u043C\u0432 \u043A\u043E\u043D\u0433\u043E\u0434\u0430 \u043A\u043E\u043D\u0435\u0446\u043F\u0435\u0440\u0438\u043E\u0434\u0430\u0431\u0438 \u043A\u043E\u043D\u0435\u0446\u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043D\u043D\u043E\u0433\u043E\u043F\u0435\u0440\u0438\u043E\u0434\u0430\u0431\u0438 \u043A\u043E\u043D\u0435\u0446\u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u043E\u0433\u043E\u0438\u043D\u0442\u0435\u0440\u0432\u0430\u043B\u0430 \u043A\u043E\u043D\u043A\u0432\u0430\u0440\u0442\u0430\u043B\u0430 \u043A\u043E\u043D\u043C\u0435\u0441\u044F\u0446\u0430 \u043A\u043E\u043D\u043D\u0435\u0434\u0435\u043B\u0438 \u043B\u043E\u0433 \u043B\u043E\u043310 \u043C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435\u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E\u0441\u0443\u0431\u043A\u043E\u043D\u0442\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435\u043D\u0430\u0431\u043E\u0440\u0430\u043F\u0440\u0430\u0432 \u043D\u0430\u0437\u043D\u0430\u0447\u0438\u0442\u044C\u0432\u0438\u0434 \u043D\u0430\u0437\u043D\u0430\u0447\u0438\u0442\u044C\u0441\u0447\u0435\u0442 \u043D\u0430\u0439\u0442\u0438\u0441\u0441\u044B\u043B\u043A\u0438 \u043D\u0430\u0447\u0430\u043B\u043E\u043F\u0435\u0440\u0438\u043E\u0434\u0430\u0431\u0438 \u043D\u0430\u0447\u0430\u043B\u043E\u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u043E\u0433\u043E\u0438\u043D\u0442\u0435\u0440\u0432\u0430\u043B\u0430 \u043D\u0430\u0447\u0433\u043E\u0434\u0430 \u043D\u0430\u0447\u043A\u0432\u0430\u0440\u0442\u0430\u043B\u0430 \u043D\u0430\u0447\u043C\u0435\u0441\u044F\u0446\u0430 \u043D\u0430\u0447\u043D\u0435\u0434\u0435\u043B\u0438 \u043D\u043E\u043C\u0435\u0440\u0434\u043D\u044F\u0433\u043E\u0434\u0430 \u043D\u043E\u043C\u0435\u0440\u0434\u043D\u044F\u043D\u0435\u0434\u0435\u043B\u0438 \u043D\u043E\u043C\u0435\u0440\u043D\u0435\u0434\u0435\u043B\u0438\u0433\u043E\u0434\u0430 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430\u043E\u0436\u0438\u0434\u0430\u043D\u0438\u044F \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0439\u0436\u0443\u0440\u043D\u0430\u043B\u0440\u0430\u0441\u0447\u0435\u0442\u043E\u0432 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0439\u043F\u043B\u0430\u043D\u0441\u0447\u0435\u0442\u043E\u0432 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0439\u044F\u0437\u044B\u043A \u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C\u043E\u043A\u043D\u043E\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0439 \u043F\u0435\u0440\u0438\u043E\u0434\u0441\u0442\u0440 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0432\u0440\u0435\u043C\u044F\u0442\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0434\u0430\u0442\u0443\u0442\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0442\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u043E\u0442\u0431\u043E\u0440\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043F\u043E\u0437\u0438\u0446\u0438\u044E\u0442\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043F\u0443\u0441\u0442\u043E\u0435\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0442\u0430 \u043F\u0440\u0435\u0444\u0438\u043A\u0441\u0430\u0432\u0442\u043E\u043D\u0443\u043C\u0435\u0440\u0430\u0446\u0438\u0438 \u043F\u0440\u043E\u043F\u0438\u0441\u044C \u043F\u0443\u0441\u0442\u043E\u0435\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0440\u0430\u0437\u043C \u0440\u0430\u0437\u043E\u0431\u0440\u0430\u0442\u044C\u043F\u043E\u0437\u0438\u0446\u0438\u044E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044C\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044B\u043D\u0430 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044C\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044B\u043F\u043E \u0441\u0438\u043C\u0432 \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u043E\u0431\u044A\u0435\u043A\u0442 \u0441\u0442\u0430\u0442\u0443\u0441\u0432\u043E\u0437\u0432\u0440\u0430\u0442\u0430 \u0441\u0442\u0440\u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E\u0441\u0442\u0440\u043E\u043A \u0441\u0444\u043E\u0440\u043C\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u043F\u043E\u0437\u0438\u0446\u0438\u044E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0441\u0447\u0435\u0442\u043F\u043E\u043A\u043E\u0434\u0443 \u0442\u0435\u043A\u0443\u0449\u0435\u0435\u0432\u0440\u0435\u043C\u044F \u0442\u0438\u043F\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0442\u0438\u043F\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u0441\u0442\u0440 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0442\u0430\u043D\u0430 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0442\u0430\u043F\u043E \u0444\u0438\u043A\u0441\u0448\u0430\u0431\u043B\u043E\u043D \u0448\u0430\u0431\u043B\u043E\u043D ",_="acos asin atan base64\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 base64\u0441\u0442\u0440\u043E\u043A\u0430 cos exp log log10 pow sin sqrt tan xml\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 xml\u0441\u0442\u0440\u043E\u043A\u0430 xml\u0442\u0438\u043F xml\u0442\u0438\u043F\u0437\u043D\u0447 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0435\u043E\u043A\u043D\u043E \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u044B\u0439\u0440\u0435\u0436\u0438\u043C \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u044B\u0439\u0440\u0435\u0436\u0438\u043C\u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u0438\u044F\u0434\u0430\u043D\u043D\u044B\u0445 \u0431\u0443\u043B\u0435\u0432\u043E \u0432\u0432\u0435\u0441\u0442\u0438\u0434\u0430\u0442\u0443 \u0432\u0432\u0435\u0441\u0442\u0438\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0432\u0432\u0435\u0441\u0442\u0438\u0441\u0442\u0440\u043E\u043A\u0443 \u0432\u0432\u0435\u0441\u0442\u0438\u0447\u0438\u0441\u043B\u043E \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u044C\u0447\u0442\u0435\u043D\u0438\u044Fxml \u0432\u043E\u043F\u0440\u043E\u0441 \u0432\u043E\u0441\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0432\u0440\u0435\u0433 \u0432\u044B\u0433\u0440\u0443\u0437\u0438\u0442\u044C\u0436\u0443\u0440\u043D\u0430\u043B\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0443\u043E\u043F\u043E\u0432\u0435\u0449\u0435\u043D\u0438\u044F \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C\u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0443\u043F\u0440\u0430\u0432\u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u0432\u044B\u0447\u0438\u0441\u043B\u0438\u0442\u044C \u0433\u043E\u0434 \u0434\u0430\u043D\u043D\u044B\u0435\u0444\u043E\u0440\u043C\u044B\u0432\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0434\u0430\u0442\u0430 \u0434\u0435\u043D\u044C \u0434\u0435\u043D\u044C\u0433\u043E\u0434\u0430 \u0434\u0435\u043D\u044C\u043D\u0435\u0434\u0435\u043B\u0438 \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C\u043C\u0435\u0441\u044F\u0446 \u0437\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0434\u0430\u043D\u043D\u044B\u0435\u0434\u043B\u044F\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0437\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0440\u0430\u0431\u043E\u0442\u0443\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044C\u0440\u0430\u0431\u043E\u0442\u0443\u0441\u0438\u0441\u0442\u0435\u043C\u044B \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C\u0432\u043D\u0435\u0448\u043D\u044E\u044E\u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0443 \u0437\u0430\u043A\u0440\u044B\u0442\u044C\u0441\u043F\u0440\u0430\u0432\u043A\u0443 \u0437\u0430\u043F\u0438\u0441\u0430\u0442\u044Cjson \u0437\u0430\u043F\u0438\u0441\u0430\u0442\u044Cxml \u0437\u0430\u043F\u0438\u0441\u0430\u0442\u044C\u0434\u0430\u0442\u0443json \u0437\u0430\u043F\u0438\u0441\u044C\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0437\u0430\u043F\u043E\u043B\u043D\u0438\u0442\u044C\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u0441\u0432\u043E\u0439\u0441\u0442\u0432 \u0437\u0430\u043F\u0440\u043E\u0441\u0438\u0442\u044C\u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u0435\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C\u0441\u0438\u0441\u0442\u0435\u043C\u0443 \u0437\u0430\u0444\u0438\u043A\u0441\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u044E \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0432\u0434\u0430\u043D\u043D\u044B\u0435\u0444\u043E\u0440\u043C\u044B \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0432\u0441\u0442\u0440\u043E\u043A\u0443\u0432\u043D\u0443\u0442\u0440 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0432\u0444\u0430\u0439\u043B \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u043E \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0438\u0437\u0441\u0442\u0440\u043E\u043A\u0438\u0432\u043D\u0443\u0442\u0440 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0438\u0437\u0444\u0430\u0439\u043B\u0430 \u0438\u0437xml\u0442\u0438\u043F\u0430 \u0438\u043C\u043F\u043E\u0440\u0442\u043C\u043E\u0434\u0435\u043B\u0438xdto \u0438\u043C\u044F\u043A\u043E\u043C\u043F\u044C\u044E\u0442\u0435\u0440\u0430 \u0438\u043C\u044F\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u043F\u0440\u0435\u0434\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0435\u0434\u0430\u043D\u043D\u044B\u0435 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F\u043E\u0431\u043E\u0448\u0438\u0431\u043A\u0435 \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0438\u043C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0433\u043E\u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430 \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0445\u0444\u0430\u0439\u043B\u043E\u0432 \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u043F\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u044B \u043A\u043E\u0434\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0441\u0442\u0440\u043E\u043A\u0443 \u043A\u043E\u0434\u043B\u043E\u043A\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u043A\u043E\u0434\u0441\u0438\u043C\u0432\u043E\u043B\u0430 \u043A\u043E\u043C\u0430\u043D\u0434\u0430\u0441\u0438\u0441\u0442\u0435\u043C\u044B \u043A\u043E\u043D\u0435\u0446\u0433\u043E\u0434\u0430 \u043A\u043E\u043D\u0435\u0446\u0434\u043D\u044F \u043A\u043E\u043D\u0435\u0446\u043A\u0432\u0430\u0440\u0442\u0430\u043B\u0430 \u043A\u043E\u043D\u0435\u0446\u043C\u0435\u0441\u044F\u0446\u0430 \u043A\u043E\u043D\u0435\u0446\u043C\u0438\u043D\u0443\u0442\u044B \u043A\u043E\u043D\u0435\u0446\u043D\u0435\u0434\u0435\u043B\u0438 \u043A\u043E\u043D\u0435\u0446\u0447\u0430\u0441\u0430 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F\u0431\u0430\u0437\u044B\u0434\u0430\u043D\u043D\u044B\u0445\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0430\u0434\u0438\u043D\u0430\u043C\u0438\u0447\u0435\u0441\u043A\u0438 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0430 \u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0434\u0430\u043D\u043D\u044B\u0435\u0444\u043E\u0440\u043C\u044B \u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0444\u0430\u0439\u043B \u043A\u0440\u0430\u0442\u043A\u043E\u0435\u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043E\u0448\u0438\u0431\u043A\u0438 \u043B\u0435\u0432 \u043C\u0430\u043A\u0441 \u043C\u0435\u0441\u0442\u043D\u043E\u0435\u0432\u0440\u0435\u043C\u044F \u043C\u0435\u0441\u044F\u0446 \u043C\u0438\u043D \u043C\u0438\u043D\u0443\u0442\u0430 \u043C\u043E\u043D\u043E\u043F\u043E\u043B\u044C\u043D\u044B\u0439\u0440\u0435\u0436\u0438\u043C \u043D\u0430\u0439\u0442\u0438 \u043D\u0430\u0439\u0442\u0438\u043D\u0435\u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0435\u0441\u0438\u043C\u0432\u043E\u043B\u044Bxml \u043D\u0430\u0439\u0442\u0438\u043E\u043A\u043D\u043E\u043F\u043E\u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0441\u0441\u044B\u043B\u043A\u0435 \u043D\u0430\u0439\u0442\u0438\u043F\u043E\u043C\u0435\u0447\u0435\u043D\u043D\u044B\u0435\u043D\u0430\u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0435 \u043D\u0430\u0439\u0442\u0438\u043F\u043E\u0441\u0441\u044B\u043B\u043A\u0430\u043C \u043D\u0430\u0439\u0442\u0438\u0444\u0430\u0439\u043B\u044B \u043D\u0430\u0447\u0430\u043B\u043E\u0433\u043E\u0434\u0430 \u043D\u0430\u0447\u0430\u043B\u043E\u0434\u043D\u044F \u043D\u0430\u0447\u0430\u043B\u043E\u043A\u0432\u0430\u0440\u0442\u0430\u043B\u0430 \u043D\u0430\u0447\u0430\u043B\u043E\u043C\u0435\u0441\u044F\u0446\u0430 \u043D\u0430\u0447\u0430\u043B\u043E\u043C\u0438\u043D\u0443\u0442\u044B \u043D\u0430\u0447\u0430\u043B\u043E\u043D\u0435\u0434\u0435\u043B\u0438 \u043D\u0430\u0447\u0430\u043B\u043E\u0447\u0430\u0441\u0430 \u043D\u0430\u0447\u0430\u0442\u044C\u0437\u0430\u043F\u0440\u043E\u0441\u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u044F\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043D\u0430\u0447\u0430\u0442\u044C\u0437\u0430\u043F\u0443\u0441\u043A\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043D\u0430\u0447\u0430\u0442\u044C\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435\u0444\u0430\u0439\u043B\u0430 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0438\u0435\u0444\u0430\u0439\u043B\u0430 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435\u0432\u043D\u0435\u0448\u043D\u0435\u0439\u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u044B \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F\u0440\u0430\u0431\u043E\u0442\u044B\u0441\u043A\u0440\u0438\u043F\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u0435\u0439 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F\u0440\u0430\u0431\u043E\u0442\u044B\u0441\u0444\u0430\u0439\u043B\u0430\u043C\u0438 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u0438\u0441\u043A\u0444\u0430\u0439\u043B\u043E\u0432 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u0435\u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0430\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0445\u0444\u0430\u0439\u043B\u043E\u0432 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u0435\u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0430\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u0435\u0440\u0430\u0431\u043E\u0447\u0435\u0433\u043E\u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0430\u0434\u0430\u043D\u043D\u044B\u0445\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u0435\u0444\u0430\u0439\u043B\u043E\u0432 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u043C\u0435\u0449\u0435\u043D\u0438\u0435\u0444\u0430\u0439\u043B\u0430 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u043C\u0435\u0449\u0435\u043D\u0438\u0435\u0444\u0430\u0439\u043B\u043E\u0432 \u043D\u0430\u0447\u0430\u0442\u044C\u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0435\u0434\u0432\u043E\u0438\u0447\u043D\u044B\u0445\u0434\u0430\u043D\u043D\u044B\u0445\u0438\u0437\u0444\u0430\u0439\u043B\u0430 \u043D\u0430\u0447\u0430\u0442\u044C\u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0435\u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0430 \u043D\u0430\u0447\u0430\u0442\u044C\u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u044E \u043D\u0430\u0447\u0430\u0442\u044C\u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0435\u0444\u0430\u0439\u043B\u043E\u0432 \u043D\u0430\u0447\u0430\u0442\u044C\u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0443\u0432\u043D\u0435\u0448\u043D\u0435\u0439\u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u044B \u043D\u0430\u0447\u0430\u0442\u044C\u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0443\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F\u0440\u0430\u0431\u043E\u0442\u044B\u0441\u043A\u0440\u0438\u043F\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u0435\u0439 \u043D\u0430\u0447\u0430\u0442\u044C\u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0443\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F\u0440\u0430\u0431\u043E\u0442\u044B\u0441\u0444\u0430\u0439\u043B\u0430\u043C\u0438 \u043D\u0435\u0434\u0435\u043B\u044F\u0433\u043E\u0434\u0430 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E\u0441\u0442\u044C\u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044F \u043D\u043E\u043C\u0435\u0440\u0441\u0435\u0430\u043D\u0441\u0430\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u043D\u043E\u043C\u0435\u0440\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044F\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u043D\u0440\u0435\u0433 \u043D\u0441\u0442\u0440 \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C\u043D\u0443\u043C\u0435\u0440\u0430\u0446\u0438\u044E\u043E\u0431\u044A\u0435\u043A\u0442\u043E\u0432 \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C\u043F\u043E\u0432\u0442\u043E\u0440\u043D\u043E\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u044B\u0435\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430\u043F\u0440\u0435\u0440\u044B\u0432\u0430\u043D\u0438\u044F\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043E\u0431\u044A\u0435\u0434\u0438\u043D\u0438\u0442\u044C\u0444\u0430\u0439\u043B\u044B \u043E\u043A\u0440 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435\u043E\u0448\u0438\u0431\u043A\u0438 \u043E\u043F\u043E\u0432\u0435\u0441\u0442\u0438\u0442\u044C \u043E\u043F\u043E\u0432\u0435\u0441\u0442\u0438\u0442\u044C\u043E\u0431\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0438 \u043E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A\u0437\u0430\u043F\u0440\u043E\u0441\u0430\u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A\u043A\u043B\u0438\u0435\u043D\u0442\u0430\u043B\u0438\u0446\u0435\u043D\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u043E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A\u043E\u0436\u0438\u0434\u0430\u043D\u0438\u044F \u043E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A\u043E\u043F\u043E\u0432\u0435\u0449\u0435\u043D\u0438\u044F \u043E\u0442\u043A\u0440\u044B\u0442\u044C\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u043E\u0442\u043A\u0440\u044B\u0442\u044C\u0438\u043D\u0434\u0435\u043A\u0441\u0441\u043F\u0440\u0430\u0432\u043A\u0438 \u043E\u0442\u043A\u0440\u044B\u0442\u044C\u0441\u043E\u0434\u0435\u0440\u0436\u0430\u043D\u0438\u0435\u0441\u043F\u0440\u0430\u0432\u043A\u0438 \u043E\u0442\u043A\u0440\u044B\u0442\u044C\u0441\u043F\u0440\u0430\u0432\u043A\u0443 \u043E\u0442\u043A\u0440\u044B\u0442\u044C\u0444\u043E\u0440\u043C\u0443 \u043E\u0442\u043A\u0440\u044B\u0442\u044C\u0444\u043E\u0440\u043C\u0443\u043C\u043E\u0434\u0430\u043B\u044C\u043D\u043E \u043E\u0442\u043C\u0435\u043D\u0438\u0442\u044C\u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u044E \u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C\u0436\u0443\u0440\u043D\u0430\u043B\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B\u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u043F\u0435\u0440\u0435\u0439\u0442\u0438\u043F\u043E\u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0441\u0441\u044B\u043B\u043A\u0435 \u043F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C\u0444\u0430\u0439\u043B \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u0432\u043D\u0435\u0448\u043D\u044E\u044E\u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0443 \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A\u0437\u0430\u043F\u0440\u043E\u0441\u0430\u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A\u043A\u043B\u0438\u0435\u043D\u0442\u0430\u043B\u0438\u0446\u0435\u043D\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A\u043E\u0436\u0438\u0434\u0430\u043D\u0438\u044F \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A\u043E\u043F\u043E\u0432\u0435\u0449\u0435\u043D\u0438\u044F \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0435\u0440\u0430\u0431\u043E\u0442\u044B\u0441\u043A\u0440\u0438\u043F\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u0435\u0439 \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0435\u0440\u0430\u0431\u043E\u0442\u044B\u0441\u0444\u0430\u0439\u043B\u0430\u043C\u0438 \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0435\u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043E\u0448\u0438\u0431\u043A\u0438 \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C\u0432\u0432\u043E\u0434\u0434\u0430\u0442\u044B \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C\u0432\u0432\u043E\u0434\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C\u0432\u0432\u043E\u0434\u0441\u0442\u0440\u043E\u043A\u0438 \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C\u0432\u0432\u043E\u0434\u0447\u0438\u0441\u043B\u0430 \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C\u0432\u043E\u043F\u0440\u043E\u0441 \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044E\u043E\u0431\u043E\u0448\u0438\u0431\u043A\u0435 \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C\u043D\u0430\u043A\u0430\u0440\u0442\u0435 \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C\u043E\u043F\u043E\u0432\u0435\u0449\u0435\u043D\u0438\u0435\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C\u043F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0435 \u043F\u043E\u043B\u043D\u043E\u0435\u0438\u043C\u044F\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044Ccom\u043E\u0431\u044A\u0435\u043A\u0442 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044Cxml\u0442\u0438\u043F \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0430\u0434\u0440\u0435\u0441\u043F\u043E\u043C\u0435\u0441\u0442\u043E\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u044E \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u043A\u0443\u0441\u0435\u0430\u043D\u0441\u043E\u0432 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0432\u0440\u0435\u043C\u044F\u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F\u0441\u043F\u044F\u0449\u0435\u0433\u043E\u0441\u0435\u0430\u043D\u0441\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0432\u0440\u0435\u043C\u044F\u0437\u0430\u0441\u044B\u043F\u0430\u043D\u0438\u044F\u043F\u0430\u0441\u0441\u0438\u0432\u043D\u043E\u0433\u043E\u0441\u0435\u0430\u043D\u0441\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0432\u0440\u0435\u043C\u044F\u043E\u0436\u0438\u0434\u0430\u043D\u0438\u044F\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0434\u0430\u043D\u043D\u044B\u0435\u0432\u044B\u0431\u043E\u0440\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0434\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0439\u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u043A\u043B\u0438\u0435\u043D\u0442\u0430\u043B\u0438\u0446\u0435\u043D\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0435\u043A\u043E\u0434\u044B\u043B\u043E\u043A\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0435\u0447\u0430\u0441\u043E\u0432\u044B\u0435\u043F\u043E\u044F\u0441\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A\u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u043E\u0433\u043E\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A\u0441\u0438\u0441\u0442\u0435\u043C\u044B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u043E\u0442\u0431\u043E\u0440\u0430\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0438\u0437\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0433\u043E\u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0438\u043C\u044F\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0433\u043E\u0444\u0430\u0439\u043B\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0438\u043C\u044F\u043A\u043B\u0438\u0435\u043D\u0442\u0430\u043B\u0438\u0446\u0435\u043D\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044E\u044D\u043A\u0440\u0430\u043D\u043E\u0432\u043A\u043B\u0438\u0435\u043D\u0442\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0441\u043E\u0431\u044B\u0442\u0438\u044F\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043A\u0440\u0430\u0442\u043A\u0438\u0439\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043C\u0430\u043A\u0435\u0442\u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043C\u0430\u0441\u043A\u0443\u0432\u0441\u0435\u0444\u0430\u0439\u043B\u044B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043C\u0430\u0441\u043A\u0443\u0432\u0441\u0435\u0444\u0430\u0439\u043B\u044B\u043A\u043B\u0438\u0435\u043D\u0442\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043C\u0430\u0441\u043A\u0443\u0432\u0441\u0435\u0444\u0430\u0439\u043B\u044B\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043C\u0435\u0441\u0442\u043E\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043F\u043E\u0430\u0434\u0440\u0435\u0441\u0443 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u0443\u044E\u0434\u043B\u0438\u043D\u0443\u043F\u0430\u0440\u043E\u043B\u0435\u0439\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043E\u043D\u043D\u0443\u044E\u0441\u0441\u044B\u043B\u043A\u0443 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043E\u043D\u043D\u0443\u044E\u0441\u0441\u044B\u043B\u043A\u0443\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438\u0431\u0430\u0437\u044B\u0434\u0430\u043D\u043D\u044B\u0445 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u0440\u0435\u0434\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0445\u0434\u0430\u043D\u043D\u044B\u0445\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043E\u0431\u0449\u0438\u0439\u043C\u0430\u043A\u0435\u0442 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043E\u0431\u0449\u0443\u044E\u0444\u043E\u0440\u043C\u0443 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043E\u043A\u043D\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043E\u043F\u0435\u0440\u0430\u0442\u0438\u0432\u043D\u0443\u044E\u043E\u0442\u043C\u0435\u0442\u043A\u0443\u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435\u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0433\u043E\u0440\u0435\u0436\u0438\u043C\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B\u0444\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445\u043E\u043F\u0446\u0438\u0439\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043F\u043E\u043B\u043D\u043E\u0435\u0438\u043C\u044F\u043F\u0440\u0435\u0434\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043D\u043E\u0433\u043E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043E\u043D\u043D\u044B\u0445\u0441\u0441\u044B\u043B\u043E\u043A \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0443\u0441\u043B\u043E\u0436\u043D\u043E\u0441\u0442\u0438\u043F\u0430\u0440\u043E\u043B\u0435\u0439\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u044C\u043F\u0443\u0442\u0438 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u044C\u043F\u0443\u0442\u0438\u043A\u043B\u0438\u0435\u043D\u0442\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u044C\u043F\u0443\u0442\u0438\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0441\u0435\u0430\u043D\u0441\u044B\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0441\u043A\u043E\u0440\u043E\u0441\u0442\u044C\u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u043E\u0433\u043E\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044F \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044F\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435\u043E\u0431\u044A\u0435\u043A\u0442\u0430\u0438\u0444\u043E\u0440\u043C\u044B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0441\u043E\u0441\u0442\u0430\u0432\u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u043E\u0433\u043E\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430odata \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0443\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u044F\u0431\u0430\u0437\u044B\u0434\u0430\u043D\u043D\u044B\u0445 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0442\u0435\u043A\u0443\u0449\u0438\u0439\u0441\u0435\u0430\u043D\u0441\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0444\u0430\u0439\u043B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0444\u0430\u0439\u043B\u044B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0444\u043E\u0440\u043C\u0443 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0444\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B\u044C\u043D\u0443\u044E\u043E\u043F\u0446\u0438\u044E \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0444\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B\u044C\u043D\u0443\u044E\u043E\u043F\u0446\u0438\u044E\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0447\u0430\u0441\u043E\u0432\u043E\u0439\u043F\u043E\u044F\u0441\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0438\u043E\u0441 \u043F\u043E\u043C\u0435\u0441\u0442\u0438\u0442\u044C\u0432\u043E\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0435\u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 \u043F\u043E\u043C\u0435\u0441\u0442\u0438\u0442\u044C\u0444\u0430\u0439\u043B \u043F\u043E\u043C\u0435\u0441\u0442\u0438\u0442\u044C\u0444\u0430\u0439\u043B\u044B \u043F\u0440\u0430\u0432 \u043F\u0440\u0430\u0432\u043E\u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u043F\u0440\u0435\u0434\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043D\u043E\u0435\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043A\u043E\u0434\u0430\u043B\u043E\u043A\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u0435\u0440\u0438\u043E\u0434\u0430 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u0440\u0430\u0432\u0430 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u0441\u043E\u0431\u044B\u0442\u0438\u044F\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u0447\u0430\u0441\u043E\u0432\u043E\u0433\u043E\u043F\u043E\u044F\u0441\u0430 \u043F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0435 \u043F\u0440\u0435\u043A\u0440\u0430\u0442\u0438\u0442\u044C\u0440\u0430\u0431\u043E\u0442\u0443\u0441\u0438\u0441\u0442\u0435\u043C\u044B \u043F\u0440\u0438\u0432\u0438\u043B\u0435\u0433\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439\u0440\u0435\u0436\u0438\u043C \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C\u0432\u044B\u0437\u043E\u0432 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044Cjson \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044Cxml \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C\u0434\u0430\u0442\u0443json \u043F\u0443\u0441\u0442\u0430\u044F\u0441\u0442\u0440\u043E\u043A\u0430 \u0440\u0430\u0431\u043E\u0447\u0438\u0439\u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0434\u0430\u043D\u043D\u044B\u0445\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u0440\u0430\u0437\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0434\u0430\u043D\u043D\u044B\u0435\u0434\u043B\u044F\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u044C\u0444\u0430\u0439\u043B \u0440\u0430\u0437\u043E\u0440\u0432\u0430\u0442\u044C\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435\u0441\u0432\u043D\u0435\u0448\u043D\u0438\u043C\u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u043E\u043C\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0430\u0441\u043A\u043E\u0434\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0441\u0442\u0440\u043E\u043A\u0443 \u0440\u043E\u043B\u044C\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0430 \u0441\u0435\u043A\u0443\u043D\u0434\u0430 \u0441\u0438\u0433\u043D\u0430\u043B \u0441\u0438\u043C\u0432\u043E\u043B \u0441\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0436\u0443\u0440\u043D\u0430\u043B\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0441\u043C\u0435\u0449\u0435\u043D\u0438\u0435\u043B\u0435\u0442\u043D\u0435\u0433\u043E\u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u0441\u043C\u0435\u0449\u0435\u043D\u0438\u0435\u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u043E\u0433\u043E\u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u0441\u043E\u0435\u0434\u0438\u043D\u0438\u0442\u044C\u0431\u0443\u0444\u0435\u0440\u044B\u0434\u0432\u043E\u0438\u0447\u043D\u044B\u0445\u0434\u0430\u043D\u043D\u044B\u0445 \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u043A\u0430\u0442\u0430\u043B\u043E\u0433 \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u0444\u0430\u0431\u0440\u0438\u043A\u0443xdto \u0441\u043E\u043A\u0440\u043B \u0441\u043E\u043A\u0440\u043B\u043F \u0441\u043E\u043A\u0440\u043F \u0441\u043E\u043E\u0431\u0449\u0438\u0442\u044C \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u0441\u0440\u0435\u0434 \u0441\u0442\u0440\u0434\u043B\u0438\u043D\u0430 \u0441\u0442\u0440\u0437\u0430\u043A\u0430\u043D\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044F\u043D\u0430 \u0441\u0442\u0440\u0437\u0430\u043C\u0435\u043D\u0438\u0442\u044C \u0441\u0442\u0440\u043D\u0430\u0439\u0442\u0438 \u0441\u0442\u0440\u043D\u0430\u0447\u0438\u043D\u0430\u0435\u0442\u0441\u044F\u0441 \u0441\u0442\u0440\u043E\u043A\u0430 \u0441\u0442\u0440\u043E\u043A\u0430\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044F\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u0441\u0442\u0440\u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0441\u0442\u0440\u043E\u043A\u0443 \u0441\u0442\u0440\u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u044C \u0441\u0442\u0440\u0441\u043E\u0435\u0434\u0438\u043D\u0438\u0442\u044C \u0441\u0442\u0440\u0441\u0440\u0430\u0432\u043D\u0438\u0442\u044C \u0441\u0442\u0440\u0447\u0438\u0441\u043B\u043E\u0432\u0445\u043E\u0436\u0434\u0435\u043D\u0438\u0439 \u0441\u0442\u0440\u0447\u0438\u0441\u043B\u043E\u0441\u0442\u0440\u043E\u043A \u0441\u0442\u0440\u0448\u0430\u0431\u043B\u043E\u043D \u0442\u0435\u043A\u0443\u0449\u0430\u044F\u0434\u0430\u0442\u0430 \u0442\u0435\u043A\u0443\u0449\u0430\u044F\u0434\u0430\u0442\u0430\u0441\u0435\u0430\u043D\u0441\u0430 \u0442\u0435\u043A\u0443\u0449\u0430\u044F\u0443\u043D\u0438\u0432\u0435\u0440\u0441\u0430\u043B\u044C\u043D\u0430\u044F\u0434\u0430\u0442\u0430 \u0442\u0435\u043A\u0443\u0449\u0430\u044F\u0443\u043D\u0438\u0432\u0435\u0440\u0441\u0430\u043B\u044C\u043D\u0430\u044F\u0434\u0430\u0442\u0430\u0432\u043C\u0438\u043B\u043B\u0438\u0441\u0435\u043A\u0443\u043D\u0434\u0430\u0445 \u0442\u0435\u043A\u0443\u0449\u0438\u0439\u0432\u0430\u0440\u0438\u0430\u043D\u0442\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u043E\u0433\u043E\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0442\u0435\u043A\u0443\u0449\u0438\u0439\u0432\u0430\u0440\u0438\u0430\u043D\u0442\u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0433\u043E\u0448\u0440\u0438\u0444\u0442\u0430\u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u043E\u0433\u043E\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0442\u0435\u043A\u0443\u0449\u0438\u0439\u043A\u043E\u0434\u043B\u043E\u043A\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0435\u043A\u0443\u0449\u0438\u0439\u0440\u0435\u0436\u0438\u043C\u0437\u0430\u043F\u0443\u0441\u043A\u0430 \u0442\u0435\u043A\u0443\u0449\u0438\u0439\u044F\u0437\u044B\u043A \u0442\u0435\u043A\u0443\u0449\u0438\u0439\u044F\u0437\u044B\u043A\u0441\u0438\u0441\u0442\u0435\u043C\u044B \u0442\u0438\u043F \u0442\u0438\u043F\u0437\u043D\u0447 \u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u044F\u0430\u043A\u0442\u0438\u0432\u043D\u0430 \u0442\u0440\u0435\u0433 \u0443\u0434\u0430\u043B\u0438\u0442\u044C\u0434\u0430\u043D\u043D\u044B\u0435\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u0443\u0434\u0430\u043B\u0438\u0442\u044C\u0438\u0437\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0433\u043E\u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0430 \u0443\u0434\u0430\u043B\u0438\u0442\u044C\u043E\u0431\u044A\u0435\u043A\u0442\u044B \u0443\u0434\u0430\u043B\u0438\u0442\u044C\u0444\u0430\u0439\u043B\u044B \u0443\u043D\u0438\u0432\u0435\u0440\u0441\u0430\u043B\u044C\u043D\u043E\u0435\u0432\u0440\u0435\u043C\u044F \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u044B\u0439\u0440\u0435\u0436\u0438\u043C \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u044B\u0439\u0440\u0435\u0436\u0438\u043C\u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u0438\u044F\u0434\u0430\u043D\u043D\u044B\u0445 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u043A\u0443\u0441\u0435\u0430\u043D\u0441\u043E\u0432 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0432\u043D\u0435\u0448\u043D\u044E\u044E\u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0443 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0432\u0440\u0435\u043C\u044F\u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F\u0441\u043F\u044F\u0449\u0435\u0433\u043E\u0441\u0435\u0430\u043D\u0441\u0430 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0432\u0440\u0435\u043C\u044F\u0437\u0430\u0441\u044B\u043F\u0430\u043D\u0438\u044F\u043F\u0430\u0441\u0441\u0438\u0432\u043D\u043E\u0433\u043E\u0441\u0435\u0430\u043D\u0441\u0430 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0432\u0440\u0435\u043C\u044F\u043E\u0436\u0438\u0434\u0430\u043D\u0438\u044F\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A\u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u043E\u0433\u043E\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A\u0441\u0438\u0441\u0442\u0435\u043C\u044B \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0441\u043E\u0431\u044B\u0442\u0438\u044F\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u043A\u0440\u0430\u0442\u043A\u0438\u0439\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u043C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u0443\u044E\u0434\u043B\u0438\u043D\u0443\u043F\u0430\u0440\u043E\u043B\u0435\u0439\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u043C\u043E\u043D\u043E\u043F\u043E\u043B\u044C\u043D\u044B\u0439\u0440\u0435\u0436\u0438\u043C \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438\u043A\u043B\u0438\u0435\u043D\u0442\u0430\u043B\u0438\u0446\u0435\u043D\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u0440\u0435\u0434\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0445\u0434\u0430\u043D\u043D\u044B\u0445\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435\u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0433\u043E\u0440\u0435\u0436\u0438\u043C\u0430 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B\u0444\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445\u043E\u043F\u0446\u0438\u0439\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u043F\u0440\u0438\u0432\u0438\u043B\u0435\u0433\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439\u0440\u0435\u0436\u0438\u043C \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0443\u0441\u043B\u043E\u0436\u043D\u043E\u0441\u0442\u0438\u043F\u0430\u0440\u043E\u043B\u0435\u0439\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0435\u0440\u0430\u0431\u043E\u0442\u044B\u0441\u043A\u0440\u0438\u043F\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u0435\u0439 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0435\u0440\u0430\u0431\u043E\u0442\u044B\u0441\u0444\u0430\u0439\u043B\u0430\u043C\u0438 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435\u0441\u0432\u043D\u0435\u0448\u043D\u0438\u043C\u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u043E\u043C\u0434\u0430\u043D\u043D\u044B\u0445 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435\u043E\u0431\u044A\u0435\u043A\u0442\u0430\u0438\u0444\u043E\u0440\u043C\u044B \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0441\u043E\u0441\u0442\u0430\u0432\u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u043E\u0433\u043E\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430odata \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0447\u0430\u0441\u043E\u0432\u043E\u0439\u043F\u043E\u044F\u0441\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0447\u0430\u0441\u043E\u0432\u043E\u0439\u043F\u043E\u044F\u0441\u0441\u0435\u0430\u043D\u0441\u0430 \u0444\u043E\u0440\u043C\u0430\u0442 \u0446\u0435\u043B \u0447\u0430\u0441 \u0447\u0430\u0441\u043E\u0432\u043E\u0439\u043F\u043E\u044F\u0441 \u0447\u0430\u0441\u043E\u0432\u043E\u0439\u043F\u043E\u044F\u0441\u0441\u0435\u0430\u043D\u0441\u0430 \u0447\u0438\u0441\u043B\u043E \u0447\u0438\u0441\u043B\u043E\u043F\u0440\u043E\u043F\u0438\u0441\u044C\u044E \u044D\u0442\u043E\u0430\u0434\u0440\u0435\u0441\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0433\u043E\u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0430 ",u="ws\u0441\u0441\u044B\u043B\u043A\u0438 \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430\u043A\u0430\u0440\u0442\u0438\u043D\u043E\u043A \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430\u043C\u0430\u043A\u0435\u0442\u043E\u0432\u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430\u0441\u0442\u0438\u043B\u0435\u0439 \u0431\u0438\u0437\u043D\u0435\u0441\u043F\u0440\u043E\u0446\u0435\u0441\u0441\u044B \u0432\u043D\u0435\u0448\u043D\u0438\u0435\u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0432\u043D\u0435\u0448\u043D\u0438\u0435\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438 \u0432\u043D\u0435\u0448\u043D\u0438\u0435\u043E\u0442\u0447\u0435\u0442\u044B \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0435\u043F\u043E\u043A\u0443\u043F\u043A\u0438 \u0433\u043B\u0430\u0432\u043D\u044B\u0439\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0433\u043B\u0430\u0432\u043D\u044B\u0439\u0441\u0442\u0438\u043B\u044C \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u044B \u0434\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u043C\u044B\u0435\u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u0436\u0443\u0440\u043D\u0430\u043B\u044B\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447\u0438 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F\u043E\u0431\u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0438 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0440\u0430\u0431\u043E\u0447\u0435\u0439\u0434\u0430\u0442\u044B \u0438\u0441\u0442\u043E\u0440\u0438\u044F\u0440\u0430\u0431\u043E\u0442\u044B\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043A\u043E\u043D\u0441\u0442\u0430\u043D\u0442\u044B \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438\u043E\u0442\u0431\u043E\u0440\u0430 \u043C\u0435\u0442\u0430\u0434\u0430\u043D\u043D\u044B\u0435 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0440\u0435\u043A\u043B\u0430\u043C\u044B \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u0430\u0434\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u043C\u044B\u0445\u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0439 \u043E\u0442\u0447\u0435\u0442\u044B \u043F\u0430\u043D\u0435\u043B\u044C\u0437\u0430\u0434\u0430\u0447\u043E\u0441 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0437\u0430\u043F\u0443\u0441\u043A\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B\u0441\u0435\u0430\u043D\u0441\u0430 \u043F\u0435\u0440\u0435\u0447\u0438\u0441\u043B\u0435\u043D\u0438\u044F \u043F\u043B\u0430\u043D\u044B\u0432\u0438\u0434\u043E\u0432\u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u043F\u043B\u0430\u043D\u044B\u0432\u0438\u0434\u043E\u0432\u0445\u0430\u0440\u0430\u043A\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043A \u043F\u043B\u0430\u043D\u044B\u043E\u0431\u043C\u0435\u043D\u0430 \u043F\u043B\u0430\u043D\u044B\u0441\u0447\u0435\u0442\u043E\u0432 \u043F\u043E\u043B\u043D\u043E\u0442\u0435\u043A\u0441\u0442\u043E\u0432\u044B\u0439\u043F\u043E\u0438\u0441\u043A \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0438\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u0438 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430\u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0445\u043F\u043E\u043A\u0443\u043F\u043E\u043A \u0440\u0430\u0431\u043E\u0447\u0430\u044F\u0434\u0430\u0442\u0430 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044B\u0431\u0443\u0445\u0433\u0430\u043B\u0442\u0435\u0440\u0438\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044B\u043D\u0430\u043A\u043E\u043F\u043B\u0435\u043D\u0438\u044F \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044B\u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044B\u0441\u0432\u0435\u0434\u0435\u043D\u0438\u0439 \u0440\u0435\u0433\u043B\u0430\u043C\u0435\u043D\u0442\u043D\u044B\u0435\u0437\u0430\u0434\u0430\u043D\u0438\u044F \u0441\u0435\u0440\u0438\u0430\u043B\u0438\u0437\u0430\u0442\u043E\u0440xdto \u0441\u043F\u0440\u0430\u0432\u043E\u0447\u043D\u0438\u043A\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u0433\u0435\u043E\u043F\u043E\u0437\u0438\u0446\u0438\u043E\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043A\u0440\u0438\u043F\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043C\u0443\u043B\u044C\u0442\u0438\u043C\u0435\u0434\u0438\u0430 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u0440\u0435\u043A\u043B\u0430\u043C\u044B \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043F\u043E\u0447\u0442\u044B \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0438\u0438 \u0444\u0430\u0431\u0440\u0438\u043A\u0430xdto \u0444\u0430\u0439\u043B\u043E\u0432\u044B\u0435\u043F\u043E\u0442\u043E\u043A\u0438 \u0444\u043E\u043D\u043E\u0432\u044B\u0435\u0437\u0430\u0434\u0430\u043D\u0438\u044F \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0430\u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435\u0432\u0430\u0440\u0438\u0430\u043D\u0442\u043E\u0432\u043E\u0442\u0447\u0435\u0442\u043E\u0432 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435\u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A\u0434\u0430\u043D\u043D\u044B\u0445\u0444\u043E\u0440\u043C \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435\u043E\u0431\u0449\u0438\u0445\u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0445\u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A\u0434\u0438\u043D\u0430\u043C\u0438\u0447\u0435\u0441\u043A\u0438\u0445\u0441\u043F\u0438\u0441\u043A\u043E\u0432 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0445\u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A\u043E\u0442\u0447\u0435\u0442\u043E\u0432 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435\u0441\u0438\u0441\u0442\u0435\u043C\u043D\u044B\u0445\u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A ",m=l+c+_+u,g="web\u0446\u0432\u0435\u0442\u0430 windows\u0446\u0432\u0435\u0442\u0430 windows\u0448\u0440\u0438\u0444\u0442\u044B \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430\u043A\u0430\u0440\u0442\u0438\u043D\u043E\u043A \u0440\u0430\u043C\u043A\u0438\u0441\u0442\u0438\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u0446\u0432\u0435\u0442\u0430\u0441\u0442\u0438\u043B\u044F \u0448\u0440\u0438\u0444\u0442\u044B\u0441\u0442\u0438\u043B\u044F ",E="\u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0435\u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435\u0434\u0430\u043D\u043D\u044B\u0445\u0444\u043E\u0440\u043C\u044B\u0432\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430\u0445 \u0430\u0432\u0442\u043E\u043D\u0443\u043C\u0435\u0440\u0430\u0446\u0438\u044F\u0432\u0444\u043E\u0440\u043C\u0435 \u0430\u0432\u0442\u043E\u0440\u0430\u0437\u0434\u0432\u0438\u0436\u0435\u043D\u0438\u0435\u0441\u0435\u0440\u0438\u0439 \u0430\u043D\u0438\u043C\u0430\u0446\u0438\u044F\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u0432\u044B\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u043D\u0438\u044F\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432\u0438\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u043E\u0432 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u0432\u044B\u0441\u043E\u0442\u043E\u0439\u0442\u0430\u0431\u043B\u0438\u0446\u044B \u0432\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u0430\u044F\u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0430\u0444\u043E\u0440\u043C\u044B \u0432\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u043E\u0435\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0432\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u043E\u0435\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 \u0432\u0438\u0434\u0433\u0440\u0443\u043F\u043F\u044B\u0444\u043E\u0440\u043C\u044B \u0432\u0438\u0434\u0434\u0435\u043A\u043E\u0440\u0430\u0446\u0438\u0438\u0444\u043E\u0440\u043C\u044B \u0432\u0438\u0434\u0434\u043E\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u0444\u043E\u0440\u043C\u044B \u0432\u0438\u0434\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F\u0434\u0430\u043D\u043D\u044B\u0445 \u0432\u0438\u0434\u043A\u043D\u043E\u043F\u043A\u0438\u0444\u043E\u0440\u043C\u044B \u0432\u0438\u0434\u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0430\u0442\u0435\u043B\u044F \u0432\u0438\u0434\u043F\u043E\u0434\u043F\u0438\u0441\u0435\u0439\u043A\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0435 \u0432\u0438\u0434\u043F\u043E\u043B\u044F\u0444\u043E\u0440\u043C\u044B \u0432\u0438\u0434\u0444\u043B\u0430\u0436\u043A\u0430 \u0432\u043B\u0438\u044F\u043D\u0438\u0435\u0440\u0430\u0437\u043C\u0435\u0440\u0430\u043D\u0430\u043F\u0443\u0437\u044B\u0440\u0435\u043A\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u043E\u0435\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u043E\u0435\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 \u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0430\u043A\u043E\u043B\u043E\u043D\u043E\u043A \u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0430\u043F\u043E\u0434\u0447\u0438\u043D\u0435\u043D\u043D\u044B\u0445\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432\u0444\u043E\u0440\u043C\u044B \u0433\u0440\u0443\u043F\u043F\u044B\u0438\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u043F\u0435\u0440\u0435\u0442\u0430\u0441\u043A\u0438\u0432\u0430\u043D\u0438\u044F \u0434\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0439\u0440\u0435\u0436\u0438\u043C\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F \u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F\u043F\u0435\u0440\u0435\u0442\u0430\u0441\u043A\u0438\u0432\u0430\u043D\u0438\u044F \u0438\u043D\u0442\u0435\u0440\u0432\u0430\u043B\u043C\u0435\u0436\u0434\u0443\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u043C\u0438\u0444\u043E\u0440\u043C\u044B \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0432\u044B\u0432\u043E\u0434\u0430 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u043F\u043E\u043B\u043E\u0441\u044B\u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u043E\u0435\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0442\u043E\u0447\u043A\u0438\u0431\u0438\u0440\u0436\u0435\u0432\u043E\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0438\u0441\u0442\u043E\u0440\u0438\u044F\u0432\u044B\u0431\u043E\u0440\u0430\u043F\u0440\u0438\u0432\u0432\u043E\u0434\u0435 \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439\u043E\u0441\u0438\u0442\u043E\u0447\u0435\u043A\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u0440\u0430\u0437\u043C\u0435\u0440\u0430\u043F\u0443\u0437\u044B\u0440\u044C\u043A\u0430\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F\u0433\u0440\u0443\u043F\u043F\u044B\u043A\u043E\u043C\u0430\u043D\u0434 \u043C\u0430\u043A\u0441\u0438\u043C\u0443\u043C\u0441\u0435\u0440\u0438\u0439 \u043D\u0430\u0447\u0430\u043B\u044C\u043D\u043E\u0435\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0434\u0435\u0440\u0435\u0432\u0430 \u043D\u0430\u0447\u0430\u043B\u044C\u043D\u043E\u0435\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0441\u043F\u0438\u0441\u043A\u0430 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435\u0442\u0435\u043A\u0441\u0442\u0430\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u043E\u0440\u0438\u0435\u043D\u0442\u0430\u0446\u0438\u044F\u0434\u0435\u043D\u0434\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u044B \u043E\u0440\u0438\u0435\u043D\u0442\u0430\u0446\u0438\u044F\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u043E\u0440\u0438\u0435\u043D\u0442\u0430\u0446\u0438\u044F\u043C\u0435\u0442\u043E\u043A\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u043E\u0440\u0438\u0435\u043D\u0442\u0430\u0446\u0438\u044F\u043C\u0435\u0442\u043E\u043A\u0441\u0432\u043E\u0434\u043D\u043E\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u043E\u0440\u0438\u0435\u043D\u0442\u0430\u0446\u0438\u044F\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u0444\u043E\u0440\u043C\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0432\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0435 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0432\u043B\u0435\u0433\u0435\u043D\u0434\u0435\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0433\u0440\u0443\u043F\u043F\u044B\u043A\u043D\u043E\u043F\u043E\u043A \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430\u0448\u043A\u0430\u043B\u044B\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439\u0441\u0432\u043E\u0434\u043D\u043E\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u0438\u0437\u043C\u0435\u0440\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0438\u043D\u0442\u0435\u0440\u0432\u0430\u043B\u0430\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B\u0433\u0430\u043D\u0442\u0430 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u043A\u043D\u043E\u043F\u043A\u0438 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u043A\u043D\u043E\u043F\u043A\u0438\u0432\u044B\u0431\u043E\u0440\u0430 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0439\u0444\u043E\u0440\u043C\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u043E\u0431\u044B\u0447\u043D\u043E\u0439\u0433\u0440\u0443\u043F\u043F\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u043E\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0445\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439\u043F\u0443\u0437\u044B\u0440\u044C\u043A\u043E\u0432\u043E\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u043F\u0430\u043D\u0435\u043B\u0438\u043F\u043E\u0438\u0441\u043A\u0430 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0438 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u043F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u044F\u043F\u0440\u0438\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0438 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0438\u043F\u043E\u043B\u043E\u0441\u044B\u0440\u0435\u0433\u0443\u043B\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0444\u043E\u0440\u043C\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0442\u0430\u0431\u043B\u0438\u0446\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0442\u0435\u043A\u0441\u0442\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B\u0433\u0430\u043D\u0442\u0430 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u043E\u0431\u044B\u0447\u043D\u043E\u0439\u0433\u0440\u0443\u043F\u043F\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0444\u0438\u0433\u0443\u0440\u044B\u043A\u043D\u043E\u043F\u043A\u0438 \u043F\u0430\u043B\u0438\u0442\u0440\u0430\u0446\u0432\u0435\u0442\u043E\u0432\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435\u043E\u0431\u044B\u0447\u043D\u043E\u0439\u0433\u0440\u0443\u043F\u043F\u044B \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0430\u043C\u0430\u0441\u0448\u0442\u0430\u0431\u0430\u0434\u0435\u043D\u0434\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u044B \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0430\u043C\u0430\u0441\u0448\u0442\u0430\u0431\u0430\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B\u0433\u0430\u043D\u0442\u0430 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0430\u043C\u0430\u0441\u0448\u0442\u0430\u0431\u0430\u0441\u0432\u043E\u0434\u043D\u043E\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u043F\u043E\u0438\u0441\u043A\u0432\u0442\u0430\u0431\u043B\u0438\u0446\u0435\u043F\u0440\u0438\u0432\u0432\u043E\u0434\u0435 \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u0444\u043E\u0440\u043C\u044B \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0438\u043A\u043D\u043E\u043F\u043A\u0438\u0444\u043E\u0440\u043C\u044B \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0438\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043A\u043E\u043C\u0430\u043D\u0434\u043D\u043E\u0439\u043F\u0430\u043D\u0435\u043B\u0438\u0444\u043E\u0440\u043C\u044B \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043A\u043E\u043C\u0430\u043D\u0434\u043D\u043E\u0439\u043F\u0430\u043D\u0435\u043B\u0438\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u0444\u043E\u0440\u043C\u044B \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043E\u043F\u043E\u0440\u043D\u043E\u0439\u0442\u043E\u0447\u043A\u0438\u043E\u0442\u0440\u0438\u0441\u043E\u0432\u043A\u0438 \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043F\u043E\u0434\u043F\u0438\u0441\u0435\u0439\u043A\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0435 \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043F\u043E\u0434\u043F\u0438\u0441\u0435\u0439\u0448\u043A\u0430\u043B\u044B\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439\u0438\u0437\u043C\u0435\u0440\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u044F\u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0430 \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0441\u0442\u0440\u043E\u043A\u0438\u043F\u043E\u0438\u0441\u043A\u0430 \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0442\u0435\u043A\u0441\u0442\u0430\u0441\u043E\u0435\u0434\u0438\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0439\u043B\u0438\u043D\u0438\u0438 \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u043F\u043E\u0438\u0441\u043A\u043E\u043C \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0448\u043A\u0430\u043B\u044B\u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u043F\u043E\u0440\u044F\u0434\u043E\u043A\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u0442\u043E\u0447\u0435\u043A\u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u043E\u0439\u0433\u0438\u0441\u0442\u043E\u0433\u0440\u0430\u043C\u043C\u044B \u043F\u043E\u0440\u044F\u0434\u043E\u043A\u0441\u0435\u0440\u0438\u0439\u0432\u043B\u0435\u0433\u0435\u043D\u0434\u0435\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0440\u0430\u0437\u043C\u0435\u0440\u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0438 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430\u0448\u043A\u0430\u043B\u044B\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0440\u0430\u0441\u0442\u044F\u0433\u0438\u0432\u0430\u043D\u0438\u0435\u043F\u043E\u0432\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u0438\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B\u0433\u0430\u043D\u0442\u0430 \u0440\u0435\u0436\u0438\u043C\u0430\u0432\u0442\u043E\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u044F \u0440\u0435\u0436\u0438\u043C\u0432\u0432\u043E\u0434\u0430\u0441\u0442\u0440\u043E\u043A\u0442\u0430\u0431\u043B\u0438\u0446\u044B \u0440\u0435\u0436\u0438\u043C\u0432\u044B\u0431\u043E\u0440\u0430\u043D\u0435\u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u043E\u0433\u043E \u0440\u0435\u0436\u0438\u043C\u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F\u0434\u0430\u0442\u044B \u0440\u0435\u0436\u0438\u043C\u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F\u0441\u0442\u0440\u043E\u043A\u0438\u0442\u0430\u0431\u043B\u0438\u0446\u044B \u0440\u0435\u0436\u0438\u043C\u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F\u0442\u0430\u0431\u043B\u0438\u0446\u044B \u0440\u0435\u0436\u0438\u043C\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F\u0440\u0430\u0437\u043C\u0435\u0440\u0430 \u0440\u0435\u0436\u0438\u043C\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F\u0441\u0432\u044F\u0437\u0430\u043D\u043D\u043E\u0433\u043E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0440\u0435\u0436\u0438\u043C\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F\u0434\u0438\u0430\u043B\u043E\u0433\u0430\u043F\u0435\u0447\u0430\u0442\u0438 \u0440\u0435\u0436\u0438\u043C\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F\u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430\u043A\u043E\u043C\u0430\u043D\u0434\u044B \u0440\u0435\u0436\u0438\u043C\u043C\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F\u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0430 \u0440\u0435\u0436\u0438\u043C\u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0433\u043E\u043E\u043A\u043D\u0430\u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u043E\u0433\u043E\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0440\u0435\u0436\u0438\u043C\u043E\u0442\u043A\u0440\u044B\u0442\u0438\u044F\u043E\u043A\u043D\u0430\u0444\u043E\u0440\u043C\u044B \u0440\u0435\u0436\u0438\u043C\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0440\u0435\u0436\u0438\u043C\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u0433\u0435\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u0440\u0435\u0436\u0438\u043C\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439\u0441\u0435\u0440\u0438\u0438 \u0440\u0435\u0436\u0438\u043C\u043E\u0442\u0440\u0438\u0441\u043E\u0432\u043A\u0438\u0441\u0435\u0442\u043A\u0438\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u0440\u0435\u0436\u0438\u043C\u043F\u043E\u043B\u0443\u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u043E\u0441\u0442\u0438\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0440\u0435\u0436\u0438\u043C\u043F\u0440\u043E\u0431\u0435\u043B\u043E\u0432\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0440\u0435\u0436\u0438\u043C\u0440\u0430\u0437\u043C\u0435\u0449\u0435\u043D\u0438\u044F\u043D\u0430\u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0435 \u0440\u0435\u0436\u0438\u043C\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F\u043A\u043E\u043B\u043E\u043D\u043A\u0438 \u0440\u0435\u0436\u0438\u043C\u0441\u0433\u043B\u0430\u0436\u0438\u0432\u0430\u043D\u0438\u044F\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0440\u0435\u0436\u0438\u043C\u0441\u0433\u043B\u0430\u0436\u0438\u0432\u0430\u043D\u0438\u044F\u0438\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440\u0430 \u0440\u0435\u0436\u0438\u043C\u0441\u043F\u0438\u0441\u043A\u0430\u0437\u0430\u0434\u0430\u0447 \u0441\u043A\u0432\u043E\u0437\u043D\u043E\u0435\u0432\u044B\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u043D\u0438\u0435 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435\u0434\u0430\u043D\u043D\u044B\u0445\u0444\u043E\u0440\u043C\u044B\u0432\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430\u0445 \u0441\u043F\u043E\u0441\u043E\u0431\u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F\u0442\u0435\u043A\u0441\u0442\u0430\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430\u0448\u043A\u0430\u043B\u044B\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0441\u043F\u043E\u0441\u043E\u0431\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u044F\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0438\u0432\u0430\u044E\u0449\u0435\u0433\u043E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u0430\u044F\u0433\u0440\u0443\u043F\u043F\u0430\u043A\u043E\u043C\u0430\u043D\u0434 \u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u043E\u0435\u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u0435 \u0441\u0442\u0430\u0442\u0443\u0441\u043E\u043F\u043E\u0432\u0435\u0449\u0435\u043D\u0438\u044F\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u0441\u0442\u0438\u043B\u044C\u0441\u0442\u0440\u0435\u043B\u043A\u0438 \u0442\u0438\u043F\u0430\u043F\u043F\u0440\u043E\u043A\u0441\u0438\u043C\u0430\u0446\u0438\u0438\u043B\u0438\u043D\u0438\u0438\u0442\u0440\u0435\u043D\u0434\u0430\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0442\u0438\u043F\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0442\u0438\u043F\u0435\u0434\u0438\u043D\u0438\u0446\u044B\u0448\u043A\u0430\u043B\u044B\u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u0442\u0438\u043F\u0438\u043C\u043F\u043E\u0440\u0442\u0430\u0441\u0435\u0440\u0438\u0439\u0441\u043B\u043E\u044F\u0433\u0435\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u0442\u0438\u043F\u043B\u0438\u043D\u0438\u0438\u0433\u0435\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u0442\u0438\u043F\u043B\u0438\u043D\u0438\u0438\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0442\u0438\u043F\u043C\u0430\u0440\u043A\u0435\u0440\u0430\u0433\u0435\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u0442\u0438\u043F\u043C\u0430\u0440\u043A\u0435\u0440\u0430\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0442\u0438\u043F\u043E\u0431\u043B\u0430\u0441\u0442\u0438\u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F \u0442\u0438\u043F\u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438\u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0430\u0434\u0430\u043D\u043D\u044B\u0445\u0433\u0435\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u0442\u0438\u043F\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u0441\u0435\u0440\u0438\u0438\u0441\u043B\u043E\u044F\u0433\u0435\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u0442\u0438\u043F\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u0442\u043E\u0447\u0435\u0447\u043D\u043E\u0433\u043E\u043E\u0431\u044A\u0435\u043A\u0442\u0430\u0433\u0435\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u0442\u0438\u043F\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u0448\u043A\u0430\u043B\u044B\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u043B\u0435\u0433\u0435\u043D\u0434\u044B\u0433\u0435\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u0442\u0438\u043F\u043F\u043E\u0438\u0441\u043A\u0430\u043E\u0431\u044A\u0435\u043A\u0442\u043E\u0432\u0433\u0435\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u0442\u0438\u043F\u043F\u0440\u043E\u0435\u043A\u0446\u0438\u0438\u0433\u0435\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u0442\u0438\u043F\u0440\u0430\u0437\u043C\u0435\u0449\u0435\u043D\u0438\u044F\u0438\u0437\u043C\u0435\u0440\u0435\u043D\u0438\u0439 \u0442\u0438\u043F\u0440\u0430\u0437\u043C\u0435\u0449\u0435\u043D\u0438\u044F\u0440\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u043E\u0432\u0438\u0437\u043C\u0435\u0440\u0435\u043D\u0438\u0439 \u0442\u0438\u043F\u0440\u0430\u043C\u043A\u0438\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0442\u0438\u043F\u0441\u0432\u043E\u0434\u043D\u043E\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0442\u0438\u043F\u0441\u0432\u044F\u0437\u0438\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B\u0433\u0430\u043D\u0442\u0430 \u0442\u0438\u043F\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044F\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439\u043F\u043E\u0441\u0435\u0440\u0438\u044F\u043C\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0442\u0438\u043F\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044F\u0442\u043E\u0447\u0435\u043A\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0442\u0438\u043F\u0441\u043E\u0435\u0434\u0438\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0439\u043B\u0438\u043D\u0438\u0438 \u0442\u0438\u043F\u0441\u0442\u043E\u0440\u043E\u043D\u044B\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u0442\u0438\u043F\u0444\u043E\u0440\u043C\u044B\u043E\u0442\u0447\u0435\u0442\u0430 \u0442\u0438\u043F\u0448\u043A\u0430\u043B\u044B\u0440\u0430\u0434\u0430\u0440\u043D\u043E\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0444\u0430\u043A\u0442\u043E\u0440\u043B\u0438\u043D\u0438\u0438\u0442\u0440\u0435\u043D\u0434\u0430\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0444\u0438\u0433\u0443\u0440\u0430\u043A\u043D\u043E\u043F\u043A\u0438 \u0444\u0438\u0433\u0443\u0440\u044B\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u0444\u0438\u043A\u0441\u0430\u0446\u0438\u044F\u0432\u0442\u0430\u0431\u043B\u0438\u0446\u0435 \u0444\u043E\u0440\u043C\u0430\u0442\u0434\u043D\u044F\u0448\u043A\u0430\u043B\u044B\u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u0444\u043E\u0440\u043C\u0430\u0442\u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0438 \u0448\u0438\u0440\u0438\u043D\u0430\u043F\u043E\u0434\u0447\u0438\u043D\u0435\u043D\u043D\u044B\u0445\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432\u0444\u043E\u0440\u043C\u044B ",S="\u0432\u0438\u0434\u0434\u0432\u0438\u0436\u0435\u043D\u0438\u044F\u0431\u0443\u0445\u0433\u0430\u043B\u0442\u0435\u0440\u0438\u0438 \u0432\u0438\u0434\u0434\u0432\u0438\u0436\u0435\u043D\u0438\u044F\u043D\u0430\u043A\u043E\u043F\u043B\u0435\u043D\u0438\u044F \u0432\u0438\u0434\u043F\u0435\u0440\u0438\u043E\u0434\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0432\u0438\u0434\u0441\u0447\u0435\u0442\u0430 \u0432\u0438\u0434\u0442\u043E\u0447\u043A\u0438\u043C\u0430\u0440\u0448\u0440\u0443\u0442\u0430\u0431\u0438\u0437\u043D\u0435\u0441\u043F\u0440\u043E\u0446\u0435\u0441\u0441\u0430 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0430\u0433\u0440\u0435\u0433\u0430\u0442\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u043D\u0430\u043A\u043E\u043F\u043B\u0435\u043D\u0438\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0433\u0440\u0443\u043F\u043F\u0438\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0440\u0435\u0436\u0438\u043C\u0430\u043F\u0440\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0441\u0440\u0435\u0437\u0430 \u043F\u0435\u0440\u0438\u043E\u0434\u0438\u0447\u043D\u043E\u0441\u0442\u044C\u0430\u0433\u0440\u0435\u0433\u0430\u0442\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u043D\u0430\u043A\u043E\u043F\u043B\u0435\u043D\u0438\u044F \u0440\u0435\u0436\u0438\u043C\u0430\u0432\u0442\u043E\u0432\u0440\u0435\u043C\u044F \u0440\u0435\u0436\u0438\u043C\u0437\u0430\u043F\u0438\u0441\u0438\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0440\u0435\u0436\u0438\u043C\u043F\u0440\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u044F\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 ",T="\u0430\u0432\u0442\u043E\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044F\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0439 \u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0439\u043D\u043E\u043C\u0435\u0440\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u0430\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u0435\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u0434\u0430\u043D\u043D\u044B\u0445 ",C="\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0438\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u043E\u0440\u0438\u0435\u043D\u0442\u0430\u0446\u0438\u044F\u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0438\u0442\u043E\u0433\u043E\u0432\u043A\u043E\u043B\u043E\u043D\u043E\u043A\u0441\u0432\u043E\u0434\u043D\u043E\u0439\u0442\u0430\u0431\u043B\u0438\u0446\u044B \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0438\u0442\u043E\u0433\u043E\u0432\u0441\u0442\u0440\u043E\u043A\u0441\u0432\u043E\u0434\u043D\u043E\u0439\u0442\u0430\u0431\u043B\u0438\u0446\u044B \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0442\u0435\u043A\u0441\u0442\u0430\u043E\u0442\u043D\u043E\u0441\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0438 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430\u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0438\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0441\u043F\u043E\u0441\u043E\u0431\u0447\u0442\u0435\u043D\u0438\u044F\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0442\u0438\u043F\u0434\u0432\u0443\u0441\u0442\u043E\u0440\u043E\u043D\u043D\u0435\u0439\u043F\u0435\u0447\u0430\u0442\u0438 \u0442\u0438\u043F\u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F\u043E\u0431\u043B\u0430\u0441\u0442\u0438\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0442\u0438\u043F\u043A\u0443\u0440\u0441\u043E\u0440\u043E\u0432\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0442\u0438\u043F\u043B\u0438\u043D\u0438\u0438\u0440\u0438\u0441\u0443\u043D\u043A\u0430\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0442\u0438\u043F\u043B\u0438\u043D\u0438\u0438\u044F\u0447\u0435\u0439\u043A\u0438\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0442\u0438\u043F\u043D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u043F\u0435\u0440\u0435\u0445\u043E\u0434\u0430\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0442\u0438\u043F\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0442\u0438\u043F\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u043B\u0438\u043D\u0438\u0439\u0441\u0432\u043E\u0434\u043D\u043E\u0439\u0442\u0430\u0431\u043B\u0438\u0446\u044B \u0442\u0438\u043F\u0440\u0430\u0437\u043C\u0435\u0449\u0435\u043D\u0438\u044F\u0442\u0435\u043A\u0441\u0442\u0430\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0442\u0438\u043F\u0440\u0438\u0441\u0443\u043D\u043A\u0430\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0442\u0438\u043F\u0441\u043C\u0435\u0449\u0435\u043D\u0438\u044F\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0442\u0438\u043F\u0443\u0437\u043E\u0440\u0430\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0442\u0438\u043F\u0444\u0430\u0439\u043B\u0430\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0442\u043E\u0447\u043D\u043E\u0441\u0442\u044C\u043F\u0435\u0447\u0430\u0442\u0438 \u0447\u0435\u0440\u0435\u0434\u043E\u0432\u0430\u043D\u0438\u0435\u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u044F\u0441\u0442\u0440\u0430\u043D\u0438\u0446 ",R="\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0432\u0440\u0435\u043C\u0435\u043D\u0438\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0449\u0438\u043A\u0430 ",f="\u0442\u0438\u043F\u0444\u0430\u0439\u043B\u0430\u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 ",O="\u043E\u0431\u0445\u043E\u0434\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430\u0437\u0430\u043F\u0440\u043E\u0441\u0430 \u0442\u0438\u043F\u0437\u0430\u043F\u0438\u0441\u0438\u0437\u0430\u043F\u0440\u043E\u0441\u0430 ",L="\u0432\u0438\u0434\u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0438\u043F\u043E\u0441\u0442\u0440\u043E\u0438\u0442\u0435\u043B\u044F\u043E\u0442\u0447\u0435\u0442\u0430 \u0442\u0438\u043F\u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0439 \u0442\u0438\u043F\u0438\u0437\u043C\u0435\u0440\u0435\u043D\u0438\u044F\u043F\u043E\u0441\u0442\u0440\u043E\u0438\u0442\u0435\u043B\u044F\u043E\u0442\u0447\u0435\u0442\u0430 \u0442\u0438\u043F\u0440\u0430\u0437\u043C\u0435\u0449\u0435\u043D\u0438\u044F\u0438\u0442\u043E\u0433\u043E\u0432 ",h="\u0434\u043E\u0441\u0442\u0443\u043F\u043A\u0444\u0430\u0439\u043B\u0443 \u0440\u0435\u0436\u0438\u043C\u0434\u0438\u0430\u043B\u043E\u0433\u0430\u0432\u044B\u0431\u043E\u0440\u0430\u0444\u0430\u0439\u043B\u0430 \u0440\u0435\u0436\u0438\u043C\u043E\u0442\u043A\u0440\u044B\u0442\u0438\u044F\u0444\u0430\u0439\u043B\u0430 ",w="\u0442\u0438\u043F\u0438\u0437\u043C\u0435\u0440\u0435\u043D\u0438\u044F\u043F\u043E\u0441\u0442\u0440\u043E\u0438\u0442\u0435\u043B\u044F\u0437\u0430\u043F\u0440\u043E\u0441\u0430 ",Y="\u0432\u0438\u0434\u0434\u0430\u043D\u043D\u044B\u0445\u0430\u043D\u0430\u043B\u0438\u0437\u0430 \u043C\u0435\u0442\u043E\u0434\u043A\u043B\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0438\u043F\u0435\u0434\u0438\u043D\u0438\u0446\u044B\u0438\u043D\u0442\u0435\u0440\u0432\u0430\u043B\u0430\u0432\u0440\u0435\u043C\u0435\u043D\u0438\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F\u0442\u0430\u0431\u043B\u0438\u0446\u044B\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F\u0447\u0438\u0441\u043B\u043E\u0432\u044B\u0445\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0430\u0434\u0430\u043D\u043D\u044B\u0445\u043F\u043E\u0438\u0441\u043A\u0430\u0430\u0441\u0441\u043E\u0446\u0438\u0430\u0446\u0438\u0439 \u0442\u0438\u043F\u043A\u043E\u043B\u043E\u043D\u043A\u0438\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445\u0434\u0435\u0440\u0435\u0432\u043E\u0440\u0435\u0448\u0435\u043D\u0438\u0439 \u0442\u0438\u043F\u043A\u043E\u043B\u043E\u043D\u043A\u0438\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445\u043A\u043B\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044F \u0442\u0438\u043F\u043A\u043E\u043B\u043E\u043D\u043A\u0438\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445\u043E\u0431\u0449\u0430\u044F\u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 \u0442\u0438\u043F\u043A\u043E\u043B\u043E\u043D\u043A\u0438\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445\u043F\u043E\u0438\u0441\u043A\u0430\u0441\u0441\u043E\u0446\u0438\u0430\u0446\u0438\u0439 \u0442\u0438\u043F\u043A\u043E\u043B\u043E\u043D\u043A\u0438\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445\u043F\u043E\u0438\u0441\u043A\u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u0435\u0439 \u0442\u0438\u043F\u043A\u043E\u043B\u043E\u043D\u043A\u0438\u043C\u043E\u0434\u0435\u043B\u0438\u043F\u0440\u043E\u0433\u043D\u043E\u0437\u0430 \u0442\u0438\u043F\u043C\u0435\u0440\u044B\u0440\u0430\u0441\u0441\u0442\u043E\u044F\u043D\u0438\u044F\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u043E\u0442\u0441\u0435\u0447\u0435\u043D\u0438\u044F\u043F\u0440\u0430\u0432\u0438\u043B\u0430\u0441\u0441\u043E\u0446\u0438\u0430\u0446\u0438\u0438 \u0442\u0438\u043F\u043F\u043E\u043B\u044F\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u0438\u0437\u0430\u0446\u0438\u0438\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0443\u043F\u043E\u0440\u044F\u0434\u043E\u0447\u0438\u0432\u0430\u043D\u0438\u044F\u043F\u0440\u0430\u0432\u0438\u043B\u0430\u0441\u0441\u043E\u0446\u0438\u0430\u0446\u0438\u0438\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0443\u043F\u043E\u0440\u044F\u0434\u043E\u0447\u0438\u0432\u0430\u043D\u0438\u044F\u0448\u0430\u0431\u043B\u043E\u043D\u043E\u0432\u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u0435\u0439\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0443\u043F\u0440\u043E\u0449\u0435\u043D\u0438\u044F\u0434\u0435\u0440\u0435\u0432\u0430\u0440\u0435\u0448\u0435\u043D\u0438\u0439 ",v="ws\u043D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430 \u0432\u0430\u0440\u0438\u0430\u043D\u0442xpathxs \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u0437\u0430\u043F\u0438\u0441\u0438\u0434\u0430\u0442\u044Bjson \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u043F\u0440\u043E\u0441\u0442\u043E\u0433\u043E\u0442\u0438\u043F\u0430xs \u0432\u0438\u0434\u0433\u0440\u0443\u043F\u043F\u044B\u043C\u043E\u0434\u0435\u043B\u0438xs \u0432\u0438\u0434\u0444\u0430\u0441\u0435\u0442\u0430xdto \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u043F\u043E\u0441\u0442\u0440\u043E\u0438\u0442\u0435\u043B\u044Fdom \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043D\u043E\u0441\u0442\u044C\u043F\u0440\u043E\u0441\u0442\u043E\u0433\u043E\u0442\u0438\u043F\u0430xs \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043D\u043E\u0441\u0442\u044C\u0441\u043E\u0441\u0442\u0430\u0432\u043D\u043E\u0433\u043E\u0442\u0438\u043F\u0430xs \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043D\u043E\u0441\u0442\u044C\u0441\u0445\u0435\u043C\u044Bxs \u0437\u0430\u043F\u0440\u0435\u0449\u0435\u043D\u043D\u044B\u0435\u043F\u043E\u0434\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0438xs \u0438\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F\u0433\u0440\u0443\u043F\u043F\u043F\u043E\u0434\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0438xs \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430xs \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u044F\u0438\u0434\u0435\u043D\u0442\u0438\u0447\u043D\u043E\u0441\u0442\u0438xs \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u044F\u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u0438\u043C\u0435\u043Dxs \u043C\u0435\u0442\u043E\u0434\u043D\u0430\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u043D\u0438\u044Fxs \u043C\u043E\u0434\u0435\u043B\u044C\u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0433\u043Exs \u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0442\u0438\u043F\u0430xml \u043D\u0435\u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0435\u043F\u043E\u0434\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0438xs \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430\u043F\u0440\u043E\u0431\u0435\u043B\u044C\u043D\u044B\u0445\u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432xs \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430\u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0433\u043Exs \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u0435\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044Fxs \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B\u043E\u0442\u0431\u043E\u0440\u0430\u0443\u0437\u043B\u043E\u0432dom \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0441\u0442\u0440\u043E\u043Ajson \u043F\u043E\u0437\u0438\u0446\u0438\u044F\u0432\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0435dom \u043F\u0440\u043E\u0431\u0435\u043B\u044C\u043D\u044B\u0435\u0441\u0438\u043C\u0432\u043E\u043B\u044Bxml \u0442\u0438\u043F\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430xml \u0442\u0438\u043F\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044Fjson \u0442\u0438\u043F\u043A\u0430\u043D\u043E\u043D\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043Exml \u0442\u0438\u043F\u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u044Bxs \u0442\u0438\u043F\u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438xml \u0442\u0438\u043F\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430domxpath \u0442\u0438\u043F\u0443\u0437\u043B\u0430dom \u0442\u0438\u043F\u0443\u0437\u043B\u0430xml \u0444\u043E\u0440\u043C\u0430xml \u0444\u043E\u0440\u043C\u0430\u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044Fxs \u0444\u043E\u0440\u043C\u0430\u0442\u0434\u0430\u0442\u044Bjson \u044D\u043A\u0440\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435\u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432json ",B="\u0432\u0438\u0434\u0441\u0440\u0430\u0432\u043D\u0435\u043D\u0438\u044F\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0432\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0445\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0438\u0442\u043E\u0433\u043E\u0432\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043F\u043E\u043B\u0435\u0439\u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043F\u043E\u043B\u044F\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0440\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u043E\u0432\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0440\u0435\u0441\u0443\u0440\u0441\u043E\u0432\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0431\u0443\u0445\u0433\u0430\u043B\u0442\u0435\u0440\u0441\u043A\u043E\u0433\u043E\u043E\u0441\u0442\u0430\u0442\u043A\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0432\u044B\u0432\u043E\u0434\u0430\u0442\u0435\u043A\u0441\u0442\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0433\u0440\u0443\u043F\u043F\u044B\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432\u043E\u0442\u0431\u043E\u0440\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0434\u043E\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F\u043F\u0435\u0440\u0438\u043E\u0434\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430\u043F\u043E\u043B\u0435\u0439\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u043C\u0430\u043A\u0435\u0442\u0430\u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u043C\u0430\u043A\u0435\u0442\u0430\u043E\u0431\u043B\u0430\u0441\u0442\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u043E\u0441\u0442\u0430\u0442\u043A\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u043F\u0435\u0440\u0438\u043E\u0434\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0440\u0430\u0437\u043C\u0435\u0449\u0435\u043D\u0438\u044F\u0442\u0435\u043A\u0441\u0442\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0441\u0432\u044F\u0437\u0438\u043D\u0430\u0431\u043E\u0440\u043E\u0432\u0434\u0430\u043D\u043D\u044B\u0445\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043B\u0435\u0433\u0435\u043D\u0434\u044B\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u043F\u0440\u0438\u043C\u0435\u043D\u0435\u043D\u0438\u044F\u043E\u0442\u0431\u043E\u0440\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0435\u0436\u0438\u043C\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0435\u0436\u0438\u043C\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0441\u043F\u043E\u0441\u043E\u0431\u0432\u043E\u0441\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u044F\u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0435\u0436\u0438\u043C\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0430\u0432\u0442\u043E\u043F\u043E\u0437\u0438\u0446\u0438\u044F\u0440\u0435\u0441\u0443\u0440\u0441\u043E\u0432\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F\u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0440\u0435\u0441\u0443\u0440\u0441\u043E\u0432\u0432\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0435\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0444\u0438\u043A\u0441\u0430\u0446\u0438\u044F\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0443\u0441\u043B\u043E\u0432\u043D\u043E\u0433\u043E\u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 ",oe="\u0432\u0430\u0436\u043D\u043E\u0441\u0442\u044C\u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442\u043F\u043E\u0447\u0442\u043E\u0432\u043E\u0433\u043E\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430\u0442\u0435\u043A\u0441\u0442\u0430\u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442\u043F\u043E\u0447\u0442\u043E\u0432\u043E\u0433\u043E\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0441\u043F\u043E\u0441\u043E\u0431\u043A\u043E\u0434\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F\u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442\u043F\u043E\u0447\u0442\u043E\u0432\u043E\u0433\u043E\u0432\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0441\u043F\u043E\u0441\u043E\u0431\u043A\u043E\u0434\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F\u043D\u0435ascii\u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432\u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442\u043F\u043E\u0447\u0442\u043E\u0432\u043E\u0433\u043E\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0442\u0438\u043F\u0442\u0435\u043A\u0441\u0442\u0430\u043F\u043E\u0447\u0442\u043E\u0432\u043E\u0433\u043E\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u043F\u0440\u043E\u0442\u043E\u043A\u043E\u043B\u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442\u043F\u043E\u0447\u0442\u044B \u0441\u0442\u0430\u0442\u0443\u0441\u0440\u0430\u0437\u0431\u043E\u0440\u0430\u043F\u043E\u0447\u0442\u043E\u0432\u043E\u0433\u043E\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F ",se="\u0440\u0435\u0436\u0438\u043C\u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u0438\u0437\u0430\u043F\u0438\u0441\u0438\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0441\u0442\u0430\u0442\u0443\u0441\u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u0438\u0437\u0430\u043F\u0438\u0441\u0438\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0443\u0440\u043E\u0432\u0435\u043D\u044C\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 ",j="\u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0430\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0432\u043A\u0440\u0438\u043F\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u0438 \u0440\u0435\u0436\u0438\u043C\u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0432\u043A\u0440\u0438\u043F\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u0438 \u0440\u0435\u0436\u0438\u043C\u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u0430\u043A\u0440\u0438\u043F\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u0438 \u0442\u0438\u043F\u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0430\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0432\u043A\u0440\u0438\u043F\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u0438 ",le="\u043A\u043E\u0434\u0438\u0440\u043E\u0432\u043A\u0430\u0438\u043C\u0435\u043D\u0444\u0430\u0439\u043B\u043E\u0432\u0432zip\u0444\u0430\u0439\u043B\u0435 \u043C\u0435\u0442\u043E\u0434\u0441\u0436\u0430\u0442\u0438\u044Fzip \u043C\u0435\u0442\u043E\u0434\u0448\u0438\u0444\u0440\u043E\u0432\u0430\u043D\u0438\u044Fzip \u0440\u0435\u0436\u0438\u043C\u0432\u043E\u0441\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u044F\u043F\u0443\u0442\u0435\u0439\u0444\u0430\u0439\u043B\u043E\u0432zip \u0440\u0435\u0436\u0438\u043C\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438\u043F\u043E\u0434\u043A\u0430\u0442\u0430\u043B\u043E\u0433\u043E\u0432zip \u0440\u0435\u0436\u0438\u043C\u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u044F\u043F\u0443\u0442\u0435\u0439zip \u0443\u0440\u043E\u0432\u0435\u043D\u044C\u0441\u0436\u0430\u0442\u0438\u044Fzip ",q="\u0437\u0432\u0443\u043A\u043E\u0432\u043E\u0435\u043E\u043F\u043E\u0432\u0435\u0449\u0435\u043D\u0438\u0435 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u0435\u0440\u0435\u0445\u043E\u0434\u0430\u043A\u0441\u0442\u0440\u043E\u043A\u0435 \u043F\u043E\u0437\u0438\u0446\u0438\u044F\u0432\u043F\u043E\u0442\u043E\u043A\u0435 \u043F\u043E\u0440\u044F\u0434\u043E\u043A\u0431\u0430\u0439\u0442\u043E\u0432 \u0440\u0435\u0436\u0438\u043C\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0435\u0436\u0438\u043C\u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u043A\u043E\u0439\u0434\u0430\u043D\u043D\u044B\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0445\u043F\u043E\u043A\u0443\u043F\u043E\u043A \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435\u0444\u043E\u043D\u043E\u0432\u043E\u0433\u043E\u0437\u0430\u0434\u0430\u043D\u0438\u044F \u0442\u0438\u043F\u043F\u043E\u0434\u043F\u0438\u0441\u0447\u0438\u043A\u0430\u0434\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u043C\u044B\u0445\u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0439 \u0443\u0440\u043E\u0432\u0435\u043D\u044C\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F\u0437\u0430\u0449\u0438\u0449\u0435\u043D\u043D\u043E\u0433\u043E\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044Fftp ",te="\u043D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u043E\u0440\u044F\u0434\u043A\u0430\u0441\u0445\u0435\u043C\u044B\u0437\u0430\u043F\u0440\u043E\u0441\u0430 \u0442\u0438\u043F\u0434\u043E\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F\u043F\u0435\u0440\u0438\u043E\u0434\u0430\u043C\u0438\u0441\u0445\u0435\u043C\u044B\u0437\u0430\u043F\u0440\u043E\u0441\u0430 \u0442\u0438\u043F\u043A\u043E\u043D\u0442\u0440\u043E\u043B\u044C\u043D\u043E\u0439\u0442\u043E\u0447\u043A\u0438\u0441\u0445\u0435\u043C\u044B\u0437\u0430\u043F\u0440\u043E\u0441\u0430 \u0442\u0438\u043F\u043E\u0431\u044A\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044F\u0441\u0445\u0435\u043C\u044B\u0437\u0430\u043F\u0440\u043E\u0441\u0430 \u0442\u0438\u043F\u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u043E\u0439\u0442\u0430\u0431\u043B\u0438\u0446\u044B\u0441\u0445\u0435\u043C\u044B\u0437\u0430\u043F\u0440\u043E\u0441\u0430 \u0442\u0438\u043F\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044F\u0441\u0445\u0435\u043C\u044B\u0437\u0430\u043F\u0440\u043E\u0441\u0430 ",Z="http\u043C\u0435\u0442\u043E\u0434 \u0430\u0432\u0442\u043E\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u043E\u0431\u0449\u0435\u0433\u043E\u0440\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u0430 \u0430\u0432\u0442\u043E\u043F\u0440\u0435\u0444\u0438\u043A\u0441\u043D\u043E\u043C\u0435\u0440\u0430\u0437\u0430\u0434\u0430\u0447\u0438 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u043E\u0433\u043E\u044F\u0437\u044B\u043A\u0430 \u0432\u0438\u0434\u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u0432\u0438\u0434\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u043D\u0430\u043A\u043E\u043F\u043B\u0435\u043D\u0438\u044F \u0432\u0438\u0434\u0442\u0430\u0431\u043B\u0438\u0446\u044B\u0432\u043D\u0435\u0448\u043D\u0435\u0433\u043E\u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u0437\u0430\u043F\u0438\u0441\u044C\u0434\u0432\u0438\u0436\u0435\u043D\u0438\u0439\u043F\u0440\u0438\u043F\u0440\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0438 \u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435\u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u0435\u0439 \u0438\u043D\u0434\u0435\u043A\u0441\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0431\u0430\u0437\u044B\u043F\u043B\u0430\u043D\u0430\u0432\u0438\u0434\u043E\u0432\u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0431\u044B\u0441\u0442\u0440\u043E\u0433\u043E\u0432\u044B\u0431\u043E\u0440\u0430 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u043E\u0431\u0449\u0435\u0433\u043E\u0440\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u0430 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u043F\u043E\u0434\u0447\u0438\u043D\u0435\u043D\u0438\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u043F\u043E\u043B\u043D\u043E\u0442\u0435\u043A\u0441\u0442\u043E\u0432\u043E\u0433\u043E\u043F\u043E\u0438\u0441\u043A\u0430 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0440\u0430\u0437\u0434\u0435\u043B\u044F\u0435\u043C\u044B\u0445\u0434\u0430\u043D\u043D\u044B\u0445\u043E\u0431\u0449\u0435\u0433\u043E\u0440\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u0430 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0440\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u0430 \u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u0440\u0435\u0434\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0445\u0434\u0430\u043D\u043D\u044B\u0445 \u043E\u043F\u0435\u0440\u0430\u0442\u0438\u0432\u043D\u043E\u0435\u043F\u0440\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0435\u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u0432\u0438\u0434\u0430\u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0435\u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u0432\u0438\u0434\u0430\u0445\u0430\u0440\u0430\u043A\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043A\u0438 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0435\u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u0437\u0430\u0434\u0430\u0447\u0438 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0435\u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u043B\u0430\u043D\u0430\u043E\u0431\u043C\u0435\u043D\u0430 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0435\u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u0441\u043F\u0440\u0430\u0432\u043E\u0447\u043D\u0438\u043A\u0430 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0435\u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u0441\u0447\u0435\u0442\u0430 \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0438\u0435\u0433\u0440\u0430\u043D\u0438\u0446\u044B\u043F\u0440\u0438\u043F\u0440\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0438 \u043F\u0435\u0440\u0438\u043E\u0434\u0438\u0447\u043D\u043E\u0441\u0442\u044C\u043D\u043E\u043C\u0435\u0440\u0430\u0431\u0438\u0437\u043D\u0435\u0441\u043F\u0440\u043E\u0446\u0435\u0441\u0441\u0430 \u043F\u0435\u0440\u0438\u043E\u0434\u0438\u0447\u043D\u043E\u0441\u0442\u044C\u043D\u043E\u043C\u0435\u0440\u0430\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u043F\u0435\u0440\u0438\u043E\u0434\u0438\u0447\u043D\u043E\u0441\u0442\u044C\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u043F\u0435\u0440\u0438\u043E\u0434\u0438\u0447\u043D\u043E\u0441\u0442\u044C\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0441\u0432\u0435\u0434\u0435\u043D\u0438\u0439 \u043F\u043E\u0432\u0442\u043E\u0440\u043D\u043E\u0435\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043C\u044B\u0445\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439 \u043F\u043E\u043B\u043D\u043E\u0442\u0435\u043A\u0441\u0442\u043E\u0432\u044B\u0439\u043F\u043E\u0438\u0441\u043A\u043F\u0440\u0438\u0432\u0432\u043E\u0434\u0435\u043F\u043E\u0441\u0442\u0440\u043E\u043A\u0435 \u043F\u0440\u0438\u043D\u0430\u0434\u043B\u0435\u0436\u043D\u043E\u0441\u0442\u044C\u043E\u0431\u044A\u0435\u043A\u0442\u0430 \u043F\u0440\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435 \u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u0438\u0435\u0430\u0443\u0442\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u0438\u043E\u0431\u0449\u0435\u0433\u043E\u0440\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u0430 \u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u0438\u0435\u0434\u0430\u043D\u043D\u044B\u0445\u043E\u0431\u0449\u0435\u0433\u043E\u0440\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u0430 \u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u0438\u0435\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0439\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438\u043E\u0431\u0449\u0435\u0433\u043E\u0440\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u0430 \u0440\u0435\u0436\u0438\u043C\u0430\u0432\u0442\u043E\u043D\u0443\u043C\u0435\u0440\u0430\u0446\u0438\u0438\u043E\u0431\u044A\u0435\u043A\u0442\u043E\u0432 \u0440\u0435\u0436\u0438\u043C\u0437\u0430\u043F\u0438\u0441\u0438\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u0440\u0435\u0436\u0438\u043C\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F\u043C\u043E\u0434\u0430\u043B\u044C\u043D\u043E\u0441\u0442\u0438 \u0440\u0435\u0436\u0438\u043C\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F\u0441\u0438\u043D\u0445\u0440\u043E\u043D\u043D\u044B\u0445\u0432\u044B\u0437\u043E\u0432\u043E\u0432\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0439\u043F\u043B\u0430\u0442\u0444\u043E\u0440\u043C\u044B\u0438\u0432\u043D\u0435\u0448\u043D\u0438\u0445\u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442 \u0440\u0435\u0436\u0438\u043C\u043F\u043E\u0432\u0442\u043E\u0440\u043D\u043E\u0433\u043E\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F\u0441\u0435\u0430\u043D\u0441\u043E\u0432 \u0440\u0435\u0436\u0438\u043C\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F\u0434\u0430\u043D\u043D\u044B\u0445\u0432\u044B\u0431\u043E\u0440\u0430\u043F\u0440\u0438\u0432\u0432\u043E\u0434\u0435\u043F\u043E\u0441\u0442\u0440\u043E\u043A\u0435 \u0440\u0435\u0436\u0438\u043C\u0441\u043E\u0432\u043C\u0435\u0441\u0442\u0438\u043C\u043E\u0441\u0442\u0438 \u0440\u0435\u0436\u0438\u043C\u0441\u043E\u0432\u043C\u0435\u0441\u0442\u0438\u043C\u043E\u0441\u0442\u0438\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0440\u0435\u0436\u0438\u043C\u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u043A\u043E\u0439\u0434\u0430\u043D\u043D\u044B\u0445\u043F\u043E\u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0441\u0435\u0440\u0438\u0438\u043A\u043E\u0434\u043E\u0432\u043F\u043B\u0430\u043D\u0430\u0432\u0438\u0434\u043E\u0432\u0445\u0430\u0440\u0430\u043A\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043A \u0441\u0435\u0440\u0438\u0438\u043A\u043E\u0434\u043E\u0432\u043F\u043B\u0430\u043D\u0430\u0441\u0447\u0435\u0442\u043E\u0432 \u0441\u0435\u0440\u0438\u0438\u043A\u043E\u0434\u043E\u0432\u0441\u043F\u0440\u0430\u0432\u043E\u0447\u043D\u0438\u043A\u0430 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0435\u043F\u0440\u0438\u0432\u0432\u043E\u0434\u0435 \u0441\u043F\u043E\u0441\u043E\u0431\u0432\u044B\u0431\u043E\u0440\u0430 \u0441\u043F\u043E\u0441\u043E\u0431\u043F\u043E\u0438\u0441\u043A\u0430\u0441\u0442\u0440\u043E\u043A\u0438\u043F\u0440\u0438\u0432\u0432\u043E\u0434\u0435\u043F\u043E\u0441\u0442\u0440\u043E\u043A\u0435 \u0441\u043F\u043E\u0441\u043E\u0431\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0442\u0438\u043F\u0434\u0430\u043D\u043D\u044B\u0445\u0442\u0430\u0431\u043B\u0438\u0446\u044B\u0432\u043D\u0435\u0448\u043D\u0435\u0433\u043E\u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u043A\u043E\u0434\u0430\u043F\u043B\u0430\u043D\u0430\u0432\u0438\u0434\u043E\u0432\u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0442\u0438\u043F\u043A\u043E\u0434\u0430\u0441\u043F\u0440\u0430\u0432\u043E\u0447\u043D\u0438\u043A\u0430 \u0442\u0438\u043F\u043C\u0430\u043A\u0435\u0442\u0430 \u0442\u0438\u043F\u043D\u043E\u043C\u0435\u0440\u0430\u0431\u0438\u0437\u043D\u0435\u0441\u043F\u0440\u043E\u0446\u0435\u0441\u0441\u0430 \u0442\u0438\u043F\u043D\u043E\u043C\u0435\u0440\u0430\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0442\u0438\u043F\u043D\u043E\u043C\u0435\u0440\u0430\u0437\u0430\u0434\u0430\u0447\u0438 \u0442\u0438\u043F\u0444\u043E\u0440\u043C\u044B \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0435\u0434\u0432\u0438\u0436\u0435\u043D\u0438\u0439 ",W="\u0432\u0430\u0436\u043D\u043E\u0441\u0442\u044C\u043F\u0440\u043E\u0431\u043B\u0435\u043C\u044B\u043F\u0440\u0438\u043C\u0435\u043D\u0435\u043D\u0438\u044F\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u043E\u0433\u043E\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u043C\u0430\u0441\u0448\u0442\u0430\u0431\u0430\u0444\u043E\u0440\u043C\u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u043E\u0433\u043E\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0433\u043E\u0448\u0440\u0438\u0444\u0442\u0430\u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u043E\u0433\u043E\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u043E\u0433\u043E\u043F\u0435\u0440\u0438\u043E\u0434\u0430 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u043E\u0439\u0434\u0430\u0442\u044B\u043D\u0430\u0447\u0430\u043B\u0430 \u0432\u0438\u0434\u0433\u0440\u0430\u043D\u0438\u0446\u044B \u0432\u0438\u0434\u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0438 \u0432\u0438\u0434\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u043F\u043E\u043B\u043D\u043E\u0442\u0435\u043A\u0441\u0442\u043E\u0432\u043E\u0433\u043E\u043F\u043E\u0438\u0441\u043A\u0430 \u0432\u0438\u0434\u0440\u0430\u043C\u043A\u0438 \u0432\u0438\u0434\u0441\u0440\u0430\u0432\u043D\u0435\u043D\u0438\u044F \u0432\u0438\u0434\u0446\u0432\u0435\u0442\u0430 \u0432\u0438\u0434\u0447\u0438\u0441\u043B\u043E\u0432\u043E\u0433\u043E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0432\u0438\u0434\u0448\u0440\u0438\u0444\u0442\u0430 \u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u0430\u044F\u0434\u043B\u0438\u043D\u0430 \u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0439\u0437\u043D\u0430\u043A \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435byteordermark \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u043C\u0435\u0442\u0430\u0434\u0430\u043D\u043D\u044B\u0445\u043F\u043E\u043B\u043D\u043E\u0442\u0435\u043A\u0441\u0442\u043E\u0432\u043E\u0433\u043E\u043F\u043E\u0438\u0441\u043A\u0430 \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0439\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043A\u043B\u0430\u0432\u0438\u0448\u0430 \u043A\u043E\u0434\u0432\u043E\u0437\u0432\u0440\u0430\u0442\u0430\u0434\u0438\u0430\u043B\u043E\u0433\u0430 \u043A\u043E\u0434\u0438\u0440\u043E\u0432\u043A\u0430xbase \u043A\u043E\u0434\u0438\u0440\u043E\u0432\u043A\u0430\u0442\u0435\u043A\u0441\u0442\u0430 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u043E\u0438\u0441\u043A\u0430 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0438 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u0440\u0435\u0434\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0445\u0434\u0430\u043D\u043D\u044B\u0445 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u0440\u0438\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u043F\u0430\u043D\u0435\u043B\u0438\u0440\u0430\u0437\u0434\u0435\u043B\u043E\u0432 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430\u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u0440\u0435\u0436\u0438\u043C\u0434\u0438\u0430\u043B\u043E\u0433\u0430\u0432\u043E\u043F\u0440\u043E\u0441 \u0440\u0435\u0436\u0438\u043C\u0437\u0430\u043F\u0443\u0441\u043A\u0430\u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u043E\u0433\u043E\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0440\u0435\u0436\u0438\u043C\u043E\u043A\u0440\u0443\u0433\u043B\u0435\u043D\u0438\u044F \u0440\u0435\u0436\u0438\u043C\u043E\u0442\u043A\u0440\u044B\u0442\u0438\u044F\u0444\u043E\u0440\u043C\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0440\u0435\u0436\u0438\u043C\u043F\u043E\u043B\u043D\u043E\u0442\u0435\u043A\u0441\u0442\u043E\u0432\u043E\u0433\u043E\u043F\u043E\u0438\u0441\u043A\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442\u044C\u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u043E\u0433\u043E\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044F \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435\u0432\u043D\u0435\u0448\u043D\u0435\u0433\u043E\u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u044F\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438\u0431\u0430\u0437\u044B\u0434\u0430\u043D\u043D\u044B\u0445 \u0441\u043F\u043E\u0441\u043E\u0431\u0432\u044B\u0431\u043E\u0440\u0430\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u0430windows \u0441\u043F\u043E\u0441\u043E\u0431\u043A\u043E\u0434\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F\u0441\u0442\u0440\u043E\u043A\u0438 \u0441\u0442\u0430\u0442\u0443\u0441\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0442\u0438\u043F\u0432\u043D\u0435\u0448\u043D\u0435\u0439\u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u044B \u0442\u0438\u043F\u043F\u043B\u0430\u0442\u0444\u043E\u0440\u043C\u044B \u0442\u0438\u043F\u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u044F\u043A\u043B\u0430\u0432\u0438\u0448\u0438enter \u0442\u0438\u043F\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u0438\u043E\u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0438\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u044F\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438\u0431\u0430\u0437\u044B\u0434\u0430\u043D\u043D\u044B\u0445 \u0443\u0440\u043E\u0432\u0435\u043D\u044C\u0438\u0437\u043E\u043B\u044F\u0446\u0438\u0438\u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u0439 \u0445\u0435\u0448\u0444\u0443\u043D\u043A\u0446\u0438\u044F \u0447\u0430\u0441\u0442\u0438\u0434\u0430\u0442\u044B",ce=g+E+S+T+C+R+f+O+L+h+w+Y+v+B+oe+se+j+le+q+te+Z+W,J="com\u043E\u0431\u044A\u0435\u043A\u0442 ftp\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435 http\u0437\u0430\u043F\u0440\u043E\u0441 http\u0441\u0435\u0440\u0432\u0438\u0441\u043E\u0442\u0432\u0435\u0442 http\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435 ws\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u044F ws\u043F\u0440\u043E\u043A\u0441\u0438 xbase \u0430\u043D\u0430\u043B\u0438\u0437\u0434\u0430\u043D\u043D\u044B\u0445 \u0430\u043D\u043D\u043E\u0442\u0430\u0446\u0438\u044Fxs \u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u043A\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u0431\u0443\u0444\u0435\u0440\u0434\u0432\u043E\u0438\u0447\u043D\u044B\u0445\u0434\u0430\u043D\u043D\u044B\u0445 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435xs \u0432\u044B\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0433\u0435\u043D\u0435\u0440\u0430\u0442\u043E\u0440\u0441\u043B\u0443\u0447\u0430\u0439\u043D\u044B\u0445\u0447\u0438\u0441\u0435\u043B \u0433\u0435\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u0430\u044F\u0441\u0445\u0435\u043C\u0430 \u0433\u0435\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u0438\u0435\u043A\u043E\u043E\u0440\u0434\u0438\u043D\u0430\u0442\u044B \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u0430\u044F\u0441\u0445\u0435\u043C\u0430 \u0433\u0440\u0443\u043F\u043F\u0430\u043C\u043E\u0434\u0435\u043B\u0438xs \u0434\u0430\u043D\u043D\u044B\u0435\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0434\u0432\u043E\u0438\u0447\u043D\u044B\u0435\u0434\u0430\u043D\u043D\u044B\u0435 \u0434\u0435\u043D\u0434\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u0430 \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0430 \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0430\u0433\u0430\u043D\u0442\u0430 \u0434\u0438\u0430\u043B\u043E\u0433\u0432\u044B\u0431\u043E\u0440\u0430\u0444\u0430\u0439\u043B\u0430 \u0434\u0438\u0430\u043B\u043E\u0433\u0432\u044B\u0431\u043E\u0440\u0430\u0446\u0432\u0435\u0442\u0430 \u0434\u0438\u0430\u043B\u043E\u0433\u0432\u044B\u0431\u043E\u0440\u0430\u0448\u0440\u0438\u0444\u0442\u0430 \u0434\u0438\u0430\u043B\u043E\u0433\u0440\u0430\u0441\u043F\u0438\u0441\u0430\u043D\u0438\u044F\u0440\u0435\u0433\u043B\u0430\u043C\u0435\u043D\u0442\u043D\u043E\u0433\u043E\u0437\u0430\u0434\u0430\u043D\u0438\u044F \u0434\u0438\u0430\u043B\u043E\u0433\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F\u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u043E\u0433\u043E\u043F\u0435\u0440\u0438\u043E\u0434\u0430 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442dom \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442html \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0438\u044Fxs \u0434\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u043C\u043E\u0435\u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435 \u0437\u0430\u043F\u0438\u0441\u044Cdom \u0437\u0430\u043F\u0438\u0441\u044Cfastinfoset \u0437\u0430\u043F\u0438\u0441\u044Chtml \u0437\u0430\u043F\u0438\u0441\u044Cjson \u0437\u0430\u043F\u0438\u0441\u044Cxml \u0437\u0430\u043F\u0438\u0441\u044Czip\u0444\u0430\u0439\u043B\u0430 \u0437\u0430\u043F\u0438\u0441\u044C\u0434\u0430\u043D\u043D\u044B\u0445 \u0437\u0430\u043F\u0438\u0441\u044C\u0442\u0435\u043A\u0441\u0442\u0430 \u0437\u0430\u043F\u0438\u0441\u044C\u0443\u0437\u043B\u043E\u0432dom \u0437\u0430\u043F\u0440\u043E\u0441 \u0437\u0430\u0449\u0438\u0449\u0435\u043D\u043D\u043E\u0435\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435openssl \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u043F\u043E\u043B\u0435\u0439\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0438\u0437\u0432\u043B\u0435\u0447\u0435\u043D\u0438\u0435\u0442\u0435\u043A\u0441\u0442\u0430 \u0438\u043C\u043F\u043E\u0440\u0442xs \u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442\u043F\u043E\u0447\u0442\u0430 \u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442\u043F\u043E\u0447\u0442\u043E\u0432\u043E\u0435\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442\u043F\u043E\u0447\u0442\u043E\u0432\u044B\u0439\u043F\u0440\u043E\u0444\u0438\u043B\u044C \u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442\u043F\u0440\u043E\u043A\u0441\u0438 \u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F\u0434\u043B\u044F\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044Fxs \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430xs \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0441\u043E\u0431\u044B\u0442\u0438\u044F\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0445\u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0438\u0442\u0435\u0440\u0430\u0442\u043E\u0440\u0443\u0437\u043B\u043E\u0432dom \u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0430 \u043A\u0432\u0430\u043B\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u044B\u0434\u0430\u0442\u044B \u043A\u0432\u0430\u043B\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u044B\u0434\u0432\u043E\u0438\u0447\u043D\u044B\u0445\u0434\u0430\u043D\u043D\u044B\u0445 \u043A\u0432\u0430\u043B\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u044B\u0441\u0442\u0440\u043E\u043A\u0438 \u043A\u0432\u0430\u043B\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u044B\u0447\u0438\u0441\u043B\u0430 \u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u0449\u0438\u043A\u043C\u0430\u043A\u0435\u0442\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u0449\u0438\u043A\u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440\u043C\u0430\u043A\u0435\u0442\u0430\u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440\u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440\u0444\u043E\u0440\u043C\u0430\u0442\u043D\u043E\u0439\u0441\u0442\u0440\u043E\u043A\u0438 \u043B\u0438\u043D\u0438\u044F \u043C\u0430\u043A\u0435\u0442\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043C\u0430\u043A\u0435\u0442\u043E\u0431\u043B\u0430\u0441\u0442\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043C\u0430\u043A\u0435\u0442\u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043C\u0430\u0441\u043A\u0430xs \u043C\u0435\u043D\u0435\u0434\u0436\u0435\u0440\u043A\u0440\u0438\u043F\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u0438 \u043D\u0430\u0431\u043E\u0440\u0441\u0445\u0435\u043Cxml \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438\u0441\u0435\u0440\u0438\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438json \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430\u043A\u0430\u0440\u0442\u0438\u043D\u043E\u043A \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043E\u0431\u0445\u043E\u0434\u0434\u0435\u0440\u0435\u0432\u0430dom \u043E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u0438\u0435\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430xs \u043E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u0438\u0435\u043D\u043E\u0442\u0430\u0446\u0438\u0438xs \u043E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u0438\u0435\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430xs \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F\u0441\u043E\u0431\u044B\u0442\u0438\u044F\u0434\u043E\u0441\u0442\u0443\u043F\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F\u0441\u043E\u0431\u044B\u0442\u0438\u044F\u043E\u0442\u043A\u0430\u0437\u0432\u0434\u043E\u0441\u0442\u0443\u043F\u0435\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435\u043F\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043C\u043E\u0433\u043E\u0444\u0430\u0439\u043B\u0430 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435\u0442\u0438\u043F\u043E\u0432 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0435\u0433\u0440\u0443\u043F\u043F\u044B\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043E\u0432xs \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0435\u0433\u0440\u0443\u043F\u043F\u044B\u043C\u043E\u0434\u0435\u043B\u0438xs \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0435\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u044F\u0438\u0434\u0435\u043D\u0442\u0438\u0447\u043D\u043E\u0441\u0442\u0438xs \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0435\u043F\u0440\u043E\u0441\u0442\u043E\u0433\u043E\u0442\u0438\u043F\u0430xs \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0435\u0441\u043E\u0441\u0442\u0430\u0432\u043D\u043E\u0433\u043E\u0442\u0438\u043F\u0430xs \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0435\u0442\u0438\u043F\u0430\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430dom \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u044Fxpathxs \u043E\u0442\u0431\u043E\u0440\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043F\u0430\u043A\u0435\u0442\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u043C\u044B\u0445\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0432\u044B\u0431\u043E\u0440\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B\u0437\u0430\u043F\u0438\u0441\u0438json \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B\u0437\u0430\u043F\u0438\u0441\u0438xml \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B\u0447\u0442\u0435\u043D\u0438\u044Fxml \u043F\u0435\u0440\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0435xs \u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0449\u0438\u043A \u043F\u043E\u043B\u0435\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u043F\u043E\u043B\u0435\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043F\u043E\u0441\u0442\u0440\u043E\u0438\u0442\u0435\u043B\u044Cdom \u043F\u043E\u0441\u0442\u0440\u043E\u0438\u0442\u0435\u043B\u044C\u0437\u0430\u043F\u0440\u043E\u0441\u0430 \u043F\u043E\u0441\u0442\u0440\u043E\u0438\u0442\u0435\u043B\u044C\u043E\u0442\u0447\u0435\u0442\u0430 \u043F\u043E\u0441\u0442\u0440\u043E\u0438\u0442\u0435\u043B\u044C\u043E\u0442\u0447\u0435\u0442\u0430\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u043F\u043E\u0441\u0442\u0440\u043E\u0438\u0442\u0435\u043B\u044C\u0441\u0445\u0435\u043Cxml \u043F\u043E\u0442\u043E\u043A \u043F\u043E\u0442\u043E\u043A\u0432\u043F\u0430\u043C\u044F\u0442\u0438 \u043F\u043E\u0447\u0442\u0430 \u043F\u043E\u0447\u0442\u043E\u0432\u043E\u0435\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u0438\u0435xsl \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u043A\u043A\u0430\u043D\u043E\u043D\u0438\u0447\u0435\u0441\u043A\u043E\u043C\u0443xml \u043F\u0440\u043E\u0446\u0435\u0441\u0441\u043E\u0440\u0432\u044B\u0432\u043E\u0434\u0430\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445\u0432\u043A\u043E\u043B\u043B\u0435\u043A\u0446\u0438\u044E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439 \u043F\u0440\u043E\u0446\u0435\u0441\u0441\u043E\u0440\u0432\u044B\u0432\u043E\u0434\u0430\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445\u0432\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u044B\u0439\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442 \u043F\u0440\u043E\u0446\u0435\u0441\u0441\u043E\u0440\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0430\u0437\u044B\u043C\u0435\u043D\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u0438\u043C\u0435\u043Ddom \u0440\u0430\u043C\u043A\u0430 \u0440\u0430\u0441\u043F\u0438\u0441\u0430\u043D\u0438\u0435\u0440\u0435\u0433\u043B\u0430\u043C\u0435\u043D\u0442\u043D\u043E\u0433\u043E\u0437\u0430\u0434\u0430\u043D\u0438\u044F \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u043E\u0435\u0438\u043C\u044Fxml \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0447\u0442\u0435\u043D\u0438\u044F\u0434\u0430\u043D\u043D\u044B\u0445 \u0441\u0432\u043E\u0434\u043D\u0430\u044F\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0430 \u0441\u0432\u044F\u0437\u044C\u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430\u0432\u044B\u0431\u043E\u0440\u0430 \u0441\u0432\u044F\u0437\u044C\u043F\u043E\u0442\u0438\u043F\u0443 \u0441\u0432\u044F\u0437\u044C\u043F\u043E\u0442\u0438\u043F\u0443\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0441\u0435\u0440\u0438\u0430\u043B\u0438\u0437\u0430\u0442\u043E\u0440xdto \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043A\u043B\u0438\u0435\u043D\u0442\u0430windows \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043A\u043B\u0438\u0435\u043D\u0442\u0430\u0444\u0430\u0439\u043B \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043A\u0440\u0438\u043F\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u044B\u0443\u0434\u043E\u0441\u0442\u043E\u0432\u0435\u0440\u044F\u044E\u0449\u0438\u0445\u0446\u0435\u043D\u0442\u0440\u043E\u0432windows \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u044B\u0443\u0434\u043E\u0441\u0442\u043E\u0432\u0435\u0440\u044F\u044E\u0449\u0438\u0445\u0446\u0435\u043D\u0442\u0440\u043E\u0432\u0444\u0430\u0439\u043B \u0441\u0436\u0430\u0442\u0438\u0435\u0434\u0430\u043D\u043D\u044B\u0445 \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u0430\u044F\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E \u0441\u043E\u0447\u0435\u0442\u0430\u043D\u0438\u0435\u043A\u043B\u0430\u0432\u0438\u0448 \u0441\u0440\u0430\u0432\u043D\u0435\u043D\u0438\u0435\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439 \u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u0430\u044F\u0434\u0430\u0442\u0430\u043D\u0430\u0447\u0430\u043B\u0430 \u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u044B\u0439\u043F\u0435\u0440\u0438\u043E\u0434 \u0441\u0445\u0435\u043C\u0430xml \u0441\u0445\u0435\u043C\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0430\u0431\u043B\u0438\u0447\u043D\u044B\u0439\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442 \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u044B\u0439\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442 \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043C\u043E\u0435\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0442\u0438\u043F\u0434\u0430\u043D\u043D\u044B\u0445xml \u0443\u043D\u0438\u043A\u0430\u043B\u044C\u043D\u044B\u0439\u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u0444\u0430\u0431\u0440\u0438\u043A\u0430xdto \u0444\u0430\u0439\u043B \u0444\u0430\u0439\u043B\u043E\u0432\u044B\u0439\u043F\u043E\u0442\u043E\u043A \u0444\u0430\u0441\u0435\u0442\u0434\u043B\u0438\u043D\u044Bxs \u0444\u0430\u0441\u0435\u0442\u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u0430\u0440\u0430\u0437\u0440\u044F\u0434\u043E\u0432\u0434\u0440\u043E\u0431\u043D\u043E\u0439\u0447\u0430\u0441\u0442\u0438xs \u0444\u0430\u0441\u0435\u0442\u043C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0433\u043E\u0432\u043A\u043B\u044E\u0447\u0430\u044E\u0449\u0435\u0433\u043E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044Fxs \u0444\u0430\u0441\u0435\u0442\u043C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0433\u043E\u0438\u0441\u043A\u043B\u044E\u0447\u0430\u044E\u0449\u0435\u0433\u043E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044Fxs \u0444\u0430\u0441\u0435\u0442\u043C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0439\u0434\u043B\u0438\u043D\u044Bxs \u0444\u0430\u0441\u0435\u0442\u043C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0433\u043E\u0432\u043A\u043B\u044E\u0447\u0430\u044E\u0449\u0435\u0433\u043E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044Fxs \u0444\u0430\u0441\u0435\u0442\u043C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0433\u043E\u0438\u0441\u043A\u043B\u044E\u0447\u0430\u044E\u0449\u0435\u0433\u043E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044Fxs \u0444\u0430\u0441\u0435\u0442\u043C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0439\u0434\u043B\u0438\u043D\u044Bxs \u0444\u0430\u0441\u0435\u0442\u043E\u0431\u0440\u0430\u0437\u0446\u0430xs \u0444\u0430\u0441\u0435\u0442\u043E\u0431\u0449\u0435\u0433\u043E\u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u0430\u0440\u0430\u0437\u0440\u044F\u0434\u043E\u0432xs \u0444\u0430\u0441\u0435\u0442\u043F\u0435\u0440\u0435\u0447\u0438\u0441\u043B\u0435\u043D\u0438\u044Fxs \u0444\u0430\u0441\u0435\u0442\u043F\u0440\u043E\u0431\u0435\u043B\u044C\u043D\u044B\u0445\u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432xs \u0444\u0438\u043B\u044C\u0442\u0440\u0443\u0437\u043B\u043E\u0432dom \u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0430\u044F\u0441\u0442\u0440\u043E\u043A\u0430 \u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442 \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442xs \u0445\u0435\u0448\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435\u0434\u0430\u043D\u043D\u044B\u0445 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0446\u0432\u0435\u0442 \u0447\u0442\u0435\u043D\u0438\u0435fastinfoset \u0447\u0442\u0435\u043D\u0438\u0435html \u0447\u0442\u0435\u043D\u0438\u0435json \u0447\u0442\u0435\u043D\u0438\u0435xml \u0447\u0442\u0435\u043D\u0438\u0435zip\u0444\u0430\u0439\u043B\u0430 \u0447\u0442\u0435\u043D\u0438\u0435\u0434\u0430\u043D\u043D\u044B\u0445 \u0447\u0442\u0435\u043D\u0438\u0435\u0442\u0435\u043A\u0441\u0442\u0430 \u0447\u0442\u0435\u043D\u0438\u0435\u0443\u0437\u043B\u043E\u0432dom \u0448\u0440\u0438\u0444\u0442 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 ",ne="comsafearray \u0434\u0435\u0440\u0435\u0432\u043E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439 \u043C\u0430\u0441\u0441\u0438\u0432 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0441\u043F\u0438\u0441\u043E\u043A\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0430 \u0442\u0430\u0431\u043B\u0438\u0446\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439 \u0444\u0438\u043A\u0441\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0430\u044F\u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0430 \u0444\u0438\u043A\u0441\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0435\u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0444\u0438\u043A\u0441\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439\u043C\u0430\u0441\u0441\u0438\u0432 ",_e=J+ne,p="null \u0438\u0441\u0442\u0438\u043D\u0430 \u043B\u043E\u0436\u044C \u043D\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043E",b=e.inherit(e.NUMBER_MODE),A={className:"string",begin:'"|\\|',end:'"|$',contains:[{begin:'""'}]},x={begin:"'",end:"'",excludeBegin:!0,excludeEnd:!0,contains:[{className:"number",begin:"\\d{4}([\\.\\\\/:-]?\\d{2}){0,5}"}]},U=e.inherit(e.C_LINE_COMMENT_MODE),K={className:"meta",begin:"#|&",end:"$",keywords:{$pattern:t,"meta-keyword":r+o},contains:[U]},H={className:"symbol",begin:"~",end:";|:",excludeEnd:!0},M={className:"function",variants:[{begin:"\u043F\u0440\u043E\u0446\u0435\u0434\u0443\u0440\u0430|\u0444\u0443\u043D\u043A\u0446\u0438\u044F",end:"\\)",keywords:"\u043F\u0440\u043E\u0446\u0435\u0434\u0443\u0440\u0430 \u0444\u0443\u043D\u043A\u0446\u0438\u044F"},{begin:"\u043A\u043E\u043D\u0435\u0446\u043F\u0440\u043E\u0446\u0435\u0434\u0443\u0440\u044B|\u043A\u043E\u043D\u0435\u0446\u0444\u0443\u043D\u043A\u0446\u0438\u0438",keywords:"\u043A\u043E\u043D\u0435\u0446\u043F\u0440\u043E\u0446\u0435\u0434\u0443\u0440\u044B \u043A\u043E\u043D\u0435\u0446\u0444\u0443\u043D\u043A\u0446\u0438\u0438"}],contains:[{begin:"\\(",end:"\\)",endsParent:!0,contains:[{className:"params",begin:t,end:",",excludeEnd:!0,endsWithParent:!0,keywords:{$pattern:t,keyword:"\u0437\u043D\u0430\u0447",literal:p},contains:[b,A,x]},U]},e.inherit(e.TITLE_MODE,{begin:t})]};return{name:"1C:Enterprise",case_insensitive:!0,keywords:{$pattern:t,keyword:r,built_in:m,class:ce,type:_e,literal:p},contains:[K,M,U,H,b,A,x]}}var Pr=xr;function wr(e){return e?typeof e=="string"?e:e.source:null}function kr(...e){return e.map(n=>wr(n)).join("")}function Ur(e){const t={ruleDeclaration:/^[a-zA-Z][a-zA-Z0-9-]*/,unexpectedChars:/[!@#$^&',?+~`|:]/},n=["ALPHA","BIT","CHAR","CR","CRLF","CTL","DIGIT","DQUOTE","HEXDIG","HTAB","LF","LWSP","OCTET","SP","VCHAR","WSP"],a=e.COMMENT(/;/,/$/),r={className:"symbol",begin:/%b[0-1]+(-[0-1]+|(\.[0-1]+)+){0,1}/},i={className:"symbol",begin:/%d[0-9]+(-[0-9]+|(\.[0-9]+)+){0,1}/},s={className:"symbol",begin:/%x[0-9A-F]+(-[0-9A-F]+|(\.[0-9A-F]+)+){0,1}/},o={className:"symbol",begin:/%[si]/},l={className:"attribute",begin:kr(t.ruleDeclaration,/(?=\s*=)/)};return{name:"Augmented Backus-Naur Form",illegal:t.unexpectedChars,keywords:n,contains:[l,a,r,i,s,o,e.QUOTE_STRING_MODE,e.NUMBER_MODE]}}var Fr=Ur;function rn(e){return e?typeof e=="string"?e:e.source:null}function Br(...e){return e.map(n=>rn(n)).join("")}function Gr(...e){return"("+e.map(n=>rn(n)).join("|")+")"}function Yr(e){const t=["GET","POST","HEAD","PUT","DELETE","CONNECT","OPTIONS","PATCH","TRACE"];return{name:"Apache Access Log",contains:[{className:"number",begin:/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?\b/,relevance:5},{className:"number",begin:/\b\d+\b/,relevance:0},{className:"string",begin:Br(/"/,Gr(...t)),end:/"/,keywords:t,illegal:/\n/,relevance:5,contains:[{begin:/HTTP\/[12]\.\d'/,relevance:5}]},{className:"string",begin:/\[\d[^\]\n]{8,}\]/,illegal:/\n/,relevance:1},{className:"string",begin:/\[/,end:/\]/,illegal:/\n/,relevance:0},{className:"string",begin:/"Mozilla\/\d\.\d \(/,end:/"/,illegal:/\n/,relevance:3},{className:"string",begin:/"/,end:/"/,illegal:/\n/,relevance:0}]}}var Hr=Yr;function Vr(e){return e?typeof e=="string"?e:e.source:null}function qr(...e){return e.map(n=>Vr(n)).join("")}function $r(e){const t=/[a-zA-Z_$][a-zA-Z0-9_$]*/,n=/([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)/,a={className:"rest_arg",begin:/[.]{3}/,end:t,relevance:10};return{name:"ActionScript",aliases:["as"],keywords:{keyword:"as break case catch class const continue default delete do dynamic each else extends final finally for function get if implements import in include instanceof interface internal is namespace native new override package private protected public return set static super switch this throw try typeof use var void while with",literal:"true false null undefined"},contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,{className:"class",beginKeywords:"package",end:/\{/,contains:[e.TITLE_MODE]},{className:"class",beginKeywords:"class interface",end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.TITLE_MODE]},{className:"meta",beginKeywords:"import include",end:/;/,keywords:{"meta-keyword":"import include"}},{className:"function",beginKeywords:"function",end:/[{;]/,excludeEnd:!0,illegal:/\S/,contains:[e.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a]},{begin:qr(/:\s*/,n)}]},e.METHOD_GUARD],illegal:/#/}}var zr=$r;function Wr(e){const t="\\d(_|\\d)*",n="[eE][-+]?"+t,a=t+"(\\."+t+")?("+n+")?",r="\\w+",i=t+"#"+r+"(\\."+r+")?#("+n+")?",s="\\b("+i+"|"+a+")",o="[A-Za-z](_?[A-Za-z0-9.])*",l=`[]\\{\\}%#'"`,c=e.COMMENT("--","$"),_={begin:"\\s+:\\s+",end:"\\s*(:=|;|\\)|=>|$)",illegal:l,contains:[{beginKeywords:"loop for declare others",endsParent:!0},{className:"keyword",beginKeywords:"not null constant access function procedure in out aliased exception"},{className:"type",begin:o,endsParent:!0,relevance:0}]};return{name:"Ada",case_insensitive:!0,keywords:{keyword:"abort else new return abs elsif not reverse abstract end accept entry select access exception of separate aliased exit or some all others subtype and for out synchronized array function overriding at tagged generic package task begin goto pragma terminate body private then if procedure type case in protected constant interface is raise use declare range delay limited record when delta loop rem while digits renames with do mod requeue xor",literal:"True False"},contains:[c,{className:"string",begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{className:"string",begin:/'.'/},{className:"number",begin:s,relevance:0},{className:"symbol",begin:"'"+o},{className:"title",begin:"(\\bwith\\s+)?(\\bprivate\\s+)?\\bpackage\\s+(\\bbody\\s+)?",end:"(is|$)",keywords:"package body",excludeBegin:!0,excludeEnd:!0,illegal:l},{begin:"(\\b(with|overriding)\\s+)?\\b(function|procedure)\\s+",end:"(\\bis|\\bwith|\\brenames|\\)\\s*;)",keywords:"overriding function procedure with is renames return",returnBegin:!0,contains:[c,{className:"title",begin:"(\\bwith\\s+)?\\b(function|procedure)\\s+",end:"(\\(|\\s+|$)",excludeBegin:!0,excludeEnd:!0,illegal:l},_,{className:"type",begin:"\\breturn\\s+",end:"(\\s+|;|$)",keywords:"return",excludeBegin:!0,excludeEnd:!0,endsParent:!0,illegal:l}]},{className:"type",begin:"\\b(sub)?type\\s+",end:"\\s+",keywords:"type",excludeBegin:!0,illegal:l},_]}}var Kr=Wr;function Qr(e){var t={className:"built_in",begin:"\\b(void|bool|int|int8|int16|int32|int64|uint|uint8|uint16|uint32|uint64|string|ref|array|double|float|auto|dictionary)"},n={className:"symbol",begin:"[a-zA-Z0-9_]+@"},a={className:"keyword",begin:"<",end:">",contains:[t,n]};return t.contains=[a],n.contains=[a],{name:"AngelScript",aliases:["asc"],keywords:"for in|0 break continue while do|0 return if else case switch namespace is cast or and xor not get|0 in inout|10 out override set|0 private public const default|0 final shared external mixin|10 enum typedef funcdef this super import from interface abstract|0 try catch protected explicit property",illegal:"(^using\\s+[A-Za-z0-9_\\.]+;$|\\bfunction\\s*[^\\(])",contains:[{className:"string",begin:"'",end:"'",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE],relevance:0},{className:"string",begin:'"""',end:'"""'},{className:"string",begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE],relevance:0},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",begin:"^\\s*\\[",end:"\\]"},{beginKeywords:"interface namespace",end:/\{/,illegal:"[;.\\-]",contains:[{className:"symbol",begin:"[a-zA-Z0-9_]+"}]},{beginKeywords:"class",end:/\{/,illegal:"[;.\\-]",contains:[{className:"symbol",begin:"[a-zA-Z0-9_]+",contains:[{begin:"[:,]\\s*",contains:[{className:"symbol",begin:"[a-zA-Z0-9_]+"}]}]}]},t,n,{className:"literal",begin:"\\b(null|true|false)"},{className:"number",relevance:0,begin:"(-?)(\\b0[xXbBoOdD][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?f?|\\.\\d+f?)([eE][-+]?\\d+f?)?)"}]}}var Xr=Qr;function Zr(e){const t={className:"number",begin:/[$%]\d+/},n={className:"number",begin:/\d+/},a={className:"number",begin:/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?/},r={className:"number",begin:/:\d{1,5}/};return{name:"Apache config",aliases:["apacheconf"],case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"section",begin:/<\/?/,end:/>/,contains:[a,r,e.inherit(e.QUOTE_STRING_MODE,{relevance:0})]},{className:"attribute",begin:/\w+/,relevance:0,keywords:{nomarkup:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"},starts:{end:/$/,relevance:0,keywords:{literal:"on off all deny allow"},contains:[{className:"meta",begin:/\s\[/,end:/\]$/},{className:"variable",begin:/[\$%]\{/,end:/\}/,contains:["self",t]},a,n,e.QUOTE_STRING_MODE]}}],illegal:/\S/}}var Jr=Zr;function on(e){return e?typeof e=="string"?e:e.source:null}function Ut(...e){return e.map(n=>on(n)).join("")}function Ft(...e){return"("+e.map(n=>on(n)).join("|")+")"}function jr(e){const t=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),n={className:"params",begin:/\(/,end:/\)/,contains:["self",e.C_NUMBER_MODE,t]},a=e.COMMENT(/--/,/$/),r=e.COMMENT(/\(\*/,/\*\)/,{contains:["self",a]}),i=[a,r,e.HASH_COMMENT_MODE],s=[/apart from/,/aside from/,/instead of/,/out of/,/greater than/,/isn't|(doesn't|does not) (equal|come before|come after|contain)/,/(greater|less) than( or equal)?/,/(starts?|ends|begins?) with/,/contained by/,/comes (before|after)/,/a (ref|reference)/,/POSIX (file|path)/,/(date|time) string/,/quoted form/],o=[/clipboard info/,/the clipboard/,/info for/,/list (disks|folder)/,/mount volume/,/path to/,/(close|open for) access/,/(get|set) eof/,/current date/,/do shell script/,/get volume settings/,/random number/,/set volume/,/system attribute/,/system info/,/time to GMT/,/(load|run|store) script/,/scripting components/,/ASCII (character|number)/,/localized string/,/choose (application|color|file|file name|folder|from list|remote application|URL)/,/display (alert|dialog)/];return{name:"AppleScript",aliases:["osascript"],keywords:{keyword:"about above after against and around as at back before beginning behind below beneath beside between but by considering contain contains continue copy div does eighth else end equal equals error every exit fifth first for fourth from front get given global if ignoring in into is it its last local me middle mod my ninth not of on onto or over prop property put ref reference repeat returning script second set seventh since sixth some tell tenth that the|0 then third through thru timeout times to transaction try until where while whose with without",literal:"AppleScript false linefeed return pi quote result space tab true",built_in:"alias application boolean class constant date file integer list number real record string text activate beep count delay launch log offset read round run say summarize write character characters contents day frontmost id item length month name paragraph paragraphs rest reverse running time version weekday word words year"},contains:[t,e.C_NUMBER_MODE,{className:"built_in",begin:Ut(/\b/,Ft(...o),/\b/)},{className:"built_in",begin:/^\s*return\b/},{className:"literal",begin:/\b(text item delimiters|current application|missing value)\b/},{className:"keyword",begin:Ut(/\b/,Ft(...s),/\b/)},{beginKeywords:"on",illegal:/[${=;\n]/,contains:[e.UNDERSCORE_TITLE_MODE,n]},...i],illegal:/\/\/|->|=>|\[\[/}}var ei=jr;function ti(e){const t="[A-Za-z_][0-9A-Za-z_]*",n={keyword:"if for while var new function do return void else break",literal:"BackSlash DoubleQuote false ForwardSlash Infinity NaN NewLine null PI SingleQuote Tab TextFormatting true undefined",built_in:"Abs Acos Angle Attachments Area AreaGeodetic Asin Atan Atan2 Average Bearing Boolean Buffer BufferGeodetic Ceil Centroid Clip Console Constrain Contains Cos Count Crosses Cut Date DateAdd DateDiff Day Decode DefaultValue Dictionary Difference Disjoint Distance DistanceGeodetic Distinct DomainCode DomainName Equals Exp Extent Feature FeatureSet FeatureSetByAssociation FeatureSetById FeatureSetByPortalItem FeatureSetByRelationshipName FeatureSetByTitle FeatureSetByUrl Filter First Floor Geometry GroupBy Guid HasKey Hour IIf IndexOf Intersection Intersects IsEmpty IsNan IsSelfIntersecting Length LengthGeodetic Log Max Mean Millisecond Min Minute Month MultiPartToSinglePart Multipoint NextSequenceValue Now Number OrderBy Overlaps Point Polygon Polyline Portal Pow Random Relate Reverse RingIsClockWise Round Second SetGeometry Sin Sort Sqrt Stdev Sum SymmetricDifference Tan Text Timestamp Today ToLocal Top Touches ToUTC TrackCurrentTime TrackGeometryWindow TrackIndex TrackStartTime TrackWindow TypeOf Union UrlEncode Variance Weekday When Within Year "},a={className:"symbol",begin:"\\$[datastore|feature|layer|map|measure|sourcefeature|sourcelayer|targetfeature|targetlayer|value|view]+"},r={className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:e.C_NUMBER_RE}],relevance:0},i={className:"subst",begin:"\\$\\{",end:"\\}",keywords:n,contains:[]},s={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,i]};i.contains=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,s,r,e.REGEXP_MODE];const o=i.contains.concat([e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]);return{name:"ArcGIS Arcade",keywords:n,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,s,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,r,{begin:/[{,]\s*/,relevance:0,contains:[{begin:t+"\\s*:",returnBegin:!0,relevance:0,contains:[{className:"attr",begin:t,relevance:0}]}]},{begin:"("+e.RE_STARTERS_RE+"|\\b(return)\\b)\\s*",keywords:"return",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.REGEXP_MODE,{className:"function",begin:"(\\(.*?\\)|"+t+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:t},{begin:/\(\s*\)/},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,contains:o}]}]}],relevance:0},{className:"function",beginKeywords:"function",end:/\{/,excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:t}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:o}],illegal:/\[|%/},{begin:/\$[(.]/}],illegal:/#(?!!)/}}var ni=ti;function ai(e){return e?typeof e=="string"?e:e.source:null}function ri(e){return bt("(?=",e,")")}function Le(e){return bt("(",e,")?")}function bt(...e){return e.map(n=>ai(n)).join("")}function ii(e){const t=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),n="decltype\\(auto\\)",a="[a-zA-Z_]\\w*::",r="<[^<>]+>",i="("+n+"|"+Le(a)+"[a-zA-Z_]\\w*"+Le(r)+")",s={className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},o="\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)",l={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+o+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},c={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},_={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{"meta-keyword":"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(l,{className:"meta-string"}),{className:"meta-string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},u={className:"title",begin:Le(a)+e.IDENT_RE,relevance:0},m=Le(a)+e.IDENT_RE+"\\s*\\(",E={keyword:"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_t short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq",built_in:"_Bool _Complex _Imaginary",_relevance_hints:["asin","atan2","atan","calloc","ceil","cosh","cos","exit","exp","fabs","floor","fmod","fprintf","fputs","free","frexp","auto_ptr","deque","list","queue","stack","vector","map","set","pair","bitset","multiset","multimap","unordered_set","fscanf","future","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","tolower","toupper","labs","ldexp","log10","log","malloc","realloc","memchr","memcmp","memcpy","memset","modf","pow","printf","putchar","puts","scanf","sinh","sin","snprintf","sprintf","sqrt","sscanf","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","tanh","tan","unordered_map","unordered_multiset","unordered_multimap","priority_queue","make_pair","array","shared_ptr","abort","terminate","abs","acos","vfprintf","vprintf","vsprintf","endl","initializer_list","unique_ptr","complex","imaginary","std","string","wstring","cin","cout","cerr","clog","stdin","stdout","stderr","stringstream","istringstream","ostringstream"],literal:"true false nullptr NULL"},S={className:"function.dispatch",relevance:0,keywords:E,begin:bt(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!while)/,e.IDENT_RE,ri(/\s*\(/))},T=[S,_,s,t,e.C_BLOCK_COMMENT_MODE,c,l],C={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:E,contains:T.concat([{begin:/\(/,end:/\)/,keywords:E,contains:T.concat(["self"]),relevance:0}]),relevance:0},R={className:"function",begin:"("+i+"[\\*&\\s]+)+"+m,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:E,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:n,keywords:E,relevance:0},{begin:m,returnBegin:!0,contains:[u],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[l,c]},{className:"params",begin:/\(/,end:/\)/,keywords:E,relevance:0,contains:[t,e.C_BLOCK_COMMENT_MODE,l,c,s,{begin:/\(/,end:/\)/,keywords:E,relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,l,c,s]}]},s,t,e.C_BLOCK_COMMENT_MODE,_]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:E,illegal:"",keywords:E,contains:["self",s]},{begin:e.IDENT_RE+"::",keywords:E},{className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:_,strings:l,keywords:E}}}function oi(e){const t={keyword:"boolean byte word String",built_in:"KeyboardController MouseController SoftwareSerial EthernetServer EthernetClient LiquidCrystal RobotControl GSMVoiceCall EthernetUDP EsploraTFT HttpClient RobotMotor WiFiClient GSMScanner FileSystem Scheduler GSMServer YunClient YunServer IPAddress GSMClient GSMModem Keyboard Ethernet Console GSMBand Esplora Stepper Process WiFiUDP GSM_SMS Mailbox USBHost Firmata PImage Client Server GSMPIN FileIO Bridge Serial EEPROM Stream Mouse Audio Servo File Task GPRS WiFi Wire TFT GSM SPI SD ",_:"setup loop runShellCommandAsynchronously analogWriteResolution retrieveCallingNumber printFirmwareVersion analogReadResolution sendDigitalPortPair noListenOnLocalhost readJoystickButton setFirmwareVersion readJoystickSwitch scrollDisplayRight getVoiceCallStatus scrollDisplayLeft writeMicroseconds delayMicroseconds beginTransmission getSignalStrength runAsynchronously getAsynchronously listenOnLocalhost getCurrentCarrier readAccelerometer messageAvailable sendDigitalPorts lineFollowConfig countryNameWrite runShellCommand readStringUntil rewindDirectory readTemperature setClockDivider readLightSensor endTransmission analogReference detachInterrupt countryNameRead attachInterrupt encryptionType readBytesUntil robotNameWrite readMicrophone robotNameRead cityNameWrite userNameWrite readJoystickY readJoystickX mouseReleased openNextFile scanNetworks noInterrupts digitalWrite beginSpeaker mousePressed isActionDone mouseDragged displayLogos noAutoscroll addParameter remoteNumber getModifiers keyboardRead userNameRead waitContinue processInput parseCommand printVersion readNetworks writeMessage blinkVersion cityNameRead readMessage setDataMode parsePacket isListening setBitOrder beginPacket isDirectory motorsWrite drawCompass digitalRead clearScreen serialEvent rightToLeft setTextSize leftToRight requestFrom keyReleased compassRead analogWrite interrupts WiFiServer disconnect playMelody parseFloat autoscroll getPINUsed setPINUsed setTimeout sendAnalog readSlider analogRead beginWrite createChar motorsStop keyPressed tempoWrite readButton subnetMask debugPrint macAddress writeGreen randomSeed attachGPRS readString sendString remotePort releaseAll mouseMoved background getXChange getYChange answerCall getResult voiceCall endPacket constrain getSocket writeJSON getButton available connected findUntil readBytes exitValue readGreen writeBlue startLoop IPAddress isPressed sendSysex pauseMode gatewayIP setCursor getOemKey tuneWrite noDisplay loadImage switchPIN onRequest onReceive changePIN playFile noBuffer parseInt overflow checkPIN knobRead beginTFT bitClear updateIR bitWrite position writeRGB highByte writeRed setSpeed readBlue noStroke remoteIP transfer shutdown hangCall beginSMS endWrite attached maintain noCursor checkReg checkPUK shiftOut isValid shiftIn pulseIn connect println localIP pinMode getIMEI display noBlink process getBand running beginSD drawBMP lowByte setBand release bitRead prepare pointTo readRed setMode noFill remove listen stroke detach attach noTone exists buffer height bitSet circle config cursor random IRread setDNS endSMS getKey micros millis begin print write ready flush width isPIN blink clear press mkdir rmdir close point yield image BSSID click delay read text move peek beep rect line open seek fill size turn stop home find step tone sqrt RSSI SSID end bit tan cos sin pow map abs max min get run put",literal:"DIGITAL_MESSAGE FIRMATA_STRING ANALOG_MESSAGE REPORT_DIGITAL REPORT_ANALOG INPUT_PULLUP SET_PIN_MODE INTERNAL2V56 SYSTEM_RESET LED_BUILTIN INTERNAL1V1 SYSEX_START INTERNAL EXTERNAL DEFAULT OUTPUT INPUT HIGH LOW"},n=ii(e),a=n.keywords;return a.keyword+=" "+t.keyword,a.literal+=" "+t.literal,a.built_in+=" "+t.built_in,a._+=" "+t._,n.name="Arduino",n.aliases=["ino"],n.supersetOf="cpp",n}var si=oi;function li(e){const t={variants:[e.COMMENT("^[ \\t]*(?=#)","$",{relevance:0,excludeBegin:!0}),e.COMMENT("[;@]","$",{relevance:0}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]};return{name:"ARM Assembly",case_insensitive:!0,aliases:["arm"],keywords:{$pattern:"\\.?"+e.IDENT_RE,meta:".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ",built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 pc lr sp ip sl sb fp a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 d16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 {PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @"},contains:[{className:"keyword",begin:"\\b(adc|(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|wfe|wfi|yield)(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?[sptrx]?(?=\\s)"},t,e.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",relevance:0},{className:"title",begin:"\\|",end:"\\|",illegal:"\\n",relevance:0},{className:"number",variants:[{begin:"[#$=]?0x[0-9a-f]+"},{begin:"[#$=]?0b[01]+"},{begin:"[#$=]\\d+"},{begin:"\\b\\d+"}],relevance:0},{className:"symbol",variants:[{begin:"^[ \\t]*[a-z_\\.\\$][a-z0-9_\\.\\$]+:"},{begin:"^[a-z_\\.\\$][a-z0-9_\\.\\$]+"},{begin:"[=#]\\w+"}],relevance:0}]}}var ci=li;function sn(e){return e?typeof e=="string"?e:e.source:null}function Bt(e){return de("(?=",e,")")}function _i(e){return de("(",e,")?")}function de(...e){return e.map(n=>sn(n)).join("")}function di(...e){return"("+e.map(n=>sn(n)).join("|")+")"}function ui(e){const t=de(/[A-Z_]/,_i(/[A-Z0-9_.-]*:/),/[A-Z0-9_.-]*/),n=/[A-Za-z0-9._:-]+/,a={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},r={begin:/\s/,contains:[{className:"meta-keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},i=e.inherit(r,{begin:/\(/,end:/\)/}),s=e.inherit(e.APOS_STRING_MODE,{className:"meta-string"}),o=e.inherit(e.QUOTE_STRING_MODE,{className:"meta-string"}),l={endsWithParent:!0,illegal:/`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,contains:[{className:"meta",begin://,relevance:10,contains:[r,o,s,i,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[r,i,o,s]}]}]},e.COMMENT(//,{relevance:10}),{begin://,relevance:10},a,{className:"meta",begin:/<\?xml/,end:/\?>/,relevance:10},{className:"tag",begin:/)/,end:/>/,keywords:{name:"style"},contains:[l],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/)/,end:/>/,keywords:{name:"script"},contains:[l],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:de(//,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:t,relevance:0,starts:l}]},{className:"tag",begin:de(/<\//,Bt(de(t,/>/))),contains:[{className:"name",begin:t,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}var mi=ui;function Ei(e){return e?typeof e=="string"?e:e.source:null}function Gt(...e){return e.map(n=>Ei(n)).join("")}function pi(e){const t={begin:"^'{3,}[ \\t]*$",relevance:10},n=[{begin:/\\[*_`]/},{begin:/\\\\\*{2}[^\n]*?\*{2}/},{begin:/\\\\_{2}[^\n]*_{2}/},{begin:/\\\\`{2}[^\n]*`{2}/},{begin:/[:;}][*_`](?![*_`])/}],a=[{className:"strong",begin:/\*{2}([^\n]+?)\*{2}/},{className:"strong",begin:Gt(/\*\*/,/((\*(?!\*)|\\[^\n]|[^*\n\\])+\n)+/,/(\*(?!\*)|\\[^\n]|[^*\n\\])*/,/\*\*/),relevance:0},{className:"strong",begin:/\B\*(\S|\S[^\n]*?\S)\*(?!\w)/},{className:"strong",begin:/\*[^\s]([^\n]+\n)+([^\n]+)\*/}],r=[{className:"emphasis",begin:/_{2}([^\n]+?)_{2}/},{className:"emphasis",begin:Gt(/__/,/((_(?!_)|\\[^\n]|[^_\n\\])+\n)+/,/(_(?!_)|\\[^\n]|[^_\n\\])*/,/__/),relevance:0},{className:"emphasis",begin:/\b_(\S|\S[^\n]*?\S)_(?!\w)/},{className:"emphasis",begin:/_[^\s]([^\n]+\n)+([^\n]+)_/},{className:"emphasis",begin:"\\B'(?!['\\s])",end:"(\\n{2}|')",contains:[{begin:"\\\\'\\w",relevance:0}],relevance:0}],i={className:"symbol",begin:"^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\s+",relevance:10},s={className:"bullet",begin:"^(\\*+|-+|\\.+|[^\\n]+?::)\\s+"};return{name:"AsciiDoc",aliases:["adoc"],contains:[e.COMMENT("^/{4,}\\n","\\n/{4,}$",{relevance:10}),e.COMMENT("^//","$",{relevance:0}),{className:"title",begin:"^\\.\\w.*$"},{begin:"^[=\\*]{4,}\\n",end:"\\n^[=\\*]{4,}$",relevance:10},{className:"section",relevance:10,variants:[{begin:"^(={1,6})[ ].+?([ ]\\1)?$"},{begin:"^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$"}]},{className:"meta",begin:"^:.+?:",end:"\\s",excludeEnd:!0,relevance:10},{className:"meta",begin:"^\\[.+?\\]$",relevance:0},{className:"quote",begin:"^_{4,}\\n",end:"\\n_{4,}$",relevance:10},{className:"code",begin:"^[\\-\\.]{4,}\\n",end:"\\n[\\-\\.]{4,}$",relevance:10},{begin:"^\\+{4,}\\n",end:"\\n\\+{4,}$",contains:[{begin:"<",end:">",subLanguage:"xml",relevance:0}],relevance:10},s,i,...n,...a,...r,{className:"string",variants:[{begin:"``.+?''"},{begin:"`.+?'"}]},{className:"code",begin:/`{2}/,end:/(\n{2}|`{2})/},{className:"code",begin:"(`.+?`|\\+.+?\\+)",relevance:0},{className:"code",begin:"^[ \\t]",end:"$",relevance:0},t,{begin:"(link:)?(http|https|ftp|file|irc|image:?):\\S+?\\[[^[]*?\\]",returnBegin:!0,contains:[{begin:"(link|image:?):",relevance:0},{className:"link",begin:"\\w",end:"[^\\[]+",relevance:0},{className:"string",begin:"\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0,relevance:0}],relevance:10}]}}var gi=pi;function Si(e){return e?typeof e=="string"?e:e.source:null}function et(...e){return e.map(n=>Si(n)).join("")}function Ti(e){const t="false synchronized int abstract float private char boolean static null if const for true while long throw strictfp finally protected import native final return void enum else extends implements break transient new catch instanceof byte super volatile case assert short package default double public try this switch continue throws privileged aspectOf adviceexecution proceed cflowbelow cflow initialization preinitialization staticinitialization withincode target within execution getWithinTypeName handler thisJoinPoint thisJoinPointStaticPart thisEnclosingJoinPointStaticPart declare parents warning error soft precedence thisAspectInstance",n="get set args call";return{name:"AspectJ",keywords:t,illegal:/<\/|#/,contains:[e.COMMENT(/\/\*\*/,/\*\//,{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:/@[A-Za-z]+/}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"class",beginKeywords:"aspect",end:/[{;=]/,excludeEnd:!0,illegal:/[:;"\[\]]/,contains:[{beginKeywords:"extends implements pertypewithin perthis pertarget percflowbelow percflow issingleton"},e.UNDERSCORE_TITLE_MODE,{begin:/\([^\)]*/,end:/[)]+/,keywords:t+" "+n,excludeEnd:!1}]},{className:"class",beginKeywords:"class interface",end:/[{;=]/,excludeEnd:!0,relevance:0,keywords:"class interface",illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"pointcut after before around throwing returning",end:/[)]/,excludeEnd:!1,illegal:/["\[\]]/,contains:[{begin:et(e.UNDERSCORE_IDENT_RE,/\s*\(/),returnBegin:!0,contains:[e.UNDERSCORE_TITLE_MODE]}]},{begin:/[:]/,returnBegin:!0,end:/[{;]/,relevance:0,excludeEnd:!1,keywords:t,illegal:/["\[\]]/,contains:[{begin:et(e.UNDERSCORE_IDENT_RE,/\s*\(/),keywords:t+" "+n,relevance:0},e.QUOTE_STRING_MODE]},{beginKeywords:"new throw",relevance:0},{className:"function",begin:/\w+ +\w+(\.\w+)?\s*\([^\)]*\)\s*((throws)[\w\s,]+)?[\{;]/,returnBegin:!0,end:/[{;=]/,keywords:t,excludeEnd:!0,contains:[{begin:et(e.UNDERSCORE_IDENT_RE,/\s*\(/),returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,relevance:0,keywords:t,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_NUMBER_MODE,{className:"meta",begin:/@[A-Za-z]+/}]}}var bi=Ti;function Ri(e){const t={begin:"`[\\s\\S]"};return{name:"AutoHotkey",case_insensitive:!0,aliases:["ahk"],keywords:{keyword:"Break Continue Critical Exit ExitApp Gosub Goto New OnExit Pause return SetBatchLines SetTimer Suspend Thread Throw Until ahk_id ahk_class ahk_pid ahk_exe ahk_group",literal:"true false NOT AND OR",built_in:"ComSpec Clipboard ClipboardAll ErrorLevel"},contains:[t,e.inherit(e.QUOTE_STRING_MODE,{contains:[t]}),e.COMMENT(";","$",{relevance:0}),e.C_BLOCK_COMMENT_MODE,{className:"number",begin:e.NUMBER_RE,relevance:0},{className:"variable",begin:"%[a-zA-Z0-9#_$@]+%"},{className:"built_in",begin:"^\\s*\\w+\\s*(,|%)"},{className:"title",variants:[{begin:'^[^\\n";]+::(?!=)'},{begin:'^[^\\n";]+:(?!=)',relevance:0}]},{className:"meta",begin:"^\\s*#\\w+",end:"$",relevance:0},{className:"built_in",begin:"A_[a-zA-Z0-9]+"},{begin:",\\s*,"}]}}var Ni=Ri;function Ci(e){const t="ByRef Case Const ContinueCase ContinueLoop Dim Do Else ElseIf EndFunc EndIf EndSelect EndSwitch EndWith Enum Exit ExitLoop For Func Global If In Local Next ReDim Return Select Static Step Switch Then To Until Volatile WEnd While With",n=["EndRegion","forcedef","forceref","ignorefunc","include","include-once","NoTrayIcon","OnAutoItStartRegister","pragma","Region","RequireAdmin","Tidy_Off","Tidy_On","Tidy_Parameters"],a="True False And Null Not Or Default",r="Abs ACos AdlibRegister AdlibUnRegister Asc AscW ASin Assign ATan AutoItSetOption AutoItWinGetTitle AutoItWinSetTitle Beep Binary BinaryLen BinaryMid BinaryToString BitAND BitNOT BitOR BitRotate BitShift BitXOR BlockInput Break Call CDTray Ceiling Chr ChrW ClipGet ClipPut ConsoleRead ConsoleWrite ConsoleWriteError ControlClick ControlCommand ControlDisable ControlEnable ControlFocus ControlGetFocus ControlGetHandle ControlGetPos ControlGetText ControlHide ControlListView ControlMove ControlSend ControlSetText ControlShow ControlTreeView Cos Dec DirCopy DirCreate DirGetSize DirMove DirRemove DllCall DllCallAddress DllCallbackFree DllCallbackGetPtr DllCallbackRegister DllClose DllOpen DllStructCreate DllStructGetData DllStructGetPtr DllStructGetSize DllStructSetData DriveGetDrive DriveGetFileSystem DriveGetLabel DriveGetSerial DriveGetType DriveMapAdd DriveMapDel DriveMapGet DriveSetLabel DriveSpaceFree DriveSpaceTotal DriveStatus EnvGet EnvSet EnvUpdate Eval Execute Exp FileChangeDir FileClose FileCopy FileCreateNTFSLink FileCreateShortcut FileDelete FileExists FileFindFirstFile FileFindNextFile FileFlush FileGetAttrib FileGetEncoding FileGetLongName FileGetPos FileGetShortcut FileGetShortName FileGetSize FileGetTime FileGetVersion FileInstall FileMove FileOpen FileOpenDialog FileRead FileReadLine FileReadToArray FileRecycle FileRecycleEmpty FileSaveDialog FileSelectFolder FileSetAttrib FileSetEnd FileSetPos FileSetTime FileWrite FileWriteLine Floor FtpSetProxy FuncName GUICreate GUICtrlCreateAvi GUICtrlCreateButton GUICtrlCreateCheckbox GUICtrlCreateCombo GUICtrlCreateContextMenu GUICtrlCreateDate GUICtrlCreateDummy GUICtrlCreateEdit GUICtrlCreateGraphic GUICtrlCreateGroup GUICtrlCreateIcon GUICtrlCreateInput GUICtrlCreateLabel GUICtrlCreateList GUICtrlCreateListView GUICtrlCreateListViewItem GUICtrlCreateMenu GUICtrlCreateMenuItem GUICtrlCreateMonthCal GUICtrlCreateObj GUICtrlCreatePic GUICtrlCreateProgress GUICtrlCreateRadio GUICtrlCreateSlider GUICtrlCreateTab GUICtrlCreateTabItem GUICtrlCreateTreeView GUICtrlCreateTreeViewItem GUICtrlCreateUpdown GUICtrlDelete GUICtrlGetHandle GUICtrlGetState GUICtrlRead GUICtrlRecvMsg GUICtrlRegisterListViewSort GUICtrlSendMsg GUICtrlSendToDummy GUICtrlSetBkColor GUICtrlSetColor GUICtrlSetCursor GUICtrlSetData GUICtrlSetDefBkColor GUICtrlSetDefColor GUICtrlSetFont GUICtrlSetGraphic GUICtrlSetImage GUICtrlSetLimit GUICtrlSetOnEvent GUICtrlSetPos GUICtrlSetResizing GUICtrlSetState GUICtrlSetStyle GUICtrlSetTip GUIDelete GUIGetCursorInfo GUIGetMsg GUIGetStyle GUIRegisterMsg GUISetAccelerators GUISetBkColor GUISetCoord GUISetCursor GUISetFont GUISetHelp GUISetIcon GUISetOnEvent GUISetState GUISetStyle GUIStartGroup GUISwitch Hex HotKeySet HttpSetProxy HttpSetUserAgent HWnd InetClose InetGet InetGetInfo InetGetSize InetRead IniDelete IniRead IniReadSection IniReadSectionNames IniRenameSection IniWrite IniWriteSection InputBox Int IsAdmin IsArray IsBinary IsBool IsDeclared IsDllStruct IsFloat IsFunc IsHWnd IsInt IsKeyword IsNumber IsObj IsPtr IsString Log MemGetStats Mod MouseClick MouseClickDrag MouseDown MouseGetCursor MouseGetPos MouseMove MouseUp MouseWheel MsgBox Number ObjCreate ObjCreateInterface ObjEvent ObjGet ObjName OnAutoItExitRegister OnAutoItExitUnRegister Ping PixelChecksum PixelGetColor PixelSearch ProcessClose ProcessExists ProcessGetStats ProcessList ProcessSetPriority ProcessWait ProcessWaitClose ProgressOff ProgressOn ProgressSet Ptr Random RegDelete RegEnumKey RegEnumVal RegRead RegWrite Round Run RunAs RunAsWait RunWait Send SendKeepActive SetError SetExtended ShellExecute ShellExecuteWait Shutdown Sin Sleep SoundPlay SoundSetWaveVolume SplashImageOn SplashOff SplashTextOn Sqrt SRandom StatusbarGetText StderrRead StdinWrite StdioClose StdoutRead String StringAddCR StringCompare StringFormat StringFromASCIIArray StringInStr StringIsAlNum StringIsAlpha StringIsASCII StringIsDigit StringIsFloat StringIsInt StringIsLower StringIsSpace StringIsUpper StringIsXDigit StringLeft StringLen StringLower StringMid StringRegExp StringRegExpReplace StringReplace StringReverse StringRight StringSplit StringStripCR StringStripWS StringToASCIIArray StringToBinary StringTrimLeft StringTrimRight StringUpper Tan TCPAccept TCPCloseSocket TCPConnect TCPListen TCPNameToIP TCPRecv TCPSend TCPShutdown, UDPShutdown TCPStartup, UDPStartup TimerDiff TimerInit ToolTip TrayCreateItem TrayCreateMenu TrayGetMsg TrayItemDelete TrayItemGetHandle TrayItemGetState TrayItemGetText TrayItemSetOnEvent TrayItemSetState TrayItemSetText TraySetClick TraySetIcon TraySetOnEvent TraySetPauseIcon TraySetState TraySetToolTip TrayTip UBound UDPBind UDPCloseSocket UDPOpen UDPRecv UDPSend VarGetType WinActivate WinActive WinClose WinExists WinFlash WinGetCaretPos WinGetClassList WinGetClientSize WinGetHandle WinGetPos WinGetProcess WinGetState WinGetText WinGetTitle WinKill WinList WinMenuSelectItem WinMinimizeAll WinMinimizeAllUndo WinMove WinSetOnTop WinSetState WinSetTitle WinSetTrans WinWait WinWaitActive WinWaitClose WinWaitNotActive",i={variants:[e.COMMENT(";","$",{relevance:0}),e.COMMENT("#cs","#ce"),e.COMMENT("#comments-start","#comments-end")]},s={begin:"\\$[A-z0-9_]+"},o={className:"string",variants:[{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]},l={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]},c={className:"meta",begin:"#",end:"$",keywords:{"meta-keyword":n},contains:[{begin:/\\\n/,relevance:0},{beginKeywords:"include",keywords:{"meta-keyword":"include"},end:"$",contains:[o,{className:"meta-string",variants:[{begin:"<",end:">"},{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]}]},o,i]},_={className:"symbol",begin:"@[A-z0-9_]+"},u={className:"function",beginKeywords:"Func",end:"$",illegal:"\\$|\\[|%",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:[s,o,l]}]};return{name:"AutoIt",case_insensitive:!0,illegal:/\/\*/,keywords:{keyword:t,built_in:r,literal:a},contains:[i,s,o,l,c,_,u]}}var fi=Ci;function Oi(e){return{name:"AVR Assembly",case_insensitive:!0,keywords:{$pattern:"\\.?"+e.IDENT_RE,keyword:"adc add adiw and andi asr bclr bld brbc brbs brcc brcs break breq brge brhc brhs brid brie brlo brlt brmi brne brpl brsh brtc brts brvc brvs bset bst call cbi cbr clc clh cli cln clr cls clt clv clz com cp cpc cpi cpse dec eicall eijmp elpm eor fmul fmuls fmulsu icall ijmp in inc jmp ld ldd ldi lds lpm lsl lsr mov movw mul muls mulsu neg nop or ori out pop push rcall ret reti rjmp rol ror sbc sbr sbrc sbrs sec seh sbi sbci sbic sbis sbiw sei sen ser ses set sev sez sleep spm st std sts sub subi swap tst wdr",built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 r23 r24 r25 r26 r27 r28 r29 r30 r31 x|0 xh xl y|0 yh yl z|0 zh zl ucsr1c udr1 ucsr1a ucsr1b ubrr1l ubrr1h ucsr0c ubrr0h tccr3c tccr3a tccr3b tcnt3h tcnt3l ocr3ah ocr3al ocr3bh ocr3bl ocr3ch ocr3cl icr3h icr3l etimsk etifr tccr1c ocr1ch ocr1cl twcr twdr twar twsr twbr osccal xmcra xmcrb eicra spmcsr spmcr portg ddrg ping portf ddrf sreg sph spl xdiv rampz eicrb eimsk gimsk gicr eifr gifr timsk tifr mcucr mcucsr tccr0 tcnt0 ocr0 assr tccr1a tccr1b tcnt1h tcnt1l ocr1ah ocr1al ocr1bh ocr1bl icr1h icr1l tccr2 tcnt2 ocr2 ocdr wdtcr sfior eearh eearl eedr eecr porta ddra pina portb ddrb pinb portc ddrc pinc portd ddrd pind spdr spsr spcr udr0 ucsr0a ucsr0b ubrr0l acsr admux adcsr adch adcl porte ddre pine pinf",meta:".byte .cseg .db .def .device .dseg .dw .endmacro .equ .eseg .exit .include .list .listmac .macro .nolist .org .set"},contains:[e.C_BLOCK_COMMENT_MODE,e.COMMENT(";","$",{relevance:0}),e.C_NUMBER_MODE,e.BINARY_NUMBER_MODE,{className:"number",begin:"\\b(\\$[a-zA-Z0-9]+|0o[0-7]+)"},e.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",illegal:"[^\\\\][^']"},{className:"symbol",begin:"^[A-Za-z0-9_.$]+:"},{className:"meta",begin:"#",end:"$"},{className:"subst",begin:"@[0-9]+"}]}}var Ii=Oi;function Ai(e){const t={className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{begin:/\$\{(.*?)\}/}]},n="BEGIN END if else while do for in break continue delete next nextfile function func exit|10",a={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/(u|b)?r?'''/,end:/'''/,relevance:10},{begin:/(u|b)?r?"""/,end:/"""/,relevance:10},{begin:/(u|r|ur)'/,end:/'/,relevance:10},{begin:/(u|r|ur)"/,end:/"/,relevance:10},{begin:/(b|br)'/,end:/'/},{begin:/(b|br)"/,end:/"/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]};return{name:"Awk",keywords:{keyword:n},contains:[t,a,e.REGEXP_MODE,e.HASH_COMMENT_MODE,e.NUMBER_MODE]}}var vi=Ai;function yi(e){return{name:"X++",aliases:["x++"],keywords:{keyword:["abstract","as","asc","avg","break","breakpoint","by","byref","case","catch","changecompany","class","client","client","common","const","continue","count","crosscompany","delegate","delete_from","desc","display","div","do","edit","else","eventhandler","exists","extends","final","finally","firstfast","firstonly","firstonly1","firstonly10","firstonly100","firstonly1000","flush","for","forceliterals","forcenestedloop","forceplaceholders","forceselectorder","forupdate","from","generateonly","group","hint","if","implements","in","index","insert_recordset","interface","internal","is","join","like","maxof","minof","mod","namespace","new","next","nofetch","notexists","optimisticlock","order","outer","pessimisticlock","print","private","protected","public","readonly","repeatableread","retry","return","reverse","select","server","setting","static","sum","super","switch","this","throw","try","ttsabort","ttsbegin","ttscommit","unchecked","update_recordset","using","validtimestate","void","where","while"],built_in:["anytype","boolean","byte","char","container","date","double","enum","guid","int","int64","long","real","short","str","utcdatetime","var"],literal:["default","false","null","true"]},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{className:"meta",begin:"#",end:"$"},{className:"class",beginKeywords:"class interface",end:/\{/,excludeEnd:!0,illegal:":",contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]}]}}var Di=yi;function hi(e){return e?typeof e=="string"?e:e.source:null}function Mi(...e){return e.map(n=>hi(n)).join("")}function Li(e){const t={},n={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[t]}]};Object.assign(t,{className:"variable",variants:[{begin:Mi(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},n]});const a={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},r={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},i={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,t,a]};a.contains.push(i);const s={className:"",begin:/\\"/},o={className:"string",begin:/'/,end:/'/},l={begin:/\$\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,t]},c=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],_=e.SHEBANG({binary:`(${c.join("|")})`,relevance:10}),u={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z._-]+\b/,keyword:"if then else elif fi for while in do done case esac function",literal:"true false",built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp"},contains:[_,e.SHEBANG(),u,l,e.HASH_COMMENT_MODE,r,i,s,o,t]}}var xi=Li;function Pi(e){return{name:"BASIC",case_insensitive:!0,illegal:"^.",keywords:{$pattern:"[a-zA-Z][a-zA-Z0-9_$%!#]*",keyword:"ABS ASC AND ATN AUTO|0 BEEP BLOAD|10 BSAVE|10 CALL CALLS CDBL CHAIN CHDIR CHR$|10 CINT CIRCLE CLEAR CLOSE CLS COLOR COM COMMON CONT COS CSNG CSRLIN CVD CVI CVS DATA DATE$ DEFDBL DEFINT DEFSNG DEFSTR DEF|0 SEG USR DELETE DIM DRAW EDIT END ENVIRON ENVIRON$ EOF EQV ERASE ERDEV ERDEV$ ERL ERR ERROR EXP FIELD FILES FIX FOR|0 FRE GET GOSUB|10 GOTO HEX$ IF THEN ELSE|0 INKEY$ INP INPUT INPUT# INPUT$ INSTR IMP INT IOCTL IOCTL$ KEY ON OFF LIST KILL LEFT$ LEN LET LINE LLIST LOAD LOC LOCATE LOF LOG LPRINT USING LSET MERGE MID$ MKDIR MKD$ MKI$ MKS$ MOD NAME NEW NEXT NOISE NOT OCT$ ON OR PEN PLAY STRIG OPEN OPTION BASE OUT PAINT PALETTE PCOPY PEEK PMAP POINT POKE POS PRINT PRINT] PSET PRESET PUT RANDOMIZE READ REM RENUM RESET|0 RESTORE RESUME RETURN|0 RIGHT$ RMDIR RND RSET RUN SAVE SCREEN SGN SHELL SIN SOUND SPACE$ SPC SQR STEP STICK STOP STR$ STRING$ SWAP SYSTEM TAB TAN TIME$ TIMER TROFF TRON TO USR VAL VARPTR VARPTR$ VIEW WAIT WHILE WEND WIDTH WINDOW WRITE XOR"},contains:[e.QUOTE_STRING_MODE,e.COMMENT("REM","$",{relevance:10}),e.COMMENT("'","$",{relevance:0}),{className:"symbol",begin:"^[0-9]+ ",relevance:10},{className:"number",begin:"\\b\\d+(\\.\\d+)?([edED]\\d+)?[#!]?",relevance:0},{className:"number",begin:"(&[hH][0-9a-fA-F]{1,4})"},{className:"number",begin:"(&[oO][0-7]{1,6})"}]}}var wi=Pi;function ki(e){return{name:"Backus\u2013Naur Form",contains:[{className:"attribute",begin://},{begin:/::=/,end:/$/,contains:[{begin://},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}]}}var Ui=ki;function Fi(e){const t={className:"literal",begin:/[+-]/,relevance:0};return{name:"Brainfuck",aliases:["bf"],contains:[e.COMMENT(`[^\\[\\]\\.,\\+\\-<> \r +]`,`[\\[\\]\\.,\\+\\-<> \r +]`,{returnEnd:!0,relevance:0}),{className:"title",begin:"[\\[\\]]",relevance:0},{className:"string",begin:"[\\.,]",relevance:0},{begin:/(?:\+\+|--)/,contains:[t]},t]}}var Bi=Fi;function Gi(e){return e?typeof e=="string"?e:e.source:null}function Yi(e){return Rt("(?=",e,")")}function xe(e){return Rt("(",e,")?")}function Rt(...e){return e.map(n=>Gi(n)).join("")}function Hi(e){const t=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),n="decltype\\(auto\\)",a="[a-zA-Z_]\\w*::",r="<[^<>]+>",i="("+n+"|"+xe(a)+"[a-zA-Z_]\\w*"+xe(r)+")",s={className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},o="\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)",l={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+o+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},c={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},_={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{"meta-keyword":"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(l,{className:"meta-string"}),{className:"meta-string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},u={className:"title",begin:xe(a)+e.IDENT_RE,relevance:0},m=xe(a)+e.IDENT_RE+"\\s*\\(",E={keyword:"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_t short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq",built_in:"_Bool _Complex _Imaginary",_relevance_hints:["asin","atan2","atan","calloc","ceil","cosh","cos","exit","exp","fabs","floor","fmod","fprintf","fputs","free","frexp","auto_ptr","deque","list","queue","stack","vector","map","set","pair","bitset","multiset","multimap","unordered_set","fscanf","future","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","tolower","toupper","labs","ldexp","log10","log","malloc","realloc","memchr","memcmp","memcpy","memset","modf","pow","printf","putchar","puts","scanf","sinh","sin","snprintf","sprintf","sqrt","sscanf","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","tanh","tan","unordered_map","unordered_multiset","unordered_multimap","priority_queue","make_pair","array","shared_ptr","abort","terminate","abs","acos","vfprintf","vprintf","vsprintf","endl","initializer_list","unique_ptr","complex","imaginary","std","string","wstring","cin","cout","cerr","clog","stdin","stdout","stderr","stringstream","istringstream","ostringstream"],literal:"true false nullptr NULL"},S={className:"function.dispatch",relevance:0,keywords:E,begin:Rt(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!while)/,e.IDENT_RE,Yi(/\s*\(/))},T=[S,_,s,t,e.C_BLOCK_COMMENT_MODE,c,l],C={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:E,contains:T.concat([{begin:/\(/,end:/\)/,keywords:E,contains:T.concat(["self"]),relevance:0}]),relevance:0},R={className:"function",begin:"("+i+"[\\*&\\s]+)+"+m,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:E,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:n,keywords:E,relevance:0},{begin:m,returnBegin:!0,contains:[u],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[l,c]},{className:"params",begin:/\(/,end:/\)/,keywords:E,relevance:0,contains:[t,e.C_BLOCK_COMMENT_MODE,l,c,s,{begin:/\(/,end:/\)/,keywords:E,relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,l,c,s]}]},s,t,e.C_BLOCK_COMMENT_MODE,_]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:E,illegal:"",keywords:E,contains:["self",s]},{begin:e.IDENT_RE+"::",keywords:E},{className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:_,strings:l,keywords:E}}}function Vi(e){const t=Hi(e),n=["c","h"],a=["cc","c++","h++","hpp","hh","hxx","cxx"];return t.disableAutodetect=!0,t.aliases=[],e.getLanguage("c")||t.aliases.push(...n),e.getLanguage("cpp")||t.aliases.push(...a),t}var qi=Vi;function $i(e){return e?typeof e=="string"?e:e.source:null}function Pe(e){return zi("(",e,")?")}function zi(...e){return e.map(n=>$i(n)).join("")}function Wi(e){const t=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),n="decltype\\(auto\\)",a="[a-zA-Z_]\\w*::",r="<[^<>]+>",i="("+n+"|"+Pe(a)+"[a-zA-Z_]\\w*"+Pe(r)+")",s={className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},o="\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)",l={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+o+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},c={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},_={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{"meta-keyword":"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(l,{className:"meta-string"}),{className:"meta-string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},u={className:"title",begin:Pe(a)+e.IDENT_RE,relevance:0},m=Pe(a)+e.IDENT_RE+"\\s*\\(",g={keyword:"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_t short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr _Bool complex _Complex imaginary _Imaginary",literal:"true false nullptr NULL"},E=[_,s,t,e.C_BLOCK_COMMENT_MODE,c,l],S={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:g,contains:E.concat([{begin:/\(/,end:/\)/,keywords:g,contains:E.concat(["self"]),relevance:0}]),relevance:0},T={className:"function",begin:"("+i+"[\\*&\\s]+)+"+m,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:g,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:n,keywords:g,relevance:0},{begin:m,returnBegin:!0,contains:[u],relevance:0},{className:"params",begin:/\(/,end:/\)/,keywords:g,relevance:0,contains:[t,e.C_BLOCK_COMMENT_MODE,l,c,s,{begin:/\(/,end:/\)/,keywords:g,relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,l,c,s]}]},s,t,e.C_BLOCK_COMMENT_MODE,_]};return{name:"C",aliases:["h"],keywords:g,disableAutodetect:!0,illegal:"",keywords:g,contains:["self",s]},{begin:e.IDENT_RE+"::",keywords:g},{className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:_,strings:l,keywords:g}}}var Ki=Wi;function Qi(e){const t="div mod in and or not xor asserterror begin case do downto else end exit for if of repeat then to until while with var",n="false true",a=[e.C_LINE_COMMENT_MODE,e.COMMENT(/\{/,/\}/,{relevance:0}),e.COMMENT(/\(\*/,/\*\)/,{relevance:10})],r={className:"string",begin:/'/,end:/'/,contains:[{begin:/''/}]},i={className:"string",begin:/(#\d+)+/},s={className:"number",begin:"\\b\\d+(\\.\\d+)?(DT|D|T)",relevance:0},o={className:"string",begin:'"',end:'"'},l={className:"function",beginKeywords:"procedure",end:/[:;]/,keywords:"procedure|10",contains:[e.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,keywords:t,contains:[r,i]}].concat(a)},c={className:"class",begin:"OBJECT (Table|Form|Report|Dataport|Codeunit|XMLport|MenuSuite|Page|Query) (\\d+) ([^\\r\\n]+)",returnBegin:!0,contains:[e.TITLE_MODE,l]};return{name:"C/AL",case_insensitive:!0,keywords:{keyword:t,literal:n},illegal:/\/\*/,contains:[r,i,s,o,e.NUMBER_MODE,c,l]}}var Xi=Qi;function Zi(e){return{name:"Cap\u2019n Proto",aliases:["capnp"],keywords:{keyword:"struct enum interface union group import using const annotation extends in of on as with from fixed",built_in:"Void Bool Int8 Int16 Int32 Int64 UInt8 UInt16 UInt32 UInt64 Float32 Float64 Text Data AnyPointer AnyStruct Capability List",literal:"true false"},contains:[e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.HASH_COMMENT_MODE,{className:"meta",begin:/@0x[\w\d]{16};/,illegal:/\n/},{className:"symbol",begin:/@\d+\b/},{className:"class",beginKeywords:"struct enum",end:/\{/,illegal:/\n/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]},{className:"class",beginKeywords:"interface",end:/\{/,illegal:/\n/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]}]}}var Ji=Zi;function ji(e){const t="assembly module package import alias class interface object given value assign void function new of extends satisfies abstracts in out return break continue throw assert dynamic if else switch case for while try catch finally then let this outer super is exists nonempty",n="shared abstract formal default actual variable late native deprecated final sealed annotation suppressWarnings small",a="doc by license see throws tagged",r={className:"subst",excludeBegin:!0,excludeEnd:!0,begin:/``/,end:/``/,keywords:t,relevance:10},i=[{className:"string",begin:'"""',end:'"""',relevance:10},{className:"string",begin:'"',end:'"',contains:[r]},{className:"string",begin:"'",end:"'"},{className:"number",begin:"#[0-9a-fA-F_]+|\\$[01_]+|[0-9_]+(?:\\.[0-9_](?:[eE][+-]?\\d+)?)?[kMGTPmunpf]?",relevance:0}];return r.contains=i,{name:"Ceylon",keywords:{keyword:t+" "+n,meta:a},illegal:"\\$[^01]|#[^0-9a-fA-F]",contains:[e.C_LINE_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:["self"]}),{className:"meta",begin:'@[a-z]\\w*(?::"[^"]*")?'}].concat(i)}}var eo=ji;function to(e){return{name:"Clean",aliases:["icl","dcl"],keywords:{keyword:"if let in with where case of class instance otherwise implementation definition system module from import qualified as special code inline foreign export ccall stdcall generic derive infix infixl infixr",built_in:"Int Real Char Bool",literal:"True False"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{begin:"->|<-[|:]?|#!?|>>=|\\{\\||\\|\\}|:==|=:|<>"}]}}var no=to;function ao(e){const t="a-zA-Z_\\-!.?+*=<>&#'",n="["+t+"]["+t+"0-9/;:]*",a="def defonce defprotocol defstruct defmulti defmethod defn- defn defmacro deftype defrecord",r={$pattern:n,"builtin-name":a+" cond apply if-not if-let if not not= =|0 <|0 >|0 <=|0 >=|0 ==|0 +|0 /|0 *|0 -|0 rem quot neg? pos? delay? symbol? keyword? true? false? integer? empty? coll? list? set? ifn? fn? associative? sequential? sorted? counted? reversible? number? decimal? class? distinct? isa? float? rational? reduced? ratio? odd? even? char? seq? vector? string? map? nil? contains? zero? instance? not-every? not-any? libspec? -> ->> .. . inc compare do dotimes mapcat take remove take-while drop letfn drop-last take-last drop-while while intern condp case reduced cycle split-at split-with repeat replicate iterate range merge zipmap declare line-seq sort comparator sort-by dorun doall nthnext nthrest partition eval doseq await await-for let agent atom send send-off release-pending-sends add-watch mapv filterv remove-watch agent-error restart-agent set-error-handler error-handler set-error-mode! error-mode shutdown-agents quote var fn loop recur throw try monitor-enter monitor-exit macroexpand macroexpand-1 for dosync and or when when-not when-let comp juxt partial sequence memoize constantly complement identity assert peek pop doto proxy first rest cons cast coll last butlast sigs reify second ffirst fnext nfirst nnext meta with-meta ns in-ns create-ns import refer keys select-keys vals key val rseq name namespace promise into transient persistent! conj! assoc! dissoc! pop! disj! use class type num float double short byte boolean bigint biginteger bigdec print-method print-dup throw-if printf format load compile get-in update-in pr pr-on newline flush read slurp read-line subvec with-open memfn time re-find re-groups rand-int rand mod locking assert-valid-fdecl alias resolve ref deref refset swap! reset! set-validator! compare-and-set! alter-meta! reset-meta! commute get-validator alter ref-set ref-history-count ref-min-history ref-max-history ensure sync io! new next conj set! to-array future future-call into-array aset gen-class reduce map filter find empty hash-map hash-set sorted-map sorted-map-by sorted-set sorted-set-by vec vector seq flatten reverse assoc dissoc list disj get union difference intersection extend extend-type extend-protocol int nth delay count concat chunk chunk-buffer chunk-append chunk-first chunk-rest max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec unchecked-negate unchecked-add-int unchecked-add unchecked-subtract-int unchecked-subtract chunk-next chunk-cons chunked-seq? prn vary-meta lazy-seq spread list* str find-keyword keyword symbol gensym force rationalize"},i="[-+]?\\d+(\\.\\d+)?",s={begin:n,relevance:0},o={className:"number",begin:i,relevance:0},l=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),c=e.COMMENT(";","$",{relevance:0}),_={className:"literal",begin:/\b(true|false|nil)\b/},u={begin:"[\\[\\{]",end:"[\\]\\}]"},m={className:"comment",begin:"\\^"+n},g=e.COMMENT("\\^\\{","\\}"),E={className:"symbol",begin:"[:]{1,2}"+n},S={begin:"\\(",end:"\\)"},T={endsWithParent:!0,relevance:0},C={keywords:r,className:"name",begin:n,relevance:0,starts:T},R=[S,l,m,g,c,E,u,o,_,s],f={beginKeywords:a,lexemes:n,end:'(\\[|#|\\d|"|:|\\{|\\)|\\(|$)',contains:[{className:"title",begin:n,relevance:0,excludeEnd:!0,endsParent:!0}].concat(R)};return S.contains=[e.COMMENT("comment",""),f,C,T],T.contains=R,u.contains=R,g.contains=[u],{name:"Clojure",aliases:["clj"],illegal:/\S/,contains:[S,l,m,g,c,E,u,o,_]}}var ro=ao;function io(e){return{name:"Clojure REPL",contains:[{className:"meta",begin:/^([\w.-]+|\s*#_)?=>/,starts:{end:/$/,subLanguage:"clojure"}}]}}var oo=io;function so(e){return{name:"CMake",aliases:["cmake.in"],case_insensitive:!0,keywords:{keyword:"break cmake_host_system_information cmake_minimum_required cmake_parse_arguments cmake_policy configure_file continue elseif else endforeach endfunction endif endmacro endwhile execute_process file find_file find_library find_package find_path find_program foreach function get_cmake_property get_directory_property get_filename_component get_property if include include_guard list macro mark_as_advanced math message option return separate_arguments set_directory_properties set_property set site_name string unset variable_watch while add_compile_definitions add_compile_options add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library add_link_options add_subdirectory add_test aux_source_directory build_command create_test_sourcelist define_property enable_language enable_testing export fltk_wrap_ui get_source_file_property get_target_property get_test_property include_directories include_external_msproject include_regular_expression install link_directories link_libraries load_cache project qt_wrap_cpp qt_wrap_ui remove_definitions set_source_files_properties set_target_properties set_tests_properties source_group target_compile_definitions target_compile_features target_compile_options target_include_directories target_link_directories target_link_libraries target_link_options target_sources try_compile try_run ctest_build ctest_configure ctest_coverage ctest_empty_binary_directory ctest_memcheck ctest_read_custom_files ctest_run_script ctest_sleep ctest_start ctest_submit ctest_test ctest_update ctest_upload build_name exec_program export_library_dependencies install_files install_programs install_targets load_command make_directory output_required_files remove subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file qt5_use_modules qt5_use_package qt5_wrap_cpp on off true false and or not command policy target test exists is_newer_than is_directory is_symlink is_absolute matches less greater equal less_equal greater_equal strless strgreater strequal strless_equal strgreater_equal version_less version_greater version_equal version_less_equal version_greater_equal in_list defined"},contains:[{className:"variable",begin:/\$\{/,end:/\}/},e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE]}}var lo=so;const co=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],_o=["true","false","null","undefined","NaN","Infinity"],uo=["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer","BigInt64Array","BigUint64Array","BigInt"],mo=["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],Eo=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],po=["arguments","this","super","console","window","document","localStorage","module","global"],go=[].concat(Eo,po,uo,mo);function So(e){const t=["npm","print"],n=["yes","no","on","off"],a=["then","unless","until","loop","by","when","and","or","is","isnt","not"],r=["var","const","let","function","static"],i=g=>E=>!g.includes(E),s={keyword:co.concat(a).filter(i(r)),literal:_o.concat(n),built_in:go.concat(t)},o="[A-Za-z$_][0-9A-Za-z$_]*",l={className:"subst",begin:/#\{/,end:/\}/,keywords:s},c=[e.BINARY_NUMBER_MODE,e.inherit(e.C_NUMBER_MODE,{starts:{end:"(\\s*/)?",relevance:0}}),{className:"string",variants:[{begin:/'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE]},{begin:/'/,end:/'/,contains:[e.BACKSLASH_ESCAPE]},{begin:/"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,l]},{begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,l]}]},{className:"regexp",variants:[{begin:"///",end:"///",contains:[l,e.HASH_COMMENT_MODE]},{begin:"//[gim]{0,3}(?=\\W)",relevance:0},{begin:/\/(?![ *]).*?(?![\\]).\/[gim]{0,3}(?=\W)/}]},{begin:"@"+o},{subLanguage:"javascript",excludeBegin:!0,excludeEnd:!0,variants:[{begin:"```",end:"```"},{begin:"`",end:"`"}]}];l.contains=c;const _=e.inherit(e.TITLE_MODE,{begin:o}),u="(\\(.*\\)\\s*)?\\B[-=]>",m={className:"params",begin:"\\([^\\(]",returnBegin:!0,contains:[{begin:/\(/,end:/\)/,keywords:s,contains:["self"].concat(c)}]};return{name:"CoffeeScript",aliases:["coffee","cson","iced"],keywords:s,illegal:/\/\*/,contains:c.concat([e.COMMENT("###","###"),e.HASH_COMMENT_MODE,{className:"function",begin:"^\\s*"+o+"\\s*=\\s*"+u,end:"[-=]>",returnBegin:!0,contains:[_,m]},{begin:/[:\(,=]\s*/,relevance:0,contains:[{className:"function",begin:u,end:"[-=]>",returnBegin:!0,contains:[m]}]},{className:"class",beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[_]},_]},{begin:o+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}}var To=So;function bo(e){return{name:"Coq",keywords:{keyword:"_|0 as at cofix else end exists exists2 fix for forall fun if IF in let match mod Prop return Set then Type using where with Abort About Add Admit Admitted All Arguments Assumptions Axiom Back BackTo Backtrack Bind Blacklist Canonical Cd Check Class Classes Close Coercion Coercions CoFixpoint CoInductive Collection Combined Compute Conjecture Conjectures Constant constr Constraint Constructors Context Corollary CreateHintDb Cut Declare Defined Definition Delimit Dependencies Dependent Derive Drop eauto End Equality Eval Example Existential Existentials Existing Export exporting Extern Extract Extraction Fact Field Fields File Fixpoint Focus for From Function Functional Generalizable Global Goal Grab Grammar Graph Guarded Heap Hint HintDb Hints Hypotheses Hypothesis ident Identity If Immediate Implicit Import Include Inductive Infix Info Initial Inline Inspect Instance Instances Intro Intros Inversion Inversion_clear Language Left Lemma Let Libraries Library Load LoadPath Local Locate Ltac ML Mode Module Modules Monomorphic Morphism Next NoInline Notation Obligation Obligations Opaque Open Optimize Options Parameter Parameters Parametric Path Paths pattern Polymorphic Preterm Print Printing Program Projections Proof Proposition Pwd Qed Quit Rec Record Recursive Redirect Relation Remark Remove Require Reserved Reset Resolve Restart Rewrite Right Ring Rings Save Scheme Scope Scopes Script Search SearchAbout SearchHead SearchPattern SearchRewrite Section Separate Set Setoid Show Solve Sorted Step Strategies Strategy Structure SubClass Table Tables Tactic Term Test Theorem Time Timeout Transparent Type Typeclasses Types Undelimit Undo Unfocus Unfocused Unfold Universe Universes Unset Unshelve using Variable Variables Variant Verbose Visibility where with",built_in:"abstract absurd admit after apply as assert assumption at auto autorewrite autounfold before bottom btauto by case case_eq cbn cbv change classical_left classical_right clear clearbody cofix compare compute congruence constr_eq constructor contradict contradiction cut cutrewrite cycle decide decompose dependent destruct destruction dintuition discriminate discrR do double dtauto eapply eassumption eauto ecase econstructor edestruct ediscriminate eelim eexact eexists einduction einjection eleft elim elimtype enough equality erewrite eright esimplify_eq esplit evar exact exactly_once exfalso exists f_equal fail field field_simplify field_simplify_eq first firstorder fix fold fourier functional generalize generalizing gfail give_up has_evar hnf idtac in induction injection instantiate intro intro_pattern intros intuition inversion inversion_clear is_evar is_var lapply lazy left lia lra move native_compute nia nsatz omega once pattern pose progress proof psatz quote record red refine reflexivity remember rename repeat replace revert revgoals rewrite rewrite_strat right ring ring_simplify rtauto set setoid_reflexivity setoid_replace setoid_rewrite setoid_symmetry setoid_transitivity shelve shelve_unifiable simpl simple simplify_eq solve specialize split split_Rabs split_Rmult stepl stepr subst sum swap symmetry tactic tauto time timeout top transitivity trivial try tryif unfold unify until using vm_compute with"},contains:[e.QUOTE_STRING_MODE,e.COMMENT("\\(\\*","\\*\\)"),e.C_NUMBER_MODE,{className:"type",excludeBegin:!0,begin:"\\|\\s*",end:"\\w+"},{begin:/[-=]>/}]}}var Ro=bo;function No(e){return{name:"Cach\xE9 Object Script",case_insensitive:!0,aliases:["cls"],keywords:"property parameter class classmethod clientmethod extends as break catch close continue do d|0 else elseif for goto halt hang h|0 if job j|0 kill k|0 lock l|0 merge new open quit q|0 read r|0 return set s|0 tcommit throw trollback try tstart use view while write w|0 xecute x|0 zkill znspace zn ztrap zwrite zw zzdump zzwrite print zbreak zinsert zload zprint zremove zsave zzprint mv mvcall mvcrt mvdim mvprint zquit zsync ascii",contains:[{className:"number",begin:"\\b(\\d+(\\.\\d*)?|\\.\\d+)",relevance:0},{className:"string",variants:[{begin:'"',end:'"',contains:[{begin:'""',relevance:0}]}]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"comment",begin:/;/,end:"$",relevance:0},{className:"built_in",begin:/(?:\$\$?|\.\.)\^?[a-zA-Z]+/},{className:"built_in",begin:/\$\$\$[a-zA-Z]+/},{className:"built_in",begin:/%[a-z]+(?:\.[a-z]+)*/},{className:"symbol",begin:/\^%?[a-zA-Z][\w]*/},{className:"keyword",begin:/##class|##super|#define|#dim/},{begin:/&sql\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,subLanguage:"sql"},{begin:/&(js|jscript|javascript)/,excludeBegin:!0,excludeEnd:!0,subLanguage:"javascript"},{begin:/&html<\s*\s*>/,subLanguage:"xml"}]}}var Co=No;function fo(e){return e?typeof e=="string"?e:e.source:null}function Oo(e){return Nt("(?=",e,")")}function we(e){return Nt("(",e,")?")}function Nt(...e){return e.map(n=>fo(n)).join("")}function Io(e){const t=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),n="decltype\\(auto\\)",a="[a-zA-Z_]\\w*::",r="<[^<>]+>",i="("+n+"|"+we(a)+"[a-zA-Z_]\\w*"+we(r)+")",s={className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},o="\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)",l={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+o+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},c={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},_={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{"meta-keyword":"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(l,{className:"meta-string"}),{className:"meta-string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},u={className:"title",begin:we(a)+e.IDENT_RE,relevance:0},m=we(a)+e.IDENT_RE+"\\s*\\(",E={keyword:"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_t short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq",built_in:"_Bool _Complex _Imaginary",_relevance_hints:["asin","atan2","atan","calloc","ceil","cosh","cos","exit","exp","fabs","floor","fmod","fprintf","fputs","free","frexp","auto_ptr","deque","list","queue","stack","vector","map","set","pair","bitset","multiset","multimap","unordered_set","fscanf","future","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","tolower","toupper","labs","ldexp","log10","log","malloc","realloc","memchr","memcmp","memcpy","memset","modf","pow","printf","putchar","puts","scanf","sinh","sin","snprintf","sprintf","sqrt","sscanf","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","tanh","tan","unordered_map","unordered_multiset","unordered_multimap","priority_queue","make_pair","array","shared_ptr","abort","terminate","abs","acos","vfprintf","vprintf","vsprintf","endl","initializer_list","unique_ptr","complex","imaginary","std","string","wstring","cin","cout","cerr","clog","stdin","stdout","stderr","stringstream","istringstream","ostringstream"],literal:"true false nullptr NULL"},S={className:"function.dispatch",relevance:0,keywords:E,begin:Nt(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!while)/,e.IDENT_RE,Oo(/\s*\(/))},T=[S,_,s,t,e.C_BLOCK_COMMENT_MODE,c,l],C={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:E,contains:T.concat([{begin:/\(/,end:/\)/,keywords:E,contains:T.concat(["self"]),relevance:0}]),relevance:0},R={className:"function",begin:"("+i+"[\\*&\\s]+)+"+m,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:E,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:n,keywords:E,relevance:0},{begin:m,returnBegin:!0,contains:[u],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[l,c]},{className:"params",begin:/\(/,end:/\)/,keywords:E,relevance:0,contains:[t,e.C_BLOCK_COMMENT_MODE,l,c,s,{begin:/\(/,end:/\)/,keywords:E,relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,l,c,s]}]},s,t,e.C_BLOCK_COMMENT_MODE,_]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:E,illegal:"",keywords:E,contains:["self",s]},{begin:e.IDENT_RE+"::",keywords:E},{className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:_,strings:l,keywords:E}}}var Ao=Io;function vo(e){const t="primitive rsc_template",n="group clone ms master location colocation order fencing_topology rsc_ticket acl_target acl_group user role tag xml",a="property rsc_defaults op_defaults",r="params meta operations op rule attributes utilization",i="read write deny defined not_defined in_range date spec in ref reference attribute type xpath version and or lt gt tag lte gte eq ne \\",s="number string",o="Master Started Slave Stopped start promote demote stop monitor true false";return{name:"crmsh",aliases:["crm","pcmk"],case_insensitive:!0,keywords:{keyword:r+" "+i+" "+s,literal:o},contains:[e.HASH_COMMENT_MODE,{beginKeywords:"node",starts:{end:"\\s*([\\w_-]+:)?",starts:{className:"title",end:"\\s*[\\$\\w_][\\w_-]*"}}},{beginKeywords:t,starts:{className:"title",end:"\\s*[\\$\\w_][\\w_-]*",starts:{end:"\\s*@?[\\w_][\\w_\\.:-]*"}}},{begin:"\\b("+n.split(" ").join("|")+")\\s+",keywords:n,starts:{className:"title",end:"[\\$\\w_][\\w_-]*"}},{beginKeywords:a,starts:{className:"title",end:"\\s*([\\w_-]+:)?"}},e.QUOTE_STRING_MODE,{className:"meta",begin:"(ocf|systemd|service|lsb):[\\w_:-]+",relevance:0},{className:"number",begin:"\\b\\d+(\\.\\d+)?(ms|s|h|m)?",relevance:0},{className:"literal",begin:"[-]?(infinity|inf)",relevance:0},{className:"attr",begin:/([A-Za-z$_#][\w_-]+)=/,relevance:0},{className:"tag",begin:"",relevance:0}]}}var yo=vo;function Do(e){const t="(_?[ui](8|16|32|64|128))?",n="(_?f(32|64))?",a="[a-zA-Z_]\\w*[!?=]?",r="[a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|[=!]~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~|]|//|//=|&[-+*]=?|&\\*\\*|\\[\\][=?]?",i="[A-Za-z_]\\w*(::\\w+)*(\\?|!)?",s={$pattern:a,keyword:"abstract alias annotation as as? asm begin break case class def do else elsif end ensure enum extend for fun if include instance_sizeof is_a? lib macro module next nil? of out pointerof private protected rescue responds_to? return require select self sizeof struct super then type typeof union uninitialized unless until verbatim when while with yield __DIR__ __END_LINE__ __FILE__ __LINE__",literal:"false nil true"},o={className:"subst",begin:/#\{/,end:/\}/,keywords:s},l={className:"template-variable",variants:[{begin:"\\{\\{",end:"\\}\\}"},{begin:"\\{%",end:"%\\}"}],keywords:s};function c(T,C){const R=[{begin:T,end:C}];return R[0].contains=R,R}const _={className:"string",contains:[e.BACKSLASH_ESCAPE,o],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:"%[Qwi]?\\(",end:"\\)",contains:c("\\(","\\)")},{begin:"%[Qwi]?\\[",end:"\\]",contains:c("\\[","\\]")},{begin:"%[Qwi]?\\{",end:/\}/,contains:c(/\{/,/\}/)},{begin:"%[Qwi]?<",end:">",contains:c("<",">")},{begin:"%[Qwi]?\\|",end:"\\|"},{begin:/<<-\w+$/,end:/^\s*\w+$/}],relevance:0},u={className:"string",variants:[{begin:"%q\\(",end:"\\)",contains:c("\\(","\\)")},{begin:"%q\\[",end:"\\]",contains:c("\\[","\\]")},{begin:"%q\\{",end:/\}/,contains:c(/\{/,/\}/)},{begin:"%q<",end:">",contains:c("<",">")},{begin:"%q\\|",end:"\\|"},{begin:/<<-'\w+'$/,end:/^\s*\w+$/}],relevance:0},m={begin:"(?!%\\})("+e.RE_STARTERS_RE+"|\\n|\\b(case|if|select|unless|until|when|while)\\b)\\s*",keywords:"case if select unless until when while",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,o],variants:[{begin:"//[a-z]*",relevance:0},{begin:"/(?!\\/)",end:"/[a-z]*"}]}],relevance:0},g={className:"regexp",contains:[e.BACKSLASH_ESCAPE,o],variants:[{begin:"%r\\(",end:"\\)",contains:c("\\(","\\)")},{begin:"%r\\[",end:"\\]",contains:c("\\[","\\]")},{begin:"%r\\{",end:/\}/,contains:c(/\{/,/\}/)},{begin:"%r<",end:">",contains:c("<",">")},{begin:"%r\\|",end:"\\|"}],relevance:0},E={className:"meta",begin:"@\\[",end:"\\]",contains:[e.inherit(e.QUOTE_STRING_MODE,{className:"meta-string"})]},S=[l,_,u,g,m,E,e.HASH_COMMENT_MODE,{className:"class",beginKeywords:"class module struct",end:"$|;",illegal:/=/,contains:[e.HASH_COMMENT_MODE,e.inherit(e.TITLE_MODE,{begin:i}),{begin:"<"}]},{className:"class",beginKeywords:"lib enum union",end:"$|;",illegal:/=/,contains:[e.HASH_COMMENT_MODE,e.inherit(e.TITLE_MODE,{begin:i})]},{beginKeywords:"annotation",end:"$|;",illegal:/=/,contains:[e.HASH_COMMENT_MODE,e.inherit(e.TITLE_MODE,{begin:i})],relevance:2},{className:"function",beginKeywords:"def",end:/\B\b/,contains:[e.inherit(e.TITLE_MODE,{begin:r,endsParent:!0})]},{className:"function",beginKeywords:"fun macro",end:/\B\b/,contains:[e.inherit(e.TITLE_MODE,{begin:r,endsParent:!0})],relevance:2},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":",contains:[_,{begin:r}],relevance:0},{className:"number",variants:[{begin:"\\b0b([01_]+)"+t},{begin:"\\b0o([0-7_]+)"+t},{begin:"\\b0x([A-Fa-f0-9_]+)"+t},{begin:"\\b([1-9][0-9_]*[0-9]|[0-9])(\\.[0-9][0-9_]*)?([eE]_?[-+]?[0-9_]*)?"+n+"(?!_)"},{begin:"\\b([1-9][0-9_]*|0)"+t}],relevance:0}];return o.contains=S,l.contains=S.slice(1),{name:"Crystal",aliases:["cr"],keywords:s,contains:S}}var ho=Do;function Mo(e){const t=["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],n=["public","private","protected","static","internal","protected","abstract","async","extern","override","unsafe","virtual","new","sealed","partial"],a=["default","false","null","true"],r=["abstract","as","base","break","case","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"],i=["add","alias","and","ascending","async","await","by","descending","equals","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","remove","select","set","unmanaged","value|0","var","when","where","with","yield"],s={keyword:r.concat(i),built_in:t,literal:a},o=e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),l={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},c={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},_=e.inherit(c,{illegal:/\n/}),u={className:"subst",begin:/\{/,end:/\}/,keywords:s},m=e.inherit(u,{illegal:/\n/}),g={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},e.BACKSLASH_ESCAPE,m]},E={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},u]},S=e.inherit(E,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},m]});u.contains=[E,g,c,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,l,e.C_BLOCK_COMMENT_MODE],m.contains=[S,g,_,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,l,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];const T={variants:[E,g,c,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},C={begin:"<",end:">",contains:[{beginKeywords:"in out"},o]},R=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",f={begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:s,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:""},{begin:""}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{"meta-keyword":"if else elif endif define undef warning error line region endregion pragma checksum"}},T,l,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},o,C,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[o,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[o,C,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"meta-string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+R+"\\s+)+"+e.IDENT_RE+"\\s*(<.+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:s,contains:[{beginKeywords:n.join(" "),relevance:0},{begin:e.IDENT_RE+"\\s*(<.+>\\s*)?\\(",returnBegin:!0,contains:[e.TITLE_MODE,C],relevance:0},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:s,relevance:0,contains:[T,l,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},f]}}var Lo=Mo;function xo(e){return{name:"CSP",case_insensitive:!1,keywords:{$pattern:"[a-zA-Z][a-zA-Z0-9_-]*",keyword:"base-uri child-src connect-src default-src font-src form-action frame-ancestors frame-src img-src media-src object-src plugin-types report-uri sandbox script-src style-src"},contains:[{className:"string",begin:"'",end:"'"},{className:"attribute",begin:"^Content",end:":",excludeEnd:!0}]}}var Po=xo;const wo=e=>({IMPORTANT:{className:"meta",begin:"!important"},HEXCOLOR:{className:"number",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})"},ATTRIBUTE_SELECTOR_MODE:{className:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}}),ko=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],Uo=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],Fo=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],Bo=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],Go=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-variant","font-variant-ligatures","font-variation-settings","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","src","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"].reverse();function Yo(e){return e?typeof e=="string"?e:e.source:null}function Ho(e){return Vo("(?=",e,")")}function Vo(...e){return e.map(n=>Yo(n)).join("")}function qo(e){const t=wo(e),n={className:"built_in",begin:/[\w-]+(?=\()/},a={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},r="and or not only",i=/@-?\w[\w]*(-\w+)*/,s="[a-zA-Z-][a-zA-Z0-9_-]*",o=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[e.C_BLOCK_COMMENT_MODE,a,e.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+s,relevance:0},t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+Fo.join("|")+")"},{begin:"::("+Bo.join("|")+")"}]},{className:"attribute",begin:"\\b("+Go.join("|")+")\\b"},{begin:":",end:"[;}]",contains:[t.HEXCOLOR,t.IMPORTANT,e.CSS_NUMBER_MODE,...o,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},n]},{begin:Ho(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:i},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:r,attribute:Uo.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...o,e.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+ko.join("|")+")\\b"}]}}var $o=qo;function zo(e){const t={$pattern:e.UNDERSCORE_IDENT_RE,keyword:"abstract alias align asm assert auto body break byte case cast catch class const continue debug default delete deprecated do else enum export extern final finally for foreach foreach_reverse|10 goto if immutable import in inout int interface invariant is lazy macro mixin module new nothrow out override package pragma private protected public pure ref return scope shared static struct super switch synchronized template this throw try typedef typeid typeof union unittest version void volatile while with __FILE__ __LINE__ __gshared|10 __thread __traits __DATE__ __EOF__ __TIME__ __TIMESTAMP__ __VENDOR__ __VERSION__",built_in:"bool cdouble cent cfloat char creal dchar delegate double dstring float function idouble ifloat ireal long real short string ubyte ucent uint ulong ushort wchar wstring",literal:"false null true"},n="(0|[1-9][\\d_]*)",a="(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)",r="0[bB][01_]+",i="([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)",s="0[xX]"+i,o="([eE][+-]?"+a+")",l="("+a+"(\\.\\d*|"+o+")|\\d+\\."+a+"|\\."+n+o+"?)",c="(0[xX]("+i+"\\."+i+"|\\.?"+i+")[pP][+-]?"+a+")",_="("+n+"|"+r+"|"+s+")",u="("+c+"|"+l+")",m=`\\\\(['"\\?\\\\abfnrtv]|u[\\dA-Fa-f]{4}|[0-7]{1,3}|x[\\dA-Fa-f]{2}|U[\\dA-Fa-f]{8})|&[a-zA-Z\\d]{2,};`,g={className:"number",begin:"\\b"+_+"(L|u|U|Lu|LU|uL|UL)?",relevance:0},E={className:"number",begin:"\\b("+u+"([fF]|L|i|[fF]i|Li)?|"+_+"(i|[fF]i|Li))",relevance:0},S={className:"string",begin:"'("+m+"|.)",end:"'",illegal:"."},C={className:"string",begin:'"',contains:[{begin:m,relevance:0}],end:'"[cwd]?'},R={className:"string",begin:'[rq]"',end:'"[cwd]?',relevance:5},f={className:"string",begin:"`",end:"`[cwd]?"},O={className:"string",begin:'x"[\\da-fA-F\\s\\n\\r]*"[cwd]?',relevance:10},L={className:"string",begin:'q"\\{',end:'\\}"'},h={className:"meta",begin:"^#!",end:"$",relevance:5},w={className:"meta",begin:"#(line)",end:"$",relevance:5},Y={className:"keyword",begin:"@[a-zA-Z_][a-zA-Z_\\d]*"},v=e.COMMENT("\\/\\+","\\+\\/",{contains:["self"],relevance:10});return{name:"D",keywords:t,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,v,O,C,R,f,L,E,g,S,h,w,Y]}}var Wo=zo;function Ko(e){return e?typeof e=="string"?e:e.source:null}function Qo(...e){return e.map(n=>Ko(n)).join("")}function Xo(e){const t={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},n={begin:"^[-\\*]{3,}",end:"$"},a={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},r={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},i={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},o={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:Qo(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.+?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},l={className:"strong",contains:[],variants:[{begin:/_{2}/,end:/_{2}/},{begin:/\*{2}/,end:/\*{2}/}]},c={className:"emphasis",contains:[],variants:[{begin:/\*(?!\*)/,end:/\*/},{begin:/_(?!_)/,end:/_/,relevance:0}]};l.contains.push(c),c.contains.push(l);let _=[t,o];return l.contains=l.contains.concat(_),c.contains=c.contains.concat(_),_=_.concat(l,c),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:_},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:_}]}]},t,r,l,c,{className:"quote",begin:"^>\\s+",contains:_,end:"$"},a,n,o,i]}}var Zo=Xo;function Jo(e){const t={className:"subst",variants:[{begin:"\\$[A-Za-z0-9_]+"}]},n={className:"subst",variants:[{begin:/\$\{/,end:/\}/}],keywords:"true false null this is new super"},a={className:"string",variants:[{begin:"r'''",end:"'''"},{begin:'r"""',end:'"""'},{begin:"r'",end:"'",illegal:"\\n"},{begin:'r"',end:'"',illegal:"\\n"},{begin:"'''",end:"'''",contains:[e.BACKSLASH_ESCAPE,t,n]},{begin:'"""',end:'"""',contains:[e.BACKSLASH_ESCAPE,t,n]},{begin:"'",end:"'",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,t,n]},{begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,t,n]}]};n.contains=[e.C_NUMBER_MODE,a];const r=["Comparable","DateTime","Duration","Function","Iterable","Iterator","List","Map","Match","Object","Pattern","RegExp","Set","Stopwatch","String","StringBuffer","StringSink","Symbol","Type","Uri","bool","double","int","num","Element","ElementList"],i=r.map(o=>`${o}?`),s={keyword:"abstract as assert async await break case catch class const continue covariant default deferred do dynamic else enum export extends extension external factory false final finally for Function get hide if implements import in inferface is late library mixin new null on operator part required rethrow return set show static super switch sync this throw true try typedef var void while with yield",built_in:r.concat(i).concat(["Never","Null","dynamic","print","document","querySelector","querySelectorAll","window"]),$pattern:/[A-Za-z][A-Za-z0-9_]*\??/};return{name:"Dart",keywords:s,contains:[a,e.COMMENT(/\/\*\*(?!\/)/,/\*\//,{subLanguage:"markdown",relevance:0}),e.COMMENT(/\/{3,} ?/,/$/,{contains:[{subLanguage:"markdown",begin:".",end:"$",relevance:0}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"class",beginKeywords:"class interface",end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},e.C_NUMBER_MODE,{className:"meta",begin:"@[A-Za-z]+"},{begin:"=>"}]}}var jo=Jo;function es(e){const t="exports register file shl array record property for mod while set ally label uses raise not stored class safecall var interface or private static exit index inherited to else stdcall override shr asm far resourcestring finalization packed virtual out and protected library do xorwrite goto near function end div overload object unit begin string on inline repeat until destructor write message program with read initialization except default nil if case cdecl in downto threadvar of try pascal const external constructor type public then implementation finally published procedure absolute reintroduce operator as is abstract alias assembler bitpacked break continue cppdecl cvar enumerator experimental platform deprecated unimplemented dynamic export far16 forward generic helper implements interrupt iochecks local name nodefault noreturn nostackframe oldfpccall otherwise saveregisters softfloat specialize strict unaligned varargs ",n=[e.C_LINE_COMMENT_MODE,e.COMMENT(/\{/,/\}/,{relevance:0}),e.COMMENT(/\(\*/,/\*\)/,{relevance:10})],a={className:"meta",variants:[{begin:/\{\$/,end:/\}/},{begin:/\(\*\$/,end:/\*\)/}]},r={className:"string",begin:/'/,end:/'/,contains:[{begin:/''/}]},i={className:"number",relevance:0,variants:[{begin:"\\$[0-9A-Fa-f]+"},{begin:"&[0-7]+"},{begin:"%[01]+"}]},s={className:"string",begin:/(#\d+)+/},o={begin:e.IDENT_RE+"\\s*=\\s*class\\s*\\(",returnBegin:!0,contains:[e.TITLE_MODE]},l={className:"function",beginKeywords:"function constructor destructor procedure",end:/[:;]/,keywords:"function constructor|10 destructor|10 procedure|10",contains:[e.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,keywords:t,contains:[r,s,a].concat(n)},a].concat(n)};return{name:"Delphi",aliases:["dpr","dfm","pas","pascal","freepascal","lazarus","lpr","lfm"],case_insensitive:!0,keywords:t,illegal:/"|\$[G-Zg-z]|\/\*|<\/|\|/,contains:[r,s,e.NUMBER_MODE,i,o,l,a].concat(n)}}var ts=es;function ns(e){return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,variants:[{begin:/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/},{begin:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{begin:/^--- +\d+,\d+ +----$/}]},{className:"comment",variants:[{begin:/Index: /,end:/$/},{begin:/^index/,end:/$/},{begin:/={3,}/,end:/$/},{begin:/^-{3}/,end:/$/},{begin:/^\*{3} /,end:/$/},{begin:/^\+{3}/,end:/$/},{begin:/^\*{15}$/},{begin:/^diff --git/,end:/$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}var as=ns;function rs(e){const t={begin:/\|[A-Za-z]+:?/,keywords:{name:"truncatewords removetags linebreaksbr yesno get_digit timesince random striptags filesizeformat escape linebreaks length_is ljust rjust cut urlize fix_ampersands title floatformat capfirst pprint divisibleby add make_list unordered_list urlencode timeuntil urlizetrunc wordcount stringformat linenumbers slice date dictsort dictsortreversed default_if_none pluralize lower join center default truncatewords_html upper length phone2numeric wordwrap time addslashes slugify first escapejs force_escape iriencode last safe safeseq truncatechars localize unlocalize localtime utc timezone"},contains:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE]};return{name:"Django",aliases:["jinja"],case_insensitive:!0,subLanguage:"xml",contains:[e.COMMENT(/\{%\s*comment\s*%\}/,/\{%\s*endcomment\s*%\}/),e.COMMENT(/\{#/,/#\}/),{className:"template-tag",begin:/\{%/,end:/%\}/,contains:[{className:"name",begin:/\w+/,keywords:{name:"comment endcomment load templatetag ifchanged endifchanged if endif firstof for endfor ifnotequal endifnotequal widthratio extends include spaceless endspaceless regroup ifequal endifequal ssi now with cycle url filter endfilter debug block endblock else autoescape endautoescape csrf_token empty elif endwith static trans blocktrans endblocktrans get_static_prefix get_media_prefix plural get_current_language language get_available_languages get_current_language_bidi get_language_info get_language_info_list localize endlocalize localtime endlocaltime timezone endtimezone get_current_timezone verbatim"},starts:{endsWithParent:!0,keywords:"in by as",contains:[t],relevance:0}}]},{className:"template-variable",begin:/\{\{/,end:/\}\}/,contains:[t]}]}}var is=rs;function os(e){return{name:"DNS Zone",aliases:["bind","zone"],keywords:{keyword:"IN A AAAA AFSDB APL CAA CDNSKEY CDS CERT CNAME DHCID DLV DNAME DNSKEY DS HIP IPSECKEY KEY KX LOC MX NAPTR NS NSEC NSEC3 NSEC3PARAM PTR RRSIG RP SIG SOA SRV SSHFP TA TKEY TLSA TSIG TXT"},contains:[e.COMMENT(";","$",{relevance:0}),{className:"meta",begin:/^\$(TTL|GENERATE|INCLUDE|ORIGIN)\b/},{className:"number",begin:"((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))\\b"},{className:"number",begin:"((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\b"},e.inherit(e.NUMBER_MODE,{begin:/\b\d+[dhwm]?/})]}}var ss=os;function ls(e){return{name:"Dockerfile",aliases:["docker"],case_insensitive:!0,keywords:"from maintainer expose env arg user onbuild stopsignal",contains:[e.HASH_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{beginKeywords:"run cmd entrypoint volume add copy workdir label healthcheck shell",starts:{end:/[^\\]$/,subLanguage:"bash"}}],illegal:"",illegal:"\\n"}]},t,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},r={className:"variable",begin:/&[a-z\d_]*\b/},i={className:"meta-keyword",begin:"/[a-z][a-z\\d-]*/"},s={className:"symbol",begin:"^\\s*[a-zA-Z_][a-zA-Z\\d_]*:"},o={className:"params",begin:"<",end:">",contains:[n,r]},l={className:"class",begin:/[a-zA-Z_][a-zA-Z\d_@]*\s\{/,end:/[{;=]/,returnBegin:!0,excludeEnd:!0},c={className:"class",begin:"/\\s*\\{",end:/\};/,relevance:10,contains:[r,i,s,l,o,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n,t]};return{name:"Device Tree",keywords:"",contains:[c,r,i,s,l,o,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n,t,a,{begin:e.IDENT_RE+"::",keywords:""}]}}var ps=Es;function gs(e){const t="if eq ne lt lte gt gte select default math sep";return{name:"Dust",aliases:["dst"],case_insensitive:!0,subLanguage:"xml",contains:[{className:"template-tag",begin:/\{[#\/]/,end:/\}/,illegal:/;/,contains:[{className:"name",begin:/[a-zA-Z\.-]+/,starts:{endsWithParent:!0,relevance:0,contains:[e.QUOTE_STRING_MODE]}}]},{className:"template-variable",begin:/\{/,end:/\}/,illegal:/;/,keywords:t}]}}var Ss=gs;function Ts(e){const t=e.COMMENT(/\(\*/,/\*\)/),n={className:"attribute",begin:/^[ ]*[a-zA-Z]+([\s_-]+[a-zA-Z]+)*/},r={begin:/=/,end:/[.;]/,contains:[t,{className:"meta",begin:/\?.*\?/},{className:"string",variants:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{begin:"`",end:"`"}]}]};return{name:"Extended Backus-Naur Form",illegal:/\S/,contains:[t,n,r]}}var bs=Ts;function Rs(e){const t="[a-zA-Z_][a-zA-Z0-9_.]*(!|\\?)?",n="[a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",a={$pattern:t,keyword:"and false then defined module in return redo retry end for true self when next until do begin unless nil break not case cond alias while ensure or include use alias fn quote require import with|0"},r={className:"subst",begin:/#\{/,end:/\}/,keywords:a},i={className:"number",begin:"(\\b0o[0-7_]+)|(\\b0b[01_]+)|(\\b0x[0-9a-fA-F_]+)|(-?\\b[1-9][0-9_]*(\\.[0-9_]+([eE][-+]?[0-9]+)?)?)",relevance:0},s=`[/|([{<"']`,o={className:"string",begin:"~[a-z](?="+s+")",contains:[{endsParent:!0,contains:[{contains:[e.BACKSLASH_ESCAPE,r],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/},{begin:/\//,end:/\//},{begin:/\|/,end:/\|/},{begin:/\(/,end:/\)/},{begin:/\[/,end:/\]/},{begin:/\{/,end:/\}/},{begin://}]}]}]},l={className:"string",begin:"~[A-Z](?="+s+")",contains:[{begin:/"/,end:/"/},{begin:/'/,end:/'/},{begin:/\//,end:/\//},{begin:/\|/,end:/\|/},{begin:/\(/,end:/\)/},{begin:/\[/,end:/\]/},{begin:/\{/,end:/\}/},{begin://}]},c={className:"string",contains:[e.BACKSLASH_ESCAPE,r],variants:[{begin:/"""/,end:/"""/},{begin:/'''/,end:/'''/},{begin:/~S"""/,end:/"""/,contains:[]},{begin:/~S"/,end:/"/,contains:[]},{begin:/~S'''/,end:/'''/,contains:[]},{begin:/~S'/,end:/'/,contains:[]},{begin:/'/,end:/'/},{begin:/"/,end:/"/}]},_={className:"function",beginKeywords:"def defp defmacro",end:/\B\b/,contains:[e.inherit(e.TITLE_MODE,{begin:t,endsParent:!0})]},u=e.inherit(_,{className:"class",beginKeywords:"defimpl defmodule defprotocol defrecord",end:/\bdo\b|$|;/}),m=[c,l,o,e.HASH_COMMENT_MODE,u,_,{begin:"::"},{className:"symbol",begin:":(?![\\s:])",contains:[c,{begin:n}],relevance:0},{className:"symbol",begin:t+":(?!:)",relevance:0},i,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))"},{begin:"->"},{begin:"("+e.RE_STARTERS_RE+")\\s*",contains:[e.HASH_COMMENT_MODE,{begin:/\/: (?=\d+\s*[,\]])/,relevance:0,contains:[i]},{className:"regexp",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,r],variants:[{begin:"/",end:"/[a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}],relevance:0}];return r.contains=m,{name:"Elixir",keywords:a,contains:m}}var Ns=Rs;function Cs(e){const t={variants:[e.COMMENT("--","$"),e.COMMENT(/\{-/,/-\}/,{contains:["self"]})]},n={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},a={begin:"\\(",end:"\\)",illegal:'"',contains:[{className:"type",begin:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},t]},r={begin:/\{/,end:/\}/,contains:a.contains},i={className:"string",begin:"'\\\\?.",end:"'",illegal:"."};return{name:"Elm",keywords:"let in if then else case of where module import exposing type alias as infix infixl infixr port effect command subscription",contains:[{beginKeywords:"port effect module",end:"exposing",keywords:"port effect module where command subscription exposing",contains:[a,t],illegal:"\\W\\.|;"},{begin:"import",end:"$",keywords:"import as exposing",contains:[a,t],illegal:"\\W\\.|;"},{begin:"type",end:"$",keywords:"type alias",contains:[n,a,r,t]},{beginKeywords:"infix infixl infixr",end:"$",contains:[e.C_NUMBER_MODE,t]},{begin:"port",end:"$",keywords:"port",contains:[t]},i,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,n,e.inherit(e.TITLE_MODE,{begin:"^[_a-z][\\w']*"}),t,{begin:"->|<-"}],illegal:/;/}}var fs=Cs;function Os(e){return e?typeof e=="string"?e:e.source:null}function Is(e){return ln("(?=",e,")")}function ln(...e){return e.map(n=>Os(n)).join("")}function As(e){const t="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",n={keyword:"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor __FILE__",built_in:"proc lambda",literal:"true false nil"},a={className:"doctag",begin:"@[A-Za-z]+"},r={begin:"#<",end:">"},i=[e.COMMENT("#","$",{contains:[a]}),e.COMMENT("^=begin","^=end",{contains:[a],relevance:10}),e.COMMENT("^__END__","\\n$")],s={className:"subst",begin:/#\{/,end:/\}/,keywords:n},o={className:"string",contains:[e.BACKSLASH_ESCAPE,s],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:/<<[-~]?'?(\w+)\n(?:[^\n]*\n)*?\s*\1\b/,returnBegin:!0,contains:[{begin:/<<[-~]?'?/},e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,s]})]}]},l="[1-9](_?[0-9])*|0",c="[0-9](_?[0-9])*",_={className:"number",relevance:0,variants:[{begin:`\\b(${l})(\\.(${c}))?([eE][+-]?(${c})|r)?i?\\b`},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},u={className:"params",begin:"\\(",end:"\\)",endsParent:!0,keywords:n},m=[o,{className:"class",beginKeywords:"class module",end:"$|;",illegal:/=/,contains:[e.inherit(e.TITLE_MODE,{begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|!)?"}),{begin:"<\\s*",contains:[{begin:"("+e.IDENT_RE+"::)?"+e.IDENT_RE,relevance:0}]}].concat(i)},{className:"function",begin:ln(/def\s+/,Is(t+"\\s*(\\(|;|$)")),relevance:0,keywords:"def",end:"$|;",contains:[e.inherit(e.TITLE_MODE,{begin:t}),u].concat(i)},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[o,{begin:t}],relevance:0},_,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|/,end:/\|/,relevance:0,keywords:n},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,s],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(r,i),relevance:0}].concat(r,i);s.contains=m,u.contains=m;const g="[>?]>",E="[\\w#]+\\(\\w+\\):\\d+:\\d+>",S="(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>",T=[{begin:/^\s*=>/,starts:{end:"$",contains:m}},{className:"meta",begin:"^("+g+"|"+E+"|"+S+")(?=[ ])",starts:{end:"$",contains:m}}];return i.unshift(r),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:n,illegal:/\/\*/,contains:[e.SHEBANG({binary:"ruby"})].concat(T).concat(i).concat(m)}}var vs=As;function ys(e){return{name:"ERB",subLanguage:"xml",contains:[e.COMMENT("<%#","%>"),{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0}]}}var Ds=ys;function hs(e){return e?typeof e=="string"?e:e.source:null}function Ms(...e){return e.map(n=>hs(n)).join("")}function Ls(e){return{name:"Erlang REPL",keywords:{built_in:"spawn spawn_link self",keyword:"after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse|10 query receive rem try when xor"},contains:[{className:"meta",begin:"^[0-9]+> ",relevance:10},e.COMMENT("%","$"),{className:"number",begin:"\\b(\\d+(_\\d+)*#[a-fA-F0-9]+(_[a-fA-F0-9]+)*|\\d+(_\\d+)*(\\.\\d+(_\\d+)*)?([eE][-+]?\\d+)?)",relevance:0},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{begin:Ms(/\?(::)?/,/([A-Z]\w*)/,/((::)[A-Z]\w*)*/)},{begin:"->"},{begin:"ok"},{begin:"!"},{begin:"(\\b[a-z'][a-zA-Z0-9_']*:[a-z'][a-zA-Z0-9_']*)|(\\b[a-z'][a-zA-Z0-9_']*)",relevance:0},{begin:"[A-Z][a-zA-Z0-9_']*",relevance:0}]}}var xs=Ls;function Ps(e){const t="[a-z'][a-zA-Z0-9_']*",n="("+t+":"+t+"|"+t+")",a={keyword:"after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if let not of orelse|10 query receive rem try when xor",literal:"false true"},r=e.COMMENT("%","$"),i={className:"number",begin:"\\b(\\d+(_\\d+)*#[a-fA-F0-9]+(_[a-fA-F0-9]+)*|\\d+(_\\d+)*(\\.\\d+(_\\d+)*)?([eE][-+]?\\d+)?)",relevance:0},s={begin:"fun\\s+"+t+"/\\d+"},o={begin:n+"\\(",end:"\\)",returnBegin:!0,relevance:0,contains:[{begin:n,relevance:0},{begin:"\\(",end:"\\)",endsWithParent:!0,returnEnd:!0,relevance:0}]},l={begin:/\{/,end:/\}/,relevance:0},c={begin:"\\b_([A-Z][A-Za-z0-9_]*)?",relevance:0},_={begin:"[A-Z][a-zA-Z0-9_]*",relevance:0},u={begin:"#"+e.UNDERSCORE_IDENT_RE,relevance:0,returnBegin:!0,contains:[{begin:"#"+e.UNDERSCORE_IDENT_RE,relevance:0},{begin:/\{/,end:/\}/,relevance:0}]},m={beginKeywords:"fun receive if try case",end:"end",keywords:a};m.contains=[r,s,e.inherit(e.APOS_STRING_MODE,{className:""}),m,o,e.QUOTE_STRING_MODE,i,l,c,_,u];const g=[r,s,m,o,e.QUOTE_STRING_MODE,i,l,c,_,u];o.contains[1].contains=g,l.contains=g,u.contains[1].contains=g;const E=["-module","-record","-undef","-export","-ifdef","-ifndef","-author","-copyright","-doc","-vsn","-import","-include","-include_lib","-compile","-define","-else","-endif","-file","-behaviour","-behavior","-spec"],S={className:"params",begin:"\\(",end:"\\)",contains:g};return{name:"Erlang",aliases:["erl"],keywords:a,illegal:"(",returnBegin:!0,illegal:"\\(|#|//|/\\*|\\\\|:|;",contains:[S,e.inherit(e.TITLE_MODE,{begin:t})],starts:{end:";|\\.",keywords:a,contains:g}},r,{begin:"^-",end:"\\.",relevance:0,excludeEnd:!0,returnBegin:!0,keywords:{$pattern:"-"+e.IDENT_RE,keyword:E.map(T=>`${T}|1.5`).join(" ")},contains:[S]},i,e.QUOTE_STRING_MODE,u,c,_,l,{begin:/\.$/}]}}var ws=Ps;function ks(e){return{name:"Excel formulae",aliases:["xlsx","xls"],case_insensitive:!0,keywords:{$pattern:/[a-zA-Z][\w\.]*/,built_in:"ABS ACCRINT ACCRINTM ACOS ACOSH ACOT ACOTH AGGREGATE ADDRESS AMORDEGRC AMORLINC AND ARABIC AREAS ASC ASIN ASINH ATAN ATAN2 ATANH AVEDEV AVERAGE AVERAGEA AVERAGEIF AVERAGEIFS BAHTTEXT BASE BESSELI BESSELJ BESSELK BESSELY BETADIST BETA.DIST BETAINV BETA.INV BIN2DEC BIN2HEX BIN2OCT BINOMDIST BINOM.DIST BINOM.DIST.RANGE BINOM.INV BITAND BITLSHIFT BITOR BITRSHIFT BITXOR CALL CEILING CEILING.MATH CEILING.PRECISE CELL CHAR CHIDIST CHIINV CHITEST CHISQ.DIST CHISQ.DIST.RT CHISQ.INV CHISQ.INV.RT CHISQ.TEST CHOOSE CLEAN CODE COLUMN COLUMNS COMBIN COMBINA COMPLEX CONCAT CONCATENATE CONFIDENCE CONFIDENCE.NORM CONFIDENCE.T CONVERT CORREL COS COSH COT COTH COUNT COUNTA COUNTBLANK COUNTIF COUNTIFS COUPDAYBS COUPDAYS COUPDAYSNC COUPNCD COUPNUM COUPPCD COVAR COVARIANCE.P COVARIANCE.S CRITBINOM CSC CSCH CUBEKPIMEMBER CUBEMEMBER CUBEMEMBERPROPERTY CUBERANKEDMEMBER CUBESET CUBESETCOUNT CUBEVALUE CUMIPMT CUMPRINC DATE DATEDIF DATEVALUE DAVERAGE DAY DAYS DAYS360 DB DBCS DCOUNT DCOUNTA DDB DEC2BIN DEC2HEX DEC2OCT DECIMAL DEGREES DELTA DEVSQ DGET DISC DMAX DMIN DOLLAR DOLLARDE DOLLARFR DPRODUCT DSTDEV DSTDEVP DSUM DURATION DVAR DVARP EDATE EFFECT ENCODEURL EOMONTH ERF ERF.PRECISE ERFC ERFC.PRECISE ERROR.TYPE EUROCONVERT EVEN EXACT EXP EXPON.DIST EXPONDIST FACT FACTDOUBLE FALSE|0 F.DIST FDIST F.DIST.RT FILTERXML FIND FINDB F.INV F.INV.RT FINV FISHER FISHERINV FIXED FLOOR FLOOR.MATH FLOOR.PRECISE FORECAST FORECAST.ETS FORECAST.ETS.CONFINT FORECAST.ETS.SEASONALITY FORECAST.ETS.STAT FORECAST.LINEAR FORMULATEXT FREQUENCY F.TEST FTEST FV FVSCHEDULE GAMMA GAMMA.DIST GAMMADIST GAMMA.INV GAMMAINV GAMMALN GAMMALN.PRECISE GAUSS GCD GEOMEAN GESTEP GETPIVOTDATA GROWTH HARMEAN HEX2BIN HEX2DEC HEX2OCT HLOOKUP HOUR HYPERLINK HYPGEOM.DIST HYPGEOMDIST IF IFERROR IFNA IFS IMABS IMAGINARY IMARGUMENT IMCONJUGATE IMCOS IMCOSH IMCOT IMCSC IMCSCH IMDIV IMEXP IMLN IMLOG10 IMLOG2 IMPOWER IMPRODUCT IMREAL IMSEC IMSECH IMSIN IMSINH IMSQRT IMSUB IMSUM IMTAN INDEX INDIRECT INFO INT INTERCEPT INTRATE IPMT IRR ISBLANK ISERR ISERROR ISEVEN ISFORMULA ISLOGICAL ISNA ISNONTEXT ISNUMBER ISODD ISREF ISTEXT ISO.CEILING ISOWEEKNUM ISPMT JIS KURT LARGE LCM LEFT LEFTB LEN LENB LINEST LN LOG LOG10 LOGEST LOGINV LOGNORM.DIST LOGNORMDIST LOGNORM.INV LOOKUP LOWER MATCH MAX MAXA MAXIFS MDETERM MDURATION MEDIAN MID MIDBs MIN MINIFS MINA MINUTE MINVERSE MIRR MMULT MOD MODE MODE.MULT MODE.SNGL MONTH MROUND MULTINOMIAL MUNIT N NA NEGBINOM.DIST NEGBINOMDIST NETWORKDAYS NETWORKDAYS.INTL NOMINAL NORM.DIST NORMDIST NORMINV NORM.INV NORM.S.DIST NORMSDIST NORM.S.INV NORMSINV NOT NOW NPER NPV NUMBERVALUE OCT2BIN OCT2DEC OCT2HEX ODD ODDFPRICE ODDFYIELD ODDLPRICE ODDLYIELD OFFSET OR PDURATION PEARSON PERCENTILE.EXC PERCENTILE.INC PERCENTILE PERCENTRANK.EXC PERCENTRANK.INC PERCENTRANK PERMUT PERMUTATIONA PHI PHONETIC PI PMT POISSON.DIST POISSON POWER PPMT PRICE PRICEDISC PRICEMAT PROB PRODUCT PROPER PV QUARTILE QUARTILE.EXC QUARTILE.INC QUOTIENT RADIANS RAND RANDBETWEEN RANK.AVG RANK.EQ RANK RATE RECEIVED REGISTER.ID REPLACE REPLACEB REPT RIGHT RIGHTB ROMAN ROUND ROUNDDOWN ROUNDUP ROW ROWS RRI RSQ RTD SEARCH SEARCHB SEC SECH SECOND SERIESSUM SHEET SHEETS SIGN SIN SINH SKEW SKEW.P SLN SLOPE SMALL SQL.REQUEST SQRT SQRTPI STANDARDIZE STDEV STDEV.P STDEV.S STDEVA STDEVP STDEVPA STEYX SUBSTITUTE SUBTOTAL SUM SUMIF SUMIFS SUMPRODUCT SUMSQ SUMX2MY2 SUMX2PY2 SUMXMY2 SWITCH SYD T TAN TANH TBILLEQ TBILLPRICE TBILLYIELD T.DIST T.DIST.2T T.DIST.RT TDIST TEXT TEXTJOIN TIME TIMEVALUE T.INV T.INV.2T TINV TODAY TRANSPOSE TREND TRIM TRIMMEAN TRUE|0 TRUNC T.TEST TTEST TYPE UNICHAR UNICODE UPPER VALUE VAR VAR.P VAR.S VARA VARP VARPA VDB VLOOKUP WEBSERVICE WEEKDAY WEEKNUM WEIBULL WEIBULL.DIST WORKDAY WORKDAY.INTL XIRR XNPV XOR YEAR YEARFRAC YIELD YIELDDISC YIELDMAT Z.TEST ZTEST"},contains:[{begin:/^=/,end:/[^=]/,returnEnd:!0,illegal:/=/,relevance:10},{className:"symbol",begin:/\b[A-Z]{1,2}\d+\b/,end:/[^\d]/,excludeEnd:!0,relevance:0},{className:"symbol",begin:/[A-Z]{0,2}\d*:[A-Z]{0,2}\d*/,relevance:0},e.BACKSLASH_ESCAPE,e.QUOTE_STRING_MODE,{className:"number",begin:e.NUMBER_RE+"(%)?",relevance:0},e.COMMENT(/\bN\(/,/\)/,{excludeBegin:!0,excludeEnd:!0,illegal:/\n/})]}}var Us=ks;function Fs(e){return{name:"FIX",contains:[{begin:/[^\u2401\u0001]+/,end:/[\u2401\u0001]/,excludeEnd:!0,returnBegin:!0,returnEnd:!1,contains:[{begin:/([^\u2401\u0001=]+)/,end:/=([^\u2401\u0001=]+)/,returnEnd:!0,returnBegin:!1,className:"attr"},{begin:/=/,end:/([\u2401\u0001])/,excludeEnd:!0,excludeBegin:!0,className:"string"}]}],case_insensitive:!0}}var Bs=Fs;function Gs(e){const t={className:"string",begin:/'(.|\\[xXuU][a-zA-Z0-9]+)'/},n={className:"string",variants:[{begin:'"',end:'"'}]},r={className:"function",beginKeywords:"def",end:/[:={\[(\n;]/,excludeEnd:!0,contains:[{className:"title",relevance:0,begin:/[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/}]};return{name:"Flix",keywords:{literal:"true false",keyword:"case class def else enum if impl import in lat rel index let match namespace switch type yield with"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t,n,r,e.C_NUMBER_MODE]}}var Ys=Gs;function Hs(e){return e?typeof e=="string"?e:e.source:null}function tt(...e){return e.map(n=>Hs(n)).join("")}function Vs(e){const t={className:"params",begin:"\\(",end:"\\)"},n={variants:[e.COMMENT("!","$",{relevance:0}),e.COMMENT("^C[ ]","$",{relevance:0}),e.COMMENT("^C$","$",{relevance:0})]},a=/(_[a-z_\d]+)?/,r=/([de][+-]?\d+)?/,i={className:"number",variants:[{begin:tt(/\b\d+/,/\.(\d*)/,r,a)},{begin:tt(/\b\d+/,r,a)},{begin:tt(/\.\d+/,r,a)}],relevance:0},s={className:"function",beginKeywords:"subroutine function program",illegal:"[${=\\n]",contains:[e.UNDERSCORE_TITLE_MODE,t]},o={className:"string",relevance:0,variants:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]};return{name:"Fortran",case_insensitive:!0,aliases:["f90","f95"],keywords:{literal:".False. .True.",keyword:"kind do concurrent local shared while private call intrinsic where elsewhere type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then block endblock endassociate public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. goto save else use module select case access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit continue format pause cycle exit c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg synchronous nopass non_overridable pass protected volatile abstract extends import non_intrinsic value deferred generic final enumerator class associate bind enum c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated c_f_pointer c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure impure integer real character complex logical codimension dimension allocatable|10 parameter external implicit|10 none double precision assign intent optional pointer target in out common equivalence data",built_in:"alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod qnint qsign qsin qsinh qsqrt qtan qtanh abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_of acosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr num_images parity popcnt poppar shifta shiftl shiftr this_image sync change team co_broadcast co_max co_min co_sum co_reduce"},illegal:/\/\*/,contains:[o,s,{begin:/^C\s*=(?!=)/,relevance:0},n,i]}}var qs=Vs;function $s(e){const t={begin:"<",end:">",contains:[e.inherit(e.TITLE_MODE,{begin:/'[a-zA-Z0-9_]+/})]};return{name:"F#",aliases:["fs"],keywords:"abstract and as assert base begin class default delegate do done downcast downto elif else end exception extern false finally for fun function global if in inherit inline interface internal lazy let match member module mutable namespace new null of open or override private public rec return sig static struct then to true try type upcast use val void when while with yield",illegal:/\/\*/,contains:[{className:"keyword",begin:/\b(yield|return|let|do)!/},{className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},{className:"string",begin:'"""',end:'"""'},e.COMMENT("\\(\\*(\\s)","\\*\\)",{contains:["self"]}),{className:"class",beginKeywords:"type",end:"\\(|=|$",excludeEnd:!0,contains:[e.UNDERSCORE_TITLE_MODE,t]},{className:"meta",begin:"\\[<",end:">\\]",relevance:10},{className:"symbol",begin:"\\B('[A-Za-z])\\b",contains:[e.BACKSLASH_ESCAPE]},e.C_LINE_COMMENT_MODE,e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),e.C_NUMBER_MODE]}}var zs=$s;function Ws(e){return e?typeof e=="string"?e:e.source:null}function Ks(e){return dt("(",e,")*")}function dt(...e){return e.map(n=>Ws(n)).join("")}function Qs(e){const t={keyword:"abort acronym acronyms alias all and assign binary card diag display else eq file files for free ge gt if integer le loop lt maximizing minimizing model models ne negative no not option options or ord positive prod put putpage puttl repeat sameas semicont semiint smax smin solve sos1 sos2 sum system table then until using while xor yes",literal:"eps inf na",built_in:"abs arccos arcsin arctan arctan2 Beta betaReg binomial ceil centropy cos cosh cvPower div div0 eDist entropy errorf execSeed exp fact floor frac gamma gammaReg log logBeta logGamma log10 log2 mapVal max min mod ncpCM ncpF ncpVUpow ncpVUsin normal pi poly power randBinomial randLinear randTriangle round rPower sigmoid sign signPower sin sinh slexp sllog10 slrec sqexp sqlog10 sqr sqrec sqrt tan tanh trunc uniform uniformInt vcPower bool_and bool_eqv bool_imp bool_not bool_or bool_xor ifThen rel_eq rel_ge rel_gt rel_le rel_lt rel_ne gday gdow ghour gleap gmillisec gminute gmonth gsecond gyear jdate jnow jstart jtime errorLevel execError gamsRelease gamsVersion handleCollect handleDelete handleStatus handleSubmit heapFree heapLimit heapSize jobHandle jobKill jobStatus jobTerminate licenseLevel licenseStatus maxExecError sleep timeClose timeComp timeElapsed timeExec timeStart"},n={className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0},a={className:"symbol",variants:[{begin:/=[lgenxc]=/},{begin:/\$/}]},r={className:"comment",variants:[{begin:"'",end:"'"},{begin:'"',end:'"'}],illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},i={begin:"/",end:"/",keywords:t,contains:[r,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_NUMBER_MODE]},s=/[a-z0-9&#*=?@\\><:,()$[\]_.{}!+%^-]+/,o={begin:/[a-z][a-z0-9_]*(\([a-z0-9_, ]*\))?[ \t]+/,excludeBegin:!0,end:"$",endsWithParent:!0,contains:[r,i,{className:"comment",begin:dt(s,Ks(dt(/[ ]+/,s))),relevance:0}]};return{name:"GAMS",aliases:["gms"],case_insensitive:!0,keywords:t,contains:[e.COMMENT(/^\$ontext/,/^\$offtext/),{className:"meta",begin:"^\\$[a-z0-9]+",end:"$",returnBegin:!0,contains:[{className:"meta-keyword",begin:"^\\$[a-z0-9]+"}]},e.COMMENT("^\\*","$"),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{beginKeywords:"set sets parameter parameters variable variables scalar scalars equation equations",end:";",contains:[e.COMMENT("^\\*","$"),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,i,o]},{beginKeywords:"table",end:";",returnBegin:!0,contains:[{beginKeywords:"table",end:"$",contains:[o]},e.COMMENT("^\\*","$"),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_NUMBER_MODE]},{className:"function",begin:/^[a-z][a-z0-9_,\-+' ()$]+\.{2}/,returnBegin:!0,contains:[{className:"title",begin:/^[a-z0-9_]+/},n,a]},e.C_NUMBER_MODE,a]}}var Xs=Qs;function Zs(e){const t={keyword:"bool break call callexe checkinterrupt clear clearg closeall cls comlog compile continue create debug declare delete disable dlibrary dllcall do dos ed edit else elseif enable end endfor endif endp endo errorlog errorlogat expr external fn for format goto gosub graph if keyword let lib library line load loadarray loadexe loadf loadk loadm loadp loads loadx local locate loopnextindex lprint lpwidth lshow matrix msym ndpclex new open output outwidth plot plotsym pop prcsn print printdos proc push retp return rndcon rndmod rndmult rndseed run save saveall screen scroll setarray show sparse stop string struct system trace trap threadfor threadendfor threadbegin threadjoin threadstat threadend until use while winprint ne ge le gt lt and xor or not eq eqv",built_in:"abs acf aconcat aeye amax amean AmericanBinomCall AmericanBinomCall_Greeks AmericanBinomCall_ImpVol AmericanBinomPut AmericanBinomPut_Greeks AmericanBinomPut_ImpVol AmericanBSCall AmericanBSCall_Greeks AmericanBSCall_ImpVol AmericanBSPut AmericanBSPut_Greeks AmericanBSPut_ImpVol amin amult annotationGetDefaults annotationSetBkd annotationSetFont annotationSetLineColor annotationSetLineStyle annotationSetLineThickness annualTradingDays arccos arcsin areshape arrayalloc arrayindex arrayinit arraytomat asciiload asclabel astd astds asum atan atan2 atranspose axmargin balance band bandchol bandcholsol bandltsol bandrv bandsolpd bar base10 begwind besselj bessely beta box boxcox cdfBeta cdfBetaInv cdfBinomial cdfBinomialInv cdfBvn cdfBvn2 cdfBvn2e cdfCauchy cdfCauchyInv cdfChic cdfChii cdfChinc cdfChincInv cdfExp cdfExpInv cdfFc cdfFnc cdfFncInv cdfGam cdfGenPareto cdfHyperGeo cdfLaplace cdfLaplaceInv cdfLogistic cdfLogisticInv cdfmControlCreate cdfMvn cdfMvn2e cdfMvnce cdfMvne cdfMvt2e cdfMvtce cdfMvte cdfN cdfN2 cdfNc cdfNegBinomial cdfNegBinomialInv cdfNi cdfPoisson cdfPoissonInv cdfRayleigh cdfRayleighInv cdfTc cdfTci cdfTnc cdfTvn cdfWeibull cdfWeibullInv cdir ceil ChangeDir chdir chiBarSquare chol choldn cholsol cholup chrs close code cols colsf combinate combinated complex con cond conj cons ConScore contour conv convertsatostr convertstrtosa corrm corrms corrvc corrx corrxs cos cosh counts countwts crossprd crout croutp csrcol csrlin csvReadM csvReadSA cumprodc cumsumc curve cvtos datacreate datacreatecomplex datalist dataload dataloop dataopen datasave date datestr datestring datestrymd dayinyr dayofweek dbAddDatabase dbClose dbCommit dbCreateQuery dbExecQuery dbGetConnectOptions dbGetDatabaseName dbGetDriverName dbGetDrivers dbGetHostName dbGetLastErrorNum dbGetLastErrorText dbGetNumericalPrecPolicy dbGetPassword dbGetPort dbGetTableHeaders dbGetTables dbGetUserName dbHasFeature dbIsDriverAvailable dbIsOpen dbIsOpenError dbOpen dbQueryBindValue dbQueryClear dbQueryCols dbQueryExecPrepared dbQueryFetchAllM dbQueryFetchAllSA dbQueryFetchOneM dbQueryFetchOneSA dbQueryFinish dbQueryGetBoundValue dbQueryGetBoundValues dbQueryGetField dbQueryGetLastErrorNum dbQueryGetLastErrorText dbQueryGetLastInsertID dbQueryGetLastQuery dbQueryGetPosition dbQueryIsActive dbQueryIsForwardOnly dbQueryIsNull dbQueryIsSelect dbQueryIsValid dbQueryPrepare dbQueryRows dbQuerySeek dbQuerySeekFirst dbQuerySeekLast dbQuerySeekNext dbQuerySeekPrevious dbQuerySetForwardOnly dbRemoveDatabase dbRollback dbSetConnectOptions dbSetDatabaseName dbSetHostName dbSetNumericalPrecPolicy dbSetPort dbSetUserName dbTransaction DeleteFile delif delrows denseToSp denseToSpRE denToZero design det detl dfft dffti diag diagrv digamma doswin DOSWinCloseall DOSWinOpen dotfeq dotfeqmt dotfge dotfgemt dotfgt dotfgtmt dotfle dotflemt dotflt dotfltmt dotfne dotfnemt draw drop dsCreate dstat dstatmt dstatmtControlCreate dtdate dtday dttime dttodtv dttostr dttoutc dtvnormal dtvtodt dtvtoutc dummy dummybr dummydn eig eigh eighv eigv elapsedTradingDays endwind envget eof eqSolve eqSolvemt eqSolvemtControlCreate eqSolvemtOutCreate eqSolveset erf erfc erfccplx erfcplx error etdays ethsec etstr EuropeanBinomCall EuropeanBinomCall_Greeks EuropeanBinomCall_ImpVol EuropeanBinomPut EuropeanBinomPut_Greeks EuropeanBinomPut_ImpVol EuropeanBSCall EuropeanBSCall_Greeks EuropeanBSCall_ImpVol EuropeanBSPut EuropeanBSPut_Greeks EuropeanBSPut_ImpVol exctsmpl exec execbg exp extern eye fcheckerr fclearerr feq feqmt fflush fft ffti fftm fftmi fftn fge fgemt fgets fgetsa fgetsat fgetst fgt fgtmt fileinfo filesa fle flemt floor flt fltmt fmod fne fnemt fonts fopen formatcv formatnv fputs fputst fseek fstrerror ftell ftocv ftos ftostrC gamma gammacplx gammaii gausset gdaAppend gdaCreate gdaDStat gdaDStatMat gdaGetIndex gdaGetName gdaGetNames gdaGetOrders gdaGetType gdaGetTypes gdaGetVarInfo gdaIsCplx gdaLoad gdaPack gdaRead gdaReadByIndex gdaReadSome gdaReadSparse gdaReadStruct gdaReportVarInfo gdaSave gdaUpdate gdaUpdateAndPack gdaVars gdaWrite gdaWrite32 gdaWriteSome getarray getdims getf getGAUSShome getmatrix getmatrix4D getname getnamef getNextTradingDay getNextWeekDay getnr getorders getpath getPreviousTradingDay getPreviousWeekDay getRow getscalar3D getscalar4D getTrRow getwind glm gradcplx gradMT gradMTm gradMTT gradMTTm gradp graphprt graphset hasimag header headermt hess hessMT hessMTg hessMTgw hessMTm hessMTmw hessMTT hessMTTg hessMTTgw hessMTTm hessMTw hessp hist histf histp hsec imag indcv indexcat indices indices2 indicesf indicesfn indnv indsav integrate1d integrateControlCreate intgrat2 intgrat3 inthp1 inthp2 inthp3 inthp4 inthpControlCreate intquad1 intquad2 intquad3 intrleav intrleavsa intrsect intsimp inv invpd invswp iscplx iscplxf isden isinfnanmiss ismiss key keyav keyw lag lag1 lagn lapEighb lapEighi lapEighvb lapEighvi lapgEig lapgEigh lapgEighv lapgEigv lapgSchur lapgSvdcst lapgSvds lapgSvdst lapSvdcusv lapSvds lapSvdusv ldlp ldlsol linSolve listwise ln lncdfbvn lncdfbvn2 lncdfmvn lncdfn lncdfn2 lncdfnc lnfact lngammacplx lnpdfmvn lnpdfmvt lnpdfn lnpdft loadd loadstruct loadwind loess loessmt loessmtControlCreate log loglog logx logy lower lowmat lowmat1 ltrisol lu lusol machEpsilon make makevars makewind margin matalloc matinit mattoarray maxbytes maxc maxindc maxv maxvec mbesselei mbesselei0 mbesselei1 mbesseli mbesseli0 mbesseli1 meanc median mergeby mergevar minc minindc minv miss missex missrv moment momentd movingave movingaveExpwgt movingaveWgt nextindex nextn nextnevn nextwind ntos null null1 numCombinations ols olsmt olsmtControlCreate olsqr olsqr2 olsqrmt ones optn optnevn orth outtyp pacf packedToSp packr parse pause pdfCauchy pdfChi pdfExp pdfGenPareto pdfHyperGeo pdfLaplace pdfLogistic pdfn pdfPoisson pdfRayleigh pdfWeibull pi pinv pinvmt plotAddArrow plotAddBar plotAddBox plotAddHist plotAddHistF plotAddHistP plotAddPolar plotAddScatter plotAddShape plotAddTextbox plotAddTS plotAddXY plotArea plotBar plotBox plotClearLayout plotContour plotCustomLayout plotGetDefaults plotHist plotHistF plotHistP plotLayout plotLogLog plotLogX plotLogY plotOpenWindow plotPolar plotSave plotScatter plotSetAxesPen plotSetBar plotSetBarFill plotSetBarStacked plotSetBkdColor plotSetFill plotSetGrid plotSetLegend plotSetLineColor plotSetLineStyle plotSetLineSymbol plotSetLineThickness plotSetNewWindow plotSetTitle plotSetWhichYAxis plotSetXAxisShow plotSetXLabel plotSetXRange plotSetXTicInterval plotSetXTicLabel plotSetYAxisShow plotSetYLabel plotSetYRange plotSetZAxisShow plotSetZLabel plotSurface plotTS plotXY polar polychar polyeval polygamma polyint polymake polymat polymroot polymult polyroot pqgwin previousindex princomp printfm printfmt prodc psi putarray putf putvals pvCreate pvGetIndex pvGetParNames pvGetParVector pvLength pvList pvPack pvPacki pvPackm pvPackmi pvPacks pvPacksi pvPacksm pvPacksmi pvPutParVector pvTest pvUnpack QNewton QNewtonmt QNewtonmtControlCreate QNewtonmtOutCreate QNewtonSet QProg QProgmt QProgmtInCreate qqr qqre qqrep qr qre qrep qrsol qrtsol qtyr qtyre qtyrep quantile quantiled qyr qyre qyrep qz rank rankindx readr real reclassify reclassifyCuts recode recserar recsercp recserrc rerun rescale reshape rets rev rfft rffti rfftip rfftn rfftnp rfftp rndBernoulli rndBeta rndBinomial rndCauchy rndChiSquare rndCon rndCreateState rndExp rndGamma rndGeo rndGumbel rndHyperGeo rndi rndKMbeta rndKMgam rndKMi rndKMn rndKMnb rndKMp rndKMu rndKMvm rndLaplace rndLCbeta rndLCgam rndLCi rndLCn rndLCnb rndLCp rndLCu rndLCvm rndLogNorm rndMTu rndMVn rndMVt rndn rndnb rndNegBinomial rndp rndPoisson rndRayleigh rndStateSkip rndu rndvm rndWeibull rndWishart rotater round rows rowsf rref sampleData satostrC saved saveStruct savewind scale scale3d scalerr scalinfnanmiss scalmiss schtoc schur searchsourcepath seekr select selif seqa seqm setdif setdifsa setvars setvwrmode setwind shell shiftr sin singleindex sinh sleep solpd sortc sortcc sortd sorthc sorthcc sortind sortindc sortmc sortr sortrc spBiconjGradSol spChol spConjGradSol spCreate spDenseSubmat spDiagRvMat spEigv spEye spLDL spline spLU spNumNZE spOnes spreadSheetReadM spreadSheetReadSA spreadSheetWrite spScale spSubmat spToDense spTrTDense spTScalar spZeros sqpSolve sqpSolveMT sqpSolveMTControlCreate sqpSolveMTlagrangeCreate sqpSolveMToutCreate sqpSolveSet sqrt statements stdc stdsc stocv stof strcombine strindx strlen strput strrindx strsect strsplit strsplitPad strtodt strtof strtofcplx strtriml strtrimr strtrunc strtruncl strtruncpad strtruncr submat subscat substute subvec sumc sumr surface svd svd1 svd2 svdcusv svds svdusv sysstate tab tan tanh tempname time timedt timestr timeutc title tkf2eps tkf2ps tocart todaydt toeplitz token topolar trapchk trigamma trimr trunc type typecv typef union unionsa uniqindx uniqindxsa unique uniquesa upmat upmat1 upper utctodt utctodtv utrisol vals varCovMS varCovXS varget vargetl varmall varmares varput varputl vartypef vcm vcms vcx vcxs vec vech vecr vector vget view viewxyz vlist vnamecv volume vput vread vtypecv wait waitc walkindex where window writer xlabel xlsGetSheetCount xlsGetSheetSize xlsGetSheetTypes xlsMakeRange xlsReadM xlsReadSA xlsWrite xlsWriteM xlsWriteSA xpnd xtics xy xyz ylabel ytics zeros zeta zlabel ztics cdfEmpirical dot h5create h5open h5read h5readAttribute h5write h5writeAttribute ldl plotAddErrorBar plotAddSurface plotCDFEmpirical plotSetColormap plotSetContourLabels plotSetLegendFont plotSetTextInterpreter plotSetXTicCount plotSetYTicCount plotSetZLevels powerm strjoin sylvester strtrim",literal:"DB_AFTER_LAST_ROW DB_ALL_TABLES DB_BATCH_OPERATIONS DB_BEFORE_FIRST_ROW DB_BLOB DB_EVENT_NOTIFICATIONS DB_FINISH_QUERY DB_HIGH_PRECISION DB_LAST_INSERT_ID DB_LOW_PRECISION_DOUBLE DB_LOW_PRECISION_INT32 DB_LOW_PRECISION_INT64 DB_LOW_PRECISION_NUMBERS DB_MULTIPLE_RESULT_SETS DB_NAMED_PLACEHOLDERS DB_POSITIONAL_PLACEHOLDERS DB_PREPARED_QUERIES DB_QUERY_SIZE DB_SIMPLE_LOCKING DB_SYSTEM_TABLES DB_TABLES DB_TRANSACTIONS DB_UNICODE DB_VIEWS __STDIN __STDOUT __STDERR __FILE_DIR"},n=e.COMMENT("@","@"),a={className:"meta",begin:"#",end:"$",keywords:{"meta-keyword":"define definecs|10 undef ifdef ifndef iflight ifdllcall ifmac ifos2win ifunix else endif lineson linesoff srcfile srcline"},contains:[{begin:/\\\n/,relevance:0},{beginKeywords:"include",end:"$",keywords:{"meta-keyword":"include"},contains:[{className:"meta-string",begin:'"',end:'"',illegal:"\\n"}]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n]},r={begin:/\bstruct\s+/,end:/\s/,keywords:"struct",contains:[{className:"type",begin:e.UNDERSCORE_IDENT_RE,relevance:0}]},i=[{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,endsWithParent:!0,relevance:0,contains:[{className:"literal",begin:/\.\.\./},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,r]}],s={className:"title",begin:e.UNDERSCORE_IDENT_RE,relevance:0},o=function(m,g,E){const S=e.inherit({className:"function",beginKeywords:m,end:g,excludeEnd:!0,contains:[].concat(i)},E||{});return S.contains.push(s),S.contains.push(e.C_NUMBER_MODE),S.contains.push(e.C_BLOCK_COMMENT_MODE),S.contains.push(n),S},l={className:"built_in",begin:"\\b("+t.built_in.split(" ").join("|")+")\\b"},c={className:"string",begin:'"',end:'"',contains:[e.BACKSLASH_ESCAPE],relevance:0},_={begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,keywords:t,relevance:0,contains:[{beginKeywords:t.keyword},l,{className:"built_in",begin:e.UNDERSCORE_IDENT_RE,relevance:0}]},u={begin:/\(/,end:/\)/,relevance:0,keywords:{built_in:t.built_in,literal:t.literal},contains:[e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,l,_,c,"self"]};return _.contains.push(u),{name:"GAUSS",aliases:["gss"],case_insensitive:!0,keywords:t,illegal:/(\{[%#]|[%#]\}| <- )/,contains:[e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n,c,a,{className:"keyword",begin:/\bexternal (matrix|string|array|sparse matrix|struct|proc|keyword|fn)/},o("proc keyword",";"),o("fn","="),{beginKeywords:"for threadfor",end:/;/,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE,n,u]},{variants:[{begin:e.UNDERSCORE_IDENT_RE+"\\."+e.UNDERSCORE_IDENT_RE},{begin:e.UNDERSCORE_IDENT_RE+"\\s*="}],relevance:0},_,r]}}var Js=Zs;function js(e){const t="[A-Z_][A-Z0-9_.]*",n="%",a={$pattern:t,keyword:"IF DO WHILE ENDWHILE CALL ENDIF SUB ENDSUB GOTO REPEAT ENDREPEAT EQ LT GT NE GE LE OR XOR"},r={className:"meta",begin:"([O])([0-9]+)"},i=e.inherit(e.C_NUMBER_MODE,{begin:"([-+]?((\\.\\d+)|(\\d+)(\\.\\d*)?))|"+e.C_NUMBER_RE}),s=[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.COMMENT(/\(/,/\)/),i,e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"name",begin:"([G])([0-9]+\\.?[0-9]?)"},{className:"name",begin:"([M])([0-9]+\\.?[0-9]?)"},{className:"attr",begin:"(VC|VS|#)",end:"(\\d+)"},{className:"attr",begin:"(VZOFX|VZOFY|VZOFZ)"},{className:"built_in",begin:"(ATAN|ABS|ACOS|ASIN|SIN|COS|EXP|FIX|FUP|ROUND|LN|TAN)(\\[)",contains:[i],end:"\\]"},{className:"symbol",variants:[{begin:"N",end:"\\d+",illegal:"\\W"}]}];return{name:"G-code (ISO 6983)",aliases:["nc"],case_insensitive:!0,keywords:a,contains:[{className:"meta",begin:n},r].concat(s)}}var el=js;function tl(e){return{name:"Gherkin",aliases:["feature"],keywords:"Feature Background Ability Business Need Scenario Scenarios Scenario Outline Scenario Template Examples Given And Then But When",contains:[{className:"symbol",begin:"\\*",relevance:0},{className:"meta",begin:"@[^@\\s]+"},{begin:"\\|",end:"\\|\\w*$",contains:[{className:"string",begin:"[^|]+"}]},{className:"variable",begin:"<",end:">"},e.HASH_COMMENT_MODE,{className:"string",begin:'"""',end:'"""'},e.QUOTE_STRING_MODE]}}var nl=tl;function al(e){return{name:"GLSL",keywords:{keyword:"break continue discard do else for if return while switch case default attribute binding buffer ccw centroid centroid varying coherent column_major const cw depth_any depth_greater depth_less depth_unchanged early_fragment_tests equal_spacing flat fractional_even_spacing fractional_odd_spacing highp in index inout invariant invocations isolines layout line_strip lines lines_adjacency local_size_x local_size_y local_size_z location lowp max_vertices mediump noperspective offset origin_upper_left out packed patch pixel_center_integer point_mode points precise precision quads r11f_g11f_b10f r16 r16_snorm r16f r16i r16ui r32f r32i r32ui r8 r8_snorm r8i r8ui readonly restrict rg16 rg16_snorm rg16f rg16i rg16ui rg32f rg32i rg32ui rg8 rg8_snorm rg8i rg8ui rgb10_a2 rgb10_a2ui rgba16 rgba16_snorm rgba16f rgba16i rgba16ui rgba32f rgba32i rgba32ui rgba8 rgba8_snorm rgba8i rgba8ui row_major sample shared smooth std140 std430 stream triangle_strip triangles triangles_adjacency uniform varying vertices volatile writeonly",type:"atomic_uint bool bvec2 bvec3 bvec4 dmat2 dmat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 double dvec2 dvec3 dvec4 float iimage1D iimage1DArray iimage2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBuffer iimageCube iimageCubeArray image1D image1DArray image2D image2DArray image2DMS image2DMSArray image2DRect image3D imageBuffer imageCube imageCubeArray int isampler1D isampler1DArray isampler2D isampler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D isamplerBuffer isamplerCube isamplerCubeArray ivec2 ivec3 ivec4 mat2 mat2x2 mat2x3 mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 sampler1D sampler1DArray sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D samplerBuffer samplerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow image1D uimage1DArray uimage2D uimage2DArray uimage2DMS uimage2DMSArray uimage2DRect uimage3D uimageBuffer uimageCube uimageCubeArray uint usampler1D usampler1DArray usampler2D usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D samplerBuffer usamplerCube usamplerCubeArray uvec2 uvec3 uvec4 vec2 vec3 vec4 void",built_in:"gl_MaxAtomicCounterBindings gl_MaxAtomicCounterBufferSize gl_MaxClipDistances gl_MaxClipPlanes gl_MaxCombinedAtomicCounterBuffers gl_MaxCombinedAtomicCounters gl_MaxCombinedImageUniforms gl_MaxCombinedImageUnitsAndFragmentOutputs gl_MaxCombinedTextureImageUnits gl_MaxComputeAtomicCounterBuffers gl_MaxComputeAtomicCounters gl_MaxComputeImageUniforms gl_MaxComputeTextureImageUnits gl_MaxComputeUniformComponents gl_MaxComputeWorkGroupCount gl_MaxComputeWorkGroupSize gl_MaxDrawBuffers gl_MaxFragmentAtomicCounterBuffers gl_MaxFragmentAtomicCounters gl_MaxFragmentImageUniforms gl_MaxFragmentInputComponents gl_MaxFragmentInputVectors gl_MaxFragmentUniformComponents gl_MaxFragmentUniformVectors gl_MaxGeometryAtomicCounterBuffers gl_MaxGeometryAtomicCounters gl_MaxGeometryImageUniforms gl_MaxGeometryInputComponents gl_MaxGeometryOutputComponents gl_MaxGeometryOutputVertices gl_MaxGeometryTextureImageUnits gl_MaxGeometryTotalOutputComponents gl_MaxGeometryUniformComponents gl_MaxGeometryVaryingComponents gl_MaxImageSamples gl_MaxImageUnits gl_MaxLights gl_MaxPatchVertices gl_MaxProgramTexelOffset gl_MaxTessControlAtomicCounterBuffers gl_MaxTessControlAtomicCounters gl_MaxTessControlImageUniforms gl_MaxTessControlInputComponents gl_MaxTessControlOutputComponents gl_MaxTessControlTextureImageUnits gl_MaxTessControlTotalOutputComponents gl_MaxTessControlUniformComponents gl_MaxTessEvaluationAtomicCounterBuffers gl_MaxTessEvaluationAtomicCounters gl_MaxTessEvaluationImageUniforms gl_MaxTessEvaluationInputComponents gl_MaxTessEvaluationOutputComponents gl_MaxTessEvaluationTextureImageUnits gl_MaxTessEvaluationUniformComponents gl_MaxTessGenLevel gl_MaxTessPatchComponents gl_MaxTextureCoords gl_MaxTextureImageUnits gl_MaxTextureUnits gl_MaxVaryingComponents gl_MaxVaryingFloats gl_MaxVaryingVectors gl_MaxVertexAtomicCounterBuffers gl_MaxVertexAtomicCounters gl_MaxVertexAttribs gl_MaxVertexImageUniforms gl_MaxVertexOutputComponents gl_MaxVertexOutputVectors gl_MaxVertexTextureImageUnits gl_MaxVertexUniformComponents gl_MaxVertexUniformVectors gl_MaxViewports gl_MinProgramTexelOffset gl_BackColor gl_BackLightModelProduct gl_BackLightProduct gl_BackMaterial gl_BackSecondaryColor gl_ClipDistance gl_ClipPlane gl_ClipVertex gl_Color gl_DepthRange gl_EyePlaneQ gl_EyePlaneR gl_EyePlaneS gl_EyePlaneT gl_Fog gl_FogCoord gl_FogFragCoord gl_FragColor gl_FragCoord gl_FragData gl_FragDepth gl_FrontColor gl_FrontFacing gl_FrontLightModelProduct gl_FrontLightProduct gl_FrontMaterial gl_FrontSecondaryColor gl_GlobalInvocationID gl_InstanceID gl_InvocationID gl_Layer gl_LightModel gl_LightSource gl_LocalInvocationID gl_LocalInvocationIndex gl_ModelViewMatrix gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_Normal gl_NormalMatrix gl_NormalScale gl_NumSamples gl_NumWorkGroups gl_ObjectPlaneQ gl_ObjectPlaneR gl_ObjectPlaneS gl_ObjectPlaneT gl_PatchVerticesIn gl_Point gl_PointCoord gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_ProjectionMatrix gl_ProjectionMatrixInverse gl_ProjectionMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask gl_SampleMaskIn gl_SamplePosition gl_SecondaryColor gl_TessCoord gl_TessLevelInner gl_TessLevelOuter gl_TexCoord gl_TextureEnvColor gl_TextureMatrix gl_TextureMatrixInverse gl_TextureMatrixInverseTranspose gl_TextureMatrixTranspose gl_Vertex gl_VertexID gl_ViewportIndex gl_WorkGroupID gl_WorkGroupSize gl_in gl_out EmitStreamVertex EmitVertex EndPrimitive EndStreamPrimitive abs acos acosh all any asin asinh atan atanh atomicAdd atomicAnd atomicCompSwap atomicCounter atomicCounterDecrement atomicCounterIncrement atomicExchange atomicMax atomicMin atomicOr atomicXor barrier bitCount bitfieldExtract bitfieldInsert bitfieldReverse ceil clamp cos cosh cross dFdx dFdy degrees determinant distance dot equal exp exp2 faceforward findLSB findMSB floatBitsToInt floatBitsToUint floor fma fract frexp ftransform fwidth greaterThan greaterThanEqual groupMemoryBarrier imageAtomicAdd imageAtomicAnd imageAtomicCompSwap imageAtomicExchange imageAtomicMax imageAtomicMin imageAtomicOr imageAtomicXor imageLoad imageSize imageStore imulExtended intBitsToFloat interpolateAtCentroid interpolateAtOffset interpolateAtSample inverse inversesqrt isinf isnan ldexp length lessThan lessThanEqual log log2 matrixCompMult max memoryBarrier memoryBarrierAtomicCounter memoryBarrierBuffer memoryBarrierImage memoryBarrierShared min mix mod modf noise1 noise2 noise3 noise4 normalize not notEqual outerProduct packDouble2x32 packHalf2x16 packSnorm2x16 packSnorm4x8 packUnorm2x16 packUnorm4x8 pow radians reflect refract round roundEven shadow1D shadow1DLod shadow1DProj shadow1DProjLod shadow2D shadow2DLod shadow2DProj shadow2DProjLod sign sin sinh smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture texture1D texture1DLod texture1DProj texture1DProjLod texture2D texture2DLod texture2DProj texture2DProjLod texture3D texture3DLod texture3DProj texture3DProjLod textureCube textureCubeLod textureGather textureGatherOffset textureGatherOffsets textureGrad textureGradOffset textureLod textureLodOffset textureOffset textureProj textureProjGrad textureProjGradOffset textureProjLod textureProjLodOffset textureProjOffset textureQueryLevels textureQueryLod textureSize transpose trunc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 unpackHalf2x16 unpackSnorm2x16 unpackSnorm4x8 unpackUnorm2x16 unpackUnorm4x8 usubBorrow",literal:"true false"},illegal:'"',contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,{className:"meta",begin:"#",end:"$"}]}}var rl=al;function il(e){return{name:"GML",case_insensitive:!1,keywords:{keyword:"begin end if then else while do for break continue with until repeat exit and or xor not return mod div switch case default var globalvar enum function constructor delete #macro #region #endregion",built_in:"is_real is_string is_array is_undefined is_int32 is_int64 is_ptr is_vec3 is_vec4 is_matrix is_bool is_method is_struct is_infinity is_nan is_numeric typeof variable_global_exists variable_global_get variable_global_set variable_instance_exists variable_instance_get variable_instance_set variable_instance_get_names variable_struct_exists variable_struct_get variable_struct_get_names variable_struct_names_count variable_struct_remove variable_struct_set array_delete array_insert array_length array_length_1d array_length_2d array_height_2d array_equals array_create array_copy array_pop array_push array_resize array_sort random random_range irandom irandom_range random_set_seed random_get_seed randomize randomise choose abs round floor ceil sign frac sqrt sqr exp ln log2 log10 sin cos tan arcsin arccos arctan arctan2 dsin dcos dtan darcsin darccos darctan darctan2 degtorad radtodeg power logn min max mean median clamp lerp dot_product dot_product_3d dot_product_normalised dot_product_3d_normalised dot_product_normalized dot_product_3d_normalized math_set_epsilon math_get_epsilon angle_difference point_distance_3d point_distance point_direction lengthdir_x lengthdir_y real string int64 ptr string_format chr ansi_char ord string_length string_byte_length string_pos string_copy string_char_at string_ord_at string_byte_at string_set_byte_at string_delete string_insert string_lower string_upper string_repeat string_letters string_digits string_lettersdigits string_replace string_replace_all string_count string_hash_to_newline clipboard_has_text clipboard_set_text clipboard_get_text date_current_datetime date_create_datetime date_valid_datetime date_inc_year date_inc_month date_inc_week date_inc_day date_inc_hour date_inc_minute date_inc_second date_get_year date_get_month date_get_week date_get_day date_get_hour date_get_minute date_get_second date_get_weekday date_get_day_of_year date_get_hour_of_year date_get_minute_of_year date_get_second_of_year date_year_span date_month_span date_week_span date_day_span date_hour_span date_minute_span date_second_span date_compare_datetime date_compare_date date_compare_time date_date_of date_time_of date_datetime_string date_date_string date_time_string date_days_in_month date_days_in_year date_leap_year date_is_today date_set_timezone date_get_timezone game_set_speed game_get_speed motion_set motion_add place_free place_empty place_meeting place_snapped move_random move_snap move_towards_point move_contact_solid move_contact_all move_outside_solid move_outside_all move_bounce_solid move_bounce_all move_wrap distance_to_point distance_to_object position_empty position_meeting path_start path_end mp_linear_step mp_potential_step mp_linear_step_object mp_potential_step_object mp_potential_settings mp_linear_path mp_potential_path mp_linear_path_object mp_potential_path_object mp_grid_create mp_grid_destroy mp_grid_clear_all mp_grid_clear_cell mp_grid_clear_rectangle mp_grid_add_cell mp_grid_get_cell mp_grid_add_rectangle mp_grid_add_instances mp_grid_path mp_grid_draw mp_grid_to_ds_grid collision_point collision_rectangle collision_circle collision_ellipse collision_line collision_point_list collision_rectangle_list collision_circle_list collision_ellipse_list collision_line_list instance_position_list instance_place_list point_in_rectangle point_in_triangle point_in_circle rectangle_in_rectangle rectangle_in_triangle rectangle_in_circle instance_find instance_exists instance_number instance_position instance_nearest instance_furthest instance_place instance_create_depth instance_create_layer instance_copy instance_change instance_destroy position_destroy position_change instance_id_get instance_deactivate_all instance_deactivate_object instance_deactivate_region instance_activate_all instance_activate_object instance_activate_region room_goto room_goto_previous room_goto_next room_previous room_next room_restart game_end game_restart game_load game_save game_save_buffer game_load_buffer event_perform event_user event_perform_object event_inherited show_debug_message show_debug_overlay debug_event debug_get_callstack alarm_get alarm_set font_texture_page_size keyboard_set_map keyboard_get_map keyboard_unset_map keyboard_check keyboard_check_pressed keyboard_check_released keyboard_check_direct keyboard_get_numlock keyboard_set_numlock keyboard_key_press keyboard_key_release keyboard_clear io_clear mouse_check_button mouse_check_button_pressed mouse_check_button_released mouse_wheel_up mouse_wheel_down mouse_clear draw_self draw_sprite draw_sprite_pos draw_sprite_ext draw_sprite_stretched draw_sprite_stretched_ext draw_sprite_tiled draw_sprite_tiled_ext draw_sprite_part draw_sprite_part_ext draw_sprite_general draw_clear draw_clear_alpha draw_point draw_line draw_line_width draw_rectangle draw_roundrect draw_roundrect_ext draw_triangle draw_circle draw_ellipse draw_set_circle_precision draw_arrow draw_button draw_path draw_healthbar draw_getpixel draw_getpixel_ext draw_set_colour draw_set_color draw_set_alpha draw_get_colour draw_get_color draw_get_alpha merge_colour make_colour_rgb make_colour_hsv colour_get_red colour_get_green colour_get_blue colour_get_hue colour_get_saturation colour_get_value merge_color make_color_rgb make_color_hsv color_get_red color_get_green color_get_blue color_get_hue color_get_saturation color_get_value merge_color screen_save screen_save_part draw_set_font draw_set_halign draw_set_valign draw_text draw_text_ext string_width string_height string_width_ext string_height_ext draw_text_transformed draw_text_ext_transformed draw_text_colour draw_text_ext_colour draw_text_transformed_colour draw_text_ext_transformed_colour draw_text_color draw_text_ext_color draw_text_transformed_color draw_text_ext_transformed_color draw_point_colour draw_line_colour draw_line_width_colour draw_rectangle_colour draw_roundrect_colour draw_roundrect_colour_ext draw_triangle_colour draw_circle_colour draw_ellipse_colour draw_point_color draw_line_color draw_line_width_color draw_rectangle_color draw_roundrect_color draw_roundrect_color_ext draw_triangle_color draw_circle_color draw_ellipse_color draw_primitive_begin draw_vertex draw_vertex_colour draw_vertex_color draw_primitive_end sprite_get_uvs font_get_uvs sprite_get_texture font_get_texture texture_get_width texture_get_height texture_get_uvs draw_primitive_begin_texture draw_vertex_texture draw_vertex_texture_colour draw_vertex_texture_color texture_global_scale surface_create surface_create_ext surface_resize surface_free surface_exists surface_get_width surface_get_height surface_get_texture surface_set_target surface_set_target_ext surface_reset_target surface_depth_disable surface_get_depth_disable draw_surface draw_surface_stretched draw_surface_tiled draw_surface_part draw_surface_ext draw_surface_stretched_ext draw_surface_tiled_ext draw_surface_part_ext draw_surface_general surface_getpixel surface_getpixel_ext surface_save surface_save_part surface_copy surface_copy_part application_surface_draw_enable application_get_position application_surface_enable application_surface_is_enabled display_get_width display_get_height display_get_orientation display_get_gui_width display_get_gui_height display_reset display_mouse_get_x display_mouse_get_y display_mouse_set display_set_ui_visibility window_set_fullscreen window_get_fullscreen window_set_caption window_set_min_width window_set_max_width window_set_min_height window_set_max_height window_get_visible_rects window_get_caption window_set_cursor window_get_cursor window_set_colour window_get_colour window_set_color window_get_color window_set_position window_set_size window_set_rectangle window_center window_get_x window_get_y window_get_width window_get_height window_mouse_get_x window_mouse_get_y window_mouse_set window_view_mouse_get_x window_view_mouse_get_y window_views_mouse_get_x window_views_mouse_get_y audio_listener_position audio_listener_velocity audio_listener_orientation audio_emitter_position audio_emitter_create audio_emitter_free audio_emitter_exists audio_emitter_pitch audio_emitter_velocity audio_emitter_falloff audio_emitter_gain audio_play_sound audio_play_sound_on audio_play_sound_at audio_stop_sound audio_resume_music audio_music_is_playing audio_resume_sound audio_pause_sound audio_pause_music audio_channel_num audio_sound_length audio_get_type audio_falloff_set_model audio_play_music audio_stop_music audio_master_gain audio_music_gain audio_sound_gain audio_sound_pitch audio_stop_all audio_resume_all audio_pause_all audio_is_playing audio_is_paused audio_exists audio_sound_set_track_position audio_sound_get_track_position audio_emitter_get_gain audio_emitter_get_pitch audio_emitter_get_x audio_emitter_get_y audio_emitter_get_z audio_emitter_get_vx audio_emitter_get_vy audio_emitter_get_vz audio_listener_set_position audio_listener_set_velocity audio_listener_set_orientation audio_listener_get_data audio_set_master_gain audio_get_master_gain audio_sound_get_gain audio_sound_get_pitch audio_get_name audio_sound_set_track_position audio_sound_get_track_position audio_create_stream audio_destroy_stream audio_create_sync_group audio_destroy_sync_group audio_play_in_sync_group audio_start_sync_group audio_stop_sync_group audio_pause_sync_group audio_resume_sync_group audio_sync_group_get_track_pos audio_sync_group_debug audio_sync_group_is_playing audio_debug audio_group_load audio_group_unload audio_group_is_loaded audio_group_load_progress audio_group_name audio_group_stop_all audio_group_set_gain audio_create_buffer_sound audio_free_buffer_sound audio_create_play_queue audio_free_play_queue audio_queue_sound audio_get_recorder_count audio_get_recorder_info audio_start_recording audio_stop_recording audio_sound_get_listener_mask audio_emitter_get_listener_mask audio_get_listener_mask audio_sound_set_listener_mask audio_emitter_set_listener_mask audio_set_listener_mask audio_get_listener_count audio_get_listener_info audio_system show_message show_message_async clickable_add clickable_add_ext clickable_change clickable_change_ext clickable_delete clickable_exists clickable_set_style show_question show_question_async get_integer get_string get_integer_async get_string_async get_login_async get_open_filename get_save_filename get_open_filename_ext get_save_filename_ext show_error highscore_clear highscore_add highscore_value highscore_name draw_highscore sprite_exists sprite_get_name sprite_get_number sprite_get_width sprite_get_height sprite_get_xoffset sprite_get_yoffset sprite_get_bbox_left sprite_get_bbox_right sprite_get_bbox_top sprite_get_bbox_bottom sprite_save sprite_save_strip sprite_set_cache_size sprite_set_cache_size_ext sprite_get_tpe sprite_prefetch sprite_prefetch_multi sprite_flush sprite_flush_multi sprite_set_speed sprite_get_speed_type sprite_get_speed font_exists font_get_name font_get_fontname font_get_bold font_get_italic font_get_first font_get_last font_get_size font_set_cache_size path_exists path_get_name path_get_length path_get_time path_get_kind path_get_closed path_get_precision path_get_number path_get_point_x path_get_point_y path_get_point_speed path_get_x path_get_y path_get_speed script_exists script_get_name timeline_add timeline_delete timeline_clear timeline_exists timeline_get_name timeline_moment_clear timeline_moment_add_script timeline_size timeline_max_moment object_exists object_get_name object_get_sprite object_get_solid object_get_visible object_get_persistent object_get_mask object_get_parent object_get_physics object_is_ancestor room_exists room_get_name sprite_set_offset sprite_duplicate sprite_assign sprite_merge sprite_add sprite_replace sprite_create_from_surface sprite_add_from_surface sprite_delete sprite_set_alpha_from_sprite sprite_collision_mask font_add_enable_aa font_add_get_enable_aa font_add font_add_sprite font_add_sprite_ext font_replace font_replace_sprite font_replace_sprite_ext font_delete path_set_kind path_set_closed path_set_precision path_add path_assign path_duplicate path_append path_delete path_add_point path_insert_point path_change_point path_delete_point path_clear_points path_reverse path_mirror path_flip path_rotate path_rescale path_shift script_execute object_set_sprite object_set_solid object_set_visible object_set_persistent object_set_mask room_set_width room_set_height room_set_persistent room_set_background_colour room_set_background_color room_set_view room_set_viewport room_get_viewport room_set_view_enabled room_add room_duplicate room_assign room_instance_add room_instance_clear room_get_camera room_set_camera asset_get_index asset_get_type file_text_open_from_string file_text_open_read file_text_open_write file_text_open_append file_text_close file_text_write_string file_text_write_real file_text_writeln file_text_read_string file_text_read_real file_text_readln file_text_eof file_text_eoln file_exists file_delete file_rename file_copy directory_exists directory_create directory_destroy file_find_first file_find_next file_find_close file_attributes filename_name filename_path filename_dir filename_drive filename_ext filename_change_ext file_bin_open file_bin_rewrite file_bin_close file_bin_position file_bin_size file_bin_seek file_bin_write_byte file_bin_read_byte parameter_count parameter_string environment_get_variable ini_open_from_string ini_open ini_close ini_read_string ini_read_real ini_write_string ini_write_real ini_key_exists ini_section_exists ini_key_delete ini_section_delete ds_set_precision ds_exists ds_stack_create ds_stack_destroy ds_stack_clear ds_stack_copy ds_stack_size ds_stack_empty ds_stack_push ds_stack_pop ds_stack_top ds_stack_write ds_stack_read ds_queue_create ds_queue_destroy ds_queue_clear ds_queue_copy ds_queue_size ds_queue_empty ds_queue_enqueue ds_queue_dequeue ds_queue_head ds_queue_tail ds_queue_write ds_queue_read ds_list_create ds_list_destroy ds_list_clear ds_list_copy ds_list_size ds_list_empty ds_list_add ds_list_insert ds_list_replace ds_list_delete ds_list_find_index ds_list_find_value ds_list_mark_as_list ds_list_mark_as_map ds_list_sort ds_list_shuffle ds_list_write ds_list_read ds_list_set ds_map_create ds_map_destroy ds_map_clear ds_map_copy ds_map_size ds_map_empty ds_map_add ds_map_add_list ds_map_add_map ds_map_replace ds_map_replace_map ds_map_replace_list ds_map_delete ds_map_exists ds_map_find_value ds_map_find_previous ds_map_find_next ds_map_find_first ds_map_find_last ds_map_write ds_map_read ds_map_secure_save ds_map_secure_load ds_map_secure_load_buffer ds_map_secure_save_buffer ds_map_set ds_priority_create ds_priority_destroy ds_priority_clear ds_priority_copy ds_priority_size ds_priority_empty ds_priority_add ds_priority_change_priority ds_priority_find_priority ds_priority_delete_value ds_priority_delete_min ds_priority_find_min ds_priority_delete_max ds_priority_find_max ds_priority_write ds_priority_read ds_grid_create ds_grid_destroy ds_grid_copy ds_grid_resize ds_grid_width ds_grid_height ds_grid_clear ds_grid_set ds_grid_add ds_grid_multiply ds_grid_set_region ds_grid_add_region ds_grid_multiply_region ds_grid_set_disk ds_grid_add_disk ds_grid_multiply_disk ds_grid_set_grid_region ds_grid_add_grid_region ds_grid_multiply_grid_region ds_grid_get ds_grid_get_sum ds_grid_get_max ds_grid_get_min ds_grid_get_mean ds_grid_get_disk_sum ds_grid_get_disk_min ds_grid_get_disk_max ds_grid_get_disk_mean ds_grid_value_exists ds_grid_value_x ds_grid_value_y ds_grid_value_disk_exists ds_grid_value_disk_x ds_grid_value_disk_y ds_grid_shuffle ds_grid_write ds_grid_read ds_grid_sort ds_grid_set ds_grid_get effect_create_below effect_create_above effect_clear part_type_create part_type_destroy part_type_exists part_type_clear part_type_shape part_type_sprite part_type_size part_type_scale part_type_orientation part_type_life part_type_step part_type_death part_type_speed part_type_direction part_type_gravity part_type_colour1 part_type_colour2 part_type_colour3 part_type_colour_mix part_type_colour_rgb part_type_colour_hsv part_type_color1 part_type_color2 part_type_color3 part_type_color_mix part_type_color_rgb part_type_color_hsv part_type_alpha1 part_type_alpha2 part_type_alpha3 part_type_blend part_system_create part_system_create_layer part_system_destroy part_system_exists part_system_clear part_system_draw_order part_system_depth part_system_position part_system_automatic_update part_system_automatic_draw part_system_update part_system_drawit part_system_get_layer part_system_layer part_particles_create part_particles_create_colour part_particles_create_color part_particles_clear part_particles_count part_emitter_create part_emitter_destroy part_emitter_destroy_all part_emitter_exists part_emitter_clear part_emitter_region part_emitter_burst part_emitter_stream external_call external_define external_free window_handle window_device matrix_get matrix_set matrix_build_identity matrix_build matrix_build_lookat matrix_build_projection_ortho matrix_build_projection_perspective matrix_build_projection_perspective_fov matrix_multiply matrix_transform_vertex matrix_stack_push matrix_stack_pop matrix_stack_multiply matrix_stack_set matrix_stack_clear matrix_stack_top matrix_stack_is_empty browser_input_capture os_get_config os_get_info os_get_language os_get_region os_lock_orientation display_get_dpi_x display_get_dpi_y display_set_gui_size display_set_gui_maximise display_set_gui_maximize device_mouse_dbclick_enable display_set_timing_method display_get_timing_method display_set_sleep_margin display_get_sleep_margin virtual_key_add virtual_key_hide virtual_key_delete virtual_key_show draw_enable_drawevent draw_enable_swf_aa draw_set_swf_aa_level draw_get_swf_aa_level draw_texture_flush draw_flush gpu_set_blendenable gpu_set_ztestenable gpu_set_zfunc gpu_set_zwriteenable gpu_set_lightingenable gpu_set_fog gpu_set_cullmode gpu_set_blendmode gpu_set_blendmode_ext gpu_set_blendmode_ext_sepalpha gpu_set_colorwriteenable gpu_set_colourwriteenable gpu_set_alphatestenable gpu_set_alphatestref gpu_set_alphatestfunc gpu_set_texfilter gpu_set_texfilter_ext gpu_set_texrepeat gpu_set_texrepeat_ext gpu_set_tex_filter gpu_set_tex_filter_ext gpu_set_tex_repeat gpu_set_tex_repeat_ext gpu_set_tex_mip_filter gpu_set_tex_mip_filter_ext gpu_set_tex_mip_bias gpu_set_tex_mip_bias_ext gpu_set_tex_min_mip gpu_set_tex_min_mip_ext gpu_set_tex_max_mip gpu_set_tex_max_mip_ext gpu_set_tex_max_aniso gpu_set_tex_max_aniso_ext gpu_set_tex_mip_enable gpu_set_tex_mip_enable_ext gpu_get_blendenable gpu_get_ztestenable gpu_get_zfunc gpu_get_zwriteenable gpu_get_lightingenable gpu_get_fog gpu_get_cullmode gpu_get_blendmode gpu_get_blendmode_ext gpu_get_blendmode_ext_sepalpha gpu_get_blendmode_src gpu_get_blendmode_dest gpu_get_blendmode_srcalpha gpu_get_blendmode_destalpha gpu_get_colorwriteenable gpu_get_colourwriteenable gpu_get_alphatestenable gpu_get_alphatestref gpu_get_alphatestfunc gpu_get_texfilter gpu_get_texfilter_ext gpu_get_texrepeat gpu_get_texrepeat_ext gpu_get_tex_filter gpu_get_tex_filter_ext gpu_get_tex_repeat gpu_get_tex_repeat_ext gpu_get_tex_mip_filter gpu_get_tex_mip_filter_ext gpu_get_tex_mip_bias gpu_get_tex_mip_bias_ext gpu_get_tex_min_mip gpu_get_tex_min_mip_ext gpu_get_tex_max_mip gpu_get_tex_max_mip_ext gpu_get_tex_max_aniso gpu_get_tex_max_aniso_ext gpu_get_tex_mip_enable gpu_get_tex_mip_enable_ext gpu_push_state gpu_pop_state gpu_get_state gpu_set_state draw_light_define_ambient draw_light_define_direction draw_light_define_point draw_light_enable draw_set_lighting draw_light_get_ambient draw_light_get draw_get_lighting shop_leave_rating url_get_domain url_open url_open_ext url_open_full get_timer achievement_login achievement_logout achievement_post achievement_increment achievement_post_score achievement_available achievement_show_achievements achievement_show_leaderboards achievement_load_friends achievement_load_leaderboard achievement_send_challenge achievement_load_progress achievement_reset achievement_login_status achievement_get_pic achievement_show_challenge_notifications achievement_get_challenges achievement_event achievement_show achievement_get_info cloud_file_save cloud_string_save cloud_synchronise ads_enable ads_disable ads_setup ads_engagement_launch ads_engagement_available ads_engagement_active ads_event ads_event_preload ads_set_reward_callback ads_get_display_height ads_get_display_width ads_move ads_interstitial_available ads_interstitial_display device_get_tilt_x device_get_tilt_y device_get_tilt_z device_is_keypad_open device_mouse_check_button device_mouse_check_button_pressed device_mouse_check_button_released device_mouse_x device_mouse_y device_mouse_raw_x device_mouse_raw_y device_mouse_x_to_gui device_mouse_y_to_gui iap_activate iap_status iap_enumerate_products iap_restore_all iap_acquire iap_consume iap_product_details iap_purchase_details facebook_init facebook_login facebook_status facebook_graph_request facebook_dialog facebook_logout facebook_launch_offerwall facebook_post_message facebook_send_invite facebook_user_id facebook_accesstoken facebook_check_permission facebook_request_read_permissions facebook_request_publish_permissions gamepad_is_supported gamepad_get_device_count gamepad_is_connected gamepad_get_description gamepad_get_button_threshold gamepad_set_button_threshold gamepad_get_axis_deadzone gamepad_set_axis_deadzone gamepad_button_count gamepad_button_check gamepad_button_check_pressed gamepad_button_check_released gamepad_button_value gamepad_axis_count gamepad_axis_value gamepad_set_vibration gamepad_set_colour gamepad_set_color os_is_paused window_has_focus code_is_compiled http_get http_get_file http_post_string http_request json_encode json_decode zip_unzip load_csv base64_encode base64_decode md5_string_unicode md5_string_utf8 md5_file os_is_network_connected sha1_string_unicode sha1_string_utf8 sha1_file os_powersave_enable analytics_event analytics_event_ext win8_livetile_tile_notification win8_livetile_tile_clear win8_livetile_badge_notification win8_livetile_badge_clear win8_livetile_queue_enable win8_secondarytile_pin win8_secondarytile_badge_notification win8_secondarytile_delete win8_livetile_notification_begin win8_livetile_notification_secondary_begin win8_livetile_notification_expiry win8_livetile_notification_tag win8_livetile_notification_text_add win8_livetile_notification_image_add win8_livetile_notification_end win8_appbar_enable win8_appbar_add_element win8_appbar_remove_element win8_settingscharm_add_entry win8_settingscharm_add_html_entry win8_settingscharm_add_xaml_entry win8_settingscharm_set_xaml_property win8_settingscharm_get_xaml_property win8_settingscharm_remove_entry win8_share_image win8_share_screenshot win8_share_file win8_share_url win8_share_text win8_search_enable win8_search_disable win8_search_add_suggestions win8_device_touchscreen_available win8_license_initialize_sandbox win8_license_trial_version winphone_license_trial_version winphone_tile_title winphone_tile_count winphone_tile_back_title winphone_tile_back_content winphone_tile_back_content_wide winphone_tile_front_image winphone_tile_front_image_small winphone_tile_front_image_wide winphone_tile_back_image winphone_tile_back_image_wide winphone_tile_background_colour winphone_tile_background_color winphone_tile_icon_image winphone_tile_small_icon_image winphone_tile_wide_content winphone_tile_cycle_images winphone_tile_small_background_image physics_world_create physics_world_gravity physics_world_update_speed physics_world_update_iterations physics_world_draw_debug physics_pause_enable physics_fixture_create physics_fixture_set_kinematic physics_fixture_set_density physics_fixture_set_awake physics_fixture_set_restitution physics_fixture_set_friction physics_fixture_set_collision_group physics_fixture_set_sensor physics_fixture_set_linear_damping physics_fixture_set_angular_damping physics_fixture_set_circle_shape physics_fixture_set_box_shape physics_fixture_set_edge_shape physics_fixture_set_polygon_shape physics_fixture_set_chain_shape physics_fixture_add_point physics_fixture_bind physics_fixture_bind_ext physics_fixture_delete physics_apply_force physics_apply_impulse physics_apply_angular_impulse physics_apply_local_force physics_apply_local_impulse physics_apply_torque physics_mass_properties physics_draw_debug physics_test_overlap physics_remove_fixture physics_set_friction physics_set_density physics_set_restitution physics_get_friction physics_get_density physics_get_restitution physics_joint_distance_create physics_joint_rope_create physics_joint_revolute_create physics_joint_prismatic_create physics_joint_pulley_create physics_joint_wheel_create physics_joint_weld_create physics_joint_friction_create physics_joint_gear_create physics_joint_enable_motor physics_joint_get_value physics_joint_set_value physics_joint_delete physics_particle_create physics_particle_delete physics_particle_delete_region_circle physics_particle_delete_region_box physics_particle_delete_region_poly physics_particle_set_flags physics_particle_set_category_flags physics_particle_draw physics_particle_draw_ext physics_particle_count physics_particle_get_data physics_particle_get_data_particle physics_particle_group_begin physics_particle_group_circle physics_particle_group_box physics_particle_group_polygon physics_particle_group_add_point physics_particle_group_end physics_particle_group_join physics_particle_group_delete physics_particle_group_count physics_particle_group_get_data physics_particle_group_get_mass physics_particle_group_get_inertia physics_particle_group_get_centre_x physics_particle_group_get_centre_y physics_particle_group_get_vel_x physics_particle_group_get_vel_y physics_particle_group_get_ang_vel physics_particle_group_get_x physics_particle_group_get_y physics_particle_group_get_angle physics_particle_set_group_flags physics_particle_get_group_flags physics_particle_get_max_count physics_particle_get_radius physics_particle_get_density physics_particle_get_damping physics_particle_get_gravity_scale physics_particle_set_max_count physics_particle_set_radius physics_particle_set_density physics_particle_set_damping physics_particle_set_gravity_scale network_create_socket network_create_socket_ext network_create_server network_create_server_raw network_connect network_connect_raw network_send_packet network_send_raw network_send_broadcast network_send_udp network_send_udp_raw network_set_timeout network_set_config network_resolve network_destroy buffer_create buffer_write buffer_read buffer_seek buffer_get_surface buffer_set_surface buffer_delete buffer_exists buffer_get_type buffer_get_alignment buffer_poke buffer_peek buffer_save buffer_save_ext buffer_load buffer_load_ext buffer_load_partial buffer_copy buffer_fill buffer_get_size buffer_tell buffer_resize buffer_md5 buffer_sha1 buffer_base64_encode buffer_base64_decode buffer_base64_decode_ext buffer_sizeof buffer_get_address buffer_create_from_vertex_buffer buffer_create_from_vertex_buffer_ext buffer_copy_from_vertex_buffer buffer_async_group_begin buffer_async_group_option buffer_async_group_end buffer_load_async buffer_save_async gml_release_mode gml_pragma steam_activate_overlay steam_is_overlay_enabled steam_is_overlay_activated steam_get_persona_name steam_initialised steam_is_cloud_enabled_for_app steam_is_cloud_enabled_for_account steam_file_persisted steam_get_quota_total steam_get_quota_free steam_file_write steam_file_write_file steam_file_read steam_file_delete steam_file_exists steam_file_size steam_file_share steam_is_screenshot_requested steam_send_screenshot steam_is_user_logged_on steam_get_user_steam_id steam_user_owns_dlc steam_user_installed_dlc steam_set_achievement steam_get_achievement steam_clear_achievement steam_set_stat_int steam_set_stat_float steam_set_stat_avg_rate steam_get_stat_int steam_get_stat_float steam_get_stat_avg_rate steam_reset_all_stats steam_reset_all_stats_achievements steam_stats_ready steam_create_leaderboard steam_upload_score steam_upload_score_ext steam_download_scores_around_user steam_download_scores steam_download_friends_scores steam_upload_score_buffer steam_upload_score_buffer_ext steam_current_game_language steam_available_languages steam_activate_overlay_browser steam_activate_overlay_user steam_activate_overlay_store steam_get_user_persona_name steam_get_app_id steam_get_user_account_id steam_ugc_download steam_ugc_create_item steam_ugc_start_item_update steam_ugc_set_item_title steam_ugc_set_item_description steam_ugc_set_item_visibility steam_ugc_set_item_tags steam_ugc_set_item_content steam_ugc_set_item_preview steam_ugc_submit_item_update steam_ugc_get_item_update_progress steam_ugc_subscribe_item steam_ugc_unsubscribe_item steam_ugc_num_subscribed_items steam_ugc_get_subscribed_items steam_ugc_get_item_install_info steam_ugc_get_item_update_info steam_ugc_request_item_details steam_ugc_create_query_user steam_ugc_create_query_user_ex steam_ugc_create_query_all steam_ugc_create_query_all_ex steam_ugc_query_set_cloud_filename_filter steam_ugc_query_set_match_any_tag steam_ugc_query_set_search_text steam_ugc_query_set_ranked_by_trend_days steam_ugc_query_add_required_tag steam_ugc_query_add_excluded_tag steam_ugc_query_set_return_long_description steam_ugc_query_set_return_total_only steam_ugc_query_set_allow_cached_response steam_ugc_send_query shader_set shader_get_name shader_reset shader_current shader_is_compiled shader_get_sampler_index shader_get_uniform shader_set_uniform_i shader_set_uniform_i_array shader_set_uniform_f shader_set_uniform_f_array shader_set_uniform_matrix shader_set_uniform_matrix_array shader_enable_corner_id texture_set_stage texture_get_texel_width texture_get_texel_height shaders_are_supported vertex_format_begin vertex_format_end vertex_format_delete vertex_format_add_position vertex_format_add_position_3d vertex_format_add_colour vertex_format_add_color vertex_format_add_normal vertex_format_add_texcoord vertex_format_add_textcoord vertex_format_add_custom vertex_create_buffer vertex_create_buffer_ext vertex_delete_buffer vertex_begin vertex_end vertex_position vertex_position_3d vertex_colour vertex_color vertex_argb vertex_texcoord vertex_normal vertex_float1 vertex_float2 vertex_float3 vertex_float4 vertex_ubyte4 vertex_submit vertex_freeze vertex_get_number vertex_get_buffer_size vertex_create_buffer_from_buffer vertex_create_buffer_from_buffer_ext push_local_notification push_get_first_local_notification push_get_next_local_notification push_cancel_local_notification skeleton_animation_set skeleton_animation_get skeleton_animation_mix skeleton_animation_set_ext skeleton_animation_get_ext skeleton_animation_get_duration skeleton_animation_get_frames skeleton_animation_clear skeleton_skin_set skeleton_skin_get skeleton_attachment_set skeleton_attachment_get skeleton_attachment_create skeleton_collision_draw_set skeleton_bone_data_get skeleton_bone_data_set skeleton_bone_state_get skeleton_bone_state_set skeleton_get_minmax skeleton_get_num_bounds skeleton_get_bounds skeleton_animation_get_frame skeleton_animation_set_frame draw_skeleton draw_skeleton_time draw_skeleton_instance draw_skeleton_collision skeleton_animation_list skeleton_skin_list skeleton_slot_data layer_get_id layer_get_id_at_depth layer_get_depth layer_create layer_destroy layer_destroy_instances layer_add_instance layer_has_instance layer_set_visible layer_get_visible layer_exists layer_x layer_y layer_get_x layer_get_y layer_hspeed layer_vspeed layer_get_hspeed layer_get_vspeed layer_script_begin layer_script_end layer_shader layer_get_script_begin layer_get_script_end layer_get_shader layer_set_target_room layer_get_target_room layer_reset_target_room layer_get_all layer_get_all_elements layer_get_name layer_depth layer_get_element_layer layer_get_element_type layer_element_move layer_force_draw_depth layer_is_draw_depth_forced layer_get_forced_depth layer_background_get_id layer_background_exists layer_background_create layer_background_destroy layer_background_visible layer_background_change layer_background_sprite layer_background_htiled layer_background_vtiled layer_background_stretch layer_background_yscale layer_background_xscale layer_background_blend layer_background_alpha layer_background_index layer_background_speed layer_background_get_visible layer_background_get_sprite layer_background_get_htiled layer_background_get_vtiled layer_background_get_stretch layer_background_get_yscale layer_background_get_xscale layer_background_get_blend layer_background_get_alpha layer_background_get_index layer_background_get_speed layer_sprite_get_id layer_sprite_exists layer_sprite_create layer_sprite_destroy layer_sprite_change layer_sprite_index layer_sprite_speed layer_sprite_xscale layer_sprite_yscale layer_sprite_angle layer_sprite_blend layer_sprite_alpha layer_sprite_x layer_sprite_y layer_sprite_get_sprite layer_sprite_get_index layer_sprite_get_speed layer_sprite_get_xscale layer_sprite_get_yscale layer_sprite_get_angle layer_sprite_get_blend layer_sprite_get_alpha layer_sprite_get_x layer_sprite_get_y layer_tilemap_get_id layer_tilemap_exists layer_tilemap_create layer_tilemap_destroy tilemap_tileset tilemap_x tilemap_y tilemap_set tilemap_set_at_pixel tilemap_get_tileset tilemap_get_tile_width tilemap_get_tile_height tilemap_get_width tilemap_get_height tilemap_get_x tilemap_get_y tilemap_get tilemap_get_at_pixel tilemap_get_cell_x_at_pixel tilemap_get_cell_y_at_pixel tilemap_clear draw_tilemap draw_tile tilemap_set_global_mask tilemap_get_global_mask tilemap_set_mask tilemap_get_mask tilemap_get_frame tile_set_empty tile_set_index tile_set_flip tile_set_mirror tile_set_rotate tile_get_empty tile_get_index tile_get_flip tile_get_mirror tile_get_rotate layer_tile_exists layer_tile_create layer_tile_destroy layer_tile_change layer_tile_xscale layer_tile_yscale layer_tile_blend layer_tile_alpha layer_tile_x layer_tile_y layer_tile_region layer_tile_visible layer_tile_get_sprite layer_tile_get_xscale layer_tile_get_yscale layer_tile_get_blend layer_tile_get_alpha layer_tile_get_x layer_tile_get_y layer_tile_get_region layer_tile_get_visible layer_instance_get_instance instance_activate_layer instance_deactivate_layer camera_create camera_create_view camera_destroy camera_apply camera_get_active camera_get_default camera_set_default camera_set_view_mat camera_set_proj_mat camera_set_update_script camera_set_begin_script camera_set_end_script camera_set_view_pos camera_set_view_size camera_set_view_speed camera_set_view_border camera_set_view_angle camera_set_view_target camera_get_view_mat camera_get_proj_mat camera_get_update_script camera_get_begin_script camera_get_end_script camera_get_view_x camera_get_view_y camera_get_view_width camera_get_view_height camera_get_view_speed_x camera_get_view_speed_y camera_get_view_border_x camera_get_view_border_y camera_get_view_angle camera_get_view_target view_get_camera view_get_visible view_get_xport view_get_yport view_get_wport view_get_hport view_get_surface_id view_set_camera view_set_visible view_set_xport view_set_yport view_set_wport view_set_hport view_set_surface_id gesture_drag_time gesture_drag_distance gesture_flick_speed gesture_double_tap_time gesture_double_tap_distance gesture_pinch_distance gesture_pinch_angle_towards gesture_pinch_angle_away gesture_rotate_time gesture_rotate_angle gesture_tap_count gesture_get_drag_time gesture_get_drag_distance gesture_get_flick_speed gesture_get_double_tap_time gesture_get_double_tap_distance gesture_get_pinch_distance gesture_get_pinch_angle_towards gesture_get_pinch_angle_away gesture_get_rotate_time gesture_get_rotate_angle gesture_get_tap_count keyboard_virtual_show keyboard_virtual_hide keyboard_virtual_status keyboard_virtual_height",literal:"self other all noone global local undefined pointer_invalid pointer_null path_action_stop path_action_restart path_action_continue path_action_reverse true false pi GM_build_date GM_version GM_runtime_version timezone_local timezone_utc gamespeed_fps gamespeed_microseconds ev_create ev_destroy ev_step ev_alarm ev_keyboard ev_mouse ev_collision ev_other ev_draw ev_draw_begin ev_draw_end ev_draw_pre ev_draw_post ev_keypress ev_keyrelease ev_trigger ev_left_button ev_right_button ev_middle_button ev_no_button ev_left_press ev_right_press ev_middle_press ev_left_release ev_right_release ev_middle_release ev_mouse_enter ev_mouse_leave ev_mouse_wheel_up ev_mouse_wheel_down ev_global_left_button ev_global_right_button ev_global_middle_button ev_global_left_press ev_global_right_press ev_global_middle_press ev_global_left_release ev_global_right_release ev_global_middle_release ev_joystick1_left ev_joystick1_right ev_joystick1_up ev_joystick1_down ev_joystick1_button1 ev_joystick1_button2 ev_joystick1_button3 ev_joystick1_button4 ev_joystick1_button5 ev_joystick1_button6 ev_joystick1_button7 ev_joystick1_button8 ev_joystick2_left ev_joystick2_right ev_joystick2_up ev_joystick2_down ev_joystick2_button1 ev_joystick2_button2 ev_joystick2_button3 ev_joystick2_button4 ev_joystick2_button5 ev_joystick2_button6 ev_joystick2_button7 ev_joystick2_button8 ev_outside ev_boundary ev_game_start ev_game_end ev_room_start ev_room_end ev_no_more_lives ev_animation_end ev_end_of_path ev_no_more_health ev_close_button ev_user0 ev_user1 ev_user2 ev_user3 ev_user4 ev_user5 ev_user6 ev_user7 ev_user8 ev_user9 ev_user10 ev_user11 ev_user12 ev_user13 ev_user14 ev_user15 ev_step_normal ev_step_begin ev_step_end ev_gui ev_gui_begin ev_gui_end ev_cleanup ev_gesture ev_gesture_tap ev_gesture_double_tap ev_gesture_drag_start ev_gesture_dragging ev_gesture_drag_end ev_gesture_flick ev_gesture_pinch_start ev_gesture_pinch_in ev_gesture_pinch_out ev_gesture_pinch_end ev_gesture_rotate_start ev_gesture_rotating ev_gesture_rotate_end ev_global_gesture_tap ev_global_gesture_double_tap ev_global_gesture_drag_start ev_global_gesture_dragging ev_global_gesture_drag_end ev_global_gesture_flick ev_global_gesture_pinch_start ev_global_gesture_pinch_in ev_global_gesture_pinch_out ev_global_gesture_pinch_end ev_global_gesture_rotate_start ev_global_gesture_rotating ev_global_gesture_rotate_end vk_nokey vk_anykey vk_enter vk_return vk_shift vk_control vk_alt vk_escape vk_space vk_backspace vk_tab vk_pause vk_printscreen vk_left vk_right vk_up vk_down vk_home vk_end vk_delete vk_insert vk_pageup vk_pagedown vk_f1 vk_f2 vk_f3 vk_f4 vk_f5 vk_f6 vk_f7 vk_f8 vk_f9 vk_f10 vk_f11 vk_f12 vk_numpad0 vk_numpad1 vk_numpad2 vk_numpad3 vk_numpad4 vk_numpad5 vk_numpad6 vk_numpad7 vk_numpad8 vk_numpad9 vk_divide vk_multiply vk_subtract vk_add vk_decimal vk_lshift vk_lcontrol vk_lalt vk_rshift vk_rcontrol vk_ralt mb_any mb_none mb_left mb_right mb_middle c_aqua c_black c_blue c_dkgray c_fuchsia c_gray c_green c_lime c_ltgray c_maroon c_navy c_olive c_purple c_red c_silver c_teal c_white c_yellow c_orange fa_left fa_center fa_right fa_top fa_middle fa_bottom pr_pointlist pr_linelist pr_linestrip pr_trianglelist pr_trianglestrip pr_trianglefan bm_complex bm_normal bm_add bm_max bm_subtract bm_zero bm_one bm_src_colour bm_inv_src_colour bm_src_color bm_inv_src_color bm_src_alpha bm_inv_src_alpha bm_dest_alpha bm_inv_dest_alpha bm_dest_colour bm_inv_dest_colour bm_dest_color bm_inv_dest_color bm_src_alpha_sat tf_point tf_linear tf_anisotropic mip_off mip_on mip_markedonly audio_falloff_none audio_falloff_inverse_distance audio_falloff_inverse_distance_clamped audio_falloff_linear_distance audio_falloff_linear_distance_clamped audio_falloff_exponent_distance audio_falloff_exponent_distance_clamped audio_old_system audio_new_system audio_mono audio_stereo audio_3d cr_default cr_none cr_arrow cr_cross cr_beam cr_size_nesw cr_size_ns cr_size_nwse cr_size_we cr_uparrow cr_hourglass cr_drag cr_appstart cr_handpoint cr_size_all spritespeed_framespersecond spritespeed_framespergameframe asset_object asset_unknown asset_sprite asset_sound asset_room asset_path asset_script asset_font asset_timeline asset_tiles asset_shader fa_readonly fa_hidden fa_sysfile fa_volumeid fa_directory fa_archive ds_type_map ds_type_list ds_type_stack ds_type_queue ds_type_grid ds_type_priority ef_explosion ef_ring ef_ellipse ef_firework ef_smoke ef_smokeup ef_star ef_spark ef_flare ef_cloud ef_rain ef_snow pt_shape_pixel pt_shape_disk pt_shape_square pt_shape_line pt_shape_star pt_shape_circle pt_shape_ring pt_shape_sphere pt_shape_flare pt_shape_spark pt_shape_explosion pt_shape_cloud pt_shape_smoke pt_shape_snow ps_distr_linear ps_distr_gaussian ps_distr_invgaussian ps_shape_rectangle ps_shape_ellipse ps_shape_diamond ps_shape_line ty_real ty_string dll_cdecl dll_stdcall matrix_view matrix_projection matrix_world os_win32 os_windows os_macosx os_ios os_android os_symbian os_linux os_unknown os_winphone os_tizen os_win8native os_wiiu os_3ds os_psvita os_bb10 os_ps4 os_xboxone os_ps3 os_xbox360 os_uwp os_tvos os_switch browser_not_a_browser browser_unknown browser_ie browser_firefox browser_chrome browser_safari browser_safari_mobile browser_opera browser_tizen browser_edge browser_windows_store browser_ie_mobile device_ios_unknown device_ios_iphone device_ios_iphone_retina device_ios_ipad device_ios_ipad_retina device_ios_iphone5 device_ios_iphone6 device_ios_iphone6plus device_emulator device_tablet display_landscape display_landscape_flipped display_portrait display_portrait_flipped tm_sleep tm_countvsyncs of_challenge_win of_challen ge_lose of_challenge_tie leaderboard_type_number leaderboard_type_time_mins_secs cmpfunc_never cmpfunc_less cmpfunc_equal cmpfunc_lessequal cmpfunc_greater cmpfunc_notequal cmpfunc_greaterequal cmpfunc_always cull_noculling cull_clockwise cull_counterclockwise lighttype_dir lighttype_point iap_ev_storeload iap_ev_product iap_ev_purchase iap_ev_consume iap_ev_restore iap_storeload_ok iap_storeload_failed iap_status_uninitialised iap_status_unavailable iap_status_loading iap_status_available iap_status_processing iap_status_restoring iap_failed iap_unavailable iap_available iap_purchased iap_canceled iap_refunded fb_login_default fb_login_fallback_to_webview fb_login_no_fallback_to_webview fb_login_forcing_webview fb_login_use_system_account fb_login_forcing_safari phy_joint_anchor_1_x phy_joint_anchor_1_y phy_joint_anchor_2_x phy_joint_anchor_2_y phy_joint_reaction_force_x phy_joint_reaction_force_y phy_joint_reaction_torque phy_joint_motor_speed phy_joint_angle phy_joint_motor_torque phy_joint_max_motor_torque phy_joint_translation phy_joint_speed phy_joint_motor_force phy_joint_max_motor_force phy_joint_length_1 phy_joint_length_2 phy_joint_damping_ratio phy_joint_frequency phy_joint_lower_angle_limit phy_joint_upper_angle_limit phy_joint_angle_limits phy_joint_max_length phy_joint_max_torque phy_joint_max_force phy_debug_render_aabb phy_debug_render_collision_pairs phy_debug_render_coms phy_debug_render_core_shapes phy_debug_render_joints phy_debug_render_obb phy_debug_render_shapes phy_particle_flag_water phy_particle_flag_zombie phy_particle_flag_wall phy_particle_flag_spring phy_particle_flag_elastic phy_particle_flag_viscous phy_particle_flag_powder phy_particle_flag_tensile phy_particle_flag_colourmixing phy_particle_flag_colormixing phy_particle_group_flag_solid phy_particle_group_flag_rigid phy_particle_data_flag_typeflags phy_particle_data_flag_position phy_particle_data_flag_velocity phy_particle_data_flag_colour phy_particle_data_flag_color phy_particle_data_flag_category achievement_our_info achievement_friends_info achievement_leaderboard_info achievement_achievement_info achievement_filter_all_players achievement_filter_friends_only achievement_filter_favorites_only achievement_type_achievement_challenge achievement_type_score_challenge achievement_pic_loaded achievement_show_ui achievement_show_profile achievement_show_leaderboard achievement_show_achievement achievement_show_bank achievement_show_friend_picker achievement_show_purchase_prompt network_socket_tcp network_socket_udp network_socket_bluetooth network_type_connect network_type_disconnect network_type_data network_type_non_blocking_connect network_config_connect_timeout network_config_use_non_blocking_socket network_config_enable_reliable_udp network_config_disable_reliable_udp buffer_fixed buffer_grow buffer_wrap buffer_fast buffer_vbuffer buffer_network buffer_u8 buffer_s8 buffer_u16 buffer_s16 buffer_u32 buffer_s32 buffer_u64 buffer_f16 buffer_f32 buffer_f64 buffer_bool buffer_text buffer_string buffer_surface_copy buffer_seek_start buffer_seek_relative buffer_seek_end buffer_generalerror buffer_outofspace buffer_outofbounds buffer_invalidtype text_type button_type input_type ANSI_CHARSET DEFAULT_CHARSET EASTEUROPE_CHARSET RUSSIAN_CHARSET SYMBOL_CHARSET SHIFTJIS_CHARSET HANGEUL_CHARSET GB2312_CHARSET CHINESEBIG5_CHARSET JOHAB_CHARSET HEBREW_CHARSET ARABIC_CHARSET GREEK_CHARSET TURKISH_CHARSET VIETNAMESE_CHARSET THAI_CHARSET MAC_CHARSET BALTIC_CHARSET OEM_CHARSET gp_face1 gp_face2 gp_face3 gp_face4 gp_shoulderl gp_shoulderr gp_shoulderlb gp_shoulderrb gp_select gp_start gp_stickl gp_stickr gp_padu gp_padd gp_padl gp_padr gp_axislh gp_axislv gp_axisrh gp_axisrv ov_friends ov_community ov_players ov_settings ov_gamegroup ov_achievements lb_sort_none lb_sort_ascending lb_sort_descending lb_disp_none lb_disp_numeric lb_disp_time_sec lb_disp_time_ms ugc_result_success ugc_filetype_community ugc_filetype_microtrans ugc_visibility_public ugc_visibility_friends_only ugc_visibility_private ugc_query_RankedByVote ugc_query_RankedByPublicationDate ugc_query_AcceptedForGameRankedByAcceptanceDate ugc_query_RankedByTrend ugc_query_FavoritedByFriendsRankedByPublicationDate ugc_query_CreatedByFriendsRankedByPublicationDate ugc_query_RankedByNumTimesReported ugc_query_CreatedByFollowedUsersRankedByPublicationDate ugc_query_NotYetRated ugc_query_RankedByTotalVotesAsc ugc_query_RankedByVotesUp ugc_query_RankedByTextSearch ugc_sortorder_CreationOrderDesc ugc_sortorder_CreationOrderAsc ugc_sortorder_TitleAsc ugc_sortorder_LastUpdatedDesc ugc_sortorder_SubscriptionDateDesc ugc_sortorder_VoteScoreDesc ugc_sortorder_ForModeration ugc_list_Published ugc_list_VotedOn ugc_list_VotedUp ugc_list_VotedDown ugc_list_WillVoteLater ugc_list_Favorited ugc_list_Subscribed ugc_list_UsedOrPlayed ugc_list_Followed ugc_match_Items ugc_match_Items_Mtx ugc_match_Items_ReadyToUse ugc_match_Collections ugc_match_Artwork ugc_match_Videos ugc_match_Screenshots ugc_match_AllGuides ugc_match_WebGuides ugc_match_IntegratedGuides ugc_match_UsableInGame ugc_match_ControllerBindings vertex_usage_position vertex_usage_colour vertex_usage_color vertex_usage_normal vertex_usage_texcoord vertex_usage_textcoord vertex_usage_blendweight vertex_usage_blendindices vertex_usage_psize vertex_usage_tangent vertex_usage_binormal vertex_usage_fog vertex_usage_depth vertex_usage_sample vertex_type_float1 vertex_type_float2 vertex_type_float3 vertex_type_float4 vertex_type_colour vertex_type_color vertex_type_ubyte4 layerelementtype_undefined layerelementtype_background layerelementtype_instance layerelementtype_oldtilemap layerelementtype_sprite layerelementtype_tilemap layerelementtype_particlesystem layerelementtype_tile tile_rotate tile_flip tile_mirror tile_index_mask kbv_type_default kbv_type_ascii kbv_type_url kbv_type_email kbv_type_numbers kbv_type_phone kbv_type_phone_name kbv_returnkey_default kbv_returnkey_go kbv_returnkey_google kbv_returnkey_join kbv_returnkey_next kbv_returnkey_route kbv_returnkey_search kbv_returnkey_send kbv_returnkey_yahoo kbv_returnkey_done kbv_returnkey_continue kbv_returnkey_emergency kbv_autocapitalize_none kbv_autocapitalize_words kbv_autocapitalize_sentences kbv_autocapitalize_characters",symbol:"argument_relative argument argument0 argument1 argument2 argument3 argument4 argument5 argument6 argument7 argument8 argument9 argument10 argument11 argument12 argument13 argument14 argument15 argument_count x|0 y|0 xprevious yprevious xstart ystart hspeed vspeed direction speed friction gravity gravity_direction path_index path_position path_positionprevious path_speed path_scale path_orientation path_endaction object_index id solid persistent mask_index instance_count instance_id room_speed fps fps_real current_time current_year current_month current_day current_weekday current_hour current_minute current_second alarm timeline_index timeline_position timeline_speed timeline_running timeline_loop room room_first room_last room_width room_height room_caption room_persistent score lives health show_score show_lives show_health caption_score caption_lives caption_health event_type event_number event_object event_action application_surface gamemaker_pro gamemaker_registered gamemaker_version error_occurred error_last debug_mode keyboard_key keyboard_lastkey keyboard_lastchar keyboard_string mouse_x mouse_y mouse_button mouse_lastbutton cursor_sprite visible sprite_index sprite_width sprite_height sprite_xoffset sprite_yoffset image_number image_index image_speed depth image_xscale image_yscale image_angle image_alpha image_blend bbox_left bbox_right bbox_top bbox_bottom layer background_colour background_showcolour background_color background_showcolor view_enabled view_current view_visible view_xview view_yview view_wview view_hview view_xport view_yport view_wport view_hport view_angle view_hborder view_vborder view_hspeed view_vspeed view_object view_surface_id view_camera game_id game_display_name game_project_name game_save_id working_directory temp_directory program_directory browser_width browser_height os_type os_device os_browser os_version display_aa async_load delta_time webgl_enabled event_data iap_data phy_rotation phy_position_x phy_position_y phy_angular_velocity phy_linear_velocity_x phy_linear_velocity_y phy_speed_x phy_speed_y phy_speed phy_angular_damping phy_linear_damping phy_bullet phy_fixed_rotation phy_active phy_mass phy_inertia phy_com_x phy_com_y phy_dynamic phy_kinematic phy_sleeping phy_collision_points phy_collision_x phy_collision_y phy_col_normal_x phy_col_normal_y phy_position_xprevious phy_position_yprevious"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE]}}var ol=il;function sl(e){const t={keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune",literal:"true false iota nil",built_in:"append cap close complex copy imag len make new panic print println real recover delete"};return{name:"Go",aliases:["golang"],keywords:t,illegal:"ml(n)).join("")}function nt(e,t={}){return t.variants=e,t}function gl(e){const t="[A-Za-z0-9_$]+",n=nt([e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]})]),a={className:"regexp",begin:/~?\/[^\/\n]+\//,contains:[e.BACKSLASH_ESCAPE]},r=nt([e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]),i=nt([{begin:/"""/,end:/"""/},{begin:/'''/,end:/'''/},{begin:"\\$/",end:"/\\$",relevance:10},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE],{className:"string"});return{name:"Groovy",keywords:{built_in:"this super",literal:"true false null",keyword:"byte short char int long boolean float double void def as in assert trait abstract static volatile transient public private protected synchronized final class interface enum if else for while switch case break default continue throw throws try catch finally implements extends new import package return instanceof"},contains:[e.SHEBANG({binary:"groovy",relevance:10}),n,i,a,r,{className:"class",beginKeywords:"class interface trait enum",end:/\{/,illegal:":",contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{className:"meta",begin:"@[A-Za-z]+",relevance:0},{className:"attr",begin:t+"[ ]*:",relevance:0},{begin:/\?/,end:/:/,relevance:0,contains:[n,i,a,r,"self"]},{className:"symbol",begin:"^[ ]*"+El(t+":"),excludeBegin:!0,end:t+":",relevance:0}],illegal:/#|<\//}}var Sl=gl;function Tl(e){return{name:"HAML",case_insensitive:!0,contains:[{className:"meta",begin:"^!!!( (5|1\\.1|Strict|Frameset|Basic|Mobile|RDFa|XML\\b.*))?$",relevance:10},e.COMMENT("^\\s*(!=#|=#|-#|/).*$",!1,{relevance:0}),{begin:"^\\s*(-|=|!=)(?!#)",starts:{end:"\\n",subLanguage:"ruby"}},{className:"tag",begin:"^\\s*%",contains:[{className:"selector-tag",begin:"\\w+"},{className:"selector-id",begin:"#[\\w-]+"},{className:"selector-class",begin:"\\.[\\w-]+"},{begin:/\{\s*/,end:/\s*\}/,contains:[{begin:":\\w+\\s*=>",end:",\\s+",returnBegin:!0,endsWithParent:!0,contains:[{className:"attr",begin:":\\w+"},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{begin:"\\w+",relevance:0}]}]},{begin:"\\(\\s*",end:"\\s*\\)",excludeEnd:!0,contains:[{begin:"\\w+\\s*=",end:"\\s+",returnBegin:!0,endsWithParent:!0,contains:[{className:"attr",begin:"\\w+",relevance:0},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{begin:"\\w+",relevance:0}]}]}]},{begin:"^\\s*[=~]\\s*"},{begin:/#\{/,starts:{end:/\}/,subLanguage:"ruby"}}]}}var bl=Tl;function cn(e){return e?typeof e=="string"?e:e.source:null}function Rl(e){return Oe("(",e,")*")}function Nl(e){return Oe("(",e,")?")}function Oe(...e){return e.map(n=>cn(n)).join("")}function Cl(...e){return"("+e.map(n=>cn(n)).join("|")+")"}function fl(e){const t={"builtin-name":["action","bindattr","collection","component","concat","debugger","each","each-in","get","hash","if","in","input","link-to","loc","log","lookup","mut","outlet","partial","query-params","render","template","textarea","unbound","unless","view","with","yield"]},n={literal:["true","false","undefined","null"]},a=/""|"[^"]+"/,r=/''|'[^']+'/,i=/\[\]|\[[^\]]+\]/,s=/[^\s!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~]+/,o=/(\.|\/)/,l=Cl(a,r,i,s),c=Oe(Nl(/\.|\.\/|\//),l,Rl(Oe(o,l))),_=Oe("(",i,"|",s,")(?==)"),u={begin:c,lexemes:/[\w.\/]+/},m=e.inherit(u,{keywords:n}),g={begin:/\(/,end:/\)/},E={className:"attr",begin:_,relevance:0,starts:{begin:/=/,end:/=/,starts:{contains:[e.NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,m,g]}}},S={begin:/as\s+\|/,keywords:{keyword:"as"},end:/\|/,contains:[{begin:/\w+/}]},T={contains:[e.NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,S,E,m,g],returnEnd:!0},C=e.inherit(u,{className:"name",keywords:t,starts:e.inherit(T,{end:/\)/})});g.contains=[C];const R=e.inherit(u,{keywords:t,className:"name",starts:e.inherit(T,{end:/\}\}/})}),f=e.inherit(u,{keywords:t,className:"name"}),O=e.inherit(u,{className:"name",keywords:t,starts:e.inherit(T,{end:/\}\}/})});return{name:"Handlebars",aliases:["hbs","html.hbs","html.handlebars","htmlbars"],case_insensitive:!0,subLanguage:"xml",contains:[{begin:/\\\{\{/,skip:!0},{begin:/\\\\(?=\{\{)/,skip:!0},e.COMMENT(/\{\{!--/,/--\}\}/),e.COMMENT(/\{\{!/,/\}\}/),{className:"template-tag",begin:/\{\{\{\{(?!\/)/,end:/\}\}\}\}/,contains:[R],starts:{end:/\{\{\{\{\//,returnEnd:!0,subLanguage:"xml"}},{className:"template-tag",begin:/\{\{\{\{\//,end:/\}\}\}\}/,contains:[f]},{className:"template-tag",begin:/\{\{#/,end:/\}\}/,contains:[R]},{className:"template-tag",begin:/\{\{(?=else\}\})/,end:/\}\}/,keywords:"else"},{className:"template-tag",begin:/\{\{(?=else if)/,end:/\}\}/,keywords:"else if"},{className:"template-tag",begin:/\{\{\//,end:/\}\}/,contains:[f]},{className:"template-variable",begin:/\{\{\{/,end:/\}\}\}/,contains:[O]},{className:"template-variable",begin:/\{\{/,end:/\}\}/,contains:[O]}]}}var Ol=fl;function Il(e){const t={variants:[e.COMMENT("--","$"),e.COMMENT(/\{-/,/-\}/,{contains:["self"]})]},n={className:"meta",begin:/\{-#/,end:/#-\}/},a={className:"meta",begin:"^#",end:"$"},r={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},i={begin:"\\(",end:"\\)",illegal:'"',contains:[n,a,{className:"type",begin:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},e.inherit(e.TITLE_MODE,{begin:"[_a-z][\\w']*"}),t]},s={begin:/\{/,end:/\}/,contains:i.contains};return{name:"Haskell",aliases:["hs"],keywords:"let in if then else case of where do module import hiding qualified type data newtype deriving class instance as default infix infixl infixr foreign export ccall stdcall cplusplus jvm dotnet safe unsafe family forall mdo proc rec",contains:[{beginKeywords:"module",end:"where",keywords:"module where",contains:[i,t],illegal:"\\W\\.|;"},{begin:"\\bimport\\b",end:"$",keywords:"import qualified as hiding",contains:[i,t],illegal:"\\W\\.|;"},{className:"class",begin:"^(\\s*)?(class|instance)\\b",end:"where",keywords:"class family instance where",contains:[r,i,t]},{className:"class",begin:"\\b(data|(new)?type)\\b",end:"$",keywords:"data family type newtype deriving",contains:[n,r,i,s,t]},{beginKeywords:"default",end:"$",contains:[r,i,t]},{beginKeywords:"infix infixl infixr",end:"$",contains:[e.C_NUMBER_MODE,t]},{begin:"\\bforeign\\b",end:"$",keywords:"foreign import export ccall stdcall cplusplus jvm dotnet safe unsafe",contains:[r,e.QUOTE_STRING_MODE,t]},{className:"meta",begin:"#!\\/usr\\/bin\\/env runhaskell",end:"$"},n,a,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,r,e.inherit(e.TITLE_MODE,{begin:"^[_a-z][\\w']*"}),t,{begin:"->|<-"}]}}var Al=Il;function vl(e){return{name:"Haxe",aliases:["hx"],keywords:{keyword:"break case cast catch continue default do dynamic else enum extern for function here if import in inline never new override package private get set public return static super switch this throw trace try typedef untyped using var while "+"Int Float String Bool Dynamic Void Array ",built_in:"trace this",literal:"true false null _"},contains:[{className:"string",begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE,{className:"subst",begin:"\\$\\{",end:"\\}"},{className:"subst",begin:"\\$",end:/\W\}/}]},e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,{className:"meta",begin:"@:",end:"$"},{className:"meta",begin:"#",end:"$",keywords:{"meta-keyword":"if else elseif end error"}},{className:"type",begin:":[ ]*",end:"[^A-Za-z0-9_ \\->]",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:":[ ]*",end:"\\W",excludeBegin:!0,excludeEnd:!0},{className:"type",begin:"new *",end:"\\W",excludeBegin:!0,excludeEnd:!0},{className:"class",beginKeywords:"enum",end:"\\{",contains:[e.TITLE_MODE]},{className:"class",beginKeywords:"abstract",end:"[\\{$]",contains:[{className:"type",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"type",begin:"from +",end:"\\W",excludeBegin:!0,excludeEnd:!0},{className:"type",begin:"to +",end:"\\W",excludeBegin:!0,excludeEnd:!0},e.TITLE_MODE],keywords:{keyword:"abstract from to"}},{className:"class",begin:"\\b(class|interface) +",end:"[\\{$]",excludeEnd:!0,keywords:"class interface",contains:[{className:"keyword",begin:"\\b(extends|implements) +",keywords:"extends implements",contains:[{className:"type",begin:e.IDENT_RE,relevance:0}]},e.TITLE_MODE]},{className:"function",beginKeywords:"function",end:"\\(",excludeEnd:!0,illegal:"\\S",contains:[e.TITLE_MODE]}],illegal:/<\//}}var yl=vl;function Dl(e){return{name:"HSP",case_insensitive:!0,keywords:{$pattern:/[\w._]+/,keyword:"goto gosub return break repeat loop continue wait await dim sdim foreach dimtype dup dupptr end stop newmod delmod mref run exgoto on mcall assert logmes newlab resume yield onexit onerror onkey onclick oncmd exist delete mkdir chdir dirlist bload bsave bcopy memfile if else poke wpoke lpoke getstr chdpm memexpand memcpy memset notesel noteadd notedel noteload notesave randomize noteunsel noteget split strrep setease button chgdisp exec dialog mmload mmplay mmstop mci pset pget syscolor mes print title pos circle cls font sysfont objsize picload color palcolor palette redraw width gsel gcopy gzoom gmode bmpsave hsvcolor getkey listbox chkbox combox input mesbox buffer screen bgscr mouse objsel groll line clrobj boxf objprm objmode stick grect grotate gsquare gradf objimage objskip objenable celload celdiv celput newcom querycom delcom cnvstow comres axobj winobj sendmsg comevent comevarg sarrayconv callfunc cnvwtos comevdisp libptr system hspstat hspver stat cnt err strsize looplev sublev iparam wparam lparam refstr refdval int rnd strlen length length2 length3 length4 vartype gettime peek wpeek lpeek varptr varuse noteinfo instr abs limit getease str strmid strf getpath strtrim sin cos tan atan sqrt double absf expf logf limitf powf geteasef mousex mousey mousew hwnd hinstance hdc ginfo objinfo dirinfo sysinfo thismod __hspver__ __hsp30__ __date__ __time__ __line__ __file__ _debug __hspdef__ and or xor not screen_normal screen_palette screen_hide screen_fixedsize screen_tool screen_frame gmode_gdi gmode_mem gmode_rgb0 gmode_alpha gmode_rgb0alpha gmode_add gmode_sub gmode_pixela ginfo_mx ginfo_my ginfo_act ginfo_sel ginfo_wx1 ginfo_wy1 ginfo_wx2 ginfo_wy2 ginfo_vx ginfo_vy ginfo_sizex ginfo_sizey ginfo_winx ginfo_winy ginfo_mesx ginfo_mesy ginfo_r ginfo_g ginfo_b ginfo_paluse ginfo_dispx ginfo_dispy ginfo_cx ginfo_cy ginfo_intid ginfo_newid ginfo_sx ginfo_sy objinfo_mode objinfo_bmscr objinfo_hwnd notemax notesize dir_cur dir_exe dir_win dir_sys dir_cmdline dir_desktop dir_mydoc dir_tv font_normal font_bold font_italic font_underline font_strikeout font_antialias objmode_normal objmode_guifont objmode_usefont gsquare_grad msgothic msmincho do until while wend for next _break _continue switch case default swbreak swend ddim ldim alloc m_pi rad2deg deg2rad ease_linear ease_quad_in ease_quad_out ease_quad_inout ease_cubic_in ease_cubic_out ease_cubic_inout ease_quartic_in ease_quartic_out ease_quartic_inout ease_bounce_in ease_bounce_out ease_bounce_inout ease_shake_in ease_shake_out ease_shake_inout ease_loop"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{className:"string",begin:/\{"/,end:/"\}/,contains:[e.BACKSLASH_ESCAPE]},e.COMMENT(";","$",{relevance:0}),{className:"meta",begin:"#",end:"$",keywords:{"meta-keyword":"addion cfunc cmd cmpopt comfunc const defcfunc deffunc define else endif enum epack func global if ifdef ifndef include modcfunc modfunc modinit modterm module pack packopt regcmd runtime undef usecom uselib"},contains:[e.inherit(e.QUOTE_STRING_MODE,{className:"meta-string"}),e.NUMBER_MODE,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"symbol",begin:"^\\*(\\w+|@)"},e.NUMBER_MODE,e.C_NUMBER_MODE]}}var hl=Dl;function _n(e){return e?typeof e=="string"?e:e.source:null}function Ml(e){return Ie("(",e,")*")}function Ll(e){return Ie("(",e,")?")}function Ie(...e){return e.map(n=>_n(n)).join("")}function xl(...e){return"("+e.map(n=>_n(n)).join("|")+")"}function Pl(e){const t={"builtin-name":["action","bindattr","collection","component","concat","debugger","each","each-in","get","hash","if","in","input","link-to","loc","log","lookup","mut","outlet","partial","query-params","render","template","textarea","unbound","unless","view","with","yield"]},n={literal:["true","false","undefined","null"]},a=/""|"[^"]+"/,r=/''|'[^']+'/,i=/\[\]|\[[^\]]+\]/,s=/[^\s!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~]+/,o=/(\.|\/)/,l=xl(a,r,i,s),c=Ie(Ll(/\.|\.\/|\//),l,Ml(Ie(o,l))),_=Ie("(",i,"|",s,")(?==)"),u={begin:c,lexemes:/[\w.\/]+/},m=e.inherit(u,{keywords:n}),g={begin:/\(/,end:/\)/},E={className:"attr",begin:_,relevance:0,starts:{begin:/=/,end:/=/,starts:{contains:[e.NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,m,g]}}},S={begin:/as\s+\|/,keywords:{keyword:"as"},end:/\|/,contains:[{begin:/\w+/}]},T={contains:[e.NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,S,E,m,g],returnEnd:!0},C=e.inherit(u,{className:"name",keywords:t,starts:e.inherit(T,{end:/\)/})});g.contains=[C];const R=e.inherit(u,{keywords:t,className:"name",starts:e.inherit(T,{end:/\}\}/})}),f=e.inherit(u,{keywords:t,className:"name"}),O=e.inherit(u,{className:"name",keywords:t,starts:e.inherit(T,{end:/\}\}/})});return{name:"Handlebars",aliases:["hbs","html.hbs","html.handlebars","htmlbars"],case_insensitive:!0,subLanguage:"xml",contains:[{begin:/\\\{\{/,skip:!0},{begin:/\\\\(?=\{\{)/,skip:!0},e.COMMENT(/\{\{!--/,/--\}\}/),e.COMMENT(/\{\{!/,/\}\}/),{className:"template-tag",begin:/\{\{\{\{(?!\/)/,end:/\}\}\}\}/,contains:[R],starts:{end:/\{\{\{\{\//,returnEnd:!0,subLanguage:"xml"}},{className:"template-tag",begin:/\{\{\{\{\//,end:/\}\}\}\}/,contains:[f]},{className:"template-tag",begin:/\{\{#/,end:/\}\}/,contains:[R]},{className:"template-tag",begin:/\{\{(?=else\}\})/,end:/\}\}/,keywords:"else"},{className:"template-tag",begin:/\{\{(?=else if)/,end:/\}\}/,keywords:"else if"},{className:"template-tag",begin:/\{\{\//,end:/\}\}/,contains:[f]},{className:"template-variable",begin:/\{\{\{/,end:/\}\}\}/,contains:[O]},{className:"template-variable",begin:/\{\{/,end:/\}\}/,contains:[O]}]}}function wl(e){const t=Pl(e);return t.name="HTMLbars",e.getLanguage("handlebars")&&(t.disableAutodetect=!0),t}var kl=wl;function Ul(e){return e?typeof e=="string"?e:e.source:null}function Fl(...e){return e.map(n=>Ul(n)).join("")}function Bl(e){const t="HTTP/(2|1\\.[01])",a={className:"attribute",begin:Fl("^",/[A-Za-z][A-Za-z0-9-]*/,"(?=\\:\\s)"),starts:{contains:[{className:"punctuation",begin:/: /,relevance:0,starts:{end:"$",relevance:0}}]}},r=[a,{begin:"\\n\\n",starts:{subLanguage:[],endsWithParent:!0}}];return{name:"HTTP",aliases:["https"],illegal:/\S/,contains:[{begin:"^(?="+t+" \\d{3})",end:/$/,contains:[{className:"meta",begin:t},{className:"number",begin:"\\b\\d{3}\\b"}],starts:{end:/\b\B/,illegal:/\S/,contains:r}},{begin:"(?=^[A-Z]+ (.*?) "+t+"$)",end:/$/,contains:[{className:"string",begin:" ",end:" ",excludeBegin:!0,excludeEnd:!0},{className:"meta",begin:t},{className:"keyword",begin:"[A-Z]+"}],starts:{end:/\b\B/,illegal:/\S/,contains:r}},e.inherit(a,{relevance:0})]}}var Gl=Bl;function Yl(e){var t="a-zA-Z_\\-!.?+*=<>&#'",n="["+t+"]["+t+"0-9/;:]*",a={$pattern:n,"builtin-name":"!= % %= & &= * ** **= *= *map + += , --build-class-- --import-- -= . / // //= /= < << <<= <= = > >= >> >>= @ @= ^ ^= abs accumulate all and any ap-compose ap-dotimes ap-each ap-each-while ap-filter ap-first ap-if ap-last ap-map ap-map-when ap-pipe ap-reduce ap-reject apply as-> ascii assert assoc bin break butlast callable calling-module-name car case cdr chain chr coll? combinations compile compress cond cons cons? continue count curry cut cycle dec def default-method defclass defmacro defmacro-alias defmacro/g! defmain defmethod defmulti defn defn-alias defnc defnr defreader defseq del delattr delete-route dict-comp dir disassemble dispatch-reader-macro distinct divmod do doto drop drop-last drop-while empty? end-sequence eval eval-and-compile eval-when-compile even? every? except exec filter first flatten float? fn fnc fnr for for* format fraction genexpr gensym get getattr global globals group-by hasattr hash hex id identity if if* if-not if-python2 import in inc input instance? integer integer-char? integer? interleave interpose is is-coll is-cons is-empty is-even is-every is-float is-instance is-integer is-integer-char is-iterable is-iterator is-keyword is-neg is-none is-not is-numeric is-odd is-pos is-string is-symbol is-zero isinstance islice issubclass iter iterable? iterate iterator? keyword keyword? lambda last len let lif lif-not list* list-comp locals loop macro-error macroexpand macroexpand-1 macroexpand-all map max merge-with method-decorator min multi-decorator multicombinations name neg? next none? nonlocal not not-in not? nth numeric? oct odd? open or ord partition permutations pos? post-route postwalk pow prewalk print product profile/calls profile/cpu put-route quasiquote quote raise range read read-str recursive-replace reduce remove repeat repeatedly repr require rest round route route-with-methods rwm second seq set-comp setattr setv some sorted string string? sum switch symbol? take take-nth take-while tee try unless unquote unquote-splicing vars walk when while with with* with-decorator with-gensyms xi xor yield yield-from zero? zip zip-longest | |= ~"},r="[-+]?\\d+(\\.\\d+)?",i={begin:n,relevance:0},s={className:"number",begin:r,relevance:0},o=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),l=e.COMMENT(";","$",{relevance:0}),c={className:"literal",begin:/\b([Tt]rue|[Ff]alse|nil|None)\b/},_={begin:"[\\[\\{]",end:"[\\]\\}]"},u={className:"comment",begin:"\\^"+n},m=e.COMMENT("\\^\\{","\\}"),g={className:"symbol",begin:"[:]{1,2}"+n},E={begin:"\\(",end:"\\)"},S={endsWithParent:!0,relevance:0},T={className:"name",relevance:0,keywords:a,begin:n,starts:S},C=[E,o,u,m,l,g,_,s,c,i];return E.contains=[e.COMMENT("comment",""),T,S],S.contains=C,_.contains=C,{name:"Hy",aliases:["hylang"],illegal:/\S/,contains:[e.SHEBANG(),E,o,u,m,l,g,_,s,c]}}var Hl=Yl;function Vl(e){const t="\\[",n="\\]";return{name:"Inform 7",aliases:["i7"],case_insensitive:!0,keywords:{keyword:"thing room person man woman animal container supporter backdrop door scenery open closed locked inside gender is are say understand kind of rule"},contains:[{className:"string",begin:'"',end:'"',relevance:0,contains:[{className:"subst",begin:t,end:n}]},{className:"section",begin:/^(Volume|Book|Part|Chapter|Section|Table)\b/,end:"$"},{begin:/^(Check|Carry out|Report|Instead of|To|Rule|When|Before|After)\b/,end:":",contains:[{begin:"\\(This",end:"\\)"}]},{className:"comment",begin:t,end:n,contains:["self"]}]}}var ql=Vl;function dn(e){return e?typeof e=="string"?e:e.source:null}function $l(e){return un("(?=",e,")")}function un(...e){return e.map(n=>dn(n)).join("")}function zl(...e){return"("+e.map(n=>dn(n)).join("|")+")"}function Wl(e){const t={className:"number",relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{begin:e.NUMBER_RE}]},n=e.COMMENT();n.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];const a={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)\}/}]},r={className:"literal",begin:/\bon|off|true|false|yes|no\b/},i={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]},s={begin:/\[/,end:/\]/,contains:[n,r,a,i,t,"self"],relevance:0},_=zl(/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/),u=un(_,"(\\s*\\.\\s*",_,")*",$l(/\s*=\s*[^#\s]/));return{name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,contains:[n,{className:"section",begin:/\[+/,end:/\]+/},{begin:u,className:"attr",starts:{end:/$/,contains:[n,s,r,a,i,t]}}]}}var Kl=Wl;function Ql(e){return e?typeof e=="string"?e:e.source:null}function at(...e){return e.map(n=>Ql(n)).join("")}function Xl(e){const t={className:"params",begin:"\\(",end:"\\)"},n=/(_[a-z_\d]+)?/,a=/([de][+-]?\d+)?/,r={className:"number",variants:[{begin:at(/\b\d+/,/\.(\d*)/,a,n)},{begin:at(/\b\d+/,a,n)},{begin:at(/\.\d+/,a,n)}],relevance:0};return{name:"IRPF90",case_insensitive:!0,keywords:{literal:".False. .True.",keyword:"kind do while private call intrinsic where elsewhere type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. goto save else use module select case access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit continue format pause cycle exit c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg synchronous nopass non_overridable pass protected volatile abstract extends import non_intrinsic value deferred generic final enumerator class associate bind enum c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated c_f_pointer c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure integer real character complex logical dimension allocatable|10 parameter external implicit|10 none double precision assign intent optional pointer target in out common equivalence data begin_provider &begin_provider end_provider begin_shell end_shell begin_template end_template subst assert touch soft_touch provide no_dep free irp_if irp_else irp_endif irp_write irp_read",built_in:"alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod qnint qsign qsin qsinh qsqrt qtan qtanh abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_of acosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr num_images parity popcnt poppar shifta shiftl shiftr this_image IRP_ALIGN irp_here"},illegal:/\/\*/,contains:[e.inherit(e.APOS_STRING_MODE,{className:"string",relevance:0}),e.inherit(e.QUOTE_STRING_MODE,{className:"string",relevance:0}),{className:"function",beginKeywords:"subroutine function program",illegal:"[${=\\n]",contains:[e.UNDERSCORE_TITLE_MODE,t]},e.COMMENT("!","$",{relevance:0}),e.COMMENT("begin_doc","end_doc",{relevance:10}),r]}}var Zl=Xl;function Jl(e){const t="[A-Za-z\u0410-\u042F\u0430-\u044F\u0451\u0401_!][A-Za-z\u0410-\u042F\u0430-\u044F\u0451\u0401_0-9]*",n="[A-Za-z\u0410-\u042F\u0430-\u044F\u0451\u0401_][A-Za-z\u0410-\u042F\u0430-\u044F\u0451\u0401_0-9]*",a="and \u0438 else \u0438\u043D\u0430\u0447\u0435 endexcept endfinally endforeach \u043A\u043E\u043D\u0435\u0446\u0432\u0441\u0435 endif \u043A\u043E\u043D\u0435\u0446\u0435\u0441\u043B\u0438 endwhile \u043A\u043E\u043D\u0435\u0446\u043F\u043E\u043A\u0430 except exitfor finally foreach \u0432\u0441\u0435 if \u0435\u0441\u043B\u0438 in \u0432 not \u043D\u0435 or \u0438\u043B\u0438 try while \u043F\u043E\u043A\u0430 ",r="SYSRES_CONST_ACCES_RIGHT_TYPE_EDIT SYSRES_CONST_ACCES_RIGHT_TYPE_FULL SYSRES_CONST_ACCES_RIGHT_TYPE_VIEW SYSRES_CONST_ACCESS_MODE_REQUISITE_CODE SYSRES_CONST_ACCESS_NO_ACCESS_VIEW SYSRES_CONST_ACCESS_NO_ACCESS_VIEW_CODE SYSRES_CONST_ACCESS_RIGHTS_ADD_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_ADD_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_RIGHTS_CHANGE_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_CHANGE_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_RIGHTS_DELETE_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_DELETE_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_RIGHTS_EXECUTE_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_EXECUTE_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_RIGHTS_NO_ACCESS_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_NO_ACCESS_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_RIGHTS_RATIFY_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_RATIFY_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_RIGHTS_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_VIEW SYSRES_CONST_ACCESS_RIGHTS_VIEW_CODE SYSRES_CONST_ACCESS_RIGHTS_VIEW_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_VIEW_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_TYPE_CHANGE SYSRES_CONST_ACCESS_TYPE_CHANGE_CODE SYSRES_CONST_ACCESS_TYPE_EXISTS SYSRES_CONST_ACCESS_TYPE_EXISTS_CODE SYSRES_CONST_ACCESS_TYPE_FULL SYSRES_CONST_ACCESS_TYPE_FULL_CODE SYSRES_CONST_ACCESS_TYPE_VIEW SYSRES_CONST_ACCESS_TYPE_VIEW_CODE SYSRES_CONST_ACTION_TYPE_ABORT SYSRES_CONST_ACTION_TYPE_ACCEPT SYSRES_CONST_ACTION_TYPE_ACCESS_RIGHTS SYSRES_CONST_ACTION_TYPE_ADD_ATTACHMENT SYSRES_CONST_ACTION_TYPE_CHANGE_CARD SYSRES_CONST_ACTION_TYPE_CHANGE_KIND SYSRES_CONST_ACTION_TYPE_CHANGE_STORAGE SYSRES_CONST_ACTION_TYPE_CONTINUE SYSRES_CONST_ACTION_TYPE_COPY SYSRES_CONST_ACTION_TYPE_CREATE SYSRES_CONST_ACTION_TYPE_CREATE_VERSION SYSRES_CONST_ACTION_TYPE_DELETE SYSRES_CONST_ACTION_TYPE_DELETE_ATTACHMENT SYSRES_CONST_ACTION_TYPE_DELETE_VERSION SYSRES_CONST_ACTION_TYPE_DISABLE_DELEGATE_ACCESS_RIGHTS SYSRES_CONST_ACTION_TYPE_ENABLE_DELEGATE_ACCESS_RIGHTS SYSRES_CONST_ACTION_TYPE_ENCRYPTION_BY_CERTIFICATE SYSRES_CONST_ACTION_TYPE_ENCRYPTION_BY_CERTIFICATE_AND_PASSWORD SYSRES_CONST_ACTION_TYPE_ENCRYPTION_BY_PASSWORD SYSRES_CONST_ACTION_TYPE_EXPORT_WITH_LOCK SYSRES_CONST_ACTION_TYPE_EXPORT_WITHOUT_LOCK SYSRES_CONST_ACTION_TYPE_IMPORT_WITH_UNLOCK SYSRES_CONST_ACTION_TYPE_IMPORT_WITHOUT_UNLOCK SYSRES_CONST_ACTION_TYPE_LIFE_CYCLE_STAGE SYSRES_CONST_ACTION_TYPE_LOCK SYSRES_CONST_ACTION_TYPE_LOCK_FOR_SERVER SYSRES_CONST_ACTION_TYPE_LOCK_MODIFY SYSRES_CONST_ACTION_TYPE_MARK_AS_READED SYSRES_CONST_ACTION_TYPE_MARK_AS_UNREADED SYSRES_CONST_ACTION_TYPE_MODIFY SYSRES_CONST_ACTION_TYPE_MODIFY_CARD SYSRES_CONST_ACTION_TYPE_MOVE_TO_ARCHIVE SYSRES_CONST_ACTION_TYPE_OFF_ENCRYPTION SYSRES_CONST_ACTION_TYPE_PASSWORD_CHANGE SYSRES_CONST_ACTION_TYPE_PERFORM SYSRES_CONST_ACTION_TYPE_RECOVER_FROM_LOCAL_COPY SYSRES_CONST_ACTION_TYPE_RESTART SYSRES_CONST_ACTION_TYPE_RESTORE_FROM_ARCHIVE SYSRES_CONST_ACTION_TYPE_REVISION SYSRES_CONST_ACTION_TYPE_SEND_BY_MAIL SYSRES_CONST_ACTION_TYPE_SIGN SYSRES_CONST_ACTION_TYPE_START SYSRES_CONST_ACTION_TYPE_UNLOCK SYSRES_CONST_ACTION_TYPE_UNLOCK_FROM_SERVER SYSRES_CONST_ACTION_TYPE_VERSION_STATE SYSRES_CONST_ACTION_TYPE_VERSION_VISIBILITY SYSRES_CONST_ACTION_TYPE_VIEW SYSRES_CONST_ACTION_TYPE_VIEW_SHADOW_COPY SYSRES_CONST_ACTION_TYPE_WORKFLOW_DESCRIPTION_MODIFY SYSRES_CONST_ACTION_TYPE_WRITE_HISTORY SYSRES_CONST_ACTIVE_VERSION_STATE_PICK_VALUE SYSRES_CONST_ADD_REFERENCE_MODE_NAME SYSRES_CONST_ADDITION_REQUISITE_CODE SYSRES_CONST_ADDITIONAL_PARAMS_REQUISITE_CODE SYSRES_CONST_ADITIONAL_JOB_END_DATE_REQUISITE_NAME SYSRES_CONST_ADITIONAL_JOB_READ_REQUISITE_NAME SYSRES_CONST_ADITIONAL_JOB_START_DATE_REQUISITE_NAME SYSRES_CONST_ADITIONAL_JOB_STATE_REQUISITE_NAME SYSRES_CONST_ADMINISTRATION_HISTORY_ADDING_USER_TO_GROUP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_ADDING_USER_TO_GROUP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_COMP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_COMP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_GROUP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_GROUP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_USER_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_USER_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_CREATION SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_CREATION_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_DELETION SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_DELETION_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_COMP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_COMP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_GROUP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_GROUP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_FROM_GROUP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_FROM_GROUP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_RESTRICTION_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_RESTRICTION_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_PRIVILEGE_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_PRIVILEGE_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_RIGHTS_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_RIGHTS_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_IS_MAIN_SERVER_CHANGED_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_IS_MAIN_SERVER_CHANGED_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_IS_PUBLIC_CHANGED_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_IS_PUBLIC_CHANGED_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_RESTRICTION_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_RESTRICTION_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_PRIVILEGE_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_PRIVILEGE_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_RIGHTS_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_RIGHTS_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_CREATION SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_CREATION_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_DELETION SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_DELETION_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_CATEGORY_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_CATEGORY_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_COMP_TITLE_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_COMP_TITLE_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_FULL_NAME_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_FULL_NAME_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_GROUP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_GROUP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_PARENT_GROUP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_PARENT_GROUP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_AUTH_TYPE_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_AUTH_TYPE_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_LOGIN_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_LOGIN_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_STATUS_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_STATUS_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_USER_PASSWORD_CHANGE SYSRES_CONST_ADMINISTRATION_HISTORY_USER_PASSWORD_CHANGE_ACTION SYSRES_CONST_ALL_ACCEPT_CONDITION_RUS SYSRES_CONST_ALL_USERS_GROUP SYSRES_CONST_ALL_USERS_GROUP_NAME SYSRES_CONST_ALL_USERS_SERVER_GROUP_NAME SYSRES_CONST_ALLOWED_ACCESS_TYPE_CODE SYSRES_CONST_ALLOWED_ACCESS_TYPE_NAME SYSRES_CONST_APP_VIEWER_TYPE_REQUISITE_CODE SYSRES_CONST_APPROVING_SIGNATURE_NAME SYSRES_CONST_APPROVING_SIGNATURE_REQUISITE_CODE SYSRES_CONST_ASSISTANT_SUBSTITUE_TYPE SYSRES_CONST_ASSISTANT_SUBSTITUE_TYPE_CODE SYSRES_CONST_ATTACH_TYPE_COMPONENT_TOKEN SYSRES_CONST_ATTACH_TYPE_DOC SYSRES_CONST_ATTACH_TYPE_EDOC SYSRES_CONST_ATTACH_TYPE_FOLDER SYSRES_CONST_ATTACH_TYPE_JOB SYSRES_CONST_ATTACH_TYPE_REFERENCE SYSRES_CONST_ATTACH_TYPE_TASK SYSRES_CONST_AUTH_ENCODED_PASSWORD SYSRES_CONST_AUTH_ENCODED_PASSWORD_CODE SYSRES_CONST_AUTH_NOVELL SYSRES_CONST_AUTH_PASSWORD SYSRES_CONST_AUTH_PASSWORD_CODE SYSRES_CONST_AUTH_WINDOWS SYSRES_CONST_AUTHENTICATING_SIGNATURE_NAME SYSRES_CONST_AUTHENTICATING_SIGNATURE_REQUISITE_CODE SYSRES_CONST_AUTO_ENUM_METHOD_FLAG SYSRES_CONST_AUTO_NUMERATION_CODE SYSRES_CONST_AUTO_STRONG_ENUM_METHOD_FLAG SYSRES_CONST_AUTOTEXT_NAME_REQUISITE_CODE SYSRES_CONST_AUTOTEXT_TEXT_REQUISITE_CODE SYSRES_CONST_AUTOTEXT_USAGE_ALL SYSRES_CONST_AUTOTEXT_USAGE_ALL_CODE SYSRES_CONST_AUTOTEXT_USAGE_SIGN SYSRES_CONST_AUTOTEXT_USAGE_SIGN_CODE SYSRES_CONST_AUTOTEXT_USAGE_WORK SYSRES_CONST_AUTOTEXT_USAGE_WORK_CODE SYSRES_CONST_AUTOTEXT_USE_ANYWHERE_CODE SYSRES_CONST_AUTOTEXT_USE_ON_SIGNING_CODE SYSRES_CONST_AUTOTEXT_USE_ON_WORK_CODE SYSRES_CONST_BEGIN_DATE_REQUISITE_CODE SYSRES_CONST_BLACK_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_BLUE_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_BTN_PART SYSRES_CONST_CALCULATED_ROLE_TYPE_CODE SYSRES_CONST_CALL_TYPE_VARIABLE_BUTTON_VALUE SYSRES_CONST_CALL_TYPE_VARIABLE_PROGRAM_VALUE SYSRES_CONST_CANCEL_MESSAGE_FUNCTION_RESULT SYSRES_CONST_CARD_PART SYSRES_CONST_CARD_REFERENCE_MODE_NAME SYSRES_CONST_CERTIFICATE_TYPE_REQUISITE_ENCRYPT_VALUE SYSRES_CONST_CERTIFICATE_TYPE_REQUISITE_SIGN_AND_ENCRYPT_VALUE SYSRES_CONST_CERTIFICATE_TYPE_REQUISITE_SIGN_VALUE SYSRES_CONST_CHECK_PARAM_VALUE_DATE_PARAM_TYPE SYSRES_CONST_CHECK_PARAM_VALUE_FLOAT_PARAM_TYPE SYSRES_CONST_CHECK_PARAM_VALUE_INTEGER_PARAM_TYPE SYSRES_CONST_CHECK_PARAM_VALUE_PICK_PARAM_TYPE SYSRES_CONST_CHECK_PARAM_VALUE_REEFRENCE_PARAM_TYPE SYSRES_CONST_CLOSED_RECORD_FLAG_VALUE_FEMININE SYSRES_CONST_CLOSED_RECORD_FLAG_VALUE_MASCULINE SYSRES_CONST_CODE_COMPONENT_TYPE_ADMIN SYSRES_CONST_CODE_COMPONENT_TYPE_DEVELOPER SYSRES_CONST_CODE_COMPONENT_TYPE_DOCS SYSRES_CONST_CODE_COMPONENT_TYPE_EDOC_CARDS SYSRES_CONST_CODE_COMPONENT_TYPE_EXTERNAL_EXECUTABLE SYSRES_CONST_CODE_COMPONENT_TYPE_OTHER SYSRES_CONST_CODE_COMPONENT_TYPE_REFERENCE SYSRES_CONST_CODE_COMPONENT_TYPE_REPORT SYSRES_CONST_CODE_COMPONENT_TYPE_SCRIPT SYSRES_CONST_CODE_COMPONENT_TYPE_URL SYSRES_CONST_CODE_REQUISITE_ACCESS SYSRES_CONST_CODE_REQUISITE_CODE SYSRES_CONST_CODE_REQUISITE_COMPONENT SYSRES_CONST_CODE_REQUISITE_DESCRIPTION SYSRES_CONST_CODE_REQUISITE_EXCLUDE_COMPONENT SYSRES_CONST_CODE_REQUISITE_RECORD SYSRES_CONST_COMMENT_REQ_CODE SYSRES_CONST_COMMON_SETTINGS_REQUISITE_CODE SYSRES_CONST_COMP_CODE_GRD SYSRES_CONST_COMPONENT_GROUP_TYPE_REQUISITE_CODE SYSRES_CONST_COMPONENT_TYPE_ADMIN_COMPONENTS SYSRES_CONST_COMPONENT_TYPE_DEVELOPER_COMPONENTS SYSRES_CONST_COMPONENT_TYPE_DOCS SYSRES_CONST_COMPONENT_TYPE_EDOC_CARDS SYSRES_CONST_COMPONENT_TYPE_EDOCS SYSRES_CONST_COMPONENT_TYPE_EXTERNAL_EXECUTABLE SYSRES_CONST_COMPONENT_TYPE_OTHER SYSRES_CONST_COMPONENT_TYPE_REFERENCE_TYPES SYSRES_CONST_COMPONENT_TYPE_REFERENCES SYSRES_CONST_COMPONENT_TYPE_REPORTS SYSRES_CONST_COMPONENT_TYPE_SCRIPTS SYSRES_CONST_COMPONENT_TYPE_URL SYSRES_CONST_COMPONENTS_REMOTE_SERVERS_VIEW_CODE SYSRES_CONST_CONDITION_BLOCK_DESCRIPTION SYSRES_CONST_CONST_FIRM_STATUS_COMMON SYSRES_CONST_CONST_FIRM_STATUS_INDIVIDUAL SYSRES_CONST_CONST_NEGATIVE_VALUE SYSRES_CONST_CONST_POSITIVE_VALUE SYSRES_CONST_CONST_SERVER_STATUS_DONT_REPLICATE SYSRES_CONST_CONST_SERVER_STATUS_REPLICATE SYSRES_CONST_CONTENTS_REQUISITE_CODE SYSRES_CONST_DATA_TYPE_BOOLEAN SYSRES_CONST_DATA_TYPE_DATE SYSRES_CONST_DATA_TYPE_FLOAT SYSRES_CONST_DATA_TYPE_INTEGER SYSRES_CONST_DATA_TYPE_PICK SYSRES_CONST_DATA_TYPE_REFERENCE SYSRES_CONST_DATA_TYPE_STRING SYSRES_CONST_DATA_TYPE_TEXT SYSRES_CONST_DATA_TYPE_VARIANT SYSRES_CONST_DATE_CLOSE_REQ_CODE SYSRES_CONST_DATE_FORMAT_DATE_ONLY_CHAR SYSRES_CONST_DATE_OPEN_REQ_CODE SYSRES_CONST_DATE_REQUISITE SYSRES_CONST_DATE_REQUISITE_CODE SYSRES_CONST_DATE_REQUISITE_NAME SYSRES_CONST_DATE_REQUISITE_TYPE SYSRES_CONST_DATE_TYPE_CHAR SYSRES_CONST_DATETIME_FORMAT_VALUE SYSRES_CONST_DEA_ACCESS_RIGHTS_ACTION_CODE SYSRES_CONST_DESCRIPTION_LOCALIZE_ID_REQUISITE_CODE SYSRES_CONST_DESCRIPTION_REQUISITE_CODE SYSRES_CONST_DET1_PART SYSRES_CONST_DET2_PART SYSRES_CONST_DET3_PART SYSRES_CONST_DET4_PART SYSRES_CONST_DET5_PART SYSRES_CONST_DET6_PART SYSRES_CONST_DETAIL_DATASET_KEY_REQUISITE_CODE SYSRES_CONST_DETAIL_PICK_REQUISITE_CODE SYSRES_CONST_DETAIL_REQ_CODE SYSRES_CONST_DO_NOT_USE_ACCESS_TYPE_CODE SYSRES_CONST_DO_NOT_USE_ACCESS_TYPE_NAME SYSRES_CONST_DO_NOT_USE_ON_VIEW_ACCESS_TYPE_CODE SYSRES_CONST_DO_NOT_USE_ON_VIEW_ACCESS_TYPE_NAME SYSRES_CONST_DOCUMENT_STORAGES_CODE SYSRES_CONST_DOCUMENT_TEMPLATES_TYPE_NAME SYSRES_CONST_DOUBLE_REQUISITE_CODE SYSRES_CONST_EDITOR_CLOSE_FILE_OBSERV_TYPE_CODE SYSRES_CONST_EDITOR_CLOSE_PROCESS_OBSERV_TYPE_CODE SYSRES_CONST_EDITOR_TYPE_REQUISITE_CODE SYSRES_CONST_EDITORS_APPLICATION_NAME_REQUISITE_CODE SYSRES_CONST_EDITORS_CREATE_SEVERAL_PROCESSES_REQUISITE_CODE SYSRES_CONST_EDITORS_EXTENSION_REQUISITE_CODE SYSRES_CONST_EDITORS_OBSERVER_BY_PROCESS_TYPE SYSRES_CONST_EDITORS_REFERENCE_CODE SYSRES_CONST_EDITORS_REPLACE_SPEC_CHARS_REQUISITE_CODE SYSRES_CONST_EDITORS_USE_PLUGINS_REQUISITE_CODE SYSRES_CONST_EDITORS_VIEW_DOCUMENT_OPENED_TO_EDIT_CODE SYSRES_CONST_EDOC_CARD_TYPE_REQUISITE_CODE SYSRES_CONST_EDOC_CARD_TYPES_LINK_REQUISITE_CODE SYSRES_CONST_EDOC_CERTIFICATE_AND_PASSWORD_ENCODE_CODE SYSRES_CONST_EDOC_CERTIFICATE_ENCODE_CODE SYSRES_CONST_EDOC_DATE_REQUISITE_CODE SYSRES_CONST_EDOC_KIND_REFERENCE_CODE SYSRES_CONST_EDOC_KINDS_BY_TEMPLATE_ACTION_CODE SYSRES_CONST_EDOC_MANAGE_ACCESS_CODE SYSRES_CONST_EDOC_NONE_ENCODE_CODE SYSRES_CONST_EDOC_NUMBER_REQUISITE_CODE SYSRES_CONST_EDOC_PASSWORD_ENCODE_CODE SYSRES_CONST_EDOC_READONLY_ACCESS_CODE SYSRES_CONST_EDOC_SHELL_LIFE_TYPE_VIEW_VALUE SYSRES_CONST_EDOC_SIZE_RESTRICTION_PRIORITY_REQUISITE_CODE SYSRES_CONST_EDOC_STORAGE_CHECK_ACCESS_RIGHTS_REQUISITE_CODE SYSRES_CONST_EDOC_STORAGE_COMPUTER_NAME_REQUISITE_CODE SYSRES_CONST_EDOC_STORAGE_DATABASE_NAME_REQUISITE_CODE SYSRES_CONST_EDOC_STORAGE_EDIT_IN_STORAGE_REQUISITE_CODE SYSRES_CONST_EDOC_STORAGE_LOCAL_PATH_REQUISITE_CODE SYSRES_CONST_EDOC_STORAGE_SHARED_SOURCE_NAME_REQUISITE_CODE SYSRES_CONST_EDOC_TEMPLATE_REQUISITE_CODE SYSRES_CONST_EDOC_TYPES_REFERENCE_CODE SYSRES_CONST_EDOC_VERSION_ACTIVE_STAGE_CODE SYSRES_CONST_EDOC_VERSION_DESIGN_STAGE_CODE SYSRES_CONST_EDOC_VERSION_OBSOLETE_STAGE_CODE SYSRES_CONST_EDOC_WRITE_ACCES_CODE SYSRES_CONST_EDOCUMENT_CARD_REQUISITES_REFERENCE_CODE_SELECTED_REQUISITE SYSRES_CONST_ENCODE_CERTIFICATE_TYPE_CODE SYSRES_CONST_END_DATE_REQUISITE_CODE SYSRES_CONST_ENUMERATION_TYPE_REQUISITE_CODE SYSRES_CONST_EXECUTE_ACCESS_RIGHTS_TYPE_CODE SYSRES_CONST_EXECUTIVE_FILE_STORAGE_TYPE SYSRES_CONST_EXIST_CONST SYSRES_CONST_EXIST_VALUE SYSRES_CONST_EXPORT_LOCK_TYPE_ASK SYSRES_CONST_EXPORT_LOCK_TYPE_WITH_LOCK SYSRES_CONST_EXPORT_LOCK_TYPE_WITHOUT_LOCK SYSRES_CONST_EXPORT_VERSION_TYPE_ASK SYSRES_CONST_EXPORT_VERSION_TYPE_LAST SYSRES_CONST_EXPORT_VERSION_TYPE_LAST_ACTIVE SYSRES_CONST_EXTENSION_REQUISITE_CODE SYSRES_CONST_FILTER_NAME_REQUISITE_CODE SYSRES_CONST_FILTER_REQUISITE_CODE SYSRES_CONST_FILTER_TYPE_COMMON_CODE SYSRES_CONST_FILTER_TYPE_COMMON_NAME SYSRES_CONST_FILTER_TYPE_USER_CODE SYSRES_CONST_FILTER_TYPE_USER_NAME SYSRES_CONST_FILTER_VALUE_REQUISITE_NAME SYSRES_CONST_FLOAT_NUMBER_FORMAT_CHAR SYSRES_CONST_FLOAT_REQUISITE_TYPE SYSRES_CONST_FOLDER_AUTHOR_VALUE SYSRES_CONST_FOLDER_KIND_ANY_OBJECTS SYSRES_CONST_FOLDER_KIND_COMPONENTS SYSRES_CONST_FOLDER_KIND_EDOCS SYSRES_CONST_FOLDER_KIND_JOBS SYSRES_CONST_FOLDER_KIND_TASKS SYSRES_CONST_FOLDER_TYPE_COMMON SYSRES_CONST_FOLDER_TYPE_COMPONENT SYSRES_CONST_FOLDER_TYPE_FAVORITES SYSRES_CONST_FOLDER_TYPE_INBOX SYSRES_CONST_FOLDER_TYPE_OUTBOX SYSRES_CONST_FOLDER_TYPE_QUICK_LAUNCH SYSRES_CONST_FOLDER_TYPE_SEARCH SYSRES_CONST_FOLDER_TYPE_SHORTCUTS SYSRES_CONST_FOLDER_TYPE_USER SYSRES_CONST_FROM_DICTIONARY_ENUM_METHOD_FLAG SYSRES_CONST_FULL_SUBSTITUTE_TYPE SYSRES_CONST_FULL_SUBSTITUTE_TYPE_CODE SYSRES_CONST_FUNCTION_CANCEL_RESULT SYSRES_CONST_FUNCTION_CATEGORY_SYSTEM SYSRES_CONST_FUNCTION_CATEGORY_USER SYSRES_CONST_FUNCTION_FAILURE_RESULT SYSRES_CONST_FUNCTION_SAVE_RESULT SYSRES_CONST_GENERATED_REQUISITE SYSRES_CONST_GREEN_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_GROUP_ACCOUNT_TYPE_VALUE_CODE SYSRES_CONST_GROUP_CATEGORY_NORMAL_CODE SYSRES_CONST_GROUP_CATEGORY_NORMAL_NAME SYSRES_CONST_GROUP_CATEGORY_SERVICE_CODE SYSRES_CONST_GROUP_CATEGORY_SERVICE_NAME SYSRES_CONST_GROUP_COMMON_CATEGORY_FIELD_VALUE SYSRES_CONST_GROUP_FULL_NAME_REQUISITE_CODE SYSRES_CONST_GROUP_NAME_REQUISITE_CODE SYSRES_CONST_GROUP_RIGHTS_T_REQUISITE_CODE SYSRES_CONST_GROUP_SERVER_CODES_REQUISITE_CODE SYSRES_CONST_GROUP_SERVER_NAME_REQUISITE_CODE SYSRES_CONST_GROUP_SERVICE_CATEGORY_FIELD_VALUE SYSRES_CONST_GROUP_USER_REQUISITE_CODE SYSRES_CONST_GROUPS_REFERENCE_CODE SYSRES_CONST_GROUPS_REQUISITE_CODE SYSRES_CONST_HIDDEN_MODE_NAME SYSRES_CONST_HIGH_LVL_REQUISITE_CODE SYSRES_CONST_HISTORY_ACTION_CREATE_CODE SYSRES_CONST_HISTORY_ACTION_DELETE_CODE SYSRES_CONST_HISTORY_ACTION_EDIT_CODE SYSRES_CONST_HOUR_CHAR SYSRES_CONST_ID_REQUISITE_CODE SYSRES_CONST_IDSPS_REQUISITE_CODE SYSRES_CONST_IMAGE_MODE_COLOR SYSRES_CONST_IMAGE_MODE_GREYSCALE SYSRES_CONST_IMAGE_MODE_MONOCHROME SYSRES_CONST_IMPORTANCE_HIGH SYSRES_CONST_IMPORTANCE_LOW SYSRES_CONST_IMPORTANCE_NORMAL SYSRES_CONST_IN_DESIGN_VERSION_STATE_PICK_VALUE SYSRES_CONST_INCOMING_WORK_RULE_TYPE_CODE SYSRES_CONST_INT_REQUISITE SYSRES_CONST_INT_REQUISITE_TYPE SYSRES_CONST_INTEGER_NUMBER_FORMAT_CHAR SYSRES_CONST_INTEGER_TYPE_CHAR SYSRES_CONST_IS_GENERATED_REQUISITE_NEGATIVE_VALUE SYSRES_CONST_IS_PUBLIC_ROLE_REQUISITE_CODE SYSRES_CONST_IS_REMOTE_USER_NEGATIVE_VALUE SYSRES_CONST_IS_REMOTE_USER_POSITIVE_VALUE SYSRES_CONST_IS_STORED_REQUISITE_NEGATIVE_VALUE SYSRES_CONST_IS_STORED_REQUISITE_STORED_VALUE SYSRES_CONST_ITALIC_LIFE_CYCLE_STAGE_DRAW_STYLE SYSRES_CONST_JOB_BLOCK_DESCRIPTION SYSRES_CONST_JOB_KIND_CONTROL_JOB SYSRES_CONST_JOB_KIND_JOB SYSRES_CONST_JOB_KIND_NOTICE SYSRES_CONST_JOB_STATE_ABORTED SYSRES_CONST_JOB_STATE_COMPLETE SYSRES_CONST_JOB_STATE_WORKING SYSRES_CONST_KIND_REQUISITE_CODE SYSRES_CONST_KIND_REQUISITE_NAME SYSRES_CONST_KINDS_CREATE_SHADOW_COPIES_REQUISITE_CODE SYSRES_CONST_KINDS_DEFAULT_EDOC_LIFE_STAGE_REQUISITE_CODE SYSRES_CONST_KINDS_EDOC_ALL_TEPLATES_ALLOWED_REQUISITE_CODE SYSRES_CONST_KINDS_EDOC_ALLOW_LIFE_CYCLE_STAGE_CHANGING_REQUISITE_CODE SYSRES_CONST_KINDS_EDOC_ALLOW_MULTIPLE_ACTIVE_VERSIONS_REQUISITE_CODE SYSRES_CONST_KINDS_EDOC_SHARE_ACCES_RIGHTS_BY_DEFAULT_CODE SYSRES_CONST_KINDS_EDOC_TEMPLATE_REQUISITE_CODE SYSRES_CONST_KINDS_EDOC_TYPE_REQUISITE_CODE SYSRES_CONST_KINDS_SIGNERS_REQUISITES_CODE SYSRES_CONST_KOD_INPUT_TYPE SYSRES_CONST_LAST_UPDATE_DATE_REQUISITE_CODE SYSRES_CONST_LIFE_CYCLE_START_STAGE_REQUISITE_CODE SYSRES_CONST_LILAC_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_LINK_OBJECT_KIND_COMPONENT SYSRES_CONST_LINK_OBJECT_KIND_DOCUMENT SYSRES_CONST_LINK_OBJECT_KIND_EDOC SYSRES_CONST_LINK_OBJECT_KIND_FOLDER SYSRES_CONST_LINK_OBJECT_KIND_JOB SYSRES_CONST_LINK_OBJECT_KIND_REFERENCE SYSRES_CONST_LINK_OBJECT_KIND_TASK SYSRES_CONST_LINK_REF_TYPE_REQUISITE_CODE SYSRES_CONST_LIST_REFERENCE_MODE_NAME SYSRES_CONST_LOCALIZATION_DICTIONARY_MAIN_VIEW_CODE SYSRES_CONST_MAIN_VIEW_CODE SYSRES_CONST_MANUAL_ENUM_METHOD_FLAG SYSRES_CONST_MASTER_COMP_TYPE_REQUISITE_CODE SYSRES_CONST_MASTER_TABLE_REC_ID_REQUISITE_CODE SYSRES_CONST_MAXIMIZED_MODE_NAME SYSRES_CONST_ME_VALUE SYSRES_CONST_MESSAGE_ATTENTION_CAPTION SYSRES_CONST_MESSAGE_CONFIRMATION_CAPTION SYSRES_CONST_MESSAGE_ERROR_CAPTION SYSRES_CONST_MESSAGE_INFORMATION_CAPTION SYSRES_CONST_MINIMIZED_MODE_NAME SYSRES_CONST_MINUTE_CHAR SYSRES_CONST_MODULE_REQUISITE_CODE SYSRES_CONST_MONITORING_BLOCK_DESCRIPTION SYSRES_CONST_MONTH_FORMAT_VALUE SYSRES_CONST_NAME_LOCALIZE_ID_REQUISITE_CODE SYSRES_CONST_NAME_REQUISITE_CODE SYSRES_CONST_NAME_SINGULAR_REQUISITE_CODE SYSRES_CONST_NAMEAN_INPUT_TYPE SYSRES_CONST_NEGATIVE_PICK_VALUE SYSRES_CONST_NEGATIVE_VALUE SYSRES_CONST_NO SYSRES_CONST_NO_PICK_VALUE SYSRES_CONST_NO_SIGNATURE_REQUISITE_CODE SYSRES_CONST_NO_VALUE SYSRES_CONST_NONE_ACCESS_RIGHTS_TYPE_CODE SYSRES_CONST_NONOPERATING_RECORD_FLAG_VALUE SYSRES_CONST_NONOPERATING_RECORD_FLAG_VALUE_MASCULINE SYSRES_CONST_NORMAL_ACCESS_RIGHTS_TYPE_CODE SYSRES_CONST_NORMAL_LIFE_CYCLE_STAGE_DRAW_STYLE SYSRES_CONST_NORMAL_MODE_NAME SYSRES_CONST_NOT_ALLOWED_ACCESS_TYPE_CODE SYSRES_CONST_NOT_ALLOWED_ACCESS_TYPE_NAME SYSRES_CONST_NOTE_REQUISITE_CODE SYSRES_CONST_NOTICE_BLOCK_DESCRIPTION SYSRES_CONST_NUM_REQUISITE SYSRES_CONST_NUM_STR_REQUISITE_CODE SYSRES_CONST_NUMERATION_AUTO_NOT_STRONG SYSRES_CONST_NUMERATION_AUTO_STRONG SYSRES_CONST_NUMERATION_FROM_DICTONARY SYSRES_CONST_NUMERATION_MANUAL SYSRES_CONST_NUMERIC_TYPE_CHAR SYSRES_CONST_NUMREQ_REQUISITE_CODE SYSRES_CONST_OBSOLETE_VERSION_STATE_PICK_VALUE SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE_CODE SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE_FEMININE SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE_MASCULINE SYSRES_CONST_OPTIONAL_FORM_COMP_REQCODE_PREFIX SYSRES_CONST_ORANGE_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_ORIGINALREF_REQUISITE_CODE SYSRES_CONST_OURFIRM_REF_CODE SYSRES_CONST_OURFIRM_REQUISITE_CODE SYSRES_CONST_OURFIRM_VAR SYSRES_CONST_OUTGOING_WORK_RULE_TYPE_CODE SYSRES_CONST_PICK_NEGATIVE_RESULT SYSRES_CONST_PICK_POSITIVE_RESULT SYSRES_CONST_PICK_REQUISITE SYSRES_CONST_PICK_REQUISITE_TYPE SYSRES_CONST_PICK_TYPE_CHAR SYSRES_CONST_PLAN_STATUS_REQUISITE_CODE SYSRES_CONST_PLATFORM_VERSION_COMMENT SYSRES_CONST_PLUGINS_SETTINGS_DESCRIPTION_REQUISITE_CODE SYSRES_CONST_POSITIVE_PICK_VALUE SYSRES_CONST_POWER_TO_CREATE_ACTION_CODE SYSRES_CONST_POWER_TO_SIGN_ACTION_CODE SYSRES_CONST_PRIORITY_REQUISITE_CODE SYSRES_CONST_QUALIFIED_TASK_TYPE SYSRES_CONST_QUALIFIED_TASK_TYPE_CODE SYSRES_CONST_RECSTAT_REQUISITE_CODE SYSRES_CONST_RED_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_REF_ID_T_REF_TYPE_REQUISITE_CODE SYSRES_CONST_REF_REQUISITE SYSRES_CONST_REF_REQUISITE_TYPE SYSRES_CONST_REF_REQUISITES_REFERENCE_CODE_SELECTED_REQUISITE SYSRES_CONST_REFERENCE_RECORD_HISTORY_CREATE_ACTION_CODE SYSRES_CONST_REFERENCE_RECORD_HISTORY_DELETE_ACTION_CODE SYSRES_CONST_REFERENCE_RECORD_HISTORY_MODIFY_ACTION_CODE SYSRES_CONST_REFERENCE_TYPE_CHAR SYSRES_CONST_REFERENCE_TYPE_REQUISITE_NAME SYSRES_CONST_REFERENCES_ADD_PARAMS_REQUISITE_CODE SYSRES_CONST_REFERENCES_DISPLAY_REQUISITE_REQUISITE_CODE SYSRES_CONST_REMOTE_SERVER_STATUS_WORKING SYSRES_CONST_REMOTE_SERVER_TYPE_MAIN SYSRES_CONST_REMOTE_SERVER_TYPE_SECONDARY SYSRES_CONST_REMOTE_USER_FLAG_VALUE_CODE SYSRES_CONST_REPORT_APP_EDITOR_INTERNAL SYSRES_CONST_REPORT_BASE_REPORT_ID_REQUISITE_CODE SYSRES_CONST_REPORT_BASE_REPORT_REQUISITE_CODE SYSRES_CONST_REPORT_SCRIPT_REQUISITE_CODE SYSRES_CONST_REPORT_TEMPLATE_REQUISITE_CODE SYSRES_CONST_REPORT_VIEWER_CODE_REQUISITE_CODE SYSRES_CONST_REQ_ALLOW_COMPONENT_DEFAULT_VALUE SYSRES_CONST_REQ_ALLOW_RECORD_DEFAULT_VALUE SYSRES_CONST_REQ_ALLOW_SERVER_COMPONENT_DEFAULT_VALUE SYSRES_CONST_REQ_MODE_AVAILABLE_CODE SYSRES_CONST_REQ_MODE_EDIT_CODE SYSRES_CONST_REQ_MODE_HIDDEN_CODE SYSRES_CONST_REQ_MODE_NOT_AVAILABLE_CODE SYSRES_CONST_REQ_MODE_VIEW_CODE SYSRES_CONST_REQ_NUMBER_REQUISITE_CODE SYSRES_CONST_REQ_SECTION_VALUE SYSRES_CONST_REQ_TYPE_VALUE SYSRES_CONST_REQUISITE_FORMAT_BY_UNIT SYSRES_CONST_REQUISITE_FORMAT_DATE_FULL SYSRES_CONST_REQUISITE_FORMAT_DATE_TIME SYSRES_CONST_REQUISITE_FORMAT_LEFT SYSRES_CONST_REQUISITE_FORMAT_RIGHT SYSRES_CONST_REQUISITE_FORMAT_WITHOUT_UNIT SYSRES_CONST_REQUISITE_NUMBER_REQUISITE_CODE SYSRES_CONST_REQUISITE_SECTION_ACTIONS SYSRES_CONST_REQUISITE_SECTION_BUTTON SYSRES_CONST_REQUISITE_SECTION_BUTTONS SYSRES_CONST_REQUISITE_SECTION_CARD SYSRES_CONST_REQUISITE_SECTION_TABLE SYSRES_CONST_REQUISITE_SECTION_TABLE10 SYSRES_CONST_REQUISITE_SECTION_TABLE11 SYSRES_CONST_REQUISITE_SECTION_TABLE12 SYSRES_CONST_REQUISITE_SECTION_TABLE13 SYSRES_CONST_REQUISITE_SECTION_TABLE14 SYSRES_CONST_REQUISITE_SECTION_TABLE15 SYSRES_CONST_REQUISITE_SECTION_TABLE16 SYSRES_CONST_REQUISITE_SECTION_TABLE17 SYSRES_CONST_REQUISITE_SECTION_TABLE18 SYSRES_CONST_REQUISITE_SECTION_TABLE19 SYSRES_CONST_REQUISITE_SECTION_TABLE2 SYSRES_CONST_REQUISITE_SECTION_TABLE20 SYSRES_CONST_REQUISITE_SECTION_TABLE21 SYSRES_CONST_REQUISITE_SECTION_TABLE22 SYSRES_CONST_REQUISITE_SECTION_TABLE23 SYSRES_CONST_REQUISITE_SECTION_TABLE24 SYSRES_CONST_REQUISITE_SECTION_TABLE3 SYSRES_CONST_REQUISITE_SECTION_TABLE4 SYSRES_CONST_REQUISITE_SECTION_TABLE5 SYSRES_CONST_REQUISITE_SECTION_TABLE6 SYSRES_CONST_REQUISITE_SECTION_TABLE7 SYSRES_CONST_REQUISITE_SECTION_TABLE8 SYSRES_CONST_REQUISITE_SECTION_TABLE9 SYSRES_CONST_REQUISITES_PSEUDOREFERENCE_REQUISITE_NUMBER_REQUISITE_CODE SYSRES_CONST_RIGHT_ALIGNMENT_CODE SYSRES_CONST_ROLES_REFERENCE_CODE SYSRES_CONST_ROUTE_STEP_AFTER_RUS SYSRES_CONST_ROUTE_STEP_AND_CONDITION_RUS SYSRES_CONST_ROUTE_STEP_OR_CONDITION_RUS SYSRES_CONST_ROUTE_TYPE_COMPLEX SYSRES_CONST_ROUTE_TYPE_PARALLEL SYSRES_CONST_ROUTE_TYPE_SERIAL SYSRES_CONST_SBDATASETDESC_NEGATIVE_VALUE SYSRES_CONST_SBDATASETDESC_POSITIVE_VALUE SYSRES_CONST_SBVIEWSDESC_POSITIVE_VALUE SYSRES_CONST_SCRIPT_BLOCK_DESCRIPTION SYSRES_CONST_SEARCH_BY_TEXT_REQUISITE_CODE SYSRES_CONST_SEARCHES_COMPONENT_CONTENT SYSRES_CONST_SEARCHES_CRITERIA_ACTION_NAME SYSRES_CONST_SEARCHES_EDOC_CONTENT SYSRES_CONST_SEARCHES_FOLDER_CONTENT SYSRES_CONST_SEARCHES_JOB_CONTENT SYSRES_CONST_SEARCHES_REFERENCE_CODE SYSRES_CONST_SEARCHES_TASK_CONTENT SYSRES_CONST_SECOND_CHAR SYSRES_CONST_SECTION_REQUISITE_ACTIONS_VALUE SYSRES_CONST_SECTION_REQUISITE_CARD_VALUE SYSRES_CONST_SECTION_REQUISITE_CODE SYSRES_CONST_SECTION_REQUISITE_DETAIL_1_VALUE SYSRES_CONST_SECTION_REQUISITE_DETAIL_2_VALUE SYSRES_CONST_SECTION_REQUISITE_DETAIL_3_VALUE SYSRES_CONST_SECTION_REQUISITE_DETAIL_4_VALUE SYSRES_CONST_SECTION_REQUISITE_DETAIL_5_VALUE SYSRES_CONST_SECTION_REQUISITE_DETAIL_6_VALUE SYSRES_CONST_SELECT_REFERENCE_MODE_NAME SYSRES_CONST_SELECT_TYPE_SELECTABLE SYSRES_CONST_SELECT_TYPE_SELECTABLE_ONLY_CHILD SYSRES_CONST_SELECT_TYPE_SELECTABLE_WITH_CHILD SYSRES_CONST_SELECT_TYPE_UNSLECTABLE SYSRES_CONST_SERVER_TYPE_MAIN SYSRES_CONST_SERVICE_USER_CATEGORY_FIELD_VALUE SYSRES_CONST_SETTINGS_USER_REQUISITE_CODE SYSRES_CONST_SIGNATURE_AND_ENCODE_CERTIFICATE_TYPE_CODE SYSRES_CONST_SIGNATURE_CERTIFICATE_TYPE_CODE SYSRES_CONST_SINGULAR_TITLE_REQUISITE_CODE SYSRES_CONST_SQL_SERVER_AUTHENTIFICATION_FLAG_VALUE_CODE SYSRES_CONST_SQL_SERVER_ENCODE_AUTHENTIFICATION_FLAG_VALUE_CODE SYSRES_CONST_STANDART_ROUTE_REFERENCE_CODE SYSRES_CONST_STANDART_ROUTE_REFERENCE_COMMENT_REQUISITE_CODE SYSRES_CONST_STANDART_ROUTES_GROUPS_REFERENCE_CODE SYSRES_CONST_STATE_REQ_NAME SYSRES_CONST_STATE_REQUISITE_ACTIVE_VALUE SYSRES_CONST_STATE_REQUISITE_CLOSED_VALUE SYSRES_CONST_STATE_REQUISITE_CODE SYSRES_CONST_STATIC_ROLE_TYPE_CODE SYSRES_CONST_STATUS_PLAN_DEFAULT_VALUE SYSRES_CONST_STATUS_VALUE_AUTOCLEANING SYSRES_CONST_STATUS_VALUE_BLUE_SQUARE SYSRES_CONST_STATUS_VALUE_COMPLETE SYSRES_CONST_STATUS_VALUE_GREEN_SQUARE SYSRES_CONST_STATUS_VALUE_ORANGE_SQUARE SYSRES_CONST_STATUS_VALUE_PURPLE_SQUARE SYSRES_CONST_STATUS_VALUE_RED_SQUARE SYSRES_CONST_STATUS_VALUE_SUSPEND SYSRES_CONST_STATUS_VALUE_YELLOW_SQUARE SYSRES_CONST_STDROUTE_SHOW_TO_USERS_REQUISITE_CODE SYSRES_CONST_STORAGE_TYPE_FILE SYSRES_CONST_STORAGE_TYPE_SQL_SERVER SYSRES_CONST_STR_REQUISITE SYSRES_CONST_STRIKEOUT_LIFE_CYCLE_STAGE_DRAW_STYLE SYSRES_CONST_STRING_FORMAT_LEFT_ALIGN_CHAR SYSRES_CONST_STRING_FORMAT_RIGHT_ALIGN_CHAR SYSRES_CONST_STRING_REQUISITE_CODE SYSRES_CONST_STRING_REQUISITE_TYPE SYSRES_CONST_STRING_TYPE_CHAR SYSRES_CONST_SUBSTITUTES_PSEUDOREFERENCE_CODE SYSRES_CONST_SUBTASK_BLOCK_DESCRIPTION SYSRES_CONST_SYSTEM_SETTING_CURRENT_USER_PARAM_VALUE SYSRES_CONST_SYSTEM_SETTING_EMPTY_VALUE_PARAM_VALUE SYSRES_CONST_SYSTEM_VERSION_COMMENT SYSRES_CONST_TASK_ACCESS_TYPE_ALL SYSRES_CONST_TASK_ACCESS_TYPE_ALL_MEMBERS SYSRES_CONST_TASK_ACCESS_TYPE_MANUAL SYSRES_CONST_TASK_ENCODE_TYPE_CERTIFICATION SYSRES_CONST_TASK_ENCODE_TYPE_CERTIFICATION_AND_PASSWORD SYSRES_CONST_TASK_ENCODE_TYPE_NONE SYSRES_CONST_TASK_ENCODE_TYPE_PASSWORD SYSRES_CONST_TASK_ROUTE_ALL_CONDITION SYSRES_CONST_TASK_ROUTE_AND_CONDITION SYSRES_CONST_TASK_ROUTE_OR_CONDITION SYSRES_CONST_TASK_STATE_ABORTED SYSRES_CONST_TASK_STATE_COMPLETE SYSRES_CONST_TASK_STATE_CONTINUED SYSRES_CONST_TASK_STATE_CONTROL SYSRES_CONST_TASK_STATE_INIT SYSRES_CONST_TASK_STATE_WORKING SYSRES_CONST_TASK_TITLE SYSRES_CONST_TASK_TYPES_GROUPS_REFERENCE_CODE SYSRES_CONST_TASK_TYPES_REFERENCE_CODE SYSRES_CONST_TEMPLATES_REFERENCE_CODE SYSRES_CONST_TEST_DATE_REQUISITE_NAME SYSRES_CONST_TEST_DEV_DATABASE_NAME SYSRES_CONST_TEST_DEV_SYSTEM_CODE SYSRES_CONST_TEST_EDMS_DATABASE_NAME SYSRES_CONST_TEST_EDMS_MAIN_CODE SYSRES_CONST_TEST_EDMS_MAIN_DB_NAME SYSRES_CONST_TEST_EDMS_SECOND_CODE SYSRES_CONST_TEST_EDMS_SECOND_DB_NAME SYSRES_CONST_TEST_EDMS_SYSTEM_CODE SYSRES_CONST_TEST_NUMERIC_REQUISITE_NAME SYSRES_CONST_TEXT_REQUISITE SYSRES_CONST_TEXT_REQUISITE_CODE SYSRES_CONST_TEXT_REQUISITE_TYPE SYSRES_CONST_TEXT_TYPE_CHAR SYSRES_CONST_TYPE_CODE_REQUISITE_CODE SYSRES_CONST_TYPE_REQUISITE_CODE SYSRES_CONST_UNDEFINED_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_UNITS_SECTION_ID_REQUISITE_CODE SYSRES_CONST_UNITS_SECTION_REQUISITE_CODE SYSRES_CONST_UNOPERATING_RECORD_FLAG_VALUE_CODE SYSRES_CONST_UNSTORED_DATA_REQUISITE_CODE SYSRES_CONST_UNSTORED_DATA_REQUISITE_NAME SYSRES_CONST_USE_ACCESS_TYPE_CODE SYSRES_CONST_USE_ACCESS_TYPE_NAME SYSRES_CONST_USER_ACCOUNT_TYPE_VALUE_CODE SYSRES_CONST_USER_ADDITIONAL_INFORMATION_REQUISITE_CODE SYSRES_CONST_USER_AND_GROUP_ID_FROM_PSEUDOREFERENCE_REQUISITE_CODE SYSRES_CONST_USER_CATEGORY_NORMAL SYSRES_CONST_USER_CERTIFICATE_REQUISITE_CODE SYSRES_CONST_USER_CERTIFICATE_STATE_REQUISITE_CODE SYSRES_CONST_USER_CERTIFICATE_SUBJECT_NAME_REQUISITE_CODE SYSRES_CONST_USER_CERTIFICATE_THUMBPRINT_REQUISITE_CODE SYSRES_CONST_USER_COMMON_CATEGORY SYSRES_CONST_USER_COMMON_CATEGORY_CODE SYSRES_CONST_USER_FULL_NAME_REQUISITE_CODE SYSRES_CONST_USER_GROUP_TYPE_REQUISITE_CODE SYSRES_CONST_USER_LOGIN_REQUISITE_CODE SYSRES_CONST_USER_REMOTE_CONTROLLER_REQUISITE_CODE SYSRES_CONST_USER_REMOTE_SYSTEM_REQUISITE_CODE SYSRES_CONST_USER_RIGHTS_T_REQUISITE_CODE SYSRES_CONST_USER_SERVER_NAME_REQUISITE_CODE SYSRES_CONST_USER_SERVICE_CATEGORY SYSRES_CONST_USER_SERVICE_CATEGORY_CODE SYSRES_CONST_USER_STATUS_ADMINISTRATOR_CODE SYSRES_CONST_USER_STATUS_ADMINISTRATOR_NAME SYSRES_CONST_USER_STATUS_DEVELOPER_CODE SYSRES_CONST_USER_STATUS_DEVELOPER_NAME SYSRES_CONST_USER_STATUS_DISABLED_CODE SYSRES_CONST_USER_STATUS_DISABLED_NAME SYSRES_CONST_USER_STATUS_SYSTEM_DEVELOPER_CODE SYSRES_CONST_USER_STATUS_USER_CODE SYSRES_CONST_USER_STATUS_USER_NAME SYSRES_CONST_USER_STATUS_USER_NAME_DEPRECATED SYSRES_CONST_USER_TYPE_FIELD_VALUE_USER SYSRES_CONST_USER_TYPE_REQUISITE_CODE SYSRES_CONST_USERS_CONTROLLER_REQUISITE_CODE SYSRES_CONST_USERS_IS_MAIN_SERVER_REQUISITE_CODE SYSRES_CONST_USERS_REFERENCE_CODE SYSRES_CONST_USERS_REGISTRATION_CERTIFICATES_ACTION_NAME SYSRES_CONST_USERS_REQUISITE_CODE SYSRES_CONST_USERS_SYSTEM_REQUISITE_CODE SYSRES_CONST_USERS_USER_ACCESS_RIGHTS_TYPR_REQUISITE_CODE SYSRES_CONST_USERS_USER_AUTHENTICATION_REQUISITE_CODE SYSRES_CONST_USERS_USER_COMPONENT_REQUISITE_CODE SYSRES_CONST_USERS_USER_GROUP_REQUISITE_CODE SYSRES_CONST_USERS_VIEW_CERTIFICATES_ACTION_NAME SYSRES_CONST_VIEW_DEFAULT_CODE SYSRES_CONST_VIEW_DEFAULT_NAME SYSRES_CONST_VIEWER_REQUISITE_CODE SYSRES_CONST_WAITING_BLOCK_DESCRIPTION SYSRES_CONST_WIZARD_FORM_LABEL_TEST_STRING SYSRES_CONST_WIZARD_QUERY_PARAM_HEIGHT_ETALON_STRING SYSRES_CONST_WIZARD_REFERENCE_COMMENT_REQUISITE_CODE SYSRES_CONST_WORK_RULES_DESCRIPTION_REQUISITE_CODE SYSRES_CONST_WORK_TIME_CALENDAR_REFERENCE_CODE SYSRES_CONST_WORK_WORKFLOW_HARD_ROUTE_TYPE_VALUE SYSRES_CONST_WORK_WORKFLOW_HARD_ROUTE_TYPE_VALUE_CODE SYSRES_CONST_WORK_WORKFLOW_HARD_ROUTE_TYPE_VALUE_CODE_RUS SYSRES_CONST_WORK_WORKFLOW_SOFT_ROUTE_TYPE_VALUE_CODE_RUS SYSRES_CONST_WORKFLOW_ROUTE_TYPR_HARD SYSRES_CONST_WORKFLOW_ROUTE_TYPR_SOFT SYSRES_CONST_XML_ENCODING SYSRES_CONST_XREC_STAT_REQUISITE_CODE SYSRES_CONST_XRECID_FIELD_NAME SYSRES_CONST_YES SYSRES_CONST_YES_NO_2_REQUISITE_CODE SYSRES_CONST_YES_NO_REQUISITE_CODE SYSRES_CONST_YES_NO_T_REF_TYPE_REQUISITE_CODE SYSRES_CONST_YES_PICK_VALUE SYSRES_CONST_YES_VALUE ",i="CR FALSE nil NO_VALUE NULL TAB TRUE YES_VALUE ",s="ADMINISTRATORS_GROUP_NAME CUSTOMIZERS_GROUP_NAME DEVELOPERS_GROUP_NAME SERVICE_USERS_GROUP_NAME ",o="DECISION_BLOCK_FIRST_OPERAND_PROPERTY DECISION_BLOCK_NAME_PROPERTY DECISION_BLOCK_OPERATION_PROPERTY DECISION_BLOCK_RESULT_TYPE_PROPERTY DECISION_BLOCK_SECOND_OPERAND_PROPERTY ",l="ANY_FILE_EXTENTION COMPRESSED_DOCUMENT_EXTENSION EXTENDED_DOCUMENT_EXTENSION SHORT_COMPRESSED_DOCUMENT_EXTENSION SHORT_EXTENDED_DOCUMENT_EXTENSION ",c="JOB_BLOCK_ABORT_DEADLINE_PROPERTY JOB_BLOCK_AFTER_FINISH_EVENT JOB_BLOCK_AFTER_QUERY_PARAMETERS_EVENT JOB_BLOCK_ATTACHMENT_PROPERTY JOB_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY JOB_BLOCK_ATTACHMENTS_RIGHTS_TYPE_PROPERTY JOB_BLOCK_BEFORE_QUERY_PARAMETERS_EVENT JOB_BLOCK_BEFORE_START_EVENT JOB_BLOCK_CREATED_JOBS_PROPERTY JOB_BLOCK_DEADLINE_PROPERTY JOB_BLOCK_EXECUTION_RESULTS_PROPERTY JOB_BLOCK_IS_PARALLEL_PROPERTY JOB_BLOCK_IS_RELATIVE_ABORT_DEADLINE_PROPERTY JOB_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY JOB_BLOCK_JOB_TEXT_PROPERTY JOB_BLOCK_NAME_PROPERTY JOB_BLOCK_NEED_SIGN_ON_PERFORM_PROPERTY JOB_BLOCK_PERFORMER_PROPERTY JOB_BLOCK_RELATIVE_ABORT_DEADLINE_TYPE_PROPERTY JOB_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY JOB_BLOCK_SUBJECT_PROPERTY ",_="ENGLISH_LANGUAGE_CODE RUSSIAN_LANGUAGE_CODE ",u="smHidden smMaximized smMinimized smNormal wmNo wmYes ",m="COMPONENT_TOKEN_LINK_KIND DOCUMENT_LINK_KIND EDOCUMENT_LINK_KIND FOLDER_LINK_KIND JOB_LINK_KIND REFERENCE_LINK_KIND TASK_LINK_KIND ",g="COMPONENT_TOKEN_LOCK_TYPE EDOCUMENT_VERSION_LOCK_TYPE ",E="MONITOR_BLOCK_AFTER_FINISH_EVENT MONITOR_BLOCK_BEFORE_START_EVENT MONITOR_BLOCK_DEADLINE_PROPERTY MONITOR_BLOCK_INTERVAL_PROPERTY MONITOR_BLOCK_INTERVAL_TYPE_PROPERTY MONITOR_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY MONITOR_BLOCK_NAME_PROPERTY MONITOR_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY MONITOR_BLOCK_SEARCH_SCRIPT_PROPERTY ",S="NOTICE_BLOCK_AFTER_FINISH_EVENT NOTICE_BLOCK_ATTACHMENT_PROPERTY NOTICE_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY NOTICE_BLOCK_ATTACHMENTS_RIGHTS_TYPE_PROPERTY NOTICE_BLOCK_BEFORE_START_EVENT NOTICE_BLOCK_CREATED_NOTICES_PROPERTY NOTICE_BLOCK_DEADLINE_PROPERTY NOTICE_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY NOTICE_BLOCK_NAME_PROPERTY NOTICE_BLOCK_NOTICE_TEXT_PROPERTY NOTICE_BLOCK_PERFORMER_PROPERTY NOTICE_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY NOTICE_BLOCK_SUBJECT_PROPERTY ",T="dseAfterCancel dseAfterClose dseAfterDelete dseAfterDeleteOutOfTransaction dseAfterInsert dseAfterOpen dseAfterScroll dseAfterUpdate dseAfterUpdateOutOfTransaction dseBeforeCancel dseBeforeClose dseBeforeDelete dseBeforeDetailUpdate dseBeforeInsert dseBeforeOpen dseBeforeUpdate dseOnAnyRequisiteChange dseOnCloseRecord dseOnDeleteError dseOnOpenRecord dseOnPrepareUpdate dseOnUpdateError dseOnUpdateRatifiedRecord dseOnValidDelete dseOnValidUpdate reOnChange reOnChangeValues SELECTION_BEGIN_ROUTE_EVENT SELECTION_END_ROUTE_EVENT ",C="CURRENT_PERIOD_IS_REQUIRED PREVIOUS_CARD_TYPE_NAME SHOW_RECORD_PROPERTIES_FORM ",R="ACCESS_RIGHTS_SETTING_DIALOG_CODE ADMINISTRATOR_USER_CODE ANALYTIC_REPORT_TYPE asrtHideLocal asrtHideRemote CALCULATED_ROLE_TYPE_CODE COMPONENTS_REFERENCE_DEVELOPER_VIEW_CODE DCTS_TEST_PROTOCOLS_FOLDER_PATH E_EDOC_VERSION_ALREADY_APPROVINGLY_SIGNED E_EDOC_VERSION_ALREADY_APPROVINGLY_SIGNED_BY_USER E_EDOC_VERSION_ALREDY_SIGNED E_EDOC_VERSION_ALREDY_SIGNED_BY_USER EDOC_TYPES_CODE_REQUISITE_FIELD_NAME EDOCUMENTS_ALIAS_NAME FILES_FOLDER_PATH FILTER_OPERANDS_DELIMITER FILTER_OPERATIONS_DELIMITER FORMCARD_NAME FORMLIST_NAME GET_EXTENDED_DOCUMENT_EXTENSION_CREATION_MODE GET_EXTENDED_DOCUMENT_EXTENSION_IMPORT_MODE INTEGRATED_REPORT_TYPE IS_BUILDER_APPLICATION_ROLE IS_BUILDER_APPLICATION_ROLE2 IS_BUILDER_USERS ISBSYSDEV LOG_FOLDER_PATH mbCancel mbNo mbNoToAll mbOK mbYes mbYesToAll MEMORY_DATASET_DESRIPTIONS_FILENAME mrNo mrNoToAll mrYes mrYesToAll MULTIPLE_SELECT_DIALOG_CODE NONOPERATING_RECORD_FLAG_FEMININE NONOPERATING_RECORD_FLAG_MASCULINE OPERATING_RECORD_FLAG_FEMININE OPERATING_RECORD_FLAG_MASCULINE PROFILING_SETTINGS_COMMON_SETTINGS_CODE_VALUE PROGRAM_INITIATED_LOOKUP_ACTION ratDelete ratEdit ratInsert REPORT_TYPE REQUIRED_PICK_VALUES_VARIABLE rmCard rmList SBRTE_PROGID_DEV SBRTE_PROGID_RELEASE STATIC_ROLE_TYPE_CODE SUPPRESS_EMPTY_TEMPLATE_CREATION SYSTEM_USER_CODE UPDATE_DIALOG_DATASET USED_IN_OBJECT_HINT_PARAM USER_INITIATED_LOOKUP_ACTION USER_NAME_FORMAT USER_SELECTION_RESTRICTIONS WORKFLOW_TEST_PROTOCOLS_FOLDER_PATH ELS_SUBTYPE_CONTROL_NAME ELS_FOLDER_KIND_CONTROL_NAME REPEAT_PROCESS_CURRENT_OBJECT_EXCEPTION_NAME ",f="PRIVILEGE_COMPONENT_FULL_ACCESS PRIVILEGE_DEVELOPMENT_EXPORT PRIVILEGE_DEVELOPMENT_IMPORT PRIVILEGE_DOCUMENT_DELETE PRIVILEGE_ESD PRIVILEGE_FOLDER_DELETE PRIVILEGE_MANAGE_ACCESS_RIGHTS PRIVILEGE_MANAGE_REPLICATION PRIVILEGE_MANAGE_SESSION_SERVER PRIVILEGE_OBJECT_FULL_ACCESS PRIVILEGE_OBJECT_VIEW PRIVILEGE_RESERVE_LICENSE PRIVILEGE_SYSTEM_CUSTOMIZE PRIVILEGE_SYSTEM_DEVELOP PRIVILEGE_SYSTEM_INSTALL PRIVILEGE_TASK_DELETE PRIVILEGE_USER_PLUGIN_SETTINGS_CUSTOMIZE PRIVILEGES_PSEUDOREFERENCE_CODE ",O="ACCESS_TYPES_PSEUDOREFERENCE_CODE ALL_AVAILABLE_COMPONENTS_PSEUDOREFERENCE_CODE ALL_AVAILABLE_PRIVILEGES_PSEUDOREFERENCE_CODE ALL_REPLICATE_COMPONENTS_PSEUDOREFERENCE_CODE AVAILABLE_DEVELOPERS_COMPONENTS_PSEUDOREFERENCE_CODE COMPONENTS_PSEUDOREFERENCE_CODE FILTRATER_SETTINGS_CONFLICTS_PSEUDOREFERENCE_CODE GROUPS_PSEUDOREFERENCE_CODE RECEIVE_PROTOCOL_PSEUDOREFERENCE_CODE REFERENCE_REQUISITE_PSEUDOREFERENCE_CODE REFERENCE_REQUISITES_PSEUDOREFERENCE_CODE REFTYPES_PSEUDOREFERENCE_CODE REPLICATION_SEANCES_DIARY_PSEUDOREFERENCE_CODE SEND_PROTOCOL_PSEUDOREFERENCE_CODE SUBSTITUTES_PSEUDOREFERENCE_CODE SYSTEM_SETTINGS_PSEUDOREFERENCE_CODE UNITS_PSEUDOREFERENCE_CODE USERS_PSEUDOREFERENCE_CODE VIEWERS_PSEUDOREFERENCE_CODE ",L="CERTIFICATE_TYPE_ENCRYPT CERTIFICATE_TYPE_SIGN CERTIFICATE_TYPE_SIGN_AND_ENCRYPT ",h="STORAGE_TYPE_FILE STORAGE_TYPE_NAS_CIFS STORAGE_TYPE_SAPERION STORAGE_TYPE_SQL_SERVER ",w="COMPTYPE2_REQUISITE_DOCUMENTS_VALUE COMPTYPE2_REQUISITE_TASKS_VALUE COMPTYPE2_REQUISITE_FOLDERS_VALUE COMPTYPE2_REQUISITE_REFERENCES_VALUE ",Y="SYSREQ_CODE SYSREQ_COMPTYPE2 SYSREQ_CONST_AVAILABLE_FOR_WEB SYSREQ_CONST_COMMON_CODE SYSREQ_CONST_COMMON_VALUE SYSREQ_CONST_FIRM_CODE SYSREQ_CONST_FIRM_STATUS SYSREQ_CONST_FIRM_VALUE SYSREQ_CONST_SERVER_STATUS SYSREQ_CONTENTS SYSREQ_DATE_OPEN SYSREQ_DATE_CLOSE SYSREQ_DESCRIPTION SYSREQ_DESCRIPTION_LOCALIZE_ID SYSREQ_DOUBLE SYSREQ_EDOC_ACCESS_TYPE SYSREQ_EDOC_AUTHOR SYSREQ_EDOC_CREATED SYSREQ_EDOC_DELEGATE_RIGHTS_REQUISITE_CODE SYSREQ_EDOC_EDITOR SYSREQ_EDOC_ENCODE_TYPE SYSREQ_EDOC_ENCRYPTION_PLUGIN_NAME SYSREQ_EDOC_ENCRYPTION_PLUGIN_VERSION SYSREQ_EDOC_EXPORT_DATE SYSREQ_EDOC_EXPORTER SYSREQ_EDOC_KIND SYSREQ_EDOC_LIFE_STAGE_NAME SYSREQ_EDOC_LOCKED_FOR_SERVER_CODE SYSREQ_EDOC_MODIFIED SYSREQ_EDOC_NAME SYSREQ_EDOC_NOTE SYSREQ_EDOC_QUALIFIED_ID SYSREQ_EDOC_SESSION_KEY SYSREQ_EDOC_SESSION_KEY_ENCRYPTION_PLUGIN_NAME SYSREQ_EDOC_SESSION_KEY_ENCRYPTION_PLUGIN_VERSION SYSREQ_EDOC_SIGNATURE_TYPE SYSREQ_EDOC_SIGNED SYSREQ_EDOC_STORAGE SYSREQ_EDOC_STORAGES_ARCHIVE_STORAGE SYSREQ_EDOC_STORAGES_CHECK_RIGHTS SYSREQ_EDOC_STORAGES_COMPUTER_NAME SYSREQ_EDOC_STORAGES_EDIT_IN_STORAGE SYSREQ_EDOC_STORAGES_EXECUTIVE_STORAGE SYSREQ_EDOC_STORAGES_FUNCTION SYSREQ_EDOC_STORAGES_INITIALIZED SYSREQ_EDOC_STORAGES_LOCAL_PATH SYSREQ_EDOC_STORAGES_SAPERION_DATABASE_NAME SYSREQ_EDOC_STORAGES_SEARCH_BY_TEXT SYSREQ_EDOC_STORAGES_SERVER_NAME SYSREQ_EDOC_STORAGES_SHARED_SOURCE_NAME SYSREQ_EDOC_STORAGES_TYPE SYSREQ_EDOC_TEXT_MODIFIED SYSREQ_EDOC_TYPE_ACT_CODE SYSREQ_EDOC_TYPE_ACT_DESCRIPTION SYSREQ_EDOC_TYPE_ACT_DESCRIPTION_LOCALIZE_ID SYSREQ_EDOC_TYPE_ACT_ON_EXECUTE SYSREQ_EDOC_TYPE_ACT_ON_EXECUTE_EXISTS SYSREQ_EDOC_TYPE_ACT_SECTION SYSREQ_EDOC_TYPE_ADD_PARAMS SYSREQ_EDOC_TYPE_COMMENT SYSREQ_EDOC_TYPE_EVENT_TEXT SYSREQ_EDOC_TYPE_NAME_IN_SINGULAR SYSREQ_EDOC_TYPE_NAME_IN_SINGULAR_LOCALIZE_ID SYSREQ_EDOC_TYPE_NAME_LOCALIZE_ID SYSREQ_EDOC_TYPE_NUMERATION_METHOD SYSREQ_EDOC_TYPE_PSEUDO_REQUISITE_CODE SYSREQ_EDOC_TYPE_REQ_CODE SYSREQ_EDOC_TYPE_REQ_DESCRIPTION SYSREQ_EDOC_TYPE_REQ_DESCRIPTION_LOCALIZE_ID SYSREQ_EDOC_TYPE_REQ_IS_LEADING SYSREQ_EDOC_TYPE_REQ_IS_REQUIRED SYSREQ_EDOC_TYPE_REQ_NUMBER SYSREQ_EDOC_TYPE_REQ_ON_CHANGE SYSREQ_EDOC_TYPE_REQ_ON_CHANGE_EXISTS SYSREQ_EDOC_TYPE_REQ_ON_SELECT SYSREQ_EDOC_TYPE_REQ_ON_SELECT_KIND SYSREQ_EDOC_TYPE_REQ_SECTION SYSREQ_EDOC_TYPE_VIEW_CARD SYSREQ_EDOC_TYPE_VIEW_CODE SYSREQ_EDOC_TYPE_VIEW_COMMENT SYSREQ_EDOC_TYPE_VIEW_IS_MAIN SYSREQ_EDOC_TYPE_VIEW_NAME SYSREQ_EDOC_TYPE_VIEW_NAME_LOCALIZE_ID SYSREQ_EDOC_VERSION_AUTHOR SYSREQ_EDOC_VERSION_CRC SYSREQ_EDOC_VERSION_DATA SYSREQ_EDOC_VERSION_EDITOR SYSREQ_EDOC_VERSION_EXPORT_DATE SYSREQ_EDOC_VERSION_EXPORTER SYSREQ_EDOC_VERSION_HIDDEN SYSREQ_EDOC_VERSION_LIFE_STAGE SYSREQ_EDOC_VERSION_MODIFIED SYSREQ_EDOC_VERSION_NOTE SYSREQ_EDOC_VERSION_SIGNATURE_TYPE SYSREQ_EDOC_VERSION_SIGNED SYSREQ_EDOC_VERSION_SIZE SYSREQ_EDOC_VERSION_SOURCE SYSREQ_EDOC_VERSION_TEXT_MODIFIED SYSREQ_EDOCKIND_DEFAULT_VERSION_STATE_CODE SYSREQ_FOLDER_KIND SYSREQ_FUNC_CATEGORY SYSREQ_FUNC_COMMENT SYSREQ_FUNC_GROUP SYSREQ_FUNC_GROUP_COMMENT SYSREQ_FUNC_GROUP_NUMBER SYSREQ_FUNC_HELP SYSREQ_FUNC_PARAM_DEF_VALUE SYSREQ_FUNC_PARAM_IDENT SYSREQ_FUNC_PARAM_NUMBER SYSREQ_FUNC_PARAM_TYPE SYSREQ_FUNC_TEXT SYSREQ_GROUP_CATEGORY SYSREQ_ID SYSREQ_LAST_UPDATE SYSREQ_LEADER_REFERENCE SYSREQ_LINE_NUMBER SYSREQ_MAIN_RECORD_ID SYSREQ_NAME SYSREQ_NAME_LOCALIZE_ID SYSREQ_NOTE SYSREQ_ORIGINAL_RECORD SYSREQ_OUR_FIRM SYSREQ_PROFILING_SETTINGS_BATCH_LOGING SYSREQ_PROFILING_SETTINGS_BATCH_SIZE SYSREQ_PROFILING_SETTINGS_PROFILING_ENABLED SYSREQ_PROFILING_SETTINGS_SQL_PROFILING_ENABLED SYSREQ_PROFILING_SETTINGS_START_LOGGED SYSREQ_RECORD_STATUS SYSREQ_REF_REQ_FIELD_NAME SYSREQ_REF_REQ_FORMAT SYSREQ_REF_REQ_GENERATED SYSREQ_REF_REQ_LENGTH SYSREQ_REF_REQ_PRECISION SYSREQ_REF_REQ_REFERENCE SYSREQ_REF_REQ_SECTION SYSREQ_REF_REQ_STORED SYSREQ_REF_REQ_TOKENS SYSREQ_REF_REQ_TYPE SYSREQ_REF_REQ_VIEW SYSREQ_REF_TYPE_ACT_CODE SYSREQ_REF_TYPE_ACT_DESCRIPTION SYSREQ_REF_TYPE_ACT_DESCRIPTION_LOCALIZE_ID SYSREQ_REF_TYPE_ACT_ON_EXECUTE SYSREQ_REF_TYPE_ACT_ON_EXECUTE_EXISTS SYSREQ_REF_TYPE_ACT_SECTION SYSREQ_REF_TYPE_ADD_PARAMS SYSREQ_REF_TYPE_COMMENT SYSREQ_REF_TYPE_COMMON_SETTINGS SYSREQ_REF_TYPE_DISPLAY_REQUISITE_NAME SYSREQ_REF_TYPE_EVENT_TEXT SYSREQ_REF_TYPE_MAIN_LEADING_REF SYSREQ_REF_TYPE_NAME_IN_SINGULAR SYSREQ_REF_TYPE_NAME_IN_SINGULAR_LOCALIZE_ID SYSREQ_REF_TYPE_NAME_LOCALIZE_ID SYSREQ_REF_TYPE_NUMERATION_METHOD SYSREQ_REF_TYPE_REQ_CODE SYSREQ_REF_TYPE_REQ_DESCRIPTION SYSREQ_REF_TYPE_REQ_DESCRIPTION_LOCALIZE_ID SYSREQ_REF_TYPE_REQ_IS_CONTROL SYSREQ_REF_TYPE_REQ_IS_FILTER SYSREQ_REF_TYPE_REQ_IS_LEADING SYSREQ_REF_TYPE_REQ_IS_REQUIRED SYSREQ_REF_TYPE_REQ_NUMBER SYSREQ_REF_TYPE_REQ_ON_CHANGE SYSREQ_REF_TYPE_REQ_ON_CHANGE_EXISTS SYSREQ_REF_TYPE_REQ_ON_SELECT SYSREQ_REF_TYPE_REQ_ON_SELECT_KIND SYSREQ_REF_TYPE_REQ_SECTION SYSREQ_REF_TYPE_VIEW_CARD SYSREQ_REF_TYPE_VIEW_CODE SYSREQ_REF_TYPE_VIEW_COMMENT SYSREQ_REF_TYPE_VIEW_IS_MAIN SYSREQ_REF_TYPE_VIEW_NAME SYSREQ_REF_TYPE_VIEW_NAME_LOCALIZE_ID SYSREQ_REFERENCE_TYPE_ID SYSREQ_STATE SYSREQ_STAT\u0415 SYSREQ_SYSTEM_SETTINGS_VALUE SYSREQ_TYPE SYSREQ_UNIT SYSREQ_UNIT_ID SYSREQ_USER_GROUPS_GROUP_FULL_NAME SYSREQ_USER_GROUPS_GROUP_NAME SYSREQ_USER_GROUPS_GROUP_SERVER_NAME SYSREQ_USERS_ACCESS_RIGHTS SYSREQ_USERS_AUTHENTICATION SYSREQ_USERS_CATEGORY SYSREQ_USERS_COMPONENT SYSREQ_USERS_COMPONENT_USER_IS_PUBLIC SYSREQ_USERS_DOMAIN SYSREQ_USERS_FULL_USER_NAME SYSREQ_USERS_GROUP SYSREQ_USERS_IS_MAIN_SERVER SYSREQ_USERS_LOGIN SYSREQ_USERS_REFERENCE_USER_IS_PUBLIC SYSREQ_USERS_STATUS SYSREQ_USERS_USER_CERTIFICATE SYSREQ_USERS_USER_CERTIFICATE_INFO SYSREQ_USERS_USER_CERTIFICATE_PLUGIN_NAME SYSREQ_USERS_USER_CERTIFICATE_PLUGIN_VERSION SYSREQ_USERS_USER_CERTIFICATE_STATE SYSREQ_USERS_USER_CERTIFICATE_SUBJECT_NAME SYSREQ_USERS_USER_CERTIFICATE_THUMBPRINT SYSREQ_USERS_USER_DEFAULT_CERTIFICATE SYSREQ_USERS_USER_DESCRIPTION SYSREQ_USERS_USER_GLOBAL_NAME SYSREQ_USERS_USER_LOGIN SYSREQ_USERS_USER_MAIN_SERVER SYSREQ_USERS_USER_TYPE SYSREQ_WORK_RULES_FOLDER_ID ",v="RESULT_VAR_NAME RESULT_VAR_NAME_ENG ",B="AUTO_NUMERATION_RULE_ID CANT_CHANGE_ID_REQUISITE_RULE_ID CANT_CHANGE_OURFIRM_REQUISITE_RULE_ID CHECK_CHANGING_REFERENCE_RECORD_USE_RULE_ID CHECK_CODE_REQUISITE_RULE_ID CHECK_DELETING_REFERENCE_RECORD_USE_RULE_ID CHECK_FILTRATER_CHANGES_RULE_ID CHECK_RECORD_INTERVAL_RULE_ID CHECK_REFERENCE_INTERVAL_RULE_ID CHECK_REQUIRED_DATA_FULLNESS_RULE_ID CHECK_REQUIRED_REQUISITES_FULLNESS_RULE_ID MAKE_RECORD_UNRATIFIED_RULE_ID RESTORE_AUTO_NUMERATION_RULE_ID SET_FIRM_CONTEXT_FROM_RECORD_RULE_ID SET_FIRST_RECORD_IN_LIST_FORM_RULE_ID SET_IDSPS_VALUE_RULE_ID SET_NEXT_CODE_VALUE_RULE_ID SET_OURFIRM_BOUNDS_RULE_ID SET_OURFIRM_REQUISITE_RULE_ID ",oe="SCRIPT_BLOCK_AFTER_FINISH_EVENT SCRIPT_BLOCK_BEFORE_START_EVENT SCRIPT_BLOCK_EXECUTION_RESULTS_PROPERTY SCRIPT_BLOCK_NAME_PROPERTY SCRIPT_BLOCK_SCRIPT_PROPERTY ",se="SUBTASK_BLOCK_ABORT_DEADLINE_PROPERTY SUBTASK_BLOCK_AFTER_FINISH_EVENT SUBTASK_BLOCK_ASSIGN_PARAMS_EVENT SUBTASK_BLOCK_ATTACHMENTS_PROPERTY SUBTASK_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY SUBTASK_BLOCK_ATTACHMENTS_RIGHTS_TYPE_PROPERTY SUBTASK_BLOCK_BEFORE_START_EVENT SUBTASK_BLOCK_CREATED_TASK_PROPERTY SUBTASK_BLOCK_CREATION_EVENT SUBTASK_BLOCK_DEADLINE_PROPERTY SUBTASK_BLOCK_IMPORTANCE_PROPERTY SUBTASK_BLOCK_INITIATOR_PROPERTY SUBTASK_BLOCK_IS_RELATIVE_ABORT_DEADLINE_PROPERTY SUBTASK_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY SUBTASK_BLOCK_JOBS_TYPE_PROPERTY SUBTASK_BLOCK_NAME_PROPERTY SUBTASK_BLOCK_PARALLEL_ROUTE_PROPERTY SUBTASK_BLOCK_PERFORMERS_PROPERTY SUBTASK_BLOCK_RELATIVE_ABORT_DEADLINE_TYPE_PROPERTY SUBTASK_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY SUBTASK_BLOCK_REQUIRE_SIGN_PROPERTY SUBTASK_BLOCK_STANDARD_ROUTE_PROPERTY SUBTASK_BLOCK_START_EVENT SUBTASK_BLOCK_STEP_CONTROL_PROPERTY SUBTASK_BLOCK_SUBJECT_PROPERTY SUBTASK_BLOCK_TASK_CONTROL_PROPERTY SUBTASK_BLOCK_TEXT_PROPERTY SUBTASK_BLOCK_UNLOCK_ATTACHMENTS_ON_STOP_PROPERTY SUBTASK_BLOCK_USE_STANDARD_ROUTE_PROPERTY SUBTASK_BLOCK_WAIT_FOR_TASK_COMPLETE_PROPERTY ",j="SYSCOMP_CONTROL_JOBS SYSCOMP_FOLDERS SYSCOMP_JOBS SYSCOMP_NOTICES SYSCOMP_TASKS ",le="SYSDLG_CREATE_EDOCUMENT SYSDLG_CREATE_EDOCUMENT_VERSION SYSDLG_CURRENT_PERIOD SYSDLG_EDIT_FUNCTION_HELP SYSDLG_EDOCUMENT_KINDS_FOR_TEMPLATE SYSDLG_EXPORT_MULTIPLE_EDOCUMENTS SYSDLG_EXPORT_SINGLE_EDOCUMENT SYSDLG_IMPORT_EDOCUMENT SYSDLG_MULTIPLE_SELECT SYSDLG_SETUP_ACCESS_RIGHTS SYSDLG_SETUP_DEFAULT_RIGHTS SYSDLG_SETUP_FILTER_CONDITION SYSDLG_SETUP_SIGN_RIGHTS SYSDLG_SETUP_TASK_OBSERVERS SYSDLG_SETUP_TASK_ROUTE SYSDLG_SETUP_USERS_LIST SYSDLG_SIGN_EDOCUMENT SYSDLG_SIGN_MULTIPLE_EDOCUMENTS ",q="SYSREF_ACCESS_RIGHTS_TYPES SYSREF_ADMINISTRATION_HISTORY SYSREF_ALL_AVAILABLE_COMPONENTS SYSREF_ALL_AVAILABLE_PRIVILEGES SYSREF_ALL_REPLICATING_COMPONENTS SYSREF_AVAILABLE_DEVELOPERS_COMPONENTS SYSREF_CALENDAR_EVENTS SYSREF_COMPONENT_TOKEN_HISTORY SYSREF_COMPONENT_TOKENS SYSREF_COMPONENTS SYSREF_CONSTANTS SYSREF_DATA_RECEIVE_PROTOCOL SYSREF_DATA_SEND_PROTOCOL SYSREF_DIALOGS SYSREF_DIALOGS_REQUISITES SYSREF_EDITORS SYSREF_EDOC_CARDS SYSREF_EDOC_TYPES SYSREF_EDOCUMENT_CARD_REQUISITES SYSREF_EDOCUMENT_CARD_TYPES SYSREF_EDOCUMENT_CARD_TYPES_REFERENCE SYSREF_EDOCUMENT_CARDS SYSREF_EDOCUMENT_HISTORY SYSREF_EDOCUMENT_KINDS SYSREF_EDOCUMENT_REQUISITES SYSREF_EDOCUMENT_SIGNATURES SYSREF_EDOCUMENT_TEMPLATES SYSREF_EDOCUMENT_TEXT_STORAGES SYSREF_EDOCUMENT_VIEWS SYSREF_FILTERER_SETUP_CONFLICTS SYSREF_FILTRATER_SETTING_CONFLICTS SYSREF_FOLDER_HISTORY SYSREF_FOLDERS SYSREF_FUNCTION_GROUPS SYSREF_FUNCTION_PARAMS SYSREF_FUNCTIONS SYSREF_JOB_HISTORY SYSREF_LINKS SYSREF_LOCALIZATION_DICTIONARY SYSREF_LOCALIZATION_LANGUAGES SYSREF_MODULES SYSREF_PRIVILEGES SYSREF_RECORD_HISTORY SYSREF_REFERENCE_REQUISITES SYSREF_REFERENCE_TYPE_VIEWS SYSREF_REFERENCE_TYPES SYSREF_REFERENCES SYSREF_REFERENCES_REQUISITES SYSREF_REMOTE_SERVERS SYSREF_REPLICATION_SESSIONS_LOG SYSREF_REPLICATION_SESSIONS_PROTOCOL SYSREF_REPORTS SYSREF_ROLES SYSREF_ROUTE_BLOCK_GROUPS SYSREF_ROUTE_BLOCKS SYSREF_SCRIPTS SYSREF_SEARCHES SYSREF_SERVER_EVENTS SYSREF_SERVER_EVENTS_HISTORY SYSREF_STANDARD_ROUTE_GROUPS SYSREF_STANDARD_ROUTES SYSREF_STATUSES SYSREF_SYSTEM_SETTINGS SYSREF_TASK_HISTORY SYSREF_TASK_KIND_GROUPS SYSREF_TASK_KINDS SYSREF_TASK_RIGHTS SYSREF_TASK_SIGNATURES SYSREF_TASKS SYSREF_UNITS SYSREF_USER_GROUPS SYSREF_USER_GROUPS_REFERENCE SYSREF_USER_SUBSTITUTION SYSREF_USERS SYSREF_USERS_REFERENCE SYSREF_VIEWERS SYSREF_WORKING_TIME_CALENDARS ",te="ACCESS_RIGHTS_TABLE_NAME EDMS_ACCESS_TABLE_NAME EDOC_TYPES_TABLE_NAME ",Z="TEST_DEV_DB_NAME TEST_DEV_SYSTEM_CODE TEST_EDMS_DB_NAME TEST_EDMS_MAIN_CODE TEST_EDMS_MAIN_DB_NAME TEST_EDMS_SECOND_CODE TEST_EDMS_SECOND_DB_NAME TEST_EDMS_SYSTEM_CODE TEST_ISB5_MAIN_CODE TEST_ISB5_SECOND_CODE TEST_SQL_SERVER_2005_NAME TEST_SQL_SERVER_NAME ",W="ATTENTION_CAPTION cbsCommandLinks cbsDefault CONFIRMATION_CAPTION ERROR_CAPTION INFORMATION_CAPTION mrCancel mrOk ",ce="EDOC_VERSION_ACTIVE_STAGE_CODE EDOC_VERSION_DESIGN_STAGE_CODE EDOC_VERSION_OBSOLETE_STAGE_CODE ",J="cpDataEnciphermentEnabled cpDigitalSignatureEnabled cpID cpIssuer cpPluginVersion cpSerial cpSubjectName cpSubjSimpleName cpValidFromDate cpValidToDate ",ne="ISBL_SYNTAX NO_SYNTAX XML_SYNTAX ",_e="WAIT_BLOCK_AFTER_FINISH_EVENT WAIT_BLOCK_BEFORE_START_EVENT WAIT_BLOCK_DEADLINE_PROPERTY WAIT_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY WAIT_BLOCK_NAME_PROPERTY WAIT_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY ",p="SYSRES_COMMON SYSRES_CONST SYSRES_MBFUNC SYSRES_SBDATA SYSRES_SBGUI SYSRES_SBINTF SYSRES_SBREFDSC SYSRES_SQLERRORS SYSRES_SYSCOMP ",b=r+i+s+o+l+c+_+u+m+g+E+S+T+C+R+f+O+L+h+w+Y+v+B+oe+se+j+le+q+te+Z+W+ce+J+ne+_e+p,A="atUser atGroup atRole ",x="aemEnabledAlways aemDisabledAlways aemEnabledOnBrowse aemEnabledOnEdit aemDisabledOnBrowseEmpty ",U="apBegin apEnd ",K="alLeft alRight ",H="asmNever asmNoButCustomize asmAsLastTime asmYesButCustomize asmAlways ",M="cirCommon cirRevoked ",$="ctSignature ctEncode ctSignatureEncode ",Q="clbUnchecked clbChecked clbGrayed ",Re="ceISB ceAlways ceNever ",ze="ctDocument ctReference ctScript ctUnknown ctReport ctDialog ctFunction ctFolder ctEDocument ctTask ctJob ctNotice ctControlJob ",We="cfInternal cfDisplay ",Ke="ciUnspecified ciWrite ciRead ",ue="ckFolder ckEDocument ckTask ckJob ckComponentToken ckAny ckReference ckScript ckReport ckDialog ",ye="ctISBLEditor ctBevel ctButton ctCheckListBox ctComboBox ctComboEdit ctGrid ctDBCheckBox ctDBComboBox ctDBEdit ctDBEllipsis ctDBMemo ctDBNavigator ctDBRadioGroup ctDBStatusLabel ctEdit ctGroupBox ctInplaceHint ctMemo ctPanel ctListBox ctRadioButton ctRichEdit ctTabSheet ctWebBrowser ctImage ctHyperLink ctLabel ctDBMultiEllipsis ctRibbon ctRichView ctInnerPanel ctPanelGroup ctBitButton ",ae="cctDate cctInteger cctNumeric cctPick cctReference cctString cctText ",Qe="cltInternal cltPrimary cltGUI ",Ne="dseBeforeOpen dseAfterOpen dseBeforeClose dseAfterClose dseOnValidDelete dseBeforeDelete dseAfterDelete dseAfterDeleteOutOfTransaction dseOnDeleteError dseBeforeInsert dseAfterInsert dseOnValidUpdate dseBeforeUpdate dseOnUpdateRatifiedRecord dseAfterUpdate dseAfterUpdateOutOfTransaction dseOnUpdateError dseAfterScroll dseOnOpenRecord dseOnCloseRecord dseBeforeCancel dseAfterCancel dseOnUpdateDeadlockError dseBeforeDetailUpdate dseOnPrepareUpdate dseOnAnyRequisiteChange ",y="dssEdit dssInsert dssBrowse dssInActive ",De="dftDate dftShortDate dftDateTime dftTimeStamp ",G="dotDays dotHours dotMinutes dotSeconds ",F="dtkndLocal dtkndUTC ",me="arNone arView arEdit arFull ",re="ddaView ddaEdit ",Ce="emLock emEdit emSign emExportWithLock emImportWithUnlock emChangeVersionNote emOpenForModify emChangeLifeStage emDelete emCreateVersion emImport emUnlockExportedWithLock emStart emAbort emReInit emMarkAsReaded emMarkAsUnreaded emPerform emAccept emResume emChangeRights emEditRoute emEditObserver emRecoveryFromLocalCopy emChangeWorkAccessType emChangeEncodeTypeToCertificate emChangeEncodeTypeToPassword emChangeEncodeTypeToNone emChangeEncodeTypeToCertificatePassword emChangeStandardRoute emGetText emOpenForView emMoveToStorage emCreateObject emChangeVersionHidden emDeleteVersion emChangeLifeCycleStage emApprovingSign emExport emContinue emLockFromEdit emUnLockForEdit emLockForServer emUnlockFromServer emDelegateAccessRights emReEncode ",fe="ecotFile ecotProcess ",N="eaGet eaCopy eaCreate eaCreateStandardRoute ",I="edltAll edltNothing edltQuery ",D="essmText essmCard ",P="esvtLast esvtLastActive esvtSpecified ",V="edsfExecutive edsfArchive ",Ee="edstSQLServer edstFile ",Xe="edvstNone edvstEDocumentVersionCopy edvstFile edvstTemplate edvstScannedFile ",yn="vsDefault vsDesign vsActive vsObsolete ",Dn="etNone etCertificate etPassword etCertificatePassword ",hn="ecException ecWarning ecInformation ",Mn="estAll estApprovingOnly ",Ln="evtLast evtLastActive evtQuery ",xn="fdtString fdtNumeric fdtInteger fdtDate fdtText fdtUnknown fdtWideString fdtLargeInteger ",Pn="ftInbox ftOutbox ftFavorites ftCommonFolder ftUserFolder ftComponents ftQuickLaunch ftShortcuts ftSearch ",wn="grhAuto grhX1 grhX2 grhX3 ",kn="hltText hltRTF hltHTML ",Un="iffBMP iffJPEG iffMultiPageTIFF iffSinglePageTIFF iffTIFF iffPNG ",Fn="im8bGrayscale im24bRGB im1bMonochrome ",Bn="itBMP itJPEG itWMF itPNG ",Gn="ikhInformation ikhWarning ikhError ikhNoIcon ",Yn="icUnknown icScript icFunction icIntegratedReport icAnalyticReport icDataSetEventHandler icActionHandler icFormEventHandler icLookUpEventHandler icRequisiteChangeEventHandler icBeforeSearchEventHandler icRoleCalculation icSelectRouteEventHandler icBlockPropertyCalculation icBlockQueryParamsEventHandler icChangeSearchResultEventHandler icBlockEventHandler icSubTaskInitEventHandler icEDocDataSetEventHandler icEDocLookUpEventHandler icEDocActionHandler icEDocFormEventHandler icEDocRequisiteChangeEventHandler icStructuredConversionRule icStructuredConversionEventBefore icStructuredConversionEventAfter icWizardEventHandler icWizardFinishEventHandler icWizardStepEventHandler icWizardStepFinishEventHandler icWizardActionEnableEventHandler icWizardActionExecuteEventHandler icCreateJobsHandler icCreateNoticesHandler icBeforeLookUpEventHandler icAfterLookUpEventHandler icTaskAbortEventHandler icWorkflowBlockActionHandler icDialogDataSetEventHandler icDialogActionHandler icDialogLookUpEventHandler icDialogRequisiteChangeEventHandler icDialogFormEventHandler icDialogValidCloseEventHandler icBlockFormEventHandler icTaskFormEventHandler icReferenceMethod icEDocMethod icDialogMethod icProcessMessageHandler ",Hn="isShow isHide isByUserSettings ",Vn="jkJob jkNotice jkControlJob ",qn="jtInner jtLeft jtRight jtFull jtCross ",$n="lbpAbove lbpBelow lbpLeft lbpRight ",zn="eltPerConnection eltPerUser ",Wn="sfcUndefined sfcBlack sfcGreen sfcRed sfcBlue sfcOrange sfcLilac ",Kn="sfsItalic sfsStrikeout sfsNormal ",Qn="ldctStandardRoute ldctWizard ldctScript ldctFunction ldctRouteBlock ldctIntegratedReport ldctAnalyticReport ldctReferenceType ldctEDocumentType ldctDialog ldctServerEvents ",Xn="mrcrtNone mrcrtUser mrcrtMaximal mrcrtCustom ",Zn="vtEqual vtGreaterOrEqual vtLessOrEqual vtRange ",Jn="rdYesterday rdToday rdTomorrow rdThisWeek rdThisMonth rdThisYear rdNextMonth rdNextWeek rdLastWeek rdLastMonth ",jn="rdWindow rdFile rdPrinter ",ea="rdtString rdtNumeric rdtInteger rdtDate rdtReference rdtAccount rdtText rdtPick rdtUnknown rdtLargeInteger rdtDocument ",ta="reOnChange reOnChangeValues ",na="ttGlobal ttLocal ttUser ttSystem ",aa="ssmBrowse ssmSelect ssmMultiSelect ssmBrowseModal ",ra="smSelect smLike smCard ",ia="stNone stAuthenticating stApproving ",oa="sctString sctStream ",sa="sstAnsiSort sstNaturalSort ",la="svtEqual svtContain ",ca="soatString soatNumeric soatInteger soatDatetime soatReferenceRecord soatText soatPick soatBoolean soatEDocument soatAccount soatIntegerCollection soatNumericCollection soatStringCollection soatPickCollection soatDatetimeCollection soatBooleanCollection soatReferenceRecordCollection soatEDocumentCollection soatAccountCollection soatContents soatUnknown ",_a="tarAbortByUser tarAbortByWorkflowException ",da="tvtAllWords tvtExactPhrase tvtAnyWord ",ua="usNone usCompleted usRedSquare usBlueSquare usYellowSquare usGreenSquare usOrangeSquare usPurpleSquare usFollowUp ",ma="utUnknown utUser utDeveloper utAdministrator utSystemDeveloper utDisconnected ",Ea="btAnd btDetailAnd btOr btNotOr btOnly ",pa="vmView vmSelect vmNavigation ",ga="vsmSingle vsmMultiple vsmMultipleCheck vsmNoSelection ",Sa="wfatPrevious wfatNext wfatCancel wfatFinish ",Ta="wfepUndefined wfepText3 wfepText6 wfepText9 wfepSpinEdit wfepDropDown wfepRadioGroup wfepFlag wfepText12 wfepText15 wfepText18 wfepText21 wfepText24 wfepText27 wfepText30 wfepRadioGroupColumn1 wfepRadioGroupColumn2 wfepRadioGroupColumn3 ",ba="wfetQueryParameter wfetText wfetDelimiter wfetLabel ",Ra="wptString wptInteger wptNumeric wptBoolean wptDateTime wptPick wptText wptUser wptUserList wptEDocumentInfo wptEDocumentInfoList wptReferenceRecordInfo wptReferenceRecordInfoList wptFolderInfo wptTaskInfo wptContents wptFileName wptDate ",Na="wsrComplete wsrGoNext wsrGoPrevious wsrCustom wsrCancel wsrGoFinal ",Ca="wstForm wstEDocument wstTaskCard wstReferenceRecordCard wstFinal ",fa="waAll waPerformers waManual ",Oa="wsbStart wsbFinish wsbNotice wsbStep wsbDecision wsbWait wsbMonitor wsbScript wsbConnector wsbSubTask wsbLifeCycleStage wsbPause ",Ia="wdtInteger wdtFloat wdtString wdtPick wdtDateTime wdtBoolean wdtTask wdtJob wdtFolder wdtEDocument wdtReferenceRecord wdtUser wdtGroup wdtRole wdtIntegerCollection wdtFloatCollection wdtStringCollection wdtPickCollection wdtDateTimeCollection wdtBooleanCollection wdtTaskCollection wdtJobCollection wdtFolderCollection wdtEDocumentCollection wdtReferenceRecordCollection wdtUserCollection wdtGroupCollection wdtRoleCollection wdtContents wdtUserList wdtSearchDescription wdtDeadLine wdtPickSet wdtAccountCollection ",Aa="wiLow wiNormal wiHigh ",va="wrtSoft wrtHard ",ya="wsInit wsRunning wsDone wsControlled wsAborted wsContinued ",Da="wtmFull wtmFromCurrent wtmOnlyCurrent ",ha=A+x+U+K+H+M+$+Q+Re+ze+We+Ke+ue+ye+ae+Qe+Ne+y+De+G+F+me+re+Ce+fe+N+I+D+P+V+Ee+Xe+yn+Dn+hn+Mn+Ln+xn+Pn+wn+kn+Un+Fn+Bn+Gn+Yn+Hn+Vn+qn+$n+zn+Wn+Kn+Qn+Xn+Zn+Jn+jn+ea+ta+na+aa+ra+ia+oa+sa+la+ca+_a+da+ua+ma+Ea+pa+ga+Sa+Ta+ba+Ra+Na+Ca+fa+Oa+Ia+Aa+va+ya+Da,Ma="AddSubString AdjustLineBreaks AmountInWords Analysis ArrayDimCount ArrayHighBound ArrayLowBound ArrayOf ArrayReDim Assert Assigned BeginOfMonth BeginOfPeriod BuildProfilingOperationAnalysis CallProcedure CanReadFile CArrayElement CDataSetRequisite ChangeDate ChangeReferenceDataset Char CharPos CheckParam CheckParamValue CompareStrings ConstantExists ControlState ConvertDateStr Copy CopyFile CreateArray CreateCachedReference CreateConnection CreateDialog CreateDualListDialog CreateEditor CreateException CreateFile CreateFolderDialog CreateInputDialog CreateLinkFile CreateList CreateLock CreateMemoryDataSet CreateObject CreateOpenDialog CreateProgress CreateQuery CreateReference CreateReport CreateSaveDialog CreateScript CreateSQLPivotFunction CreateStringList CreateTreeListSelectDialog CSelectSQL CSQL CSubString CurrentUserID CurrentUserName CurrentVersion DataSetLocateEx DateDiff DateTimeDiff DateToStr DayOfWeek DeleteFile DirectoryExists DisableCheckAccessRights DisableCheckFullShowingRestriction DisableMassTaskSendingRestrictions DropTable DupeString EditText EnableCheckAccessRights EnableCheckFullShowingRestriction EnableMassTaskSendingRestrictions EndOfMonth EndOfPeriod ExceptionExists ExceptionsOff ExceptionsOn Execute ExecuteProcess Exit ExpandEnvironmentVariables ExtractFileDrive ExtractFileExt ExtractFileName ExtractFilePath ExtractParams FileExists FileSize FindFile FindSubString FirmContext ForceDirectories Format FormatDate FormatNumeric FormatSQLDate FormatString FreeException GetComponent GetComponentLaunchParam GetConstant GetLastException GetReferenceRecord GetRefTypeByRefID GetTableID GetTempFolder IfThen In IndexOf InputDialog InputDialogEx InteractiveMode IsFileLocked IsGraphicFile IsNumeric Length LoadString LoadStringFmt LocalTimeToUTC LowerCase Max MessageBox MessageBoxEx MimeDecodeBinary MimeDecodeString MimeEncodeBinary MimeEncodeString Min MoneyInWords MoveFile NewID Now OpenFile Ord Precision Raise ReadCertificateFromFile ReadFile ReferenceCodeByID ReferenceNumber ReferenceRequisiteMode ReferenceRequisiteValue RegionDateSettings RegionNumberSettings RegionTimeSettings RegRead RegWrite RenameFile Replace Round SelectServerCode SelectSQL ServerDateTime SetConstant SetManagedFolderFieldsState ShowConstantsInputDialog ShowMessage Sleep Split SQL SQL2XLSTAB SQLProfilingSendReport StrToDate SubString SubStringCount SystemSetting Time TimeDiff Today Transliterate Trim UpperCase UserStatus UTCToLocalTime ValidateXML VarIsClear VarIsEmpty VarIsNull WorkTimeDiff WriteFile WriteFileEx WriteObjectHistory \u0410\u043D\u0430\u043B\u0438\u0437 \u0411\u0430\u0437\u0430\u0414\u0430\u043D\u043D\u044B\u0445 \u0411\u043B\u043E\u043A\u0415\u0441\u0442\u044C \u0411\u043B\u043E\u043A\u0415\u0441\u0442\u044C\u0420\u0430\u0441\u0448 \u0411\u043B\u043E\u043A\u0418\u043D\u0444\u043E \u0411\u043B\u043E\u043A\u0421\u043D\u044F\u0442\u044C \u0411\u043B\u043E\u043A\u0421\u043D\u044F\u0442\u044C\u0420\u0430\u0441\u0448 \u0411\u043B\u043E\u043A\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0412\u0432\u043E\u0434 \u0412\u0432\u043E\u0434\u041C\u0435\u043D\u044E \u0412\u0435\u0434\u0421 \u0412\u0435\u0434\u0421\u043F\u0440 \u0412\u0435\u0440\u0445\u043D\u044F\u044F\u0413\u0440\u0430\u043D\u0438\u0446\u0430\u041C\u0430\u0441\u0441\u0438\u0432\u0430 \u0412\u043D\u0435\u0448\u041F\u0440\u043E\u0433\u0440 \u0412\u043E\u0441\u0441\u0442 \u0412\u0440\u0435\u043C\u0435\u043D\u043D\u0430\u044F\u041F\u0430\u043F\u043A\u0430 \u0412\u0440\u0435\u043C\u044F \u0412\u044B\u0431\u043E\u0440SQL \u0412\u044B\u0431\u0440\u0430\u0442\u044C\u0417\u0430\u043F\u0438\u0441\u044C \u0412\u044B\u0434\u0435\u043B\u0438\u0442\u044C\u0421\u0442\u0440 \u0412\u044B\u0437\u0432\u0430\u0442\u044C \u0412\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C \u0412\u044B\u043F\u041F\u0440\u043E\u0433\u0440 \u0413\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u0438\u0439\u0424\u0430\u0439\u043B \u0413\u0440\u0443\u043F\u043F\u0430\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0414\u0430\u0442\u0430\u0412\u0440\u0435\u043C\u044F\u0421\u0435\u0440\u0432 \u0414\u0435\u043D\u044C\u041D\u0435\u0434\u0435\u043B\u0438 \u0414\u0438\u0430\u043B\u043E\u0433\u0414\u0430\u041D\u0435\u0442 \u0414\u043B\u0438\u043D\u0430\u0421\u0442\u0440 \u0414\u043E\u0431\u041F\u043E\u0434\u0441\u0442\u0440 \u0415\u041F\u0443\u0441\u0442\u043E \u0415\u0441\u043B\u0438\u0422\u043E \u0415\u0427\u0438\u0441\u043B\u043E \u0417\u0430\u043C\u041F\u043E\u0434\u0441\u0442\u0440 \u0417\u0430\u043F\u0438\u0441\u044C\u0421\u043F\u0440\u0430\u0432\u043E\u0447\u043D\u0438\u043A\u0430 \u0417\u043D\u0430\u0447\u041F\u043E\u043B\u044F\u0421\u043F\u0440 \u0418\u0414\u0422\u0438\u043F\u0421\u043F\u0440 \u0418\u0437\u0432\u043B\u0435\u0447\u044C\u0414\u0438\u0441\u043A \u0418\u0437\u0432\u043B\u0435\u0447\u044C\u0418\u043C\u044F\u0424\u0430\u0439\u043B\u0430 \u0418\u0437\u0432\u043B\u0435\u0447\u044C\u041F\u0443\u0442\u044C \u0418\u0437\u0432\u043B\u0435\u0447\u044C\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0435 \u0418\u0437\u043C\u0414\u0430\u0442 \u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C\u0420\u0430\u0437\u043C\u0435\u0440\u041C\u0430\u0441\u0441\u0438\u0432\u0430 \u0418\u0437\u043C\u0435\u0440\u0435\u043D\u0438\u0439\u041C\u0430\u0441\u0441\u0438\u0432\u0430 \u0418\u043C\u044F\u041E\u0440\u0433 \u0418\u043C\u044F\u041F\u043E\u043B\u044F\u0421\u043F\u0440 \u0418\u043D\u0434\u0435\u043A\u0441 \u0418\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440\u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0418\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0418\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440\u0428\u0430\u0433 \u0418\u043D\u0442\u0435\u0440\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0439\u0420\u0435\u0436\u0438\u043C \u0418\u0442\u043E\u0433\u0422\u0431\u043B\u0421\u043F\u0440 \u041A\u043E\u0434\u0412\u0438\u0434\u0412\u0435\u0434\u0421\u043F\u0440 \u041A\u043E\u0434\u0412\u0438\u0434\u0421\u043F\u0440\u041F\u043E\u0418\u0414 \u041A\u043E\u0434\u041F\u043EAnalit \u041A\u043E\u0434\u0421\u0438\u043C\u0432\u043E\u043B\u0430 \u041A\u043E\u0434\u0421\u043F\u0440 \u041A\u043E\u043B\u041F\u043E\u0434\u0441\u0442\u0440 \u041A\u043E\u043B\u041F\u0440\u043E\u043F \u041A\u043E\u043D\u041C\u0435\u0441 \u041A\u043E\u043D\u0441\u0442 \u041A\u043E\u043D\u0441\u0442\u0415\u0441\u0442\u044C \u041A\u043E\u043D\u0441\u0442\u0417\u043D\u0430\u0447 \u041A\u043E\u043D\u0422\u0440\u0430\u043D \u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0424\u0430\u0439\u043B \u041A\u043E\u043F\u0438\u044F\u0421\u0442\u0440 \u041A\u041F\u0435\u0440\u0438\u043E\u0434 \u041A\u0421\u0442\u0440\u0422\u0431\u043B\u0421\u043F\u0440 \u041C\u0430\u043A\u0441 \u041C\u0430\u043A\u0441\u0421\u0442\u0440\u0422\u0431\u043B\u0421\u043F\u0440 \u041C\u0430\u0441\u0441\u0438\u0432 \u041C\u0435\u043D\u044E \u041C\u0435\u043D\u044E\u0420\u0430\u0441\u0448 \u041C\u0438\u043D \u041D\u0430\u0431\u043E\u0440\u0414\u0430\u043D\u043D\u044B\u0445\u041D\u0430\u0439\u0442\u0438\u0420\u0430\u0441\u0448 \u041D\u0430\u0438\u043C\u0412\u0438\u0434\u0421\u043F\u0440 \u041D\u0430\u0438\u043C\u041F\u043EAnalit \u041D\u0430\u0438\u043C\u0421\u043F\u0440 \u041D\u0430\u0441\u0442\u0440\u043E\u0438\u0442\u044C\u041F\u0435\u0440\u0435\u0432\u043E\u0434\u044B\u0421\u0442\u0440\u043E\u043A \u041D\u0430\u0447\u041C\u0435\u0441 \u041D\u0430\u0447\u0422\u0440\u0430\u043D \u041D\u0438\u0436\u043D\u044F\u044F\u0413\u0440\u0430\u043D\u0438\u0446\u0430\u041C\u0430\u0441\u0441\u0438\u0432\u0430 \u041D\u043E\u043C\u0435\u0440\u0421\u043F\u0440 \u041D\u041F\u0435\u0440\u0438\u043E\u0434 \u041E\u043A\u043D\u043E \u041E\u043A\u0440 \u041E\u043A\u0440\u0443\u0436\u0435\u043D\u0438\u0435 \u041E\u0442\u043B\u0418\u043D\u0444\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u041E\u0442\u043B\u0418\u043D\u0444\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u041E\u0442\u0447\u0435\u0442 \u041E\u0442\u0447\u0435\u0442\u0410\u043D\u0430\u043B \u041E\u0442\u0447\u0435\u0442\u0418\u043D\u0442 \u041F\u0430\u043F\u043A\u0430\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u041F\u0430\u0443\u0437\u0430 \u041F\u0412\u044B\u0431\u043E\u0440SQL \u041F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u0442\u044C\u0424\u0430\u0439\u043B \u041F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0435 \u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C\u0424\u0430\u0439\u043B \u041F\u043E\u0434\u0441\u0442\u0440 \u041F\u043E\u0438\u0441\u043A\u041F\u043E\u0434\u0441\u0442\u0440 \u041F\u043E\u0438\u0441\u043A\u0421\u0442\u0440 \u041F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0418\u0414\u0422\u0430\u0431\u043B\u0438\u0446\u044B \u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0418\u0414 \u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0418\u043C\u044F \u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0421\u0442\u0430\u0442\u0443\u0441 \u041F\u0440\u0435\u0440\u0432\u0430\u0442\u044C \u041F\u0440\u043E\u0432\u0435\u0440\u0438\u0442\u044C\u041F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u041F\u0440\u043E\u0432\u0435\u0440\u0438\u0442\u044C\u041F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0417\u043D\u0430\u0447 \u041F\u0440\u043E\u0432\u0435\u0440\u0438\u0442\u044C\u0423\u0441\u043B\u043E\u0432\u0438\u0435 \u0420\u0430\u0437\u0431\u0421\u0442\u0440 \u0420\u0430\u0437\u043D\u0412\u0440\u0435\u043C\u044F \u0420\u0430\u0437\u043D\u0414\u0430\u0442 \u0420\u0430\u0437\u043D\u0414\u0430\u0442\u0430\u0412\u0440\u0435\u043C\u044F \u0420\u0430\u0437\u043D\u0420\u0430\u0431\u0412\u0440\u0435\u043C\u044F \u0420\u0435\u0433\u0423\u0441\u0442\u0412\u0440\u0435\u043C \u0420\u0435\u0433\u0423\u0441\u0442\u0414\u0430\u0442 \u0420\u0435\u0433\u0423\u0441\u0442\u0427\u0441\u043B \u0420\u0435\u0434\u0422\u0435\u043A\u0441\u0442 \u0420\u0435\u0435\u0441\u0442\u0440\u0417\u0430\u043F\u0438\u0441\u044C \u0420\u0435\u0435\u0441\u0442\u0440\u0421\u043F\u0438\u0441\u043E\u043A\u0418\u043C\u0435\u043D\u041F\u0430\u0440\u0430\u043C \u0420\u0435\u0435\u0441\u0442\u0440\u0427\u0442\u0435\u043D\u0438\u0435 \u0420\u0435\u043A\u0432\u0421\u043F\u0440 \u0420\u0435\u043A\u0432\u0421\u043F\u0440\u041F\u0440 \u0421\u0435\u0433\u043E\u0434\u043D\u044F \u0421\u0435\u0439\u0447\u0430\u0441 \u0421\u0435\u0440\u0432\u0435\u0440 \u0421\u0435\u0440\u0432\u0435\u0440\u041F\u0440\u043E\u0446\u0435\u0441\u0441\u0418\u0414 \u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u0424\u0430\u0439\u043B\u0421\u0447\u0438\u0442\u0430\u0442\u044C \u0421\u0436\u041F\u0440\u043E\u0431 \u0421\u0438\u043C\u0432\u043E\u043B \u0421\u0438\u0441\u0442\u0435\u043C\u0430\u0414\u0438\u0440\u0435\u043A\u0442\u0443\u043C\u041A\u043E\u0434 \u0421\u0438\u0441\u0442\u0435\u043C\u0430\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u0421\u0438\u0441\u0442\u0435\u043C\u0430\u041A\u043E\u0434 \u0421\u043E\u0434\u0435\u0440\u0436\u0438\u0442 \u0421\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435\u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0421\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u0414\u0438\u0430\u043B\u043E\u0433 \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u0414\u0438\u0430\u043B\u043E\u0433\u0412\u044B\u0431\u043E\u0440\u0430\u0418\u0437\u0414\u0432\u0443\u0445\u0421\u043F\u0438\u0441\u043A\u043E\u0432 \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u0414\u0438\u0430\u043B\u043E\u0433\u0412\u044B\u0431\u043E\u0440\u0430\u041F\u0430\u043F\u043A\u0438 \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u0414\u0438\u0430\u043B\u043E\u0433\u041E\u0442\u043A\u0440\u044B\u0442\u0438\u044F\u0424\u0430\u0439\u043B\u0430 \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u0414\u0438\u0430\u043B\u043E\u0433\u0421\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u044F\u0424\u0430\u0439\u043B\u0430 \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u0417\u0430\u043F\u0440\u043E\u0441 \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u0418\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440 \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u0418\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u041A\u044D\u0448\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439\u0421\u043F\u0440\u0430\u0432\u043E\u0447\u043D\u0438\u043A \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u041C\u0430\u0441\u0441\u0438\u0432 \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u041D\u0430\u0431\u043E\u0440\u0414\u0430\u043D\u043D\u044B\u0445 \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u041E\u0431\u044A\u0435\u043A\u0442 \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u041E\u0442\u0447\u0435\u0442 \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u041F\u0430\u043F\u043A\u0443 \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u0420\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u0421\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435 \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u0421\u043F\u0438\u0441\u043E\u043A \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u0421\u043F\u0438\u0441\u043E\u043A\u0421\u0442\u0440\u043E\u043A \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u0421\u043F\u0440\u0430\u0432\u043E\u0447\u043D\u0438\u043A \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u0421\u0446\u0435\u043D\u0430\u0440\u0438\u0439 \u0421\u043E\u0437\u0434\u0421\u043F\u0440 \u0421\u043E\u0441\u0442\u0421\u043F\u0440 \u0421\u043E\u0445\u0440 \u0421\u043E\u0445\u0440\u0421\u043F\u0440 \u0421\u043F\u0438\u0441\u043E\u043A\u0421\u0438\u0441\u0442\u0435\u043C \u0421\u043F\u0440 \u0421\u043F\u0440\u0430\u0432\u043E\u0447\u043D\u0438\u043A \u0421\u043F\u0440\u0411\u043B\u043E\u043A\u0415\u0441\u0442\u044C \u0421\u043F\u0440\u0411\u043B\u043E\u043A\u0421\u043D\u044F\u0442\u044C \u0421\u043F\u0440\u0411\u043B\u043E\u043A\u0421\u043D\u044F\u0442\u044C\u0420\u0430\u0441\u0448 \u0421\u043F\u0440\u0411\u043B\u043E\u043A\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0421\u043F\u0440\u0418\u0437\u043C\u041D\u0430\u0431\u0414\u0430\u043D \u0421\u043F\u0440\u041A\u043E\u0434 \u0421\u043F\u0440\u041D\u043E\u043C\u0435\u0440 \u0421\u043F\u0440\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0421\u043F\u0440\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0421\u043F\u0440\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u0421\u043F\u0440\u041F\u0430\u0440\u0430\u043C \u0421\u043F\u0440\u041F\u043E\u043B\u0435\u0417\u043D\u0430\u0447 \u0421\u043F\u0440\u041F\u043E\u043B\u0435\u0418\u043C\u044F \u0421\u043F\u0440\u0420\u0435\u043A\u0432 \u0421\u043F\u0440\u0420\u0435\u043A\u0432\u0412\u0432\u0435\u0434\u0417\u043D \u0421\u043F\u0440\u0420\u0435\u043A\u0432\u041D\u043E\u0432\u044B\u0435 \u0421\u043F\u0440\u0420\u0435\u043A\u0432\u041F\u0440 \u0421\u043F\u0440\u0420\u0435\u043A\u0432\u041F\u0440\u0435\u0434\u0417\u043D \u0421\u043F\u0440\u0420\u0435\u043A\u0432\u0420\u0435\u0436\u0438\u043C \u0421\u043F\u0440\u0420\u0435\u043A\u0432\u0422\u0438\u043F\u0422\u0435\u043A\u0441\u0442 \u0421\u043F\u0440\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u0421\u043F\u0440\u0421\u043E\u0441\u0442 \u0421\u043F\u0440\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0421\u043F\u0440\u0422\u0431\u043B\u0418\u0442\u043E\u0433 \u0421\u043F\u0440\u0422\u0431\u043B\u0421\u0442\u0440 \u0421\u043F\u0440\u0422\u0431\u043B\u0421\u0442\u0440\u041A\u043E\u043B \u0421\u043F\u0440\u0422\u0431\u043B\u0421\u0442\u0440\u041C\u0430\u043A\u0441 \u0421\u043F\u0440\u0422\u0431\u043B\u0421\u0442\u0440\u041C\u0438\u043D \u0421\u043F\u0440\u0422\u0431\u043B\u0421\u0442\u0440\u041F\u0440\u0435\u0434 \u0421\u043F\u0440\u0422\u0431\u043B\u0421\u0442\u0440\u0421\u043B\u0435\u0434 \u0421\u043F\u0440\u0422\u0431\u043B\u0421\u0442\u0440\u0421\u043E\u0437\u0434 \u0421\u043F\u0440\u0422\u0431\u043B\u0421\u0442\u0440\u0423\u0434 \u0421\u043F\u0440\u0422\u0435\u043A\u041F\u0440\u0435\u0434\u0441\u0442 \u0421\u043F\u0440\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0421\u0440\u0430\u0432\u043D\u0438\u0442\u044C\u0421\u0442\u0440 \u0421\u0442\u0440\u0412\u0435\u0440\u0445\u0420\u0435\u0433\u0438\u0441\u0442\u0440 \u0421\u0442\u0440\u041D\u0438\u0436\u043D\u0420\u0435\u0433\u0438\u0441\u0442\u0440 \u0421\u0442\u0440\u0422\u0431\u043B\u0421\u043F\u0440 \u0421\u0443\u043C\u041F\u0440\u043E\u043F \u0421\u0446\u0435\u043D\u0430\u0440\u0438\u0439 \u0421\u0446\u0435\u043D\u0430\u0440\u0438\u0439\u041F\u0430\u0440\u0430\u043C \u0422\u0435\u043A\u0412\u0435\u0440\u0441\u0438\u044F \u0422\u0435\u043A\u041E\u0440\u0433 \u0422\u043E\u0447\u043D \u0422\u0440\u0430\u043D \u0422\u0440\u0430\u043D\u0441\u043B\u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044F \u0423\u0434\u0430\u043B\u0438\u0442\u044C\u0422\u0430\u0431\u043B\u0438\u0446\u0443 \u0423\u0434\u0430\u043B\u0438\u0442\u044C\u0424\u0430\u0439\u043B \u0423\u0434\u0421\u043F\u0440 \u0423\u0434\u0421\u0442\u0440\u0422\u0431\u043B\u0421\u043F\u0440 \u0423\u0441\u0442 \u0423\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0438\u041A\u043E\u043D\u0441\u0442\u0430\u043D\u0442 \u0424\u0430\u0439\u043B\u0410\u0442\u0440\u0438\u0431\u0443\u0442\u0421\u0447\u0438\u0442\u0430\u0442\u044C \u0424\u0430\u0439\u043B\u0410\u0442\u0440\u0438\u0431\u0443\u0442\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0424\u0430\u0439\u043B\u0412\u0440\u0435\u043C\u044F \u0424\u0430\u0439\u043B\u0412\u0440\u0435\u043C\u044F\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0424\u0430\u0439\u043B\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0424\u0430\u0439\u043B\u0417\u0430\u043D\u044F\u0442 \u0424\u0430\u0439\u043B\u0417\u0430\u043F\u0438\u0441\u0430\u0442\u044C \u0424\u0430\u0439\u043B\u0418\u0441\u043A\u0430\u0442\u044C \u0424\u0430\u0439\u043B\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0424\u0430\u0439\u043B\u041C\u043E\u0436\u043D\u043E\u0427\u0438\u0442\u0430\u0442\u044C \u0424\u0430\u0439\u043B\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0424\u0430\u0439\u043B\u041F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u0442\u044C \u0424\u0430\u0439\u043B\u041F\u0435\u0440\u0435\u043A\u043E\u0434\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0424\u0430\u0439\u043B\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u0424\u0430\u0439\u043B\u041F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C \u0424\u0430\u0439\u043B\u0420\u0430\u0437\u043C\u0435\u0440 \u0424\u0430\u0439\u043B\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u0424\u0430\u0439\u043B\u0421\u0441\u044B\u043B\u043A\u0430\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u0424\u0430\u0439\u043B\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0424\u0430\u0439\u043B\u0421\u0447\u0438\u0442\u0430\u0442\u044C \u0424\u0430\u0439\u043B\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0424\u043C\u0442SQL\u0414\u0430\u0442 \u0424\u043C\u0442\u0414\u0430\u0442 \u0424\u043C\u0442\u0421\u0442\u0440 \u0424\u043C\u0442\u0427\u0441\u043B \u0424\u043E\u0440\u043C\u0430\u0442 \u0426\u041C\u0430\u0441\u0441\u0438\u0432\u042D\u043B\u0435\u043C\u0435\u043D\u0442 \u0426\u041D\u0430\u0431\u043E\u0440\u0414\u0430\u043D\u043D\u044B\u0445\u0420\u0435\u043A\u0432\u0438\u0437\u0438\u0442 \u0426\u041F\u043E\u0434\u0441\u0442\u0440 ",La="AltState Application CallType ComponentTokens CreatedJobs CreatedNotices ControlState DialogResult Dialogs EDocuments EDocumentVersionSource Folders GlobalIDs Job Jobs InputValue LookUpReference LookUpRequisiteNames LookUpSearch Object ParentComponent Processes References Requisite ReportName Reports Result Scripts Searches SelectedAttachments SelectedItems SelectMode Sender ServerEvents ServiceFactory ShiftState SubTask SystemDialogs Tasks Wizard Wizards Work \u0412\u044B\u0437\u043E\u0432\u0421\u043F\u043E\u0441\u043E\u0431 \u0418\u043C\u044F\u041E\u0442\u0447\u0435\u0442\u0430 \u0420\u0435\u043A\u0432\u0417\u043D\u0430\u0447 ",xa="IApplication IAccessRights IAccountRepository IAccountSelectionRestrictions IAction IActionList IAdministrationHistoryDescription IAnchors IApplication IArchiveInfo IAttachment IAttachmentList ICheckListBox ICheckPointedList IColumn IComponent IComponentDescription IComponentToken IComponentTokenFactory IComponentTokenInfo ICompRecordInfo IConnection IContents IControl IControlJob IControlJobInfo IControlList ICrypto ICrypto2 ICustomJob ICustomJobInfo ICustomListBox ICustomObjectWizardStep ICustomWork ICustomWorkInfo IDataSet IDataSetAccessInfo IDataSigner IDateCriterion IDateRequisite IDateRequisiteDescription IDateValue IDeaAccessRights IDeaObjectInfo IDevelopmentComponentLock IDialog IDialogFactory IDialogPickRequisiteItems IDialogsFactory IDICSFactory IDocRequisite IDocumentInfo IDualListDialog IECertificate IECertificateInfo IECertificates IEditControl IEditorForm IEdmsExplorer IEdmsObject IEdmsObjectDescription IEdmsObjectFactory IEdmsObjectInfo IEDocument IEDocumentAccessRights IEDocumentDescription IEDocumentEditor IEDocumentFactory IEDocumentInfo IEDocumentStorage IEDocumentVersion IEDocumentVersionListDialog IEDocumentVersionSource IEDocumentWizardStep IEDocVerSignature IEDocVersionState IEnabledMode IEncodeProvider IEncrypter IEvent IEventList IException IExternalEvents IExternalHandler IFactory IField IFileDialog IFolder IFolderDescription IFolderDialog IFolderFactory IFolderInfo IForEach IForm IFormTitle IFormWizardStep IGlobalIDFactory IGlobalIDInfo IGrid IHasher IHistoryDescription IHyperLinkControl IImageButton IImageControl IInnerPanel IInplaceHint IIntegerCriterion IIntegerList IIntegerRequisite IIntegerValue IISBLEditorForm IJob IJobDescription IJobFactory IJobForm IJobInfo ILabelControl ILargeIntegerCriterion ILargeIntegerRequisite ILargeIntegerValue ILicenseInfo ILifeCycleStage IList IListBox ILocalIDInfo ILocalization ILock IMemoryDataSet IMessagingFactory IMetadataRepository INotice INoticeInfo INumericCriterion INumericRequisite INumericValue IObject IObjectDescription IObjectImporter IObjectInfo IObserver IPanelGroup IPickCriterion IPickProperty IPickRequisite IPickRequisiteDescription IPickRequisiteItem IPickRequisiteItems IPickValue IPrivilege IPrivilegeList IProcess IProcessFactory IProcessMessage IProgress IProperty IPropertyChangeEvent IQuery IReference IReferenceCriterion IReferenceEnabledMode IReferenceFactory IReferenceHistoryDescription IReferenceInfo IReferenceRecordCardWizardStep IReferenceRequisiteDescription IReferencesFactory IReferenceValue IRefRequisite IReport IReportFactory IRequisite IRequisiteDescription IRequisiteDescriptionList IRequisiteFactory IRichEdit IRouteStep IRule IRuleList ISchemeBlock IScript IScriptFactory ISearchCriteria ISearchCriterion ISearchDescription ISearchFactory ISearchFolderInfo ISearchForObjectDescription ISearchResultRestrictions ISecuredContext ISelectDialog IServerEvent IServerEventFactory IServiceDialog IServiceFactory ISignature ISignProvider ISignProvider2 ISignProvider3 ISimpleCriterion IStringCriterion IStringList IStringRequisite IStringRequisiteDescription IStringValue ISystemDialogsFactory ISystemInfo ITabSheet ITask ITaskAbortReasonInfo ITaskCardWizardStep ITaskDescription ITaskFactory ITaskInfo ITaskRoute ITextCriterion ITextRequisite ITextValue ITreeListSelectDialog IUser IUserList IValue IView IWebBrowserControl IWizard IWizardAction IWizardFactory IWizardFormElement IWizardParam IWizardPickParam IWizardReferenceParam IWizardStep IWorkAccessRights IWorkDescription IWorkflowAskableParam IWorkflowAskableParams IWorkflowBlock IWorkflowBlockResult IWorkflowEnabledMode IWorkflowParam IWorkflowPickParam IWorkflowReferenceParam IWorkState IWorkTreeCustomNode IWorkTreeJobNode IWorkTreeTaskNode IXMLEditorForm SBCrypto ",Pa=b+ha,wa=La,ka="null true false nil ",ft={className:"number",begin:e.NUMBER_RE,relevance:0},Ot={className:"string",variants:[{begin:'"',end:'"'},{begin:"'",end:"'"}]},It={className:"doctag",begin:"\\b(?:TODO|DONE|BEGIN|END|STUB|CHG|FIXME|NOTE|BUG|XXX)\\b",relevance:0},Ua={className:"comment",begin:"//",end:"$",relevance:0,contains:[e.PHRASAL_WORDS_MODE,It]},Fa={className:"comment",begin:"/\\*",end:"\\*/",relevance:0,contains:[e.PHRASAL_WORDS_MODE,It]},At={variants:[Ua,Fa]},he={$pattern:t,keyword:a,built_in:Pa,class:wa,literal:ka},Ze={begin:"\\.\\s*"+e.UNDERSCORE_IDENT_RE,keywords:he,relevance:0},vt={className:"type",begin:":[ \\t]*("+xa.trim().replace(/\s/g,"|")+")",end:"[ \\t]*=",excludeEnd:!0},yt={className:"variable",keywords:he,begin:t,relevance:0,contains:[vt,Ze]},Dt=n+"\\(";return{name:"ISBL",case_insensitive:!0,keywords:he,illegal:"\\$|\\?|%|,|;$|~|#|@|)?",a="false synchronized int abstract float private char boolean var static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports do",r={className:"meta",begin:"@"+t,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]};const i=ec;return{name:"Java",aliases:["jsp"],keywords:a,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"class",beginKeywords:"class interface enum",end:/[{;=]/,excludeEnd:!0,relevance:1,keywords:"class interface enum",illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"new throw return else",relevance:0},{className:"class",begin:"record\\s+"+e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,excludeEnd:!0,end:/[{;=]/,keywords:a,contains:[{beginKeywords:"record"},{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,keywords:a,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"function",begin:"("+n+"\\s+)+"+e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:a,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,keywords:a,relevance:0,contains:[r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},i,r]}}var nc=tc;const Yt="[A-Za-z$_][0-9A-Za-z$_]*",ac=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],rc=["true","false","null","undefined","NaN","Infinity"],ic=["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer","BigInt64Array","BigUint64Array","BigInt"],oc=["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],sc=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],lc=["arguments","this","super","console","window","document","localStorage","module","global"],cc=[].concat(sc,lc,ic,oc);function _c(e){return e?typeof e=="string"?e:e.source:null}function Ht(e){return ut("(?=",e,")")}function ut(...e){return e.map(n=>_c(n)).join("")}function dc(e){const t=(O,{after:L})=>{const h="",end:""},r={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(O,L)=>{const h=O[0].length+O.index,w=O.input[h];if(w==="<"){L.ignoreMatch();return}w===">"&&(t(O,{after:h})||L.ignoreMatch())}},i={$pattern:Yt,keyword:ac,literal:rc,built_in:cc},s="[0-9](_?[0-9])*",o=`\\.(${s})`,l="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",c={className:"number",variants:[{begin:`(\\b(${l})((${o})|\\.)?|(${o}))[eE][+-]?(${s})\\b`},{begin:`\\b(${l})\\b((${o})\\b|\\.)?|(${o})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},_={className:"subst",begin:"\\$\\{",end:"\\}",keywords:i,contains:[]},u={begin:"html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,_],subLanguage:"xml"}},m={begin:"css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,_],subLanguage:"css"}},g={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,_]},E=e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+",contains:[{className:"type",begin:"\\{",end:"\\}",relevance:0},{className:"variable",begin:n+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),S={className:"comment",variants:[E,e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},T=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,u,m,g,c,e.REGEXP_MODE];_.contains=T.concat({begin:/\{/,end:/\}/,keywords:i,contains:["self"].concat(T)});const C=[].concat(S,_.contains),R=C.concat([{begin:/\(/,end:/\)/,keywords:i,contains:["self"].concat(C)}]),f={className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:R};return{name:"Javascript",aliases:["js","jsx","mjs","cjs"],keywords:i,exports:{PARAMS_CONTAINS:R},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),{label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,u,m,g,S,c,{begin:ut(/[{,\n]\s*/,Ht(ut(/(((\/\/.*$)|(\/\*(\*[^/]|[^*])*\*\/))\s*)*/,n+"\\s*:"))),relevance:0,contains:[{className:"attr",begin:n+Ht("\\s*:"),relevance:0}]},{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[S,e.REGEXP_MODE,{className:"function",begin:"(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:R}]}]},{begin:/,/,relevance:0},{className:"",begin:/\s/,end:/\s*/,skip:!0},{variants:[{begin:a.begin,end:a.end},{begin:r.begin,"on:begin":r.isTrulyOpeningTag,end:r.end}],subLanguage:"xml",contains:[{begin:r.begin,end:r.end,skip:!0,contains:["self"]}]}],relevance:0},{className:"function",beginKeywords:"function",end:/[{;]/,excludeEnd:!0,keywords:i,contains:["self",e.inherit(e.TITLE_MODE,{begin:n}),f],illegal:/%/},{beginKeywords:"while if switch catch for"},{className:"function",begin:e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,contains:[f,e.inherit(e.TITLE_MODE,{begin:n})]},{variants:[{begin:"\\."+n},{begin:"\\$"+n}],relevance:0},{className:"class",beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"[\]]/,contains:[{beginKeywords:"extends"},e.UNDERSCORE_TITLE_MODE]},{begin:/\b(?=constructor)/,end:/[{;]/,excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:n}),"self",f]},{begin:"(get|set)\\s+(?="+n+"\\()",end:/\{/,keywords:"get set",contains:[e.inherit(e.TITLE_MODE,{begin:n}),{begin:/\(\)/},f]},{begin:/\$[(.]/}]}}var uc=dc;function mc(e){const n={className:"params",begin:/\(/,end:/\)/,contains:[{begin:/[\w-]+ *=/,returnBegin:!0,relevance:0,contains:[{className:"attr",begin:/[\w-]+/}]}],relevance:0},a={className:"function",begin:/:[\w\-.]+/,relevance:0},r={className:"string",begin:/\B([\/.])[\w\-.\/=]+/},i={className:"params",begin:/--[\w\-=\/]+/};return{name:"JBoss CLI",aliases:["wildfly-cli"],keywords:{$pattern:"[a-z-]+",keyword:"alias batch cd clear command connect connection-factory connection-info data-source deploy deployment-info deployment-overlay echo echo-dmr help history if jdbc-driver-info jms-queue|20 jms-topic|20 ls patch pwd quit read-attribute read-operation reload rollout-plan run-batch set shutdown try unalias undeploy unset version xa-data-source",literal:"true false"},contains:[e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,i,a,r,n]}}var Ec=mc;function pc(e){const t={literal:"true false null"},n=[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],a=[e.QUOTE_STRING_MODE,e.C_NUMBER_MODE],r={end:",",endsWithParent:!0,excludeEnd:!0,contains:a,keywords:t},i={begin:/\{/,end:/\}/,contains:[{className:"attr",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE],illegal:"\\n"},e.inherit(r,{begin:/:/})].concat(n),illegal:"\\S"},s={begin:"\\[",end:"\\]",contains:[e.inherit(r)],illegal:"\\S"};return a.push(i,s),n.forEach(function(o){a.push(o)}),{name:"JSON",contains:a,keywords:t,illegal:"\\S"}}var gc=pc;function Sc(e){var t="[A-Za-z_\\u00A1-\\uFFFF][A-Za-z_0-9\\u00A1-\\uFFFF]*",n=["baremodule","begin","break","catch","ccall","const","continue","do","else","elseif","end","export","false","finally","for","function","global","if","import","in","isa","let","local","macro","module","quote","return","true","try","using","where","while"],a=["ARGS","C_NULL","DEPOT_PATH","ENDIAN_BOM","ENV","Inf","Inf16","Inf32","Inf64","InsertionSort","LOAD_PATH","MergeSort","NaN","NaN16","NaN32","NaN64","PROGRAM_FILE","QuickSort","RoundDown","RoundFromZero","RoundNearest","RoundNearestTiesAway","RoundNearestTiesUp","RoundToZero","RoundUp","VERSION|0","devnull","false","im","missing","nothing","pi","stderr","stdin","stdout","true","undef","\u03C0","\u212F"],r=["AbstractArray","AbstractChannel","AbstractChar","AbstractDict","AbstractDisplay","AbstractFloat","AbstractIrrational","AbstractMatrix","AbstractRange","AbstractSet","AbstractString","AbstractUnitRange","AbstractVecOrMat","AbstractVector","Any","ArgumentError","Array","AssertionError","BigFloat","BigInt","BitArray","BitMatrix","BitSet","BitVector","Bool","BoundsError","CapturedException","CartesianIndex","CartesianIndices","Cchar","Cdouble","Cfloat","Channel","Char","Cint","Cintmax_t","Clong","Clonglong","Cmd","Colon","Complex","ComplexF16","ComplexF32","ComplexF64","CompositeException","Condition","Cptrdiff_t","Cshort","Csize_t","Cssize_t","Cstring","Cuchar","Cuint","Cuintmax_t","Culong","Culonglong","Cushort","Cvoid","Cwchar_t","Cwstring","DataType","DenseArray","DenseMatrix","DenseVecOrMat","DenseVector","Dict","DimensionMismatch","Dims","DivideError","DomainError","EOFError","Enum","ErrorException","Exception","ExponentialBackOff","Expr","Float16","Float32","Float64","Function","GlobalRef","HTML","IO","IOBuffer","IOContext","IOStream","IdDict","IndexCartesian","IndexLinear","IndexStyle","InexactError","InitError","Int","Int128","Int16","Int32","Int64","Int8","Integer","InterruptException","InvalidStateException","Irrational","KeyError","LinRange","LineNumberNode","LinearIndices","LoadError","MIME","Matrix","Method","MethodError","Missing","MissingException","Module","NTuple","NamedTuple","Nothing","Number","OrdinalRange","OutOfMemoryError","OverflowError","Pair","PartialQuickSort","PermutedDimsArray","Pipe","ProcessFailedException","Ptr","QuoteNode","Rational","RawFD","ReadOnlyMemoryError","Real","ReentrantLock","Ref","Regex","RegexMatch","RoundingMode","SegmentationFault","Set","Signed","Some","StackOverflowError","StepRange","StepRangeLen","StridedArray","StridedMatrix","StridedVecOrMat","StridedVector","String","StringIndexError","SubArray","SubString","SubstitutionString","Symbol","SystemError","Task","TaskFailedException","Text","TextDisplay","Timer","Tuple","Type","TypeError","TypeVar","UInt","UInt128","UInt16","UInt32","UInt64","UInt8","UndefInitializer","UndefKeywordError","UndefRefError","UndefVarError","Union","UnionAll","UnitRange","Unsigned","Val","Vararg","VecElement","VecOrMat","Vector","VersionNumber","WeakKeyDict","WeakRef"],i={$pattern:t,keyword:n,literal:a,built_in:r},s={keywords:i,illegal:/<\//},o={className:"number",begin:/(\b0x[\d_]*(\.[\d_]*)?|0x\.\d[\d_]*)p[-+]?\d+|\b0[box][a-fA-F0-9][a-fA-F0-9_]*|(\b\d[\d_]*(\.[\d_]*)?|\.\d[\d_]*)([eEfF][-+]?\d+)?/,relevance:0},l={className:"string",begin:/'(.|\\[xXuU][a-zA-Z0-9]+)'/},c={className:"subst",begin:/\$\(/,end:/\)/,keywords:i},_={className:"variable",begin:"\\$"+t},u={className:"string",contains:[e.BACKSLASH_ESCAPE,c,_],variants:[{begin:/\w*"""/,end:/"""\w*/,relevance:10},{begin:/\w*"/,end:/"\w*/}]},m={className:"string",contains:[e.BACKSLASH_ESCAPE,c,_],begin:"`",end:"`"},g={className:"meta",begin:"@"+t},E={className:"comment",variants:[{begin:"#=",end:"=#",relevance:10},{begin:"#",end:"$"}]};return s.name="Julia",s.contains=[o,l,u,m,g,E,e.HASH_COMMENT_MODE,{className:"keyword",begin:"\\b(((abstract|primitive)\\s+)type|(mutable\\s+)?struct)\\b"},{begin:/<:/}],c.contains=s.contains,s}var Tc=Sc;function bc(e){return{name:"Julia REPL",contains:[{className:"meta",begin:/^julia>/,relevance:10,starts:{end:/^(?![ ]{6})/,subLanguage:"julia"},aliases:["jldoctest"]}]}}var Rc=bc,Te="[0-9](_*[0-9])*",Fe=`\\.(${Te})`,Be="[0-9a-fA-F](_*[0-9a-fA-F])*",Nc={className:"number",variants:[{begin:`(\\b(${Te})((${Fe})|\\.)?|(${Fe}))[eE][+-]?(${Te})[fFdD]?\\b`},{begin:`\\b(${Te})((${Fe})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${Fe})[fFdD]?\\b`},{begin:`\\b(${Te})[fFdD]\\b`},{begin:`\\b0[xX]((${Be})\\.?|(${Be})?\\.(${Be}))[pP][+-]?(${Te})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${Be})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function Cc(e){const t={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},n={className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},a={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},r={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},i={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},s={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[i,r]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,i,r]}]};r.contains.push(s);const o={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},l={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(s,{className:"meta-string"})]}]},c=Nc,_=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),u={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},m=u;return m.variants[1].contains=[u],u.variants[1].contains=[m],{name:"Kotlin",aliases:["kt","kts"],keywords:t,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,_,n,a,o,l,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:t,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:t,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[u,e.C_LINE_COMMENT_MODE,_],relevance:0},e.C_LINE_COMMENT_MODE,_,o,l,s,e.C_NUMBER_MODE]},_]},{className:"class",beginKeywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,]|$/,excludeBegin:!0,returnEnd:!0},o,l]},s,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:` +`},c]}}var fc=Cc;function Oc(e){const t="[a-zA-Z_][\\w.]*",n="<\\?(lasso(script)?|=)",a="\\]|\\?>",r={$pattern:t+"|&[lg]t;",literal:"true false none minimal full all void and or not bw nbw ew new cn ncn lt lte gt gte eq neq rx nrx ft",built_in:"array date decimal duration integer map pair string tag xml null boolean bytes keyword list locale queue set stack staticarray local var variable global data self inherited currentcapture givenblock",keyword:"cache database_names database_schemanames database_tablenames define_tag define_type email_batch encode_set html_comment handle handle_error header if inline iterate ljax_target link link_currentaction link_currentgroup link_currentrecord link_detail link_firstgroup link_firstrecord link_lastgroup link_lastrecord link_nextgroup link_nextrecord link_prevgroup link_prevrecord log loop namespace_using output_none portal private protect records referer referrer repeating resultset rows search_args search_arguments select sort_args sort_arguments thread_atomic value_list while abort case else fail_if fail_ifnot fail if_empty if_false if_null if_true loop_abort loop_continue loop_count params params_up return return_value run_children soap_definetag soap_lastrequest soap_lastresponse tag_name ascending average by define descending do equals frozen group handle_failure import in into join let match max min on order parent protected provide public require returnhome skip split_thread sum take thread to trait type where with yield yieldhome"},i=e.COMMENT("",{relevance:0}),s={className:"meta",begin:"\\[noprocess\\]",starts:{end:"\\[/noprocess\\]",returnEnd:!0,contains:[i]}},o={className:"meta",begin:"\\[/noprocess|"+n},l={className:"symbol",begin:"'"+t+"'"},c=[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.inherit(e.C_NUMBER_MODE,{begin:e.C_NUMBER_RE+"|(-?infinity|NaN)\\b"}),e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"string",begin:"`",end:"`"},{variants:[{begin:"[#$]"+t},{begin:"#",end:"\\d+",illegal:"\\W"}]},{className:"type",begin:"::\\s*",end:t,illegal:"\\W"},{className:"params",variants:[{begin:"-(?!infinity)"+t,relevance:0},{begin:"(\\.\\.\\.)"}]},{begin:/(->|\.)\s*/,relevance:0,contains:[l]},{className:"class",beginKeywords:"define",returnEnd:!0,end:"\\(|=>",contains:[e.inherit(e.TITLE_MODE,{begin:t+"(=(?!>))?|[-+*/%](?!>)"})]}];return{name:"Lasso",aliases:["ls","lassoscript"],case_insensitive:!0,keywords:r,contains:[{className:"meta",begin:a,relevance:0,starts:{end:"\\[|"+n,returnEnd:!0,relevance:0,contains:[i]}},s,o,{className:"meta",begin:"\\[no_square_brackets",starts:{end:"\\[/no_square_brackets\\]",keywords:r,contains:[{className:"meta",begin:a,relevance:0,starts:{end:"\\[noprocess\\]|"+n,returnEnd:!0,contains:[i]}},s,o].concat(c)}},{className:"meta",begin:"\\[",relevance:0},{className:"meta",begin:"^#!",end:"lasso9$",relevance:10}].concat(c)}}var Ic=Oc;function Ac(e){return e?typeof e=="string"?e:e.source:null}function vc(...e){return"("+e.map(n=>Ac(n)).join("|")+")"}function yc(e){const t=vc(...["(?:NeedsTeXFormat|RequirePackage|GetIdInfo)","Provides(?:Expl)?(?:Package|Class|File)","(?:DeclareOption|ProcessOptions)","(?:documentclass|usepackage|input|include)","makeat(?:letter|other)","ExplSyntax(?:On|Off)","(?:new|renew|provide)?command","(?:re)newenvironment","(?:New|Renew|Provide|Declare)(?:Expandable)?DocumentCommand","(?:New|Renew|Provide|Declare)DocumentEnvironment","(?:(?:e|g|x)?def|let)","(?:begin|end)","(?:part|chapter|(?:sub){0,2}section|(?:sub)?paragraph)","caption","(?:label|(?:eq|page|name)?ref|(?:paren|foot|super)?cite)","(?:alpha|beta|[Gg]amma|[Dd]elta|(?:var)?epsilon|zeta|eta|[Tt]heta|vartheta)","(?:iota|(?:var)?kappa|[Ll]ambda|mu|nu|[Xx]i|[Pp]i|varpi|(?:var)rho)","(?:[Ss]igma|varsigma|tau|[Uu]psilon|[Pp]hi|varphi|chi|[Pp]si|[Oo]mega)","(?:frac|sum|prod|lim|infty|times|sqrt|leq|geq|left|right|middle|[bB]igg?)","(?:[lr]angle|q?quad|[lcvdi]?dots|d?dot|hat|tilde|bar)"].map(v=>v+"(?![a-zA-Z@:_])")),n=new RegExp(["(?:__)?[a-zA-Z]{2,}_[a-zA-Z](?:_?[a-zA-Z])+:[a-zA-Z]*","[lgc]__?[a-zA-Z](?:_?[a-zA-Z])*_[a-zA-Z]{2,}","[qs]__?[a-zA-Z](?:_?[a-zA-Z])+","use(?:_i)?:[a-zA-Z]*","(?:else|fi|or):","(?:if|cs|exp):w","(?:hbox|vbox):n","::[a-zA-Z]_unbraced","::[a-zA-Z:]"].map(v=>v+"(?![a-zA-Z:_])").join("|")),a=[{begin:/[a-zA-Z@]+/},{begin:/[^a-zA-Z@]?/}],r=[{begin:/\^{6}[0-9a-f]{6}/},{begin:/\^{5}[0-9a-f]{5}/},{begin:/\^{4}[0-9a-f]{4}/},{begin:/\^{3}[0-9a-f]{3}/},{begin:/\^{2}[0-9a-f]{2}/},{begin:/\^{2}[\u0000-\u007f]/}],i={className:"keyword",begin:/\\/,relevance:0,contains:[{endsParent:!0,begin:t},{endsParent:!0,begin:n},{endsParent:!0,variants:r},{endsParent:!0,relevance:0,variants:a}]},s={className:"params",relevance:0,begin:/#+\d?/},o={variants:r},l={className:"built_in",relevance:0,begin:/[$&^_]/},c={className:"meta",begin:"% !TeX",end:"$",relevance:10},_=e.COMMENT("%","$",{relevance:0}),u=[i,s,o,l,c,_],m={begin:/\{/,end:/\}/,relevance:0,contains:["self",...u]},g=e.inherit(m,{relevance:0,endsParent:!0,contains:[m,...u]}),E={begin:/\[/,end:/\]/,endsParent:!0,relevance:0,contains:[m,...u]},S={begin:/\s+/,relevance:0},T=[g],C=[E],R=function(v,B){return{contains:[S],starts:{relevance:0,contains:v,starts:B}}},f=function(v,B){return{begin:"\\\\"+v+"(?![a-zA-Z@:_])",keywords:{$pattern:/\\[a-zA-Z]+/,keyword:"\\"+v},relevance:0,contains:[S],starts:B}},O=function(v,B){return e.inherit({begin:"\\\\begin(?=[ ]*(\\r?\\n[ ]*)?\\{"+v+"\\})",keywords:{$pattern:/\\[a-zA-Z]+/,keyword:"\\begin"},relevance:0},R(T,B))},L=(v="string")=>e.END_SAME_AS_BEGIN({className:v,begin:/(.|\r?\n)/,end:/(.|\r?\n)/,excludeBegin:!0,excludeEnd:!0,endsParent:!0}),h=function(v){return{className:"string",end:"(?=\\\\end\\{"+v+"\\})"}},w=(v="string")=>({relevance:0,begin:/\{/,starts:{endsParent:!0,contains:[{className:v,end:/(?=\})/,endsParent:!0,contains:[{begin:/\{/,end:/\}/,relevance:0,contains:["self"]}]}]}}),Y=[...["verb","lstinline"].map(v=>f(v,{contains:[L()]})),f("mint",R(T,{contains:[L()]})),f("mintinline",R(T,{contains:[w(),L()]})),f("url",{contains:[w("link"),w("link")]}),f("hyperref",{contains:[w("link")]}),f("href",R(C,{contains:[w("link")]})),...[].concat(...["","\\*"].map(v=>[O("verbatim"+v,h("verbatim"+v)),O("filecontents"+v,R(T,h("filecontents"+v))),...["","B","L"].map(B=>O(B+"Verbatim"+v,R(C,h(B+"Verbatim"+v))))])),O("minted",R(C,R(T,h("minted"))))];return{name:"LaTeX",aliases:["tex"],contains:[...Y,...u]}}var Dc=yc;function hc(e){return{name:"LDIF",contains:[{className:"attribute",begin:"^dn",end:": ",excludeEnd:!0,starts:{end:"$",relevance:0},relevance:10},{className:"attribute",begin:"^\\w",end:": ",excludeEnd:!0,starts:{end:"$",relevance:0}},{className:"literal",begin:"^-",end:"$"},e.HASH_COMMENT_MODE]}}var Mc=hc;function Lc(e){return{name:"Leaf",contains:[{className:"function",begin:"#+[A-Za-z_0-9]*\\(",end:/ \{/,returnBegin:!0,excludeEnd:!0,contains:[{className:"keyword",begin:"#+"},{className:"title",begin:"[A-Za-z_][A-Za-z_0-9]*"},{className:"params",begin:"\\(",end:"\\)",endsParent:!0,contains:[{className:"string",begin:'"',end:'"'},{className:"variable",begin:"[A-Za-z_][A-Za-z_0-9]*"}]}]}]}}var xc=Lc;const Pc=e=>({IMPORTANT:{className:"meta",begin:"!important"},HEXCOLOR:{className:"number",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})"},ATTRIBUTE_SELECTOR_MODE:{className:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}}),wc=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],kc=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],mn=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],En=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],Uc=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-variant","font-variant-ligatures","font-variation-settings","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","src","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"].reverse(),Fc=mn.concat(En);function Bc(e){const t=Pc(e),n=Fc,a="and or not only",r="[\\w-]+",i="("+r+"|@\\{"+r+"\\})",s=[],o=[],l=function(f){return{className:"string",begin:"~?"+f+".*?"+f}},c=function(f,O,L){return{className:f,begin:O,relevance:L}},_={$pattern:/[a-z-]+/,keyword:a,attribute:kc.join(" ")},u={begin:"\\(",end:"\\)",contains:o,keywords:_,relevance:0};o.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,l("'"),l('"'),e.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},t.HEXCOLOR,u,c("variable","@@?"+r,10),c("variable","@\\{"+r+"\\}"),c("built_in","~?`[^`]*?`"),{className:"attribute",begin:r+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0},t.IMPORTANT);const m=o.concat({begin:/\{/,end:/\}/,contains:s}),g={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(o)},E={begin:i+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/},{className:"attribute",begin:"\\b("+Uc.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:o}}]},S={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",keywords:_,returnEnd:!0,contains:o,relevance:0}},T={className:"variable",variants:[{begin:"@"+r+"\\s*:",relevance:15},{begin:"@"+r}],starts:{end:"[;}]",returnEnd:!0,contains:m}},C={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:i,end:/\{/}],returnBegin:!0,returnEnd:!0,illegal:`[<='$"]`,relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,g,c("keyword","all\\b"),c("variable","@\\{"+r+"\\}"),{begin:"\\b("+wc.join("|")+")\\b",className:"selector-tag"},c("selector-tag",i+"%?",0),c("selector-id","#"+i),c("selector-class","\\."+i,0),c("selector-tag","&",0),t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",begin:":("+mn.join("|")+")"},{className:"selector-pseudo",begin:"::("+En.join("|")+")"},{begin:"\\(",end:"\\)",contains:m},{begin:"!important"}]},R={begin:r+`:(:)?(${n.join("|")})`,returnBegin:!0,contains:[C]};return s.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,S,T,R,E,C),{name:"Less",case_insensitive:!0,illegal:`[=>'/<($"]`,contains:s}}var Gc=Bc;function Yc(e){var t="[a-zA-Z_\\-+\\*\\/<=>&#][a-zA-Z0-9_\\-+*\\/<=>&#!]*",n="\\|[^]*?\\|",a="(-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s|D|E|F|L|S)(\\+|-)?\\d+)?",r={className:"literal",begin:"\\b(t{1}|nil)\\b"},i={className:"number",variants:[{begin:a,relevance:0},{begin:"#(b|B)[0-1]+(/[0-1]+)?"},{begin:"#(o|O)[0-7]+(/[0-7]+)?"},{begin:"#(x|X)[0-9a-fA-F]+(/[0-9a-fA-F]+)?"},{begin:"#(c|C)\\("+a+" +"+a,end:"\\)"}]},s=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),o=e.COMMENT(";","$",{relevance:0}),l={begin:"\\*",end:"\\*"},c={className:"symbol",begin:"[:&]"+t},_={begin:t,relevance:0},u={begin:n},m={begin:"\\(",end:"\\)",contains:["self",r,s,i,_]},g={contains:[i,s,l,c,m,_],variants:[{begin:"['`]\\(",end:"\\)"},{begin:"\\(quote ",end:"\\)",keywords:{name:"quote"}},{begin:"'"+n}]},E={variants:[{begin:"'"+t},{begin:"#'"+t+"(::"+t+")*"}]},S={begin:"\\(\\s*",end:"\\)"},T={endsWithParent:!0,relevance:0};return S.contains=[{className:"name",variants:[{begin:t,relevance:0},{begin:n}]},T],T.contains=[g,E,S,r,i,s,o,l,c,u,_],{name:"Lisp",illegal:/\S/,contains:[i,e.SHEBANG(),r,s,o,g,E,S,_]}}var Hc=Yc;function Vc(e){const t={className:"variable",variants:[{begin:"\\b([gtps][A-Z]{1}[a-zA-Z0-9]*)(\\[.+\\])?(?:\\s*?)"},{begin:"\\$_[A-Z]+"}],relevance:0},n=[e.C_BLOCK_COMMENT_MODE,e.HASH_COMMENT_MODE,e.COMMENT("--","$"),e.COMMENT("[^:]//","$")],a=e.inherit(e.TITLE_MODE,{variants:[{begin:"\\b_*rig[A-Z][A-Za-z0-9_\\-]*"},{begin:"\\b_[a-z0-9\\-]+"}]}),r=e.inherit(e.TITLE_MODE,{begin:"\\b([A-Za-z0-9_\\-]+)\\b"});return{name:"LiveCode",case_insensitive:!1,keywords:{keyword:"$_COOKIE $_FILES $_GET $_GET_BINARY $_GET_RAW $_POST $_POST_BINARY $_POST_RAW $_SESSION $_SERVER codepoint codepoints segment segments codeunit codeunits sentence sentences trueWord trueWords paragraph after byte bytes english the until http forever descending using line real8 with seventh for stdout finally element word words fourth before black ninth sixth characters chars stderr uInt1 uInt1s uInt2 uInt2s stdin string lines relative rel any fifth items from middle mid at else of catch then third it file milliseconds seconds second secs sec int1 int1s int4 int4s internet int2 int2s normal text item last long detailed effective uInt4 uInt4s repeat end repeat URL in try into switch to words https token binfile each tenth as ticks tick system real4 by dateItems without char character ascending eighth whole dateTime numeric short first ftp integer abbreviated abbr abbrev private case while if div mod wrap and or bitAnd bitNot bitOr bitXor among not in a an within contains ends with begins the keys of keys",literal:"SIX TEN FORMFEED NINE ZERO NONE SPACE FOUR FALSE COLON CRLF PI COMMA ENDOFFILE EOF EIGHT FIVE QUOTE EMPTY ONE TRUE RETURN CR LINEFEED RIGHT BACKSLASH NULL SEVEN TAB THREE TWO six ten formfeed nine zero none space four false colon crlf pi comma endoffile eof eight five quote empty one true return cr linefeed right backslash null seven tab three two RIVERSION RISTATE FILE_READ_MODE FILE_WRITE_MODE FILE_WRITE_MODE DIR_WRITE_MODE FILE_READ_UMASK FILE_WRITE_UMASK DIR_READ_UMASK DIR_WRITE_UMASK",built_in:"put abs acos aliasReference annuity arrayDecode arrayEncode asin atan atan2 average avg avgDev base64Decode base64Encode baseConvert binaryDecode binaryEncode byteOffset byteToNum cachedURL cachedURLs charToNum cipherNames codepointOffset codepointProperty codepointToNum codeunitOffset commandNames compound compress constantNames cos date dateFormat decompress difference directories diskSpace DNSServers exp exp1 exp2 exp10 extents files flushEvents folders format functionNames geometricMean global globals hasMemory harmonicMean hostAddress hostAddressToName hostName hostNameToAddress isNumber ISOToMac itemOffset keys len length libURLErrorData libUrlFormData libURLftpCommand libURLLastHTTPHeaders libURLLastRHHeaders libUrlMultipartFormAddPart libUrlMultipartFormData libURLVersion lineOffset ln ln1 localNames log log2 log10 longFilePath lower macToISO matchChunk matchText matrixMultiply max md5Digest median merge messageAuthenticationCode messageDigest millisec millisecs millisecond milliseconds min monthNames nativeCharToNum normalizeText num number numToByte numToChar numToCodepoint numToNativeChar offset open openfiles openProcesses openProcessIDs openSockets paragraphOffset paramCount param params peerAddress pendingMessages platform popStdDev populationStandardDeviation populationVariance popVariance processID random randomBytes replaceText result revCreateXMLTree revCreateXMLTreeFromFile revCurrentRecord revCurrentRecordIsFirst revCurrentRecordIsLast revDatabaseColumnCount revDatabaseColumnIsNull revDatabaseColumnLengths revDatabaseColumnNames revDatabaseColumnNamed revDatabaseColumnNumbered revDatabaseColumnTypes revDatabaseConnectResult revDatabaseCursors revDatabaseID revDatabaseTableNames revDatabaseType revDataFromQuery revdb_closeCursor revdb_columnbynumber revdb_columncount revdb_columnisnull revdb_columnlengths revdb_columnnames revdb_columntypes revdb_commit revdb_connect revdb_connections revdb_connectionerr revdb_currentrecord revdb_cursorconnection revdb_cursorerr revdb_cursors revdb_dbtype revdb_disconnect revdb_execute revdb_iseof revdb_isbof revdb_movefirst revdb_movelast revdb_movenext revdb_moveprev revdb_query revdb_querylist revdb_recordcount revdb_rollback revdb_tablenames revGetDatabaseDriverPath revNumberOfRecords revOpenDatabase revOpenDatabases revQueryDatabase revQueryDatabaseBlob revQueryResult revQueryIsAtStart revQueryIsAtEnd revUnixFromMacPath revXMLAttribute revXMLAttributes revXMLAttributeValues revXMLChildContents revXMLChildNames revXMLCreateTreeFromFileWithNamespaces revXMLCreateTreeWithNamespaces revXMLDataFromXPathQuery revXMLEvaluateXPath revXMLFirstChild revXMLMatchingNode revXMLNextSibling revXMLNodeContents revXMLNumberOfChildren revXMLParent revXMLPreviousSibling revXMLRootNode revXMLRPC_CreateRequest revXMLRPC_Documents revXMLRPC_Error revXMLRPC_GetHost revXMLRPC_GetMethod revXMLRPC_GetParam revXMLText revXMLRPC_Execute revXMLRPC_GetParamCount revXMLRPC_GetParamNode revXMLRPC_GetParamType revXMLRPC_GetPath revXMLRPC_GetPort revXMLRPC_GetProtocol revXMLRPC_GetRequest revXMLRPC_GetResponse revXMLRPC_GetSocket revXMLTree revXMLTrees revXMLValidateDTD revZipDescribeItem revZipEnumerateItems revZipOpenArchives round sampVariance sec secs seconds sentenceOffset sha1Digest shell shortFilePath sin specialFolderPath sqrt standardDeviation statRound stdDev sum sysError systemVersion tan tempName textDecode textEncode tick ticks time to tokenOffset toLower toUpper transpose truewordOffset trunc uniDecode uniEncode upper URLDecode URLEncode URLStatus uuid value variableNames variance version waitDepth weekdayNames wordOffset xsltApplyStylesheet xsltApplyStylesheetFromFile xsltLoadStylesheet xsltLoadStylesheetFromFile add breakpoint cancel clear local variable file word line folder directory URL close socket process combine constant convert create new alias folder directory decrypt delete variable word line folder directory URL dispatch divide do encrypt filter get include intersect kill libURLDownloadToFile libURLFollowHttpRedirects libURLftpUpload libURLftpUploadFile libURLresetAll libUrlSetAuthCallback libURLSetDriver libURLSetCustomHTTPHeaders libUrlSetExpect100 libURLSetFTPListCommand libURLSetFTPMode libURLSetFTPStopTime libURLSetStatusCallback load extension loadedExtensions multiply socket prepare process post seek rel relative read from process rename replace require resetAll resolve revAddXMLNode revAppendXML revCloseCursor revCloseDatabase revCommitDatabase revCopyFile revCopyFolder revCopyXMLNode revDeleteFolder revDeleteXMLNode revDeleteAllXMLTrees revDeleteXMLTree revExecuteSQL revGoURL revInsertXMLNode revMoveFolder revMoveToFirstRecord revMoveToLastRecord revMoveToNextRecord revMoveToPreviousRecord revMoveToRecord revMoveXMLNode revPutIntoXMLNode revRollBackDatabase revSetDatabaseDriverPath revSetXMLAttribute revXMLRPC_AddParam revXMLRPC_DeleteAllDocuments revXMLAddDTD revXMLRPC_Free revXMLRPC_FreeAll revXMLRPC_DeleteDocument revXMLRPC_DeleteParam revXMLRPC_SetHost revXMLRPC_SetMethod revXMLRPC_SetPort revXMLRPC_SetProtocol revXMLRPC_SetSocket revZipAddItemWithData revZipAddItemWithFile revZipAddUncompressedItemWithData revZipAddUncompressedItemWithFile revZipCancel revZipCloseArchive revZipDeleteItem revZipExtractItemToFile revZipExtractItemToVariable revZipSetProgressCallback revZipRenameItem revZipReplaceItemWithData revZipReplaceItemWithFile revZipOpenArchive send set sort split start stop subtract symmetric union unload vectorDotProduct wait write"},contains:[t,{className:"keyword",begin:"\\bend\\sif\\b"},{className:"function",beginKeywords:"function",end:"$",contains:[t,r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE,a]},{className:"function",begin:"\\bend\\s+",end:"$",keywords:"end",contains:[r,a],relevance:0},{beginKeywords:"command on",end:"$",contains:[t,r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE,a]},{className:"meta",variants:[{begin:"<\\?(rev|lc|livecode)",relevance:10},{begin:"<\\?"},{begin:"\\?>"}]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE,a].concat(n),illegal:";$|^\\[|^=|&|\\{"}}var qc=Vc;const $c=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],zc=["true","false","null","undefined","NaN","Infinity"],Wc=["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer","BigInt64Array","BigUint64Array","BigInt"],Kc=["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],Qc=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Xc=["arguments","this","super","console","window","document","localStorage","module","global"],Zc=[].concat(Qc,Xc,Wc,Kc);function Jc(e){const t=["npm","print"],n=["yes","no","on","off","it","that","void"],a=["then","unless","until","loop","of","by","when","and","or","is","isnt","not","it","that","otherwise","from","to","til","fallthrough","case","enum","native","list","map","__hasProp","__extends","__slice","__bind","__indexOf"],r={keyword:$c.concat(a),literal:zc.concat(n),built_in:Zc.concat(t)},i="[A-Za-z$_](?:-[0-9A-Za-z$_]|[0-9A-Za-z$_])*",s=e.inherit(e.TITLE_MODE,{begin:i}),o={className:"subst",begin:/#\{/,end:/\}/,keywords:r},l={className:"subst",begin:/#[A-Za-z$_]/,end:/(?:-[0-9A-Za-z$_]|[0-9A-Za-z$_])*/,keywords:r},c=[e.BINARY_NUMBER_MODE,{className:"number",begin:"(\\b0[xX][a-fA-F0-9_]+)|(\\b\\d(\\d|_\\d)*(\\.(\\d(\\d|_\\d)*)?)?(_*[eE]([-+]\\d(_\\d|\\d)*)?)?[_a-z]*)",relevance:0,starts:{end:"(\\s*/)?",relevance:0}},{className:"string",variants:[{begin:/'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE]},{begin:/'/,end:/'/,contains:[e.BACKSLASH_ESCAPE]},{begin:/"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,o,l]},{begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,o,l]},{begin:/\\/,end:/(\s|$)/,excludeEnd:!0}]},{className:"regexp",variants:[{begin:"//",end:"//[gim]*",contains:[o,e.HASH_COMMENT_MODE]},{begin:/\/(?![ *])(\\.|[^\\\n])*?\/[gim]*(?=\W)/}]},{begin:"@"+i},{begin:"``",end:"``",excludeBegin:!0,excludeEnd:!0,subLanguage:"javascript"}];o.contains=c;const _={className:"params",begin:"\\(",returnBegin:!0,contains:[{begin:/\(/,end:/\)/,keywords:r,contains:["self"].concat(c)}]},u={begin:"(#=>|=>|\\|>>|-?->|!->)"};return{name:"LiveScript",aliases:["ls"],keywords:r,illegal:/\/\*/,contains:c.concat([e.COMMENT("\\/\\*","\\*\\/"),e.HASH_COMMENT_MODE,u,{className:"function",contains:[s,_],returnBegin:!0,variants:[{begin:"("+i+"\\s*(?:=|:=)\\s*)?(\\(.*\\)\\s*)?\\B->\\*?",end:"->\\*?"},{begin:"("+i+"\\s*(?:=|:=)\\s*)?!?(\\(.*\\)\\s*)?\\B[-~]{1,2}>\\*?",end:"[-~]{1,2}>\\*?"},{begin:"("+i+"\\s*(?:=|:=)\\s*)?(\\(.*\\)\\s*)?\\B!?[-~]{1,2}>\\*?",end:"!?[-~]{1,2}>\\*?"}]},{className:"class",beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[s]},s]},{begin:i+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}}var jc=Jc;function e_(e){return e?typeof e=="string"?e:e.source:null}function Ge(...e){return e.map(n=>e_(n)).join("")}function t_(e){const t=/([-a-zA-Z$._][\w$.-]*)/,n={className:"type",begin:/\bi\d+(?=\s|\b)/},a={className:"operator",relevance:0,begin:/=/},r={className:"punctuation",relevance:0,begin:/,/},i={className:"number",variants:[{begin:/0[xX][a-fA-F0-9]+/},{begin:/-?\d+(?:[.]\d+)?(?:[eE][-+]?\d+(?:[.]\d+)?)?/}],relevance:0},s={className:"symbol",variants:[{begin:/^\s*[a-z]+:/}],relevance:0},o={className:"variable",variants:[{begin:Ge(/%/,t)},{begin:/%\d+/},{begin:/#\d+/}]},l={className:"title",variants:[{begin:Ge(/@/,t)},{begin:/@\d+/},{begin:Ge(/!/,t)},{begin:Ge(/!\d+/,t)},{begin:/!\d+/}]};return{name:"LLVM IR",keywords:"begin end true false declare define global constant private linker_private internal available_externally linkonce linkonce_odr weak weak_odr appending dllimport dllexport common default hidden protected extern_weak external thread_local zeroinitializer undef null to tail target triple datalayout volatile nuw nsw nnan ninf nsz arcp fast exact inbounds align addrspace section alias module asm sideeffect gc dbg linker_private_weak attributes blockaddress initialexec localdynamic localexec prefix unnamed_addr ccc fastcc coldcc x86_stdcallcc x86_fastcallcc arm_apcscc arm_aapcscc arm_aapcs_vfpcc ptx_device ptx_kernel intel_ocl_bicc msp430_intrcc spir_func spir_kernel x86_64_sysvcc x86_64_win64cc x86_thiscallcc cc c signext zeroext inreg sret nounwind noreturn noalias nocapture byval nest readnone readonly inlinehint noinline alwaysinline optsize ssp sspreq noredzone noimplicitfloat naked builtin cold nobuiltin noduplicate nonlazybind optnone returns_twice sanitize_address sanitize_memory sanitize_thread sspstrong uwtable returned type opaque eq ne slt sgt sle sge ult ugt ule uge oeq one olt ogt ole oge ord uno ueq une x acq_rel acquire alignstack atomic catch cleanup filter inteldialect max min monotonic nand personality release seq_cst singlethread umax umin unordered xchg add fadd sub fsub mul fmul udiv sdiv fdiv urem srem frem shl lshr ashr and or xor icmp fcmp phi call trunc zext sext fptrunc fpext uitofp sitofp fptoui fptosi inttoptr ptrtoint bitcast addrspacecast select va_arg ret br switch invoke unwind unreachable indirectbr landingpad resume malloc alloca free load store getelementptr extractelement insertelement shufflevector getresult extractvalue insertvalue atomicrmw cmpxchg fence argmemonly double",contains:[n,e.COMMENT(/;\s*$/,null,{relevance:0}),e.COMMENT(/;/,/$/),e.QUOTE_STRING_MODE,{className:"string",variants:[{begin:/"/,end:/[^\\]"/}]},l,r,a,o,s,i]}}var n_=t_;function a_(e){var t={className:"subst",begin:/\\[tn"\\]/},n={className:"string",begin:'"',end:'"',contains:[t]},a={className:"number",relevance:0,begin:e.C_NUMBER_RE},r={className:"literal",variants:[{begin:"\\b(PI|TWO_PI|PI_BY_TWO|DEG_TO_RAD|RAD_TO_DEG|SQRT2)\\b"},{begin:"\\b(XP_ERROR_(EXPERIENCES_DISABLED|EXPERIENCE_(DISABLED|SUSPENDED)|INVALID_(EXPERIENCE|PARAMETERS)|KEY_NOT_FOUND|MATURITY_EXCEEDED|NONE|NOT_(FOUND|PERMITTED(_LAND)?)|NO_EXPERIENCE|QUOTA_EXCEEDED|RETRY_UPDATE|STORAGE_EXCEPTION|STORE_DISABLED|THROTTLED|UNKNOWN_ERROR)|JSON_APPEND|STATUS_(PHYSICS|ROTATE_[XYZ]|PHANTOM|SANDBOX|BLOCK_GRAB(_OBJECT)?|(DIE|RETURN)_AT_EDGE|CAST_SHADOWS|OK|MALFORMED_PARAMS|TYPE_MISMATCH|BOUNDS_ERROR|NOT_(FOUND|SUPPORTED)|INTERNAL_ERROR|WHITELIST_FAILED)|AGENT(_(BY_(LEGACY_|USER)NAME|FLYING|ATTACHMENTS|SCRIPTED|MOUSELOOK|SITTING|ON_OBJECT|AWAY|WALKING|IN_AIR|TYPING|CROUCHING|BUSY|ALWAYS_RUN|AUTOPILOT|LIST_(PARCEL(_OWNER)?|REGION)))?|CAMERA_(PITCH|DISTANCE|BEHINDNESS_(ANGLE|LAG)|(FOCUS|POSITION)(_(THRESHOLD|LOCKED|LAG))?|FOCUS_OFFSET|ACTIVE)|ANIM_ON|LOOP|REVERSE|PING_PONG|SMOOTH|ROTATE|SCALE|ALL_SIDES|LINK_(ROOT|SET|ALL_(OTHERS|CHILDREN)|THIS)|ACTIVE|PASS(IVE|_(ALWAYS|IF_NOT_HANDLED|NEVER))|SCRIPTED|CONTROL_(FWD|BACK|(ROT_)?(LEFT|RIGHT)|UP|DOWN|(ML_)?LBUTTON)|PERMISSION_(RETURN_OBJECTS|DEBIT|OVERRIDE_ANIMATIONS|SILENT_ESTATE_MANAGEMENT|TAKE_CONTROLS|TRIGGER_ANIMATION|ATTACH|CHANGE_LINKS|(CONTROL|TRACK)_CAMERA|TELEPORT)|INVENTORY_(TEXTURE|SOUND|OBJECT|SCRIPT|LANDMARK|CLOTHING|NOTECARD|BODYPART|ANIMATION|GESTURE|ALL|NONE)|CHANGED_(INVENTORY|COLOR|SHAPE|SCALE|TEXTURE|LINK|ALLOWED_DROP|OWNER|REGION(_START)?|TELEPORT|MEDIA)|OBJECT_(CLICK_ACTION|HOVER_HEIGHT|LAST_OWNER_ID|(PHYSICS|SERVER|STREAMING)_COST|UNKNOWN_DETAIL|CHARACTER_TIME|PHANTOM|PHYSICS|TEMP_(ATTACHED|ON_REZ)|NAME|DESC|POS|PRIM_(COUNT|EQUIVALENCE)|RETURN_(PARCEL(_OWNER)?|REGION)|REZZER_KEY|ROO?T|VELOCITY|OMEGA|OWNER|GROUP(_TAG)?|CREATOR|ATTACHED_(POINT|SLOTS_AVAILABLE)|RENDER_WEIGHT|(BODY_SHAPE|PATHFINDING)_TYPE|(RUNNING|TOTAL)_SCRIPT_COUNT|TOTAL_INVENTORY_COUNT|SCRIPT_(MEMORY|TIME))|TYPE_(INTEGER|FLOAT|STRING|KEY|VECTOR|ROTATION|INVALID)|(DEBUG|PUBLIC)_CHANNEL|ATTACH_(AVATAR_CENTER|CHEST|HEAD|BACK|PELVIS|MOUTH|CHIN|NECK|NOSE|BELLY|[LR](SHOULDER|HAND|FOOT|EAR|EYE|[UL](ARM|LEG)|HIP)|(LEFT|RIGHT)_PEC|HUD_(CENTER_[12]|TOP_(RIGHT|CENTER|LEFT)|BOTTOM(_(RIGHT|LEFT))?)|[LR]HAND_RING1|TAIL_(BASE|TIP)|[LR]WING|FACE_(JAW|[LR]EAR|[LR]EYE|TOUNGE)|GROIN|HIND_[LR]FOOT)|LAND_(LEVEL|RAISE|LOWER|SMOOTH|NOISE|REVERT)|DATA_(ONLINE|NAME|BORN|SIM_(POS|STATUS|RATING)|PAYINFO)|PAYMENT_INFO_(ON_FILE|USED)|REMOTE_DATA_(CHANNEL|REQUEST|REPLY)|PSYS_(PART_(BF_(ZERO|ONE(_MINUS_(DEST_COLOR|SOURCE_(ALPHA|COLOR)))?|DEST_COLOR|SOURCE_(ALPHA|COLOR))|BLEND_FUNC_(DEST|SOURCE)|FLAGS|(START|END)_(COLOR|ALPHA|SCALE|GLOW)|MAX_AGE|(RIBBON|WIND|INTERP_(COLOR|SCALE)|BOUNCE|FOLLOW_(SRC|VELOCITY)|TARGET_(POS|LINEAR)|EMISSIVE)_MASK)|SRC_(MAX_AGE|PATTERN|ANGLE_(BEGIN|END)|BURST_(RATE|PART_COUNT|RADIUS|SPEED_(MIN|MAX))|ACCEL|TEXTURE|TARGET_KEY|OMEGA|PATTERN_(DROP|EXPLODE|ANGLE(_CONE(_EMPTY)?)?)))|VEHICLE_(REFERENCE_FRAME|TYPE_(NONE|SLED|CAR|BOAT|AIRPLANE|BALLOON)|(LINEAR|ANGULAR)_(FRICTION_TIMESCALE|MOTOR_DIRECTION)|LINEAR_MOTOR_OFFSET|HOVER_(HEIGHT|EFFICIENCY|TIMESCALE)|BUOYANCY|(LINEAR|ANGULAR)_(DEFLECTION_(EFFICIENCY|TIMESCALE)|MOTOR_(DECAY_)?TIMESCALE)|VERTICAL_ATTRACTION_(EFFICIENCY|TIMESCALE)|BANKING_(EFFICIENCY|MIX|TIMESCALE)|FLAG_(NO_DEFLECTION_UP|LIMIT_(ROLL_ONLY|MOTOR_UP)|HOVER_((WATER|TERRAIN|UP)_ONLY|GLOBAL_HEIGHT)|MOUSELOOK_(STEER|BANK)|CAMERA_DECOUPLED))|PRIM_(ALLOW_UNSIT|ALPHA_MODE(_(BLEND|EMISSIVE|MASK|NONE))?|NORMAL|SPECULAR|TYPE(_(BOX|CYLINDER|PRISM|SPHERE|TORUS|TUBE|RING|SCULPT))?|HOLE_(DEFAULT|CIRCLE|SQUARE|TRIANGLE)|MATERIAL(_(STONE|METAL|GLASS|WOOD|FLESH|PLASTIC|RUBBER))?|SHINY_(NONE|LOW|MEDIUM|HIGH)|BUMP_(NONE|BRIGHT|DARK|WOOD|BARK|BRICKS|CHECKER|CONCRETE|TILE|STONE|DISKS|GRAVEL|BLOBS|SIDING|LARGETILE|STUCCO|SUCTION|WEAVE)|TEXGEN_(DEFAULT|PLANAR)|SCRIPTED_SIT_ONLY|SCULPT_(TYPE_(SPHERE|TORUS|PLANE|CYLINDER|MASK)|FLAG_(MIRROR|INVERT))|PHYSICS(_(SHAPE_(CONVEX|NONE|PRIM|TYPE)))?|(POS|ROT)_LOCAL|SLICE|TEXT|FLEXIBLE|POINT_LIGHT|TEMP_ON_REZ|PHANTOM|POSITION|SIT_TARGET|SIZE|ROTATION|TEXTURE|NAME|OMEGA|DESC|LINK_TARGET|COLOR|BUMP_SHINY|FULLBRIGHT|TEXGEN|GLOW|MEDIA_(ALT_IMAGE_ENABLE|CONTROLS|(CURRENT|HOME)_URL|AUTO_(LOOP|PLAY|SCALE|ZOOM)|FIRST_CLICK_INTERACT|(WIDTH|HEIGHT)_PIXELS|WHITELIST(_ENABLE)?|PERMS_(INTERACT|CONTROL)|PARAM_MAX|CONTROLS_(STANDARD|MINI)|PERM_(NONE|OWNER|GROUP|ANYONE)|MAX_(URL_LENGTH|WHITELIST_(SIZE|COUNT)|(WIDTH|HEIGHT)_PIXELS)))|MASK_(BASE|OWNER|GROUP|EVERYONE|NEXT)|PERM_(TRANSFER|MODIFY|COPY|MOVE|ALL)|PARCEL_(MEDIA_COMMAND_(STOP|PAUSE|PLAY|LOOP|TEXTURE|URL|TIME|AGENT|UNLOAD|AUTO_ALIGN|TYPE|SIZE|DESC|LOOP_SET)|FLAG_(ALLOW_(FLY|(GROUP_)?SCRIPTS|LANDMARK|TERRAFORM|DAMAGE|CREATE_(GROUP_)?OBJECTS)|USE_(ACCESS_(GROUP|LIST)|BAN_LIST|LAND_PASS_LIST)|LOCAL_SOUND_ONLY|RESTRICT_PUSHOBJECT|ALLOW_(GROUP|ALL)_OBJECT_ENTRY)|COUNT_(TOTAL|OWNER|GROUP|OTHER|SELECTED|TEMP)|DETAILS_(NAME|DESC|OWNER|GROUP|AREA|ID|SEE_AVATARS))|LIST_STAT_(MAX|MIN|MEAN|MEDIAN|STD_DEV|SUM(_SQUARES)?|NUM_COUNT|GEOMETRIC_MEAN|RANGE)|PAY_(HIDE|DEFAULT)|REGION_FLAG_(ALLOW_DAMAGE|FIXED_SUN|BLOCK_TERRAFORM|SANDBOX|DISABLE_(COLLISIONS|PHYSICS)|BLOCK_FLY|ALLOW_DIRECT_TELEPORT|RESTRICT_PUSHOBJECT)|HTTP_(METHOD|MIMETYPE|BODY_(MAXLENGTH|TRUNCATED)|CUSTOM_HEADER|PRAGMA_NO_CACHE|VERBOSE_THROTTLE|VERIFY_CERT)|SIT_(INVALID_(AGENT|LINK_OBJECT)|NO(T_EXPERIENCE|_(ACCESS|EXPERIENCE_PERMISSION|SIT_TARGET)))|STRING_(TRIM(_(HEAD|TAIL))?)|CLICK_ACTION_(NONE|TOUCH|SIT|BUY|PAY|OPEN(_MEDIA)?|PLAY|ZOOM)|TOUCH_INVALID_FACE|PROFILE_(NONE|SCRIPT_MEMORY)|RC_(DATA_FLAGS|DETECT_PHANTOM|GET_(LINK_NUM|NORMAL|ROOT_KEY)|MAX_HITS|REJECT_(TYPES|AGENTS|(NON)?PHYSICAL|LAND))|RCERR_(CAST_TIME_EXCEEDED|SIM_PERF_LOW|UNKNOWN)|ESTATE_ACCESS_(ALLOWED_(AGENT|GROUP)_(ADD|REMOVE)|BANNED_AGENT_(ADD|REMOVE))|DENSITY|FRICTION|RESTITUTION|GRAVITY_MULTIPLIER|KFM_(COMMAND|CMD_(PLAY|STOP|PAUSE)|MODE|FORWARD|LOOP|PING_PONG|REVERSE|DATA|ROTATION|TRANSLATION)|ERR_(GENERIC|PARCEL_PERMISSIONS|MALFORMED_PARAMS|RUNTIME_PERMISSIONS|THROTTLED)|CHARACTER_(CMD_((SMOOTH_)?STOP|JUMP)|DESIRED_(TURN_)?SPEED|RADIUS|STAY_WITHIN_PARCEL|LENGTH|ORIENTATION|ACCOUNT_FOR_SKIPPED_FRAMES|AVOIDANCE_MODE|TYPE(_([ABCD]|NONE))?|MAX_(DECEL|TURN_RADIUS|(ACCEL|SPEED)))|PURSUIT_(OFFSET|FUZZ_FACTOR|GOAL_TOLERANCE|INTERCEPT)|REQUIRE_LINE_OF_SIGHT|FORCE_DIRECT_PATH|VERTICAL|HORIZONTAL|AVOID_(CHARACTERS|DYNAMIC_OBSTACLES|NONE)|PU_(EVADE_(HIDDEN|SPOTTED)|FAILURE_(DYNAMIC_PATHFINDING_DISABLED|INVALID_(GOAL|START)|NO_(NAVMESH|VALID_DESTINATION)|OTHER|TARGET_GONE|(PARCEL_)?UNREACHABLE)|(GOAL|SLOWDOWN_DISTANCE)_REACHED)|TRAVERSAL_TYPE(_(FAST|NONE|SLOW))?|CONTENT_TYPE_(ATOM|FORM|HTML|JSON|LLSD|RSS|TEXT|XHTML|XML)|GCNP_(RADIUS|STATIC)|(PATROL|WANDER)_PAUSE_AT_WAYPOINTS|OPT_(AVATAR|CHARACTER|EXCLUSION_VOLUME|LEGACY_LINKSET|MATERIAL_VOLUME|OTHER|STATIC_OBSTACLE|WALKABLE)|SIM_STAT_PCT_CHARS_STEPPED)\\b"},{begin:"\\b(FALSE|TRUE)\\b"},{begin:"\\b(ZERO_ROTATION)\\b"},{begin:"\\b(EOF|JSON_(ARRAY|DELETE|FALSE|INVALID|NULL|NUMBER|OBJECT|STRING|TRUE)|NULL_KEY|TEXTURE_(BLANK|DEFAULT|MEDIA|PLYWOOD|TRANSPARENT)|URL_REQUEST_(GRANTED|DENIED))\\b"},{begin:"\\b(ZERO_VECTOR|TOUCH_INVALID_(TEXCOORD|VECTOR))\\b"}]},i={className:"built_in",begin:"\\b(ll(AgentInExperience|(Create|DataSize|Delete|KeyCount|Keys|Read|Update)KeyValue|GetExperience(Details|ErrorMessage)|ReturnObjectsBy(ID|Owner)|Json(2List|[GS]etValue|ValueType)|Sin|Cos|Tan|Atan2|Sqrt|Pow|Abs|Fabs|Frand|Floor|Ceil|Round|Vec(Mag|Norm|Dist)|Rot(Between|2(Euler|Fwd|Left|Up))|(Euler|Axes)2Rot|Whisper|(Region|Owner)?Say|Shout|Listen(Control|Remove)?|Sensor(Repeat|Remove)?|Detected(Name|Key|Owner|Type|Pos|Vel|Grab|Rot|Group|LinkNumber)|Die|Ground|Wind|([GS]et)(AnimationOverride|MemoryLimit|PrimMediaParams|ParcelMusicURL|Object(Desc|Name)|PhysicsMaterial|Status|Scale|Color|Alpha|Texture|Pos|Rot|Force|Torque)|ResetAnimationOverride|(Scale|Offset|Rotate)Texture|(Rot)?Target(Remove)?|(Stop)?MoveToTarget|Apply(Rotational)?Impulse|Set(KeyframedMotion|ContentType|RegionPos|(Angular)?Velocity|Buoyancy|HoverHeight|ForceAndTorque|TimerEvent|ScriptState|Damage|TextureAnim|Sound(Queueing|Radius)|Vehicle(Type|(Float|Vector|Rotation)Param)|(Touch|Sit)?Text|Camera(Eye|At)Offset|PrimitiveParams|ClickAction|Link(Alpha|Color|PrimitiveParams(Fast)?|Texture(Anim)?|Camera|Media)|RemoteScriptAccessPin|PayPrice|LocalRot)|ScaleByFactor|Get((Max|Min)ScaleFactor|ClosestNavPoint|StaticPath|SimStats|Env|PrimitiveParams|Link(PrimitiveParams|Number(OfSides)?|Key|Name|Media)|HTTPHeader|FreeURLs|Object(Details|PermMask|PrimCount)|Parcel(MaxPrims|Details|Prim(Count|Owners))|Attached(List)?|(SPMax|Free|Used)Memory|Region(Name|TimeDilation|FPS|Corner|AgentCount)|Root(Position|Rotation)|UnixTime|(Parcel|Region)Flags|(Wall|GMT)clock|SimulatorHostname|BoundingBox|GeometricCenter|Creator|NumberOf(Prims|NotecardLines|Sides)|Animation(List)?|(Camera|Local)(Pos|Rot)|Vel|Accel|Omega|Time(stamp|OfDay)|(Object|CenterOf)?Mass|MassMKS|Energy|Owner|(Owner)?Key|SunDirection|Texture(Offset|Scale|Rot)|Inventory(Number|Name|Key|Type|Creator|PermMask)|Permissions(Key)?|StartParameter|List(Length|EntryType)|Date|Agent(Size|Info|Language|List)|LandOwnerAt|NotecardLine|Script(Name|State))|(Get|Reset|GetAndReset)Time|PlaySound(Slave)?|LoopSound(Master|Slave)?|(Trigger|Stop|Preload)Sound|((Get|Delete)Sub|Insert)String|To(Upper|Lower)|Give(InventoryList|Money)|RezObject|(Stop)?LookAt|Sleep|CollisionFilter|(Take|Release)Controls|DetachFromAvatar|AttachToAvatar(Temp)?|InstantMessage|(GetNext)?Email|StopHover|MinEventDelay|RotLookAt|String(Length|Trim)|(Start|Stop)Animation|TargetOmega|Request(Experience)?Permissions|(Create|Break)Link|BreakAllLinks|(Give|Remove)Inventory|Water|PassTouches|Request(Agent|Inventory)Data|TeleportAgent(Home|GlobalCoords)?|ModifyLand|CollisionSound|ResetScript|MessageLinked|PushObject|PassCollisions|AxisAngle2Rot|Rot2(Axis|Angle)|A(cos|sin)|AngleBetween|AllowInventoryDrop|SubStringIndex|List2(CSV|Integer|Json|Float|String|Key|Vector|Rot|List(Strided)?)|DeleteSubList|List(Statistics|Sort|Randomize|(Insert|Find|Replace)List)|EdgeOfWorld|AdjustSoundVolume|Key2Name|TriggerSoundLimited|EjectFromLand|(CSV|ParseString)2List|OverMyLand|SameGroup|UnSit|Ground(Slope|Normal|Contour)|GroundRepel|(Set|Remove)VehicleFlags|SitOnLink|(AvatarOn)?(Link)?SitTarget|Script(Danger|Profiler)|Dialog|VolumeDetect|ResetOtherScript|RemoteLoadScriptPin|(Open|Close)RemoteDataChannel|SendRemoteData|RemoteDataReply|(Integer|String)ToBase64|XorBase64|Log(10)?|Base64To(String|Integer)|ParseStringKeepNulls|RezAtRoot|RequestSimulatorData|ForceMouselook|(Load|Release|(E|Une)scape)URL|ParcelMedia(CommandList|Query)|ModPow|MapDestination|(RemoveFrom|AddTo|Reset)Land(Pass|Ban)List|(Set|Clear)CameraParams|HTTP(Request|Response)|TextBox|DetectedTouch(UV|Face|Pos|(N|Bin)ormal|ST)|(MD5|SHA1|DumpList2)String|Request(Secure)?URL|Clear(Prim|Link)Media|(Link)?ParticleSystem|(Get|Request)(Username|DisplayName)|RegionSayTo|CastRay|GenerateKey|TransferLindenDollars|ManageEstateAccess|(Create|Delete)Character|ExecCharacterCmd|Evade|FleeFrom|NavigateTo|PatrolPoints|Pursue|UpdateCharacter|WanderWithin))\\b"};return{name:"LSL (Linden Scripting Language)",illegal:":",contains:[n,{className:"comment",variants:[e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/")],relevance:0},a,{className:"section",variants:[{begin:"\\b(state|default)\\b"},{begin:"\\b(state_(entry|exit)|touch(_(start|end))?|(land_)?collision(_(start|end))?|timer|listen|(no_)?sensor|control|(not_)?at_(rot_)?target|money|email|experience_permissions(_denied)?|run_time_permissions|changed|attach|dataserver|moving_(start|end)|link_message|(on|object)_rez|remote_data|http_re(sponse|quest)|path_update|transaction_result)\\b"}]},i,r,{className:"type",begin:"\\b(integer|float|string|key|vector|quaternion|rotation|list)\\b"}]}}var r_=a_;function i_(e){const t="\\[=*\\[",n="\\]=*\\]",a={begin:t,end:n,contains:["self"]},r=[e.COMMENT("--(?!"+t+")","$"),e.COMMENT("--"+t,n,{contains:[a],relevance:10})];return{name:"Lua",keywords:{$pattern:e.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:r.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[e.inherit(e.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:r}].concat(r)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:t,end:n,contains:[a],relevance:5}])}}var o_=i_;function s_(e){const t={className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%pn(n)).join("")}function qt(...e){return"("+e.map(n=>pn(n)).join("|")+")"}function __(e){const t=/([2-9]|[1-2]\d|[3][0-5])\^\^/,n=/(\w*\.\w+|\w+\.\w*|\w+)/,a=/(\d*\.\d+|\d+\.\d*|\d+)/,r=qt(He(t,n),a),o=qt(/``[+-]?(\d*\.\d+|\d+\.\d*|\d+)/,/`([+-]?(\d*\.\d+|\d+\.\d*|\d+))?/),l=/\*\^[+-]?\d+/,c=He(r,Vt(o),Vt(l)),_={className:"number",relevance:0,begin:c},u=/[a-zA-Z$][a-zA-Z0-9$]*/,m=new Set(c_),g={variants:[{className:"builtin-symbol",begin:u,"on:begin":(O,L)=>{m.has(O[0])||L.ignoreMatch()}},{className:"symbol",relevance:0,begin:u}]},E={className:"named-character",begin:/\\\[[$a-zA-Z][$a-zA-Z0-9]+\]/},S={className:"operator",relevance:0,begin:/[+\-*/,;.:@~=><&|_`'^?!%]+/},T={className:"pattern",relevance:0,begin:/([a-zA-Z$][a-zA-Z0-9$]*)?_+([a-zA-Z$][a-zA-Z0-9$]*)?/},C={className:"slot",relevance:0,begin:/#[a-zA-Z$][a-zA-Z0-9$]*|#+[0-9]?/},R={className:"brace",relevance:0,begin:/[[\](){}]/},f={className:"message-name",relevance:0,begin:He("::",u)};return{name:"Mathematica",aliases:["mma","wl"],classNameAliases:{brace:"punctuation",pattern:"type",slot:"type",symbol:"variable","named-character":"variable","builtin-symbol":"built_in","message-name":"string"},contains:[e.COMMENT(/\(\*/,/\*\)/,{contains:["self"]}),T,C,f,g,E,e.QUOTE_STRING_MODE,_,S,R]}}var d_=__;function u_(e){var t="('|\\.')+",n={relevance:0,contains:[{begin:t}]};return{name:"Matlab",keywords:{keyword:"arguments break case catch classdef continue else elseif end enumeration events for function global if methods otherwise parfor persistent properties return spmd switch try while",built_in:"sin sind sinh asin asind asinh cos cosd cosh acos acosd acosh tan tand tanh atan atand atan2 atanh sec secd sech asec asecd asech csc cscd csch acsc acscd acsch cot cotd coth acot acotd acoth hypot exp expm1 log log1p log10 log2 pow2 realpow reallog realsqrt sqrt nthroot nextpow2 abs angle complex conj imag real unwrap isreal cplxpair fix floor ceil round mod rem sign airy besselj bessely besselh besseli besselk beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma gammainc gammaln psi legendre cross dot factor isprime primes gcd lcm rat rats perms nchoosek factorial cart2sph cart2pol pol2cart sph2cart hsv2rgb rgb2hsv zeros ones eye repmat rand randn linspace logspace freqspace meshgrid accumarray size length ndims numel disp isempty isequal isequalwithequalnans cat reshape diag blkdiag tril triu fliplr flipud flipdim rot90 find sub2ind ind2sub bsxfun ndgrid permute ipermute shiftdim circshift squeeze isscalar isvector ans eps realmax realmin pi i|0 inf nan isnan isinf isfinite j|0 why compan gallery hadamard hankel hilb invhilb magic pascal rosser toeplitz vander wilkinson max min nanmax nanmin mean nanmean type table readtable writetable sortrows sort figure plot plot3 scatter scatter3 cellfun legend intersect ismember procrustes hold num2cell "},illegal:'(//|"|#|/\\*|\\s+/\\w+)',contains:[{className:"function",beginKeywords:"function",end:"$",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",variants:[{begin:"\\(",end:"\\)"},{begin:"\\[",end:"\\]"}]}]},{className:"built_in",begin:/true|false/,relevance:0,starts:n},{begin:"[a-zA-Z][a-zA-Z_0-9]*"+t,relevance:0},{className:"number",begin:e.C_NUMBER_RE,relevance:0,starts:n},{className:"string",begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE,{begin:"''"}]},{begin:/\]|\}|\)/,relevance:0,starts:n},{className:"string",begin:'"',end:'"',contains:[e.BACKSLASH_ESCAPE,{begin:'""'}],starts:n},e.COMMENT("^\\s*%\\{\\s*$","^\\s*%\\}\\s*$"),e.COMMENT("%","$")]}}var m_=u_;function E_(e){return{name:"Maxima",keywords:{$pattern:"[A-Za-z_%][0-9A-Za-z_%]*",keyword:"if then else elseif for thru do while unless step in and or not",literal:"true false unknown inf minf ind und %e %i %pi %phi %gamma",built_in:" abasep abs absint absolute_real_time acos acosh acot acoth acsc acsch activate addcol add_edge add_edges addmatrices addrow add_vertex add_vertices adjacency_matrix adjoin adjoint af agd airy airy_ai airy_bi airy_dai airy_dbi algsys alg_type alias allroots alphacharp alphanumericp amortization %and annuity_fv annuity_pv antid antidiff AntiDifference append appendfile apply apply1 apply2 applyb1 apropos args arit_amortization arithmetic arithsum array arrayapply arrayinfo arraymake arraysetapply ascii asec asech asin asinh askinteger asksign assoc assoc_legendre_p assoc_legendre_q assume assume_external_byte_order asympa at atan atan2 atanh atensimp atom atvalue augcoefmatrix augmented_lagrangian_method av average_degree backtrace bars barsplot barsplot_description base64 base64_decode bashindices batch batchload bc2 bdvac belln benefit_cost bern bernpoly bernstein_approx bernstein_expand bernstein_poly bessel bessel_i bessel_j bessel_k bessel_simplify bessel_y beta beta_incomplete beta_incomplete_generalized beta_incomplete_regularized bezout bfallroots bffac bf_find_root bf_fmin_cobyla bfhzeta bfloat bfloatp bfpsi bfpsi0 bfzeta biconnected_components bimetric binomial bipartition block blockmatrixp bode_gain bode_phase bothcoef box boxplot boxplot_description break bug_report build_info|10 buildq build_sample burn cabs canform canten cardinality carg cartan cartesian_product catch cauchy_matrix cbffac cdf_bernoulli cdf_beta cdf_binomial cdf_cauchy cdf_chi2 cdf_continuous_uniform cdf_discrete_uniform cdf_exp cdf_f cdf_gamma cdf_general_finite_discrete cdf_geometric cdf_gumbel cdf_hypergeometric cdf_laplace cdf_logistic cdf_lognormal cdf_negative_binomial cdf_noncentral_chi2 cdf_noncentral_student_t cdf_normal cdf_pareto cdf_poisson cdf_rank_sum cdf_rayleigh cdf_signed_rank cdf_student_t cdf_weibull cdisplay ceiling central_moment cequal cequalignore cf cfdisrep cfexpand cgeodesic cgreaterp cgreaterpignore changename changevar chaosgame charat charfun charfun2 charlist charp charpoly chdir chebyshev_t chebyshev_u checkdiv check_overlaps chinese cholesky christof chromatic_index chromatic_number cint circulant_graph clear_edge_weight clear_rules clear_vertex_label clebsch_gordan clebsch_graph clessp clesspignore close closefile cmetric coeff coefmatrix cograd col collapse collectterms columnop columnspace columnswap columnvector combination combine comp2pui compare compfile compile compile_file complement_graph complete_bipartite_graph complete_graph complex_number_p components compose_functions concan concat conjugate conmetderiv connected_components connect_vertices cons constant constantp constituent constvalue cont2part content continuous_freq contortion contour_plot contract contract_edge contragrad contrib_ode convert coord copy copy_file copy_graph copylist copymatrix cor cos cosh cot coth cov cov1 covdiff covect covers crc24sum create_graph create_list csc csch csetup cspline ctaylor ct_coordsys ctransform ctranspose cube_graph cuboctahedron_graph cunlisp cv cycle_digraph cycle_graph cylindrical days360 dblint deactivate declare declare_constvalue declare_dimensions declare_fundamental_dimensions declare_fundamental_units declare_qty declare_translated declare_unit_conversion declare_units declare_weights decsym defcon define define_alt_display define_variable defint defmatch defrule defstruct deftaylor degree_sequence del delete deleten delta demo demoivre denom depends derivdegree derivlist describe desolve determinant dfloat dgauss_a dgauss_b dgeev dgemm dgeqrf dgesv dgesvd diag diagmatrix diag_matrix diagmatrixp diameter diff digitcharp dimacs_export dimacs_import dimension dimensionless dimensions dimensions_as_list direct directory discrete_freq disjoin disjointp disolate disp dispcon dispform dispfun dispJordan display disprule dispterms distrib divide divisors divsum dkummer_m dkummer_u dlange dodecahedron_graph dotproduct dotsimp dpart draw draw2d draw3d drawdf draw_file draw_graph dscalar echelon edge_coloring edge_connectivity edges eigens_by_jacobi eigenvalues eigenvectors eighth einstein eivals eivects elapsed_real_time elapsed_run_time ele2comp ele2polynome ele2pui elem elementp elevation_grid elim elim_allbut eliminate eliminate_using ellipse elliptic_e elliptic_ec elliptic_eu elliptic_f elliptic_kc elliptic_pi ematrix empty_graph emptyp endcons entermatrix entertensor entier equal equalp equiv_classes erf erfc erf_generalized erfi errcatch error errormsg errors euler ev eval_string evenp every evolution evolution2d evundiff example exp expand expandwrt expandwrt_factored expint expintegral_chi expintegral_ci expintegral_e expintegral_e1 expintegral_ei expintegral_e_simplify expintegral_li expintegral_shi expintegral_si explicit explose exponentialize express expt exsec extdiff extract_linear_equations extremal_subset ezgcd %f f90 facsum factcomb factor factorfacsum factorial factorout factorsum facts fast_central_elements fast_linsolve fasttimes featurep fernfale fft fib fibtophi fifth filename_merge file_search file_type fillarray findde find_root find_root_abs find_root_error find_root_rel first fix flatten flength float floatnump floor flower_snark flush flush1deriv flushd flushnd flush_output fmin_cobyla forget fortran fourcos fourexpand fourier fourier_elim fourint fourintcos fourintsin foursimp foursin fourth fposition frame_bracket freeof freshline fresnel_c fresnel_s from_adjacency_matrix frucht_graph full_listify fullmap fullmapl fullratsimp fullratsubst fullsetify funcsolve fundamental_dimensions fundamental_units fundef funmake funp fv g0 g1 gamma gamma_greek gamma_incomplete gamma_incomplete_generalized gamma_incomplete_regularized gauss gauss_a gauss_b gaussprob gcd gcdex gcdivide gcfac gcfactor gd generalized_lambert_w genfact gen_laguerre genmatrix gensym geo_amortization geo_annuity_fv geo_annuity_pv geomap geometric geometric_mean geosum get getcurrentdirectory get_edge_weight getenv get_lu_factors get_output_stream_string get_pixel get_plot_option get_tex_environment get_tex_environment_default get_vertex_label gfactor gfactorsum ggf girth global_variances gn gnuplot_close gnuplot_replot gnuplot_reset gnuplot_restart gnuplot_start go Gosper GosperSum gr2d gr3d gradef gramschmidt graph6_decode graph6_encode graph6_export graph6_import graph_center graph_charpoly graph_eigenvalues graph_flow graph_order graph_periphery graph_product graph_size graph_union great_rhombicosidodecahedron_graph great_rhombicuboctahedron_graph grid_graph grind grobner_basis grotzch_graph hamilton_cycle hamilton_path hankel hankel_1 hankel_2 harmonic harmonic_mean hav heawood_graph hermite hessian hgfred hilbertmap hilbert_matrix hipow histogram histogram_description hodge horner hypergeometric i0 i1 %ibes ic1 ic2 ic_convert ichr1 ichr2 icosahedron_graph icosidodecahedron_graph icurvature ident identfor identity idiff idim idummy ieqn %if ifactors iframes ifs igcdex igeodesic_coords ilt image imagpart imetric implicit implicit_derivative implicit_plot indexed_tensor indices induced_subgraph inferencep inference_result infix info_display init_atensor init_ctensor in_neighbors innerproduct inpart inprod inrt integerp integer_partitions integrate intersect intersection intervalp intopois intosum invariant1 invariant2 inverse_fft inverse_jacobi_cd inverse_jacobi_cn inverse_jacobi_cs inverse_jacobi_dc inverse_jacobi_dn inverse_jacobi_ds inverse_jacobi_nc inverse_jacobi_nd inverse_jacobi_ns inverse_jacobi_sc inverse_jacobi_sd inverse_jacobi_sn invert invert_by_adjoint invert_by_lu inv_mod irr is is_biconnected is_bipartite is_connected is_digraph is_edge_in_graph is_graph is_graph_or_digraph ishow is_isomorphic isolate isomorphism is_planar isqrt isreal_p is_sconnected is_tree is_vertex_in_graph items_inference %j j0 j1 jacobi jacobian jacobi_cd jacobi_cn jacobi_cs jacobi_dc jacobi_dn jacobi_ds jacobi_nc jacobi_nd jacobi_ns jacobi_p jacobi_sc jacobi_sd jacobi_sn JF jn join jordan julia julia_set julia_sin %k kdels kdelta kill killcontext kostka kron_delta kronecker_product kummer_m kummer_u kurtosis kurtosis_bernoulli kurtosis_beta kurtosis_binomial kurtosis_chi2 kurtosis_continuous_uniform kurtosis_discrete_uniform kurtosis_exp kurtosis_f kurtosis_gamma kurtosis_general_finite_discrete kurtosis_geometric kurtosis_gumbel kurtosis_hypergeometric kurtosis_laplace kurtosis_logistic kurtosis_lognormal kurtosis_negative_binomial kurtosis_noncentral_chi2 kurtosis_noncentral_student_t kurtosis_normal kurtosis_pareto kurtosis_poisson kurtosis_rayleigh kurtosis_student_t kurtosis_weibull label labels lagrange laguerre lambda lambert_w laplace laplacian_matrix last lbfgs lc2kdt lcharp lc_l lcm lc_u ldefint ldisp ldisplay legendre_p legendre_q leinstein length let letrules letsimp levi_civita lfreeof lgtreillis lhs li liediff limit Lindstedt linear linearinterpol linear_program linear_regression line_graph linsolve listarray list_correlations listify list_matrix_entries list_nc_monomials listoftens listofvars listp lmax lmin load loadfile local locate_matrix_entry log logcontract log_gamma lopow lorentz_gauge lowercasep lpart lratsubst lreduce lriemann lsquares_estimates lsquares_estimates_approximate lsquares_estimates_exact lsquares_mse lsquares_residual_mse lsquares_residuals lsum ltreillis lu_backsub lucas lu_factor %m macroexpand macroexpand1 make_array makebox makefact makegamma make_graph make_level_picture makelist makeOrders make_poly_continent make_poly_country make_polygon make_random_state make_rgb_picture makeset make_string_input_stream make_string_output_stream make_transform mandelbrot mandelbrot_set map mapatom maplist matchdeclare matchfix mat_cond mat_fullunblocker mat_function mathml_display mat_norm matrix matrixmap matrixp matrix_size mattrace mat_trace mat_unblocker max max_clique max_degree max_flow maximize_lp max_independent_set max_matching maybe md5sum mean mean_bernoulli mean_beta mean_binomial mean_chi2 mean_continuous_uniform mean_deviation mean_discrete_uniform mean_exp mean_f mean_gamma mean_general_finite_discrete mean_geometric mean_gumbel mean_hypergeometric mean_laplace mean_logistic mean_lognormal mean_negative_binomial mean_noncentral_chi2 mean_noncentral_student_t mean_normal mean_pareto mean_poisson mean_rayleigh mean_student_t mean_weibull median median_deviation member mesh metricexpandall mgf1_sha1 min min_degree min_edge_cut minfactorial minimalPoly minimize_lp minimum_spanning_tree minor minpack_lsquares minpack_solve min_vertex_cover min_vertex_cut mkdir mnewton mod mode_declare mode_identity ModeMatrix moebius mon2schur mono monomial_dimensions multibernstein_poly multi_display_for_texinfo multi_elem multinomial multinomial_coeff multi_orbit multiplot_mode multi_pui multsym multthru mycielski_graph nary natural_unit nc_degree ncexpt ncharpoly negative_picture neighbors new newcontext newdet new_graph newline newton new_variable next_prime nicedummies niceindices ninth nofix nonarray noncentral_moment nonmetricity nonnegintegerp nonscalarp nonzeroandfreeof notequal nounify nptetrad npv nroots nterms ntermst nthroot nullity nullspace num numbered_boundaries numberp number_to_octets num_distinct_partitions numerval numfactor num_partitions nusum nzeta nzetai nzetar octets_to_number octets_to_oid odd_girth oddp ode2 ode_check odelin oid_to_octets op opena opena_binary openr openr_binary openw openw_binary operatorp opsubst optimize %or orbit orbits ordergreat ordergreatp orderless orderlessp orthogonal_complement orthopoly_recur orthopoly_weight outermap out_neighbors outofpois pade parabolic_cylinder_d parametric parametric_surface parg parGosper parse_string parse_timedate part part2cont partfrac partition partition_set partpol path_digraph path_graph pathname_directory pathname_name pathname_type pdf_bernoulli pdf_beta pdf_binomial pdf_cauchy pdf_chi2 pdf_continuous_uniform pdf_discrete_uniform pdf_exp pdf_f pdf_gamma pdf_general_finite_discrete pdf_geometric pdf_gumbel pdf_hypergeometric pdf_laplace pdf_logistic pdf_lognormal pdf_negative_binomial pdf_noncentral_chi2 pdf_noncentral_student_t pdf_normal pdf_pareto pdf_poisson pdf_rank_sum pdf_rayleigh pdf_signed_rank pdf_student_t pdf_weibull pearson_skewness permanent permut permutation permutations petersen_graph petrov pickapart picture_equalp picturep piechart piechart_description planar_embedding playback plog plot2d plot3d plotdf ploteq plsquares pochhammer points poisdiff poisexpt poisint poismap poisplus poissimp poissubst poistimes poistrim polar polarform polartorect polar_to_xy poly_add poly_buchberger poly_buchberger_criterion poly_colon_ideal poly_content polydecomp poly_depends_p poly_elimination_ideal poly_exact_divide poly_expand poly_expt poly_gcd polygon poly_grobner poly_grobner_equal poly_grobner_member poly_grobner_subsetp poly_ideal_intersection poly_ideal_polysaturation poly_ideal_polysaturation1 poly_ideal_saturation poly_ideal_saturation1 poly_lcm poly_minimization polymod poly_multiply polynome2ele polynomialp poly_normal_form poly_normalize poly_normalize_list poly_polysaturation_extension poly_primitive_part poly_pseudo_divide poly_reduced_grobner poly_reduction poly_saturation_extension poly_s_polynomial poly_subtract polytocompanion pop postfix potential power_mod powerseries powerset prefix prev_prime primep primes principal_components print printf printfile print_graph printpois printprops prodrac product properties propvars psi psubst ptriangularize pui pui2comp pui2ele pui2polynome pui_direct puireduc push put pv qput qrange qty quad_control quad_qag quad_qagi quad_qagp quad_qags quad_qawc quad_qawf quad_qawo quad_qaws quadrilateral quantile quantile_bernoulli quantile_beta quantile_binomial quantile_cauchy quantile_chi2 quantile_continuous_uniform quantile_discrete_uniform quantile_exp quantile_f quantile_gamma quantile_general_finite_discrete quantile_geometric quantile_gumbel quantile_hypergeometric quantile_laplace quantile_logistic quantile_lognormal quantile_negative_binomial quantile_noncentral_chi2 quantile_noncentral_student_t quantile_normal quantile_pareto quantile_poisson quantile_rayleigh quantile_student_t quantile_weibull quartile_skewness quit qunit quotient racah_v racah_w radcan radius random random_bernoulli random_beta random_binomial random_bipartite_graph random_cauchy random_chi2 random_continuous_uniform random_digraph random_discrete_uniform random_exp random_f random_gamma random_general_finite_discrete random_geometric random_graph random_graph1 random_gumbel random_hypergeometric random_laplace random_logistic random_lognormal random_negative_binomial random_network random_noncentral_chi2 random_noncentral_student_t random_normal random_pareto random_permutation random_poisson random_rayleigh random_regular_graph random_student_t random_tournament random_tree random_weibull range rank rat ratcoef ratdenom ratdiff ratdisrep ratexpand ratinterpol rational rationalize ratnumer ratnump ratp ratsimp ratsubst ratvars ratweight read read_array read_binary_array read_binary_list read_binary_matrix readbyte readchar read_hashed_array readline read_list read_matrix read_nested_list readonly read_xpm real_imagpart_to_conjugate realpart realroots rearray rectangle rectform rectform_log_if_constant recttopolar rediff reduce_consts reduce_order region region_boundaries region_boundaries_plus rem remainder remarray rembox remcomps remcon remcoord remfun remfunction remlet remove remove_constvalue remove_dimensions remove_edge remove_fundamental_dimensions remove_fundamental_units remove_plot_option remove_vertex rempart remrule remsym remvalue rename rename_file reset reset_displays residue resolvante resolvante_alternee1 resolvante_bipartite resolvante_diedrale resolvante_klein resolvante_klein3 resolvante_produit_sym resolvante_unitaire resolvante_vierer rest resultant return reveal reverse revert revert2 rgb2level rhs ricci riemann rinvariant risch rk rmdir rncombine romberg room rootscontract round row rowop rowswap rreduce run_testsuite %s save saving scalarp scaled_bessel_i scaled_bessel_i0 scaled_bessel_i1 scalefactors scanmap scatterplot scatterplot_description scene schur2comp sconcat scopy scsimp scurvature sdowncase sec sech second sequal sequalignore set_alt_display setdifference set_draw_defaults set_edge_weight setelmx setequalp setify setp set_partitions set_plot_option set_prompt set_random_state set_tex_environment set_tex_environment_default setunits setup_autoload set_up_dot_simplifications set_vertex_label seventh sexplode sf sha1sum sha256sum shortest_path shortest_weighted_path show showcomps showratvars sierpinskiale sierpinskimap sign signum similaritytransform simp_inequality simplify_sum simplode simpmetderiv simtran sin sinh sinsert sinvertcase sixth skewness skewness_bernoulli skewness_beta skewness_binomial skewness_chi2 skewness_continuous_uniform skewness_discrete_uniform skewness_exp skewness_f skewness_gamma skewness_general_finite_discrete skewness_geometric skewness_gumbel skewness_hypergeometric skewness_laplace skewness_logistic skewness_lognormal skewness_negative_binomial skewness_noncentral_chi2 skewness_noncentral_student_t skewness_normal skewness_pareto skewness_poisson skewness_rayleigh skewness_student_t skewness_weibull slength smake small_rhombicosidodecahedron_graph small_rhombicuboctahedron_graph smax smin smismatch snowmap snub_cube_graph snub_dodecahedron_graph solve solve_rec solve_rec_rat some somrac sort sparse6_decode sparse6_encode sparse6_export sparse6_import specint spherical spherical_bessel_j spherical_bessel_y spherical_hankel1 spherical_hankel2 spherical_harmonic spherical_to_xyz splice split sposition sprint sqfr sqrt sqrtdenest sremove sremovefirst sreverse ssearch ssort sstatus ssubst ssubstfirst staircase standardize standardize_inverse_trig starplot starplot_description status std std1 std_bernoulli std_beta std_binomial std_chi2 std_continuous_uniform std_discrete_uniform std_exp std_f std_gamma std_general_finite_discrete std_geometric std_gumbel std_hypergeometric std_laplace std_logistic std_lognormal std_negative_binomial std_noncentral_chi2 std_noncentral_student_t std_normal std_pareto std_poisson std_rayleigh std_student_t std_weibull stemplot stirling stirling1 stirling2 strim striml strimr string stringout stringp strong_components struve_h struve_l sublis sublist sublist_indices submatrix subsample subset subsetp subst substinpart subst_parallel substpart substring subvar subvarp sum sumcontract summand_to_rec supcase supcontext symbolp symmdifference symmetricp system take_channel take_inference tan tanh taylor taylorinfo taylorp taylor_simplifier taytorat tcl_output tcontract tellrat tellsimp tellsimpafter tentex tenth test_mean test_means_difference test_normality test_proportion test_proportions_difference test_rank_sum test_sign test_signed_rank test_variance test_variance_ratio tex tex1 tex_display texput %th third throw time timedate timer timer_info tldefint tlimit todd_coxeter toeplitz tokens to_lisp topological_sort to_poly to_poly_solve totaldisrep totalfourier totient tpartpol trace tracematrix trace_options transform_sample translate translate_file transpose treefale tree_reduce treillis treinat triangle triangularize trigexpand trigrat trigreduce trigsimp trunc truncate truncated_cube_graph truncated_dodecahedron_graph truncated_icosahedron_graph truncated_tetrahedron_graph tr_warnings_get tube tutte_graph ueivects uforget ultraspherical underlying_graph undiff union unique uniteigenvectors unitp units unit_step unitvector unorder unsum untellrat untimer untrace uppercasep uricci uriemann uvect vandermonde_matrix var var1 var_bernoulli var_beta var_binomial var_chi2 var_continuous_uniform var_discrete_uniform var_exp var_f var_gamma var_general_finite_discrete var_geometric var_gumbel var_hypergeometric var_laplace var_logistic var_lognormal var_negative_binomial var_noncentral_chi2 var_noncentral_student_t var_normal var_pareto var_poisson var_rayleigh var_student_t var_weibull vector vectorpotential vectorsimp verbify vers vertex_coloring vertex_connectivity vertex_degree vertex_distance vertex_eccentricity vertex_in_degree vertex_out_degree vertices vertices_to_cycle vertices_to_path %w weyl wheel_graph wiener_index wigner_3j wigner_6j wigner_9j with_stdout write_binary_data writebyte write_data writefile wronskian xreduce xthru %y Zeilberger zeroequiv zerofor zeromatrix zeromatrixp zeta zgeev zheev zlange zn_add_table zn_carmichael_lambda zn_characteristic_factors zn_determinant zn_factor_generators zn_invert_by_lu zn_log zn_mult_table absboxchar activecontexts adapt_depth additive adim aform algebraic algepsilon algexact aliases allbut all_dotsimp_denoms allocation allsym alphabetic animation antisymmetric arrays askexp assume_pos assume_pos_pred assumescalar asymbol atomgrad atrig1 axes axis_3d axis_bottom axis_left axis_right axis_top azimuth background background_color backsubst berlefact bernstein_explicit besselexpand beta_args_sum_to_integer beta_expand bftorat bftrunc bindtest border boundaries_array box boxchar breakup %c capping cauchysum cbrange cbtics center cflength cframe_flag cnonmet_flag color color_bar color_bar_tics colorbox columns commutative complex cone context contexts contour contour_levels cosnpiflag ctaypov ctaypt ctayswitch ctayvar ct_coords ctorsion_flag ctrgsimp cube current_let_rule_package cylinder data_file_name debugmode decreasing default_let_rule_package delay dependencies derivabbrev derivsubst detout diagmetric diff dim dimensions dispflag display2d|10 display_format_internal distribute_over doallmxops domain domxexpt domxmxops domxnctimes dontfactor doscmxops doscmxplus dot0nscsimp dot0simp dot1simp dotassoc dotconstrules dotdistrib dotexptsimp dotident dotscrules draw_graph_program draw_realpart edge_color edge_coloring edge_partition edge_type edge_width %edispflag elevation %emode endphi endtheta engineering_format_floats enhanced3d %enumer epsilon_lp erfflag erf_representation errormsg error_size error_syms error_type %e_to_numlog eval even evenfun evflag evfun ev_point expandwrt_denom expintexpand expintrep expon expop exptdispflag exptisolate exptsubst facexpand facsum_combine factlim factorflag factorial_expand factors_only fb feature features file_name file_output_append file_search_demo file_search_lisp file_search_maxima|10 file_search_tests file_search_usage file_type_lisp file_type_maxima|10 fill_color fill_density filled_func fixed_vertices flipflag float2bf font font_size fortindent fortspaces fpprec fpprintprec functions gamma_expand gammalim gdet genindex gensumnum GGFCFMAX GGFINFINITY globalsolve gnuplot_command gnuplot_curve_styles gnuplot_curve_titles gnuplot_default_term_command gnuplot_dumb_term_command gnuplot_file_args gnuplot_file_name gnuplot_out_file gnuplot_pdf_term_command gnuplot_pm3d gnuplot_png_term_command gnuplot_postamble gnuplot_preamble gnuplot_ps_term_command gnuplot_svg_term_command gnuplot_term gnuplot_view_args Gosper_in_Zeilberger gradefs grid grid2d grind halfangles head_angle head_both head_length head_type height hypergeometric_representation %iargs ibase icc1 icc2 icounter idummyx ieqnprint ifb ifc1 ifc2 ifg ifgi ifr iframe_bracket_form ifri igeowedge_flag ikt1 ikt2 imaginary inchar increasing infeval infinity inflag infolists inm inmc1 inmc2 intanalysis integer integervalued integrate_use_rootsof integration_constant integration_constant_counter interpolate_color intfaclim ip_grid ip_grid_in irrational isolate_wrt_times iterations itr julia_parameter %k1 %k2 keepfloat key key_pos kinvariant kt label label_alignment label_orientation labels lassociative lbfgs_ncorrections lbfgs_nfeval_max leftjust legend letrat let_rule_packages lfg lg lhospitallim limsubst linear linear_solver linechar linel|10 linenum line_type linewidth line_width linsolve_params linsolvewarn lispdisp listarith listconstvars listdummyvars lmxchar load_pathname loadprint logabs logarc logcb logconcoeffp logexpand lognegint logsimp logx logx_secondary logy logy_secondary logz lriem m1pbranch macroexpansion macros mainvar manual_demo maperror mapprint matrix_element_add matrix_element_mult matrix_element_transpose maxapplydepth maxapplyheight maxima_tempdir|10 maxima_userdir|10 maxnegex MAX_ORD maxposex maxpsifracdenom maxpsifracnum maxpsinegint maxpsiposint maxtayorder mesh_lines_color method mod_big_prime mode_check_errorp mode_checkp mode_check_warnp mod_test mod_threshold modular_linear_solver modulus multiplicative multiplicities myoptions nary negdistrib negsumdispflag newline newtonepsilon newtonmaxiter nextlayerfactor niceindicespref nm nmc noeval nolabels nonegative_lp noninteger nonscalar noun noundisp nouns np npi nticks ntrig numer numer_pbranch obase odd oddfun opacity opproperties opsubst optimprefix optionset orientation origin orthopoly_returns_intervals outative outchar packagefile palette partswitch pdf_file pfeformat phiresolution %piargs piece pivot_count_sx pivot_max_sx plot_format plot_options plot_realpart png_file pochhammer_max_index points pointsize point_size points_joined point_type poislim poisson poly_coefficient_ring poly_elimination_order polyfactor poly_grobner_algorithm poly_grobner_debug poly_monomial_order poly_primary_elimination_order poly_return_term_list poly_secondary_elimination_order poly_top_reduction_only posfun position powerdisp pred prederror primep_number_of_tests product_use_gamma program programmode promote_float_to_bigfloat prompt proportional_axes props psexpand ps_file radexpand radius radsubstflag rassociative ratalgdenom ratchristof ratdenomdivide rateinstein ratepsilon ratfac rational ratmx ratprint ratriemann ratsimpexpons ratvarswitch ratweights ratweyl ratwtlvl real realonly redraw refcheck resolution restart resultant ric riem rmxchar %rnum_list rombergabs rombergit rombergmin rombergtol rootsconmode rootsepsilon run_viewer same_xy same_xyz savedef savefactors scalar scalarmatrixp scale scale_lp setcheck setcheckbreak setval show_edge_color show_edges show_edge_type show_edge_width show_id show_label showtime show_vertex_color show_vertex_size show_vertex_type show_vertices show_weight simp simplified_output simplify_products simpproduct simpsum sinnpiflag solvedecomposes solveexplicit solvefactors solvenullwarn solveradcan solvetrigwarn space sparse sphere spring_embedding_depth sqrtdispflag stardisp startphi starttheta stats_numer stringdisp structures style sublis_apply_lambda subnumsimp sumexpand sumsplitfact surface surface_hide svg_file symmetric tab taylordepth taylor_logexpand taylor_order_coefficients taylor_truncate_polynomials tensorkill terminal testsuite_files thetaresolution timer_devalue title tlimswitch tr track transcompile transform transform_xy translate_fast_arrays transparent transrun tr_array_as_ref tr_bound_function_applyp tr_file_tty_messagesp tr_float_can_branch_complex tr_function_call_default trigexpandplus trigexpandtimes triginverses trigsign trivial_solutions tr_numer tr_optimize_max_loop tr_semicompile tr_state_vars tr_warn_bad_function_calls tr_warn_fexpr tr_warn_meval tr_warn_mode tr_warn_undeclared tr_warn_undefined_variable tstep ttyoff tube_extremes ufg ug %unitexpand unit_vectors uric uriem use_fast_arrays user_preamble usersetunits values vect_cross verbose vertex_color vertex_coloring vertex_partition vertex_size vertex_type view warnings weyl width windowname windowtitle wired_surface wireframe xaxis xaxis_color xaxis_secondary xaxis_type xaxis_width xlabel xlabel_secondary xlength xrange xrange_secondary xtics xtics_axis xtics_rotate xtics_rotate_secondary xtics_secondary xtics_secondary_axis xu_grid x_voxel xy_file xyplane xy_scale yaxis yaxis_color yaxis_secondary yaxis_type yaxis_width ylabel ylabel_secondary ylength yrange yrange_secondary ytics ytics_axis ytics_rotate ytics_rotate_secondary ytics_secondary ytics_secondary_axis yv_grid y_voxel yx_ratio zaxis zaxis_color zaxis_type zaxis_width zeroa zerob zerobern zeta%pi zlabel zlabel_rotate zlength zmin zn_primroot_limit zn_primroot_pretest",symbol:"_ __ %|0 %%|0"},contains:[{className:"comment",begin:"/\\*",end:"\\*/",contains:["self"]},e.QUOTE_STRING_MODE,{className:"number",relevance:0,variants:[{begin:"\\b(\\d+|\\d+\\.|\\.\\d+|\\d+\\.\\d+)[Ee][-+]?\\d+\\b"},{begin:"\\b(\\d+|\\d+\\.|\\.\\d+|\\d+\\.\\d+)[Bb][-+]?\\d+\\b",relevance:10},{begin:"\\b(\\.\\d+|\\d+\\.\\d+)\\b"},{begin:"\\b(\\d+|0[0-9A-Za-z]+)\\.?\\b"}]}],illegal:/@/}}var p_=E_;function g_(e){return{name:"MEL",keywords:"int float string vector matrix if else switch case default while do for in break continue global proc return about abs addAttr addAttributeEditorNodeHelp addDynamic addNewShelfTab addPP addPanelCategory addPrefixToName advanceToNextDrivenKey affectedNet affects aimConstraint air alias aliasAttr align alignCtx alignCurve alignSurface allViewFit ambientLight angle angleBetween animCone animCurveEditor animDisplay animView annotate appendStringArray applicationName applyAttrPreset applyTake arcLenDimContext arcLengthDimension arclen arrayMapper art3dPaintCtx artAttrCtx artAttrPaintVertexCtx artAttrSkinPaintCtx artAttrTool artBuildPaintMenu artFluidAttrCtx artPuttyCtx artSelectCtx artSetPaintCtx artUserPaintCtx assignCommand assignInputDevice assignViewportFactories attachCurve attachDeviceAttr attachSurface attrColorSliderGrp attrCompatibility attrControlGrp attrEnumOptionMenu attrEnumOptionMenuGrp attrFieldGrp attrFieldSliderGrp attrNavigationControlGrp attrPresetEditWin attributeExists attributeInfo attributeMenu attributeQuery autoKeyframe autoPlace bakeClip bakeFluidShading bakePartialHistory bakeResults bakeSimulation basename basenameEx batchRender bessel bevel bevelPlus binMembership bindSkin blend2 blendShape blendShapeEditor blendShapePanel blendTwoAttr blindDataType boneLattice boundary boxDollyCtx boxZoomCtx bufferCurve buildBookmarkMenu buildKeyframeMenu button buttonManip CBG cacheFile cacheFileCombine cacheFileMerge cacheFileTrack camera cameraView canCreateManip canvas capitalizeString catch catchQuiet ceil changeSubdivComponentDisplayLevel changeSubdivRegion channelBox character characterMap characterOutlineEditor characterize chdir checkBox checkBoxGrp checkDefaultRenderGlobals choice circle circularFillet clamp clear clearCache clip clipEditor clipEditorCurrentTimeCtx clipSchedule clipSchedulerOutliner clipTrimBefore closeCurve closeSurface cluster cmdFileOutput cmdScrollFieldExecuter cmdScrollFieldReporter cmdShell coarsenSubdivSelectionList collision color colorAtPoint colorEditor colorIndex colorIndexSliderGrp colorSliderButtonGrp colorSliderGrp columnLayout commandEcho commandLine commandPort compactHairSystem componentEditor compositingInterop computePolysetVolume condition cone confirmDialog connectAttr connectControl connectDynamic connectJoint connectionInfo constrain constrainValue constructionHistory container containsMultibyte contextInfo control convertFromOldLayers convertIffToPsd convertLightmap convertSolidTx convertTessellation convertUnit copyArray copyFlexor copyKey copySkinWeights cos cpButton cpCache cpClothSet cpCollision cpConstraint cpConvClothToMesh cpForces cpGetSolverAttr cpPanel cpProperty cpRigidCollisionFilter cpSeam cpSetEdit cpSetSolverAttr cpSolver cpSolverTypes cpTool cpUpdateClothUVs createDisplayLayer createDrawCtx createEditor createLayeredPsdFile createMotionField createNewShelf createNode createRenderLayer createSubdivRegion cross crossProduct ctxAbort ctxCompletion ctxEditMode ctxTraverse currentCtx currentTime currentTimeCtx currentUnit curve curveAddPtCtx curveCVCtx curveEPCtx curveEditorCtx curveIntersect curveMoveEPCtx curveOnSurface curveSketchCtx cutKey cycleCheck cylinder dagPose date defaultLightListCheckBox defaultNavigation defineDataServer defineVirtualDevice deformer deg_to_rad delete deleteAttr deleteShadingGroupsAndMaterials deleteShelfTab deleteUI deleteUnusedBrushes delrandstr detachCurve detachDeviceAttr detachSurface deviceEditor devicePanel dgInfo dgdirty dgeval dgtimer dimWhen directKeyCtx directionalLight dirmap dirname disable disconnectAttr disconnectJoint diskCache displacementToPoly displayAffected displayColor displayCull displayLevelOfDetail displayPref displayRGBColor displaySmoothness displayStats displayString displaySurface distanceDimContext distanceDimension doBlur dolly dollyCtx dopeSheetEditor dot dotProduct doubleProfileBirailSurface drag dragAttrContext draggerContext dropoffLocator duplicate duplicateCurve duplicateSurface dynCache dynControl dynExport dynExpression dynGlobals dynPaintEditor dynParticleCtx dynPref dynRelEdPanel dynRelEditor dynamicLoad editAttrLimits editDisplayLayerGlobals editDisplayLayerMembers editRenderLayerAdjustment editRenderLayerGlobals editRenderLayerMembers editor editorTemplate effector emit emitter enableDevice encodeString endString endsWith env equivalent equivalentTol erf error eval evalDeferred evalEcho event exactWorldBoundingBox exclusiveLightCheckBox exec executeForEachObject exists exp expression expressionEditorListen extendCurve extendSurface extrude fcheck fclose feof fflush fgetline fgetword file fileBrowserDialog fileDialog fileExtension fileInfo filetest filletCurve filter filterCurve filterExpand filterStudioImport findAllIntersections findAnimCurves findKeyframe findMenuItem findRelatedSkinCluster finder firstParentOf fitBspline flexor floatEq floatField floatFieldGrp floatScrollBar floatSlider floatSlider2 floatSliderButtonGrp floatSliderGrp floor flow fluidCacheInfo fluidEmitter fluidVoxelInfo flushUndo fmod fontDialog fopen formLayout format fprint frameLayout fread freeFormFillet frewind fromNativePath fwrite gamma gauss geometryConstraint getApplicationVersionAsFloat getAttr getClassification getDefaultBrush getFileList getFluidAttr getInputDeviceRange getMayaPanelTypes getModifiers getPanel getParticleAttr getPluginResource getenv getpid glRender glRenderEditor globalStitch gmatch goal gotoBindPose grabColor gradientControl gradientControlNoAttr graphDollyCtx graphSelectContext graphTrackCtx gravity grid gridLayout group groupObjectsByName HfAddAttractorToAS HfAssignAS HfBuildEqualMap HfBuildFurFiles HfBuildFurImages HfCancelAFR HfConnectASToHF HfCreateAttractor HfDeleteAS HfEditAS HfPerformCreateAS HfRemoveAttractorFromAS HfSelectAttached HfSelectAttractors HfUnAssignAS hardenPointCurve hardware hardwareRenderPanel headsUpDisplay headsUpMessage help helpLine hermite hide hilite hitTest hotBox hotkey hotkeyCheck hsv_to_rgb hudButton hudSlider hudSliderButton hwReflectionMap hwRender hwRenderLoad hyperGraph hyperPanel hyperShade hypot iconTextButton iconTextCheckBox iconTextRadioButton iconTextRadioCollection iconTextScrollList iconTextStaticLabel ikHandle ikHandleCtx ikHandleDisplayScale ikSolver ikSplineHandleCtx ikSystem ikSystemInfo ikfkDisplayMethod illustratorCurves image imfPlugins inheritTransform insertJoint insertJointCtx insertKeyCtx insertKnotCurve insertKnotSurface instance instanceable instancer intField intFieldGrp intScrollBar intSlider intSliderGrp interToUI internalVar intersect iprEngine isAnimCurve isConnected isDirty isParentOf isSameObject isTrue isValidObjectName isValidString isValidUiName isolateSelect itemFilter itemFilterAttr itemFilterRender itemFilterType joint jointCluster jointCtx jointDisplayScale jointLattice keyTangent keyframe keyframeOutliner keyframeRegionCurrentTimeCtx keyframeRegionDirectKeyCtx keyframeRegionDollyCtx keyframeRegionInsertKeyCtx keyframeRegionMoveKeyCtx keyframeRegionScaleKeyCtx keyframeRegionSelectKeyCtx keyframeRegionSetKeyCtx keyframeRegionTrackCtx keyframeStats lassoContext lattice latticeDeformKeyCtx launch launchImageEditor layerButton layeredShaderPort layeredTexturePort layout layoutDialog lightList lightListEditor lightListPanel lightlink lineIntersection linearPrecision linstep listAnimatable listAttr listCameras listConnections listDeviceAttachments listHistory listInputDeviceAxes listInputDeviceButtons listInputDevices listMenuAnnotation listNodeTypes listPanelCategories listRelatives listSets listTransforms listUnselected listerEditor loadFluid loadNewShelf loadPlugin loadPluginLanguageResources loadPrefObjects localizedPanelLabel lockNode loft log longNameOf lookThru ls lsThroughFilter lsType lsUI Mayatomr mag makeIdentity makeLive makePaintable makeRoll makeSingleSurface makeTubeOn makebot manipMoveContext manipMoveLimitsCtx manipOptions manipRotateContext manipRotateLimitsCtx manipScaleContext manipScaleLimitsCtx marker match max memory menu menuBarLayout menuEditor menuItem menuItemToShelf menuSet menuSetPref messageLine min minimizeApp mirrorJoint modelCurrentTimeCtx modelEditor modelPanel mouse movIn movOut move moveIKtoFK moveKeyCtx moveVertexAlongDirection multiProfileBirailSurface mute nParticle nameCommand nameField namespace namespaceInfo newPanelItems newton nodeCast nodeIconButton nodeOutliner nodePreset nodeType noise nonLinear normalConstraint normalize nurbsBoolean nurbsCopyUVSet nurbsCube nurbsEditUV nurbsPlane nurbsSelect nurbsSquare nurbsToPoly nurbsToPolygonsPref nurbsToSubdiv nurbsToSubdivPref nurbsUVSet nurbsViewDirectionVector objExists objectCenter objectLayer objectType objectTypeUI obsoleteProc oceanNurbsPreviewPlane offsetCurve offsetCurveOnSurface offsetSurface openGLExtension openMayaPref optionMenu optionMenuGrp optionVar orbit orbitCtx orientConstraint outlinerEditor outlinerPanel overrideModifier paintEffectsDisplay pairBlend palettePort paneLayout panel panelConfiguration panelHistory paramDimContext paramDimension paramLocator parent parentConstraint particle particleExists particleInstancer particleRenderInfo partition pasteKey pathAnimation pause pclose percent performanceOptions pfxstrokes pickWalk picture pixelMove planarSrf plane play playbackOptions playblast plugAttr plugNode pluginInfo pluginResourceUtil pointConstraint pointCurveConstraint pointLight pointMatrixMult pointOnCurve pointOnSurface pointPosition poleVectorConstraint polyAppend polyAppendFacetCtx polyAppendVertex polyAutoProjection polyAverageNormal polyAverageVertex polyBevel polyBlendColor polyBlindData polyBoolOp polyBridgeEdge polyCacheMonitor polyCheck polyChipOff polyClipboard polyCloseBorder polyCollapseEdge polyCollapseFacet polyColorBlindData polyColorDel polyColorPerVertex polyColorSet polyCompare polyCone polyCopyUV polyCrease polyCreaseCtx polyCreateFacet polyCreateFacetCtx polyCube polyCut polyCutCtx polyCylinder polyCylindricalProjection polyDelEdge polyDelFacet polyDelVertex polyDuplicateAndConnect polyDuplicateEdge polyEditUV polyEditUVShell polyEvaluate polyExtrudeEdge polyExtrudeFacet polyExtrudeVertex polyFlipEdge polyFlipUV polyForceUV polyGeoSampler polyHelix polyInfo polyInstallAction polyLayoutUV polyListComponentConversion polyMapCut polyMapDel polyMapSew polyMapSewMove polyMergeEdge polyMergeEdgeCtx polyMergeFacet polyMergeFacetCtx polyMergeUV polyMergeVertex polyMirrorFace polyMoveEdge polyMoveFacet polyMoveFacetUV polyMoveUV polyMoveVertex polyNormal polyNormalPerVertex polyNormalizeUV polyOptUvs polyOptions polyOutput polyPipe polyPlanarProjection polyPlane polyPlatonicSolid polyPoke polyPrimitive polyPrism polyProjection polyPyramid polyQuad polyQueryBlindData polyReduce polySelect polySelectConstraint polySelectConstraintMonitor polySelectCtx polySelectEditCtx polySeparate polySetToFaceNormal polySewEdge polyShortestPathCtx polySmooth polySoftEdge polySphere polySphericalProjection polySplit polySplitCtx polySplitEdge polySplitRing polySplitVertex polyStraightenUVBorder polySubdivideEdge polySubdivideFacet polyToSubdiv polyTorus polyTransfer polyTriangulate polyUVSet polyUnite polyWedgeFace popen popupMenu pose pow preloadRefEd print progressBar progressWindow projFileViewer projectCurve projectTangent projectionContext projectionManip promptDialog propModCtx propMove psdChannelOutliner psdEditTextureFile psdExport psdTextureFile putenv pwd python querySubdiv quit rad_to_deg radial radioButton radioButtonGrp radioCollection radioMenuItemCollection rampColorPort rand randomizeFollicles randstate rangeControl readTake rebuildCurve rebuildSurface recordAttr recordDevice redo reference referenceEdit referenceQuery refineSubdivSelectionList refresh refreshAE registerPluginResource rehash reloadImage removeJoint removeMultiInstance removePanelCategory rename renameAttr renameSelectionList renameUI render renderGlobalsNode renderInfo renderLayerButton renderLayerParent renderLayerPostProcess renderLayerUnparent renderManip renderPartition renderQualityNode renderSettings renderThumbnailUpdate renderWindowEditor renderWindowSelectContext renderer reorder reorderDeformers requires reroot resampleFluid resetAE resetPfxToPolyCamera resetTool resolutionNode retarget reverseCurve reverseSurface revolve rgb_to_hsv rigidBody rigidSolver roll rollCtx rootOf rot rotate rotationInterpolation roundConstantRadius rowColumnLayout rowLayout runTimeCommand runup sampleImage saveAllShelves saveAttrPreset saveFluid saveImage saveInitialState saveMenu savePrefObjects savePrefs saveShelf saveToolSettings scale scaleBrushBrightness scaleComponents scaleConstraint scaleKey scaleKeyCtx sceneEditor sceneUIReplacement scmh scriptCtx scriptEditorInfo scriptJob scriptNode scriptTable scriptToShelf scriptedPanel scriptedPanelType scrollField scrollLayout sculpt searchPathArray seed selLoadSettings select selectContext selectCurveCV selectKey selectKeyCtx selectKeyframeRegionCtx selectMode selectPref selectPriority selectType selectedNodes selectionConnection separator setAttr setAttrEnumResource setAttrMapping setAttrNiceNameResource setConstraintRestPosition setDefaultShadingGroup setDrivenKeyframe setDynamic setEditCtx setEditor setFluidAttr setFocus setInfinity setInputDeviceMapping setKeyCtx setKeyPath setKeyframe setKeyframeBlendshapeTargetWts setMenuMode setNodeNiceNameResource setNodeTypeFlag setParent setParticleAttr setPfxToPolyCamera setPluginResource setProject setStampDensity setStartupMessage setState setToolTo setUITemplate setXformManip sets shadingConnection shadingGeometryRelCtx shadingLightRelCtx shadingNetworkCompare shadingNode shapeCompare shelfButton shelfLayout shelfTabLayout shellField shortNameOf showHelp showHidden showManipCtx showSelectionInTitle showShadingGroupAttrEditor showWindow sign simplify sin singleProfileBirailSurface size sizeBytes skinCluster skinPercent smoothCurve smoothTangentSurface smoothstep snap2to2 snapKey snapMode snapTogetherCtx snapshot soft softMod softModCtx sort sound soundControl source spaceLocator sphere sphrand spotLight spotLightPreviewPort spreadSheetEditor spring sqrt squareSurface srtContext stackTrace startString startsWith stitchAndExplodeShell stitchSurface stitchSurfacePoints strcmp stringArrayCatenate stringArrayContains stringArrayCount stringArrayInsertAtIndex stringArrayIntersector stringArrayRemove stringArrayRemoveAtIndex stringArrayRemoveDuplicates stringArrayRemoveExact stringArrayToString stringToStringArray strip stripPrefixFromName stroke subdAutoProjection subdCleanTopology subdCollapse subdDuplicateAndConnect subdEditUV subdListComponentConversion subdMapCut subdMapSewMove subdMatchTopology subdMirror subdToBlind subdToPoly subdTransferUVsToCache subdiv subdivCrease subdivDisplaySmoothness substitute substituteAllString substituteGeometry substring surface surfaceSampler surfaceShaderList swatchDisplayPort switchTable symbolButton symbolCheckBox sysFile system tabLayout tan tangentConstraint texLatticeDeformContext texManipContext texMoveContext texMoveUVShellContext texRotateContext texScaleContext texSelectContext texSelectShortestPathCtx texSmudgeUVContext texWinToolCtx text textCurves textField textFieldButtonGrp textFieldGrp textManip textScrollList textToShelf textureDisplacePlane textureHairColor texturePlacementContext textureWindow threadCount threePointArcCtx timeControl timePort timerX toNativePath toggle toggleAxis toggleWindowVisibility tokenize tokenizeList tolerance tolower toolButton toolCollection toolDropped toolHasOptions toolPropertyWindow torus toupper trace track trackCtx transferAttributes transformCompare transformLimits translator trim trunc truncateFluidCache truncateHairCache tumble tumbleCtx turbulence twoPointArcCtx uiRes uiTemplate unassignInputDevice undo undoInfo ungroup uniform unit unloadPlugin untangleUV untitledFileName untrim upAxis updateAE userCtx uvLink uvSnapshot validateShelfName vectorize view2dToolCtx viewCamera viewClipPlane viewFit viewHeadOn viewLookAt viewManip viewPlace viewSet visor volumeAxis vortex waitCursor warning webBrowser webBrowserPrefs whatIs window windowPref wire wireContext workspace wrinkle wrinkleContext writeTake xbmLangPathList xform",illegal:""},{begin:"<=",relevance:0},{begin:"=>",relevance:0},{begin:"/\\\\"},{begin:"\\\\/"}]},{className:"built_in",variants:[{begin:":-\\|-->"},{begin:"=",relevance:0}]},n,e.C_BLOCK_COMMENT_MODE,a,e.NUMBER_MODE,r,i,{begin:/:-/},{begin:/\.$/}]}}var b_=T_;function R_(e){return{name:"MIPS Assembly",case_insensitive:!0,aliases:["mips"],keywords:{$pattern:"\\.?"+e.IDENT_RE,meta:".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .ltorg ",built_in:"$0 $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15 $16 $17 $18 $19 $20 $21 $22 $23 $24 $25 $26 $27 $28 $29 $30 $31 zero at v0 v1 a0 a1 a2 a3 a4 a5 a6 a7 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 s0 s1 s2 s3 s4 s5 s6 s7 s8 k0 k1 gp sp fp ra $f0 $f1 $f2 $f2 $f4 $f5 $f6 $f7 $f8 $f9 $f10 $f11 $f12 $f13 $f14 $f15 $f16 $f17 $f18 $f19 $f20 $f21 $f22 $f23 $f24 $f25 $f26 $f27 $f28 $f29 $f30 $f31 Context Random EntryLo0 EntryLo1 Context PageMask Wired EntryHi HWREna BadVAddr Count Compare SR IntCtl SRSCtl SRSMap Cause EPC PRId EBase Config Config1 Config2 Config3 LLAddr Debug DEPC DESAVE CacheErr ECC ErrorEPC TagLo DataLo TagHi DataHi WatchLo WatchHi PerfCtl PerfCnt "},contains:[{className:"keyword",begin:"\\b(addi?u?|andi?|b(al)?|beql?|bgez(al)?l?|bgtzl?|blezl?|bltz(al)?l?|bnel?|cl[oz]|divu?|ext|ins|j(al)?|jalr(\\.hb)?|jr(\\.hb)?|lbu?|lhu?|ll|lui|lw[lr]?|maddu?|mfhi|mflo|movn|movz|move|msubu?|mthi|mtlo|mul|multu?|nop|nor|ori?|rotrv?|sb|sc|se[bh]|sh|sllv?|slti?u?|srav?|srlv?|subu?|sw[lr]?|xori?|wsbh|abs\\.[sd]|add\\.[sd]|alnv.ps|bc1[ft]l?|c\\.(s?f|un|u?eq|[ou]lt|[ou]le|ngle?|seq|l[et]|ng[et])\\.[sd]|(ceil|floor|round|trunc)\\.[lw]\\.[sd]|cfc1|cvt\\.d\\.[lsw]|cvt\\.l\\.[dsw]|cvt\\.ps\\.s|cvt\\.s\\.[dlw]|cvt\\.s\\.p[lu]|cvt\\.w\\.[dls]|div\\.[ds]|ldx?c1|luxc1|lwx?c1|madd\\.[sd]|mfc1|mov[fntz]?\\.[ds]|msub\\.[sd]|mth?c1|mul\\.[ds]|neg\\.[ds]|nmadd\\.[ds]|nmsub\\.[ds]|p[lu][lu]\\.ps|recip\\.fmt|r?sqrt\\.[ds]|sdx?c1|sub\\.[ds]|suxc1|swx?c1|break|cache|d?eret|[de]i|ehb|mfc0|mtc0|pause|prefx?|rdhwr|rdpgpr|sdbbp|ssnop|synci?|syscall|teqi?|tgei?u?|tlb(p|r|w[ir])|tlti?u?|tnei?|wait|wrpgpr)",end:"\\s"},e.COMMENT("[;#](?!\\s*$)","$"),e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",relevance:0},{className:"title",begin:"\\|",end:"\\|",illegal:"\\n",relevance:0},{className:"number",variants:[{begin:"0x[0-9a-f]+"},{begin:"\\b-?\\d+"}],relevance:0},{className:"symbol",variants:[{begin:"^\\s*[a-z_\\.\\$][a-z0-9_\\.\\$]+:"},{begin:"^\\s*[0-9]+:"},{begin:"[0-9]+[bf]"}],relevance:0}],illegal:/\//}}var N_=R_;function C_(e){return{name:"Mizar",keywords:"environ vocabularies notations constructors definitions registrations theorems schemes requirements begin end definition registration cluster existence pred func defpred deffunc theorem proof let take assume then thus hence ex for st holds consider reconsider such that and in provided of as from be being by means equals implies iff redefine define now not or attr is mode suppose per cases set thesis contradiction scheme reserve struct correctness compatibility coherence symmetry assymetry reflexivity irreflexivity connectedness uniqueness commutativity idempotence involutiveness projectivity",contains:[e.COMMENT("::","$")]}}var f_=C_;function gn(e){return e?typeof e=="string"?e:e.source:null}function pe(...e){return e.map(n=>gn(n)).join("")}function $t(...e){return"("+e.map(n=>gn(n)).join("|")+")"}function O_(e){const t=["abs","accept","alarm","and","atan2","bind","binmode","bless","break","caller","chdir","chmod","chomp","chop","chown","chr","chroot","close","closedir","connect","continue","cos","crypt","dbmclose","dbmopen","defined","delete","die","do","dump","each","else","elsif","endgrent","endhostent","endnetent","endprotoent","endpwent","endservent","eof","eval","exec","exists","exit","exp","fcntl","fileno","flock","for","foreach","fork","format","formline","getc","getgrent","getgrgid","getgrnam","gethostbyaddr","gethostbyname","gethostent","getlogin","getnetbyaddr","getnetbyname","getnetent","getpeername","getpgrp","getpriority","getprotobyname","getprotobynumber","getprotoent","getpwent","getpwnam","getpwuid","getservbyname","getservbyport","getservent","getsockname","getsockopt","given","glob","gmtime","goto","grep","gt","hex","if","index","int","ioctl","join","keys","kill","last","lc","lcfirst","length","link","listen","local","localtime","log","lstat","lt","ma","map","mkdir","msgctl","msgget","msgrcv","msgsnd","my","ne","next","no","not","oct","open","opendir","or","ord","our","pack","package","pipe","pop","pos","print","printf","prototype","push","q|0","qq","quotemeta","qw","qx","rand","read","readdir","readline","readlink","readpipe","recv","redo","ref","rename","require","reset","return","reverse","rewinddir","rindex","rmdir","say","scalar","seek","seekdir","select","semctl","semget","semop","send","setgrent","sethostent","setnetent","setpgrp","setpriority","setprotoent","setpwent","setservent","setsockopt","shift","shmctl","shmget","shmread","shmwrite","shutdown","sin","sleep","socket","socketpair","sort","splice","split","sprintf","sqrt","srand","stat","state","study","sub","substr","symlink","syscall","sysopen","sysread","sysseek","system","syswrite","tell","telldir","tie","tied","time","times","tr","truncate","uc","ucfirst","umask","undef","unless","unlink","unpack","unshift","untie","until","use","utime","values","vec","wait","waitpid","wantarray","warn","when","while","write","x|0","xor","y|0"],n=/[dualxmsipngr]{0,12}/,a={$pattern:/[\w.]+/,keyword:t.join(" ")},r={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:a},i={begin:/->\{/,end:/\}/},s={variants:[{begin:/\$\d/},{begin:pe(/[$%@](\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")},{begin:/[$%@][^\s\w{]/,relevance:0}]},o=[e.BACKSLASH_ESCAPE,r,s],l=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],c=(m,g,E="\\1")=>{const S=E==="\\1"?E:pe(E,g);return pe(pe("(?:",m,")"),g,/(?:\\.|[^\\\/])*?/,S,/(?:\\.|[^\\\/])*?/,E,n)},_=(m,g,E)=>pe(pe("(?:",m,")"),g,/(?:\\.|[^\\\/])*?/,E,n),u=[s,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),i,{className:"string",contains:o,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:"-?\\w+\\s*=>",relevance:0}]},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{begin:c("s|tr|y",$t(...l))},{begin:c("s|tr|y","\\(","\\)")},{begin:c("s|tr|y","\\[","\\]")},{begin:c("s|tr|y","\\{","\\}")}],relevance:2},{className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{begin:_("(?:m|qr)?",/\//,/\//)},{begin:_("m|qr",$t(...l),/\1/)},{begin:_("m|qr",/\(/,/\)/)},{begin:_("m|qr",/\[/,/\]/)},{begin:_("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return r.contains=u,i.contains=u,{name:"Perl",aliases:["pl","pm"],keywords:a,contains:u}}var I_=O_;function A_(e){return{name:"Mojolicious",subLanguage:"xml",contains:[{className:"meta",begin:"^__(END|DATA)__$"},{begin:"^\\s*%{1,2}={0,2}",end:"$",subLanguage:"perl"},{begin:"<%{1,2}={0,2}",end:"={0,1}%>",subLanguage:"perl",excludeBegin:!0,excludeEnd:!0}]}}var v_=A_;function y_(e){const t={className:"number",relevance:0,variants:[{begin:"[$][a-fA-F0-9]+"},e.NUMBER_MODE]};return{name:"Monkey",case_insensitive:!0,keywords:{keyword:"public private property continue exit extern new try catch eachin not abstract final select case default const local global field end if then else elseif endif while wend repeat until forever for to step next return module inline throw import",built_in:"DebugLog DebugStop Error Print ACos ACosr ASin ASinr ATan ATan2 ATan2r ATanr Abs Abs Ceil Clamp Clamp Cos Cosr Exp Floor Log Max Max Min Min Pow Sgn Sgn Sin Sinr Sqrt Tan Tanr Seed PI HALFPI TWOPI",literal:"true false null and or shl shr mod"},illegal:/\/\*/,contains:[e.COMMENT("#rem","#end"),e.COMMENT("'","$",{relevance:0}),{className:"function",beginKeywords:"function method",end:"[(=:]|$",illegal:/\n/,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"class",beginKeywords:"class interface",end:"$",contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{className:"built_in",begin:"\\b(self|super)\\b"},{className:"meta",begin:"\\s*#",end:"$",keywords:{"meta-keyword":"if else elseif endif end then"}},{className:"meta",begin:"^\\s*strict\\b"},{beginKeywords:"alias",end:"=",contains:[e.UNDERSCORE_TITLE_MODE]},e.QUOTE_STRING_MODE,t]}}var D_=y_;function h_(e){const t={keyword:"if then not for in while do return else elseif break continue switch and or unless when class extends super local import export from using",literal:"true false nil",built_in:"_G _VERSION assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall coroutine debug io math os package string table"},n="[A-Za-z$_][0-9A-Za-z$_]*",a={className:"subst",begin:/#\{/,end:/\}/,keywords:t},r=[e.inherit(e.C_NUMBER_MODE,{starts:{end:"(\\s*/)?",relevance:0}}),{className:"string",variants:[{begin:/'/,end:/'/,contains:[e.BACKSLASH_ESCAPE]},{begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,a]}]},{className:"built_in",begin:"@__"+e.IDENT_RE},{begin:"@"+e.IDENT_RE},{begin:e.IDENT_RE+"\\\\"+e.IDENT_RE}];a.contains=r;const i=e.inherit(e.TITLE_MODE,{begin:n}),s="(\\(.*\\)\\s*)?\\B[-=]>",o={className:"params",begin:"\\([^\\(]",returnBegin:!0,contains:[{begin:/\(/,end:/\)/,keywords:t,contains:["self"].concat(r)}]};return{name:"MoonScript",aliases:["moon"],keywords:t,illegal:/\/\*/,contains:r.concat([e.COMMENT("--","$"),{className:"function",begin:"^\\s*"+n+"\\s*=\\s*"+s,end:"[-=]>",returnBegin:!0,contains:[i,o]},{begin:/[\(,:=]\s*/,relevance:0,contains:[{className:"function",begin:s,end:"[-=]>",returnBegin:!0,contains:[o]}]},{className:"class",beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[i]},i]},{className:"name",begin:n+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}}var M_=h_;function L_(e){return{name:"N1QL",case_insensitive:!0,contains:[{beginKeywords:"build create index delete drop explain infer|10 insert merge prepare select update upsert|10",end:/;/,endsWithParent:!0,keywords:{keyword:"all alter analyze and any array as asc begin between binary boolean break bucket build by call case cast cluster collate collection commit connect continue correlate cover create database dataset datastore declare decrement delete derived desc describe distinct do drop each element else end every except exclude execute exists explain fetch first flatten for force from function grant group gsi having if ignore ilike in include increment index infer inline inner insert intersect into is join key keys keyspace known last left let letting like limit lsm map mapping matched materialized merge minus namespace nest not number object offset on option or order outer over parse partition password path pool prepare primary private privilege procedure public raw realm reduce rename return returning revoke right role rollback satisfies schema select self semi set show some start statistics string system then to transaction trigger truncate under union unique unknown unnest unset update upsert use user using validate value valued values via view when where while with within work xor",literal:"true false null missing|5",built_in:"array_agg array_append array_concat array_contains array_count array_distinct array_ifnull array_length array_max array_min array_position array_prepend array_put array_range array_remove array_repeat array_replace array_reverse array_sort array_sum avg count max min sum greatest least ifmissing ifmissingornull ifnull missingif nullif ifinf ifnan ifnanorinf naninf neginfif posinfif clock_millis clock_str date_add_millis date_add_str date_diff_millis date_diff_str date_part_millis date_part_str date_trunc_millis date_trunc_str duration_to_str millis str_to_millis millis_to_str millis_to_utc millis_to_zone_name now_millis now_str str_to_duration str_to_utc str_to_zone_name decode_json encode_json encoded_size poly_length base64 base64_encode base64_decode meta uuid abs acos asin atan atan2 ceil cos degrees e exp ln log floor pi power radians random round sign sin sqrt tan trunc object_length object_names object_pairs object_inner_pairs object_values object_inner_values object_add object_put object_remove object_unwrap regexp_contains regexp_like regexp_position regexp_replace contains initcap length lower ltrim position repeat replace rtrim split substr title trim upper isarray isatom isboolean isnumber isobject isstring type toarray toatom toboolean tonumber toobject tostring"},contains:[{className:"string",begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE]},{className:"string",begin:'"',end:'"',contains:[e.BACKSLASH_ESCAPE]},{className:"symbol",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE],relevance:2},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_BLOCK_COMMENT_MODE]}}var x_=L_;function P_(e){const t={className:"variable",variants:[{begin:/\$\d+/},{begin:/\$\{/,end:/\}/},{begin:/[$@]/+e.UNDERSCORE_IDENT_RE}]},n={endsWithParent:!0,keywords:{$pattern:"[a-z/_]+",literal:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"},relevance:0,illegal:"=>",contains:[e.HASH_COMMENT_MODE,{className:"string",contains:[e.BACKSLASH_ESCAPE,t],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/}]},{begin:"([a-z]+):/",end:"\\s",endsWithParent:!0,excludeEnd:!0,contains:[t]},{className:"regexp",contains:[e.BACKSLASH_ESCAPE,t],variants:[{begin:"\\s\\^",end:"\\s|\\{|;",returnEnd:!0},{begin:"~\\*?\\s+",end:"\\s|\\{|;",returnEnd:!0},{begin:"\\*(\\.[a-z\\-]+)+"},{begin:"([a-z\\-]+\\.)+\\*"}]},{className:"number",begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{className:"number",begin:"\\b\\d+[kKmMgGdshdwy]*\\b",relevance:0},t]};return{name:"Nginx config",aliases:["nginxconf"],contains:[e.HASH_COMMENT_MODE,{begin:e.UNDERSCORE_IDENT_RE+"\\s+\\{",returnBegin:!0,end:/\{/,contains:[{className:"section",begin:e.UNDERSCORE_IDENT_RE}],relevance:0},{begin:e.UNDERSCORE_IDENT_RE+"\\s",end:";|\\{",returnBegin:!0,contains:[{className:"attribute",begin:e.UNDERSCORE_IDENT_RE,starts:n}],relevance:0}],illegal:"[^\\s\\}]"}}var w_=P_;function k_(e){return{name:"Nim",keywords:{keyword:"addr and as asm bind block break case cast const continue converter discard distinct div do elif else end enum except export finally for from func generic if import in include interface is isnot iterator let macro method mixin mod nil not notin object of or out proc ptr raise ref return shl shr static template try tuple type using var when while with without xor yield",literal:"shared guarded stdin stdout stderr result true false",built_in:"int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 float float32 float64 bool char string cstring pointer expr stmt void auto any range array openarray varargs seq set clong culong cchar cschar cshort cint csize clonglong cfloat cdouble clongdouble cuchar cushort cuint culonglong cstringarray semistatic"},contains:[{className:"meta",begin:/\{\./,end:/\.\}/,relevance:10},{className:"string",begin:/[a-zA-Z]\w*"/,end:/"/,contains:[{begin:/""/}]},{className:"string",begin:/([a-zA-Z]\w*)?"""/,end:/"""/},e.QUOTE_STRING_MODE,{className:"type",begin:/\b[A-Z]\w+\b/,relevance:0},{className:"number",relevance:0,variants:[{begin:/\b(0[xX][0-9a-fA-F][_0-9a-fA-F]*)('?[iIuU](8|16|32|64))?/},{begin:/\b(0o[0-7][_0-7]*)('?[iIuUfF](8|16|32|64))?/},{begin:/\b(0(b|B)[01][_01]*)('?[iIuUfF](8|16|32|64))?/},{begin:/\b(\d[_\d]*)('?[iIuUfF](8|16|32|64))?/}]},e.HASH_COMMENT_MODE]}}var U_=k_;function F_(e){const t={keyword:"rec with let in inherit assert if else then",literal:"true false or and null",built_in:"import abort baseNameOf dirOf isNull builtins map removeAttrs throw toString derivation"},n={className:"subst",begin:/\$\{/,end:/\}/,keywords:t},a={begin:/[a-zA-Z0-9-_]+(\s*=)/,returnBegin:!0,relevance:0,contains:[{className:"attr",begin:/\S+/}]},r={className:"string",contains:[n],variants:[{begin:"''",end:"''"},{begin:'"',end:'"'}]},i=[e.NUMBER_MODE,e.HASH_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,r,a];return n.contains=i,{name:"Nix",aliases:["nixos"],keywords:t,contains:i}}var B_=F_;function G_(e){return{name:"Node REPL",contains:[{className:"meta",starts:{end:/ |$/,starts:{end:"$",subLanguage:"javascript"}},variants:[{begin:/^>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}var Y_=G_;function H_(e){const t={className:"variable",begin:/\$(ADMINTOOLS|APPDATA|CDBURN_AREA|CMDLINE|COMMONFILES32|COMMONFILES64|COMMONFILES|COOKIES|DESKTOP|DOCUMENTS|EXEDIR|EXEFILE|EXEPATH|FAVORITES|FONTS|HISTORY|HWNDPARENT|INSTDIR|INTERNET_CACHE|LANGUAGE|LOCALAPPDATA|MUSIC|NETHOOD|OUTDIR|PICTURES|PLUGINSDIR|PRINTHOOD|PROFILE|PROGRAMFILES32|PROGRAMFILES64|PROGRAMFILES|QUICKLAUNCH|RECENT|RESOURCES_LOCALIZED|RESOURCES|SENDTO|SMPROGRAMS|SMSTARTUP|STARTMENU|SYSDIR|TEMP|TEMPLATES|VIDEOS|WINDIR)/},n={className:"variable",begin:/\$+\{[\w.:-]+\}/},a={className:"variable",begin:/\$+\w+/,illegal:/\(\)\{\}/},r={className:"variable",begin:/\$+\([\w^.:-]+\)/},i={className:"params",begin:"(ARCHIVE|FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_NORMAL|FILE_ATTRIBUTE_OFFLINE|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_TEMPORARY|HKCR|HKCU|HKDD|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_DYN_DATA|HKEY_LOCAL_MACHINE|HKEY_PERFORMANCE_DATA|HKEY_USERS|HKLM|HKPD|HKU|IDABORT|IDCANCEL|IDIGNORE|IDNO|IDOK|IDRETRY|IDYES|MB_ABORTRETRYIGNORE|MB_DEFBUTTON1|MB_DEFBUTTON2|MB_DEFBUTTON3|MB_DEFBUTTON4|MB_ICONEXCLAMATION|MB_ICONINFORMATION|MB_ICONQUESTION|MB_ICONSTOP|MB_OK|MB_OKCANCEL|MB_RETRYCANCEL|MB_RIGHT|MB_RTLREADING|MB_SETFOREGROUND|MB_TOPMOST|MB_USERICON|MB_YESNO|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY)"},s={className:"keyword",begin:/!(addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversion|gettlbversion|if|ifdef|ifmacrodef|ifmacrondef|ifndef|include|insertmacro|macro|macroend|makensis|packhdr|searchparse|searchreplace|system|tempfile|undef|verbose|warning)/},o={className:"meta",begin:/\$(\\[nrt]|\$)/},l={className:"class",begin:/\w+::\w+/},c={className:"string",variants:[{begin:'"',end:'"'},{begin:"'",end:"'"},{begin:"`",end:"`"}],illegal:/\n/,contains:[o,t,n,a,r]};return{name:"NSIS",case_insensitive:!1,keywords:{keyword:"Abort AddBrandingImage AddSize AllowRootDirInstall AllowSkipFiles AutoCloseWindow BGFont BGGradient BrandingText BringToFront Call CallInstDLL Caption ChangeUI CheckBitmap ClearErrors CompletedText ComponentText CopyFiles CRCCheck CreateDirectory CreateFont CreateShortCut Delete DeleteINISec DeleteINIStr DeleteRegKey DeleteRegValue DetailPrint DetailsButtonText DirText DirVar DirVerify EnableWindow EnumRegKey EnumRegValue Exch Exec ExecShell ExecShellWait ExecWait ExpandEnvStrings File FileBufSize FileClose FileErrorText FileOpen FileRead FileReadByte FileReadUTF16LE FileReadWord FileWriteUTF16LE FileSeek FileWrite FileWriteByte FileWriteWord FindClose FindFirst FindNext FindWindow FlushINI GetCurInstType GetCurrentAddress GetDlgItem GetDLLVersion GetDLLVersionLocal GetErrorLevel GetFileTime GetFileTimeLocal GetFullPathName GetFunctionAddress GetInstDirError GetKnownFolderPath GetLabelAddress GetTempFileName Goto HideWindow Icon IfAbort IfErrors IfFileExists IfRebootFlag IfRtlLanguage IfShellVarContextAll IfSilent InitPluginsDir InstallButtonText InstallColors InstallDir InstallDirRegKey InstProgressFlags InstType InstTypeGetText InstTypeSetText Int64Cmp Int64CmpU Int64Fmt IntCmp IntCmpU IntFmt IntOp IntPtrCmp IntPtrCmpU IntPtrOp IsWindow LangString LicenseBkColor LicenseData LicenseForceSelection LicenseLangString LicenseText LoadAndSetImage LoadLanguageFile LockWindow LogSet LogText ManifestDPIAware ManifestLongPathAware ManifestMaxVersionTested ManifestSupportedOS MessageBox MiscButtonText Name Nop OutFile Page PageCallbacks PEAddResource PEDllCharacteristics PERemoveResource PESubsysVer Pop Push Quit ReadEnvStr ReadINIStr ReadRegDWORD ReadRegStr Reboot RegDLL Rename RequestExecutionLevel ReserveFile Return RMDir SearchPath SectionGetFlags SectionGetInstTypes SectionGetSize SectionGetText SectionIn SectionSetFlags SectionSetInstTypes SectionSetSize SectionSetText SendMessage SetAutoClose SetBrandingImage SetCompress SetCompressor SetCompressorDictSize SetCtlColors SetCurInstType SetDatablockOptimize SetDateSave SetDetailsPrint SetDetailsView SetErrorLevel SetErrors SetFileAttributes SetFont SetOutPath SetOverwrite SetRebootFlag SetRegView SetShellVarContext SetSilent ShowInstDetails ShowUninstDetails ShowWindow SilentInstall SilentUnInstall Sleep SpaceTexts StrCmp StrCmpS StrCpy StrLen SubCaption Unicode UninstallButtonText UninstallCaption UninstallIcon UninstallSubCaption UninstallText UninstPage UnRegDLL Var VIAddVersionKey VIFileVersion VIProductVersion WindowIcon WriteINIStr WriteRegBin WriteRegDWORD WriteRegExpandStr WriteRegMultiStr WriteRegNone WriteRegStr WriteUninstaller XPStyle",literal:"admin all auto both bottom bzip2 colored components current custom directory false force hide highest ifdiff ifnewer instfiles lastused leave left license listonly lzma nevershow none normal notset off on open print right show silent silentlog smooth textonly top true try un.components un.custom un.directory un.instfiles un.license uninstConfirm user Win10 Win7 Win8 WinVista zlib"},contains:[e.HASH_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.COMMENT(";","$",{relevance:0}),{className:"function",beginKeywords:"Function PageEx Section SectionGroup",end:"$"},c,s,n,a,r,i,l,e.NUMBER_MODE]}}var V_=H_;function q_(e){const t={className:"built_in",begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"},n=/[a-zA-Z@][a-zA-Z0-9_]*/,a={$pattern:n,keyword:"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required @encode @package @import @defs @compatibility_alias __bridge __bridge_transfer __bridge_retained __bridge_retain __covariant __contravariant __kindof _Nonnull _Nullable _Null_unspecified __FUNCTION__ __PRETTY_FUNCTION__ __attribute__ getter setter retain unsafe_unretained nonnull nullable null_unspecified null_resettable class instancetype NS_DESIGNATED_INITIALIZER NS_UNAVAILABLE NS_REQUIRES_SUPER NS_RETURNS_INNER_POINTER NS_INLINE NS_AVAILABLE NS_DEPRECATED NS_ENUM NS_OPTIONS NS_SWIFT_UNAVAILABLE NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_REFINED_FOR_SWIFT NS_SWIFT_NAME NS_SWIFT_NOTHROW NS_DURING NS_HANDLER NS_ENDHANDLER NS_VALUERETURN NS_VOIDRETURN",literal:"false true FALSE TRUE nil YES NO NULL",built_in:"BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"},r={$pattern:n,keyword:"@interface @class @protocol @implementation"};return{name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],keywords:a,illegal:"/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+r.keyword.split(" ").join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:r,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}var $_=q_;function z_(e){return{name:"OCaml",aliases:["ml"],keywords:{$pattern:"[a-z_]\\w*!?",keyword:"and as assert asr begin class constraint do done downto else end exception external for fun function functor if in include inherit! inherit initializer land lazy let lor lsl lsr lxor match method!|10 method mod module mutable new object of open! open or private rec sig struct then to try type val! val virtual when while with parser value",built_in:"array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 string unit in_channel out_channel ref",literal:"true false"},illegal:/\/\/|>>/,contains:[{className:"literal",begin:"\\[(\\|\\|)?\\]|\\(\\)",relevance:0},e.COMMENT("\\(\\*","\\*\\)",{contains:["self"]}),{className:"symbol",begin:"'[A-Za-z_](?!')[\\w']*"},{className:"type",begin:"`[A-Z][\\w']*"},{className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},{begin:"[a-z_]\\w*'[\\w']*",relevance:0},e.inherit(e.APOS_STRING_MODE,{className:"string",relevance:0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"number",begin:"\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)",relevance:0},{begin:/->/}]}}var W_=z_;function K_(e){const t={className:"keyword",begin:"\\$(f[asn]|t|vp[rtd]|children)"},n={className:"literal",begin:"false|true|PI|undef"},a={className:"number",begin:"\\b\\d+(\\.\\d+)?(e-?\\d+)?",relevance:0},r=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),i={className:"meta",keywords:{"meta-keyword":"include use"},begin:"include|use <",end:">"},s={className:"params",begin:"\\(",end:"\\)",contains:["self",a,r,t,n]},o={begin:"[*!#%]",relevance:0},l={className:"function",beginKeywords:"module function",end:/=|\{/,contains:[s,e.UNDERSCORE_TITLE_MODE]};return{name:"OpenSCAD",aliases:["scad"],keywords:{keyword:"function module include use for intersection_for if else \\%",literal:"false true PI undef",built_in:"circle square polygon text sphere cube cylinder polyhedron translate rotate scale resize mirror multmatrix color offset hull minkowski union difference intersection abs sign sin cos tan acos asin atan atan2 floor round ceil ln log pow sqrt exp rands min max concat lookup str chr search version version_num norm cross parent_module echo import import_dxf dxf_linear_extrude linear_extrude rotate_extrude surface projection render children dxf_cross dxf_dim let assign"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,i,r,t,o,l]}}var Q_=K_;function X_(e){const t={$pattern:/\.?\w+/,keyword:"abstract add and array as asc aspect assembly async begin break block by case class concat const copy constructor continue create default delegate desc distinct div do downto dynamic each else empty end ensure enum equals event except exit extension external false final finalize finalizer finally flags for forward from function future global group has if implementation implements implies in index inherited inline interface into invariants is iterator join locked locking loop matching method mod module namespace nested new nil not notify nullable of old on operator or order out override parallel params partial pinned private procedure property protected public queryable raise read readonly record reintroduce remove repeat require result reverse sealed select self sequence set shl shr skip static step soft take then to true try tuple type union unit unsafe until uses using var virtual raises volatile where while with write xor yield await mapped deprecated stdcall cdecl pascal register safecall overload library platform reference packed strict published autoreleasepool selector strong weak unretained"},n=e.COMMENT(/\{/,/\}/,{relevance:0}),a=e.COMMENT("\\(\\*","\\*\\)",{relevance:10}),r={className:"string",begin:"'",end:"'",contains:[{begin:"''"}]},i={className:"string",begin:"(#\\d+)+"},s={className:"function",beginKeywords:"function constructor destructor procedure method",end:"[:;]",keywords:"function constructor|10 destructor|10 procedure|10 method|10",contains:[e.TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",keywords:t,contains:[r,i]},n,a]};return{name:"Oxygene",case_insensitive:!0,keywords:t,illegal:'("|\\$[G-Zg-z]|\\/\\*||->)',contains:[n,a,e.C_LINE_COMMENT_MODE,r,i,e.NUMBER_MODE,s,{className:"class",begin:"=\\bclass\\b",end:"end;",keywords:t,contains:[r,i,n,a,e.C_LINE_COMMENT_MODE,s]}]}}var Z_=X_;function J_(e){const t=e.COMMENT(/\{/,/\}/,{contains:["self"]});return{name:"Parser3",subLanguage:"xml",relevance:0,contains:[e.COMMENT("^#","$"),e.COMMENT(/\^rem\{/,/\}/,{relevance:10,contains:[t]}),{className:"meta",begin:"^@(?:BASE|USE|CLASS|OPTIONS)$",relevance:10},{className:"title",begin:"@[\\w\\-]+\\[[\\w^;\\-]*\\](?:\\[[\\w^;\\-]*\\])?(?:.*)$"},{className:"variable",begin:/\$\{?[\w\-.:]+\}?/},{className:"keyword",begin:/\^[\w\-.:]+/},{className:"number",begin:"\\^#[0-9a-fA-F]+"},e.C_NUMBER_MODE]}}var j_=J_;function ed(e){const t={className:"variable",begin:/\$[\w\d#@][\w\d_]*/},n={className:"variable",begin:/<(?!\/)/,end:/>/};return{name:"Packet Filter config",aliases:["pf.conf"],keywords:{$pattern:/[a-z0-9_<>-]+/,built_in:"block match pass load anchor|5 antispoof|10 set table",keyword:"in out log quick on rdomain inet inet6 proto from port os to route allow-opts divert-packet divert-reply divert-to flags group icmp-type icmp6-type label once probability recieved-on rtable prio queue tos tag tagged user keep fragment for os drop af-to|10 binat-to|10 nat-to|10 rdr-to|10 bitmask least-stats random round-robin source-hash static-port dup-to reply-to route-to parent bandwidth default min max qlimit block-policy debug fingerprints hostid limit loginterface optimization reassemble ruleset-optimization basic none profile skip state-defaults state-policy timeout const counters persist no modulate synproxy state|5 floating if-bound no-sync pflow|10 sloppy source-track global rule max-src-nodes max-src-states max-src-conn max-src-conn-rate overload flush scrub|5 max-mss min-ttl no-df|10 random-id",literal:"all any no-route self urpf-failed egress|5 unknown"},contains:[e.HASH_COMMENT_MODE,e.NUMBER_MODE,e.QUOTE_STRING_MODE,t,n]}}var td=ed;function nd(e){const t=e.COMMENT("--","$"),n="[a-zA-Z_][a-zA-Z_0-9$]*",a="\\$([a-zA-Z_]?|[a-zA-Z_][a-zA-Z_0-9]*)\\$",r="<<\\s*"+n+"\\s*>>",i="ABORT ALTER ANALYZE BEGIN CALL CHECKPOINT|10 CLOSE CLUSTER COMMENT COMMIT COPY CREATE DEALLOCATE DECLARE DELETE DISCARD DO DROP END EXECUTE EXPLAIN FETCH GRANT IMPORT INSERT LISTEN LOAD LOCK MOVE NOTIFY PREPARE REASSIGN|10 REFRESH REINDEX RELEASE RESET REVOKE ROLLBACK SAVEPOINT SECURITY SELECT SET SHOW START TRUNCATE UNLISTEN|10 UPDATE VACUUM|10 VALUES AGGREGATE COLLATION CONVERSION|10 DATABASE DEFAULT PRIVILEGES DOMAIN TRIGGER EXTENSION FOREIGN WRAPPER|10 TABLE FUNCTION GROUP LANGUAGE LARGE OBJECT MATERIALIZED VIEW OPERATOR CLASS FAMILY POLICY PUBLICATION|10 ROLE RULE SCHEMA SEQUENCE SERVER STATISTICS SUBSCRIPTION SYSTEM TABLESPACE CONFIGURATION DICTIONARY PARSER TEMPLATE TYPE USER MAPPING PREPARED ACCESS METHOD CAST AS TRANSFORM TRANSACTION OWNED TO INTO SESSION AUTHORIZATION INDEX PROCEDURE ASSERTION ALL ANALYSE AND ANY ARRAY ASC ASYMMETRIC|10 BOTH CASE CHECK COLLATE COLUMN CONCURRENTLY|10 CONSTRAINT CROSS DEFERRABLE RANGE DESC DISTINCT ELSE EXCEPT FOR FREEZE|10 FROM FULL HAVING ILIKE IN INITIALLY INNER INTERSECT IS ISNULL JOIN LATERAL LEADING LIKE LIMIT NATURAL NOT NOTNULL NULL OFFSET ON ONLY OR ORDER OUTER OVERLAPS PLACING PRIMARY REFERENCES RETURNING SIMILAR SOME SYMMETRIC TABLESAMPLE THEN TRAILING UNION UNIQUE USING VARIADIC|10 VERBOSE WHEN WHERE WINDOW WITH BY RETURNS INOUT OUT SETOF|10 IF STRICT CURRENT CONTINUE OWNER LOCATION OVER PARTITION WITHIN BETWEEN ESCAPE EXTERNAL INVOKER DEFINER WORK RENAME VERSION CONNECTION CONNECT TABLES TEMP TEMPORARY FUNCTIONS SEQUENCES TYPES SCHEMAS OPTION CASCADE RESTRICT ADD ADMIN EXISTS VALID VALIDATE ENABLE DISABLE REPLICA|10 ALWAYS PASSING COLUMNS PATH REF VALUE OVERRIDING IMMUTABLE STABLE VOLATILE BEFORE AFTER EACH ROW PROCEDURAL ROUTINE NO HANDLER VALIDATOR OPTIONS STORAGE OIDS|10 WITHOUT INHERIT DEPENDS CALLED INPUT LEAKPROOF|10 COST ROWS NOWAIT SEARCH UNTIL ENCRYPTED|10 PASSWORD CONFLICT|10 INSTEAD INHERITS CHARACTERISTICS WRITE CURSOR ALSO STATEMENT SHARE EXCLUSIVE INLINE ISOLATION REPEATABLE READ COMMITTED SERIALIZABLE UNCOMMITTED LOCAL GLOBAL SQL PROCEDURES RECURSIVE SNAPSHOT ROLLUP CUBE TRUSTED|10 INCLUDE FOLLOWING PRECEDING UNBOUNDED RANGE GROUPS UNENCRYPTED|10 SYSID FORMAT DELIMITER HEADER QUOTE ENCODING FILTER OFF FORCE_QUOTE FORCE_NOT_NULL FORCE_NULL COSTS BUFFERS TIMING SUMMARY DISABLE_PAGE_SKIPPING RESTART CYCLE GENERATED IDENTITY DEFERRED IMMEDIATE LEVEL LOGGED UNLOGGED OF NOTHING NONE EXCLUDE ATTRIBUTE USAGE ROUTINES TRUE FALSE NAN INFINITY ",s="SUPERUSER NOSUPERUSER CREATEDB NOCREATEDB CREATEROLE NOCREATEROLE INHERIT NOINHERIT LOGIN NOLOGIN REPLICATION NOREPLICATION BYPASSRLS NOBYPASSRLS ",o="ALIAS BEGIN CONSTANT DECLARE END EXCEPTION RETURN PERFORM|10 RAISE GET DIAGNOSTICS STACKED|10 FOREACH LOOP ELSIF EXIT WHILE REVERSE SLICE DEBUG LOG INFO NOTICE WARNING ASSERT OPEN ",l="BIGINT INT8 BIGSERIAL SERIAL8 BIT VARYING VARBIT BOOLEAN BOOL BOX BYTEA CHARACTER CHAR VARCHAR CIDR CIRCLE DATE DOUBLE PRECISION FLOAT8 FLOAT INET INTEGER INT INT4 INTERVAL JSON JSONB LINE LSEG|10 MACADDR MACADDR8 MONEY NUMERIC DEC DECIMAL PATH POINT POLYGON REAL FLOAT4 SMALLINT INT2 SMALLSERIAL|10 SERIAL2|10 SERIAL|10 SERIAL4|10 TEXT TIME ZONE TIMETZ|10 TIMESTAMP TIMESTAMPTZ|10 TSQUERY|10 TSVECTOR|10 TXID_SNAPSHOT|10 UUID XML NATIONAL NCHAR INT4RANGE|10 INT8RANGE|10 NUMRANGE|10 TSRANGE|10 TSTZRANGE|10 DATERANGE|10 ANYELEMENT ANYARRAY ANYNONARRAY ANYENUM ANYRANGE CSTRING INTERNAL RECORD PG_DDL_COMMAND VOID UNKNOWN OPAQUE REFCURSOR NAME OID REGPROC|10 REGPROCEDURE|10 REGOPER|10 REGOPERATOR|10 REGCLASS|10 REGTYPE|10 REGROLE|10 REGNAMESPACE|10 REGCONFIG|10 REGDICTIONARY|10 ",c=l.trim().split(" ").map(function(S){return S.split("|")[0]}).join("|"),_="CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURRENT_CATALOG|10 CURRENT_DATE LOCALTIME LOCALTIMESTAMP CURRENT_ROLE|10 CURRENT_SCHEMA|10 SESSION_USER PUBLIC ",u="FOUND NEW OLD TG_NAME|10 TG_WHEN|10 TG_LEVEL|10 TG_OP|10 TG_RELID|10 TG_RELNAME|10 TG_TABLE_NAME|10 TG_TABLE_SCHEMA|10 TG_NARGS|10 TG_ARGV|10 TG_EVENT|10 TG_TAG|10 ROW_COUNT RESULT_OID|10 PG_CONTEXT|10 RETURNED_SQLSTATE COLUMN_NAME CONSTRAINT_NAME PG_DATATYPE_NAME|10 MESSAGE_TEXT TABLE_NAME SCHEMA_NAME PG_EXCEPTION_DETAIL|10 PG_EXCEPTION_HINT|10 PG_EXCEPTION_CONTEXT|10 ",m="SQLSTATE SQLERRM|10 SUCCESSFUL_COMPLETION WARNING DYNAMIC_RESULT_SETS_RETURNED IMPLICIT_ZERO_BIT_PADDING NULL_VALUE_ELIMINATED_IN_SET_FUNCTION PRIVILEGE_NOT_GRANTED PRIVILEGE_NOT_REVOKED STRING_DATA_RIGHT_TRUNCATION DEPRECATED_FEATURE NO_DATA NO_ADDITIONAL_DYNAMIC_RESULT_SETS_RETURNED SQL_STATEMENT_NOT_YET_COMPLETE CONNECTION_EXCEPTION CONNECTION_DOES_NOT_EXIST CONNECTION_FAILURE SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION SQLSERVER_REJECTED_ESTABLISHMENT_OF_SQLCONNECTION TRANSACTION_RESOLUTION_UNKNOWN PROTOCOL_VIOLATION TRIGGERED_ACTION_EXCEPTION FEATURE_NOT_SUPPORTED INVALID_TRANSACTION_INITIATION LOCATOR_EXCEPTION INVALID_LOCATOR_SPECIFICATION INVALID_GRANTOR INVALID_GRANT_OPERATION INVALID_ROLE_SPECIFICATION DIAGNOSTICS_EXCEPTION STACKED_DIAGNOSTICS_ACCESSED_WITHOUT_ACTIVE_HANDLER CASE_NOT_FOUND CARDINALITY_VIOLATION DATA_EXCEPTION ARRAY_SUBSCRIPT_ERROR CHARACTER_NOT_IN_REPERTOIRE DATETIME_FIELD_OVERFLOW DIVISION_BY_ZERO ERROR_IN_ASSIGNMENT ESCAPE_CHARACTER_CONFLICT INDICATOR_OVERFLOW INTERVAL_FIELD_OVERFLOW INVALID_ARGUMENT_FOR_LOGARITHM INVALID_ARGUMENT_FOR_NTILE_FUNCTION INVALID_ARGUMENT_FOR_NTH_VALUE_FUNCTION INVALID_ARGUMENT_FOR_POWER_FUNCTION INVALID_ARGUMENT_FOR_WIDTH_BUCKET_FUNCTION INVALID_CHARACTER_VALUE_FOR_CAST INVALID_DATETIME_FORMAT INVALID_ESCAPE_CHARACTER INVALID_ESCAPE_OCTET INVALID_ESCAPE_SEQUENCE NONSTANDARD_USE_OF_ESCAPE_CHARACTER INVALID_INDICATOR_PARAMETER_VALUE INVALID_PARAMETER_VALUE INVALID_REGULAR_EXPRESSION INVALID_ROW_COUNT_IN_LIMIT_CLAUSE INVALID_ROW_COUNT_IN_RESULT_OFFSET_CLAUSE INVALID_TABLESAMPLE_ARGUMENT INVALID_TABLESAMPLE_REPEAT INVALID_TIME_ZONE_DISPLACEMENT_VALUE INVALID_USE_OF_ESCAPE_CHARACTER MOST_SPECIFIC_TYPE_MISMATCH NULL_VALUE_NOT_ALLOWED NULL_VALUE_NO_INDICATOR_PARAMETER NUMERIC_VALUE_OUT_OF_RANGE SEQUENCE_GENERATOR_LIMIT_EXCEEDED STRING_DATA_LENGTH_MISMATCH STRING_DATA_RIGHT_TRUNCATION SUBSTRING_ERROR TRIM_ERROR UNTERMINATED_C_STRING ZERO_LENGTH_CHARACTER_STRING FLOATING_POINT_EXCEPTION INVALID_TEXT_REPRESENTATION INVALID_BINARY_REPRESENTATION BAD_COPY_FILE_FORMAT UNTRANSLATABLE_CHARACTER NOT_AN_XML_DOCUMENT INVALID_XML_DOCUMENT INVALID_XML_CONTENT INVALID_XML_COMMENT INVALID_XML_PROCESSING_INSTRUCTION INTEGRITY_CONSTRAINT_VIOLATION RESTRICT_VIOLATION NOT_NULL_VIOLATION FOREIGN_KEY_VIOLATION UNIQUE_VIOLATION CHECK_VIOLATION EXCLUSION_VIOLATION INVALID_CURSOR_STATE INVALID_TRANSACTION_STATE ACTIVE_SQL_TRANSACTION BRANCH_TRANSACTION_ALREADY_ACTIVE HELD_CURSOR_REQUIRES_SAME_ISOLATION_LEVEL INAPPROPRIATE_ACCESS_MODE_FOR_BRANCH_TRANSACTION INAPPROPRIATE_ISOLATION_LEVEL_FOR_BRANCH_TRANSACTION NO_ACTIVE_SQL_TRANSACTION_FOR_BRANCH_TRANSACTION READ_ONLY_SQL_TRANSACTION SCHEMA_AND_DATA_STATEMENT_MIXING_NOT_SUPPORTED NO_ACTIVE_SQL_TRANSACTION IN_FAILED_SQL_TRANSACTION IDLE_IN_TRANSACTION_SESSION_TIMEOUT INVALID_SQL_STATEMENT_NAME TRIGGERED_DATA_CHANGE_VIOLATION INVALID_AUTHORIZATION_SPECIFICATION INVALID_PASSWORD DEPENDENT_PRIVILEGE_DESCRIPTORS_STILL_EXIST DEPENDENT_OBJECTS_STILL_EXIST INVALID_TRANSACTION_TERMINATION SQL_ROUTINE_EXCEPTION FUNCTION_EXECUTED_NO_RETURN_STATEMENT MODIFYING_SQL_DATA_NOT_PERMITTED PROHIBITED_SQL_STATEMENT_ATTEMPTED READING_SQL_DATA_NOT_PERMITTED INVALID_CURSOR_NAME EXTERNAL_ROUTINE_EXCEPTION CONTAINING_SQL_NOT_PERMITTED MODIFYING_SQL_DATA_NOT_PERMITTED PROHIBITED_SQL_STATEMENT_ATTEMPTED READING_SQL_DATA_NOT_PERMITTED EXTERNAL_ROUTINE_INVOCATION_EXCEPTION INVALID_SQLSTATE_RETURNED NULL_VALUE_NOT_ALLOWED TRIGGER_PROTOCOL_VIOLATED SRF_PROTOCOL_VIOLATED EVENT_TRIGGER_PROTOCOL_VIOLATED SAVEPOINT_EXCEPTION INVALID_SAVEPOINT_SPECIFICATION INVALID_CATALOG_NAME INVALID_SCHEMA_NAME TRANSACTION_ROLLBACK TRANSACTION_INTEGRITY_CONSTRAINT_VIOLATION SERIALIZATION_FAILURE STATEMENT_COMPLETION_UNKNOWN DEADLOCK_DETECTED SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION SYNTAX_ERROR INSUFFICIENT_PRIVILEGE CANNOT_COERCE GROUPING_ERROR WINDOWING_ERROR INVALID_RECURSION INVALID_FOREIGN_KEY INVALID_NAME NAME_TOO_LONG RESERVED_NAME DATATYPE_MISMATCH INDETERMINATE_DATATYPE COLLATION_MISMATCH INDETERMINATE_COLLATION WRONG_OBJECT_TYPE GENERATED_ALWAYS UNDEFINED_COLUMN UNDEFINED_FUNCTION UNDEFINED_TABLE UNDEFINED_PARAMETER UNDEFINED_OBJECT DUPLICATE_COLUMN DUPLICATE_CURSOR DUPLICATE_DATABASE DUPLICATE_FUNCTION DUPLICATE_PREPARED_STATEMENT DUPLICATE_SCHEMA DUPLICATE_TABLE DUPLICATE_ALIAS DUPLICATE_OBJECT AMBIGUOUS_COLUMN AMBIGUOUS_FUNCTION AMBIGUOUS_PARAMETER AMBIGUOUS_ALIAS INVALID_COLUMN_REFERENCE INVALID_COLUMN_DEFINITION INVALID_CURSOR_DEFINITION INVALID_DATABASE_DEFINITION INVALID_FUNCTION_DEFINITION INVALID_PREPARED_STATEMENT_DEFINITION INVALID_SCHEMA_DEFINITION INVALID_TABLE_DEFINITION INVALID_OBJECT_DEFINITION WITH_CHECK_OPTION_VIOLATION INSUFFICIENT_RESOURCES DISK_FULL OUT_OF_MEMORY TOO_MANY_CONNECTIONS CONFIGURATION_LIMIT_EXCEEDED PROGRAM_LIMIT_EXCEEDED STATEMENT_TOO_COMPLEX TOO_MANY_COLUMNS TOO_MANY_ARGUMENTS OBJECT_NOT_IN_PREREQUISITE_STATE OBJECT_IN_USE CANT_CHANGE_RUNTIME_PARAM LOCK_NOT_AVAILABLE OPERATOR_INTERVENTION QUERY_CANCELED ADMIN_SHUTDOWN CRASH_SHUTDOWN CANNOT_CONNECT_NOW DATABASE_DROPPED SYSTEM_ERROR IO_ERROR UNDEFINED_FILE DUPLICATE_FILE SNAPSHOT_TOO_OLD CONFIG_FILE_ERROR LOCK_FILE_EXISTS FDW_ERROR FDW_COLUMN_NAME_NOT_FOUND FDW_DYNAMIC_PARAMETER_VALUE_NEEDED FDW_FUNCTION_SEQUENCE_ERROR FDW_INCONSISTENT_DESCRIPTOR_INFORMATION FDW_INVALID_ATTRIBUTE_VALUE FDW_INVALID_COLUMN_NAME FDW_INVALID_COLUMN_NUMBER FDW_INVALID_DATA_TYPE FDW_INVALID_DATA_TYPE_DESCRIPTORS FDW_INVALID_DESCRIPTOR_FIELD_IDENTIFIER FDW_INVALID_HANDLE FDW_INVALID_OPTION_INDEX FDW_INVALID_OPTION_NAME FDW_INVALID_STRING_LENGTH_OR_BUFFER_LENGTH FDW_INVALID_STRING_FORMAT FDW_INVALID_USE_OF_NULL_POINTER FDW_TOO_MANY_HANDLES FDW_OUT_OF_MEMORY FDW_NO_SCHEMAS FDW_OPTION_NAME_NOT_FOUND FDW_REPLY_HANDLE FDW_SCHEMA_NOT_FOUND FDW_TABLE_NOT_FOUND FDW_UNABLE_TO_CREATE_EXECUTION FDW_UNABLE_TO_CREATE_REPLY FDW_UNABLE_TO_ESTABLISH_CONNECTION PLPGSQL_ERROR RAISE_EXCEPTION NO_DATA_FOUND TOO_MANY_ROWS ASSERT_FAILURE INTERNAL_ERROR DATA_CORRUPTED INDEX_CORRUPTED ",E="ARRAY_AGG AVG BIT_AND BIT_OR BOOL_AND BOOL_OR COUNT EVERY JSON_AGG JSONB_AGG JSON_OBJECT_AGG JSONB_OBJECT_AGG MAX MIN MODE STRING_AGG SUM XMLAGG CORR COVAR_POP COVAR_SAMP REGR_AVGX REGR_AVGY REGR_COUNT REGR_INTERCEPT REGR_R2 REGR_SLOPE REGR_SXX REGR_SXY REGR_SYY STDDEV STDDEV_POP STDDEV_SAMP VARIANCE VAR_POP VAR_SAMP PERCENTILE_CONT PERCENTILE_DISC ROW_NUMBER RANK DENSE_RANK PERCENT_RANK CUME_DIST NTILE LAG LEAD FIRST_VALUE LAST_VALUE NTH_VALUE NUM_NONNULLS NUM_NULLS ABS CBRT CEIL CEILING DEGREES DIV EXP FLOOR LN LOG MOD PI POWER RADIANS ROUND SCALE SIGN SQRT TRUNC WIDTH_BUCKET RANDOM SETSEED ACOS ACOSD ASIN ASIND ATAN ATAND ATAN2 ATAN2D COS COSD COT COTD SIN SIND TAN TAND BIT_LENGTH CHAR_LENGTH CHARACTER_LENGTH LOWER OCTET_LENGTH OVERLAY POSITION SUBSTRING TREAT TRIM UPPER ASCII BTRIM CHR CONCAT CONCAT_WS CONVERT CONVERT_FROM CONVERT_TO DECODE ENCODE INITCAP LEFT LENGTH LPAD LTRIM MD5 PARSE_IDENT PG_CLIENT_ENCODING QUOTE_IDENT|10 QUOTE_LITERAL|10 QUOTE_NULLABLE|10 REGEXP_MATCH REGEXP_MATCHES REGEXP_REPLACE REGEXP_SPLIT_TO_ARRAY REGEXP_SPLIT_TO_TABLE REPEAT REPLACE REVERSE RIGHT RPAD RTRIM SPLIT_PART STRPOS SUBSTR TO_ASCII TO_HEX TRANSLATE OCTET_LENGTH GET_BIT GET_BYTE SET_BIT SET_BYTE TO_CHAR TO_DATE TO_NUMBER TO_TIMESTAMP AGE CLOCK_TIMESTAMP|10 DATE_PART DATE_TRUNC ISFINITE JUSTIFY_DAYS JUSTIFY_HOURS JUSTIFY_INTERVAL MAKE_DATE MAKE_INTERVAL|10 MAKE_TIME MAKE_TIMESTAMP|10 MAKE_TIMESTAMPTZ|10 NOW STATEMENT_TIMESTAMP|10 TIMEOFDAY TRANSACTION_TIMESTAMP|10 ENUM_FIRST ENUM_LAST ENUM_RANGE AREA CENTER DIAMETER HEIGHT ISCLOSED ISOPEN NPOINTS PCLOSE POPEN RADIUS WIDTH BOX BOUND_BOX CIRCLE LINE LSEG PATH POLYGON ABBREV BROADCAST HOST HOSTMASK MASKLEN NETMASK NETWORK SET_MASKLEN TEXT INET_SAME_FAMILY INET_MERGE MACADDR8_SET7BIT ARRAY_TO_TSVECTOR GET_CURRENT_TS_CONFIG NUMNODE PLAINTO_TSQUERY PHRASETO_TSQUERY WEBSEARCH_TO_TSQUERY QUERYTREE SETWEIGHT STRIP TO_TSQUERY TO_TSVECTOR JSON_TO_TSVECTOR JSONB_TO_TSVECTOR TS_DELETE TS_FILTER TS_HEADLINE TS_RANK TS_RANK_CD TS_REWRITE TSQUERY_PHRASE TSVECTOR_TO_ARRAY TSVECTOR_UPDATE_TRIGGER TSVECTOR_UPDATE_TRIGGER_COLUMN XMLCOMMENT XMLCONCAT XMLELEMENT XMLFOREST XMLPI XMLROOT XMLEXISTS XML_IS_WELL_FORMED XML_IS_WELL_FORMED_DOCUMENT XML_IS_WELL_FORMED_CONTENT XPATH XPATH_EXISTS XMLTABLE XMLNAMESPACES TABLE_TO_XML TABLE_TO_XMLSCHEMA TABLE_TO_XML_AND_XMLSCHEMA QUERY_TO_XML QUERY_TO_XMLSCHEMA QUERY_TO_XML_AND_XMLSCHEMA CURSOR_TO_XML CURSOR_TO_XMLSCHEMA SCHEMA_TO_XML SCHEMA_TO_XMLSCHEMA SCHEMA_TO_XML_AND_XMLSCHEMA DATABASE_TO_XML DATABASE_TO_XMLSCHEMA DATABASE_TO_XML_AND_XMLSCHEMA XMLATTRIBUTES TO_JSON TO_JSONB ARRAY_TO_JSON ROW_TO_JSON JSON_BUILD_ARRAY JSONB_BUILD_ARRAY JSON_BUILD_OBJECT JSONB_BUILD_OBJECT JSON_OBJECT JSONB_OBJECT JSON_ARRAY_LENGTH JSONB_ARRAY_LENGTH JSON_EACH JSONB_EACH JSON_EACH_TEXT JSONB_EACH_TEXT JSON_EXTRACT_PATH JSONB_EXTRACT_PATH JSON_OBJECT_KEYS JSONB_OBJECT_KEYS JSON_POPULATE_RECORD JSONB_POPULATE_RECORD JSON_POPULATE_RECORDSET JSONB_POPULATE_RECORDSET JSON_ARRAY_ELEMENTS JSONB_ARRAY_ELEMENTS JSON_ARRAY_ELEMENTS_TEXT JSONB_ARRAY_ELEMENTS_TEXT JSON_TYPEOF JSONB_TYPEOF JSON_TO_RECORD JSONB_TO_RECORD JSON_TO_RECORDSET JSONB_TO_RECORDSET JSON_STRIP_NULLS JSONB_STRIP_NULLS JSONB_SET JSONB_INSERT JSONB_PRETTY CURRVAL LASTVAL NEXTVAL SETVAL COALESCE NULLIF GREATEST LEAST ARRAY_APPEND ARRAY_CAT ARRAY_NDIMS ARRAY_DIMS ARRAY_FILL ARRAY_LENGTH ARRAY_LOWER ARRAY_POSITION ARRAY_POSITIONS ARRAY_PREPEND ARRAY_REMOVE ARRAY_REPLACE ARRAY_TO_STRING ARRAY_UPPER CARDINALITY STRING_TO_ARRAY UNNEST ISEMPTY LOWER_INC UPPER_INC LOWER_INF UPPER_INF RANGE_MERGE GENERATE_SERIES GENERATE_SUBSCRIPTS CURRENT_DATABASE CURRENT_QUERY CURRENT_SCHEMA|10 CURRENT_SCHEMAS|10 INET_CLIENT_ADDR INET_CLIENT_PORT INET_SERVER_ADDR INET_SERVER_PORT ROW_SECURITY_ACTIVE FORMAT_TYPE TO_REGCLASS TO_REGPROC TO_REGPROCEDURE TO_REGOPER TO_REGOPERATOR TO_REGTYPE TO_REGNAMESPACE TO_REGROLE COL_DESCRIPTION OBJ_DESCRIPTION SHOBJ_DESCRIPTION TXID_CURRENT TXID_CURRENT_IF_ASSIGNED TXID_CURRENT_SNAPSHOT TXID_SNAPSHOT_XIP TXID_SNAPSHOT_XMAX TXID_SNAPSHOT_XMIN TXID_VISIBLE_IN_SNAPSHOT TXID_STATUS CURRENT_SETTING SET_CONFIG BRIN_SUMMARIZE_NEW_VALUES BRIN_SUMMARIZE_RANGE BRIN_DESUMMARIZE_RANGE GIN_CLEAN_PENDING_LIST SUPPRESS_REDUNDANT_UPDATES_TRIGGER LO_FROM_BYTEA LO_PUT LO_GET LO_CREAT LO_CREATE LO_UNLINK LO_IMPORT LO_EXPORT LOREAD LOWRITE GROUPING CAST ".trim().split(" ").map(function(S){return S.split("|")[0]}).join("|");return{name:"PostgreSQL",aliases:["postgres","postgresql"],case_insensitive:!0,keywords:{keyword:i+o+s,built_in:_+u+m},illegal:/:==|\W\s*\(\*|(^|\s)\$[a-z]|\{\{|[a-z]:\s*$|\.\.\.|TO:|DO:/,contains:[{className:"keyword",variants:[{begin:/\bTEXT\s*SEARCH\b/},{begin:/\b(PRIMARY|FOREIGN|FOR(\s+NO)?)\s+KEY\b/},{begin:/\bPARALLEL\s+(UNSAFE|RESTRICTED|SAFE)\b/},{begin:/\bSTORAGE\s+(PLAIN|EXTERNAL|EXTENDED|MAIN)\b/},{begin:/\bMATCH\s+(FULL|PARTIAL|SIMPLE)\b/},{begin:/\bNULLS\s+(FIRST|LAST)\b/},{begin:/\bEVENT\s+TRIGGER\b/},{begin:/\b(MAPPING|OR)\s+REPLACE\b/},{begin:/\b(FROM|TO)\s+(PROGRAM|STDIN|STDOUT)\b/},{begin:/\b(SHARE|EXCLUSIVE)\s+MODE\b/},{begin:/\b(LEFT|RIGHT)\s+(OUTER\s+)?JOIN\b/},{begin:/\b(FETCH|MOVE)\s+(NEXT|PRIOR|FIRST|LAST|ABSOLUTE|RELATIVE|FORWARD|BACKWARD)\b/},{begin:/\bPRESERVE\s+ROWS\b/},{begin:/\bDISCARD\s+PLANS\b/},{begin:/\bREFERENCING\s+(OLD|NEW)\b/},{begin:/\bSKIP\s+LOCKED\b/},{begin:/\bGROUPING\s+SETS\b/},{begin:/\b(BINARY|INSENSITIVE|SCROLL|NO\s+SCROLL)\s+(CURSOR|FOR)\b/},{begin:/\b(WITH|WITHOUT)\s+HOLD\b/},{begin:/\bWITH\s+(CASCADED|LOCAL)\s+CHECK\s+OPTION\b/},{begin:/\bEXCLUDE\s+(TIES|NO\s+OTHERS)\b/},{begin:/\bFORMAT\s+(TEXT|XML|JSON|YAML)\b/},{begin:/\bSET\s+((SESSION|LOCAL)\s+)?NAMES\b/},{begin:/\bIS\s+(NOT\s+)?UNKNOWN\b/},{begin:/\bSECURITY\s+LABEL\b/},{begin:/\bSTANDALONE\s+(YES|NO|NO\s+VALUE)\b/},{begin:/\bWITH\s+(NO\s+)?DATA\b/},{begin:/\b(FOREIGN|SET)\s+DATA\b/},{begin:/\bSET\s+(CATALOG|CONSTRAINTS)\b/},{begin:/\b(WITH|FOR)\s+ORDINALITY\b/},{begin:/\bIS\s+(NOT\s+)?DOCUMENT\b/},{begin:/\bXML\s+OPTION\s+(DOCUMENT|CONTENT)\b/},{begin:/\b(STRIP|PRESERVE)\s+WHITESPACE\b/},{begin:/\bNO\s+(ACTION|MAXVALUE|MINVALUE)\b/},{begin:/\bPARTITION\s+BY\s+(RANGE|LIST|HASH)\b/},{begin:/\bAT\s+TIME\s+ZONE\b/},{begin:/\bGRANTED\s+BY\b/},{begin:/\bRETURN\s+(QUERY|NEXT)\b/},{begin:/\b(ATTACH|DETACH)\s+PARTITION\b/},{begin:/\bFORCE\s+ROW\s+LEVEL\s+SECURITY\b/},{begin:/\b(INCLUDING|EXCLUDING)\s+(COMMENTS|CONSTRAINTS|DEFAULTS|IDENTITY|INDEXES|STATISTICS|STORAGE|ALL)\b/},{begin:/\bAS\s+(ASSIGNMENT|IMPLICIT|PERMISSIVE|RESTRICTIVE|ENUM|RANGE)\b/}]},{begin:/\b(FORMAT|FAMILY|VERSION)\s*\(/},{begin:/\bINCLUDE\s*\(/,keywords:"INCLUDE"},{begin:/\bRANGE(?!\s*(BETWEEN|UNBOUNDED|CURRENT|[-0-9]+))/},{begin:/\b(VERSION|OWNER|TEMPLATE|TABLESPACE|CONNECTION\s+LIMIT|PROCEDURE|RESTRICT|JOIN|PARSER|COPY|START|END|COLLATION|INPUT|ANALYZE|STORAGE|LIKE|DEFAULT|DELIMITER|ENCODING|COLUMN|CONSTRAINT|TABLE|SCHEMA)\s*=/},{begin:/\b(PG_\w+?|HAS_[A-Z_]+_PRIVILEGE)\b/,relevance:10},{begin:/\bEXTRACT\s*\(/,end:/\bFROM\b/,returnEnd:!0,keywords:{type:"CENTURY DAY DECADE DOW DOY EPOCH HOUR ISODOW ISOYEAR MICROSECONDS MILLENNIUM MILLISECONDS MINUTE MONTH QUARTER SECOND TIMEZONE TIMEZONE_HOUR TIMEZONE_MINUTE WEEK YEAR"}},{begin:/\b(XMLELEMENT|XMLPI)\s*\(\s*NAME/,keywords:{keyword:"NAME"}},{begin:/\b(XMLPARSE|XMLSERIALIZE)\s*\(\s*(DOCUMENT|CONTENT)/,keywords:{keyword:"DOCUMENT CONTENT"}},{beginKeywords:"CACHE INCREMENT MAXVALUE MINVALUE",end:e.C_NUMBER_RE,returnEnd:!0,keywords:"BY CACHE INCREMENT MAXVALUE MINVALUE"},{className:"type",begin:/\b(WITH|WITHOUT)\s+TIME\s+ZONE\b/},{className:"type",begin:/\bINTERVAL\s+(YEAR|MONTH|DAY|HOUR|MINUTE|SECOND)(\s+TO\s+(MONTH|HOUR|MINUTE|SECOND))?\b/},{begin:/\bRETURNS\s+(LANGUAGE_HANDLER|TRIGGER|EVENT_TRIGGER|FDW_HANDLER|INDEX_AM_HANDLER|TSM_HANDLER)\b/,keywords:{keyword:"RETURNS",type:"LANGUAGE_HANDLER TRIGGER EVENT_TRIGGER FDW_HANDLER INDEX_AM_HANDLER TSM_HANDLER"}},{begin:"\\b("+E+")\\s*\\("},{begin:"\\.("+c+")\\b"},{begin:"\\b("+c+")\\s+PATH\\b",keywords:{keyword:"PATH",type:l.replace("PATH ","")}},{className:"type",begin:"\\b("+c+")\\b"},{className:"string",begin:"'",end:"'",contains:[{begin:"''"}]},{className:"string",begin:"(e|E|u&|U&)'",end:"'",contains:[{begin:"\\\\."}],relevance:10},e.END_SAME_AS_BEGIN({begin:a,end:a,contains:[{subLanguage:["pgsql","perl","python","tcl","r","lua","java","php","ruby","bash","scheme","xml","json"],endsWithParent:!0}]}),{begin:'"',end:'"',contains:[{begin:'""'}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t,{className:"meta",variants:[{begin:"%(ROW)?TYPE",relevance:10},{begin:"\\$\\d+"},{begin:"^#\\w",end:"$"}]},{className:"symbol",begin:r,relevance:10}]}}var ad=nd;function rd(e){const t={className:"variable",begin:"\\$+[a-zA-Z_\x7F-\xFF][a-zA-Z0-9_\x7F-\xFF]*(?![A-Za-z0-9])(?![$])"},n={className:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?[=]?/},{begin:/\?>/}]},a={className:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},r=e.inherit(e.APOS_STRING_MODE,{illegal:null}),i=e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(a)}),s=e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*(\w+)\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(a)}),o={className:"string",contains:[e.BACKSLASH_ESCAPE,n],variants:[e.inherit(r,{begin:"b'",end:"'"}),e.inherit(i,{begin:'b"',end:'"'}),i,r,s]},l={className:"number",variants:[{begin:"\\b0b[01]+(?:_[01]+)*\\b"},{begin:"\\b0o[0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0x[\\da-f]+(?:_[\\da-f]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:e[+-]?\\d+)?"}],relevance:0},c={keyword:"__CLASS__ __DIR__ __FILE__ __FUNCTION__ __LINE__ __METHOD__ __NAMESPACE__ __TRAIT__ die echo exit include include_once print require require_once array abstract and as binary bool boolean break callable case catch class clone const continue declare default do double else elseif empty enddeclare endfor endforeach endif endswitch endwhile enum eval extends final finally float for foreach from global goto if implements instanceof insteadof int integer interface isset iterable list match|0 mixed new object or private protected public real return string switch throw trait try unset use var void while xor yield",literal:"false null true",built_in:"Error|0 AppendIterator ArgumentCountError ArithmeticError ArrayIterator ArrayObject AssertionError BadFunctionCallException BadMethodCallException CachingIterator CallbackFilterIterator CompileError Countable DirectoryIterator DivisionByZeroError DomainException EmptyIterator ErrorException Exception FilesystemIterator FilterIterator GlobIterator InfiniteIterator InvalidArgumentException IteratorIterator LengthException LimitIterator LogicException MultipleIterator NoRewindIterator OutOfBoundsException OutOfRangeException OuterIterator OverflowException ParentIterator ParseError RangeException RecursiveArrayIterator RecursiveCachingIterator RecursiveCallbackFilterIterator RecursiveDirectoryIterator RecursiveFilterIterator RecursiveIterator RecursiveIteratorIterator RecursiveRegexIterator RecursiveTreeIterator RegexIterator RuntimeException SeekableIterator SplDoublyLinkedList SplFileInfo SplFileObject SplFixedArray SplHeap SplMaxHeap SplMinHeap SplObjectStorage SplObserver SplObserver SplPriorityQueue SplQueue SplStack SplSubject SplSubject SplTempFileObject TypeError UnderflowException UnexpectedValueException UnhandledMatchError ArrayAccess Closure Generator Iterator IteratorAggregate Serializable Stringable Throwable Traversable WeakReference WeakMap Directory __PHP_Incomplete_Class parent php_user_filter self static stdClass"};return{aliases:["php3","php4","php5","php6","php7","php8"],case_insensitive:!0,keywords:c,contains:[e.HASH_COMMENT_MODE,e.COMMENT("//","$",{contains:[n]}),e.COMMENT("/\\*","\\*/",{contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.COMMENT("__halt_compiler.+?;",!1,{endsWithParent:!0,keywords:"__halt_compiler"}),n,{className:"keyword",begin:/\$this\b/},t,{begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{className:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:c,contains:["self",t,e.C_BLOCK_COMMENT_MODE,o,l]}]},{className:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"use",relevance:0,end:";",contains:[e.UNDERSCORE_TITLE_MODE]},o,l]}}var id=rd;function od(e){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}var sd=od;function ld(e){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}var cd=ld;function _d(e){const t={keyword:"actor addressof and as be break class compile_error compile_intrinsic consume continue delegate digestof do else elseif embed end error for fun if ifdef in interface is isnt lambda let match new not object or primitive recover repeat return struct then trait try type until use var where while with xor",meta:"iso val tag trn box ref",literal:"this false true"},n={className:"string",begin:'"""',end:'"""',relevance:10},a={className:"string",begin:'"',end:'"',contains:[e.BACKSLASH_ESCAPE]},r={className:"string",begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE],relevance:0},i={className:"type",begin:"\\b_?[A-Z][\\w]*",relevance:0},s={begin:e.IDENT_RE+"'",relevance:0};return{name:"Pony",keywords:t,contains:[i,n,a,r,s,{className:"number",begin:"(-?)(\\b0[xX][a-fA-F0-9]+|\\b0[bB][01]+|(\\b\\d+(_\\d+)?(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",relevance:0},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}}var dd=_d;function ud(e){const t=["string","char","byte","int","long","bool","decimal","single","double","DateTime","xml","array","hashtable","void"],n="Add|Clear|Close|Copy|Enter|Exit|Find|Format|Get|Hide|Join|Lock|Move|New|Open|Optimize|Pop|Push|Redo|Remove|Rename|Reset|Resize|Search|Select|Set|Show|Skip|Split|Step|Switch|Undo|Unlock|Watch|Backup|Checkpoint|Compare|Compress|Convert|ConvertFrom|ConvertTo|Dismount|Edit|Expand|Export|Group|Import|Initialize|Limit|Merge|Mount|Out|Publish|Restore|Save|Sync|Unpublish|Update|Approve|Assert|Build|Complete|Confirm|Deny|Deploy|Disable|Enable|Install|Invoke|Register|Request|Restart|Resume|Start|Stop|Submit|Suspend|Uninstall|Unregister|Wait|Debug|Measure|Ping|Repair|Resolve|Test|Trace|Connect|Disconnect|Read|Receive|Send|Write|Block|Grant|Protect|Revoke|Unblock|Unprotect|Use|ForEach|Sort|Tee|Where",a="-and|-as|-band|-bnot|-bor|-bxor|-casesensitive|-ccontains|-ceq|-cge|-cgt|-cle|-clike|-clt|-cmatch|-cne|-cnotcontains|-cnotlike|-cnotmatch|-contains|-creplace|-csplit|-eq|-exact|-f|-file|-ge|-gt|-icontains|-ieq|-ige|-igt|-ile|-ilike|-ilt|-imatch|-in|-ine|-inotcontains|-inotlike|-inotmatch|-ireplace|-is|-isnot|-isplit|-join|-le|-like|-lt|-match|-ne|-not|-notcontains|-notin|-notlike|-notmatch|-or|-regex|-replace|-shl|-shr|-split|-wildcard|-xor",r={$pattern:/-?[A-z\.\-]+\b/,keyword:"if else foreach return do while until elseif begin for trap data dynamicparam end break throw param continue finally in switch exit filter try process catch hidden static parameter",built_in:"ac asnp cat cd CFS chdir clc clear clhy cli clp cls clv cnsn compare copy cp cpi cpp curl cvpa dbp del diff dir dnsn ebp echo|0 epal epcsv epsn erase etsn exsn fc fhx fl ft fw gal gbp gc gcb gci gcm gcs gdr gerr ghy gi gin gjb gl gm gmo gp gps gpv group gsn gsnp gsv gtz gu gv gwmi h history icm iex ihy ii ipal ipcsv ipmo ipsn irm ise iwmi iwr kill lp ls man md measure mi mount move mp mv nal ndr ni nmo npssc nsn nv ogv oh popd ps pushd pwd r rbp rcjb rcsn rd rdr ren ri rjb rm rmdir rmo rni rnp rp rsn rsnp rujb rv rvpa rwmi sajb sal saps sasv sbp sc scb select set shcm si sl sleep sls sort sp spjb spps spsv start stz sujb sv swmi tee trcm type wget where wjb write"},i=/\w[\w\d]*((-)[\w\d]+)*/,s={begin:"`[\\s\\S]",relevance:0},o={className:"variable",variants:[{begin:/\$\B/},{className:"keyword",begin:/\$this/},{begin:/\$[\w\d][\w\d_:]*/}]},l={className:"literal",begin:/\$(null|true|false)\b/},c={className:"string",variants:[{begin:/"/,end:/"/},{begin:/@"/,end:/^"@/}],contains:[s,o,{className:"variable",begin:/\$[A-z]/,end:/[^A-z]/}]},_={className:"string",variants:[{begin:/'/,end:/'/},{begin:/@'/,end:/^'@/}]},u={className:"doctag",variants:[{begin:/\.(synopsis|description|example|inputs|outputs|notes|link|component|role|functionality)/},{begin:/\.(parameter|forwardhelptargetname|forwardhelpcategory|remotehelprunspace|externalhelp)\s+\S+/}]},m=e.inherit(e.COMMENT(null,null),{variants:[{begin:/#/,end:/$/},{begin:/<#/,end:/#>/}],contains:[u]}),g={className:"built_in",variants:[{begin:"(".concat(n,")+(-)[\\w\\d]+")}]},E={className:"class",beginKeywords:"class enum",end:/\s*[{]/,excludeEnd:!0,relevance:0,contains:[e.TITLE_MODE]},S={className:"function",begin:/function\s+/,end:/\s*\{|$/,excludeEnd:!0,returnBegin:!0,relevance:0,contains:[{begin:"function",relevance:0,className:"keyword"},{className:"title",begin:i,relevance:0},{begin:/\(/,end:/\)/,className:"params",relevance:0,contains:[o]}]},T={begin:/using\s/,end:/$/,returnBegin:!0,contains:[c,_,{className:"keyword",begin:/(using|assembly|command|module|namespace|type)/}]},C={variants:[{className:"operator",begin:"(".concat(a,")\\b")},{className:"literal",begin:/(-)[\w\d]+/,relevance:0}]},R={className:"selector-tag",begin:/@\B/,relevance:0},f={className:"function",begin:/\[.*\]\s*[\w]+[ ]??\(/,end:/$/,returnBegin:!0,relevance:0,contains:[{className:"keyword",begin:"(".concat(r.keyword.toString().replace(/\s/g,"|"),")\\b"),endsParent:!0,relevance:0},e.inherit(e.TITLE_MODE,{endsParent:!0})]},O=[f,m,s,e.NUMBER_MODE,c,_,g,o,l,R],L={begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[].concat("self",O,{begin:"("+t.join("|")+")",className:"built_in",relevance:0},{className:"type",begin:/[\.\w\d]+/,relevance:0})};return f.contains.unshift(L),{name:"PowerShell",aliases:["ps","ps1"],case_insensitive:!0,keywords:r,contains:O.concat(E,S,T,C,L)}}var md=ud;function Ed(e){return{name:"Processing",keywords:{keyword:"BufferedReader PVector PFont PImage PGraphics HashMap boolean byte char color double float int long String Array FloatDict FloatList IntDict IntList JSONArray JSONObject Object StringDict StringList Table TableRow XML false synchronized int abstract float private char boolean static null if const for true while long throw strictfp finally protected import native final return void enum else break transient new catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private",literal:"P2D P3D HALF_PI PI QUARTER_PI TAU TWO_PI",title:"setup draw",built_in:"displayHeight displayWidth mouseY mouseX mousePressed pmouseX pmouseY key keyCode pixels focused frameCount frameRate height width size createGraphics beginDraw createShape loadShape PShape arc ellipse line point quad rect triangle bezier bezierDetail bezierPoint bezierTangent curve curveDetail curvePoint curveTangent curveTightness shape shapeMode beginContour beginShape bezierVertex curveVertex endContour endShape quadraticVertex vertex ellipseMode noSmooth rectMode smooth strokeCap strokeJoin strokeWeight mouseClicked mouseDragged mouseMoved mousePressed mouseReleased mouseWheel keyPressed keyPressedkeyReleased keyTyped print println save saveFrame day hour millis minute month second year background clear colorMode fill noFill noStroke stroke alpha blue brightness color green hue lerpColor red saturation modelX modelY modelZ screenX screenY screenZ ambient emissive shininess specular add createImage beginCamera camera endCamera frustum ortho perspective printCamera printProjection cursor frameRate noCursor exit loop noLoop popStyle pushStyle redraw binary boolean byte char float hex int str unbinary unhex join match matchAll nf nfc nfp nfs split splitTokens trim append arrayCopy concat expand reverse shorten sort splice subset box sphere sphereDetail createInput createReader loadBytes loadJSONArray loadJSONObject loadStrings loadTable loadXML open parseXML saveTable selectFolder selectInput beginRaw beginRecord createOutput createWriter endRaw endRecord PrintWritersaveBytes saveJSONArray saveJSONObject saveStream saveStrings saveXML selectOutput popMatrix printMatrix pushMatrix resetMatrix rotate rotateX rotateY rotateZ scale shearX shearY translate ambientLight directionalLight lightFalloff lights lightSpecular noLights normal pointLight spotLight image imageMode loadImage noTint requestImage tint texture textureMode textureWrap blend copy filter get loadPixels set updatePixels blendMode loadShader PShaderresetShader shader createFont loadFont text textFont textAlign textLeading textMode textSize textWidth textAscent textDescent abs ceil constrain dist exp floor lerp log mag map max min norm pow round sq sqrt acos asin atan atan2 cos degrees radians sin tan noise noiseDetail noiseSeed random randomGaussian randomSeed"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE]}}var pd=Ed;function gd(e){return{name:"Python profiler",contains:[e.C_NUMBER_MODE,{begin:"[a-zA-Z_][\\da-zA-Z_]+\\.[\\da-zA-Z_]{1,3}",end:":",excludeEnd:!0},{begin:"(ncalls|tottime|cumtime)",end:"$",keywords:"ncalls tottime|10 cumtime|10 filename",relevance:10},{begin:"function calls",end:"$",contains:[e.C_NUMBER_MODE],relevance:10},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:"\\(",end:"\\)$",excludeBegin:!0,excludeEnd:!0,relevance:0}]}}var Sd=gd;function Td(e){const t={begin:/[a-z][A-Za-z0-9_]*/,relevance:0},n={className:"symbol",variants:[{begin:/[A-Z][a-zA-Z0-9_]*/},{begin:/_[A-Za-z0-9_]*/}],relevance:0},a={begin:/\(/,end:/\)/,relevance:0},r={begin:/\[/,end:/\]/},i={className:"comment",begin:/%/,end:/$/,contains:[e.PHRASAL_WORDS_MODE]},s={className:"string",begin:/`/,end:/`/,contains:[e.BACKSLASH_ESCAPE]},o={className:"string",begin:/0'(\\'|.)/},l={className:"string",begin:/0'\\s/},_=[t,n,a,{begin:/:-/},r,i,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,s,o,l,e.C_NUMBER_MODE];return a.contains=_,r.contains=_,{name:"Prolog",contains:_.concat([{begin:/\.$/}])}}var bd=Td;function Rd(e){var t="[ \\t\\f]*",n="[ \\t\\f]+",a=t+"[:=]"+t,r=n,i="("+a+"|"+r+")",s="([^\\\\\\W:= \\t\\f\\n]|\\\\.)+",o="([^\\\\:= \\t\\f\\n]|\\\\.)+",l={end:i,relevance:0,starts:{className:"string",end:/$/,relevance:0,contains:[{begin:"\\\\\\\\"},{begin:"\\\\\\n"}]}};return{name:".properties",case_insensitive:!0,illegal:/\S/,contains:[e.COMMENT("^\\s*[!#]","$"),{returnBegin:!0,variants:[{begin:s+a,relevance:1},{begin:s+r,relevance:0}],contains:[{className:"attr",begin:s,endsParent:!0,relevance:0}],starts:l},{begin:o+i,returnBegin:!0,relevance:0,contains:[{className:"meta",begin:o,endsParent:!0,relevance:0}],starts:l},{className:"attr",relevance:0,begin:o+t+"$"}]}}var Nd=Rd;function Cd(e){return{name:"Protocol Buffers",keywords:{keyword:"package import option optional required repeated group oneof",built_in:"double float int32 int64 uint32 uint64 sint32 sint64 fixed32 fixed64 sfixed32 sfixed64 bool string bytes",literal:"true false"},contains:[e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"class",beginKeywords:"message enum service",end:/\{/,illegal:/\n/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]},{className:"function",beginKeywords:"rpc",end:/[{;]/,excludeEnd:!0,keywords:"rpc returns"},{begin:/^\s*[A-Z_]+(?=\s*=[^\n]+;$)/}]}}var fd=Cd;function Od(e){const t={keyword:"and case default else elsif false if in import enherits node or true undef unless main settings $string ",literal:"alias audit before loglevel noop require subscribe tag owner ensure group mode name|0 changes context force incl lens load_path onlyif provider returns root show_diff type_check en_address ip_address realname command environment hour monute month monthday special target weekday creates cwd ogoutput refresh refreshonly tries try_sleep umask backup checksum content ctime force ignore links mtime purge recurse recurselimit replace selinux_ignore_defaults selrange selrole seltype seluser source souirce_permissions sourceselect validate_cmd validate_replacement allowdupe attribute_membership auth_membership forcelocal gid ia_load_module members system host_aliases ip allowed_trunk_vlans description device_url duplex encapsulation etherchannel native_vlan speed principals allow_root auth_class auth_type authenticate_user k_of_n mechanisms rule session_owner shared options device fstype enable hasrestart directory present absent link atboot blockdevice device dump pass remounts poller_tag use message withpath adminfile allow_virtual allowcdrom category configfiles flavor install_options instance package_settings platform responsefile status uninstall_options vendor unless_system_user unless_uid binary control flags hasstatus manifest pattern restart running start stop allowdupe auths expiry gid groups home iterations key_membership keys managehome membership password password_max_age password_min_age profile_membership profiles project purge_ssh_keys role_membership roles salt shell uid baseurl cost descr enabled enablegroups exclude failovermethod gpgcheck gpgkey http_caching include includepkgs keepalive metadata_expire metalink mirrorlist priority protect proxy proxy_password proxy_username repo_gpgcheck s3_enabled skip_if_unavailable sslcacert sslclientcert sslclientkey sslverify mounted",built_in:"architecture augeasversion blockdevices boardmanufacturer boardproductname boardserialnumber cfkey dhcp_servers domain ec2_ ec2_userdata facterversion filesystems ldom fqdn gid hardwareisa hardwaremodel hostname id|0 interfaces ipaddress ipaddress_ ipaddress6 ipaddress6_ iphostnumber is_virtual kernel kernelmajversion kernelrelease kernelversion kernelrelease kernelversion lsbdistcodename lsbdistdescription lsbdistid lsbdistrelease lsbmajdistrelease lsbminordistrelease lsbrelease macaddress macaddress_ macosx_buildversion macosx_productname macosx_productversion macosx_productverson_major macosx_productversion_minor manufacturer memoryfree memorysize netmask metmask_ network_ operatingsystem operatingsystemmajrelease operatingsystemrelease osfamily partitions path physicalprocessorcount processor processorcount productname ps puppetversion rubysitedir rubyversion selinux selinux_config_mode selinux_config_policy selinux_current_mode selinux_current_mode selinux_enforced selinux_policyversion serialnumber sp_ sshdsakey sshecdsakey sshrsakey swapencrypted swapfree swapsize timezone type uniqueid uptime uptime_days uptime_hours uptime_seconds uuid virtual vlans xendomains zfs_version zonenae zones zpool_version"},n=e.COMMENT("#","$"),a="([A-Za-z_]|::)(\\w|::)*",r=e.inherit(e.TITLE_MODE,{begin:a}),i={className:"variable",begin:"\\$"+a},s={className:"string",contains:[e.BACKSLASH_ESCAPE,i],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/}]};return{name:"Puppet",aliases:["pp"],contains:[n,i,s,{beginKeywords:"class",end:"\\{|;",illegal:/=/,contains:[r,n]},{beginKeywords:"define",end:/\{/,contains:[{className:"section",begin:e.IDENT_RE,endsParent:!0}]},{begin:e.IDENT_RE+"\\s+\\{",returnBegin:!0,end:/\S/,contains:[{className:"keyword",begin:e.IDENT_RE},{begin:/\{/,end:/\}/,keywords:t,relevance:0,contains:[s,n,{begin:"[a-zA-Z_]+\\s*=>",returnBegin:!0,end:"=>",contains:[{className:"attr",begin:e.IDENT_RE}]},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},i]}],relevance:0}]}}var Id=Od;function Ad(e){const t={className:"string",begin:'(~)?"',end:'"',illegal:"\\n"},n={className:"symbol",begin:"#[a-zA-Z_]\\w*\\$?"};return{name:"PureBASIC",aliases:["pb","pbi"],keywords:"Align And Array As Break CallDebugger Case CompilerCase CompilerDefault CompilerElse CompilerElseIf CompilerEndIf CompilerEndSelect CompilerError CompilerIf CompilerSelect CompilerWarning Continue Data DataSection Debug DebugLevel Declare DeclareC DeclareCDLL DeclareDLL DeclareModule Default Define Dim DisableASM DisableDebugger DisableExplicit Else ElseIf EnableASM EnableDebugger EnableExplicit End EndDataSection EndDeclareModule EndEnumeration EndIf EndImport EndInterface EndMacro EndModule EndProcedure EndSelect EndStructure EndStructureUnion EndWith Enumeration EnumerationBinary Extends FakeReturn For ForEach ForEver Global Gosub Goto If Import ImportC IncludeBinary IncludeFile IncludePath Interface List Macro MacroExpandedCount Map Module NewList NewMap Next Not Or Procedure ProcedureC ProcedureCDLL ProcedureDLL ProcedureReturn Protected Prototype PrototypeC ReDim Read Repeat Restore Return Runtime Select Shared Static Step Structure StructureUnion Swap Threaded To UndefineMacro Until Until UnuseModule UseModule Wend While With XIncludeFile XOr",contains:[e.COMMENT(";","$",{relevance:0}),{className:"function",begin:"\\b(Procedure|Declare)(C|CDLL|DLL)?\\b",end:"\\(",excludeEnd:!0,returnBegin:!0,contains:[{className:"keyword",begin:"(Procedure|Declare)(C|CDLL|DLL)?",excludeEnd:!0},{className:"type",begin:"\\.\\w*"},e.UNDERSCORE_TITLE_MODE]},t,n]}}var vd=Ad;function yd(e){return e?typeof e=="string"?e:e.source:null}function Dd(e){return hd("(?=",e,")")}function hd(...e){return e.map(n=>yd(n)).join("")}function Md(e){const i={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:["and","as","assert","async","await","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},s={className:"meta",begin:/^(>>>|\.\.\.) /},o={className:"subst",begin:/\{/,end:/\}/,keywords:i,illegal:/#/},l={begin:/\{\{/,relevance:0},c={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,s],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,s],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,s,l,o]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,s,l,o]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,l,o]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,l,o]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},_="[0-9](_?[0-9])*",u=`(\\b(${_}))?\\.(${_})|\\b(${_})\\.`,m={className:"number",relevance:0,variants:[{begin:`(\\b(${_})|(${u}))[eE][+-]?(${_})[jJ]?\\b`},{begin:`(${u})[jJ]?`},{begin:"\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?\\b"},{begin:"\\b0[bB](_?[01])+[lL]?\\b"},{begin:"\\b0[oO](_?[0-7])+[lL]?\\b"},{begin:"\\b0[xX](_?[0-9a-fA-F])+[lL]?\\b"},{begin:`\\b(${_})[jJ]\\b`}]},g={className:"comment",begin:Dd(/# type:/),end:/$/,keywords:i,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},E={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:["self",s,m,c,e.HASH_COMMENT_MODE]}]};return o.contains=[c,m,s],{name:"Python",aliases:["py","gyp","ipython"],keywords:i,illegal:/(<\/|->|\?)|=>/,contains:[s,m,{begin:/\bself\b/},{beginKeywords:"if",relevance:0},c,g,e.HASH_COMMENT_MODE,{variants:[{className:"function",beginKeywords:"def"},{className:"class",beginKeywords:"class"}],end:/:/,illegal:/[${=;\n,]/,contains:[e.UNDERSCORE_TITLE_MODE,E,{begin:/->/,endsWithParent:!0,keywords:i}]},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[m,E,c]}]}}var Ld=Md;function xd(e){return{aliases:["pycon"],contains:[{className:"meta",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}var Pd=xd;function wd(e){return{name:"Q",aliases:["k","kdb"],keywords:{$pattern:/(`?)[A-Za-z0-9_]+\b/,keyword:"do while select delete by update from",literal:"0b 1b",built_in:"neg not null string reciprocal floor ceiling signum mod xbar xlog and or each scan over prior mmu lsq inv md5 ltime gtime count first var dev med cov cor all any rand sums prds mins maxs fills deltas ratios avgs differ prev next rank reverse iasc idesc asc desc msum mcount mavg mdev xrank mmin mmax xprev rotate distinct group where flip type key til get value attr cut set upsert raze union inter except cross sv vs sublist enlist read0 read1 hopen hclose hdel hsym hcount peach system ltrim rtrim trim lower upper ssr view tables views cols xcols keys xkey xcol xasc xdesc fkeys meta lj aj aj0 ij pj asof uj ww wj wj1 fby xgroup ungroup ej save load rsave rload show csv parse eval min max avg wavg wsum sin cos tan sum",type:"`float `double int `timestamp `timespan `datetime `time `boolean `symbol `char `byte `short `long `real `month `date `minute `second `guid"},contains:[e.C_LINE_COMMENT_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE]}}var kd=wd;function Ud(e){return e?typeof e=="string"?e:e.source:null}function Fd(...e){return e.map(n=>Ud(n)).join("")}function Bd(e){const t={keyword:"in of on if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await import",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Behavior bool color coordinate date double enumeration font geocircle georectangle geoshape int list matrix4x4 parent point quaternion real rect size string url variant vector2d vector3d vector4d Promise"},n="[a-zA-Z_][a-zA-Z0-9\\._]*",a={className:"keyword",begin:"\\bproperty\\b",starts:{className:"string",end:"(:|=|;|,|//|/\\*|$)",returnEnd:!0}},r={className:"keyword",begin:"\\bsignal\\b",starts:{className:"string",end:"(\\(|:|=|;|,|//|/\\*|$)",returnEnd:!0}},i={className:"attribute",begin:"\\bid\\s*:",starts:{className:"string",end:n,returnEnd:!1}},s={begin:n+"\\s*:",returnBegin:!0,contains:[{className:"attribute",begin:n,end:"\\s*:",excludeEnd:!0,relevance:0}],relevance:0},o={begin:Fd(n,/\s*\{/),end:/\{/,returnBegin:!0,relevance:0,contains:[e.inherit(e.TITLE_MODE,{begin:n})]};return{name:"QML",aliases:["qt"],case_insensitive:!1,keywords:t,contains:[{className:"meta",begin:/^\s*['"]use (strict|asm)['"]/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,{className:"subst",begin:"\\$\\{",end:"\\}"}]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:e.C_NUMBER_RE}],relevance:0},{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.REGEXP_MODE,{begin:/\s*[);\]]/,relevance:0,subLanguage:"xml"}],relevance:0},r,a,{className:"function",beginKeywords:"function",end:/\{/,excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}],illegal:/\[|%/},{begin:"\\."+e.IDENT_RE,relevance:0},i,s,o],illegal:/#/}}var Gd=Bd;function Yd(e){return e?typeof e=="string"?e:e.source:null}function Hd(e){return mt("(?=",e,")")}function mt(...e){return e.map(n=>Yd(n)).join("")}function Vd(e){const t=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,n=/[a-zA-Z][a-zA-Z_0-9]*/;return{name:"R",illegal:/->/,keywords:{$pattern:t,keyword:"function if in break next repeat else for while",literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"},compilerExtensions:[(a,r)=>{if(!a.beforeMatch)return;if(a.starts)throw new Error("beforeMatch cannot be used with starts");const i=Object.assign({},a);Object.keys(a).forEach(s=>{delete a[s]}),a.begin=mt(i.beforeMatch,Hd(i.begin)),a.starts={relevance:0,contains:[Object.assign(i,{endsParent:!0})]},a.relevance=0,delete i.beforeMatch}],contains:[e.COMMENT(/#'/,/$/,{contains:[{className:"doctag",begin:"@examples",starts:{contains:[{begin:/\n/},{begin:/#'\s*(?=@[a-zA-Z]+)/,endsParent:!0},{begin:/#'/,end:/$/,excludeBegin:!0}]}},{className:"doctag",begin:"@param",end:/$/,contains:[{className:"variable",variants:[{begin:t},{begin:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{className:"doctag",begin:/@[a-zA-Z]+/},{className:"meta-keyword",begin:/\\[a-zA-Z]+/}]}),e.HASH_COMMENT_MODE,{className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',relevance:0},{begin:"'",end:"'",relevance:0}]},{className:"number",relevance:0,beforeMatch:/([^a-zA-Z0-9._])/,variants:[{match:/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/},{match:/0[xX][0-9a-fA-F]+([pP][+-]?\d+)?[Li]?/},{match:/(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?[Li]?/}]},{begin:"%",end:"%"},{begin:mt(n,"\\s+<-\\s+")},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}}var qd=Vd;function $d(e){function t(L){return L.map(function(h){return h.split("").map(function(w){return"\\"+w}).join("")}).join("|")}const n="~?[a-z$_][0-9a-zA-Z$_]*",a="`?[A-Z$_][0-9a-zA-Z$_]*",r="'?[a-z$_][0-9a-z$_]*",i="\\s*:\\s*[a-z$_][0-9a-z$_]*(\\(\\s*("+r+"\\s*(,"+r+"\\s*)*)?\\))?",s=n+"("+i+"){0,2}",o="("+t(["||","++","**","+.","*","/","*.","/.","..."])+"|\\|>|&&|==|===)",l="\\s+"+o+"\\s+",c={keyword:"and as asr assert begin class constraint do done downto else end exception external for fun function functor if in include inherit initializer land lazy let lor lsl lsr lxor match method mod module mutable new nonrec object of open or private rec sig struct then to try type val virtual when while with",built_in:"array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 ref string unit ",literal:"true false"},_="\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)",u={className:"number",relevance:0,variants:[{begin:_},{begin:"\\(-"+_+"\\)"}]},m={className:"operator",relevance:0,begin:o},g=[{className:"identifier",relevance:0,begin:n},m,u],E=[e.QUOTE_STRING_MODE,m,{className:"module",begin:"\\b"+a,returnBegin:!0,end:".",contains:[{className:"identifier",begin:a,relevance:0}]}],S=[{className:"module",begin:"\\b"+a,returnBegin:!0,end:".",relevance:0,contains:[{className:"identifier",begin:a,relevance:0}]}],T={begin:n,end:"(,|\\n|\\))",relevance:0,contains:[m,{className:"typing",begin:":",end:"(,|\\n)",returnBegin:!0,relevance:0,contains:S}]},C={className:"function",relevance:0,keywords:c,variants:[{begin:"\\s(\\(\\.?.*?\\)|"+n+")\\s*=>",end:"\\s*=>",returnBegin:!0,relevance:0,contains:[{className:"params",variants:[{begin:n},{begin:s},{begin:/\(\s*\)/}]}]},{begin:"\\s\\(\\.?[^;\\|]*\\)\\s*=>",end:"\\s=>",returnBegin:!0,relevance:0,contains:[{className:"params",relevance:0,variants:[T]}]},{begin:"\\(\\.\\s"+n+"\\)\\s*=>"}]};E.push(C);const R={className:"constructor",begin:a+"\\(",end:"\\)",illegal:"\\n",keywords:c,contains:[e.QUOTE_STRING_MODE,m,{className:"params",begin:"\\b"+n}]},f={className:"pattern-match",begin:"\\|",returnBegin:!0,keywords:c,end:"=>",relevance:0,contains:[R,m,{relevance:0,className:"constructor",begin:a}]},O={className:"module-access",keywords:c,returnBegin:!0,variants:[{begin:"\\b("+a+"\\.)+"+n},{begin:"\\b("+a+"\\.)+\\(",end:"\\)",returnBegin:!0,contains:[C,{begin:"\\(",end:"\\)",skip:!0}].concat(E)},{begin:"\\b("+a+"\\.)+\\{",end:/\}/}],contains:E};return S.push(O),{name:"ReasonML",aliases:["re"],keywords:c,illegal:"(:-|:=|\\$\\{|\\+=)",contains:[e.COMMENT("/\\*","\\*/",{illegal:"^(#,\\/\\/)"}),{className:"character",begin:"'(\\\\[^']+|[^'])'",illegal:"\\n",relevance:0},e.QUOTE_STRING_MODE,{className:"literal",begin:"\\(\\)",relevance:0},{className:"literal",begin:"\\[\\|",end:"\\|\\]",relevance:0,contains:g},{className:"literal",begin:"\\[",end:"\\]",relevance:0,contains:g},R,{className:"operator",begin:l,illegal:"-->",relevance:0},u,e.C_LINE_COMMENT_MODE,f,C,{className:"module-def",begin:"\\bmodule\\s+"+n+"\\s+"+a+"\\s+=\\s+\\{",end:/\}/,returnBegin:!0,keywords:c,relevance:0,contains:[{className:"module",relevance:0,begin:a},{begin:/\{/,end:/\}/,skip:!0}].concat(E)},O]}}var zd=$d;function Wd(e){return{name:"RenderMan RIB",keywords:"ArchiveRecord AreaLightSource Atmosphere Attribute AttributeBegin AttributeEnd Basis Begin Blobby Bound Clipping ClippingPlane Color ColorSamples ConcatTransform Cone CoordinateSystem CoordSysTransform CropWindow Curves Cylinder DepthOfField Detail DetailRange Disk Displacement Display End ErrorHandler Exposure Exterior Format FrameAspectRatio FrameBegin FrameEnd GeneralPolygon GeometricApproximation Geometry Hider Hyperboloid Identity Illuminate Imager Interior LightSource MakeCubeFaceEnvironment MakeLatLongEnvironment MakeShadow MakeTexture Matte MotionBegin MotionEnd NuPatch ObjectBegin ObjectEnd ObjectInstance Opacity Option Orientation Paraboloid Patch PatchMesh Perspective PixelFilter PixelSamples PixelVariance Points PointsGeneralPolygons PointsPolygons Polygon Procedural Projection Quantize ReadArchive RelativeDetail ReverseOrientation Rotate Scale ScreenWindow ShadingInterpolation ShadingRate Shutter Sides Skew SolidBegin SolidEnd Sphere SubdivisionMesh Surface TextureCoordinates Torus Transform TransformBegin TransformEnd TransformPoints Translate TrimCurve WorldBegin WorldEnd",illegal:"/}],illegal:/./},e.COMMENT("^#","$"),o,l,s,{begin:/[\w-]+=([^\s{}[\]()>]+)/,relevance:0,returnBegin:!0,contains:[{className:"attribute",begin:/[^=]+/},{begin:/=/,endsWithParent:!0,relevance:0,contains:[o,l,s,{className:"literal",begin:"\\b("+r.split(" ").join("|")+")\\b"},{begin:/("[^"]*"|[^\s{}[\]]+)/}]}]},{className:"number",begin:/\*[0-9a-fA-F]+/},{begin:"\\b("+a.split(" ").join("|")+")([\\s[(\\]|])",returnBegin:!0,contains:[{className:"builtin-name",begin:/\w+/}]},{className:"built_in",variants:[{begin:"(\\.\\./|/|\\s)(("+i.split(" ").join("|")+");?\\s)+"},{begin:/\.\./,relevance:0}]}]}}var Jd=Zd;function jd(e){return{name:"RenderMan RSL",keywords:{keyword:"float color point normal vector matrix while for if do return else break extern continue",built_in:"abs acos ambient area asin atan atmosphere attribute calculatenormal ceil cellnoise clamp comp concat cos degrees depth Deriv diffuse distance Du Dv environment exp faceforward filterstep floor format fresnel incident length lightsource log match max min mod noise normalize ntransform opposite option phong pnoise pow printf ptlined radians random reflect refract renderinfo round setcomp setxcomp setycomp setzcomp shadow sign sin smoothstep specular specularbrdf spline sqrt step tan texture textureinfo trace transform vtransform xcomp ycomp zcomp"},illegal:""}]}}var ru=au;function iu(e){const t="do if then else end until while abort array attrib by call cards cards4 catname continue datalines datalines4 delete delim delimiter display dm drop endsas error file filename footnote format goto in infile informat input keep label leave length libname link list lostcard merge missing modify options output out page put redirect remove rename replace retain return select set skip startsas stop title update waitsas where window x systask add and alter as cascade check create delete describe distinct drop foreign from group having index insert into in key like message modify msgtype not null on or order primary references reset restrict select set table unique update validate view where",n="abs|addr|airy|arcos|arsin|atan|attrc|attrn|band|betainv|blshift|bnot|bor|brshift|bxor|byte|cdf|ceil|cexist|cinv|close|cnonct|collate|compbl|compound|compress|cos|cosh|css|curobs|cv|daccdb|daccdbsl|daccsl|daccsyd|dacctab|dairy|date|datejul|datepart|datetime|day|dclose|depdb|depdbsl|depdbsl|depsl|depsl|depsyd|depsyd|deptab|deptab|dequote|dhms|dif|digamma|dim|dinfo|dnum|dopen|doptname|doptnum|dread|dropnote|dsname|erf|erfc|exist|exp|fappend|fclose|fcol|fdelete|fetch|fetchobs|fexist|fget|fileexist|filename|fileref|finfo|finv|fipname|fipnamel|fipstate|floor|fnonct|fnote|fopen|foptname|foptnum|fpoint|fpos|fput|fread|frewind|frlen|fsep|fuzz|fwrite|gaminv|gamma|getoption|getvarc|getvarn|hbound|hms|hosthelp|hour|ibessel|index|indexc|indexw|input|inputc|inputn|int|intck|intnx|intrr|irr|jbessel|juldate|kurtosis|lag|lbound|left|length|lgamma|libname|libref|log|log10|log2|logpdf|logpmf|logsdf|lowcase|max|mdy|mean|min|minute|mod|month|mopen|mort|n|netpv|nmiss|normal|note|npv|open|ordinal|pathname|pdf|peek|peekc|pmf|point|poisson|poke|probbeta|probbnml|probchi|probf|probgam|probhypr|probit|probnegb|probnorm|probt|put|putc|putn|qtr|quote|ranbin|rancau|ranexp|rangam|range|rank|rannor|ranpoi|rantbl|rantri|ranuni|repeat|resolve|reverse|rewind|right|round|saving|scan|sdf|second|sign|sin|sinh|skewness|soundex|spedis|sqrt|std|stderr|stfips|stname|stnamel|substr|sum|symget|sysget|sysmsg|sysprod|sysrc|system|tan|tanh|time|timepart|tinv|tnonct|today|translate|tranwrd|trigamma|trim|trimn|trunc|uniform|upcase|uss|var|varfmt|varinfmt|varlabel|varlen|varname|varnum|varray|varrayx|vartype|verify|vformat|vformatd|vformatdx|vformatn|vformatnx|vformatw|vformatwx|vformatx|vinarray|vinarrayx|vinformat|vinformatd|vinformatdx|vinformatn|vinformatnx|vinformatw|vinformatwx|vinformatx|vlabel|vlabelx|vlength|vlengthx|vname|vnamex|vtype|vtypex|weekday|year|yyq|zipfips|zipname|zipnamel|zipstate";return{name:"SAS",case_insensitive:!0,keywords:{literal:"null missing _all_ _automatic_ _character_ _infile_ _n_ _name_ _null_ _numeric_ _user_ _webout_",meta:t},contains:[{className:"keyword",begin:/^\s*(proc [\w\d_]+|data|run|quit)[\s;]/},{className:"variable",begin:/&[a-zA-Z_&][a-zA-Z0-9_]*\.?/},{className:"emphasis",begin:/^\s*datalines|cards.*;/,end:/^\s*;\s*$/},{className:"built_in",begin:"%("+"bquote|nrbquote|cmpres|qcmpres|compstor|datatyp|display|do|else|end|eval|global|goto|if|index|input|keydef|label|left|length|let|local|lowcase|macro|mend|nrbquote|nrquote|nrstr|put|qcmpres|qleft|qlowcase|qscan|qsubstr|qsysfunc|qtrim|quote|qupcase|scan|str|substr|superq|syscall|sysevalf|sysexec|sysfunc|sysget|syslput|sysprod|sysrc|sysrput|then|to|trim|unquote|until|upcase|verify|while|window"+")"},{className:"name",begin:/%[a-zA-Z_][a-zA-Z_0-9]*/},{className:"meta",begin:"[^%]("+n+")[(]"},{className:"string",variants:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},e.COMMENT("\\*",";"),e.C_BLOCK_COMMENT_MODE]}}var ou=iu;function su(e){const t={className:"meta",begin:"@[A-Za-z]+"},n={className:"subst",variants:[{begin:"\\$[A-Za-z0-9_]+"},{begin:/\$\{/,end:/\}/}]},a={className:"string",variants:[{begin:'"""',end:'"""'},{begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:'[a-z]+"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,n]},{className:"string",begin:'[a-z]+"""',end:'"""',contains:[n],relevance:10}]},r={className:"symbol",begin:"'\\w[\\w\\d_]*(?!')"},i={className:"type",begin:"\\b[A-Z][A-Za-z0-9_]*",relevance:0},s={className:"title",begin:/[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/,relevance:0},o={className:"class",beginKeywords:"class object trait type",end:/[:={\[\n;]/,excludeEnd:!0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{beginKeywords:"extends with",relevance:10},{begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[i]},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[i]},s]},l={className:"function",beginKeywords:"def",end:/[:={\[(\n;]/,excludeEnd:!0,contains:[s]};return{name:"Scala",keywords:{literal:"true false null",keyword:"type yield lazy override def with val var sealed abstract private trait object if forSome for while throw finally protected extends import final return else break new catch super class case package default try this match continue throws implicit"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,r,i,l,o,e.C_NUMBER_MODE,t]}}var lu=su;function cu(e){const t="[^\\(\\)\\[\\]\\{\\}\",'`;#|\\\\\\s]+",n="(-|\\+)?\\d+([./]\\d+)?",a=n+"[+\\-]"+n+"i",r={$pattern:t,"builtin-name":"case-lambda call/cc class define-class exit-handler field import inherit init-field interface let*-values let-values let/ec mixin opt-lambda override protect provide public rename require require-for-syntax syntax syntax-case syntax-error unit/sig unless when with-syntax and begin call-with-current-continuation call-with-input-file call-with-output-file case cond define define-syntax delay do dynamic-wind else for-each if lambda let let* let-syntax letrec letrec-syntax map or syntax-rules ' * + , ,@ - ... / ; < <= = => > >= ` abs acos angle append apply asin assoc assq assv atan boolean? caar cadr call-with-input-file call-with-output-file call-with-values car cdddar cddddr cdr ceiling char->integer char-alphabetic? char-ci<=? char-ci=? char-ci>? char-downcase char-lower-case? char-numeric? char-ready? char-upcase char-upper-case? char-whitespace? char<=? char=? char>? char? close-input-port close-output-port complex? cons cos current-input-port current-output-port denominator display eof-object? eq? equal? eqv? eval even? exact->inexact exact? exp expt floor force gcd imag-part inexact->exact inexact? input-port? integer->char integer? interaction-environment lcm length list list->string list->vector list-ref list-tail list? load log magnitude make-polar make-rectangular make-string make-vector max member memq memv min modulo negative? newline not null-environment null? number->string number? numerator odd? open-input-file open-output-file output-port? pair? peek-char port? positive? procedure? quasiquote quote quotient rational? rationalize read read-char real-part real? remainder reverse round scheme-report-environment set! set-car! set-cdr! sin sqrt string string->list string->number string->symbol string-append string-ci<=? string-ci=? string-ci>? string-copy string-fill! string-length string-ref string-set! string<=? string=? string>? string? substring symbol->string symbol? tan transcript-off transcript-on truncate values vector vector->list vector-fill! vector-length vector-ref vector-set! with-input-from-file with-output-to-file write write-char zero?"},i={className:"literal",begin:"(#t|#f|#\\\\"+t+"|#\\\\.)"},s={className:"number",variants:[{begin:n,relevance:0},{begin:a,relevance:0},{begin:"#b[0-1]+(/[0-1]+)?"},{begin:"#o[0-7]+(/[0-7]+)?"},{begin:"#x[0-9a-f]+(/[0-9a-f]+)?"}]},o=e.QUOTE_STRING_MODE,l=[e.COMMENT(";","$",{relevance:0}),e.COMMENT("#\\|","\\|#")],c={begin:t,relevance:0},_={className:"symbol",begin:"'"+t},u={endsWithParent:!0,relevance:0},m={variants:[{begin:/'/},{begin:"`"}],contains:[{begin:"\\(",end:"\\)",contains:["self",i,o,s,c,_]}]},g={className:"name",relevance:0,begin:t,keywords:r},S={variants:[{begin:"\\(",end:"\\)"},{begin:"\\[",end:"\\]"}],contains:[{begin:/lambda/,endsWithParent:!0,returnBegin:!0,contains:[g,{endsParent:!0,variants:[{begin:/\(/,end:/\)/},{begin:/\[/,end:/\]/}],contains:[c]}]},g,u]};return u.contains=[i,s,o,c,_,m,S].concat(l),{name:"Scheme",illegal:/\S/,contains:[e.SHEBANG(),s,o,_,m,S].concat(l)}}var _u=cu;function du(e){const t=[e.C_NUMBER_MODE,{className:"string",begin:`'|"`,end:`'|"`,contains:[e.BACKSLASH_ESCAPE,{begin:"''"}]}];return{name:"Scilab",aliases:["sci"],keywords:{$pattern:/%?\w+/,keyword:"abort break case clear catch continue do elseif else endfunction end for function global if pause return resume select try then while",literal:"%f %F %t %T %pi %eps %inf %nan %e %i %z %s",built_in:"abs and acos asin atan ceil cd chdir clearglobal cosh cos cumprod deff disp error exec execstr exists exp eye gettext floor fprintf fread fsolve imag isdef isempty isinfisnan isvector lasterror length load linspace list listfiles log10 log2 log max min msprintf mclose mopen ones or pathconvert poly printf prod pwd rand real round sinh sin size gsort sprintf sqrt strcat strcmps tring sum system tanh tan type typename warning zeros matrix"},illegal:'("|#|/\\*|\\s+/\\w+)',contains:[{className:"function",beginKeywords:"function",end:"$",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)"}]},{begin:"[a-zA-Z_][a-zA-Z_0-9]*[\\.']+",relevance:0},{begin:"\\[",end:"\\][\\.']*",relevance:0,contains:t},e.COMMENT("//","$")].concat(t)}}var uu=du;const mu=e=>({IMPORTANT:{className:"meta",begin:"!important"},HEXCOLOR:{className:"number",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})"},ATTRIBUTE_SELECTOR_MODE:{className:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}}),Eu=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],pu=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],gu=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],Su=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],Tu=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-variant","font-variant-ligatures","font-variation-settings","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","src","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"].reverse();function bu(e){const t=mu(e),n=Su,a=gu,r="@[a-z-]+",i="and or not only",o={className:"variable",begin:"(\\$"+"[a-zA-Z-][a-zA-Z0-9_-]*"+")\\b"};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+Eu.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+a.join("|")+")"},{className:"selector-pseudo",begin:"::("+n.join("|")+")"},o,{begin:/\(/,end:/\)/,contains:[e.CSS_NUMBER_MODE]},{className:"attribute",begin:"\\b("+Tu.join("|")+")\\b"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:":",end:";",contains:[o,t.HEXCOLOR,e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,t.IMPORTANT]},{begin:"@(page|font-face)",lexemes:r,keywords:"@page @font-face"},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:i,attribute:pu.join(" ")},contains:[{begin:r,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},o,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,t.HEXCOLOR,e.CSS_NUMBER_MODE]}]}}var Ru=bu;function Nu(e){return{name:"Shell Session",aliases:["console"],contains:[{className:"meta",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#]/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}var Cu=Nu;function fu(e){const t=["add","and","cmp","cmpg","cmpl","const","div","double","float","goto","if","int","long","move","mul","neg","new","nop","not","or","rem","return","shl","shr","sput","sub","throw","ushr","xor"],n=["aget","aput","array","check","execute","fill","filled","goto/16","goto/32","iget","instance","invoke","iput","monitor","packed","sget","sparse"],a=["transient","constructor","abstract","final","synthetic","public","private","protected","static","bridge","system"];return{name:"Smali",contains:[{className:"string",begin:'"',end:'"',relevance:0},e.COMMENT("#","$",{relevance:0}),{className:"keyword",variants:[{begin:"\\s*\\.end\\s[a-zA-Z0-9]*"},{begin:"^[ ]*\\.[a-zA-Z]*",relevance:0},{begin:"\\s:[a-zA-Z_0-9]*",relevance:0},{begin:"\\s("+a.join("|")+")"}]},{className:"built_in",variants:[{begin:"\\s("+t.join("|")+")\\s"},{begin:"\\s("+t.join("|")+")((-|/)[a-zA-Z0-9]+)+\\s",relevance:10},{begin:"\\s("+n.join("|")+")((-|/)[a-zA-Z0-9]+)*\\s",relevance:10}]},{className:"class",begin:`L[^(;: +]*;`,relevance:0},{begin:"[vp][0-9]+"}]}}var Ou=fu;function Iu(e){const t="[a-z][a-zA-Z0-9_]*",n={className:"string",begin:"\\$.{1}"},a={className:"symbol",begin:"#"+e.UNDERSCORE_IDENT_RE};return{name:"Smalltalk",aliases:["st"],keywords:"self super nil true false thisContext",contains:[e.COMMENT('"','"'),e.APOS_STRING_MODE,{className:"type",begin:"\\b[A-Z][A-Za-z0-9_]*",relevance:0},{begin:t+":",relevance:0},e.C_NUMBER_MODE,a,n,{begin:"\\|[ ]*"+t+"([ ]+"+t+")*[ ]*\\|",returnBegin:!0,end:/\|/,illegal:/\S/,contains:[{begin:"(\\|[ ]*)?"+t}]},{begin:"#\\(",end:"\\)",contains:[e.APOS_STRING_MODE,n,e.C_NUMBER_MODE,a]}]}}var Au=Iu;function vu(e){return{name:"SML (Standard ML)",aliases:["ml"],keywords:{$pattern:"[a-z_]\\w*!?",keyword:"abstype and andalso as case datatype do else end eqtype exception fn fun functor handle if in include infix infixr let local nonfix of op open orelse raise rec sharing sig signature struct structure then type val with withtype where while",built_in:"array bool char exn int list option order real ref string substring vector unit word",literal:"true false NONE SOME LESS EQUAL GREATER nil"},illegal:/\/\/|>>/,contains:[{className:"literal",begin:/\[(\|\|)?\]|\(\)/,relevance:0},e.COMMENT("\\(\\*","\\*\\)",{contains:["self"]}),{className:"symbol",begin:"'[A-Za-z_](?!')[\\w']*"},{className:"type",begin:"`[A-Z][\\w']*"},{className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},{begin:"[a-z_]\\w*'[\\w']*"},e.inherit(e.APOS_STRING_MODE,{className:"string",relevance:0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"number",begin:"\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)",relevance:0},{begin:/[-=]>/}]}}var yu=vu;function Du(e){const t={className:"variable",begin:/\b_+[a-zA-Z]\w*/},n={className:"title",begin:/[a-zA-Z][a-zA-Z0-9]+_fnc_\w*/},a={className:"string",variants:[{begin:'"',end:'"',contains:[{begin:'""',relevance:0}]},{begin:"'",end:"'",contains:[{begin:"''",relevance:0}]}]},r={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{"meta-keyword":"define undef ifdef ifndef else endif include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(a,{className:"meta-string"}),{className:"meta-string",begin:/<[^\n>]*>/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]};return{name:"SQF",case_insensitive:!0,keywords:{keyword:"case catch default do else exit exitWith for forEach from if private switch then throw to try waitUntil while with",built_in:"abs accTime acos action actionIDs actionKeys actionKeysImages actionKeysNames actionKeysNamesArray actionName actionParams activateAddons activatedAddons activateKey add3DENConnection add3DENEventHandler add3DENLayer addAction addBackpack addBackpackCargo addBackpackCargoGlobal addBackpackGlobal addCamShake addCuratorAddons addCuratorCameraArea addCuratorEditableObjects addCuratorEditingArea addCuratorPoints addEditorObject addEventHandler addForce addGoggles addGroupIcon addHandgunItem addHeadgear addItem addItemCargo addItemCargoGlobal addItemPool addItemToBackpack addItemToUniform addItemToVest addLiveStats addMagazine addMagazineAmmoCargo addMagazineCargo addMagazineCargoGlobal addMagazineGlobal addMagazinePool addMagazines addMagazineTurret addMenu addMenuItem addMissionEventHandler addMPEventHandler addMusicEventHandler addOwnedMine addPlayerScores addPrimaryWeaponItem addPublicVariableEventHandler addRating addResources addScore addScoreSide addSecondaryWeaponItem addSwitchableUnit addTeamMember addToRemainsCollector addTorque addUniform addVehicle addVest addWaypoint addWeapon addWeaponCargo addWeaponCargoGlobal addWeaponGlobal addWeaponItem addWeaponPool addWeaponTurret admin agent agents AGLToASL aimedAtTarget aimPos airDensityRTD airplaneThrottle airportSide AISFinishHeal alive all3DENEntities allAirports allControls allCurators allCutLayers allDead allDeadMen allDisplays allGroups allMapMarkers allMines allMissionObjects allow3DMode allowCrewInImmobile allowCuratorLogicIgnoreAreas allowDamage allowDammage allowFileOperations allowFleeing allowGetIn allowSprint allPlayers allSimpleObjects allSites allTurrets allUnits allUnitsUAV allVariables ammo ammoOnPylon and animate animateBay animateDoor animatePylon animateSource animationNames animationPhase animationSourcePhase animationState append apply armoryPoints arrayIntersect asin ASLToAGL ASLToATL assert assignAsCargo assignAsCargoIndex assignAsCommander assignAsDriver assignAsGunner assignAsTurret assignCurator assignedCargo assignedCommander assignedDriver assignedGunner assignedItems assignedTarget assignedTeam assignedVehicle assignedVehicleRole assignItem assignTeam assignToAirport atan atan2 atg ATLToASL attachedObject attachedObjects attachedTo attachObject attachTo attackEnabled backpack backpackCargo backpackContainer backpackItems backpackMagazines backpackSpaceFor behaviour benchmark binocular boundingBox boundingBoxReal boundingCenter breakOut breakTo briefingName buildingExit buildingPos buttonAction buttonSetAction cadetMode call callExtension camCommand camCommit camCommitPrepared camCommitted camConstuctionSetParams camCreate camDestroy cameraEffect cameraEffectEnableHUD cameraInterest cameraOn cameraView campaignConfigFile camPreload camPreloaded camPrepareBank camPrepareDir camPrepareDive camPrepareFocus camPrepareFov camPrepareFovRange camPreparePos camPrepareRelPos camPrepareTarget camSetBank camSetDir camSetDive camSetFocus camSetFov camSetFovRange camSetPos camSetRelPos camSetTarget camTarget camUseNVG canAdd canAddItemToBackpack canAddItemToUniform canAddItemToVest cancelSimpleTaskDestination canFire canMove canSlingLoad canStand canSuspend canTriggerDynamicSimulation canUnloadInCombat canVehicleCargo captive captiveNum cbChecked cbSetChecked ceil channelEnabled cheatsEnabled checkAIFeature checkVisibility className clearAllItemsFromBackpack clearBackpackCargo clearBackpackCargoGlobal clearGroupIcons clearItemCargo clearItemCargoGlobal clearItemPool clearMagazineCargo clearMagazineCargoGlobal clearMagazinePool clearOverlay clearRadio clearWeaponCargo clearWeaponCargoGlobal clearWeaponPool clientOwner closeDialog closeDisplay closeOverlay collapseObjectTree collect3DENHistory collectiveRTD combatMode commandArtilleryFire commandChat commander commandFire commandFollow commandFSM commandGetOut commandingMenu commandMove commandRadio commandStop commandSuppressiveFire commandTarget commandWatch comment commitOverlay compile compileFinal completedFSM composeText configClasses configFile configHierarchy configName configProperties configSourceAddonList configSourceMod configSourceModList confirmSensorTarget connectTerminalToUAV controlsGroupCtrl copyFromClipboard copyToClipboard copyWaypoints cos count countEnemy countFriendly countSide countType countUnknown create3DENComposition create3DENEntity createAgent createCenter createDialog createDiaryLink createDiaryRecord createDiarySubject createDisplay createGearDialog createGroup createGuardedPoint createLocation createMarker createMarkerLocal createMenu createMine createMissionDisplay createMPCampaignDisplay createSimpleObject createSimpleTask createSite createSoundSource createTask createTeam createTrigger createUnit createVehicle createVehicleCrew createVehicleLocal crew ctAddHeader ctAddRow ctClear ctCurSel ctData ctFindHeaderRows ctFindRowHeader ctHeaderControls ctHeaderCount ctRemoveHeaders ctRemoveRows ctrlActivate ctrlAddEventHandler ctrlAngle ctrlAutoScrollDelay ctrlAutoScrollRewind ctrlAutoScrollSpeed ctrlChecked ctrlClassName ctrlCommit ctrlCommitted ctrlCreate ctrlDelete ctrlEnable ctrlEnabled ctrlFade ctrlHTMLLoaded ctrlIDC ctrlIDD ctrlMapAnimAdd ctrlMapAnimClear ctrlMapAnimCommit ctrlMapAnimDone ctrlMapCursor ctrlMapMouseOver ctrlMapScale ctrlMapScreenToWorld ctrlMapWorldToScreen ctrlModel ctrlModelDirAndUp ctrlModelScale ctrlParent ctrlParentControlsGroup ctrlPosition ctrlRemoveAllEventHandlers ctrlRemoveEventHandler ctrlScale ctrlSetActiveColor ctrlSetAngle ctrlSetAutoScrollDelay ctrlSetAutoScrollRewind ctrlSetAutoScrollSpeed ctrlSetBackgroundColor ctrlSetChecked ctrlSetEventHandler ctrlSetFade ctrlSetFocus ctrlSetFont ctrlSetFontH1 ctrlSetFontH1B ctrlSetFontH2 ctrlSetFontH2B ctrlSetFontH3 ctrlSetFontH3B ctrlSetFontH4 ctrlSetFontH4B ctrlSetFontH5 ctrlSetFontH5B ctrlSetFontH6 ctrlSetFontH6B ctrlSetFontHeight ctrlSetFontHeightH1 ctrlSetFontHeightH2 ctrlSetFontHeightH3 ctrlSetFontHeightH4 ctrlSetFontHeightH5 ctrlSetFontHeightH6 ctrlSetFontHeightSecondary ctrlSetFontP ctrlSetFontPB ctrlSetFontSecondary ctrlSetForegroundColor ctrlSetModel ctrlSetModelDirAndUp ctrlSetModelScale ctrlSetPixelPrecision ctrlSetPosition ctrlSetScale ctrlSetStructuredText ctrlSetText ctrlSetTextColor ctrlSetTooltip ctrlSetTooltipColorBox ctrlSetTooltipColorShade ctrlSetTooltipColorText ctrlShow ctrlShown ctrlText ctrlTextHeight ctrlTextWidth ctrlType ctrlVisible ctRowControls ctRowCount ctSetCurSel ctSetData ctSetHeaderTemplate ctSetRowTemplate ctSetValue ctValue curatorAddons curatorCamera curatorCameraArea curatorCameraAreaCeiling curatorCoef curatorEditableObjects curatorEditingArea curatorEditingAreaType curatorMouseOver curatorPoints curatorRegisteredObjects curatorSelected curatorWaypointCost current3DENOperation currentChannel currentCommand currentMagazine currentMagazineDetail currentMagazineDetailTurret currentMagazineTurret currentMuzzle currentNamespace currentTask currentTasks currentThrowable currentVisionMode currentWaypoint currentWeapon currentWeaponMode currentWeaponTurret currentZeroing cursorObject cursorTarget customChat customRadio cutFadeOut cutObj cutRsc cutText damage date dateToNumber daytime deActivateKey debriefingText debugFSM debugLog deg delete3DENEntities deleteAt deleteCenter deleteCollection deleteEditorObject deleteGroup deleteGroupWhenEmpty deleteIdentity deleteLocation deleteMarker deleteMarkerLocal deleteRange deleteResources deleteSite deleteStatus deleteTeam deleteVehicle deleteVehicleCrew deleteWaypoint detach detectedMines diag_activeMissionFSMs diag_activeScripts diag_activeSQFScripts diag_activeSQSScripts diag_captureFrame diag_captureFrameToFile diag_captureSlowFrame diag_codePerformance diag_drawMode diag_enable diag_enabled diag_fps diag_fpsMin diag_frameNo diag_lightNewLoad diag_list diag_log diag_logSlowFrame diag_mergeConfigFile diag_recordTurretLimits diag_setLightNew diag_tickTime diag_toggle dialog diarySubjectExists didJIP didJIPOwner difficulty difficultyEnabled difficultyEnabledRTD difficultyOption direction directSay disableAI disableCollisionWith disableConversation disableDebriefingStats disableMapIndicators disableNVGEquipment disableRemoteSensors disableSerialization disableTIEquipment disableUAVConnectability disableUserInput displayAddEventHandler displayCtrl displayParent displayRemoveAllEventHandlers displayRemoveEventHandler displaySetEventHandler dissolveTeam distance distance2D distanceSqr distributionRegion do3DENAction doArtilleryFire doFire doFollow doFSM doGetOut doMove doorPhase doStop doSuppressiveFire doTarget doWatch drawArrow drawEllipse drawIcon drawIcon3D drawLine drawLine3D drawLink drawLocation drawPolygon drawRectangle drawTriangle driver drop dynamicSimulationDistance dynamicSimulationDistanceCoef dynamicSimulationEnabled dynamicSimulationSystemEnabled echo edit3DENMissionAttributes editObject editorSetEventHandler effectiveCommander emptyPositions enableAI enableAIFeature enableAimPrecision enableAttack enableAudioFeature enableAutoStartUpRTD enableAutoTrimRTD enableCamShake enableCaustics enableChannel enableCollisionWith enableCopilot enableDebriefingStats enableDiagLegend enableDynamicSimulation enableDynamicSimulationSystem enableEndDialog enableEngineArtillery enableEnvironment enableFatigue enableGunLights enableInfoPanelComponent enableIRLasers enableMimics enablePersonTurret enableRadio enableReload enableRopeAttach enableSatNormalOnDetail enableSaving enableSentences enableSimulation enableSimulationGlobal enableStamina enableTeamSwitch enableTraffic enableUAVConnectability enableUAVWaypoints enableVehicleCargo enableVehicleSensor enableWeaponDisassembly endLoadingScreen endMission engineOn enginesIsOnRTD enginesRpmRTD enginesTorqueRTD entities environmentEnabled estimatedEndServerTime estimatedTimeLeft evalObjectArgument everyBackpack everyContainer exec execEditorScript execFSM execVM exp expectedDestination exportJIPMessages eyeDirection eyePos face faction fadeMusic fadeRadio fadeSound fadeSpeech failMission fillWeaponsFromPool find findCover findDisplay findEditorObject findEmptyPosition findEmptyPositionReady findIf findNearestEnemy finishMissionInit finite fire fireAtTarget firstBackpack flag flagAnimationPhase flagOwner flagSide flagTexture fleeing floor flyInHeight flyInHeightASL fog fogForecast fogParams forceAddUniform forcedMap forceEnd forceFlagTexture forceFollowRoad forceMap forceRespawn forceSpeed forceWalk forceWeaponFire forceWeatherChange forEachMember forEachMemberAgent forEachMemberTeam forgetTarget format formation formationDirection formationLeader formationMembers formationPosition formationTask formatText formLeader freeLook fromEditor fuel fullCrew gearIDCAmmoCount gearSlotAmmoCount gearSlotData get3DENActionState get3DENAttribute get3DENCamera get3DENConnections get3DENEntity get3DENEntityID get3DENGrid get3DENIconsVisible get3DENLayerEntities get3DENLinesVisible get3DENMissionAttribute get3DENMouseOver get3DENSelected getAimingCoef getAllEnvSoundControllers getAllHitPointsDamage getAllOwnedMines getAllSoundControllers getAmmoCargo getAnimAimPrecision getAnimSpeedCoef getArray getArtilleryAmmo getArtilleryComputerSettings getArtilleryETA getAssignedCuratorLogic getAssignedCuratorUnit getBackpackCargo getBleedingRemaining getBurningValue getCameraViewDirection getCargoIndex getCenterOfMass getClientState getClientStateNumber getCompatiblePylonMagazines getConnectedUAV getContainerMaxLoad getCursorObjectParams getCustomAimCoef getDammage getDescription getDir getDirVisual getDLCAssetsUsage getDLCAssetsUsageByName getDLCs getEditorCamera getEditorMode getEditorObjectScope getElevationOffset getEnvSoundController getFatigue getForcedFlagTexture getFriend getFSMVariable getFuelCargo getGroupIcon getGroupIconParams getGroupIcons getHideFrom getHit getHitIndex getHitPointDamage getItemCargo getMagazineCargo getMarkerColor getMarkerPos getMarkerSize getMarkerType getMass getMissionConfig getMissionConfigValue getMissionDLCs getMissionLayerEntities getModelInfo getMousePosition getMusicPlayedTime getNumber getObjectArgument getObjectChildren getObjectDLC getObjectMaterials getObjectProxy getObjectTextures getObjectType getObjectViewDistance getOxygenRemaining getPersonUsedDLCs getPilotCameraDirection getPilotCameraPosition getPilotCameraRotation getPilotCameraTarget getPlateNumber getPlayerChannel getPlayerScores getPlayerUID getPos getPosASL getPosASLVisual getPosASLW getPosATL getPosATLVisual getPosVisual getPosWorld getPylonMagazines getRelDir getRelPos getRemoteSensorsDisabled getRepairCargo getResolution getShadowDistance getShotParents getSlingLoad getSoundController getSoundControllerResult getSpeed getStamina getStatValue getSuppression getTerrainGrid getTerrainHeightASL getText getTotalDLCUsageTime getUnitLoadout getUnitTrait getUserMFDText getUserMFDvalue getVariable getVehicleCargo getWeaponCargo getWeaponSway getWingsOrientationRTD getWingsPositionRTD getWPPos glanceAt globalChat globalRadio goggles goto group groupChat groupFromNetId groupIconSelectable groupIconsVisible groupId groupOwner groupRadio groupSelectedUnits groupSelectUnit gunner gusts halt handgunItems handgunMagazine handgunWeapon handsHit hasInterface hasPilotCamera hasWeapon hcAllGroups hcGroupParams hcLeader hcRemoveAllGroups hcRemoveGroup hcSelected hcSelectGroup hcSetGroup hcShowBar hcShownBar headgear hideBody hideObject hideObjectGlobal hideSelection hint hintC hintCadet hintSilent hmd hostMission htmlLoad HUDMovementLevels humidity image importAllGroups importance in inArea inAreaArray incapacitatedState inflame inflamed infoPanel infoPanelComponentEnabled infoPanelComponents infoPanels inGameUISetEventHandler inheritsFrom initAmbientLife inPolygon inputAction inRangeOfArtillery insertEditorObject intersect is3DEN is3DENMultiplayer isAbleToBreathe isAgent isArray isAutoHoverOn isAutonomous isAutotest isBleeding isBurning isClass isCollisionLightOn isCopilotEnabled isDamageAllowed isDedicated isDLCAvailable isEngineOn isEqualTo isEqualType isEqualTypeAll isEqualTypeAny isEqualTypeArray isEqualTypeParams isFilePatchingEnabled isFlashlightOn isFlatEmpty isForcedWalk isFormationLeader isGroupDeletedWhenEmpty isHidden isInRemainsCollector isInstructorFigureEnabled isIRLaserOn isKeyActive isKindOf isLaserOn isLightOn isLocalized isManualFire isMarkedForCollection isMultiplayer isMultiplayerSolo isNil isNull isNumber isObjectHidden isObjectRTD isOnRoad isPipEnabled isPlayer isRealTime isRemoteExecuted isRemoteExecutedJIP isServer isShowing3DIcons isSimpleObject isSprintAllowed isStaminaEnabled isSteamMission isStreamFriendlyUIEnabled isText isTouchingGround isTurnedOut isTutHintsEnabled isUAVConnectable isUAVConnected isUIContext isUniformAllowed isVehicleCargo isVehicleRadarOn isVehicleSensorEnabled isWalking isWeaponDeployed isWeaponRested itemCargo items itemsWithMagazines join joinAs joinAsSilent joinSilent joinString kbAddDatabase kbAddDatabaseTargets kbAddTopic kbHasTopic kbReact kbRemoveTopic kbTell kbWasSaid keyImage keyName knowsAbout land landAt landResult language laserTarget lbAdd lbClear lbColor lbColorRight lbCurSel lbData lbDelete lbIsSelected lbPicture lbPictureRight lbSelection lbSetColor lbSetColorRight lbSetCurSel lbSetData lbSetPicture lbSetPictureColor lbSetPictureColorDisabled lbSetPictureColorSelected lbSetPictureRight lbSetPictureRightColor lbSetPictureRightColorDisabled lbSetPictureRightColorSelected lbSetSelectColor lbSetSelectColorRight lbSetSelected lbSetText lbSetTextRight lbSetTooltip lbSetValue lbSize lbSort lbSortByValue lbText lbTextRight lbValue leader leaderboardDeInit leaderboardGetRows leaderboardInit leaderboardRequestRowsFriends leaderboardsRequestUploadScore leaderboardsRequestUploadScoreKeepBest leaderboardState leaveVehicle libraryCredits libraryDisclaimers lifeState lightAttachObject lightDetachObject lightIsOn lightnings limitSpeed linearConversion lineIntersects lineIntersectsObjs lineIntersectsSurfaces lineIntersectsWith linkItem list listObjects listRemoteTargets listVehicleSensors ln lnbAddArray lnbAddColumn lnbAddRow lnbClear lnbColor lnbCurSelRow lnbData lnbDeleteColumn lnbDeleteRow lnbGetColumnsPosition lnbPicture lnbSetColor lnbSetColumnsPos lnbSetCurSelRow lnbSetData lnbSetPicture lnbSetText lnbSetValue lnbSize lnbSort lnbSortByValue lnbText lnbValue load loadAbs loadBackpack loadFile loadGame loadIdentity loadMagazine loadOverlay loadStatus loadUniform loadVest local localize locationPosition lock lockCameraTo lockCargo lockDriver locked lockedCargo lockedDriver lockedTurret lockIdentity lockTurret lockWP log logEntities logNetwork logNetworkTerminate lookAt lookAtPos magazineCargo magazines magazinesAllTurrets magazinesAmmo magazinesAmmoCargo magazinesAmmoFull magazinesDetail magazinesDetailBackpack magazinesDetailUniform magazinesDetailVest magazinesTurret magazineTurretAmmo mapAnimAdd mapAnimClear mapAnimCommit mapAnimDone mapCenterOnCamera mapGridPosition markAsFinishedOnSteam markerAlpha markerBrush markerColor markerDir markerPos markerShape markerSize markerText markerType max members menuAction menuAdd menuChecked menuClear menuCollapse menuData menuDelete menuEnable menuEnabled menuExpand menuHover menuPicture menuSetAction menuSetCheck menuSetData menuSetPicture menuSetValue menuShortcut menuShortcutText menuSize menuSort menuText menuURL menuValue min mineActive mineDetectedBy missionConfigFile missionDifficulty missionName missionNamespace missionStart missionVersion mod modelToWorld modelToWorldVisual modelToWorldVisualWorld modelToWorldWorld modParams moonIntensity moonPhase morale move move3DENCamera moveInAny moveInCargo moveInCommander moveInDriver moveInGunner moveInTurret moveObjectToEnd moveOut moveTime moveTo moveToCompleted moveToFailed musicVolume name nameSound nearEntities nearestBuilding nearestLocation nearestLocations nearestLocationWithDubbing nearestObject nearestObjects nearestTerrainObjects nearObjects nearObjectsReady nearRoads nearSupplies nearTargets needReload netId netObjNull newOverlay nextMenuItemIndex nextWeatherChange nMenuItems not numberOfEnginesRTD numberToDate objectCurators objectFromNetId objectParent objStatus onBriefingGroup onBriefingNotes onBriefingPlan onBriefingTeamSwitch onCommandModeChanged onDoubleClick onEachFrame onGroupIconClick onGroupIconOverEnter onGroupIconOverLeave onHCGroupSelectionChanged onMapSingleClick onPlayerConnected onPlayerDisconnected onPreloadFinished onPreloadStarted onShowNewObject onTeamSwitch openCuratorInterface openDLCPage openMap openSteamApp openYoutubeVideo or orderGetIn overcast overcastForecast owner param params parseNumber parseSimpleArray parseText parsingNamespace particlesQuality pickWeaponPool pitch pixelGrid pixelGridBase pixelGridNoUIScale pixelH pixelW playableSlotsNumber playableUnits playAction playActionNow player playerRespawnTime playerSide playersNumber playGesture playMission playMove playMoveNow playMusic playScriptedMission playSound playSound3D position positionCameraToWorld posScreenToWorld posWorldToScreen ppEffectAdjust ppEffectCommit ppEffectCommitted ppEffectCreate ppEffectDestroy ppEffectEnable ppEffectEnabled ppEffectForceInNVG precision preloadCamera preloadObject preloadSound preloadTitleObj preloadTitleRsc preprocessFile preprocessFileLineNumbers primaryWeapon primaryWeaponItems primaryWeaponMagazine priority processDiaryLink productVersion profileName profileNamespace profileNameSteam progressLoadingScreen progressPosition progressSetPosition publicVariable publicVariableClient publicVariableServer pushBack pushBackUnique putWeaponPool queryItemsPool queryMagazinePool queryWeaponPool rad radioChannelAdd radioChannelCreate radioChannelRemove radioChannelSetCallSign radioChannelSetLabel radioVolume rain rainbow random rank rankId rating rectangular registeredTasks registerTask reload reloadEnabled remoteControl remoteExec remoteExecCall remoteExecutedOwner remove3DENConnection remove3DENEventHandler remove3DENLayer removeAction removeAll3DENEventHandlers removeAllActions removeAllAssignedItems removeAllContainers removeAllCuratorAddons removeAllCuratorCameraAreas removeAllCuratorEditingAreas removeAllEventHandlers removeAllHandgunItems removeAllItems removeAllItemsWithMagazines removeAllMissionEventHandlers removeAllMPEventHandlers removeAllMusicEventHandlers removeAllOwnedMines removeAllPrimaryWeaponItems removeAllWeapons removeBackpack removeBackpackGlobal removeCuratorAddons removeCuratorCameraArea removeCuratorEditableObjects removeCuratorEditingArea removeDrawIcon removeDrawLinks removeEventHandler removeFromRemainsCollector removeGoggles removeGroupIcon removeHandgunItem removeHeadgear removeItem removeItemFromBackpack removeItemFromUniform removeItemFromVest removeItems removeMagazine removeMagazineGlobal removeMagazines removeMagazinesTurret removeMagazineTurret removeMenuItem removeMissionEventHandler removeMPEventHandler removeMusicEventHandler removeOwnedMine removePrimaryWeaponItem removeSecondaryWeaponItem removeSimpleTask removeSwitchableUnit removeTeamMember removeUniform removeVest removeWeapon removeWeaponAttachmentCargo removeWeaponCargo removeWeaponGlobal removeWeaponTurret reportRemoteTarget requiredVersion resetCamShake resetSubgroupDirection resize resources respawnVehicle restartEditorCamera reveal revealMine reverse reversedMouseY roadAt roadsConnectedTo roleDescription ropeAttachedObjects ropeAttachedTo ropeAttachEnabled ropeAttachTo ropeCreate ropeCut ropeDestroy ropeDetach ropeEndPosition ropeLength ropes ropeUnwind ropeUnwound rotorsForcesRTD rotorsRpmRTD round runInitScript safeZoneH safeZoneW safeZoneWAbs safeZoneX safeZoneXAbs safeZoneY save3DENInventory saveGame saveIdentity saveJoysticks saveOverlay saveProfileNamespace saveStatus saveVar savingEnabled say say2D say3D scopeName score scoreSide screenshot screenToWorld scriptDone scriptName scudState secondaryWeapon secondaryWeaponItems secondaryWeaponMagazine select selectBestPlaces selectDiarySubject selectedEditorObjects selectEditorObject selectionNames selectionPosition selectLeader selectMax selectMin selectNoPlayer selectPlayer selectRandom selectRandomWeighted selectWeapon selectWeaponTurret sendAUMessage sendSimpleCommand sendTask sendTaskResult sendUDPMessage serverCommand serverCommandAvailable serverCommandExecutable serverName serverTime set set3DENAttribute set3DENAttributes set3DENGrid set3DENIconsVisible set3DENLayer set3DENLinesVisible set3DENLogicType set3DENMissionAttribute set3DENMissionAttributes set3DENModelsVisible set3DENObjectType set3DENSelected setAccTime setActualCollectiveRTD setAirplaneThrottle setAirportSide setAmmo setAmmoCargo setAmmoOnPylon setAnimSpeedCoef setAperture setApertureNew setArmoryPoints setAttributes setAutonomous setBehaviour setBleedingRemaining setBrakesRTD setCameraInterest setCamShakeDefParams setCamShakeParams setCamUseTI setCaptive setCenterOfMass setCollisionLight setCombatMode setCompassOscillation setConvoySeparation setCuratorCameraAreaCeiling setCuratorCoef setCuratorEditingAreaType setCuratorWaypointCost setCurrentChannel setCurrentTask setCurrentWaypoint setCustomAimCoef setCustomWeightRTD setDamage setDammage setDate setDebriefingText setDefaultCamera setDestination setDetailMapBlendPars setDir setDirection setDrawIcon setDriveOnPath setDropInterval setDynamicSimulationDistance setDynamicSimulationDistanceCoef setEditorMode setEditorObjectScope setEffectCondition setEngineRPMRTD setFace setFaceAnimation setFatigue setFeatureType setFlagAnimationPhase setFlagOwner setFlagSide setFlagTexture setFog setFormation setFormationTask setFormDir setFriend setFromEditor setFSMVariable setFuel setFuelCargo setGroupIcon setGroupIconParams setGroupIconsSelectable setGroupIconsVisible setGroupId setGroupIdGlobal setGroupOwner setGusts setHideBehind setHit setHitIndex setHitPointDamage setHorizonParallaxCoef setHUDMovementLevels setIdentity setImportance setInfoPanel setLeader setLightAmbient setLightAttenuation setLightBrightness setLightColor setLightDayLight setLightFlareMaxDistance setLightFlareSize setLightIntensity setLightnings setLightUseFlare setLocalWindParams setMagazineTurretAmmo setMarkerAlpha setMarkerAlphaLocal setMarkerBrush setMarkerBrushLocal setMarkerColor setMarkerColorLocal setMarkerDir setMarkerDirLocal setMarkerPos setMarkerPosLocal setMarkerShape setMarkerShapeLocal setMarkerSize setMarkerSizeLocal setMarkerText setMarkerTextLocal setMarkerType setMarkerTypeLocal setMass setMimic setMousePosition setMusicEffect setMusicEventHandler setName setNameSound setObjectArguments setObjectMaterial setObjectMaterialGlobal setObjectProxy setObjectTexture setObjectTextureGlobal setObjectViewDistance setOvercast setOwner setOxygenRemaining setParticleCircle setParticleClass setParticleFire setParticleParams setParticleRandom setPilotCameraDirection setPilotCameraRotation setPilotCameraTarget setPilotLight setPiPEffect setPitch setPlateNumber setPlayable setPlayerRespawnTime setPos setPosASL setPosASL2 setPosASLW setPosATL setPosition setPosWorld setPylonLoadOut setPylonsPriority setRadioMsg setRain setRainbow setRandomLip setRank setRectangular setRepairCargo setRotorBrakeRTD setShadowDistance setShotParents setSide setSimpleTaskAlwaysVisible setSimpleTaskCustomData setSimpleTaskDescription setSimpleTaskDestination setSimpleTaskTarget setSimpleTaskType setSimulWeatherLayers setSize setSkill setSlingLoad setSoundEffect setSpeaker setSpeech setSpeedMode setStamina setStaminaScheme setStatValue setSuppression setSystemOfUnits setTargetAge setTaskMarkerOffset setTaskResult setTaskState setTerrainGrid setText setTimeMultiplier setTitleEffect setTrafficDensity setTrafficDistance setTrafficGap setTrafficSpeed setTriggerActivation setTriggerArea setTriggerStatements setTriggerText setTriggerTimeout setTriggerType setType setUnconscious setUnitAbility setUnitLoadout setUnitPos setUnitPosWeak setUnitRank setUnitRecoilCoefficient setUnitTrait setUnloadInCombat setUserActionText setUserMFDText setUserMFDvalue setVariable setVectorDir setVectorDirAndUp setVectorUp setVehicleAmmo setVehicleAmmoDef setVehicleArmor setVehicleCargo setVehicleId setVehicleLock setVehiclePosition setVehicleRadar setVehicleReceiveRemoteTargets setVehicleReportOwnPosition setVehicleReportRemoteTargets setVehicleTIPars setVehicleVarName setVelocity setVelocityModelSpace setVelocityTransformation setViewDistance setVisibleIfTreeCollapsed setWantedRPMRTD setWaves setWaypointBehaviour setWaypointCombatMode setWaypointCompletionRadius setWaypointDescription setWaypointForceBehaviour setWaypointFormation setWaypointHousePosition setWaypointLoiterRadius setWaypointLoiterType setWaypointName setWaypointPosition setWaypointScript setWaypointSpeed setWaypointStatements setWaypointTimeout setWaypointType setWaypointVisible setWeaponReloadingTime setWind setWindDir setWindForce setWindStr setWingForceScaleRTD setWPPos show3DIcons showChat showCinemaBorder showCommandingMenu showCompass showCuratorCompass showGPS showHUD showLegend showMap shownArtilleryComputer shownChat shownCompass shownCuratorCompass showNewEditorObject shownGPS shownHUD shownMap shownPad shownRadio shownScoretable shownUAVFeed shownWarrant shownWatch showPad showRadio showScoretable showSubtitles showUAVFeed showWarrant showWatch showWaypoint showWaypoints side sideChat sideEnemy sideFriendly sideRadio simpleTasks simulationEnabled simulCloudDensity simulCloudOcclusion simulInClouds simulWeatherSync sin size sizeOf skill skillFinal skipTime sleep sliderPosition sliderRange sliderSetPosition sliderSetRange sliderSetSpeed sliderSpeed slingLoadAssistantShown soldierMagazines someAmmo sort soundVolume spawn speaker speed speedMode splitString sqrt squadParams stance startLoadingScreen step stop stopEngineRTD stopped str sunOrMoon supportInfo suppressFor surfaceIsWater surfaceNormal surfaceType swimInDepth switchableUnits switchAction switchCamera switchGesture switchLight switchMove synchronizedObjects synchronizedTriggers synchronizedWaypoints synchronizeObjectsAdd synchronizeObjectsRemove synchronizeTrigger synchronizeWaypoint systemChat systemOfUnits tan targetKnowledge targets targetsAggregate targetsQuery taskAlwaysVisible taskChildren taskCompleted taskCustomData taskDescription taskDestination taskHint taskMarkerOffset taskParent taskResult taskState taskType teamMember teamName teams teamSwitch teamSwitchEnabled teamType terminate terrainIntersect terrainIntersectASL terrainIntersectAtASL text textLog textLogFormat tg time timeMultiplier titleCut titleFadeOut titleObj titleRsc titleText toArray toFixed toLower toString toUpper triggerActivated triggerActivation triggerArea triggerAttachedVehicle triggerAttachObject triggerAttachVehicle triggerDynamicSimulation triggerStatements triggerText triggerTimeout triggerTimeoutCurrent triggerType turretLocal turretOwner turretUnit tvAdd tvClear tvCollapse tvCollapseAll tvCount tvCurSel tvData tvDelete tvExpand tvExpandAll tvPicture tvSetColor tvSetCurSel tvSetData tvSetPicture tvSetPictureColor tvSetPictureColorDisabled tvSetPictureColorSelected tvSetPictureRight tvSetPictureRightColor tvSetPictureRightColorDisabled tvSetPictureRightColorSelected tvSetText tvSetTooltip tvSetValue tvSort tvSortByValue tvText tvTooltip tvValue type typeName typeOf UAVControl uiNamespace uiSleep unassignCurator unassignItem unassignTeam unassignVehicle underwater uniform uniformContainer uniformItems uniformMagazines unitAddons unitAimPosition unitAimPositionVisual unitBackpack unitIsUAV unitPos unitReady unitRecoilCoefficient units unitsBelowHeight unlinkItem unlockAchievement unregisterTask updateDrawIcon updateMenuItem updateObjectTree useAISteeringComponent useAudioTimeForMoves userInputDisabled vectorAdd vectorCos vectorCrossProduct vectorDiff vectorDir vectorDirVisual vectorDistance vectorDistanceSqr vectorDotProduct vectorFromTo vectorMagnitude vectorMagnitudeSqr vectorModelToWorld vectorModelToWorldVisual vectorMultiply vectorNormalized vectorUp vectorUpVisual vectorWorldToModel vectorWorldToModelVisual vehicle vehicleCargoEnabled vehicleChat vehicleRadio vehicleReceiveRemoteTargets vehicleReportOwnPosition vehicleReportRemoteTargets vehicles vehicleVarName velocity velocityModelSpace verifySignature vest vestContainer vestItems vestMagazines viewDistance visibleCompass visibleGPS visibleMap visiblePosition visiblePositionASL visibleScoretable visibleWatch waves waypointAttachedObject waypointAttachedVehicle waypointAttachObject waypointAttachVehicle waypointBehaviour waypointCombatMode waypointCompletionRadius waypointDescription waypointForceBehaviour waypointFormation waypointHousePosition waypointLoiterRadius waypointLoiterType waypointName waypointPosition waypoints waypointScript waypointsEnabledUAV waypointShow waypointSpeed waypointStatements waypointTimeout waypointTimeoutCurrent waypointType waypointVisible weaponAccessories weaponAccessoriesCargo weaponCargo weaponDirection weaponInertia weaponLowered weapons weaponsItems weaponsItemsCargo weaponState weaponsTurret weightRTD WFSideText wind ",literal:"blufor civilian configNull controlNull displayNull east endl false grpNull independent lineBreak locationNull nil objNull opfor pi resistance scriptNull sideAmbientLife sideEmpty sideLogic sideUnknown taskNull teamMemberNull true west"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.NUMBER_MODE,t,n,a,r],illegal:/#|^\$ /}}var hu=Du;function Mu(e){var t=e.COMMENT("--","$");return{name:"SQL (more)",aliases:["mysql","oracle"],disableAutodetect:!0,case_insensitive:!0,illegal:/[<>{}*]/,contains:[{beginKeywords:"begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke comment values with",end:/;/,endsWithParent:!0,keywords:{$pattern:/[\w\.]+/,keyword:"as abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias all allocate allow alter always analyze ancillary and anti any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound bucket buffer_cache buffer_pool build bulk by byte byteordermark bytes cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain explode export export_set extended extent external external_1 external_2 externally extract failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force foreign form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour hours http id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists keep keep_duplicates key keys kill language large last last_day last_insert_id last_value lateral lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minutes minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notnull notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second seconds section securefile security seed segment select self semi sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime table tables tablespace tablesample tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unnest unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace window with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek",literal:"true false null unknown",built_in:"array bigint binary bit blob bool boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text time timestamp tinyint varchar varchar2 varying void"},contains:[{className:"string",begin:"'",end:"'",contains:[{begin:"''"}]},{className:"string",begin:'"',end:'"',contains:[{begin:'""'}]},{className:"string",begin:"`",end:"`"},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t,e.HASH_COMMENT_MODE]},e.C_BLOCK_COMMENT_MODE,t,e.HASH_COMMENT_MODE]}}var Lu=Mu;function Sn(e){return e?typeof e=="string"?e:e.source:null}function xu(...e){return e.map(n=>Sn(n)).join("")}function rt(...e){return"("+e.map(n=>Sn(n)).join("|")+")"}function Pu(e){const t=e.COMMENT("--","$"),n={className:"string",variants:[{begin:/'/,end:/'/,contains:[{begin:/''/}]}]},a={begin:/"/,end:/"/,contains:[{begin:/""/}]},r=["true","false","unknown"],i=["double precision","large object","with timezone","without timezone"],s=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],o=["add","asc","collation","desc","final","first","last","view"],l=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update ","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year"],c=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],_=["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"],u=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],m=c,g=[...l,...o].filter(R=>!c.includes(R)),E={className:"variable",begin:/@[a-z0-9]+/},S={className:"operator",begin:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},T={begin:xu(/\b/,rt(...m),/\s*\(/),keywords:{built_in:m}};function C(R,{exceptions:f,when:O}={}){const L=O;return f=f||[],R.map(h=>h.match(/\|\d+$/)||f.includes(h)?h:L(h)?`${h}|0`:h)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:C(g,{when:R=>R.length<3}),literal:r,type:s,built_in:_},contains:[{begin:rt(...u),keywords:{$pattern:/[\w\.]+/,keyword:g.concat(u),literal:r,type:s}},{className:"type",begin:rt(...i)},T,E,n,a,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t,S]}}var wu=Pu;function ku(e){const t=["functions","model","data","parameters","quantities","transformed","generated"],n=["for","in","if","else","while","break","continue","return"],a=["print","reject","increment_log_prob|10","integrate_ode|10","integrate_ode_rk45|10","integrate_ode_bdf|10","algebra_solver"],r=["int","real","vector","ordered","positive_ordered","simplex","unit_vector","row_vector","matrix","cholesky_factor_corr|10","cholesky_factor_cov|10","corr_matrix|10","cov_matrix|10","void"],i=["Phi","Phi_approx","abs","acos","acosh","algebra_solver","append_array","append_col","append_row","asin","asinh","atan","atan2","atanh","bernoulli_cdf","bernoulli_lccdf","bernoulli_lcdf","bernoulli_logit_lpmf","bernoulli_logit_rng","bernoulli_lpmf","bernoulli_rng","bessel_first_kind","bessel_second_kind","beta_binomial_cdf","beta_binomial_lccdf","beta_binomial_lcdf","beta_binomial_lpmf","beta_binomial_rng","beta_cdf","beta_lccdf","beta_lcdf","beta_lpdf","beta_rng","binary_log_loss","binomial_cdf","binomial_coefficient_log","binomial_lccdf","binomial_lcdf","binomial_logit_lpmf","binomial_lpmf","binomial_rng","block","categorical_logit_lpmf","categorical_logit_rng","categorical_lpmf","categorical_rng","cauchy_cdf","cauchy_lccdf","cauchy_lcdf","cauchy_lpdf","cauchy_rng","cbrt","ceil","chi_square_cdf","chi_square_lccdf","chi_square_lcdf","chi_square_lpdf","chi_square_rng","cholesky_decompose","choose","col","cols","columns_dot_product","columns_dot_self","cos","cosh","cov_exp_quad","crossprod","csr_extract_u","csr_extract_v","csr_extract_w","csr_matrix_times_vector","csr_to_dense_matrix","cumulative_sum","determinant","diag_matrix","diag_post_multiply","diag_pre_multiply","diagonal","digamma","dims","dirichlet_lpdf","dirichlet_rng","distance","dot_product","dot_self","double_exponential_cdf","double_exponential_lccdf","double_exponential_lcdf","double_exponential_lpdf","double_exponential_rng","e","eigenvalues_sym","eigenvectors_sym","erf","erfc","exp","exp2","exp_mod_normal_cdf","exp_mod_normal_lccdf","exp_mod_normal_lcdf","exp_mod_normal_lpdf","exp_mod_normal_rng","expm1","exponential_cdf","exponential_lccdf","exponential_lcdf","exponential_lpdf","exponential_rng","fabs","falling_factorial","fdim","floor","fma","fmax","fmin","fmod","frechet_cdf","frechet_lccdf","frechet_lcdf","frechet_lpdf","frechet_rng","gamma_cdf","gamma_lccdf","gamma_lcdf","gamma_lpdf","gamma_p","gamma_q","gamma_rng","gaussian_dlm_obs_lpdf","get_lp","gumbel_cdf","gumbel_lccdf","gumbel_lcdf","gumbel_lpdf","gumbel_rng","head","hypergeometric_lpmf","hypergeometric_rng","hypot","inc_beta","int_step","integrate_ode","integrate_ode_bdf","integrate_ode_rk45","inv","inv_Phi","inv_chi_square_cdf","inv_chi_square_lccdf","inv_chi_square_lcdf","inv_chi_square_lpdf","inv_chi_square_rng","inv_cloglog","inv_gamma_cdf","inv_gamma_lccdf","inv_gamma_lcdf","inv_gamma_lpdf","inv_gamma_rng","inv_logit","inv_sqrt","inv_square","inv_wishart_lpdf","inv_wishart_rng","inverse","inverse_spd","is_inf","is_nan","lbeta","lchoose","lgamma","lkj_corr_cholesky_lpdf","lkj_corr_cholesky_rng","lkj_corr_lpdf","lkj_corr_rng","lmgamma","lmultiply","log","log10","log1m","log1m_exp","log1m_inv_logit","log1p","log1p_exp","log2","log_determinant","log_diff_exp","log_falling_factorial","log_inv_logit","log_mix","log_rising_factorial","log_softmax","log_sum_exp","logistic_cdf","logistic_lccdf","logistic_lcdf","logistic_lpdf","logistic_rng","logit","lognormal_cdf","lognormal_lccdf","lognormal_lcdf","lognormal_lpdf","lognormal_rng","machine_precision","matrix_exp","max","mdivide_left_spd","mdivide_left_tri_low","mdivide_right_spd","mdivide_right_tri_low","mean","min","modified_bessel_first_kind","modified_bessel_second_kind","multi_gp_cholesky_lpdf","multi_gp_lpdf","multi_normal_cholesky_lpdf","multi_normal_cholesky_rng","multi_normal_lpdf","multi_normal_prec_lpdf","multi_normal_rng","multi_student_t_lpdf","multi_student_t_rng","multinomial_lpmf","multinomial_rng","multiply_log","multiply_lower_tri_self_transpose","neg_binomial_2_cdf","neg_binomial_2_lccdf","neg_binomial_2_lcdf","neg_binomial_2_log_lpmf","neg_binomial_2_log_rng","neg_binomial_2_lpmf","neg_binomial_2_rng","neg_binomial_cdf","neg_binomial_lccdf","neg_binomial_lcdf","neg_binomial_lpmf","neg_binomial_rng","negative_infinity","normal_cdf","normal_lccdf","normal_lcdf","normal_lpdf","normal_rng","not_a_number","num_elements","ordered_logistic_lpmf","ordered_logistic_rng","owens_t","pareto_cdf","pareto_lccdf","pareto_lcdf","pareto_lpdf","pareto_rng","pareto_type_2_cdf","pareto_type_2_lccdf","pareto_type_2_lcdf","pareto_type_2_lpdf","pareto_type_2_rng","pi","poisson_cdf","poisson_lccdf","poisson_lcdf","poisson_log_lpmf","poisson_log_rng","poisson_lpmf","poisson_rng","positive_infinity","pow","print","prod","qr_Q","qr_R","quad_form","quad_form_diag","quad_form_sym","rank","rayleigh_cdf","rayleigh_lccdf","rayleigh_lcdf","rayleigh_lpdf","rayleigh_rng","reject","rep_array","rep_matrix","rep_row_vector","rep_vector","rising_factorial","round","row","rows","rows_dot_product","rows_dot_self","scaled_inv_chi_square_cdf","scaled_inv_chi_square_lccdf","scaled_inv_chi_square_lcdf","scaled_inv_chi_square_lpdf","scaled_inv_chi_square_rng","sd","segment","sin","singular_values","sinh","size","skew_normal_cdf","skew_normal_lccdf","skew_normal_lcdf","skew_normal_lpdf","skew_normal_rng","softmax","sort_asc","sort_desc","sort_indices_asc","sort_indices_desc","sqrt","sqrt2","square","squared_distance","step","student_t_cdf","student_t_lccdf","student_t_lcdf","student_t_lpdf","student_t_rng","sub_col","sub_row","sum","tail","tan","tanh","target","tcrossprod","tgamma","to_array_1d","to_array_2d","to_matrix","to_row_vector","to_vector","trace","trace_gen_quad_form","trace_quad_form","trigamma","trunc","uniform_cdf","uniform_lccdf","uniform_lcdf","uniform_lpdf","uniform_rng","variance","von_mises_lpdf","von_mises_rng","weibull_cdf","weibull_lccdf","weibull_lcdf","weibull_lpdf","weibull_rng","wiener_lpdf","wishart_lpdf","wishart_rng"],s=["bernoulli","bernoulli_logit","beta","beta_binomial","binomial","binomial_logit","categorical","categorical_logit","cauchy","chi_square","dirichlet","double_exponential","exp_mod_normal","exponential","frechet","gamma","gaussian_dlm_obs","gumbel","hypergeometric","inv_chi_square","inv_gamma","inv_wishart","lkj_corr","lkj_corr_cholesky","logistic","lognormal","multi_gp","multi_gp_cholesky","multi_normal","multi_normal_cholesky","multi_normal_prec","multi_student_t","multinomial","neg_binomial","neg_binomial_2","neg_binomial_2_log","normal","ordered_logistic","pareto","pareto_type_2","poisson","poisson_log","rayleigh","scaled_inv_chi_square","skew_normal","student_t","uniform","von_mises","weibull","wiener","wishart"];return{name:"Stan",aliases:["stanfuncs"],keywords:{$pattern:e.IDENT_RE,title:t,keyword:n.concat(r).concat(a),built_in:i},contains:[e.C_LINE_COMMENT_MODE,e.COMMENT(/#/,/$/,{relevance:0,keywords:{"meta-keyword":"include"}}),e.COMMENT(/\/\*/,/\*\//,{relevance:0,contains:[{className:"doctag",begin:/@(return|param)/}]}),{begin:/<\s*lower\s*=/,keywords:"lower"},{begin:/[<,]\s*upper\s*=/,keywords:"upper"},{className:"keyword",begin:/\btarget\s*\+=/,relevance:10},{begin:"~\\s*("+e.IDENT_RE+")\\s*\\(",keywords:s},{className:"number",variants:[{begin:/\b\d+(?:\.\d*)?(?:[eE][+-]?\d+)?/},{begin:/\.\d+(?:[eE][+-]?\d+)?\b/}],relevance:0},{className:"string",begin:'"',end:'"',relevance:0}]}}var Uu=ku;function Fu(e){return{name:"Stata",aliases:["do","ado"],case_insensitive:!0,keywords:"if else in foreach for forv forva forval forvalu forvalue forvalues by bys bysort xi quietly qui capture about ac ac_7 acprplot acprplot_7 adjust ado adopath adoupdate alpha ameans an ano anov anova anova_estat anova_terms anovadef aorder ap app appe appen append arch arch_dr arch_estat arch_p archlm areg areg_p args arima arima_dr arima_estat arima_p as asmprobit asmprobit_estat asmprobit_lf asmprobit_mfx__dlg asmprobit_p ass asse asser assert avplot avplot_7 avplots avplots_7 bcskew0 bgodfrey bias binreg bip0_lf biplot bipp_lf bipr_lf bipr_p biprobit bitest bitesti bitowt blogit bmemsize boot bootsamp bootstrap bootstrap_8 boxco_l boxco_p boxcox boxcox_6 boxcox_p bprobit br break brier bro brow brows browse brr brrstat bs bs_7 bsampl_w bsample bsample_7 bsqreg bstat bstat_7 bstat_8 bstrap bstrap_7 bubble bubbleplot ca ca_estat ca_p cabiplot camat canon canon_8 canon_8_p canon_estat canon_p cap caprojection capt captu captur capture cat cc cchart cchart_7 cci cd censobs_table centile cf char chdir checkdlgfiles checkestimationsample checkhlpfiles checksum chelp ci cii cl class classutil clear cli clis clist clo clog clog_lf clog_p clogi clogi_sw clogit clogit_lf clogit_p clogitp clogl_sw cloglog clonevar clslistarray cluster cluster_measures cluster_stop cluster_tree cluster_tree_8 clustermat cmdlog cnr cnre cnreg cnreg_p cnreg_sw cnsreg codebook collaps4 collapse colormult_nb colormult_nw compare compress conf confi confir confirm conren cons const constr constra constrai constrain constraint continue contract copy copyright copysource cor corc corr corr2data corr_anti corr_kmo corr_smc corre correl correla correlat correlate corrgram cou coun count cox cox_p cox_sw coxbase coxhaz coxvar cprplot cprplot_7 crc cret cretu cretur creturn cross cs cscript cscript_log csi ct ct_is ctset ctst_5 ctst_st cttost cumsp cumsp_7 cumul cusum cusum_7 cutil d|0 datasig datasign datasigna datasignat datasignatu datasignatur datasignature datetof db dbeta de dec deco decod decode deff des desc descr descri describ describe destring dfbeta dfgls dfuller di di_g dir dirstats dis discard disp disp_res disp_s displ displa display distinct do doe doed doedi doedit dotplot dotplot_7 dprobit drawnorm drop ds ds_util dstdize duplicates durbina dwstat dydx e|0 ed edi edit egen eivreg emdef en enc enco encod encode eq erase ereg ereg_lf ereg_p ereg_sw ereghet ereghet_glf ereghet_glf_sh ereghet_gp ereghet_ilf ereghet_ilf_sh ereghet_ip eret eretu eretur ereturn err erro error esize est est_cfexist est_cfname est_clickable est_expand est_hold est_table est_unhold est_unholdok estat estat_default estat_summ estat_vce_only esti estimates etodow etof etomdy ex exi exit expand expandcl fac fact facto factor factor_estat factor_p factor_pca_rotated factor_rotate factormat fcast fcast_compute fcast_graph fdades fdadesc fdadescr fdadescri fdadescrib fdadescribe fdasav fdasave fdause fh_st file open file read file close file filefilter fillin find_hlp_file findfile findit findit_7 fit fl fli flis flist for5_0 forest forestplot form forma format fpredict frac_154 frac_adj frac_chk frac_cox frac_ddp frac_dis frac_dv frac_in frac_mun frac_pp frac_pq frac_pv frac_wgt frac_xo fracgen fracplot fracplot_7 fracpoly fracpred fron_ex fron_hn fron_p fron_tn fron_tn2 frontier ftodate ftoe ftomdy ftowdate funnel funnelplot g|0 gamhet_glf gamhet_gp gamhet_ilf gamhet_ip gamma gamma_d2 gamma_p gamma_sw gammahet gdi_hexagon gdi_spokes ge gen gene gener genera generat generate genrank genstd genvmean gettoken gl gladder gladder_7 glim_l01 glim_l02 glim_l03 glim_l04 glim_l05 glim_l06 glim_l07 glim_l08 glim_l09 glim_l10 glim_l11 glim_l12 glim_lf glim_mu glim_nw1 glim_nw2 glim_nw3 glim_p glim_v1 glim_v2 glim_v3 glim_v4 glim_v5 glim_v6 glim_v7 glm glm_6 glm_p glm_sw glmpred glo glob globa global glogit glogit_8 glogit_p gmeans gnbre_lf gnbreg gnbreg_5 gnbreg_p gomp_lf gompe_sw gomper_p gompertz gompertzhet gomphet_glf gomphet_glf_sh gomphet_gp gomphet_ilf gomphet_ilf_sh gomphet_ip gphdot gphpen gphprint gprefs gprobi_p gprobit gprobit_8 gr gr7 gr_copy gr_current gr_db gr_describe gr_dir gr_draw gr_draw_replay gr_drop gr_edit gr_editviewopts gr_example gr_example2 gr_export gr_print gr_qscheme gr_query gr_read gr_rename gr_replay gr_save gr_set gr_setscheme gr_table gr_undo gr_use graph graph7 grebar greigen greigen_7 greigen_8 grmeanby grmeanby_7 gs_fileinfo gs_filetype gs_graphinfo gs_stat gsort gwood h|0 hadimvo hareg hausman haver he heck_d2 heckma_p heckman heckp_lf heckpr_p heckprob hel help hereg hetpr_lf hetpr_p hetprob hettest hexdump hilite hist hist_7 histogram hlogit hlu hmeans hotel hotelling hprobit hreg hsearch icd9 icd9_ff icd9p iis impute imtest inbase include inf infi infil infile infix inp inpu input ins insheet insp inspe inspec inspect integ inten intreg intreg_7 intreg_p intrg2_ll intrg_ll intrg_ll2 ipolate iqreg ir irf irf_create irfm iri is_svy is_svysum isid istdize ivprob_1_lf ivprob_lf ivprobit ivprobit_p ivreg ivreg_footnote ivtob_1_lf ivtob_lf ivtobit ivtobit_p jackknife jacknife jknife jknife_6 jknife_8 jkstat joinby kalarma1 kap kap_3 kapmeier kappa kapwgt kdensity kdensity_7 keep ksm ksmirnov ktau kwallis l|0 la lab labbe labbeplot labe label labelbook ladder levels levelsof leverage lfit lfit_p li lincom line linktest lis list lloghet_glf lloghet_glf_sh lloghet_gp lloghet_ilf lloghet_ilf_sh lloghet_ip llogi_sw llogis_p llogist llogistic llogistichet lnorm_lf lnorm_sw lnorma_p lnormal lnormalhet lnormhet_glf lnormhet_glf_sh lnormhet_gp lnormhet_ilf lnormhet_ilf_sh lnormhet_ip lnskew0 loadingplot loc loca local log logi logis_lf logistic logistic_p logit logit_estat logit_p loglogs logrank loneway lookfor lookup lowess lowess_7 lpredict lrecomp lroc lroc_7 lrtest ls lsens lsens_7 lsens_x lstat ltable ltable_7 ltriang lv lvr2plot lvr2plot_7 m|0 ma mac macr macro makecns man manova manova_estat manova_p manovatest mantel mark markin markout marksample mat mat_capp mat_order mat_put_rr mat_rapp mata mata_clear mata_describe mata_drop mata_matdescribe mata_matsave mata_matuse mata_memory mata_mlib mata_mosave mata_rename mata_which matalabel matcproc matlist matname matr matri matrix matrix_input__dlg matstrik mcc mcci md0_ md1_ md1debug_ md2_ md2debug_ mds mds_estat mds_p mdsconfig mdslong mdsmat mdsshepard mdytoe mdytof me_derd mean means median memory memsize menl meqparse mer merg merge meta mfp mfx mhelp mhodds minbound mixed_ll mixed_ll_reparm mkassert mkdir mkmat mkspline ml ml_5 ml_adjs ml_bhhhs ml_c_d ml_check ml_clear ml_cnt ml_debug ml_defd ml_e0 ml_e0_bfgs ml_e0_cycle ml_e0_dfp ml_e0i ml_e1 ml_e1_bfgs ml_e1_bhhh ml_e1_cycle ml_e1_dfp ml_e2 ml_e2_cycle ml_ebfg0 ml_ebfr0 ml_ebfr1 ml_ebh0q ml_ebhh0 ml_ebhr0 ml_ebr0i ml_ecr0i ml_edfp0 ml_edfr0 ml_edfr1 ml_edr0i ml_eds ml_eer0i ml_egr0i ml_elf ml_elf_bfgs ml_elf_bhhh ml_elf_cycle ml_elf_dfp ml_elfi ml_elfs ml_enr0i ml_enrr0 ml_erdu0 ml_erdu0_bfgs ml_erdu0_bhhh ml_erdu0_bhhhq ml_erdu0_cycle ml_erdu0_dfp ml_erdu0_nrbfgs ml_exde ml_footnote ml_geqnr ml_grad0 ml_graph ml_hbhhh ml_hd0 ml_hold ml_init ml_inv ml_log ml_max ml_mlout ml_mlout_8 ml_model ml_nb0 ml_opt ml_p ml_plot ml_query ml_rdgrd ml_repor ml_s_e ml_score ml_searc ml_technique ml_unhold mleval mlf_ mlmatbysum mlmatsum mlog mlogi mlogit mlogit_footnote mlogit_p mlopts mlsum mlvecsum mnl0_ mor more mov move mprobit mprobit_lf mprobit_p mrdu0_ mrdu1_ mvdecode mvencode mvreg mvreg_estat n|0 nbreg nbreg_al nbreg_lf nbreg_p nbreg_sw nestreg net newey newey_7 newey_p news nl nl_7 nl_9 nl_9_p nl_p nl_p_7 nlcom nlcom_p nlexp2 nlexp2_7 nlexp2a nlexp2a_7 nlexp3 nlexp3_7 nlgom3 nlgom3_7 nlgom4 nlgom4_7 nlinit nllog3 nllog3_7 nllog4 nllog4_7 nlog_rd nlogit nlogit_p nlogitgen nlogittree nlpred no nobreak noi nois noisi noisil noisily note notes notes_dlg nptrend numlabel numlist odbc old_ver olo olog ologi ologi_sw ologit ologit_p ologitp on one onew onewa oneway op_colnm op_comp op_diff op_inv op_str opr opro oprob oprob_sw oprobi oprobi_p oprobit oprobitp opts_exclusive order orthog orthpoly ou out outf outfi outfil outfile outs outsh outshe outshee outsheet ovtest pac pac_7 palette parse parse_dissim pause pca pca_8 pca_display pca_estat pca_p pca_rotate pcamat pchart pchart_7 pchi pchi_7 pcorr pctile pentium pergram pergram_7 permute permute_8 personal peto_st pkcollapse pkcross pkequiv pkexamine pkexamine_7 pkshape pksumm pksumm_7 pl plo plot plugin pnorm pnorm_7 poisgof poiss_lf poiss_sw poisso_p poisson poisson_estat post postclose postfile postutil pperron pr prais prais_e prais_e2 prais_p predict predictnl preserve print pro prob probi probit probit_estat probit_p proc_time procoverlay procrustes procrustes_estat procrustes_p profiler prog progr progra program prop proportion prtest prtesti pwcorr pwd q\\s qby qbys qchi qchi_7 qladder qladder_7 qnorm qnorm_7 qqplot qqplot_7 qreg qreg_c qreg_p qreg_sw qu quadchk quantile quantile_7 que quer query range ranksum ratio rchart rchart_7 rcof recast reclink recode reg reg3 reg3_p regdw regr regre regre_p2 regres regres_p regress regress_estat regriv_p remap ren rena renam rename renpfix repeat replace report reshape restore ret retu retur return rm rmdir robvar roccomp roccomp_7 roccomp_8 rocf_lf rocfit rocfit_8 rocgold rocplot rocplot_7 roctab roctab_7 rolling rologit rologit_p rot rota rotat rotate rotatemat rreg rreg_p ru run runtest rvfplot rvfplot_7 rvpplot rvpplot_7 sa safesum sample sampsi sav save savedresults saveold sc sca scal scala scalar scatter scm_mine sco scob_lf scob_p scobi_sw scobit scor score scoreplot scoreplot_help scree screeplot screeplot_help sdtest sdtesti se search separate seperate serrbar serrbar_7 serset set set_defaults sfrancia sh she shel shell shewhart shewhart_7 signestimationsample signrank signtest simul simul_7 simulate simulate_8 sktest sleep slogit slogit_d2 slogit_p smooth snapspan so sor sort spearman spikeplot spikeplot_7 spikeplt spline_x split sqreg sqreg_p sret sretu sretur sreturn ssc st st_ct st_hc st_hcd st_hcd_sh st_is st_issys st_note st_promo st_set st_show st_smpl st_subid stack statsby statsby_8 stbase stci stci_7 stcox stcox_estat stcox_fr stcox_fr_ll stcox_p stcox_sw stcoxkm stcoxkm_7 stcstat stcurv stcurve stcurve_7 stdes stem stepwise stereg stfill stgen stir stjoin stmc stmh stphplot stphplot_7 stphtest stphtest_7 stptime strate strate_7 streg streg_sw streset sts sts_7 stset stsplit stsum sttocc sttoct stvary stweib su suest suest_8 sum summ summa summar summari summariz summarize sunflower sureg survcurv survsum svar svar_p svmat svy svy_disp svy_dreg svy_est svy_est_7 svy_estat svy_get svy_gnbreg_p svy_head svy_header svy_heckman_p svy_heckprob_p svy_intreg_p svy_ivreg_p svy_logistic_p svy_logit_p svy_mlogit_p svy_nbreg_p svy_ologit_p svy_oprobit_p svy_poisson_p svy_probit_p svy_regress_p svy_sub svy_sub_7 svy_x svy_x_7 svy_x_p svydes svydes_8 svygen svygnbreg svyheckman svyheckprob svyintreg svyintreg_7 svyintrg svyivreg svylc svylog_p svylogit svymarkout svymarkout_8 svymean svymlog svymlogit svynbreg svyolog svyologit svyoprob svyoprobit svyopts svypois svypois_7 svypoisson svyprobit svyprobt svyprop svyprop_7 svyratio svyreg svyreg_p svyregress svyset svyset_7 svyset_8 svytab svytab_7 svytest svytotal sw sw_8 swcnreg swcox swereg swilk swlogis swlogit swologit swoprbt swpois swprobit swqreg swtobit swweib symmetry symmi symplot symplot_7 syntax sysdescribe sysdir sysuse szroeter ta tab tab1 tab2 tab_or tabd tabdi tabdis tabdisp tabi table tabodds tabodds_7 tabstat tabu tabul tabula tabulat tabulate te tempfile tempname tempvar tes test testnl testparm teststd tetrachoric time_it timer tis tob tobi tobit tobit_p tobit_sw token tokeni tokeniz tokenize tostring total translate translator transmap treat_ll treatr_p treatreg trim trimfill trnb_cons trnb_mean trpoiss_d2 trunc_ll truncr_p truncreg tsappend tset tsfill tsline tsline_ex tsreport tsrevar tsrline tsset tssmooth tsunab ttest ttesti tut_chk tut_wait tutorial tw tware_st two twoway twoway__fpfit_serset twoway__function_gen twoway__histogram_gen twoway__ipoint_serset twoway__ipoints_serset twoway__kdensity_gen twoway__lfit_serset twoway__normgen_gen twoway__pci_serset twoway__qfit_serset twoway__scatteri_serset twoway__sunflower_gen twoway_ksm_serset ty typ type typeof u|0 unab unabbrev unabcmd update us use uselabel var var_mkcompanion var_p varbasic varfcast vargranger varirf varirf_add varirf_cgraph varirf_create varirf_ctable varirf_describe varirf_dir varirf_drop varirf_erase varirf_graph varirf_ograph varirf_rename varirf_set varirf_table varlist varlmar varnorm varsoc varstable varstable_w varstable_w2 varwle vce vec vec_fevd vec_mkphi vec_p vec_p_w vecirf_create veclmar veclmar_w vecnorm vecnorm_w vecrank vecstable verinst vers versi versio version view viewsource vif vwls wdatetof webdescribe webseek webuse weib1_lf weib2_lf weib_lf weib_lf0 weibhet_glf weibhet_glf_sh weibhet_glfa weibhet_glfa_sh weibhet_gp weibhet_ilf weibhet_ilf_sh weibhet_ilfa weibhet_ilfa_sh weibhet_ip weibu_sw weibul_p weibull weibull_c weibull_s weibullhet wh whelp whi which whil while wilc_st wilcoxon win wind windo window winexec wntestb wntestb_7 wntestq xchart xchart_7 xcorr xcorr_7 xi xi_6 xmlsav xmlsave xmluse xpose xsh xshe xshel xshell xt_iis xt_tis xtab_p xtabond xtbin_p xtclog xtcloglog xtcloglog_8 xtcloglog_d2 xtcloglog_pa_p xtcloglog_re_p xtcnt_p xtcorr xtdata xtdes xtfront_p xtfrontier xtgee xtgee_elink xtgee_estat xtgee_makeivar xtgee_p xtgee_plink xtgls xtgls_p xthaus xthausman xtht_p xthtaylor xtile xtint_p xtintreg xtintreg_8 xtintreg_d2 xtintreg_p xtivp_1 xtivp_2 xtivreg xtline xtline_ex xtlogit xtlogit_8 xtlogit_d2 xtlogit_fe_p xtlogit_pa_p xtlogit_re_p xtmixed xtmixed_estat xtmixed_p xtnb_fe xtnb_lf xtnbreg xtnbreg_pa_p xtnbreg_refe_p xtpcse xtpcse_p xtpois xtpoisson xtpoisson_d2 xtpoisson_pa_p xtpoisson_refe_p xtpred xtprobit xtprobit_8 xtprobit_d2 xtprobit_re_p xtps_fe xtps_lf xtps_ren xtps_ren_8 xtrar_p xtrc xtrc_p xtrchh xtrefe_p xtreg xtreg_be xtreg_fe xtreg_ml xtreg_pa_p xtreg_re xtregar xtrere_p xtset xtsf_ll xtsf_llti xtsum xttab xttest0 xttobit xttobit_8 xttobit_p xttrans yx yxview__barlike_draw yxview_area_draw yxview_bar_draw yxview_dot_draw yxview_dropline_draw yxview_function_draw yxview_iarrow_draw yxview_ilabels_draw yxview_normal_draw yxview_pcarrow_draw yxview_pcbarrow_draw yxview_pccapsym_draw yxview_pcscatter_draw yxview_pcspike_draw yxview_rarea_draw yxview_rbar_draw yxview_rbarm_draw yxview_rcap_draw yxview_rcapsym_draw yxview_rconnected_draw yxview_rline_draw yxview_rscatter_draw yxview_rspike_draw yxview_spike_draw yxview_sunflower_draw zap_s zinb zinb_llf zinb_plf zip zip_llf zip_p zip_plf zt_ct_5 zt_hc_5 zt_hcd_5 zt_is_5 zt_iss_5 zt_sho_5 zt_smp_5 ztbase_5 ztcox_5 ztdes_5 ztereg_5 ztfill_5 ztgen_5 ztir_5 ztjoin_5 ztnb ztnb_p ztp ztp_p zts_5 ztset_5 ztspli_5 ztsum_5 zttoct_5 ztvary_5 ztweib_5",contains:[{className:"symbol",begin:/`[a-zA-Z0-9_]+'/},{className:"variable",begin:/\$\{?[a-zA-Z0-9_]+\}?/},{className:"string",variants:[{begin:`\`"[^\r +]*?"'`},{begin:`"[^\r +"]*"`}]},{className:"built_in",variants:[{begin:"\\b(abs|acos|asin|atan|atan2|atanh|ceil|cloglog|comb|cos|digamma|exp|floor|invcloglog|invlogit|ln|lnfact|lnfactorial|lngamma|log|log10|max|min|mod|reldif|round|sign|sin|sqrt|sum|tan|tanh|trigamma|trunc|betaden|Binomial|binorm|binormal|chi2|chi2tail|dgammapda|dgammapdada|dgammapdadx|dgammapdx|dgammapdxdx|F|Fden|Ftail|gammaden|gammap|ibeta|invbinomial|invchi2|invchi2tail|invF|invFtail|invgammap|invibeta|invnchi2|invnFtail|invnibeta|invnorm|invnormal|invttail|nbetaden|nchi2|nFden|nFtail|nibeta|norm|normal|normalden|normd|npnchi2|tden|ttail|uniform|abbrev|char|index|indexnot|length|lower|ltrim|match|plural|proper|real|regexm|regexr|regexs|reverse|rtrim|string|strlen|strlower|strltrim|strmatch|strofreal|strpos|strproper|strreverse|strrtrim|strtrim|strupper|subinstr|subinword|substr|trim|upper|word|wordcount|_caller|autocode|byteorder|chop|clip|cond|e|epsdouble|epsfloat|group|inlist|inrange|irecode|matrix|maxbyte|maxdouble|maxfloat|maxint|maxlong|mi|minbyte|mindouble|minfloat|minint|minlong|missing|r|recode|replay|return|s|scalar|d|date|day|dow|doy|halfyear|mdy|month|quarter|week|year|d|daily|dofd|dofh|dofm|dofq|dofw|dofy|h|halfyearly|hofd|m|mofd|monthly|q|qofd|quarterly|tin|twithin|w|weekly|wofd|y|yearly|yh|ym|yofd|yq|yw|cholesky|colnumb|colsof|corr|det|diag|diag0cnt|el|get|hadamard|I|inv|invsym|issym|issymmetric|J|matmissing|matuniform|mreldif|nullmat|rownumb|rowsof|sweep|syminv|trace|vec|vecdiag)(?=\\()"}]},e.COMMENT("^[ ]*\\*.*$",!1),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}}var Bu=Fu;function Gu(e){return{name:"STEP Part 21",aliases:["p21","step","stp"],case_insensitive:!0,keywords:{$pattern:"[A-Z_][A-Z0-9_.]*",keyword:"HEADER ENDSEC DATA"},contains:[{className:"meta",begin:"ISO-10303-21;",relevance:10},{className:"meta",begin:"END-ISO-10303-21;",relevance:10},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.COMMENT("/\\*\\*!","\\*/"),e.C_NUMBER_MODE,e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"string",begin:"'",end:"'"},{className:"symbol",variants:[{begin:"#",end:"\\d+",illegal:"\\W"}]}]}}var Yu=Gu;const Hu=e=>({IMPORTANT:{className:"meta",begin:"!important"},HEXCOLOR:{className:"number",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})"},ATTRIBUTE_SELECTOR_MODE:{className:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}}),Vu=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],qu=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],$u=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],zu=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],Wu=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-variant","font-variant-ligatures","font-variation-settings","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","src","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"].reverse();function Ku(e){const t=Hu(e),n="and or not only",a={className:"variable",begin:"\\$"+e.IDENT_RE},r=["charset","css","debug","extend","font-face","for","import","include","keyframes","media","mixin","page","warn","while"],i="(?=[.\\s\\n[:,(])";return{name:"Stylus",aliases:["styl"],case_insensitive:!1,keywords:"if else for in",illegal:"("+["\\?","(\\bReturn\\b)","(\\bEnd\\b)","(\\bend\\b)","(\\bdef\\b)",";","#\\s","\\*\\s","===\\s","\\|","%"].join("|")+")",contains:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t.HEXCOLOR,{begin:"\\.[a-zA-Z][a-zA-Z0-9_-]*"+i,className:"selector-class"},{begin:"#[a-zA-Z][a-zA-Z0-9_-]*"+i,className:"selector-id"},{begin:"\\b("+Vu.join("|")+")"+i,className:"selector-tag"},{className:"selector-pseudo",begin:"&?:("+$u.join("|")+")"+i},{className:"selector-pseudo",begin:"&?::("+zu.join("|")+")"+i},t.ATTRIBUTE_SELECTOR_MODE,{className:"keyword",begin:/@media/,starts:{end:/[{;}]/,keywords:{$pattern:/[a-z-]+/,keyword:n,attribute:qu.join(" ")},contains:[e.CSS_NUMBER_MODE]}},{className:"keyword",begin:"@((-(o|moz|ms|webkit)-)?("+r.join("|")+"))\\b"},a,e.CSS_NUMBER_MODE,{className:"function",begin:"^[a-zA-Z][a-zA-Z0-9_-]*\\(.*\\)",illegal:"[\\n]",returnBegin:!0,contains:[{className:"title",begin:"\\b[a-zA-Z][a-zA-Z0-9_-]*"},{className:"params",begin:/\(/,end:/\)/,contains:[t.HEXCOLOR,a,e.APOS_STRING_MODE,e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE]}]},{className:"attribute",begin:"\\b("+Wu.join("|")+")\\b",starts:{end:/;|$/,contains:[t.HEXCOLOR,a,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.CSS_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t.IMPORTANT],illegal:/\./,relevance:0}}]}}var Qu=Ku;function Xu(e){return{name:"SubUnit",case_insensitive:!0,contains:[{className:"string",begin:`\\[ +(multipart)?`,end:`\\] +`},{className:"string",begin:"\\d{4}-\\d{2}-\\d{2}(\\s+)\\d{2}:\\d{2}:\\d{2}.\\d+Z"},{className:"string",begin:"(\\+|-)\\d+"},{className:"keyword",relevance:10,variants:[{begin:"^(test|testing|success|successful|failure|error|skip|xfail|uxsuccess)(:?)\\s+(test)?"},{begin:"^progress(:?)(\\s+)?(pop|push)?"},{begin:"^tags:"},{begin:"^time:"}]}]}}var Zu=Xu;function Tn(e){return e?typeof e=="string"?e:e.source:null}function ge(e){return k("(?=",e,")")}function k(...e){return e.map(n=>Tn(n)).join("")}function z(...e){return"("+e.map(n=>Tn(n)).join("|")+")"}const Ct=e=>k(/\b/,e,/\w$/.test(e)?/\b/:/\B/),zt=["Protocol","Type"].map(Ct),it=["init","self"].map(Ct),Ju=["Any","Self"],ot=["associatedtype","async","await",/as\?/,/as!/,"as","break","case","catch","class","continue","convenience","default","defer","deinit","didSet","do","dynamic","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","lazy","let","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],Wt=["false","nil","true"],ju=["assignment","associativity","higherThan","left","lowerThan","none","right"],em=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warn_unqualified_access","#warning"],Kt=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],bn=z(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),Rn=z(bn,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),st=k(bn,Rn,"*"),Nn=z(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),Ve=z(Nn,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),ee=k(Nn,Ve,"*"),lt=k(/[A-Z]/,Ve,"*"),tm=["autoclosure",k(/convention\(/,z("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",k(/objc\(/,ee,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","testable","UIApplicationMain","unknown","usableFromInline"],nm=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function am(e){const t={match:/\s+/,relevance:0},n=e.COMMENT("/\\*","\\*/",{contains:["self"]}),a=[e.C_LINE_COMMENT_MODE,n],r={className:"keyword",begin:k(/\./,ge(z(...zt,...it))),end:z(...zt,...it),excludeBegin:!0},i={match:k(/\./,z(...ot)),relevance:0},s=ot.filter(M=>typeof M=="string").concat(["_|0"]),o=ot.filter(M=>typeof M!="string").concat(Ju).map(Ct),l={variants:[{className:"keyword",match:z(...o,...it)}]},c={$pattern:z(/\b\w+/,/#\w+/),keyword:s.concat(em),literal:Wt},_=[r,i,l],u={match:k(/\./,z(...Kt)),relevance:0},m={className:"built_in",match:k(/\b/,z(...Kt),/(?=\()/)},g=[u,m],E={match:/->/,relevance:0},S={className:"operator",relevance:0,variants:[{match:st},{match:`\\.(\\.|${Rn})+`}]},T=[E,S],C="([0-9]_*)+",R="([0-9a-fA-F]_*)+",f={className:"number",relevance:0,variants:[{match:`\\b(${C})(\\.(${C}))?([eE][+-]?(${C}))?\\b`},{match:`\\b0x(${R})(\\.(${R}))?([pP][+-]?(${C}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},O=(M="")=>({className:"subst",variants:[{match:k(/\\/,M,/[0\\tnr"']/)},{match:k(/\\/,M,/u\{[0-9a-fA-F]{1,8}\}/)}]}),L=(M="")=>({className:"subst",match:k(/\\/,M,/[\t ]*(?:[\r\n]|\r\n)/)}),h=(M="")=>({className:"subst",label:"interpol",begin:k(/\\/,M,/\(/),end:/\)/}),w=(M="")=>({begin:k(M,/"""/),end:k(/"""/,M),contains:[O(M),L(M),h(M)]}),Y=(M="")=>({begin:k(M,/"/),end:k(/"/,M),contains:[O(M),h(M)]}),v={className:"string",variants:[w(),w("#"),w("##"),w("###"),Y(),Y("#"),Y("##"),Y("###")]},B={match:k(/`/,ee,/`/)},oe={className:"variable",match:/\$\d+/},se={className:"variable",match:`\\$${Ve}+`},j=[B,oe,se],le={match:/(@|#)available/,className:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:nm,contains:[...T,f,v]}]}},q={className:"keyword",match:k(/@/,z(...tm))},te={className:"meta",match:k(/@/,ee)},Z=[le,q,te],W={match:ge(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:k(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,Ve,"+")},{className:"type",match:lt,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:k(/\s+&\s+/,ge(lt)),relevance:0}]},ce={begin://,keywords:c,contains:[...a,..._,...Z,E,W]};W.contains.push(ce);const J={match:k(ee,/\s*:/),keywords:"_|0",relevance:0},ne={begin:/\(/,end:/\)/,relevance:0,keywords:c,contains:["self",J,...a,..._,...g,...T,f,v,...j,...Z,W]},_e={beginKeywords:"func",contains:[{className:"title",match:z(B.match,ee,st),endsParent:!0,relevance:0},t]},p={begin://,contains:[...a,W]},b={begin:z(ge(k(ee,/\s*:/)),ge(k(ee,/\s+/,ee,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:ee}]},A={begin:/\(/,end:/\)/,keywords:c,contains:[b,...a,..._,...T,f,v,...Z,W,ne],endsParent:!0,illegal:/["']/},x={className:"function",match:ge(/\bfunc\b/),contains:[_e,p,A,t],illegal:[/\[/,/%/]},U={className:"function",match:/\b(subscript|init[?!]?)\s*(?=[<(])/,keywords:{keyword:"subscript init init? init!",$pattern:/\w+[?!]?/},contains:[p,A,t],illegal:/\[|%/},K={beginKeywords:"operator",end:e.MATCH_NOTHING_RE,contains:[{className:"title",match:st,endsParent:!0,relevance:0}]},H={beginKeywords:"precedencegroup",end:e.MATCH_NOTHING_RE,contains:[{className:"title",match:lt,relevance:0},{begin:/{/,end:/}/,relevance:0,endsParent:!0,keywords:[...ju,...Wt],contains:[W]}]};for(const M of v.variants){const $=M.contains.find(Re=>Re.label==="interpol");$.keywords=c;const Q=[..._,...g,...T,f,v,...j];$.contains=[...Q,{begin:/\(/,end:/\)/,contains:["self",...Q]}]}return{name:"Swift",keywords:c,contains:[...a,x,U,{className:"class",beginKeywords:"struct protocol class extension enum",end:"\\{",excludeEnd:!0,keywords:c,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/}),..._]},K,H,{beginKeywords:"import",end:/$/,contains:[...a],relevance:0},..._,...g,...T,f,v,...j,...Z,W,ne]}}var rm=am;function im(e){return{name:"Tagger Script",contains:[{className:"comment",begin:/\$noop\(/,end:/\)/,contains:[{begin:/\(/,end:/\)/,contains:["self",{begin:/\\./}]}],relevance:10},{className:"keyword",begin:/\$(?!noop)[a-zA-Z][_a-zA-Z0-9]*/,end:/\(/,excludeEnd:!0},{className:"variable",begin:/%[_a-zA-Z0-9:]*/,end:"%"},{className:"symbol",begin:/\\./}]}}var om=im;function sm(e){var t="true false yes no null",n="[\\w#;/?:@&=+$,.~*'()[\\]]+",a={className:"attr",variants:[{begin:"\\w[\\w :\\/.-]*:(?=[ ]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ ]|$)'},{begin:"'\\w[\\w :\\/.-]*':(?=[ ]|$)"}]},r={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},i={className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,r]},s=e.inherit(i,{variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),o="[0-9]{4}(-[0-9][0-9]){0,2}",l="([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?",c="(\\.[0-9]*)?",_="([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?",u={className:"number",begin:"\\b"+o+l+c+_+"\\b"},m={end:",",endsWithParent:!0,excludeEnd:!0,keywords:t,relevance:0},g={begin:/\{/,end:/\}/,contains:[m],illegal:"\\n",relevance:0},E={begin:"\\[",end:"\\]",contains:[m],illegal:"\\n",relevance:0},S=[a,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+n},{className:"type",begin:"!<"+n+">"},{className:"type",begin:"!"+n},{className:"type",begin:"!!"+n},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:t,keywords:{literal:t}},u,{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},g,E,i],T=[...S];return T.pop(),T.push(s),m.contains=T,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:S}}var lm=sm;function cm(e){return{name:"Test Anything Protocol",case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"meta",variants:[{begin:"^TAP version (\\d+)$"},{begin:"^1\\.\\.(\\d+)$"}]},{begin:/---$/,end:"\\.\\.\\.$",subLanguage:"yaml",relevance:0},{className:"number",begin:" (\\d+) "},{className:"symbol",variants:[{begin:"^ok"},{begin:"^not ok"}]}]}}var _m=cm;function dm(e){return e?typeof e=="string"?e:e.source:null}function um(e){return Cn("(",e,")?")}function Cn(...e){return e.map(n=>dm(n)).join("")}function mm(e){const t=/[a-zA-Z_][a-zA-Z0-9_]*/,n={className:"number",variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]};return{name:"Tcl",aliases:["tk"],keywords:"after append apply array auto_execok auto_import auto_load auto_mkindex auto_mkindex_old auto_qualify auto_reset bgerror binary break catch cd chan clock close concat continue dde dict encoding eof error eval exec exit expr fblocked fconfigure fcopy file fileevent filename flush for foreach format gets glob global history http if incr info interp join lappend|10 lassign|10 lindex|10 linsert|10 list llength|10 load lrange|10 lrepeat|10 lreplace|10 lreverse|10 lsearch|10 lset|10 lsort|10 mathfunc mathop memory msgcat namespace open package parray pid pkg::create pkg_mkIndex platform platform::shell proc puts pwd read refchan regexp registry regsub|10 rename return safe scan seek set socket source split string subst switch tcl_endOfWord tcl_findLibrary tcl_startOfNextWord tcl_startOfPreviousWord tcl_wordBreakAfter tcl_wordBreakBefore tcltest tclvars tell time tm trace unknown unload unset update uplevel upvar variable vwait while",contains:[e.COMMENT(";[ \\t]*#","$"),e.COMMENT("^[ \\t]*#","$"),{beginKeywords:"proc",end:"[\\{]",excludeEnd:!0,contains:[{className:"title",begin:"[ \\t\\n\\r]+(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",end:"[ \\t\\n\\r]",endsWithParent:!0,excludeEnd:!0}]},{className:"variable",variants:[{begin:Cn(/\$/,um(/::/),t,"(::",t,")*")},{begin:"\\$\\{(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",end:"\\}",contains:[n]}]},{className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},n]}}var Em=mm;function pm(e){const t="bool byte i16 i32 i64 double string binary";return{name:"Thrift",keywords:{keyword:"namespace const typedef struct enum service exception void oneway set list map required optional",built_in:t,literal:"true false"},contains:[e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"class",beginKeywords:"struct enum service exception",end:/\{/,illegal:/\n/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]},{begin:"\\b(set|list|map)\\s*<",end:">",keywords:t,contains:["self"]}]}}var gm=pm;function Sm(e){const t={className:"number",begin:"[1-9][0-9]*",relevance:0},n={className:"symbol",begin:":[^\\]]+"},a={className:"built_in",begin:"(AR|P|PAYLOAD|PR|R|SR|RSR|LBL|VR|UALM|MESSAGE|UTOOL|UFRAME|TIMER|TIMER_OVERFLOW|JOINT_MAX_SPEED|RESUME_PROG|DIAG_REC)\\[",end:"\\]",contains:["self",t,n]},r={className:"built_in",begin:"(AI|AO|DI|DO|F|RI|RO|UI|UO|GI|GO|SI|SO)\\[",end:"\\]",contains:["self",t,e.QUOTE_STRING_MODE,n]};return{name:"TP",keywords:{keyword:"ABORT ACC ADJUST AND AP_LD BREAK CALL CNT COL CONDITION CONFIG DA DB DIV DETECT ELSE END ENDFOR ERR_NUM ERROR_PROG FINE FOR GP GUARD INC IF JMP LINEAR_MAX_SPEED LOCK MOD MONITOR OFFSET Offset OR OVERRIDE PAUSE PREG PTH RT_LD RUN SELECT SKIP Skip TA TB TO TOOL_OFFSET Tool_Offset UF UT UFRAME_NUM UTOOL_NUM UNLOCK WAIT X Y Z W P R STRLEN SUBSTR FINDSTR VOFFSET PROG ATTR MN POS",literal:"ON OFF max_speed LPOS JPOS ENABLE DISABLE START STOP RESET"},contains:[a,r,{className:"keyword",begin:"/(PROG|ATTR|MN|POS|END)\\b"},{className:"keyword",begin:"(CALL|RUN|POINT_LOGIC|LBL)\\b"},{className:"keyword",begin:"\\b(ACC|CNT|Skip|Offset|PSPD|RT_LD|AP_LD|Tool_Offset)"},{className:"number",begin:"\\d+(sec|msec|mm/sec|cm/min|inch/min|deg/sec|mm|in|cm)?\\b",relevance:0},e.COMMENT("//","[;$]"),e.COMMENT("!","[;$]"),e.COMMENT("--eg:","$"),e.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"'"},e.C_NUMBER_MODE,{className:"variable",begin:"\\$[A-Za-z0-9_]+"}]}}var Tm=Sm;function bm(e){var t={className:"params",begin:"\\(",end:"\\)"},n="attribute block constant cycle date dump include max min parent random range source template_from_string",a={beginKeywords:n,keywords:{name:n},relevance:0,contains:[t]},r={begin:/\|[A-Za-z_]+:?/,keywords:"abs batch capitalize column convert_encoding date date_modify default escape filter first format inky_to_html inline_css join json_encode keys last length lower map markdown merge nl2br number_format raw reduce replace reverse round slice sort spaceless split striptags title trim upper url_encode",contains:[a]},i="apply autoescape block deprecated do embed extends filter flush for from if import include macro sandbox set use verbatim with";return i=i+" "+i.split(" ").map(function(s){return"end"+s}).join(" "),{name:"Twig",aliases:["craftcms"],case_insensitive:!0,subLanguage:"xml",contains:[e.COMMENT(/\{#/,/#\}/),{className:"template-tag",begin:/\{%/,end:/%\}/,contains:[{className:"name",begin:/\w+/,keywords:i,starts:{endsWithParent:!0,contains:[r,a],relevance:0}}]},{className:"template-variable",begin:/\{\{/,end:/\}\}/,contains:["self",r,a]}]}}var Rm=bm;const qe="[A-Za-z$_][0-9A-Za-z$_]*",fn=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],On=["true","false","null","undefined","NaN","Infinity"],Nm=["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer","BigInt64Array","BigUint64Array","BigInt"],Cm=["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],fm=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Om=["arguments","this","super","console","window","document","localStorage","module","global"],In=[].concat(fm,Om,Nm,Cm);function Im(e){return e?typeof e=="string"?e:e.source:null}function Qt(e){return Et("(?=",e,")")}function Et(...e){return e.map(n=>Im(n)).join("")}function Am(e){const t=(O,{after:L})=>{const h="",end:""},r={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(O,L)=>{const h=O[0].length+O.index,w=O.input[h];if(w==="<"){L.ignoreMatch();return}w===">"&&(t(O,{after:h})||L.ignoreMatch())}},i={$pattern:qe,keyword:fn,literal:On,built_in:In},s="[0-9](_?[0-9])*",o=`\\.(${s})`,l="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",c={className:"number",variants:[{begin:`(\\b(${l})((${o})|\\.)?|(${o}))[eE][+-]?(${s})\\b`},{begin:`\\b(${l})\\b((${o})\\b|\\.)?|(${o})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},_={className:"subst",begin:"\\$\\{",end:"\\}",keywords:i,contains:[]},u={begin:"html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,_],subLanguage:"xml"}},m={begin:"css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,_],subLanguage:"css"}},g={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,_]},E=e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+",contains:[{className:"type",begin:"\\{",end:"\\}",relevance:0},{className:"variable",begin:n+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),S={className:"comment",variants:[E,e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},T=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,u,m,g,c,e.REGEXP_MODE];_.contains=T.concat({begin:/\{/,end:/\}/,keywords:i,contains:["self"].concat(T)});const C=[].concat(S,_.contains),R=C.concat([{begin:/\(/,end:/\)/,keywords:i,contains:["self"].concat(C)}]),f={className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:R};return{name:"Javascript",aliases:["js","jsx","mjs","cjs"],keywords:i,exports:{PARAMS_CONTAINS:R},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),{label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,u,m,g,S,c,{begin:Et(/[{,\n]\s*/,Qt(Et(/(((\/\/.*$)|(\/\*(\*[^/]|[^*])*\*\/))\s*)*/,n+"\\s*:"))),relevance:0,contains:[{className:"attr",begin:n+Qt("\\s*:"),relevance:0}]},{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[S,e.REGEXP_MODE,{className:"function",begin:"(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:R}]}]},{begin:/,/,relevance:0},{className:"",begin:/\s/,end:/\s*/,skip:!0},{variants:[{begin:a.begin,end:a.end},{begin:r.begin,"on:begin":r.isTrulyOpeningTag,end:r.end}],subLanguage:"xml",contains:[{begin:r.begin,end:r.end,skip:!0,contains:["self"]}]}],relevance:0},{className:"function",beginKeywords:"function",end:/[{;]/,excludeEnd:!0,keywords:i,contains:["self",e.inherit(e.TITLE_MODE,{begin:n}),f],illegal:/%/},{beginKeywords:"while if switch catch for"},{className:"function",begin:e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,contains:[f,e.inherit(e.TITLE_MODE,{begin:n})]},{variants:[{begin:"\\."+n},{begin:"\\$"+n}],relevance:0},{className:"class",beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"[\]]/,contains:[{beginKeywords:"extends"},e.UNDERSCORE_TITLE_MODE]},{begin:/\b(?=constructor)/,end:/[{;]/,excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:n}),"self",f]},{begin:"(get|set)\\s+(?="+n+"\\()",end:/\{/,keywords:"get set",contains:[e.inherit(e.TITLE_MODE,{begin:n}),{begin:/\(\)/},f]},{begin:/\$[(.]/}]}}function vm(e){const t=qe,n={beginKeywords:"namespace",end:/\{/,excludeEnd:!0},a={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:"interface extends"},r={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},i=["any","void","number","boolean","string","object","never","enum"],s=["type","namespace","typedef","interface","public","private","protected","implements","declare","abstract","readonly"],o={$pattern:qe,keyword:fn.concat(s),literal:On,built_in:In.concat(i)},l={className:"meta",begin:"@"+t},c=(m,g,E)=>{const S=m.contains.findIndex(T=>T.label===g);if(S===-1)throw new Error("can not find mode to replace");m.contains.splice(S,1,E)},_=Am(e);Object.assign(_.keywords,o),_.exports.PARAMS_CONTAINS.push(l),_.contains=_.contains.concat([l,n,a]),c(_,"shebang",e.SHEBANG()),c(_,"use_strict",r);const u=_.contains.find(m=>m.className==="function");return u.relevance=0,Object.assign(_,{name:"TypeScript",aliases:["ts","tsx"]}),_}var ym=vm;function Dm(e){return{name:"Vala",keywords:{keyword:"char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 uint16 uint32 uint64 float double bool struct enum string void weak unowned owned async signal static abstract interface override virtual delegate if while do for foreach else switch case break default return try catch public private protected internal using new this get set const stdout stdin stderr var",built_in:"DBus GLib CCode Gee Object Gtk Posix",literal:"false true null"},contains:[{className:"class",beginKeywords:"class interface namespace",end:/\{/,excludeEnd:!0,illegal:"[^,:\\n\\s\\.]",contains:[e.UNDERSCORE_TITLE_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",begin:'"""',end:'"""',relevance:5},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{className:"meta",begin:"^#",end:"$",relevance:2}]}}var hm=Dm;function An(e){return e?typeof e=="string"?e:e.source:null}function Ye(...e){return e.map(n=>An(n)).join("")}function ct(...e){return"("+e.map(n=>An(n)).join("|")+")"}function Mm(e){const t={className:"string",begin:/"(""|[^/n])"C\b/},n={className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},a=/\d{1,2}\/\d{1,2}\/\d{4}/,r=/\d{4}-\d{1,2}-\d{1,2}/,i=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,s=/\d{1,2}(:\d{1,2}){1,2}/,o={className:"literal",variants:[{begin:Ye(/# */,ct(r,a),/ *#/)},{begin:Ye(/# */,s,/ *#/)},{begin:Ye(/# */,i,/ *#/)},{begin:Ye(/# */,ct(r,a),/ +/,ct(i,s),/ *#/)}]},l={className:"number",relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},c={className:"label",begin:/^\w+:/},_=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]}),u=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",literal:"true false nothing"},illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[t,n,o,l,c,_,u,{className:"meta",begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{"meta-keyword":"const disable else elseif enable end externalsource if region then"},contains:[u]}]}}var Lm=Mm;function vn(e){return e?typeof e=="string"?e:e.source:null}function xm(...e){return e.map(n=>vn(n)).join("")}function Pm(...e){return"("+e.map(n=>vn(n)).join("|")+")"}function wm(e){const t="lcase month vartype instrrev ubound setlocale getobject rgb getref string weekdayname rnd dateadd monthname now day minute isarray cbool round formatcurrency conversions csng timevalue second year space abs clng timeserial fixs len asc isempty maths dateserial atn timer isobject filter weekday datevalue ccur isdate instr datediff formatdatetime replace isnull right sgn array snumeric log cdbl hex chr lbound msgbox ucase getlocale cos cdate cbyte rtrim join hour oct typename trim strcomp int createobject loadpicture tan formatnumber mid split cint sin datepart ltrim sqr time derived eval date formatpercent exp inputbox left ascw chrw regexp cstr err".split(" "),n=["server","response","request","scriptengine","scriptenginebuildversion","scriptengineminorversion","scriptenginemajorversion"],a={begin:xm(Pm(...t),"\\s*\\("),relevance:0,keywords:{built_in:t}};return{name:"VBScript",aliases:["vbs"],case_insensitive:!0,keywords:{keyword:"call class const dim do loop erase execute executeglobal exit for each next function if then else on error option explicit new private property let get public randomize redim rem select case set stop sub while wend with end to elseif is or xor and not class_initialize class_terminate default preserve in me byval byref step resume goto",built_in:n,literal:"true false null nothing empty"},illegal:"//",contains:[a,e.inherit(e.QUOTE_STRING_MODE,{contains:[{begin:'""'}]}),e.COMMENT(/'/,/$/,{relevance:0}),e.C_NUMBER_MODE]}}var km=wm;function Um(e){return{name:"VBScript in HTML",subLanguage:"xml",contains:[{begin:"<%",end:"%>",subLanguage:"vbscript"}]}}var Fm=Um;function Bm(e){return{name:"Verilog",aliases:["v","sv","svh"],case_insensitive:!1,keywords:{$pattern:/[\w\$]+/,keyword:"accept_on alias always always_comb always_ff always_latch and assert assign assume automatic before begin bind bins binsof bit break buf|0 bufif0 bufif1 byte case casex casez cell chandle checker class clocking cmos config const constraint context continue cover covergroup coverpoint cross deassign default defparam design disable dist do edge else end endcase endchecker endclass endclocking endconfig endfunction endgenerate endgroup endinterface endmodule endpackage endprimitive endprogram endproperty endspecify endsequence endtable endtask enum event eventually expect export extends extern final first_match for force foreach forever fork forkjoin function generate|5 genvar global highz0 highz1 if iff ifnone ignore_bins illegal_bins implements implies import incdir include initial inout input inside instance int integer interconnect interface intersect join join_any join_none large let liblist library local localparam logic longint macromodule matches medium modport module nand negedge nettype new nexttime nmos nor noshowcancelled not notif0 notif1 or output package packed parameter pmos posedge primitive priority program property protected pull0 pull1 pulldown pullup pulsestyle_ondetect pulsestyle_onevent pure rand randc randcase randsequence rcmos real realtime ref reg reject_on release repeat restrict return rnmos rpmos rtran rtranif0 rtranif1 s_always s_eventually s_nexttime s_until s_until_with scalared sequence shortint shortreal showcancelled signed small soft solve specify specparam static string strong strong0 strong1 struct super supply0 supply1 sync_accept_on sync_reject_on table tagged task this throughout time timeprecision timeunit tran tranif0 tranif1 tri tri0 tri1 triand trior trireg type typedef union unique unique0 unsigned until until_with untyped use uwire var vectored virtual void wait wait_order wand weak weak0 weak1 while wildcard wire with within wor xnor xor",literal:"null",built_in:"$finish $stop $exit $fatal $error $warning $info $realtime $time $printtimescale $bitstoreal $bitstoshortreal $itor $signed $cast $bits $stime $timeformat $realtobits $shortrealtobits $rtoi $unsigned $asserton $assertkill $assertpasson $assertfailon $assertnonvacuouson $assertoff $assertcontrol $assertpassoff $assertfailoff $assertvacuousoff $isunbounded $sampled $fell $changed $past_gclk $fell_gclk $changed_gclk $rising_gclk $steady_gclk $coverage_control $coverage_get $coverage_save $set_coverage_db_name $rose $stable $past $rose_gclk $stable_gclk $future_gclk $falling_gclk $changing_gclk $display $coverage_get_max $coverage_merge $get_coverage $load_coverage_db $typename $unpacked_dimensions $left $low $increment $clog2 $ln $log10 $exp $sqrt $pow $floor $ceil $sin $cos $tan $countbits $onehot $isunknown $fatal $warning $dimensions $right $high $size $asin $acos $atan $atan2 $hypot $sinh $cosh $tanh $asinh $acosh $atanh $countones $onehot0 $error $info $random $dist_chi_square $dist_erlang $dist_exponential $dist_normal $dist_poisson $dist_t $dist_uniform $q_initialize $q_remove $q_exam $async$and$array $async$nand$array $async$or$array $async$nor$array $sync$and$array $sync$nand$array $sync$or$array $sync$nor$array $q_add $q_full $psprintf $async$and$plane $async$nand$plane $async$or$plane $async$nor$plane $sync$and$plane $sync$nand$plane $sync$or$plane $sync$nor$plane $system $display $displayb $displayh $displayo $strobe $strobeb $strobeh $strobeo $write $readmemb $readmemh $writememh $value$plusargs $dumpvars $dumpon $dumplimit $dumpports $dumpportson $dumpportslimit $writeb $writeh $writeo $monitor $monitorb $monitorh $monitoro $writememb $dumpfile $dumpoff $dumpall $dumpflush $dumpportsoff $dumpportsall $dumpportsflush $fclose $fdisplay $fdisplayb $fdisplayh $fdisplayo $fstrobe $fstrobeb $fstrobeh $fstrobeo $swrite $swriteb $swriteh $swriteo $fscanf $fread $fseek $fflush $feof $fopen $fwrite $fwriteb $fwriteh $fwriteo $fmonitor $fmonitorb $fmonitorh $fmonitoro $sformat $sformatf $fgetc $ungetc $fgets $sscanf $rewind $ftell $ferror"},contains:[e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.QUOTE_STRING_MODE,{className:"number",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"\\b((\\d+'(b|h|o|d|B|H|O|D))[0-9xzXZa-fA-F_]+)"},{begin:"\\B(('(b|h|o|d|B|H|O|D))[0-9xzXZa-fA-F_]+)"},{begin:"\\b([0-9_])+",relevance:0}]},{className:"variable",variants:[{begin:"#\\((?!parameter).+\\)"},{begin:"\\.\\w+",relevance:0}]},{className:"meta",begin:"`",end:"$",keywords:{"meta-keyword":"define __FILE__ __LINE__ begin_keywords celldefine default_nettype define else elsif end_keywords endcelldefine endif ifdef ifndef include line nounconnected_drive pragma resetall timescale unconnected_drive undef undefineall"},relevance:0}]}}var Gm=Bm;function Ym(e){const t="\\d(_|\\d)*",n="[eE][-+]?"+t,a=t+"(\\."+t+")?("+n+")?",r="\\w+",i=t+"#"+r+"(\\."+r+")?#("+n+")?",s="\\b("+i+"|"+a+")";return{name:"VHDL",case_insensitive:!0,keywords:{keyword:"abs access after alias all and architecture array assert assume assume_guarantee attribute begin block body buffer bus case component configuration constant context cover disconnect downto default else elsif end entity exit fairness file for force function generate generic group guarded if impure in inertial inout is label library linkage literal loop map mod nand new next nor not null of on open or others out package parameter port postponed procedure process property protected pure range record register reject release rem report restrict restrict_guarantee return rol ror select sequence severity shared signal sla sll sra srl strong subtype then to transport type unaffected units until use variable view vmode vprop vunit wait when while with xnor xor",built_in:"boolean bit character integer time delay_length natural positive string bit_vector file_open_kind file_open_status std_logic std_logic_vector unsigned signed boolean_vector integer_vector std_ulogic std_ulogic_vector unresolved_unsigned u_unsigned unresolved_signed u_signed real_vector time_vector",literal:"false true note warning error failure line text side width"},illegal:/\{/,contains:[e.C_BLOCK_COMMENT_MODE,e.COMMENT("--","$"),e.QUOTE_STRING_MODE,{className:"number",begin:s,relevance:0},{className:"string",begin:"'(U|X|0|1|Z|W|L|H|-)'",contains:[e.BACKSLASH_ESCAPE]},{className:"symbol",begin:"'[A-Za-z](_?[A-Za-z0-9])*",contains:[e.BACKSLASH_ESCAPE]}]}}var Hm=Ym;function Vm(e){return{name:"Vim Script",keywords:{$pattern:/[!#@\w]+/,keyword:"N|0 P|0 X|0 a|0 ab abc abo al am an|0 ar arga argd arge argdo argg argl argu as au aug aun b|0 bN ba bad bd be bel bf bl bm bn bo bp br brea breaka breakd breakl bro bufdo buffers bun bw c|0 cN cNf ca cabc caddb cad caddf cal cat cb cc ccl cd ce cex cf cfir cgetb cgete cg changes chd che checkt cl cla clo cm cmapc cme cn cnew cnf cno cnorea cnoreme co col colo com comc comp con conf cope cp cpf cq cr cs cst cu cuna cunme cw delm deb debugg delc delf dif diffg diffo diffp diffpu diffs diffthis dig di dl dell dj dli do doautoa dp dr ds dsp e|0 ea ec echoe echoh echom echon el elsei em en endfo endf endt endw ene ex exe exi exu f|0 files filet fin fina fini fir fix fo foldc foldd folddoc foldo for fu go gr grepa gu gv ha helpf helpg helpt hi hid his ia iabc if ij il im imapc ime ino inorea inoreme int is isp iu iuna iunme j|0 ju k|0 keepa kee keepj lN lNf l|0 lad laddb laddf la lan lat lb lc lch lcl lcs le lefta let lex lf lfir lgetb lgete lg lgr lgrepa lh ll lla lli lmak lm lmapc lne lnew lnf ln loadk lo loc lockv lol lope lp lpf lr ls lt lu lua luad luaf lv lvimgrepa lw m|0 ma mak map mapc marks mat me menut mes mk mks mksp mkv mkvie mod mz mzf nbc nb nbs new nm nmapc nme nn nnoreme noa no noh norea noreme norm nu nun nunme ol o|0 om omapc ome on ono onoreme opt ou ounme ow p|0 profd prof pro promptr pc ped pe perld po popu pp pre prev ps pt ptN ptf ptj ptl ptn ptp ptr pts pu pw py3 python3 py3d py3f py pyd pyf quita qa rec red redi redr redraws reg res ret retu rew ri rightb rub rubyd rubyf rund ru rv sN san sa sal sav sb sbN sba sbf sbl sbm sbn sbp sbr scrip scripte scs se setf setg setl sf sfir sh sim sig sil sl sla sm smap smapc sme sn sni sno snor snoreme sor so spelld spe spelli spellr spellu spellw sp spr sre st sta startg startr star stopi stj sts sun sunm sunme sus sv sw sy synti sync tN tabN tabc tabdo tabe tabf tabfir tabl tabm tabnew tabn tabo tabp tabr tabs tab ta tags tc tcld tclf te tf th tj tl tm tn to tp tr try ts tu u|0 undoj undol una unh unl unlo unm unme uns up ve verb vert vim vimgrepa vi viu vie vm vmapc vme vne vn vnoreme vs vu vunme windo w|0 wN wa wh wi winc winp wn wp wq wqa ws wu wv x|0 xa xmapc xm xme xn xnoreme xu xunme y|0 z|0 ~ Next Print append abbreviate abclear aboveleft all amenu anoremenu args argadd argdelete argedit argglobal arglocal argument ascii autocmd augroup aunmenu buffer bNext ball badd bdelete behave belowright bfirst blast bmodified bnext botright bprevious brewind break breakadd breakdel breaklist browse bunload bwipeout change cNext cNfile cabbrev cabclear caddbuffer caddexpr caddfile call catch cbuffer cclose center cexpr cfile cfirst cgetbuffer cgetexpr cgetfile chdir checkpath checktime clist clast close cmap cmapclear cmenu cnext cnewer cnfile cnoremap cnoreabbrev cnoremenu copy colder colorscheme command comclear compiler continue confirm copen cprevious cpfile cquit crewind cscope cstag cunmap cunabbrev cunmenu cwindow delete delmarks debug debuggreedy delcommand delfunction diffupdate diffget diffoff diffpatch diffput diffsplit digraphs display deletel djump dlist doautocmd doautoall deletep drop dsearch dsplit edit earlier echo echoerr echohl echomsg else elseif emenu endif endfor endfunction endtry endwhile enew execute exit exusage file filetype find finally finish first fixdel fold foldclose folddoopen folddoclosed foldopen function global goto grep grepadd gui gvim hardcopy help helpfind helpgrep helptags highlight hide history insert iabbrev iabclear ijump ilist imap imapclear imenu inoremap inoreabbrev inoremenu intro isearch isplit iunmap iunabbrev iunmenu join jumps keepalt keepmarks keepjumps lNext lNfile list laddexpr laddbuffer laddfile last language later lbuffer lcd lchdir lclose lcscope left leftabove lexpr lfile lfirst lgetbuffer lgetexpr lgetfile lgrep lgrepadd lhelpgrep llast llist lmake lmap lmapclear lnext lnewer lnfile lnoremap loadkeymap loadview lockmarks lockvar lolder lopen lprevious lpfile lrewind ltag lunmap luado luafile lvimgrep lvimgrepadd lwindow move mark make mapclear match menu menutranslate messages mkexrc mksession mkspell mkvimrc mkview mode mzscheme mzfile nbclose nbkey nbsart next nmap nmapclear nmenu nnoremap nnoremenu noautocmd noremap nohlsearch noreabbrev noremenu normal number nunmap nunmenu oldfiles open omap omapclear omenu only onoremap onoremenu options ounmap ounmenu ownsyntax print profdel profile promptfind promptrepl pclose pedit perl perldo pop popup ppop preserve previous psearch ptag ptNext ptfirst ptjump ptlast ptnext ptprevious ptrewind ptselect put pwd py3do py3file python pydo pyfile quit quitall qall read recover redo redir redraw redrawstatus registers resize retab return rewind right rightbelow ruby rubydo rubyfile rundo runtime rviminfo substitute sNext sandbox sargument sall saveas sbuffer sbNext sball sbfirst sblast sbmodified sbnext sbprevious sbrewind scriptnames scriptencoding scscope set setfiletype setglobal setlocal sfind sfirst shell simalt sign silent sleep slast smagic smapclear smenu snext sniff snomagic snoremap snoremenu sort source spelldump spellgood spellinfo spellrepall spellundo spellwrong split sprevious srewind stop stag startgreplace startreplace startinsert stopinsert stjump stselect sunhide sunmap sunmenu suspend sview swapname syntax syntime syncbind tNext tabNext tabclose tabedit tabfind tabfirst tablast tabmove tabnext tabonly tabprevious tabrewind tag tcl tcldo tclfile tearoff tfirst throw tjump tlast tmenu tnext topleft tprevious trewind tselect tunmenu undo undojoin undolist unabbreviate unhide unlet unlockvar unmap unmenu unsilent update vglobal version verbose vertical vimgrep vimgrepadd visual viusage view vmap vmapclear vmenu vnew vnoremap vnoremenu vsplit vunmap vunmenu write wNext wall while winsize wincmd winpos wnext wprevious wqall wsverb wundo wviminfo xit xall xmapclear xmap xmenu xnoremap xnoremenu xunmap xunmenu yank",built_in:"synIDtrans atan2 range matcharg did_filetype asin feedkeys xor argv complete_check add getwinposx getqflist getwinposy screencol clearmatches empty extend getcmdpos mzeval garbagecollect setreg ceil sqrt diff_hlID inputsecret get getfperm getpid filewritable shiftwidth max sinh isdirectory synID system inputrestore winline atan visualmode inputlist tabpagewinnr round getregtype mapcheck hasmapto histdel argidx findfile sha256 exists toupper getcmdline taglist string getmatches bufnr strftime winwidth bufexists strtrans tabpagebuflist setcmdpos remote_read printf setloclist getpos getline bufwinnr float2nr len getcmdtype diff_filler luaeval resolve libcallnr foldclosedend reverse filter has_key bufname str2float strlen setline getcharmod setbufvar index searchpos shellescape undofile foldclosed setqflist buflisted strchars str2nr virtcol floor remove undotree remote_expr winheight gettabwinvar reltime cursor tabpagenr finddir localtime acos getloclist search tanh matchend rename gettabvar strdisplaywidth type abs py3eval setwinvar tolower wildmenumode log10 spellsuggest bufloaded synconcealed nextnonblank server2client complete settabwinvar executable input wincol setmatches getftype hlID inputsave searchpair or screenrow line settabvar histadd deepcopy strpart remote_peek and eval getftime submatch screenchar winsaveview matchadd mkdir screenattr getfontname libcall reltimestr getfsize winnr invert pow getbufline byte2line soundfold repeat fnameescape tagfiles sin strwidth spellbadword trunc maparg log lispindent hostname setpos globpath remote_foreground getchar synIDattr fnamemodify cscope_connection stridx winbufnr indent min complete_add nr2char searchpairpos inputdialog values matchlist items hlexists strridx browsedir expand fmod pathshorten line2byte argc count getwinvar glob foldtextresult getreg foreground cosh matchdelete has char2nr simplify histget searchdecl iconv winrestcmd pumvisible writefile foldlevel haslocaldir keys cos matchstr foldtext histnr tan tempname getcwd byteidx getbufvar islocked escape eventhandler remote_send serverlist winrestview synstack pyeval prevnonblank readfile cindent filereadable changenr exp"},illegal:/;/,contains:[e.NUMBER_MODE,{className:"string",begin:"'",end:"'",illegal:"\\n"},{className:"string",begin:/"(\\"|\n\\|[^"\n])*"/},e.COMMENT('"',"$"),{className:"variable",begin:/[bwtglsav]:[\w\d_]*/},{className:"function",beginKeywords:"function function!",end:"$",relevance:0,contains:[e.TITLE_MODE,{className:"params",begin:"\\(",end:"\\)"}]},{className:"symbol",begin:/<[\w-]+>/}]}}var qm=Vm;function $m(e){return{name:"Intel x86 Assembly",case_insensitive:!0,keywords:{$pattern:"[.%]?"+e.IDENT_RE,keyword:"lock rep repe repz repne repnz xaquire xrelease bnd nobnd aaa aad aam aas adc add and arpl bb0_reset bb1_reset bound bsf bsr bswap bt btc btr bts call cbw cdq cdqe clc cld cli clts cmc cmp cmpsb cmpsd cmpsq cmpsw cmpxchg cmpxchg486 cmpxchg8b cmpxchg16b cpuid cpu_read cpu_write cqo cwd cwde daa das dec div dmint emms enter equ f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcmovb fcmovbe fcmove fcmovnb fcmovnbe fcmovne fcmovnu fcmovu fcom fcomi fcomip fcomp fcompp fcos fdecstp fdisi fdiv fdivp fdivr fdivrp femms feni ffree ffreep fiadd ficom ficomp fidiv fidivr fild fimul fincstp finit fist fistp fisttp fisub fisubr fld fld1 fldcw fldenv fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi fneni fninit fnop fnsave fnstcw fnstenv fnstsw fpatan fprem fprem1 fptan frndint frstor fsave fscale fsetpm fsin fsincos fsqrt fst fstcw fstenv fstp fstsw fsub fsubp fsubr fsubrp ftst fucom fucomi fucomip fucomp fucompp fxam fxch fxtract fyl2x fyl2xp1 hlt ibts icebp idiv imul in inc incbin insb insd insw int int01 int1 int03 int3 into invd invpcid invlpg invlpga iret iretd iretq iretw jcxz jecxz jrcxz jmp jmpe lahf lar lds lea leave les lfence lfs lgdt lgs lidt lldt lmsw loadall loadall286 lodsb lodsd lodsq lodsw loop loope loopne loopnz loopz lsl lss ltr mfence monitor mov movd movq movsb movsd movsq movsw movsx movsxd movzx mul mwait neg nop not or out outsb outsd outsw packssdw packsswb packuswb paddb paddd paddsb paddsiw paddsw paddusb paddusw paddw pand pandn pause paveb pavgusb pcmpeqb pcmpeqd pcmpeqw pcmpgtb pcmpgtd pcmpgtw pdistib pf2id pfacc pfadd pfcmpeq pfcmpge pfcmpgt pfmax pfmin pfmul pfrcp pfrcpit1 pfrcpit2 pfrsqit1 pfrsqrt pfsub pfsubr pi2fd pmachriw pmaddwd pmagw pmulhriw pmulhrwa pmulhrwc pmulhw pmullw pmvgezb pmvlzb pmvnzb pmvzb pop popa popad popaw popf popfd popfq popfw por prefetch prefetchw pslld psllq psllw psrad psraw psrld psrlq psrlw psubb psubd psubsb psubsiw psubsw psubusb psubusw psubw punpckhbw punpckhdq punpckhwd punpcklbw punpckldq punpcklwd push pusha pushad pushaw pushf pushfd pushfq pushfw pxor rcl rcr rdshr rdmsr rdpmc rdtsc rdtscp ret retf retn rol ror rdm rsdc rsldt rsm rsts sahf sal salc sar sbb scasb scasd scasq scasw sfence sgdt shl shld shr shrd sidt sldt skinit smi smint smintold smsw stc std sti stosb stosd stosq stosw str sub svdc svldt svts swapgs syscall sysenter sysexit sysret test ud0 ud1 ud2b ud2 ud2a umov verr verw fwait wbinvd wrshr wrmsr xadd xbts xchg xlatb xlat xor cmove cmovz cmovne cmovnz cmova cmovnbe cmovae cmovnb cmovb cmovnae cmovbe cmovna cmovg cmovnle cmovge cmovnl cmovl cmovnge cmovle cmovng cmovc cmovnc cmovo cmovno cmovs cmovns cmovp cmovpe cmovnp cmovpo je jz jne jnz ja jnbe jae jnb jb jnae jbe jna jg jnle jge jnl jl jnge jle jng jc jnc jo jno js jns jpo jnp jpe jp sete setz setne setnz seta setnbe setae setnb setnc setb setnae setcset setbe setna setg setnle setge setnl setl setnge setle setng sets setns seto setno setpe setp setpo setnp addps addss andnps andps cmpeqps cmpeqss cmpleps cmpless cmpltps cmpltss cmpneqps cmpneqss cmpnleps cmpnless cmpnltps cmpnltss cmpordps cmpordss cmpunordps cmpunordss cmpps cmpss comiss cvtpi2ps cvtps2pi cvtsi2ss cvtss2si cvttps2pi cvttss2si divps divss ldmxcsr maxps maxss minps minss movaps movhps movlhps movlps movhlps movmskps movntps movss movups mulps mulss orps rcpps rcpss rsqrtps rsqrtss shufps sqrtps sqrtss stmxcsr subps subss ucomiss unpckhps unpcklps xorps fxrstor fxrstor64 fxsave fxsave64 xgetbv xsetbv xsave xsave64 xsaveopt xsaveopt64 xrstor xrstor64 prefetchnta prefetcht0 prefetcht1 prefetcht2 maskmovq movntq pavgb pavgw pextrw pinsrw pmaxsw pmaxub pminsw pminub pmovmskb pmulhuw psadbw pshufw pf2iw pfnacc pfpnacc pi2fw pswapd maskmovdqu clflush movntdq movnti movntpd movdqa movdqu movdq2q movq2dq paddq pmuludq pshufd pshufhw pshuflw pslldq psrldq psubq punpckhqdq punpcklqdq addpd addsd andnpd andpd cmpeqpd cmpeqsd cmplepd cmplesd cmpltpd cmpltsd cmpneqpd cmpneqsd cmpnlepd cmpnlesd cmpnltpd cmpnltsd cmpordpd cmpordsd cmpunordpd cmpunordsd cmppd comisd cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi cvtpd2ps cvtpi2pd cvtps2dq cvtps2pd cvtsd2si cvtsd2ss cvtsi2sd cvtss2sd cvttpd2pi cvttpd2dq cvttps2dq cvttsd2si divpd divsd maxpd maxsd minpd minsd movapd movhpd movlpd movmskpd movupd mulpd mulsd orpd shufpd sqrtpd sqrtsd subpd subsd ucomisd unpckhpd unpcklpd xorpd addsubpd addsubps haddpd haddps hsubpd hsubps lddqu movddup movshdup movsldup clgi stgi vmcall vmclear vmfunc vmlaunch vmload vmmcall vmptrld vmptrst vmread vmresume vmrun vmsave vmwrite vmxoff vmxon invept invvpid pabsb pabsw pabsd palignr phaddw phaddd phaddsw phsubw phsubd phsubsw pmaddubsw pmulhrsw pshufb psignb psignw psignd extrq insertq movntsd movntss lzcnt blendpd blendps blendvpd blendvps dppd dpps extractps insertps movntdqa mpsadbw packusdw pblendvb pblendw pcmpeqq pextrb pextrd pextrq phminposuw pinsrb pinsrd pinsrq pmaxsb pmaxsd pmaxud pmaxuw pminsb pminsd pminud pminuw pmovsxbw pmovsxbd pmovsxbq pmovsxwd pmovsxwq pmovsxdq pmovzxbw pmovzxbd pmovzxbq pmovzxwd pmovzxwq pmovzxdq pmuldq pmulld ptest roundpd roundps roundsd roundss crc32 pcmpestri pcmpestrm pcmpistri pcmpistrm pcmpgtq popcnt getsec pfrcpv pfrsqrtv movbe aesenc aesenclast aesdec aesdeclast aesimc aeskeygenassist vaesenc vaesenclast vaesdec vaesdeclast vaesimc vaeskeygenassist vaddpd vaddps vaddsd vaddss vaddsubpd vaddsubps vandpd vandps vandnpd vandnps vblendpd vblendps vblendvpd vblendvps vbroadcastss vbroadcastsd vbroadcastf128 vcmpeq_ospd vcmpeqpd vcmplt_ospd vcmpltpd vcmple_ospd vcmplepd vcmpunord_qpd vcmpunordpd vcmpneq_uqpd vcmpneqpd vcmpnlt_uspd vcmpnltpd vcmpnle_uspd vcmpnlepd vcmpord_qpd vcmpordpd vcmpeq_uqpd vcmpnge_uspd vcmpngepd vcmpngt_uspd vcmpngtpd vcmpfalse_oqpd vcmpfalsepd vcmpneq_oqpd vcmpge_ospd vcmpgepd vcmpgt_ospd vcmpgtpd vcmptrue_uqpd vcmptruepd vcmplt_oqpd vcmple_oqpd vcmpunord_spd vcmpneq_uspd vcmpnlt_uqpd vcmpnle_uqpd vcmpord_spd vcmpeq_uspd vcmpnge_uqpd vcmpngt_uqpd vcmpfalse_ospd vcmpneq_ospd vcmpge_oqpd vcmpgt_oqpd vcmptrue_uspd vcmppd vcmpeq_osps vcmpeqps vcmplt_osps vcmpltps vcmple_osps vcmpleps vcmpunord_qps vcmpunordps vcmpneq_uqps vcmpneqps vcmpnlt_usps vcmpnltps vcmpnle_usps vcmpnleps vcmpord_qps vcmpordps vcmpeq_uqps vcmpnge_usps vcmpngeps vcmpngt_usps vcmpngtps vcmpfalse_oqps vcmpfalseps vcmpneq_oqps vcmpge_osps vcmpgeps vcmpgt_osps vcmpgtps vcmptrue_uqps vcmptrueps vcmplt_oqps vcmple_oqps vcmpunord_sps vcmpneq_usps vcmpnlt_uqps vcmpnle_uqps vcmpord_sps vcmpeq_usps vcmpnge_uqps vcmpngt_uqps vcmpfalse_osps vcmpneq_osps vcmpge_oqps vcmpgt_oqps vcmptrue_usps vcmpps vcmpeq_ossd vcmpeqsd vcmplt_ossd vcmpltsd vcmple_ossd vcmplesd vcmpunord_qsd vcmpunordsd vcmpneq_uqsd vcmpneqsd vcmpnlt_ussd vcmpnltsd vcmpnle_ussd vcmpnlesd vcmpord_qsd vcmpordsd vcmpeq_uqsd vcmpnge_ussd vcmpngesd vcmpngt_ussd vcmpngtsd vcmpfalse_oqsd vcmpfalsesd vcmpneq_oqsd vcmpge_ossd vcmpgesd vcmpgt_ossd vcmpgtsd vcmptrue_uqsd vcmptruesd vcmplt_oqsd vcmple_oqsd vcmpunord_ssd vcmpneq_ussd vcmpnlt_uqsd vcmpnle_uqsd vcmpord_ssd vcmpeq_ussd vcmpnge_uqsd vcmpngt_uqsd vcmpfalse_ossd vcmpneq_ossd vcmpge_oqsd vcmpgt_oqsd vcmptrue_ussd vcmpsd vcmpeq_osss vcmpeqss vcmplt_osss vcmpltss vcmple_osss vcmpless vcmpunord_qss vcmpunordss vcmpneq_uqss vcmpneqss vcmpnlt_usss vcmpnltss vcmpnle_usss vcmpnless vcmpord_qss vcmpordss vcmpeq_uqss vcmpnge_usss vcmpngess vcmpngt_usss vcmpngtss vcmpfalse_oqss vcmpfalsess vcmpneq_oqss vcmpge_osss vcmpgess vcmpgt_osss vcmpgtss vcmptrue_uqss vcmptruess vcmplt_oqss vcmple_oqss vcmpunord_sss vcmpneq_usss vcmpnlt_uqss vcmpnle_uqss vcmpord_sss vcmpeq_usss vcmpnge_uqss vcmpngt_uqss vcmpfalse_osss vcmpneq_osss vcmpge_oqss vcmpgt_oqss vcmptrue_usss vcmpss vcomisd vcomiss vcvtdq2pd vcvtdq2ps vcvtpd2dq vcvtpd2ps vcvtps2dq vcvtps2pd vcvtsd2si vcvtsd2ss vcvtsi2sd vcvtsi2ss vcvtss2sd vcvtss2si vcvttpd2dq vcvttps2dq vcvttsd2si vcvttss2si vdivpd vdivps vdivsd vdivss vdppd vdpps vextractf128 vextractps vhaddpd vhaddps vhsubpd vhsubps vinsertf128 vinsertps vlddqu vldqqu vldmxcsr vmaskmovdqu vmaskmovps vmaskmovpd vmaxpd vmaxps vmaxsd vmaxss vminpd vminps vminsd vminss vmovapd vmovaps vmovd vmovq vmovddup vmovdqa vmovqqa vmovdqu vmovqqu vmovhlps vmovhpd vmovhps vmovlhps vmovlpd vmovlps vmovmskpd vmovmskps vmovntdq vmovntqq vmovntdqa vmovntpd vmovntps vmovsd vmovshdup vmovsldup vmovss vmovupd vmovups vmpsadbw vmulpd vmulps vmulsd vmulss vorpd vorps vpabsb vpabsw vpabsd vpacksswb vpackssdw vpackuswb vpackusdw vpaddb vpaddw vpaddd vpaddq vpaddsb vpaddsw vpaddusb vpaddusw vpalignr vpand vpandn vpavgb vpavgw vpblendvb vpblendw vpcmpestri vpcmpestrm vpcmpistri vpcmpistrm vpcmpeqb vpcmpeqw vpcmpeqd vpcmpeqq vpcmpgtb vpcmpgtw vpcmpgtd vpcmpgtq vpermilpd vpermilps vperm2f128 vpextrb vpextrw vpextrd vpextrq vphaddw vphaddd vphaddsw vphminposuw vphsubw vphsubd vphsubsw vpinsrb vpinsrw vpinsrd vpinsrq vpmaddwd vpmaddubsw vpmaxsb vpmaxsw vpmaxsd vpmaxub vpmaxuw vpmaxud vpminsb vpminsw vpminsd vpminub vpminuw vpminud vpmovmskb vpmovsxbw vpmovsxbd vpmovsxbq vpmovsxwd vpmovsxwq vpmovsxdq vpmovzxbw vpmovzxbd vpmovzxbq vpmovzxwd vpmovzxwq vpmovzxdq vpmulhuw vpmulhrsw vpmulhw vpmullw vpmulld vpmuludq vpmuldq vpor vpsadbw vpshufb vpshufd vpshufhw vpshuflw vpsignb vpsignw vpsignd vpslldq vpsrldq vpsllw vpslld vpsllq vpsraw vpsrad vpsrlw vpsrld vpsrlq vptest vpsubb vpsubw vpsubd vpsubq vpsubsb vpsubsw vpsubusb vpsubusw vpunpckhbw vpunpckhwd vpunpckhdq vpunpckhqdq vpunpcklbw vpunpcklwd vpunpckldq vpunpcklqdq vpxor vrcpps vrcpss vrsqrtps vrsqrtss vroundpd vroundps vroundsd vroundss vshufpd vshufps vsqrtpd vsqrtps vsqrtsd vsqrtss vstmxcsr vsubpd vsubps vsubsd vsubss vtestps vtestpd vucomisd vucomiss vunpckhpd vunpckhps vunpcklpd vunpcklps vxorpd vxorps vzeroall vzeroupper pclmullqlqdq pclmulhqlqdq pclmullqhqdq pclmulhqhqdq pclmulqdq vpclmullqlqdq vpclmulhqlqdq vpclmullqhqdq vpclmulhqhqdq vpclmulqdq vfmadd132ps vfmadd132pd vfmadd312ps vfmadd312pd vfmadd213ps vfmadd213pd vfmadd123ps vfmadd123pd vfmadd231ps vfmadd231pd vfmadd321ps vfmadd321pd vfmaddsub132ps vfmaddsub132pd vfmaddsub312ps vfmaddsub312pd vfmaddsub213ps vfmaddsub213pd vfmaddsub123ps vfmaddsub123pd vfmaddsub231ps vfmaddsub231pd vfmaddsub321ps vfmaddsub321pd vfmsub132ps vfmsub132pd vfmsub312ps vfmsub312pd vfmsub213ps vfmsub213pd vfmsub123ps vfmsub123pd vfmsub231ps vfmsub231pd vfmsub321ps vfmsub321pd vfmsubadd132ps vfmsubadd132pd vfmsubadd312ps vfmsubadd312pd vfmsubadd213ps vfmsubadd213pd vfmsubadd123ps vfmsubadd123pd vfmsubadd231ps vfmsubadd231pd vfmsubadd321ps vfmsubadd321pd vfnmadd132ps vfnmadd132pd vfnmadd312ps vfnmadd312pd vfnmadd213ps vfnmadd213pd vfnmadd123ps vfnmadd123pd vfnmadd231ps vfnmadd231pd vfnmadd321ps vfnmadd321pd vfnmsub132ps vfnmsub132pd vfnmsub312ps vfnmsub312pd vfnmsub213ps vfnmsub213pd vfnmsub123ps vfnmsub123pd vfnmsub231ps vfnmsub231pd vfnmsub321ps vfnmsub321pd vfmadd132ss vfmadd132sd vfmadd312ss vfmadd312sd vfmadd213ss vfmadd213sd vfmadd123ss vfmadd123sd vfmadd231ss vfmadd231sd vfmadd321ss vfmadd321sd vfmsub132ss vfmsub132sd vfmsub312ss vfmsub312sd vfmsub213ss vfmsub213sd vfmsub123ss vfmsub123sd vfmsub231ss vfmsub231sd vfmsub321ss vfmsub321sd vfnmadd132ss vfnmadd132sd vfnmadd312ss vfnmadd312sd vfnmadd213ss vfnmadd213sd vfnmadd123ss vfnmadd123sd vfnmadd231ss vfnmadd231sd vfnmadd321ss vfnmadd321sd vfnmsub132ss vfnmsub132sd vfnmsub312ss vfnmsub312sd vfnmsub213ss vfnmsub213sd vfnmsub123ss vfnmsub123sd vfnmsub231ss vfnmsub231sd vfnmsub321ss vfnmsub321sd rdfsbase rdgsbase rdrand wrfsbase wrgsbase vcvtph2ps vcvtps2ph adcx adox rdseed clac stac xstore xcryptecb xcryptcbc xcryptctr xcryptcfb xcryptofb montmul xsha1 xsha256 llwpcb slwpcb lwpval lwpins vfmaddpd vfmaddps vfmaddsd vfmaddss vfmaddsubpd vfmaddsubps vfmsubaddpd vfmsubaddps vfmsubpd vfmsubps vfmsubsd vfmsubss vfnmaddpd vfnmaddps vfnmaddsd vfnmaddss vfnmsubpd vfnmsubps vfnmsubsd vfnmsubss vfrczpd vfrczps vfrczsd vfrczss vpcmov vpcomb vpcomd vpcomq vpcomub vpcomud vpcomuq vpcomuw vpcomw vphaddbd vphaddbq vphaddbw vphadddq vphaddubd vphaddubq vphaddubw vphaddudq vphadduwd vphadduwq vphaddwd vphaddwq vphsubbw vphsubdq vphsubwd vpmacsdd vpmacsdqh vpmacsdql vpmacssdd vpmacssdqh vpmacssdql vpmacsswd vpmacssww vpmacswd vpmacsww vpmadcsswd vpmadcswd vpperm vprotb vprotd vprotq vprotw vpshab vpshad vpshaq vpshaw vpshlb vpshld vpshlq vpshlw vbroadcasti128 vpblendd vpbroadcastb vpbroadcastw vpbroadcastd vpbroadcastq vpermd vpermpd vpermps vpermq vperm2i128 vextracti128 vinserti128 vpmaskmovd vpmaskmovq vpsllvd vpsllvq vpsravd vpsrlvd vpsrlvq vgatherdpd vgatherqpd vgatherdps vgatherqps vpgatherdd vpgatherqd vpgatherdq vpgatherqq xabort xbegin xend xtest andn bextr blci blcic blsi blsic blcfill blsfill blcmsk blsmsk blsr blcs bzhi mulx pdep pext rorx sarx shlx shrx tzcnt tzmsk t1mskc valignd valignq vblendmpd vblendmps vbroadcastf32x4 vbroadcastf64x4 vbroadcasti32x4 vbroadcasti64x4 vcompresspd vcompressps vcvtpd2udq vcvtps2udq vcvtsd2usi vcvtss2usi vcvttpd2udq vcvttps2udq vcvttsd2usi vcvttss2usi vcvtudq2pd vcvtudq2ps vcvtusi2sd vcvtusi2ss vexpandpd vexpandps vextractf32x4 vextractf64x4 vextracti32x4 vextracti64x4 vfixupimmpd vfixupimmps vfixupimmsd vfixupimmss vgetexppd vgetexpps vgetexpsd vgetexpss vgetmantpd vgetmantps vgetmantsd vgetmantss vinsertf32x4 vinsertf64x4 vinserti32x4 vinserti64x4 vmovdqa32 vmovdqa64 vmovdqu32 vmovdqu64 vpabsq vpandd vpandnd vpandnq vpandq vpblendmd vpblendmq vpcmpltd vpcmpled vpcmpneqd vpcmpnltd vpcmpnled vpcmpd vpcmpltq vpcmpleq vpcmpneqq vpcmpnltq vpcmpnleq vpcmpq vpcmpequd vpcmpltud vpcmpleud vpcmpnequd vpcmpnltud vpcmpnleud vpcmpud vpcmpequq vpcmpltuq vpcmpleuq vpcmpnequq vpcmpnltuq vpcmpnleuq vpcmpuq vpcompressd vpcompressq vpermi2d vpermi2pd vpermi2ps vpermi2q vpermt2d vpermt2pd vpermt2ps vpermt2q vpexpandd vpexpandq vpmaxsq vpmaxuq vpminsq vpminuq vpmovdb vpmovdw vpmovqb vpmovqd vpmovqw vpmovsdb vpmovsdw vpmovsqb vpmovsqd vpmovsqw vpmovusdb vpmovusdw vpmovusqb vpmovusqd vpmovusqw vpord vporq vprold vprolq vprolvd vprolvq vprord vprorq vprorvd vprorvq vpscatterdd vpscatterdq vpscatterqd vpscatterqq vpsraq vpsravq vpternlogd vpternlogq vptestmd vptestmq vptestnmd vptestnmq vpxord vpxorq vrcp14pd vrcp14ps vrcp14sd vrcp14ss vrndscalepd vrndscaleps vrndscalesd vrndscaless vrsqrt14pd vrsqrt14ps vrsqrt14sd vrsqrt14ss vscalefpd vscalefps vscalefsd vscalefss vscatterdpd vscatterdps vscatterqpd vscatterqps vshuff32x4 vshuff64x2 vshufi32x4 vshufi64x2 kandnw kandw kmovw knotw kortestw korw kshiftlw kshiftrw kunpckbw kxnorw kxorw vpbroadcastmb2q vpbroadcastmw2d vpconflictd vpconflictq vplzcntd vplzcntq vexp2pd vexp2ps vrcp28pd vrcp28ps vrcp28sd vrcp28ss vrsqrt28pd vrsqrt28ps vrsqrt28sd vrsqrt28ss vgatherpf0dpd vgatherpf0dps vgatherpf0qpd vgatherpf0qps vgatherpf1dpd vgatherpf1dps vgatherpf1qpd vgatherpf1qps vscatterpf0dpd vscatterpf0dps vscatterpf0qpd vscatterpf0qps vscatterpf1dpd vscatterpf1dps vscatterpf1qpd vscatterpf1qps prefetchwt1 bndmk bndcl bndcu bndcn bndmov bndldx bndstx sha1rnds4 sha1nexte sha1msg1 sha1msg2 sha256rnds2 sha256msg1 sha256msg2 hint_nop0 hint_nop1 hint_nop2 hint_nop3 hint_nop4 hint_nop5 hint_nop6 hint_nop7 hint_nop8 hint_nop9 hint_nop10 hint_nop11 hint_nop12 hint_nop13 hint_nop14 hint_nop15 hint_nop16 hint_nop17 hint_nop18 hint_nop19 hint_nop20 hint_nop21 hint_nop22 hint_nop23 hint_nop24 hint_nop25 hint_nop26 hint_nop27 hint_nop28 hint_nop29 hint_nop30 hint_nop31 hint_nop32 hint_nop33 hint_nop34 hint_nop35 hint_nop36 hint_nop37 hint_nop38 hint_nop39 hint_nop40 hint_nop41 hint_nop42 hint_nop43 hint_nop44 hint_nop45 hint_nop46 hint_nop47 hint_nop48 hint_nop49 hint_nop50 hint_nop51 hint_nop52 hint_nop53 hint_nop54 hint_nop55 hint_nop56 hint_nop57 hint_nop58 hint_nop59 hint_nop60 hint_nop61 hint_nop62 hint_nop63",built_in:"ip eip rip al ah bl bh cl ch dl dh sil dil bpl spl r8b r9b r10b r11b r12b r13b r14b r15b ax bx cx dx si di bp sp r8w r9w r10w r11w r12w r13w r14w r15w eax ebx ecx edx esi edi ebp esp eip r8d r9d r10d r11d r12d r13d r14d r15d rax rbx rcx rdx rsi rdi rbp rsp r8 r9 r10 r11 r12 r13 r14 r15 cs ds es fs gs ss st st0 st1 st2 st3 st4 st5 st6 st7 mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7 xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15 xmm16 xmm17 xmm18 xmm19 xmm20 xmm21 xmm22 xmm23 xmm24 xmm25 xmm26 xmm27 xmm28 xmm29 xmm30 xmm31 ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm13 ymm14 ymm15 ymm16 ymm17 ymm18 ymm19 ymm20 ymm21 ymm22 ymm23 ymm24 ymm25 ymm26 ymm27 ymm28 ymm29 ymm30 ymm31 zmm0 zmm1 zmm2 zmm3 zmm4 zmm5 zmm6 zmm7 zmm8 zmm9 zmm10 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm17 zmm18 zmm19 zmm20 zmm21 zmm22 zmm23 zmm24 zmm25 zmm26 zmm27 zmm28 zmm29 zmm30 zmm31 k0 k1 k2 k3 k4 k5 k6 k7 bnd0 bnd1 bnd2 bnd3 cr0 cr1 cr2 cr3 cr4 cr8 dr0 dr1 dr2 dr3 dr8 tr3 tr4 tr5 tr6 tr7 r0 r1 r2 r3 r4 r5 r6 r7 r0b r1b r2b r3b r4b r5b r6b r7b r0w r1w r2w r3w r4w r5w r6w r7w r0d r1d r2d r3d r4d r5d r6d r7d r0h r1h r2h r3h r0l r1l r2l r3l r4l r5l r6l r7l r8l r9l r10l r11l r12l r13l r14l r15l db dw dd dq dt ddq do dy dz resb resw resd resq rest resdq reso resy resz incbin equ times byte word dword qword nosplit rel abs seg wrt strict near far a32 ptr",meta:"%define %xdefine %+ %undef %defstr %deftok %assign %strcat %strlen %substr %rotate %elif %else %endif %if %ifmacro %ifctx %ifidn %ifidni %ifid %ifnum %ifstr %iftoken %ifempty %ifenv %error %warning %fatal %rep %endrep %include %push %pop %repl %pathsearch %depend %use %arg %stacksize %local %line %comment %endcomment .nolist __FILE__ __LINE__ __SECT__ __BITS__ __OUTPUT_FORMAT__ __DATE__ __TIME__ __DATE_NUM__ __TIME_NUM__ __UTC_DATE__ __UTC_TIME__ __UTC_DATE_NUM__ __UTC_TIME_NUM__ __PASS__ struc endstruc istruc at iend align alignb sectalign daz nodaz up down zero default option assume public bits use16 use32 use64 default section segment absolute extern global common cpu float __utf16__ __utf16le__ __utf16be__ __utf32__ __utf32le__ __utf32be__ __float8__ __float16__ __float32__ __float64__ __float80m__ __float80e__ __float128l__ __float128h__ __Infinity__ __QNaN__ __SNaN__ Inf NaN QNaN SNaN float8 float16 float32 float64 float80m float80e float128l float128h __FLOAT_DAZ__ __FLOAT_ROUND__ __FLOAT__"},contains:[e.COMMENT(";","$",{relevance:0}),{className:"number",variants:[{begin:"\\b(?:([0-9][0-9_]*)?\\.[0-9_]*(?:[eE][+-]?[0-9_]+)?|(0[Xx])?[0-9][0-9_]*(\\.[0-9_]*)?(?:[pP](?:[+-]?[0-9_]+)?)?)\\b",relevance:0},{begin:"\\$[0-9][0-9A-Fa-f]*",relevance:0},{begin:"\\b(?:[0-9A-Fa-f][0-9A-Fa-f_]*[Hh]|[0-9][0-9_]*[DdTt]?|[0-7][0-7_]*[QqOo]|[0-1][0-1_]*[BbYy])\\b"},{begin:"\\b(?:0[Xx][0-9A-Fa-f_]+|0[DdTt][0-9_]+|0[QqOo][0-7_]+|0[BbYy][0-1_]+)\\b"}]},e.QUOTE_STRING_MODE,{className:"string",variants:[{begin:"'",end:"[^\\\\]'"},{begin:"`",end:"[^\\\\]`"}],relevance:0},{className:"symbol",variants:[{begin:"^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)"},{begin:"^\\s*%%[A-Za-z0-9_$#@~.?]*:"}],relevance:0},{className:"subst",begin:"%[0-9]+",relevance:0},{className:"subst",begin:"%!S+",relevance:0},{className:"meta",begin:/^\s*\.[\w_-]+/}]}}var zm=$m;function Wm(e){const n={$pattern:/[a-zA-Z][a-zA-Z0-9_?]*/,keyword:"if then else do while until for loop import with is as where when by data constant integer real text name boolean symbol infix prefix postfix block tree",literal:"true false nil",built_in:"in mod rem and or xor not abs sign floor ceil sqrt sin cos tan asin acos atan exp expm1 log log2 log10 log1p pi at text_length text_range text_find text_replace contains page slide basic_slide title_slide title subtitle fade_in fade_out fade_at clear_color color line_color line_width texture_wrap texture_transform texture scale_?x scale_?y scale_?z? translate_?x translate_?y translate_?z? rotate_?x rotate_?y rotate_?z? rectangle circle ellipse sphere path line_to move_to quad_to curve_to theme background contents locally time mouse_?x mouse_?y mouse_buttons "+"ObjectLoader Animate MovieCredits Slides Filters Shading Materials LensFlare Mapping VLCAudioVideo StereoDecoder PointCloud NetworkAccess RemoteControl RegExp ChromaKey Snowfall NodeJS Speech Charts"},a={className:"string",begin:'"',end:'"',illegal:"\\n"},r={className:"string",begin:"'",end:"'",illegal:"\\n"},i={className:"string",begin:"<<",end:">>"},s={className:"number",begin:"[0-9]+#[0-9A-Z_]+(\\.[0-9-A-Z_]+)?#?([Ee][+-]?[0-9]+)?"},o={beginKeywords:"import",end:"$",keywords:n,contains:[a]},l={className:"function",begin:/[a-z][^\n]*->/,returnBegin:!0,end:/->/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0,keywords:n}})]};return{name:"XL",aliases:["tao"],keywords:n,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,r,i,l,o,s,e.NUMBER_MODE]}}var Km=Wm;function Qm(e){return{name:"XQuery",aliases:["xpath","xq"],case_insensitive:!1,illegal:/(proc)|(abstract)|(extends)|(until)|(#)/,keywords:{$pattern:/[a-zA-Z$][a-zA-Z0-9_:-]*/,keyword:"module schema namespace boundary-space preserve no-preserve strip default collation base-uri ordering context decimal-format decimal-separator copy-namespaces empty-sequence except exponent-separator external grouping-separator inherit no-inherit lax minus-sign per-mille percent schema-attribute schema-element strict unordered zero-digit declare import option function validate variable for at in let where order group by return if then else tumbling sliding window start when only end previous next stable ascending descending allowing empty greatest least some every satisfies switch case typeswitch try catch and or to union intersect instance of treat as castable cast map array delete insert into replace value rename copy modify update",type:"item document-node node attribute document element comment namespace namespace-node processing-instruction text construction xs:anyAtomicType xs:untypedAtomic xs:duration xs:time xs:decimal xs:float xs:double xs:gYearMonth xs:gYear xs:gMonthDay xs:gMonth xs:gDay xs:boolean xs:base64Binary xs:hexBinary xs:anyURI xs:QName xs:NOTATION xs:dateTime xs:dateTimeStamp xs:date xs:string xs:normalizedString xs:token xs:language xs:NMTOKEN xs:Name xs:NCName xs:ID xs:IDREF xs:ENTITY xs:integer xs:nonPositiveInteger xs:negativeInteger xs:long xs:int xs:short xs:byte xs:nonNegativeInteger xs:unisignedLong xs:unsignedInt xs:unsignedShort xs:unsignedByte xs:positiveInteger xs:yearMonthDuration xs:dayTimeDuration",literal:"eq ne lt le gt ge is self:: child:: descendant:: descendant-or-self:: attribute:: following:: following-sibling:: parent:: ancestor:: ancestor-or-self:: preceding:: preceding-sibling:: NaN"},contains:[{className:"variable",begin:/[$][\w\-:]+/},{className:"built_in",variants:[{begin:/\barray:/,end:/(?:append|filter|flatten|fold-(?:left|right)|for-each(?:-pair)?|get|head|insert-before|join|put|remove|reverse|size|sort|subarray|tail)\b/},{begin:/\bmap:/,end:/(?:contains|entry|find|for-each|get|keys|merge|put|remove|size)\b/},{begin:/\bmath:/,end:/(?:a(?:cos|sin|tan[2]?)|cos|exp(?:10)?|log(?:10)?|pi|pow|sin|sqrt|tan)\b/},{begin:/\bop:/,end:/\(/,excludeEnd:!0},{begin:/\bfn:/,end:/\(/,excludeEnd:!0},{begin:/[^/,end:/(\/[\w._:-]+>)/,subLanguage:"xml",contains:[{begin:/\{/,end:/\}/,subLanguage:"xquery"},"self"]}]}}var Xm=Qm;function Zm(e){const t={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},n=e.UNDERSCORE_TITLE_MODE,a={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]},r="namespace class interface use extends function return abstract final public protected private static deprecated throw try catch Exception echo empty isset instanceof unset let var new const self require if else elseif switch case default do while loop for continue break likely unlikely __LINE__ __FILE__ __DIR__ __FUNCTION__ __CLASS__ __TRAIT__ __METHOD__ __NAMESPACE__ array boolean float double integer object resource string char long unsigned bool int uint ulong uchar true false null undefined";return{name:"Zephir",aliases:["zep"],keywords:r,contains:[e.C_LINE_COMMENT_MODE,e.COMMENT(/\/\*/,/\*\//,{contains:[{className:"doctag",begin:/@[A-Za-z]+/}]}),{className:"string",begin:/<<<['"]?\w+['"]?$/,end:/^\w+;/,contains:[e.BACKSLASH_ESCAPE]},{begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function",beginKeywords:"function fn",end:/[;{]/,excludeEnd:!0,illegal:/\$|\[|%/,contains:[n,{className:"params",begin:/\(/,end:/\)/,keywords:r,contains:["self",e.C_BLOCK_COMMENT_MODE,t,a]}]},{className:"class",beginKeywords:"class interface",end:/\{/,excludeEnd:!0,illegal:/[:($"]/,contains:[{beginKeywords:"extends implements"},n]},{beginKeywords:"namespace",end:/;/,illegal:/[.']/,contains:[n]},{beginKeywords:"use",end:/;/,contains:[n]},{begin:/=>/},t,a]}}var Jm=Zm,d=Lr;d.registerLanguage("1c",Pr);d.registerLanguage("abnf",Fr);d.registerLanguage("accesslog",Hr);d.registerLanguage("actionscript",zr);d.registerLanguage("ada",Kr);d.registerLanguage("angelscript",Xr);d.registerLanguage("apache",Jr);d.registerLanguage("applescript",ei);d.registerLanguage("arcade",ni);d.registerLanguage("arduino",si);d.registerLanguage("armasm",ci);d.registerLanguage("xml",mi);d.registerLanguage("asciidoc",gi);d.registerLanguage("aspectj",bi);d.registerLanguage("autohotkey",Ni);d.registerLanguage("autoit",fi);d.registerLanguage("avrasm",Ii);d.registerLanguage("awk",vi);d.registerLanguage("axapta",Di);d.registerLanguage("bash",xi);d.registerLanguage("basic",wi);d.registerLanguage("bnf",Ui);d.registerLanguage("brainfuck",Bi);d.registerLanguage("c-like",qi);d.registerLanguage("c",Ki);d.registerLanguage("cal",Xi);d.registerLanguage("capnproto",Ji);d.registerLanguage("ceylon",eo);d.registerLanguage("clean",no);d.registerLanguage("clojure",ro);d.registerLanguage("clojure-repl",oo);d.registerLanguage("cmake",lo);d.registerLanguage("coffeescript",To);d.registerLanguage("coq",Ro);d.registerLanguage("cos",Co);d.registerLanguage("cpp",Ao);d.registerLanguage("crmsh",yo);d.registerLanguage("crystal",ho);d.registerLanguage("csharp",Lo);d.registerLanguage("csp",Po);d.registerLanguage("css",$o);d.registerLanguage("d",Wo);d.registerLanguage("markdown",Zo);d.registerLanguage("dart",jo);d.registerLanguage("delphi",ts);d.registerLanguage("diff",as);d.registerLanguage("django",is);d.registerLanguage("dns",ss);d.registerLanguage("dockerfile",cs);d.registerLanguage("dos",ds);d.registerLanguage("dsconfig",ms);d.registerLanguage("dts",ps);d.registerLanguage("dust",Ss);d.registerLanguage("ebnf",bs);d.registerLanguage("elixir",Ns);d.registerLanguage("elm",fs);d.registerLanguage("ruby",vs);d.registerLanguage("erb",Ds);d.registerLanguage("erlang-repl",xs);d.registerLanguage("erlang",ws);d.registerLanguage("excel",Us);d.registerLanguage("fix",Bs);d.registerLanguage("flix",Ys);d.registerLanguage("fortran",qs);d.registerLanguage("fsharp",zs);d.registerLanguage("gams",Xs);d.registerLanguage("gauss",Js);d.registerLanguage("gcode",el);d.registerLanguage("gherkin",nl);d.registerLanguage("glsl",rl);d.registerLanguage("gml",ol);d.registerLanguage("go",ll);d.registerLanguage("golo",_l);d.registerLanguage("gradle",ul);d.registerLanguage("groovy",Sl);d.registerLanguage("haml",bl);d.registerLanguage("handlebars",Ol);d.registerLanguage("haskell",Al);d.registerLanguage("haxe",yl);d.registerLanguage("hsp",hl);d.registerLanguage("htmlbars",kl);d.registerLanguage("http",Gl);d.registerLanguage("hy",Hl);d.registerLanguage("inform7",ql);d.registerLanguage("ini",Kl);d.registerLanguage("irpf90",Zl);d.registerLanguage("isbl",jl);d.registerLanguage("java",nc);d.registerLanguage("javascript",uc);d.registerLanguage("jboss-cli",Ec);d.registerLanguage("json",gc);d.registerLanguage("julia",Tc);d.registerLanguage("julia-repl",Rc);d.registerLanguage("kotlin",fc);d.registerLanguage("lasso",Ic);d.registerLanguage("latex",Dc);d.registerLanguage("ldif",Mc);d.registerLanguage("leaf",xc);d.registerLanguage("less",Gc);d.registerLanguage("lisp",Hc);d.registerLanguage("livecodeserver",qc);d.registerLanguage("livescript",jc);d.registerLanguage("llvm",n_);d.registerLanguage("lsl",r_);d.registerLanguage("lua",o_);d.registerLanguage("makefile",l_);d.registerLanguage("mathematica",d_);d.registerLanguage("matlab",m_);d.registerLanguage("maxima",p_);d.registerLanguage("mel",S_);d.registerLanguage("mercury",b_);d.registerLanguage("mipsasm",N_);d.registerLanguage("mizar",f_);d.registerLanguage("perl",I_);d.registerLanguage("mojolicious",v_);d.registerLanguage("monkey",D_);d.registerLanguage("moonscript",M_);d.registerLanguage("n1ql",x_);d.registerLanguage("nginx",w_);d.registerLanguage("nim",U_);d.registerLanguage("nix",B_);d.registerLanguage("node-repl",Y_);d.registerLanguage("nsis",V_);d.registerLanguage("objectivec",$_);d.registerLanguage("ocaml",W_);d.registerLanguage("openscad",Q_);d.registerLanguage("oxygene",Z_);d.registerLanguage("parser3",j_);d.registerLanguage("pf",td);d.registerLanguage("pgsql",ad);d.registerLanguage("php",id);d.registerLanguage("php-template",sd);d.registerLanguage("plaintext",cd);d.registerLanguage("pony",dd);d.registerLanguage("powershell",md);d.registerLanguage("processing",pd);d.registerLanguage("profile",Sd);d.registerLanguage("prolog",bd);d.registerLanguage("properties",Nd);d.registerLanguage("protobuf",fd);d.registerLanguage("puppet",Id);d.registerLanguage("purebasic",vd);d.registerLanguage("python",Ld);d.registerLanguage("python-repl",Pd);d.registerLanguage("q",kd);d.registerLanguage("qml",Gd);d.registerLanguage("r",qd);d.registerLanguage("reasonml",zd);d.registerLanguage("rib",Kd);d.registerLanguage("roboconf",Xd);d.registerLanguage("routeros",Jd);d.registerLanguage("rsl",eu);d.registerLanguage("ruleslanguage",nu);d.registerLanguage("rust",ru);d.registerLanguage("sas",ou);d.registerLanguage("scala",lu);d.registerLanguage("scheme",_u);d.registerLanguage("scilab",uu);d.registerLanguage("scss",Ru);d.registerLanguage("shell",Cu);d.registerLanguage("smali",Ou);d.registerLanguage("smalltalk",Au);d.registerLanguage("sml",yu);d.registerLanguage("sqf",hu);d.registerLanguage("sql_more",Lu);d.registerLanguage("sql",wu);d.registerLanguage("stan",Uu);d.registerLanguage("stata",Bu);d.registerLanguage("step21",Yu);d.registerLanguage("stylus",Qu);d.registerLanguage("subunit",Zu);d.registerLanguage("swift",rm);d.registerLanguage("taggerscript",om);d.registerLanguage("yaml",lm);d.registerLanguage("tap",_m);d.registerLanguage("tcl",Em);d.registerLanguage("thrift",gm);d.registerLanguage("tp",Tm);d.registerLanguage("twig",Rm);d.registerLanguage("typescript",ym);d.registerLanguage("vala",hm);d.registerLanguage("vbnet",Lm);d.registerLanguage("vbscript",km);d.registerLanguage("vbscript-html",Fm);d.registerLanguage("verilog",Gm);d.registerLanguage("vhdl",Hm);d.registerLanguage("vim",qm);d.registerLanguage("x86asm",zm);d.registerLanguage("xl",Km);d.registerLanguage("xquery",Xm);d.registerLanguage("zephir",Jm);var Xt=d,tE=Ba({__proto__:null,default:Xt},[Xt]);export{tE as i}; diff --git a/src/main/resources/static/assets/index.283c220f.js b/src/main/resources/static/assets/index.283c220f.js new file mode 100644 index 0000000..0a5974e --- /dev/null +++ b/src/main/resources/static/assets/index.283c220f.js @@ -0,0 +1 @@ +import{d as z,c as T,a as n,f as w,p as t,g as m,n as o,u as a,b as c,e as i,h as k,j as g,k as h,i as C,T as N}from"./index.bbf7818f.js";import{b as M,ah as V,R as $,u as I,i as b,E as y,_ as P,w as j}from"./base.197bc1e5.js";const R=M({closable:Boolean,type:{type:String,values:["success","info","warning","danger",""],default:""},hit:Boolean,disableTransitions:Boolean,color:{type:String,default:""},size:{type:String,values:V,default:""},effect:{type:String,values:["dark","light","plain"],default:"light"},round:Boolean}),q={close:l=>l instanceof MouseEvent,click:l=>l instanceof MouseEvent},A={name:"ElTag"},D=z({...A,props:R,emits:q,setup(l,{emit:r}){const v=l,_=$(),s=I("tag"),u=T(()=>{const{type:e,hit:f,effect:E,closable:S,round:B}=v;return[s.b(),s.is("closable",S),s.m(e),s.m(_.value),s.m(E),s.is("hit",f),s.is("round",B)]}),p=e=>{r("close",e)},d=e=>{r("click",e)};return(e,f)=>e.disableTransitions?(n(),w("span",{key:0,class:o(a(u)),style:C({backgroundColor:e.color}),onClick:d},[t("span",{class:o(a(s).e("content"))},[m(e.$slots,"default")],2),e.closable?(n(),c(a(y),{key:0,class:o(a(s).e("close")),onClick:g(p,["stop"])},{default:i(()=>[k(a(b))]),_:1},8,["class","onClick"])):h("v-if",!0)],6)):(n(),c(N,{key:1,name:`${a(s).namespace.value}-zoom-in-center`,appear:""},{default:i(()=>[t("span",{class:o(a(u)),style:C({backgroundColor:e.color}),onClick:d},[t("span",{class:o(a(s).e("content"))},[m(e.$slots,"default")],2),e.closable?(n(),c(a(y),{key:0,class:o(a(s).e("close")),onClick:g(p,["stop"])},{default:i(()=>[k(a(b))]),_:1},8,["class","onClick"])):h("v-if",!0)],6)]),_:3},8,["name"]))}});var F=P(D,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tag/src/tag.vue"]]);const J=j(F);export{J as E,R as t}; diff --git a/src/main/resources/static/assets/index.2f5dd8a9.js b/src/main/resources/static/assets/index.2f5dd8a9.js new file mode 100644 index 0000000..0a34031 --- /dev/null +++ b/src/main/resources/static/assets/index.2f5dd8a9.js @@ -0,0 +1 @@ +const S=({strings:r=["Put your strings here...","and Enjoy!"],typeSpeed:o=100,backSpeed:s=50,backDelay:a=500,startDelay:i=500,cursorChar:l="|",placeholder:c=!1,showCursor:d=!0,disableBackTyping:u=!1,onFinished:h=function(){},loop:g=!0})=>({strings:r,typeSpeed:o,backSpeed:s,cursorChar:l,backDelay:a,placeholder:c,startDelay:i,showCursor:d,loop:g,disableBackTyping:u,onFinished:h}),C=(r,o)=>{let s=0,a,i;const l=(e,t)=>{s===a&&t.loop&&(s=0),setTimeout(()=>{c(e[s],t)},t.startDelay)},c=(e,t)=>{let n=0,y=e.length,f=setInterval(()=>{if(t.placeholder?r.placeholder+=e[n]:r.textContent+=e[n],++n===y)return d(f,t)},t.typeSpeed)},d=(e,t)=>{if(clearInterval(e),t.disableBackTyping&&s===a-1||!t.loop&&s===a-1)return t.onFinished();setTimeout(()=>u(t),t.backDelay)},u=e=>{let t=e.placeholder?r.placeholder:r.textContent,n=t.length,y=setInterval(()=>{if(e.placeholder?r.placeholder=r.placeholder.substr(0,--n):r.textContent=t.substr(0,--n),n===0)return h(y,e)},e.backSpeed)},h=(e,t)=>{clearInterval(e),++s,l(i,t)},g=(e,t)=>{let n=document.createElement("span");n.classList.add("ityped-cursor"),n.textContent="|",n.textContent=t.cursorChar,e.insertAdjacentElement("afterend",n)};return(e=>{let t=S(e||{}),n=t.strings;i=n,a=n.length,typeof r=="string"&&(r=document.querySelector(r)),t.showCursor&&g(r,t),l(n,t)})(o)};export{C as i}; diff --git a/src/main/resources/static/assets/index.3134231f.js b/src/main/resources/static/assets/index.3134231f.js new file mode 100644 index 0000000..a9c53e9 --- /dev/null +++ b/src/main/resources/static/assets/index.3134231f.js @@ -0,0 +1 @@ +import{_ as y,O as z,r as p,V,a1 as k,$ as I,a as U,f as E,p as o,h as l,e as i,u as t,j as N,S,U as C,J as M}from"./index.bbf7818f.js";import{aO as q,aL as R,aM as B,x as F,r as j}from"./base.197bc1e5.js";import{E as D,a as L}from"./form-item.962ab13d.js";/* empty css *//* empty css */import{_ as O}from"./zfile-basic.5314831c.js";import{i as $,a as G}from"./install.0838262e.js";import{r as J}from"./BadgeCheckIcon.fc085fd1.js";import{E as _}from"./request.19cbe8c5.js";import{E as T}from"./index.9aca9b8e.js";import"./index.c92ded65.js";import"./isEqual.a8284c4e.js";import"./event.776e7e11.js";const g=d=>(S("data-v-6462780c"),d=d(),C(),d),A={class:"min-h-screen bg-gray-100 text-gray-900 flex justify-center items-center"},H={class:"max-w-screen-lg bg-white shadow-xl sm:rounded-xl flex flex-1"},K=g(()=>o("div",{class:"flex-1 bg-gray-50 text-center hidden lg:flex rounded-l-xl"},[o("div",{class:"m-12 xl:m-16 w-full bg-contain bg-center bg-no-repeat zfile-install-logo"})],-1)),P={class:"lg:w-1/2 mt-10 xl:w-1/2 w-11/12 p-6 sm:p-12"},Q={class:"mt-0 flex flex-col items-center"},W={class:"text-2xl mt-0 xl:text-3xl font-extrabold box animate__animated animate__fadeInDown"},X={class:"w-full flex-1"},Y=g(()=>o("div",{class:"my-12 border-b text-center"},[o("div",{class:"leading-none px-2 inline-block text-sm text-gray-600 tracking-wide font-medium bg-white transform translate-y-1/2"}," \u7CFB\u7EDF\u521D\u59CB\u5316 ")],-1)),Z=M(" \u7CFB\u7EDF\u521D\u59CB\u5316 "),ee={__name:"index",setup(d){let f=z(),u=p(!1),c=p(),a=V({siteName:"",username:"",password:"",domain:""}),x=p({siteName:[{required:!0,message:"\u8BF7\u8F93\u5165\u7AD9\u70B9\u540D\u79F0",trigger:["change","blur"]}],username:[{required:!0,message:"\u8BF7\u8F93\u5165\u7BA1\u7406\u5458\u8D26\u53F7",trigger:["change","blur"]}],password:[{required:!0,message:"\u8BF7\u8F93\u5165\u7BA1\u7406\u5458\u5BC6\u7801",trigger:["change","blur"]}],domain:[{required:!0,type:"url",message:"\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u57DF\u540D\uFF0C\u9700\u4EE5 http:// \u6216 https:// \u5F00\u5934",trigger:"change"}]});const h=r=>{window.open(r)},b=async()=>{await c.value.validate(r=>{r?(u.value=!0,G(a).then(e=>{_({message:"\u521D\u59CB\u5316\u6210\u529F",type:e.code===0?"success":"error",duration:1500,onClose(){f.push("/")}})}).finally(()=>{u.value=!1})):_.warning("\u8BF7\u6B63\u786E\u8F93\u5165\u521D\u59CB\u5316\u503C!")})};return k(()=>{const r=I();a.domain=r.zfileConfig.baseUrl||window.location.origin,$().then(e=>{e.data&&f.push("/")})}),(r,e)=>{const m=T,n=D,v=j,w=L;return U(),E("div",A,[o("div",H,[K,o("div",P,[o("div",Q,[o("h1",W,[o("img",{class:"w-16 cursor-pointer",onClick:e[0]||(e[0]=s=>h("https://github.com/zhaojun1998/zfile")),src:O})]),o("div",X,[Y,l(w,{onSubmit:e[5]||(e[5]=N(()=>{},["prevent"])),ref_key:"installFormRef",ref:c,rules:t(x),model:t(a),class:"zfile-install-form",size:"large"},{default:i(()=>[l(n,{class:"box animate__animated animate__fadeInUp",prop:"siteName"},{default:i(()=>[l(m,{placeholder:"\u7AD9\u70B9\u540D\u79F0","prefix-icon":t(q),modelValue:t(a).siteName,"onUpdate:modelValue":e[1]||(e[1]=s=>t(a).siteName=s)},null,8,["prefix-icon","modelValue"])]),_:1}),l(n,{class:"box animate__animated animate__fadeInUp",prop:"username"},{default:i(()=>[l(m,{placeholder:"\u7BA1\u7406\u5458\u8D26\u53F7","prefix-icon":t(R),modelValue:t(a).username,"onUpdate:modelValue":e[2]||(e[2]=s=>t(a).username=s),modelModifiers:{trim:!0}},null,8,["prefix-icon","modelValue"])]),_:1}),l(n,{class:"box animate__animated animate__fadeInUp",prop:"password"},{default:i(()=>[l(m,{placeholder:"\u7BA1\u7406\u5458\u5BC6\u7801",type:"password","show-password":"","prefix-icon":t(B),modelValue:t(a).password,"onUpdate:modelValue":e[3]||(e[3]=s=>t(a).password=s),modelModifiers:{trim:!0}},null,8,["prefix-icon","modelValue"])]),_:1}),l(n,{class:"box animate__animated animate__fadeInUp",prop:"domain"},{default:i(()=>[l(m,{placeholder:"\u7AD9\u70B9\u5730\u5740/\u57DF\u540D","prefix-icon":t(F),modelValue:t(a).domain,"onUpdate:modelValue":e[4]||(e[4]=s=>t(a).domain=s),modelModifiers:{trim:!0}},null,8,["prefix-icon","modelValue"])]),_:1}),l(n,null,{default:i(()=>[l(v,{"native-type":"submit",loading:t(u),class:"w-full",type:"primary",icon:t(J),onClick:b},{default:i(()=>[Z]),_:1},8,["loading","icon"])]),_:1})]),_:1},8,["rules","model"])])])])])])}}};var ce=y(ee,[["__scopeId","data-v-6462780c"]]);export{ce as default}; diff --git a/src/main/resources/static/assets/index.3fed707f.js b/src/main/resources/static/assets/index.3fed707f.js new file mode 100644 index 0000000..ea0907a --- /dev/null +++ b/src/main/resources/static/assets/index.3fed707f.js @@ -0,0 +1 @@ +import{u as d,a,E as N}from"./popper.91c84279.js";import{b as A,D as R,u as D,I as T,_ as $,aU as I,w as O}from"./base.197bc1e5.js";import{d as f}from"./dropdown.e1a9d9ca.js";import{d as V,r as z,c as n,u as p,a as u,b as H,e as c,f as L,t as v,n as U,k as b,g as m,J,z as j}from"./index.bbf7818f.js";const q=A({trigger:d.trigger,placement:f.placement,disabled:d.disabled,visible:a.visible,transition:a.transition,popperOptions:f.popperOptions,tabindex:f.tabindex,content:a.content,popperStyle:a.popperStyle,popperClass:a.popperClass,enterable:{...a.enterable,default:!0},effect:{...a.effect,default:"light"},teleported:a.teleported,title:String,width:{type:[String,Number],default:150},offset:{type:Number,default:void 0},showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0},showArrow:{type:Boolean,default:!0},persistent:{type:Boolean,default:!0}}),F={"update:visible":t=>R(t),"before-enter":()=>!0,"before-leave":()=>!0,"after-enter":()=>!0,"after-leave":()=>!0},G={name:"ElPopover"},K=V({...G,props:q,emits:F,setup(t,{expose:o,emit:r}){const s=t,l=D("popover"),i=z(),g=n(()=>{var e;return(e=p(i))==null?void 0:e.popperRef}),w=n(()=>[{width:T(s.width)},s.popperStyle]),y=n(()=>[l.b(),s.popperClass,{[l.m("plain")]:!!s.content}]),P=n(()=>s.transition==="el-fade-in-linear"),C=()=>{var e;(e=i.value)==null||e.hide()},E=()=>{r("before-enter")},k=()=>{r("before-leave")},S=()=>{r("after-enter")},B=()=>{r("update:visible",!1),r("after-leave")};return o({popperRef:g,hide:C}),(e,Y)=>(u(),H(p(N),j({ref_key:"tooltipRef",ref:i},e.$attrs,{trigger:e.trigger,placement:e.placement,disabled:e.disabled,visible:e.visible,transition:e.transition,"popper-options":e.popperOptions,tabindex:e.tabindex,content:e.content,offset:e.offset,"show-after":e.showAfter,"hide-after":e.hideAfter,"auto-close":e.autoClose,"show-arrow":e.showArrow,"aria-label":e.title,effect:e.effect,enterable:e.enterable,"popper-class":p(y),"popper-style":p(w),teleported:e.teleported,persistent:e.persistent,"gpu-acceleration":p(P),onBeforeShow:E,onBeforeHide:k,onShow:S,onHide:B}),{content:c(()=>[e.title?(u(),L("div",{key:0,class:U(p(l).e("title")),role:"title"},v(e.title),3)):b("v-if",!0),m(e.$slots,"default",{},()=>[J(v(e.content),1)])]),default:c(()=>[e.$slots.reference?m(e.$slots,"reference",{key:0}):b("v-if",!0)]),_:3},16,["trigger","placement","disabled","visible","transition","popper-options","tabindex","content","offset","show-after","hide-after","auto-close","show-arrow","aria-label","effect","enterable","popper-class","popper-style","teleported","persistent","gpu-acceleration"]))}});var M=$(K,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popover/src/popover.vue"]]);const h=(t,o)=>{const r=o.arg||o.value,s=r==null?void 0:r.popperRef;s&&(s.triggerRef=t)};var Q={mounted(t,o){h(t,o)},updated(t,o){h(t,o)}};const W="popover",X=I(Q,W),te=O(M,{directive:X});export{te as E}; diff --git a/src/main/resources/static/assets/index.4546773b.js b/src/main/resources/static/assets/index.4546773b.js new file mode 100644 index 0000000..03438fc --- /dev/null +++ b/src/main/resources/static/assets/index.4546773b.js @@ -0,0 +1 @@ +import{b0 as G,r as J}from"./base.197bc1e5.js";/* empty css */import{Z as Q,a as j}from"./ZFormItem.f4459b46.js";/* empty css */import"./tooltip.f118fcb0.js";import{E as H}from"./popper.91c84279.js";import{E as K}from"./image-viewer.9e2d72eb.js";/* empty css */import{E as O}from"./radio.6dc3ee2c.js";import{E as W}from"./switch.4caa5287.js";import{g as X,v as M,l as Y,d as $}from"./admin-setting.fad9817e.js";import{r as ee,ax as A,_ as oe,w as F,u as e,Q as te,a as m,b as v,e as n,h as l,I,f as T,k as b,J as a,S as ne,U as ie,p as h}from"./index.bbf7818f.js";import{t as ae}from"./vue3-clipboard.esm-bundler.34366eba.js";import{E as p}from"./request.19cbe8c5.js";import{E as R}from"./index.6dd6d04c.js";import{b as U}from"./route-block.9b0645f8.js";import{E as le}from"./index.9aca9b8e.js";import{v as se}from"./directive.b8a17520.js";import"./index.c92ded65.js";import"./focus-trap.fe4b8179.js";import"./event.3ec63147.js";import"./index.eeb08216.js";import"./debounce.a03a8484.js";import"./scroll.4cf9bb37.js";import"./event.776e7e11.js";import"./validator.998eeed0.js";import"./index.c66de53e.js";const y=ee({});function re(){const{data:r,reload:o}=A(Y,{formatResult:t=>t.data}),{loading:u,run:g}=A($,{manual:!0,onSuccess(){p({message:"\u4FDD\u5B58\u6210\u529F",type:"success"})}}),f=()=>{g(r.value)},d=()=>{X().then(t=>{y.value=t.data})};return{data:r,reload:o,saveData:f,saveLoading:u,load2FAInfo:d,twoFAData:y,copyTwoFASecret:()=>{ae(y.value.secret).then(()=>{p.success("\u590D\u5236\u6210\u529F")})},verifyCodeAndBind:()=>{M(y.value).then(t=>{p.success("\u7ED1\u5B9A\u6210\u529F"),o()})},rebind:()=>{r.value.loginVerifySecret="",d()},cancelBind:()=>{R.confirm("\u662F\u5426\u786E\u8BA4\u53D6\u6D88\u7ED1\u5B9A\uFF0C\u786E\u8BA4\u540E\u5C06\u81EA\u52A8\u6062\u590D\u4E3A\u56FE\u5F62\u9A8C\u8BC1\u7801","\u63D0\u793A",{confirmButtonText:"\u786E\u5B9A",cancelButtonText:"\u53D6\u6D88",type:"success",callback:t=>{t==="confirm"&&(r.value.loginVerifySecret="",r.value.loginVerifyMode="image")}})},validBind:()=>{R.prompt("\u8BF7\u8F93\u5165\u53CC\u56E0\u7D20\u8BA4\u8BC1 APP \u4E2D\u7684\u9A8C\u8BC1\u7801","\u63D0\u793A",{confirmButtonText:"\u786E\u5B9A",cancelButtonText:"\u53D6\u6D88",inputValidator(t){return!!t},inputErrorMessage:"\u9A8C\u8BC1\u7801\u4E0D\u80FD\u4E3A\u7A7A."}).then(({value:t})=>{let i={secret:r.value.loginVerifySecret,code:t};M(i).then(()=>{p.success("\u9A8C\u8BC1\u6210\u529F")})})}}}const k=r=>(ne("data-v-eb0c5abc"),r=r(),ie(),r),de=a(" \u5B89\u5168\u8BBE\u7F6E "),ce=a(" \u6B64\u5904\u8BBE\u7F6E\u53EF\u4FDD\u62A4\u60A8\u7684\u7AD9\u70B9\u5B89\u5168 "),me=a(" \u542F\u7528\u540E\uFF0C\u4F1A\u5728\u95E8\u6237\u663E\u793A\u540E\u53F0\u767B\u9646\u5165\u53E3\uFF0C\u8BF7\u6839\u636E\u81EA\u8EAB\u60C5\u51B5\u9009\u62E9\u662F\u5426\u542F\u7528 "),ue=a("\u4E0D\u542F\u7528\u767B\u9646\u9A8C\u8BC1"),fe=a("\u542F\u7528\u56FE\u7247\u9A8C\u8BC1\u7801"),_e=a("\u542F\u7528\u53CC\u56E0\u7D20\u8BA4\u8BC1"),pe=a(" \u56FE\u7247\u9A8C\u8BC1\u7801\u4E5F\u53EF\u80FD\u4F1A\u88AB\u8BC6\u522B\uFF0C\u4E0D\u80FD\u5B8C\u5168\u62B5\u6321\u66B4\u529B\u7834\u89E3\u3002 "),ye=a(" \u53CC\u56E0\u7D20\u8BA4\u8BC1\u53EF\u5B8C\u7F8E\u4FDD\u62A4\u767B\u9646\u8BA4\u8BC1\uFF0C\u53EF\u4F7F\u7528\u4EFB\u610F\u652F\u6301 2FA \u8BA4\u8BC1\u7684\u8F6F\u4EF6\uFF0C\u5982 "),ge=k(()=>h("b",null,"Google \u8EAB\u4EFD\u9A8C\u8BC1\u5668",-1)),Ve=a("\u3001"),ve=k(()=>h("b",null,"Microsoft Authenticator",-1)),be=a(" \u7B49\u8F6F\u4EF6. "),he=k(()=>h("br",null,null,-1)),ke={key:0,class:"w-full"},Se=a("\u91CD\u65B0\u7ED1\u5B9A"),Be=a("\u53D6\u6D88\u7ED1\u5B9A"),Ce=a("\u9A8C\u8BC1\u7ED1\u5B9A"),Ee={key:1},we=a(" \u53EF\u626B\u63CF\u4E0A\u65B9\u4E8C\u7EF4\u7801\u6216\u590D\u5236\u4E0B\u65B9\u5BC6\u94A5\u5230\u652F\u6301\u53CC\u56E0\u7D20\u8BA4\u8BC1\u7684\u8F6F\u4EF6\u4E2D\u6DFB\u52A0\u3002 "),xe=a("\u9A8C\u8BC1\u5E76\u7ED1\u5B9A"),Me=a(" \u8BF7\u7ED1\u5B9A\u53CC\u56E0\u7D20\u8BA4\u8BC1\u8F6F\u4EF6\u540E\uFF0C\u8F93\u5165\u663E\u793A\u7684\u9A8C\u8BC1\u7801\u8FDB\u884C\u7ED1\u5B9A "),q={__name:"index",setup(r){const{data:o,saveData:u,saveLoading:g,load2FAInfo:f,twoFAData:d,copyTwoFASecret:S,verifyCodeAndBind:B,rebind:C,cancelBind:E,validBind:w}=re();return F(()=>{var t;return(t=o.value)==null?void 0:t.loginVerifyMode},(t,i)=>{(t==="off"||t==="image")&&i&&u(),t==="2fa"&&!o.value.loginVerifySecret&&f()}),F(()=>{var t;return(t=o.value)==null?void 0:t.showLogin},(t,i)=>{t!==i&&i!==void 0&&u()}),(t,i)=>{const D=W,_=Q,V=O,c=J,L=K,z=H,x=le,N=j,Z=se;return e(o)?te((m(),v(N,{key:0,model:e(o)},{"form-title":n(()=>[de]),"form-sub-title":n(()=>[ce]),default:n(()=>[l(_,{label:"\u662F\u5426\u663E\u793A\u767B\u9646\u5165\u53E3"},{tips:n(()=>[me]),default:n(()=>[l(D,{modelValue:e(o).showLogin,"onUpdate:modelValue":i[0]||(i[0]=s=>e(o).showLogin=s)},null,8,["modelValue"])]),_:1}),l(_,{label:"\u767B\u9646\u9A8C\u8BC1\u65B9\u5F0F"},I({default:n(()=>[l(V,{modelValue:e(o).loginVerifyMode,"onUpdate:modelValue":i[1]||(i[1]=s=>e(o).loginVerifyMode=s),label:"off"},{default:n(()=>[ue]),_:1},8,["modelValue"]),l(V,{modelValue:e(o).loginVerifyMode,"onUpdate:modelValue":i[2]||(i[2]=s=>e(o).loginVerifyMode=s),label:"image"},{default:n(()=>[fe]),_:1},8,["modelValue"]),l(V,{modelValue:e(o).loginVerifyMode,"onUpdate:modelValue":i[3]||(i[3]=s=>e(o).loginVerifyMode=s),label:"2fa"},{default:n(()=>[_e]),_:1},8,["modelValue"])]),_:2},[e(o).loginVerifyMode==="image"?{name:"tips",fn:n(()=>[pe])}:void 0,e(o).loginVerifyMode==="2fa"?{name:"tips",fn:n(()=>[ye,ge,Ve,ve,be,he])}:void 0]),1024),e(o).loginVerifyMode==="2fa"?(m(),v(_,{key:0,label:"\u53CC\u56E0\u7D20\u8BA4\u8BC1\u5BC6\u94A5"},I({default:n(()=>{var s;return[e(o).loginVerifySecret?(m(),T("div",ke,[l(c,{size:"small",type:"primary",onClick:e(C)},{default:n(()=>[Se]),_:1},8,["onClick"]),l(c,{size:"small",type:"primary",onClick:e(E)},{default:n(()=>[Be]),_:1},8,["onClick"]),l(c,{size:"small",type:"primary",onClick:e(w)},{default:n(()=>[Ce]),_:1},8,["onClick"])])):(m(),T("div",Ee,[l(L,{onClick:e(f),src:(s=e(d))==null?void 0:s.qrcode},null,8,["onClick","src"]),l(x,{readonly:"",modelValue:e(d).secret,"onUpdate:modelValue":i[4]||(i[4]=P=>e(d).secret=P)},{append:n(()=>[l(z,{class:"item",effect:"dark",content:"\u590D\u5236",placement:"bottom"},{default:n(()=>[l(c,{onClick:e(S),icon:e(G)},null,8,["onClick","icon"])]),_:1})]),_:1},8,["modelValue"])]))]}),_:2},[e(o).loginVerifySecret?void 0:{name:"tips",fn:n(()=>[we])}]),1024)):b("",!0),e(o).loginVerifyMode==="2fa"&&!e(o).loginVerifySecret?(m(),v(_,{key:1,label:"\u53CC\u56E0\u7D20\u8BA4\u8BC1\u9A8C\u8BC1\u7801"},{tips:n(()=>[Me]),default:n(()=>[l(x,{modelValue:e(d).code,"onUpdate:modelValue":i[5]||(i[5]=s=>e(d).code=s)},null,8,["modelValue"]),l(c,{onClick:e(B),type:"primary"},{default:n(()=>[xe]),_:1},8,["onClick"])]),_:1})):b("",!0)]),_:1},8,["model"])),[[Z,e(g)]]):b("",!0)}}};typeof U=="function"&&U(q);var no=oe(q,[["__scopeId","data-v-eb0c5abc"]]);export{no as default}; diff --git a/src/main/resources/static/assets/index.6dd6d04c.js b/src/main/resources/static/assets/index.6dd6d04c.js new file mode 100644 index 0000000..fb929d5 --- /dev/null +++ b/src/main/resources/static/assets/index.6dd6d04c.js @@ -0,0 +1 @@ +import{w as N,P as me,Y as A,d as ve,r as h,V as ge,c as E,o as be,H as ye,ad as Ce,ae as B,a as d,b as v,e as f,Q as K,R as j,h as w,p as c,n as i,i as _,j as P,f as q,q as z,k as M,t as I,B as O,g as he,J as X,T as Ee,m as Be,X as D,a5 as we,an as ae,a7 as ee,ah as Me}from"./index.bbf7818f.js";import{a4 as Se,r as ke,E as Te,a8 as Ie,u as Ae,F as Re,a7 as ne,G as se,R as $e,_ as Le,L as Ve,a5 as Pe}from"./base.197bc1e5.js";import{E as ze}from"./index.9aca9b8e.js";import{E as Oe,u as De,b as Ne,a as Ue}from"./index.c66de53e.js";import{a as le,o as re}from"./event.3ec63147.js";import{E as Fe}from"./focus-trap.fe4b8179.js";import{i as He}from"./validator.998eeed0.js";import{u as Ke}from"./index.eeb08216.js";const je='a[href],button:not([disabled]),button:not([hidden]),:not([tabindex="-1"]),input:not([disabled]),input:not([type="hidden"]),select:not([disabled]),textarea:not([disabled])',qe=e=>getComputedStyle(e).position==="fixed"?!1:e.offsetParent!==null,oe=e=>Array.from(e.querySelectorAll(je)).filter(n=>Xe(n)&&qe(n)),Xe=e=>{if(e.tabIndex>0||e.tabIndex===0&&e.getAttribute("tabIndex")!==null)return!0;if(e.disabled)return!1;switch(e.nodeName){case"A":return!!e.href&&e.rel!=="ignore";case"INPUT":return!(e.type==="hidden"||e.type==="file");case"BUTTON":case"SELECT":case"TEXTAREA":return!0;default:return!1}},Ge=(e,n)=>{let a;N(()=>e.value,l=>{var t,o;l?(a=document.activeElement,me(n)&&((o=(t=n.value).focus)==null||o.call(t))):a.focus()})},G="_trap-focus-children",b=[],te=e=>{if(b.length===0)return;const n=b[b.length-1][G];if(n.length>0&&e.code===Se.tab){if(n.length===1){e.preventDefault(),document.activeElement!==n[0]&&n[0].focus();return}const a=e.shiftKey,l=e.target===n[0],t=e.target===n[n.length-1];l&&a&&(e.preventDefault(),n[n.length-1].focus()),t&&!a&&(e.preventDefault(),n[0].focus())}},Ze={beforeMount(e){e[G]=oe(e),b.push(e),b.length<=1&&le(document,"keydown",te)},updated(e){A(()=>{e[G]=oe(e)})},unmounted(){b.shift(),b.length===0&&re(document,"keydown",te)}},Je=ve({name:"ElMessageBox",directives:{TrapFocus:Ze},components:{ElButton:ke,ElFocusTrap:Fe,ElInput:ze,ElOverlay:Oe,ElIcon:Te,...Ie},inheritAttrs:!1,props:{buttonSize:{type:String,validator:He},modal:{type:Boolean,default:!0},lockScroll:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0},closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},closeOnHashChange:{type:Boolean,default:!0},center:Boolean,draggable:Boolean,roundButton:{default:!1,type:Boolean},container:{type:String,default:"body"},boxType:{type:String,default:""}},emits:["vanish","action"],setup(e,{emit:n}){const{t:a}=Ke(),l=Ae("message-box"),t=h(!1),{nextZIndex:o}=Re(),s=ge({autofocus:!0,beforeClose:null,callback:null,cancelButtonText:"",cancelButtonClass:"",confirmButtonText:"",confirmButtonClass:"",customClass:"",customStyle:{},dangerouslyUseHTMLString:!1,distinguishCancelAndClose:!1,icon:"",inputPattern:null,inputPlaceholder:"",inputType:"text",inputValue:null,inputValidator:null,inputErrorMessage:"",message:null,modalFade:!0,modalClass:"",showCancelButton:!1,showConfirmButton:!0,type:"",title:void 0,showInput:!1,action:"",confirmButtonLoading:!1,cancelButtonLoading:!1,confirmButtonDisabled:!1,editorErrorMessage:"",validateError:!1,zIndex:o()}),p=E(()=>{const r=s.type;return{[l.bm("icon",r)]:r&&ne[r]}}),U=se(),$=se(),F=$e(E(()=>e.buttonSize),{prop:!0,form:!0,formItem:!0}),H=E(()=>s.icon||ne[s.type]||""),u=E(()=>!!s.message),y=h(),Z=h(),k=h(),L=h(),J=h(),ie=E(()=>s.confirmButtonClass);N(()=>s.inputValue,async r=>{await A(),e.boxType==="prompt"&&r!==null&&W()},{immediate:!0}),N(()=>t.value,r=>{var m,C;r&&(e.boxType!=="prompt"&&(s.autofocus?k.value=(C=(m=J.value)==null?void 0:m.$el)!=null?C:y.value:k.value=y.value),s.zIndex=o()),e.boxType==="prompt"&&(r?A().then(()=>{var x;L.value&&L.value.$el&&(s.autofocus?k.value=(x=ce())!=null?x:y.value:k.value=y.value)}):(s.editorErrorMessage="",s.validateError=!1))});const ue=E(()=>e.draggable);De(y,Z,ue),be(async()=>{await A(),e.closeOnHashChange&&le(window,"hashchange",T)}),ye(()=>{e.closeOnHashChange&&re(window,"hashchange",T)});function T(){!t.value||(t.value=!1,A(()=>{s.action&&n("action",s.action)}))}const Q=()=>{e.closeOnClickModal&&V(s.distinguishCancelAndClose?"close":"cancel")},de=Ue(Q),fe=r=>{if(s.inputType!=="textarea")return r.preventDefault(),V("confirm")},V=r=>{var m;e.boxType==="prompt"&&r==="confirm"&&!W()||(s.action=r,s.beforeClose?(m=s.beforeClose)==null||m.call(s,r,s,T):T())},W=()=>{if(e.boxType==="prompt"){const r=s.inputPattern;if(r&&!r.test(s.inputValue||""))return s.editorErrorMessage=s.inputErrorMessage||a("el.messagebox.error"),s.validateError=!0,!1;const m=s.inputValidator;if(typeof m=="function"){const C=m(s.inputValue);if(C===!1)return s.editorErrorMessage=s.inputErrorMessage||a("el.messagebox.error"),s.validateError=!0,!1;if(typeof C=="string")return s.editorErrorMessage=C,s.validateError=!0,!1}}return s.editorErrorMessage="",s.validateError=!1,!0},ce=()=>{const r=L.value.$refs;return r.input||r.textarea},Y=()=>{V("close")},pe=()=>{e.closeOnPressEscape&&Y()};return e.lockScroll&&Ne(t),Ge(t),{...Ce(s),ns:l,overlayEvent:de,visible:t,hasMessage:u,typeClass:p,contentId:U,inputId:$,btnSize:F,iconComponent:H,confirmButtonClasses:ie,rootRef:y,focusStartRef:k,headerRef:Z,inputRef:L,confirmRef:J,doClose:T,handleClose:Y,onCloseRequested:pe,handleWrapperClick:Q,handleInputEnter:fe,handleAction:V,t:a}}}),Qe=["aria-label","aria-describedby"],We=["aria-label"],Ye=["id"];function xe(e,n,a,l,t,o){const s=B("el-icon"),p=B("close"),U=B("el-input"),$=B("el-button"),F=B("el-focus-trap"),H=B("el-overlay");return d(),v(Ee,{name:"fade-in-linear",onAfterLeave:n[11]||(n[11]=u=>e.$emit("vanish")),persisted:""},{default:f(()=>[K(w(H,{"z-index":e.zIndex,"overlay-class":[e.ns.is("message-box"),e.modalClass],mask:e.modal},{default:f(()=>[c("div",{role:"dialog","aria-label":e.title,"aria-modal":"true","aria-describedby":e.showInput?void 0:e.contentId,class:i(`${e.ns.namespace.value}-overlay-message-box`),onClick:n[8]||(n[8]=(...u)=>e.overlayEvent.onClick&&e.overlayEvent.onClick(...u)),onMousedown:n[9]||(n[9]=(...u)=>e.overlayEvent.onMousedown&&e.overlayEvent.onMousedown(...u)),onMouseup:n[10]||(n[10]=(...u)=>e.overlayEvent.onMouseup&&e.overlayEvent.onMouseup(...u))},[w(F,{loop:"",trapped:e.visible,"focus-trap-el":e.rootRef,"focus-start-el":e.focusStartRef,onReleaseRequested:e.onCloseRequested},{default:f(()=>[c("div",{ref:"rootRef",class:i([e.ns.b(),e.customClass,e.ns.is("draggable",e.draggable),{[e.ns.m("center")]:e.center}]),style:_(e.customStyle),tabindex:"-1",onClick:n[7]||(n[7]=P(()=>{},["stop"]))},[e.title!==null&&e.title!==void 0?(d(),q("div",{key:0,ref:"headerRef",class:i(e.ns.e("header"))},[c("div",{class:i(e.ns.e("title"))},[e.iconComponent&&e.center?(d(),v(s,{key:0,class:i([e.ns.e("status"),e.typeClass])},{default:f(()=>[(d(),v(z(e.iconComponent)))]),_:1},8,["class"])):M("v-if",!0),c("span",null,I(e.title),1)],2),e.showClose?(d(),q("button",{key:0,type:"button",class:i(e.ns.e("headerbtn")),"aria-label":e.t("el.messagebox.close"),onClick:n[0]||(n[0]=u=>e.handleAction(e.distinguishCancelAndClose?"close":"cancel")),onKeydown:n[1]||(n[1]=O(P(u=>e.handleAction(e.distinguishCancelAndClose?"close":"cancel"),["prevent"]),["enter"]))},[w(s,{class:i(e.ns.e("close"))},{default:f(()=>[w(p)]),_:1},8,["class"])],42,We)):M("v-if",!0)],2)):M("v-if",!0),c("div",{id:e.contentId,class:i(e.ns.e("content"))},[c("div",{class:i(e.ns.e("container"))},[e.iconComponent&&!e.center&&e.hasMessage?(d(),v(s,{key:0,class:i([e.ns.e("status"),e.typeClass])},{default:f(()=>[(d(),v(z(e.iconComponent)))]),_:1},8,["class"])):M("v-if",!0),e.hasMessage?(d(),q("div",{key:1,class:i(e.ns.e("message"))},[he(e.$slots,"default",{},()=>[e.dangerouslyUseHTMLString?(d(),v(z(e.showInput?"label":"p"),{key:1,for:e.showInput?e.inputId:void 0,innerHTML:e.message},null,8,["for","innerHTML"])):(d(),v(z(e.showInput?"label":"p"),{key:0,for:e.showInput?e.inputId:void 0},{default:f(()=>[X(I(e.dangerouslyUseHTMLString?"":e.message),1)]),_:1},8,["for"]))])],2)):M("v-if",!0)],2),K(c("div",{class:i(e.ns.e("input"))},[w(U,{id:e.inputId,ref:"inputRef",modelValue:e.inputValue,"onUpdate:modelValue":n[2]||(n[2]=u=>e.inputValue=u),type:e.inputType,placeholder:e.inputPlaceholder,"aria-invalid":e.validateError,class:i({invalid:e.validateError}),onKeydown:O(e.handleInputEnter,["enter"])},null,8,["id","modelValue","type","placeholder","aria-invalid","class","onKeydown"]),c("div",{class:i(e.ns.e("errormsg")),style:_({visibility:e.editorErrorMessage?"visible":"hidden"})},I(e.editorErrorMessage),7)],2),[[j,e.showInput]])],10,Ye),c("div",{class:i(e.ns.e("btns"))},[e.showCancelButton?(d(),v($,{key:0,loading:e.cancelButtonLoading,class:i([e.cancelButtonClass]),round:e.roundButton,size:e.btnSize,onClick:n[3]||(n[3]=u=>e.handleAction("cancel")),onKeydown:n[4]||(n[4]=O(P(u=>e.handleAction("cancel"),["prevent"]),["enter"]))},{default:f(()=>[X(I(e.cancelButtonText||e.t("el.messagebox.cancel")),1)]),_:1},8,["loading","class","round","size"])):M("v-if",!0),K(w($,{ref:"confirmRef",type:"primary",loading:e.confirmButtonLoading,class:i([e.confirmButtonClasses]),round:e.roundButton,disabled:e.confirmButtonDisabled,size:e.btnSize,onClick:n[5]||(n[5]=u=>e.handleAction("confirm")),onKeydown:n[6]||(n[6]=O(P(u=>e.handleAction("confirm"),["prevent"]),["enter"]))},{default:f(()=>[X(I(e.confirmButtonText||e.t("el.messagebox.confirm")),1)]),_:1},8,["loading","class","round","disabled","size"]),[[j,e.showConfirmButton]])],2)],6)]),_:3},8,["trapped","focus-trap-el","focus-start-el","onReleaseRequested"])],42,Qe)]),_:3},8,["z-index","overlay-class","mask"]),[[j,e.visible]])]),_:3})}var _e=Le(Je,[["render",xe],["__file","/home/runner/work/element-plus/element-plus/packages/components/message-box/src/index.vue"]]);const R=new Map,en=(e,n,a=null)=>{const l=Me(_e,e);return l.appContext=a,ae(l,n),document.body.appendChild(n.firstElementChild),l.component},nn=()=>document.createElement("div"),sn=(e,n)=>{const a=nn();e.onVanish=()=>{ae(null,a),R.delete(t)},e.onAction=o=>{const s=R.get(t);let p;e.showInput?p={value:t.inputValue,action:o}:p=o,e.callback?e.callback(p,l.proxy):o==="cancel"||o==="close"?e.distinguishCancelAndClose&&o!=="cancel"?s.reject("close"):s.reject("cancel"):s.resolve(p)};const l=en(e,a,n),t=l.proxy;for(const o in e)ee(e,o)&&!ee(t.$props,o)&&(t[o]=e[o]);return N(()=>t.message,(o,s)=>{D(o)?l.slots.default=()=>[o]:D(s)&&!D(o)&&delete l.slots.default},{immediate:!0}),t.visible=!0,t};function S(e,n=null){if(!Ve)return Promise.reject();let a;return Be(e)||D(e)?e={message:e}:a=e.callback,new Promise((l,t)=>{const o=sn(e,n!=null?n:S._context);R.set(o,{options:e,callback:a,resolve:l,reject:t})})}const on=["alert","confirm","prompt"],tn={alert:{closeOnPressEscape:!1,closeOnClickModal:!1},confirm:{showCancelButton:!0},prompt:{showCancelButton:!0,showInput:!0}};on.forEach(e=>{S[e]=an(e)});function an(e){return(n,a,l,t)=>{let o;return we(a)?(l=a,o=""):Pe(a)?o="":o=a,S(Object.assign({title:o,message:n,type:"",...tn[e]},l,{boxType:e}),t)}}S.close=()=>{R.forEach((e,n)=>{n.doClose()}),R.clear()};S._context=null;const g=S;g.install=e=>{g._context=e._context,e.config.globalProperties.$msgbox=g,e.config.globalProperties.$messageBox=g,e.config.globalProperties.$alert=g.alert,e.config.globalProperties.$confirm=g.confirm,e.config.globalProperties.$prompt=g.prompt};const vn=g;export{vn as E}; diff --git a/src/main/resources/static/assets/index.7fa0be7b.js b/src/main/resources/static/assets/index.7fa0be7b.js new file mode 100644 index 0000000..6aca638 --- /dev/null +++ b/src/main/resources/static/assets/index.7fa0be7b.js @@ -0,0 +1 @@ +import{a as u,b as s}from"./event.3ec63147.js";var c={beforeMount(n,t){let e=null,a;const l=()=>t.value&&t.value(),o=()=>{Date.now()-a<100&&l(),clearInterval(e),e=null};u(n,"mousedown",r=>{r.button===0&&(a=Date.now(),s(document,"mouseup",o),clearInterval(e),e=setInterval(l,100))})}};export{c as v}; diff --git a/src/main/resources/static/assets/index.9aca9b8e.js b/src/main/resources/static/assets/index.9aca9b8e.js new file mode 100644 index 0000000..05b0b69 --- /dev/null +++ b/src/main/resources/static/assets/index.9aca9b8e.js @@ -0,0 +1,9 @@ +import{c,a0 as Pe,r as V,m as Z,d as je,av as Ke,G as We,s as J,w as ee,Y as $,o as Ue,ag as _e,x as qe,Q as Xe,R as Ye,a as d,f as x,k as v,F as te,n as y,u as t,g as K,p as N,b as w,e as B,q as W,z as ae,h as Qe,j as Ge,N as Ze,t as U,i as Je,a5 as Se}from"./index.bbf7818f.js";import{m as et,b as tt}from"./request.19cbe8c5.js";import{ap as at,Q as Ce,b as ot,M as st,d as oe,B as Ie,aq as nt,P as lt,R as rt,q as it,u as Ee,ar as ut,as as dt,at as ct,k as pt,o as ke,E as L,g as ft,_ as vt,L as mt,w as yt}from"./base.197bc1e5.js";import{U as se}from"./event.776e7e11.js";const ht=o=>/([(\uAC00-\uD7AF)|(\u3130-\u318F)])+/gi.test(o),bt=["class","style"],gt=/^on[A-Z]/,xt=(o={})=>{const{excludeListeners:m=!1,excludeKeys:l}=o,a=c(()=>((l==null?void 0:l.value)||[]).concat(bt)),i=Pe();return i?c(()=>{var p;return at(Object.entries((p=i.proxy)==null?void 0:p.$attrs).filter(([r])=>!a.value.includes(r)&&!(m&>.test(r))))}):c(()=>({}))};function wt(o){const m=V();function l(){if(o.value==null)return;const{selectionStart:i,selectionEnd:p,value:r}=o.value;if(i==null||p==null)return;const g=r.slice(0,Math.max(0,i)),u=r.slice(Math.max(0,p));m.value={selectionStart:i,selectionEnd:p,value:r,beforeTxt:g,afterTxt:u}}function a(){if(o.value==null||m.value==null)return;const{value:i}=o.value,{beforeTxt:p,afterTxt:r,selectionStart:g}=m.value;if(p==null||r==null||g==null)return;let u=i.length;if(i.endsWith(r))u=i.length-r.length;else if(i.startsWith(p))u=p.length;else{const h=p[g-1],S=i.indexOf(h,g-1);S!==-1&&(u=S+1)}o.value.setSelectionRange(u,u)}return[l,a]}let b;const St=` + height:0 !important; + visibility:hidden !important; + overflow:hidden !important; + position:absolute !important; + z-index:-1000 !important; + top:0 !important; + right:0 !important; +`,Ct=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing"];function It(o){const m=window.getComputedStyle(o),l=m.getPropertyValue("box-sizing"),a=Number.parseFloat(m.getPropertyValue("padding-bottom"))+Number.parseFloat(m.getPropertyValue("padding-top")),i=Number.parseFloat(m.getPropertyValue("border-bottom-width"))+Number.parseFloat(m.getPropertyValue("border-top-width"));return{contextStyle:Ct.map(r=>`${r}:${m.getPropertyValue(r)}`).join(";"),paddingSize:a,borderSize:i,boxSizing:l}}function ze(o,m=1,l){var a;b||(b=document.createElement("textarea"),document.body.appendChild(b));const{paddingSize:i,borderSize:p,boxSizing:r,contextStyle:g}=It(o);b.setAttribute("style",`${g};${St}`),b.value=o.value||o.placeholder||"";let u=b.scrollHeight;const h={};r==="border-box"?u=u+p:r==="content-box"&&(u=u-i),b.value="";const S=b.scrollHeight-i;if(Ce(m)){let f=S*m;r==="border-box"&&(f=f+i+p),u=Math.max(f,u),h.minHeight=`${f}px`}if(Ce(l)){let f=S*l;r==="border-box"&&(f=f+i+p),u=Math.min(f,u)}return h.height=`${u}px`,(a=b.parentNode)==null||a.removeChild(b),b=void 0,h}const Et=ot({id:{type:String,default:void 0},size:st,disabled:Boolean,modelValue:{type:oe([String,Number,Object]),default:""},type:{type:String,default:"text"},resize:{type:String,values:["none","both","horizontal","vertical"]},autosize:{type:oe([Boolean,Object]),default:!1},autocomplete:{type:String,default:"off"},formatter:{type:Function},parser:{type:Function},placeholder:{type:String},form:{type:String,default:""},readonly:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},showPassword:{type:Boolean,default:!1},showWordLimit:{type:Boolean,default:!1},suffixIcon:{type:Ie,default:""},prefixIcon:{type:Ie,default:""},containerRole:{type:String,default:void 0},label:{type:String,default:void 0},tabindex:{type:[String,Number],default:0},validateEvent:{type:Boolean,default:!0},inputStyle:{type:oe([Object,Array,String]),default:()=>et({})}}),kt={[se]:o=>Z(o),input:o=>Z(o),change:o=>Z(o),focus:o=>o instanceof FocusEvent,blur:o=>o instanceof FocusEvent,clear:()=>!0,mouseleave:o=>o instanceof MouseEvent,mouseenter:o=>o instanceof MouseEvent,keydown:o=>o instanceof Event,compositionstart:o=>o instanceof CompositionEvent,compositionupdate:o=>o instanceof CompositionEvent,compositionend:o=>o instanceof CompositionEvent},zt=["role"],Pt=["id","type","disabled","formatter","parser","readonly","autocomplete","tabindex","aria-label","placeholder"],$t=["id","tabindex","disabled","readonly","autocomplete","aria-label","placeholder"],Nt={name:"ElInput",inheritAttrs:!1},Vt=je({...Nt,props:Et,emits:kt,setup(o,{expose:m,emit:l}){const a=o,i={suffix:"append",prefix:"prepend"},p=Pe(),r=Ke(),g=We(),u=c(()=>{const e={};return a.containerRole==="combobox"&&(e["aria-haspopup"]=r["aria-haspopup"],e["aria-owns"]=r["aria-owns"],e["aria-expanded"]=r["aria-expanded"]),e}),h=xt({excludeKeys:c(()=>Object.keys(u.value))}),{form:S,formItem:f}=nt(),{inputId:ne}=lt(a,{formItemContext:f}),$e=rt(),k=it(),s=Ee("input"),le=Ee("textarea"),R=J(),z=J(),T=V(!1),_=V(!1),A=V(!1),O=V(!1),re=V(),q=J(a.inputStyle),F=c(()=>R.value||z.value),ie=c(()=>{var e;return(e=S==null?void 0:S.statusIcon)!=null?e:!1}),M=c(()=>(f==null?void 0:f.validateState)||""),ue=c(()=>M.value&&ut[M.value]),Ne=c(()=>O.value?dt:ct),Ve=c(()=>[r.style,a.inputStyle]),de=c(()=>[a.inputStyle,q.value,{resize:a.resize}]),C=c(()=>pt(a.modelValue)?"":String(a.modelValue)),D=c(()=>a.clearable&&!k.value&&!a.readonly&&!!C.value&&(T.value||_.value)),X=c(()=>a.showPassword&&!k.value&&!a.readonly&&!!C.value&&(!!C.value||T.value)),P=c(()=>a.showWordLimit&&!!h.value.maxlength&&(a.type==="text"||a.type==="textarea")&&!k.value&&!a.readonly&&!a.showPassword),Y=c(()=>Array.from(C.value).length),Te=c(()=>!!P.value&&Y.value>Number(h.value.maxlength)),Ae=c(()=>!!g.suffix||!!a.suffixIcon||D.value||a.showPassword||P.value||!!M.value&&ie.value),[Fe,Me]=wt(R);tt(z,e=>{if(!P.value||a.resize!=="both")return;const n=e[0],{width:I}=n.contentRect;re.value={right:`calc(100% - ${I+15+6}px)`}});const H=()=>{const{type:e,autosize:n}=a;if(!(!mt||e!=="textarea"))if(n){const I=Se(n)?n.minRows:void 0,E=Se(n)?n.maxRows:void 0;q.value={...ze(z.value,I,E)}}else q.value={minHeight:ze(z.value).minHeight}},j=()=>{const e=F.value;!e||e.value===C.value||(e.value=C.value)},ce=e=>{const{el:n}=p.vnode;if(!n)return;const E=Array.from(n.querySelectorAll(`.${s.e(e)}`)).find(He=>He.parentNode===n);if(!E)return;const we=i[e];g[we]?E.style.transform=`translateX(${e==="suffix"?"-":""}${n.querySelector(`.${s.be("group",we)}`).offsetWidth}px)`:E.removeAttribute("style")},Q=()=>{ce("prefix"),ce("suffix")},G=async e=>{Fe();let{value:n}=e.target;a.formatter&&(n=a.parser?a.parser(n):n,n=a.formatter(n)),!A.value&&n!==C.value&&(l(se,n),l("input",n),await $(),j(),Me())},pe=e=>{l("change",e.target.value)},fe=e=>{l("compositionstart",e),A.value=!0},ve=e=>{var n;l("compositionupdate",e);const I=(n=e.target)==null?void 0:n.value,E=I[I.length-1]||"";A.value=!ht(E)},me=e=>{l("compositionend",e),A.value&&(A.value=!1,G(e))},Be=()=>{O.value=!O.value,ye()},ye=async()=>{var e;await $(),(e=F.value)==null||e.focus()},Le=()=>{var e;return(e=F.value)==null?void 0:e.blur()},he=e=>{T.value=!0,l("focus",e)},be=e=>{var n;T.value=!1,l("blur",e),a.validateEvent&&((n=f==null?void 0:f.validate)==null||n.call(f,"blur").catch(I=>ke()))},Re=e=>{_.value=!1,l("mouseleave",e)},Oe=e=>{_.value=!0,l("mouseenter",e)},ge=e=>{l("keydown",e)},De=()=>{var e;(e=F.value)==null||e.select()},xe=()=>{l(se,""),l("change",""),l("clear"),l("input","")};return ee(()=>a.modelValue,()=>{var e;$(()=>H()),a.validateEvent&&((e=f==null?void 0:f.validate)==null||e.call(f,"change").catch(n=>ke()))}),ee(C,()=>j()),ee(()=>a.type,async()=>{await $(),j(),H(),Q()}),Ue(async()=>{!a.formatter&&a.parser,j(),Q(),await $(),H()}),_e(async()=>{await $(),Q()}),m({input:R,textarea:z,ref:F,textareaStyle:de,autosize:qe(a,"autosize"),focus:ye,blur:Le,select:De,clear:xe,resizeTextarea:H}),(e,n)=>Xe((d(),x("div",ae(t(u),{class:[e.type==="textarea"?t(le).b():t(s).b(),t(s).m(t($e)),t(s).is("disabled",t(k)),t(s).is("exceed",t(Te)),{[t(s).b("group")]:e.$slots.prepend||e.$slots.append,[t(s).bm("group","append")]:e.$slots.append,[t(s).bm("group","prepend")]:e.$slots.prepend,[t(s).m("prefix")]:e.$slots.prefix||e.prefixIcon,[t(s).m("suffix")]:e.$slots.suffix||e.suffixIcon||e.clearable||e.showPassword,[t(s).bm("suffix","password-clear")]:t(D)&&t(X)},e.$attrs.class],style:t(Ve),role:e.containerRole,onMouseenter:Oe,onMouseleave:Re}),[v(" input "),e.type!=="textarea"?(d(),x(te,{key:0},[v(" prepend slot "),e.$slots.prepend?(d(),x("div",{key:0,class:y(t(s).be("group","prepend"))},[K(e.$slots,"prepend")],2)):v("v-if",!0),N("div",{class:y([t(s).e("wrapper"),t(s).is("focus",T.value)])},[v(" prefix slot "),e.$slots.prefix||e.prefixIcon?(d(),x("span",{key:0,class:y(t(s).e("prefix"))},[N("span",{class:y(t(s).e("prefix-inner"))},[K(e.$slots,"prefix"),e.prefixIcon?(d(),w(t(L),{key:0,class:y(t(s).e("icon"))},{default:B(()=>[(d(),w(W(e.prefixIcon)))]),_:1},8,["class"])):v("v-if",!0)],2)],2)):v("v-if",!0),N("input",ae({id:t(ne),ref_key:"input",ref:R,class:t(s).e("inner")},t(h),{type:e.showPassword?O.value?"text":"password":e.type,disabled:t(k),formatter:e.formatter,parser:e.parser,readonly:e.readonly,autocomplete:e.autocomplete,tabindex:e.tabindex,"aria-label":e.label,placeholder:e.placeholder,style:e.inputStyle,onCompositionstart:fe,onCompositionupdate:ve,onCompositionend:me,onInput:G,onFocus:he,onBlur:be,onChange:pe,onKeydown:ge}),null,16,Pt),v(" suffix slot "),t(Ae)?(d(),x("span",{key:1,class:y(t(s).e("suffix"))},[N("span",{class:y(t(s).e("suffix-inner"))},[!t(D)||!t(X)||!t(P)?(d(),x(te,{key:0},[K(e.$slots,"suffix"),e.suffixIcon?(d(),w(t(L),{key:0,class:y(t(s).e("icon"))},{default:B(()=>[(d(),w(W(e.suffixIcon)))]),_:1},8,["class"])):v("v-if",!0)],64)):v("v-if",!0),t(D)?(d(),w(t(L),{key:1,class:y([t(s).e("icon"),t(s).e("clear")]),onMousedown:Ge(t(Ze),["prevent"]),onClick:xe},{default:B(()=>[Qe(t(ft))]),_:1},8,["class","onMousedown"])):v("v-if",!0),t(X)?(d(),w(t(L),{key:2,class:y([t(s).e("icon"),t(s).e("password")]),onClick:Be},{default:B(()=>[(d(),w(W(t(Ne))))]),_:1},8,["class"])):v("v-if",!0),t(P)?(d(),x("span",{key:3,class:y(t(s).e("count"))},[N("span",{class:y(t(s).e("count-inner"))},U(t(Y))+" / "+U(t(h).maxlength),3)],2)):v("v-if",!0),t(M)&&t(ue)&&t(ie)?(d(),w(t(L),{key:4,class:y([t(s).e("icon"),t(s).e("validateIcon"),t(s).is("loading",t(M)==="validating")])},{default:B(()=>[(d(),w(W(t(ue))))]),_:1},8,["class"])):v("v-if",!0)],2)],2)):v("v-if",!0)],2),v(" append slot "),e.$slots.append?(d(),x("div",{key:1,class:y(t(s).be("group","append"))},[K(e.$slots,"append")],2)):v("v-if",!0)],64)):(d(),x(te,{key:1},[v(" textarea "),N("textarea",ae({id:t(ne),ref_key:"textarea",ref:z,class:t(le).e("inner")},t(h),{tabindex:e.tabindex,disabled:t(k),readonly:e.readonly,autocomplete:e.autocomplete,style:t(de),"aria-label":e.label,placeholder:e.placeholder,onCompositionstart:fe,onCompositionupdate:ve,onCompositionend:me,onInput:G,onFocus:he,onBlur:be,onChange:pe,onKeydown:ge}),null,16,$t),t(P)?(d(),x("span",{key:0,style:Je(re.value),class:y(t(s).e("count"))},U(t(Y))+" / "+U(t(h).maxlength),7)):v("v-if",!0)],64))],16,zt)),[[Ye,e.type!=="hidden"]])}});var Tt=vt(Vt,[["__file","/home/runner/work/element-plus/element-plus/packages/components/input/src/input.vue"]]);const Lt=yt(Tt);export{Lt as E,ht as i,xt as u}; diff --git a/src/main/resources/static/assets/index.ac29bb47.js b/src/main/resources/static/assets/index.ac29bb47.js new file mode 100644 index 0000000..7aa7eba --- /dev/null +++ b/src/main/resources/static/assets/index.ac29bb47.js @@ -0,0 +1 @@ +import{_ as le,O as te,L as oe,r as _,ae as se,a as n,b as c,e as o,p as V,h as i,u as e,f as k,y as P,F as w,Q as ne,R as re,J as y,t as S,k as A,S as ue,U as ie,o as me,c as ce,w as I}from"./index.bbf7818f.js";import{x as L,r as de}from"./base.197bc1e5.js";/* empty css *//* empty css */import"./popper.91c84279.js";import{E as pe}from"./link.b3090580.js";import"./scrollbar.7d059005.js";import{E as fe}from"./switch.4caa5287.js";/* empty css */import{E as ye,a as he}from"./select.3d28f8f8.js";import{S as ge}from"./SvgIcon.e3258df0.js";import{Z as b,a as ve}from"./ZFormItem.f4459b46.js";import{f as _e,g as ke,h as Se,i as be,e as Ve}from"./admin-storage.12c0dbf5.js";import{e as N}from"./request.19cbe8c5.js";import{b as O}from"./route-block.9b0645f8.js";import{E as Pe}from"./index.283c220f.js";import{E as we}from"./index.3fed707f.js";import{r as qe}from"./BadgeCheckIcon.fc085fd1.js";import{E as Ae}from"./index.6dd6d04c.js";import{E as Ie}from"./index.9aca9b8e.js";import"./focus-trap.fe4b8179.js";import"./event.3ec63147.js";import"./validator.998eeed0.js";import"./event.776e7e11.js";import"./index.e63d92a7.js";import"./index.eeb08216.js";import"./scroll.4cf9bb37.js";import"./isEqual.a8284c4e.js";import"./debounce.a03a8484.js";import"./index.c92ded65.js";import"./dropdown.e1a9d9ca.js";import"./index.c66de53e.js";let B={aliyun:[{name:"\u534E\u4E1C 1\uFF08\u676D\u5DDE\uFF09",val:"oss-cn-hangzhou.aliyuncs.com"},{name:"\u534E\u4E1C 2\uFF08\u4E0A\u6D77\uFF09",val:"oss-cn-shanghai.aliyuncs.com"},{name:"\u534E\u5317 1\uFF08\u9752\u5C9B\uFF09",val:"oss-cn-qingdao.aliyuncs.com"},{name:"\u534E\u5317 2\uFF08\u5317\u4EAC\uFF09",val:"oss-cn-beijing.aliyuncs.com"},{name:"\u534E\u5317 3\uFF08\u5F20\u5BB6\u53E3\uFF09",val:"oss-cn-zhangjiakou.aliyuncs.com"},{name:"\u534E\u5317 5\uFF08\u547C\u548C\u6D69\u7279\uFF09",val:"oss-cn-huhehaote.aliyuncs.com"},{name:"\u534E\u5317 6\uFF08\u4E4C\u5170\u5BDF\u5E03\uFF09",val:"oss-cn-wulanchabu.aliyuncs.com"},{name:"\u534E\u5357 1\uFF08\u6DF1\u5733\uFF09",val:"oss-cn-shenzhen.aliyuncs.com"},{name:"\u534E\u5357 2\uFF08\u6CB3\u6E90\uFF09",val:"oss-cn-heyuan.aliyuncs.com"},{name:"\u534E\u5357 3\uFF08\u5E7F\u5DDE\uFF09",val:"oss-cn-guangzhou.aliyuncs.com"},{name:"\u897F\u5357 1\uFF08\u6210\u90FD\uFF09",val:"oss-cn-chengdu.aliyuncs.com"},{name:"\u4E2D\u56FD\uFF08\u9999\u6E2F\uFF09",val:"oss-cn-hongkong.aliyuncs.com"},{name:"\u65B0\u52A0\u5761",val:"oss-ap-southeast-1.aliyuncs.com"},{name:"\u65E5\u672C\uFF08\u4E1C\u4EAC\uFF09",val:"oss-ap-northeast-1.aliyuncs.com"},{name:"\u7F8E\u56FD\u897F\u90E8 1 \uFF08\u7845\u8C37\uFF09",val:"oss-us-west-1.aliyuncs.com"},{name:"\u7F8E\u56FD\u4E1C\u90E8 1 \uFF08\u5F17\u5409\u5C3C\u4E9A\uFF09",val:"oss-us-east-1.aliyuncs.com"},{name:"\u4E9A\u592A\u4E1C\u5357 1 \uFF08\u65B0\u52A0\u5761\uFF09",val:"oss-ap-southeast-1.aliyuncs.com"},{name:"\u4E9A\u592A\u4E1C\u5357 2 \uFF08\u6089\u5C3C\uFF09",val:"oss-ap-southeast-2.aliyuncs.com"},{name:"\u4E9A\u592A\u4E1C\u5357 3 \uFF08\u5409\u9686\u5761\uFF09",val:"oss-ap-southeast-3.aliyuncs.com"},{name:"\u4E9A\u592A\u4E1C\u5357 5 \uFF08\u96C5\u52A0\u8FBE\uFF09",val:"oss-ap-southeast-5.aliyuncs.com"},{name:"\u4E9A\u592A\u4E1C\u5317 1 \uFF08\u65E5\u672C\uFF09",val:"oss-ap-northeast-1.aliyuncs.com"},{name:"\u4E9A\u592A\u5357\u90E8 1 \uFF08\u5B5F\u4E70\uFF09",val:"oss-ap-south-1.aliyuncs.com"},{name:"\u6B27\u6D32\u4E2D\u90E8 1 \uFF08\u6CD5\u5170\u514B\u798F\uFF09",val:"oss-eu-central-1.aliyuncs.com"},{name:"\u82F1\u56FD\uFF08\u4F26\u6566\uFF09",val:"oss-eu-west-1.aliyuncs.com"},{name:"\u4E2D\u4E1C\u4E1C\u90E8 1 \uFF08\u8FEA\u62DC\uFF09",val:"oss-me-east-1.aliyuncs.com"}],tencent:[{name:"\u5317\u4EAC\u4E00\u533A",val:"cos.ap-beijing-1.myqcloud.com"},{name:"\u5317\u4EAC",val:"cos.ap-beijing.myqcloud.com"},{name:"\u4E0A\u6D77",val:"cos.ap-shanghai.myqcloud.com"},{name:"\u5E7F\u5DDE",val:"cos.ap-guangzhou.myqcloud.com"},{name:"\u6210\u90FD",val:"cos.ap-chengdu.myqcloud.com"},{name:"\u91CD\u5E86",val:"cos.ap-chongqing.myqcloud.com"},{name:"\u6DF1\u5733\u91D1\u878D",val:"cos.ap-shenzhen-fsi.myqcloud.com"},{name:"\u4E0A\u6D77\u91D1\u878D",val:"cos.ap-shanghai-fsi.myqcloud.com"},{name:"\u5317\u4EAC\u91D1\u878D",val:"cos.ap-beijing-fsi.myqcloud.com"},{name:"\u4E2D\u56FD\u9999\u6E2F",val:"cos.ap-hongkong.myqcloud.com"},{name:"\u65B0\u52A0\u5761",val:"cos.ap-singapore.myqcloud.com"},{name:"\u5B5F\u4E70",val:"cos.ap-mumbai.myqcloud.com"},{name:"\u96C5\u8FBE\u52A0",val:"cos.ap-jakarta.myqcloud.com"},{name:"\u9996\u5C14",val:"cos.ap-seoul.myqcloud.com"},{name:"\u66FC\u8C37",val:"cos.ap-bangkok.myqcloud.com"},{name:"\u4E1C\u4EAC",val:"cos.ap-tokyo.myqcloud.com"},{name:"\u7845\u8C37\uFF08\u7F8E\u897F\uFF09",val:"cos.na-siliconvalley.myqcloud.com"},{name:"\u5F17\u5409\u5C3C\u4E9A\uFF08\u7F8E\u4E1C\uFF09",val:"cos.na-ashburn.myqcloud.com"},{name:"\u591A\u4F26\u591A",val:"cos.na-toronto.myqcloud.com"},{name:"\u6CD5\u5170\u514B\u798F",val:"cos.eu-frankfurt.myqcloud.com"},{name:"\u83AB\u65AF\u79D1",val:"cos.eu-moscow"}],huawei:[{name:"\u975E\u6D32-\u7EA6\u7FF0\u5185\u65AF\u5821",val:"obs.af-south-1.myhuaweicloud.com"},{name:"\u534E\u5317-\u5317\u4EAC\u56DB",val:"obs.cn-north-4.myhuaweicloud.com"},{name:"\u534E\u5317-\u5317\u4EAC\u4E00",val:"obs.cn-north-1.myhuaweicloud.com"},{name:"\u534E\u4E1C-\u4E0A\u6D77\u4E8C",val:"obs.cn-east-2.myhuaweicloud.com"},{name:"\u534E\u4E1C-\u4E0A\u6D77\u4E00",val:"obs.cn-east-3.myhuaweicloud.com"},{name:"\u534E\u5357-\u5E7F\u5DDE",val:"obs.cn-south-1.myhuaweicloud.com"},{name:"\u897F\u5357-\u8D35\u9633\u4E00",val:"obs.cn-southwest-2.myhuaweicloud.com"},{name:"\u4E9A\u592A-\u66FC\u8C37",val:"obs.ap-southeast-2.myhuaweicloud.com"},{name:"\u4E2D\u56FD-\u9999\u6E2F",val:"obs.ap-southeast-1.myhuaweicloud.com"},{name:"\u4E9A\u592A-\u65B0\u52A0\u5761",val:"obs.ap-southeast-3.myhuaweicloud.com"}],qiniu:[{name:"\u534E\u4E1C",val:"s3-cn-east-1.qiniucs.com"},{name:"\u534E\u5317",val:"s3-cn-north-1.qiniucs.com"},{name:"\u534E\u5357",val:"s3-cn-south-1.qiniucs.com"},{name:"\u5317\u7F8E",val:"s3-us-north-1.qiniucs.com"},{name:"\u4E1C\u5357\u4E9A",val:"s3-ap-southeast-1.qiniucs.com"},{name:"\u534E\u4E1C-\u6D59\u6C5F2",val:"s3-cn-east-2.qiniucs.com"}]};const Ee=g=>N({url:"/sharepoint/getSites",method:"post",data:g}),Ue=g=>N({url:"/sharepoint/getSiteLists",method:"post",data:g}),xe=g=>N({url:"/s3/getBuckets",method:"post",data:g});const M=g=>(ue("data-v-a2053ff2"),g=g(),ie(),g),Te={class:"flex justify-items-center"},Le=M(()=>V("span",null,"\u5B58\u50A8\u6E90\u4FE1\u606F",-1)),Ne=y(" \u8BF7\u7EF4\u62A4\u60A8\u7684\u5B58\u50A8\u6E90\u4FE1\u606F\uFF0C\u53EF\u53C2\u8003 "),Ce=M(()=>V("a",{class:"link",target:"_blank",href:"https://docs.zfile.vip/#/example"},"ZFile \u5B58\u50A8\u6E90\u914D\u7F6E\u6587\u6863",-1)),Fe=y(" \u5B58\u50A8\u6E90\u522B\u540D\uFF0C\u7528\u4E8E URL \u4E2D\u5C55\u793A, \u5982 http://ip:port/{\u5B58\u50A8\u6E90\u522B\u540D} "),ze=y(" \u5B58\u50A8\u6E90\u5907\u6CE8\u4FE1\u606F, \u7528\u4E8E\u8F85\u52A9\u7BA1\u7406\u5458\u533A\u5206\u4E0D\u540C\u7684\u5B58\u50A8\u6E90, \u6B64\u5B57\u6BB5\u4EC5\u7BA1\u7406\u5458\u53EF\u89C1 "),Re=y(" \u5982\u4E0D\u542F\u7528\uFF0C\u5219\u5728\u524D\u53F0\u4E0D\u663E\u793A\uFF0C\u4E14\u4E0D\u53EF\u8BBF\u95EE. "),Ke=y(" \u662F\u5426\u542F\u7528\u6587\u4EF6\u4E0A\u4F20\uFF0C\u7F16\u8F91\uFF0C\u5220\u9664\u7B49\u64CD\u4F5C. "),Oe=y(" \u5F00\u542F\u540E\u6240\u6709\u4EBA\u90FD\u53EF\u8FDB\u884C\u6587\u4EF6\u64CD\u4F5C\uFF0C\u53CD\u4E4B\u4EC5\u7BA1\u7406\u5458\u767B\u9646\u540E\u53EF\u64CD\u4F5C "),Be=y(" \u542F\u7528\u540E\uFF0C\u6BCF\u6B21\u5207\u6362\u5230\u6B64\u5B58\u50A8\u6E90\uFF0C\u662F\u5426\u9ED8\u8BA4\u6253\u5F00\u753B\u5ECA\u6A21\u5F0F "),Me={style:{float:"left"}},je={style:{float:"right",color:"#8492a6","font-size":"13px"}},De={style:{float:"left"}},He=y("\u9ED8\u8BA4\u7F51\u7AD9"),Ze=y("\u67E5\u770B\u7F51\u7AD9"),Je={style:{float:"left"}},Qe=y("\u9ED8\u8BA4\u7F51\u7AD9"),$e=y("\u67E5\u770B\u7F51\u7AD9"),Ge={style:{float:"left"}},We={class:"float-right"},Xe={key:7},Ye={key:0},ea=["innerHTML"],aa=y("\u4FDD\u5B58\u8BBE\u7F6E"),j={__name:"index",setup(g){let D=te(),H=oe(),C=null,F=_();const Z=()=>{F.value.validate(p=>{p&&(E.value=!0,_e(a.value).then(()=>{U.value=!0,Ae.confirm("\u4FDD\u5B58\u6210\u529F, \u662F\u5426\u8FD4\u56DE\u5B58\u50A8\u6E90\u5217\u8868\uFF1F","\u63D0\u793A",{confirmButtonText:"\u786E\u5B9A",cancelButtonText:"\u53D6\u6D88",type:"success",callback:s=>{s==="confirm"&&D.push("/admin/storage-list")}})}).finally(()=>{E.value=!1}))})};let J=()=>{let p=_({orderNum:null,name:"",type:"",remark:"",alias:"",defaultSwitchToImgMode:!1,enable:!0,enableFileOperator:!1,enableFileAnnoOperator:!1,searchEnable:!1,searchIgnoreCase:!1,searchMode:"SEARCH_CACHE",enableCache:!1,autoRefreshCache:!1,storageSourceAllParam:{endPoint:"",pathStyle:"",isPrivate:!1,accessKey:null,secretKey:null,bucketName:null,host:null,port:null,filePath:null,accessToken:null,refreshToken:null,secretId:null,username:null,password:null,basePath:"",domain:"",listId:"",siteId:"",proxyDomain:"",downloadLinkType:"",clientId:"",clientSecret:"",region:"",autoConfigCors:!1}});const s=r=>{Ve(r).then(u=>{u.data.type=u.data.type.key,p.value=u.data,C=u.data.key})};let f=_(!1),d=_([]);me(()=>{ke().then(u=>{d.value=u.data});let r=H.params.storageId;r&&(f.value=!0,s(r))});let m=_(!1),v=_({name:[{required:!0,message:"\u8BF7\u8F93\u5165\u5B58\u50A8\u6E90\u540D\u79F0"}],key:[{validator:(r,u,h)=>{if((u==null||u==="")&&h(),["admin","file","login","install"].includes(u)){h(new Error("\u4E0D\u53EF\u5360\u7528\u7CFB\u7EDF\u7EA7\u540D\u79F0\uFF0C\u8BF7\u4FEE\u6539\u3002"));return}if(!/^[\w\-]+$/.test(u)){h(new Error("\u53EA\u5141\u8BB8\u4F7F\u7528\u5B57\u6BCD\u3001\u6570\u5B57\u3001\u4E0B\u5212\u7EBF\u3001\u6A2A\u6760"));return}if(C===u){h();return}Se({storageKey:u}).then(T=>{T.data?h(new Error("\u8BE5\u5B58\u50A8\u6E90\u522B\u540D\u5DF2\u5B58\u5728\uFF0C\u8BF7\u4FEE\u6539\u3002")):h()})}}],type:[{required:!0,message:"\u5B58\u50A8\u7B56\u7565\u4E0D\u80FD\u4E3A\u7A7A"}],"storageSourceAllParam.domain":[{type:"url",message:"\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u57DF\u540D\uFF0C\u9700\u4EE5 http:// \u6216 https:// \u5F00\u5934"}]});return{storageItem:p,supportStorageType:d,loading:m,rules:v,isEditMode:f}},{storageItem:a,supportStorageType:Q,loading:E,rules:$,isEditMode:U}=J(),G=()=>{let p=_([]),s=ce(()=>({accessKey:a.value.storageSourceAllParam.accessKey,secretKey:a.value.storageSourceAllParam.secretKey,endPoint:a.value.storageSourceAllParam.endPoint,region:a.value.storageSourceAllParam.region}));I(()=>s.value,d=>{d.accessKey&&d.secretKey&&d.endPoint&&f(d)});const f=d=>{xe(d).then(m=>{p.value=m.data})};return{bucketList:p}},{bucketList:z}=G(),W=()=>{let p=_([]),s=_([]);const f=r=>r.indexOf("sharepoint")!==-1,d=r=>r==="sharepoint"?"Standard":"China";I(()=>a.value.storageSourceAllParam.accessToken,r=>{r&&m()});const m=()=>{let r=a.value.type;if(f(r)){let u={type:d(r),accessToken:a.value.storageSourceAllParam.accessToken};Ee(u).then(h=>{p.value=h.data})}};I(()=>a.value.storageSourceAllParam.siteId,r=>{r&&v()});const v=()=>{let r=a.value.type;if(f(r)){let u={type:d(r),accessToken:a.value.storageSourceAllParam.accessToken,siteId:a.value.storageSourceAllParam.siteId};Ue(u).then(h=>{s.value=h.data})}};return{sharepointSites:p,sharepointSiteLists:s,isSharePoint:f}},{sharepointSites:X,sharepointSiteLists:Y,isSharePoint:R}=W(),ee=()=>{I(()=>a.value.type,f=>{s(f)});let p=_([]);const s=f=>{!f||be({storageType:f}).then(d=>{p.value=d.data;for(let m of p.value)!U.value&&m.defaultValue&&(m.defaultValue==="true"?m.defaultValue=!0:m.defaultValue==="false"&&(m.defaultValue=!1),a.value.storageSourceAllParam[m.key]=m.defaultValue)})};return{storageSourceParamList:p}},{storageSourceParamList:ae}=ee();return(p,s)=>{const f=ge,d=se("router-link"),m=Ie,v=ye,r=he,u=fe,h=Pe,q=pe,x=we,T=de;return n(),c(ve,{model:e(a),class:"zfile-storage-edit",rules:e($),ref_key:"storageEditForm",ref:F},{"form-title":o(()=>[V("div",Te,[i(d,{to:"/admin/storage-list"},{default:o(()=>[i(f,{class:"inline mr-2 cursor-pointer",name:"file-type-back"})]),_:1}),Le])]),"form-sub-title":o(()=>[Ne,Ce]),footer:o(()=>[i(T,{loading:e(E),type:"primary",size:"default",icon:e(qe),onClick:Z},{default:o(()=>[aa]),_:1},8,["loading","icon"])]),default:o(()=>[i(b,{label:"\u5B58\u50A8\u6E90\u540D\u79F0",prop:"name"},{default:o(()=>[i(m,{modelValue:e(a).name,"onUpdate:modelValue":s[0]||(s[0]=l=>e(a).name=l)},null,8,["modelValue"])]),_:1}),i(b,{label:"\u5B58\u50A8\u6E90\u522B\u540D",prop:"key"},{tips:o(()=>[Fe]),default:o(()=>[i(m,{modelValue:e(a).key,"onUpdate:modelValue":s[1]||(s[1]=l=>e(a).key=l)},null,8,["modelValue"])]),_:1}),i(b,{label:"\u5B58\u50A8\u6E90\u5907\u6CE8"},{tips:o(()=>[ze]),default:o(()=>[i(m,{type:"textarea",rows:3,placeholder:"\u8BF7\u8F93\u5165\u5B58\u50A8\u6E90\u5907\u6CE8",modelValue:e(a).remark,"onUpdate:modelValue":s[2]||(s[2]=l=>e(a).remark=l)},null,8,["modelValue"])]),_:1}),i(b,{label:"\u5B58\u50A8\u7B56\u7565",prop:"type"},{default:o(()=>[i(r,{disabled:e(U),filterable:"",modelValue:e(a).type,"onUpdate:modelValue":s[3]||(s[3]=l=>e(a).type=l),placeholder:"\u8BF7\u9009\u62E9\u5B58\u50A8\u7B56\u7565"},{default:o(()=>[(n(!0),k(w,null,P(e(Q),l=>(n(),c(v,{key:l.key,label:l.description,value:l.key},null,8,["label","value"]))),128))]),_:1},8,["disabled","modelValue"])]),_:1}),i(b,{label:"\u662F\u5426\u542F\u7528"},{tips:o(()=>[Re]),default:o(()=>[i(u,{modelValue:e(a).enable,"onUpdate:modelValue":s[4]||(s[4]=l=>e(a).enable=l)},null,8,["modelValue"])]),_:1}),i(b,{label:"\u542F\u7528\u6587\u4EF6\u64CD\u4F5C"},{tips:o(()=>[Ke]),default:o(()=>[i(u,{modelValue:e(a).enableFileOperator,"onUpdate:modelValue":s[5]||(s[5]=l=>e(a).enableFileOperator=l)},null,8,["modelValue"])]),_:1}),ne(i(b,{label:"\u5141\u8BB8\u533F\u540D\u6587\u4EF6\u64CD\u4F5C"},{tips:o(()=>[Oe]),default:o(()=>[i(u,{modelValue:e(a).enableFileAnnoOperator,"onUpdate:modelValue":s[6]||(s[6]=l=>e(a).enableFileAnnoOperator=l)},null,8,["modelValue"])]),_:1},512),[[re,e(a).enableFileOperator]]),i(b,{label:"\u662F\u5426\u9ED8\u8BA4\u6253\u5F00\u753B\u5ECA\u6A21\u5F0F"},{tips:o(()=>[Be]),default:o(()=>[i(u,{modelValue:e(a).defaultSwitchToImgMode,"onUpdate:modelValue":s[7]||(s[7]=l=>e(a).defaultSwitchToImgMode=l)},null,8,["modelValue"])]),_:1}),(n(!0),k(w,null,P(e(ae),l=>(n(),c(b,{label:l.name,key:l.name,required:l.required,prop:"storageSourceAllParam."+l.key},{tips:o(()=>[l.link?(n(),k("div",Ye,[i(q,{target:"_blank",icon:e(L),href:l.link},{default:o(()=>[y(S(l.linkName),1)]),_:2},1032,["icon","href"])])):A("",!0),l.description?(n(),k("div",{key:1,innerHTML:l.description},null,8,ea)):A("",!0)]),default:o(()=>{var K;return[l.key==="endPoint"&&e(B).hasOwnProperty(e(a).type)?(n(),c(r,{key:0,filterable:"","allow-create":"","default-first-option":"",style:{width:"100%"},modelValue:e(a).storageSourceAllParam.endPoint,"onUpdate:modelValue":s[8]||(s[8]=t=>e(a).storageSourceAllParam.endPoint=t)},{default:o(()=>[(n(!0),k(w,null,P(e(B)[e(a).type],t=>(n(),c(v,{label:t.name,value:t.val,key:t.name},{default:o(()=>[V("span",Me,S(t.name),1),V("span",je,S(t.val),1)]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue"])):l.key==="siteId"&&e(R)(e(a).type)?(n(),c(r,{key:1,filterable:"",placeholder:"\u8BF7\u9009\u62E9\u7AD9\u70B9\u5217\u8868",modelValue:e(a).storageSourceAllParam.siteId,"onUpdate:modelValue":s[9]||(s[9]=t=>e(a).storageSourceAllParam.siteId=t),class:"input-with-select"},{default:o(()=>[(n(!0),k(w,null,P(e(X),t=>(n(),c(v,{key:t.id,label:t.displayName,value:t.id},{default:o(()=>[V("span",De,[y(S(t.displayName)+" ",1),t.displayName==="Communication site"?(n(),c(h,{key:0,type:"success"},{default:o(()=>[He]),_:1})):A("",!0)]),i(x,{placement:"right",width:"400",trigger:"hover",content:t.webUrl},{reference:o(()=>[i(q,{target:"_blank",icon:e(L),href:t.webUrl,underline:!1,class:"float-right",type:"primary"},{default:o(()=>[Ze]),_:2},1032,["icon","href"])]),_:2},1032,["content"])]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue"])):l.key==="listId"&&e(R)(e(a).type)?(n(),c(r,{key:2,filterable:"",placeholder:"\u8BF7\u9009\u62E9\u7F51\u7AD9\u5B50\u76EE\u5F55",modelValue:e(a).storageSourceAllParam.listId,"onUpdate:modelValue":s[10]||(s[10]=t=>e(a).storageSourceAllParam.listId=t),class:"input-with-select"},{default:o(()=>[(n(!0),k(w,null,P(e(Y),t=>(n(),c(v,{key:t.id,label:t.displayName,value:t.id},{default:o(()=>[V("span",Je,[y(S(t.displayName)+" ",1),t.displayName==="Communication site"?(n(),c(h,{key:0,type:"success"},{default:o(()=>[Qe]),_:1})):A("",!0)]),i(x,{placement:"right",width:"400",trigger:"hover",content:t.webUrl},{reference:o(()=>[i(q,{target:"_blank",icon:e(L),href:t.webUrl,underline:!1,class:"float-right",type:"primary"},{default:o(()=>[$e]),_:2},1032,["icon","href"])]),_:2},1032,["content"])]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue"])):l.key==="bucketName"&&((K=e(z))==null?void 0:K.length)>0?(n(),c(r,{key:3,placeholder:"\u8BF7\u9009\u62E9\u5B58\u50A8\u5668\u5217\u8868",modelValue:e(a).storageSourceAllParam.bucketName,"onUpdate:modelValue":s[11]||(s[11]=t=>e(a).storageSourceAllParam.bucketName=t),class:"input-with-select"},{default:o(()=>[(n(!0),k(w,null,P(e(z),t=>(n(),c(v,{key:t.name,label:t.name,value:t.name},{default:o(()=>[V("span",Ge,S(t.name),1),V("span",We,S(t.date),1)]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue"])):l.type==="select"?(n(),c(r,{key:4,filterable:"","default-first-option":"",modelValue:e(a).storageSourceAllParam[l.key],"onUpdate:modelValue":t=>e(a).storageSourceAllParam[l.key]=t},{default:o(()=>[(n(!0),k(w,null,P(l.options,t=>(n(),c(v,{label:t.label,value:t.value},null,8,["label","value"]))),256))]),_:2},1032,["modelValue","onUpdate:modelValue"])):l.type==="switch"?(n(),c(u,{key:5,modelValue:e(a).storageSourceAllParam[l.key],"onUpdate:modelValue":t=>e(a).storageSourceAllParam[l.key]=t},null,8,["modelValue","onUpdate:modelValue"])):l.type==="input"?(n(),c(m,{key:6,modelValue:e(a).storageSourceAllParam[l.key],"onUpdate:modelValue":t=>e(a).storageSourceAllParam[l.key]=t},null,8,["modelValue","onUpdate:modelValue"])):(n(),k("div",Xe," \u670D\u52A1\u7AEF\u914D\u7F6E\u9519\u8BEF, \u5B57\u6BB5 "+S(l.key)+" \u7C7B\u578B\u4E3A "+S(l.type)+", \u4E0D\u652F\u6301\u6B64\u7C7B\u578B\u7684\u6E32\u67D3. ",1))]}),_:2},1032,["label","required","prop"]))),128))]),_:1},8,["model","rules"])}}};typeof O=="function"&&O(j);var Na=le(j,[["__scopeId","data-v-a2053ff2"]]);export{Na as default}; diff --git a/src/main/resources/static/assets/index.b3614aa3.css b/src/main/resources/static/assets/index.b3614aa3.css new file mode 100644 index 0000000..b7b846b --- /dev/null +++ b/src/main/resources/static/assets/index.b3614aa3.css @@ -0,0 +1 @@ +.el-drive-form-col[data-v-a2053ff2]{padding-left:0!important}.zfile-site-id-input-site-type-select[data-v-a2053ff2]{width:100px}.zfile-info-tooltip[data-v-a2053ff2]{line-height:32px}.zfile-storage-edit[data-v-a2053ff2] .z-form-item-input>.el-select{width:100%} diff --git a/src/main/resources/static/assets/index.b549c954.css b/src/main/resources/static/assets/index.b549c954.css new file mode 100644 index 0000000..7a9e742 --- /dev/null +++ b/src/main/resources/static/assets/index.b549c954.css @@ -0,0 +1,15 @@ +@charset "UTF-8";/*! +* animate.css - https://animate.style/ +* Version - 4.1.1 +* Licensed under the MIT license - http://opensource.org/licenses/MIT +* +* Copyright (c) 2020 Animate.css +*/:root{--animate-duration:1s;--animate-delay:1s;--animate-repeat:1}.animate__animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-duration:var(--animate-duration);animation-duration:var(--animate-duration);-webkit-animation-fill-mode:both;animation-fill-mode:both}.animate__animated.animate__infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animate__animated.animate__repeat-1{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-iteration-count:var(--animate-repeat);animation-iteration-count:var(--animate-repeat)}.animate__animated.animate__repeat-2{-webkit-animation-iteration-count:2;animation-iteration-count:2;-webkit-animation-iteration-count:calc(var(--animate-repeat)*2);animation-iteration-count:calc(var(--animate-repeat)*2)}.animate__animated.animate__repeat-3{-webkit-animation-iteration-count:3;animation-iteration-count:3;-webkit-animation-iteration-count:calc(var(--animate-repeat)*3);animation-iteration-count:calc(var(--animate-repeat)*3)}.animate__animated.animate__delay-1s{-webkit-animation-delay:1s;animation-delay:1s;-webkit-animation-delay:var(--animate-delay);animation-delay:var(--animate-delay)}.animate__animated.animate__delay-2s{-webkit-animation-delay:2s;animation-delay:2s;-webkit-animation-delay:calc(var(--animate-delay)*2);animation-delay:calc(var(--animate-delay)*2)}.animate__animated.animate__delay-3s{-webkit-animation-delay:3s;animation-delay:3s;-webkit-animation-delay:calc(var(--animate-delay)*3);animation-delay:calc(var(--animate-delay)*3)}.animate__animated.animate__delay-4s{-webkit-animation-delay:4s;animation-delay:4s;-webkit-animation-delay:calc(var(--animate-delay)*4);animation-delay:calc(var(--animate-delay)*4)}.animate__animated.animate__delay-5s{-webkit-animation-delay:5s;animation-delay:5s;-webkit-animation-delay:calc(var(--animate-delay)*5);animation-delay:calc(var(--animate-delay)*5)}.animate__animated.animate__faster{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-duration:calc(var(--animate-duration)/2);animation-duration:calc(var(--animate-duration)/2)}.animate__animated.animate__fast{-webkit-animation-duration:.8s;animation-duration:.8s;-webkit-animation-duration:calc(var(--animate-duration)*.8);animation-duration:calc(var(--animate-duration)*.8)}.animate__animated.animate__slow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-duration:calc(var(--animate-duration)*2);animation-duration:calc(var(--animate-duration)*2)}.animate__animated.animate__slower{-webkit-animation-duration:3s;animation-duration:3s;-webkit-animation-duration:calc(var(--animate-duration)*3);animation-duration:calc(var(--animate-duration)*3)}@media (prefers-reduced-motion:reduce),print{.animate__animated{-webkit-animation-duration:1ms!important;animation-duration:1ms!important;-webkit-transition-duration:1ms!important;transition-duration:1ms!important;-webkit-animation-iteration-count:1!important;animation-iteration-count:1!important}.animate__animated[class*=Out]{opacity:0}}@-webkit-keyframes bounce{0%,20%,53%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0) scaleY(1.1);transform:translate3d(0,-30px,0) scaleY(1.1)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0) scaleY(1.05);transform:translate3d(0,-15px,0) scaleY(1.05)}80%{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0) scaleY(.95);transform:translateZ(0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-4px,0) scaleY(1.02);transform:translate3d(0,-4px,0) scaleY(1.02)}}@keyframes bounce{0%,20%,53%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0) scaleY(1.1);transform:translate3d(0,-30px,0) scaleY(1.1)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0) scaleY(1.05);transform:translate3d(0,-15px,0) scaleY(1.05)}80%{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0) scaleY(.95);transform:translateZ(0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-4px,0) scaleY(1.02);transform:translate3d(0,-4px,0) scaleY(1.02)}}.animate__bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}.animate__flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__pulse{-webkit-animation-name:pulse;animation-name:pulse;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}@-webkit-keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shakeX{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes shakeX{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.animate__shakeX{-webkit-animation-name:shakeX;animation-name:shakeX}@-webkit-keyframes shakeY{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}20%,40%,60%,80%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}}@keyframes shakeY{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}20%,40%,60%,80%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}}.animate__shakeY{-webkit-animation-name:shakeY;animation-name:shakeY}@-webkit-keyframes headShake{0%{-webkit-transform:translateX(0);transform:translate(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translate(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translate(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translate(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translate(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translate(0)}}@keyframes headShake{0%{-webkit-transform:translateX(0);transform:translate(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translate(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translate(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translate(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translate(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translate(0)}}.animate__headShake{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-name:headShake;animation-name:headShake}@-webkit-keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0)}}@keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0)}}.animate__swing{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skew(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skew(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skew(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skew(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skew(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skew(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skew(-.1953125deg) skewY(-.1953125deg)}}@keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skew(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skew(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skew(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skew(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skew(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skew(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skew(-.1953125deg) skewY(-.1953125deg)}}.animate__jello{-webkit-animation-name:jello;animation-name:jello;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes heartBeat{0%{-webkit-transform:scale(1);transform:scale(1)}14%{-webkit-transform:scale(1.3);transform:scale(1.3)}28%{-webkit-transform:scale(1);transform:scale(1)}42%{-webkit-transform:scale(1.3);transform:scale(1.3)}70%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes heartBeat{0%{-webkit-transform:scale(1);transform:scale(1)}14%{-webkit-transform:scale(1.3);transform:scale(1.3)}28%{-webkit-transform:scale(1);transform:scale(1)}42%{-webkit-transform:scale(1.3);transform:scale(1.3)}70%{-webkit-transform:scale(1);transform:scale(1)}}.animate__heartBeat{-webkit-animation-name:heartBeat;animation-name:heartBeat;-webkit-animation-duration:1.3s;animation-duration:1.3s;-webkit-animation-duration:calc(var(--animate-duration)*1.3);animation-duration:calc(var(--animate-duration)*1.3);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}@-webkit-keyframes backInDown{0%{-webkit-transform:translateY(-1200px) scale(.7);transform:translateY(-1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInDown{0%{-webkit-transform:translateY(-1200px) scale(.7);transform:translateY(-1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInDown{-webkit-animation-name:backInDown;animation-name:backInDown}@-webkit-keyframes backInLeft{0%{-webkit-transform:translateX(-2000px) scale(.7);transform:translate(-2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translate(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInLeft{0%{-webkit-transform:translateX(-2000px) scale(.7);transform:translate(-2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translate(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInLeft{-webkit-animation-name:backInLeft;animation-name:backInLeft}@-webkit-keyframes backInRight{0%{-webkit-transform:translateX(2000px) scale(.7);transform:translate(2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translate(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInRight{0%{-webkit-transform:translateX(2000px) scale(.7);transform:translate(2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translate(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInRight{-webkit-animation-name:backInRight;animation-name:backInRight}@-webkit-keyframes backInUp{0%{-webkit-transform:translateY(1200px) scale(.7);transform:translateY(1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInUp{0%{-webkit-transform:translateY(1200px) scale(.7);transform:translateY(1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInUp{-webkit-animation-name:backInUp;animation-name:backInUp}@-webkit-keyframes backOutDown{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(700px) scale(.7);transform:translateY(700px) scale(.7);opacity:.7}}@keyframes backOutDown{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(700px) scale(.7);transform:translateY(700px) scale(.7);opacity:.7}}.animate__backOutDown{-webkit-animation-name:backOutDown;animation-name:backOutDown}@-webkit-keyframes backOutLeft{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0) scale(.7);transform:translate(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(-2000px) scale(.7);transform:translate(-2000px) scale(.7);opacity:.7}}@keyframes backOutLeft{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0) scale(.7);transform:translate(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(-2000px) scale(.7);transform:translate(-2000px) scale(.7);opacity:.7}}.animate__backOutLeft{-webkit-animation-name:backOutLeft;animation-name:backOutLeft}@-webkit-keyframes backOutRight{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0) scale(.7);transform:translate(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(2000px) scale(.7);transform:translate(2000px) scale(.7);opacity:.7}}@keyframes backOutRight{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0) scale(.7);transform:translate(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(2000px) scale(.7);transform:translate(2000px) scale(.7);opacity:.7}}.animate__backOutRight{-webkit-animation-name:backOutRight;animation-name:backOutRight}@-webkit-keyframes backOutUp{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(-700px) scale(.7);transform:translateY(-700px) scale(.7);opacity:.7}}@keyframes backOutUp{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(-700px) scale(.7);transform:translateY(-700px) scale(.7);opacity:.7}}.animate__backOutUp{-webkit-animation-name:backOutUp;animation-name:backOutUp}@-webkit-keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__bounceIn{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0) scaleY(3);transform:translate3d(0,-3000px,0) scaleY(3)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0) scaleY(.9);transform:translate3d(0,25px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,-10px,0) scaleY(.95);transform:translate3d(0,-10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,5px,0) scaleY(.985);transform:translate3d(0,5px,0) scaleY(.985)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0) scaleY(3);transform:translate3d(0,-3000px,0) scaleY(3)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0) scaleY(.9);transform:translate3d(0,25px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,-10px,0) scaleY(.95);transform:translate3d(0,-10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,5px,0) scaleY(.985);transform:translate3d(0,5px,0) scaleY(.985)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0) scaleX(3);transform:translate3d(-3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0) scaleX(1);transform:translate3d(25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(-10px,0,0) scaleX(.98);transform:translate3d(-10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(5px,0,0) scaleX(.995);transform:translate3d(5px,0,0) scaleX(.995)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0) scaleX(3);transform:translate3d(-3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0) scaleX(1);transform:translate3d(25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(-10px,0,0) scaleX(.98);transform:translate3d(-10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(5px,0,0) scaleX(.995);transform:translate3d(5px,0,0) scaleX(.995)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0) scaleX(3);transform:translate3d(3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0) scaleX(1);transform:translate3d(-25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(10px,0,0) scaleX(.98);transform:translate3d(10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(-5px,0,0) scaleX(.995);transform:translate3d(-5px,0,0) scaleX(.995)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0) scaleX(3);transform:translate3d(3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0) scaleX(1);transform:translate3d(-25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(10px,0,0) scaleX(.98);transform:translate3d(10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(-5px,0,0) scaleX(.995);transform:translate3d(-5px,0,0) scaleX(.995)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0) scaleY(5);transform:translate3d(0,3000px,0) scaleY(5)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,10px,0) scaleY(.95);transform:translate3d(0,10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-5px,0) scaleY(.985);transform:translate3d(0,-5px,0) scaleY(.985)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0) scaleY(5);transform:translate3d(0,3000px,0) scaleY(5)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,10px,0) scaleY(.95);transform:translate3d(0,10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-5px,0) scaleY(.985);transform:translate3d(0,-5px,0) scaleY(.985)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}.animate__bounceOut{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);-webkit-animation-name:bounceOut;animation-name:bounceOut}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0) scaleY(.985);transform:translate3d(0,10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0) scaleY(3);transform:translate3d(0,2000px,0) scaleY(3)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0) scaleY(.985);transform:translate3d(0,10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0) scaleY(3);transform:translate3d(0,2000px,0) scaleY(3)}}.animate__bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0) scaleX(.9);transform:translate3d(20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0) scaleX(2);transform:translate3d(-2000px,0,0) scaleX(2)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0) scaleX(.9);transform:translate3d(20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0) scaleX(2);transform:translate3d(-2000px,0,0) scaleX(2)}}.animate__bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0) scaleX(.9);transform:translate3d(-20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0) scaleX(2);transform:translate3d(2000px,0,0) scaleX(2)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0) scaleX(.9);transform:translate3d(-20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0) scaleX(2);transform:translate3d(2000px,0,0) scaleX(2)}}.animate__bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0) scaleY(.985);transform:translate3d(0,-10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0) scaleY(.9);transform:translate3d(0,20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0) scaleY(3);transform:translate3d(0,-2000px,0) scaleY(3)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0) scaleY(.985);transform:translate3d(0,-10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0) scaleY(.9);transform:translate3d(0,20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0) scaleY(3);transform:translate3d(0,-2000px,0) scaleY(3)}}.animate__bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate__fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeInTopLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInTopLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInTopLeft{-webkit-animation-name:fadeInTopLeft;animation-name:fadeInTopLeft}@-webkit-keyframes fadeInTopRight{0%{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInTopRight{0%{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInTopRight{-webkit-animation-name:fadeInTopRight;animation-name:fadeInTopRight}@-webkit-keyframes fadeInBottomLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInBottomLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInBottomLeft{-webkit-animation-name:fadeInBottomLeft;animation-name:fadeInBottomLeft}@-webkit-keyframes fadeInBottomRight{0%{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInBottomRight{0%{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInBottomRight{-webkit-animation-name:fadeInBottomRight;animation-name:fadeInBottomRight}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.animate__fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.animate__fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.animate__fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.animate__fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.animate__fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.animate__fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.animate__fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.animate__fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.animate__fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes fadeOutTopLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}}@keyframes fadeOutTopLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}}.animate__fadeOutTopLeft{-webkit-animation-name:fadeOutTopLeft;animation-name:fadeOutTopLeft}@-webkit-keyframes fadeOutTopRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}}@keyframes fadeOutTopRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}}.animate__fadeOutTopRight{-webkit-animation-name:fadeOutTopRight;animation-name:fadeOutTopRight}@-webkit-keyframes fadeOutBottomRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}}@keyframes fadeOutBottomRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}}.animate__fadeOutBottomRight{-webkit-animation-name:fadeOutBottomRight;animation-name:fadeOutBottomRight}@-webkit-keyframes fadeOutBottomLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}}@keyframes fadeOutBottomLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}}.animate__fadeOutBottomLeft{-webkit-animation-name:fadeOutBottomLeft;animation-name:fadeOutBottomLeft}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animate__animated.animate__flip{-webkit-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.animate__flipInX{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.animate__flipInY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}.animate__flipOutX{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}.animate__flipOutY{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY}@-webkit-keyframes lightSpeedInRight{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skew(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skew(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skew(-5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes lightSpeedInRight{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skew(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skew(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skew(-5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__lightSpeedInRight{-webkit-animation-name:lightSpeedInRight;animation-name:lightSpeedInRight;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedInLeft{0%{-webkit-transform:translate3d(-100%,0,0) skewX(30deg);transform:translate3d(-100%,0,0) skew(30deg);opacity:0}60%{-webkit-transform:skewX(-20deg);transform:skew(-20deg);opacity:1}80%{-webkit-transform:skewX(5deg);transform:skew(5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes lightSpeedInLeft{0%{-webkit-transform:translate3d(-100%,0,0) skewX(30deg);transform:translate3d(-100%,0,0) skew(30deg);opacity:0}60%{-webkit-transform:skewX(-20deg);transform:skew(-20deg);opacity:1}80%{-webkit-transform:skewX(5deg);transform:skew(5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__lightSpeedInLeft{-webkit-animation-name:lightSpeedInLeft;animation-name:lightSpeedInLeft;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOutRight{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skew(30deg);opacity:0}}@keyframes lightSpeedOutRight{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skew(30deg);opacity:0}}.animate__lightSpeedOutRight{-webkit-animation-name:lightSpeedOutRight;animation-name:lightSpeedOutRight;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes lightSpeedOutLeft{0%{opacity:1}to{-webkit-transform:translate3d(-100%,0,0) skewX(-30deg);transform:translate3d(-100%,0,0) skew(-30deg);opacity:0}}@keyframes lightSpeedOutLeft{0%{opacity:1}to{-webkit-transform:translate3d(-100%,0,0) skewX(-30deg);transform:translate3d(-100%,0,0) skew(-30deg);opacity:0}}.animate__lightSpeedOutLeft{-webkit-animation-name:lightSpeedOutLeft;animation-name:lightSpeedOutLeft;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateIn{0%{-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInDownLeft{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInDownRight{0%{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInUpLeft{0%{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInUpRight{0%{-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes rotateOut{0%{opacity:1}to{-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}@keyframes rotateOut{0%{opacity:1}to{-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}.animate__rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes rotateOutDownLeft{0%{opacity:1}to{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}@keyframes rotateOutDownLeft{0%{opacity:1}to{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}.animate__rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateOutDownRight{0%{opacity:1}to{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutDownRight{0%{opacity:1}to{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.animate__rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes rotateOutUpLeft{0%{opacity:1}to{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutUpLeft{0%{opacity:1}to{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.animate__rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateOutUpRight{0%{opacity:1}to{-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}@keyframes rotateOutUpRight{0%{opacity:1}to{-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}.animate__rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes hinge{0%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}@keyframes hinge{0%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}.animate__hinge{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-duration:calc(var(--animate-duration)*2);animation-duration:calc(var(--animate-duration)*2);-webkit-animation-name:hinge;animation-name:hinge;-webkit-transform-origin:top left;transform-origin:top left}@-webkit-keyframes jackInTheBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes jackInTheBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.animate__jackInTheBox{-webkit-animation-name:jackInTheBox;animation-name:jackInTheBox}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}@keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}.animate__rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.animate__zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}.animate__zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0)}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0)}}.animate__zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft;-webkit-transform-origin:left center;transform-origin:left center}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0)}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0)}}.animate__zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight;-webkit-transform-origin:right center;transform-origin:right center}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.animate__slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.animate__slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.animate__slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.animate__slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp}:root{--el-color-primary-rgb:64,158,255;--el-color-success-rgb:103,194,58;--el-color-warning-rgb:230,162,60;--el-color-danger-rgb:245,108,108;--el-color-error-rgb:245,108,108;--el-color-info-rgb:144,147,153;--el-font-size-extra-large:20px;--el-font-size-large:18px;--el-font-size-medium:16px;--el-font-size-base:14px;--el-font-size-small:13px;--el-font-size-extra-small:12px;--el-font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","\5fae\8f6f\96c5\9ed1",Arial,sans-serif;--el-font-weight-primary:500;--el-font-line-height-primary:24px;--el-index-normal:1;--el-index-top:1000;--el-index-popper:2000;--el-border-radius-base:4px;--el-border-radius-small:2px;--el-border-radius-round:20px;--el-border-radius-circle:100%;--el-transition-duration:.3s;--el-transition-duration-fast:.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(.645, .045, .355, 1);--el-transition-function-fast-bezier:cubic-bezier(.23, 1, .32, 1);--el-transition-all:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade:opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade:transform var(--el-transition-duration) var(--el-transition-function-fast-bezier),opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear:opacity var(--el-transition-duration-fast) linear;--el-transition-border:border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow:box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color:color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large:40px;--el-component-size:32px;--el-component-size-small:24px;color-scheme:light;--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary:#409eff;--el-color-primary-light-3:#79bbff;--el-color-primary-light-5:#a0cfff;--el-color-primary-light-7:#c6e2ff;--el-color-primary-light-8:#d9ecff;--el-color-primary-light-9:#ecf5ff;--el-color-primary-dark-2:#337ecc;--el-color-success:#67c23a;--el-color-success-light-3:#95d475;--el-color-success-light-5:#b3e19d;--el-color-success-light-7:#d1edc4;--el-color-success-light-8:#e1f3d8;--el-color-success-light-9:#f0f9eb;--el-color-success-dark-2:#529b2e;--el-color-warning:#e6a23c;--el-color-warning-light-3:#eebe77;--el-color-warning-light-5:#f3d19e;--el-color-warning-light-7:#f8e3c5;--el-color-warning-light-8:#faecd8;--el-color-warning-light-9:#fdf6ec;--el-color-warning-dark-2:#b88230;--el-color-danger:#f56c6c;--el-color-danger-light-3:#f89898;--el-color-danger-light-5:#fab6b6;--el-color-danger-light-7:#fcd3d3;--el-color-danger-light-8:#fde2e2;--el-color-danger-light-9:#fef0f0;--el-color-danger-dark-2:#c45656;--el-color-error:#f56c6c;--el-color-error-light-3:#f89898;--el-color-error-light-5:#fab6b6;--el-color-error-light-7:#fcd3d3;--el-color-error-light-8:#fde2e2;--el-color-error-light-9:#fef0f0;--el-color-error-dark-2:#c45656;--el-color-info:#909399;--el-color-info-light-3:#b1b3b8;--el-color-info-light-5:#c8c9cc;--el-color-info-light-7:#dedfe0;--el-color-info-light-8:#e9e9eb;--el-color-info-light-9:#f4f4f5;--el-color-info-dark-2:#73767a;--el-bg-color:#ffffff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#ffffff;--el-text-color-primary:#303133;--el-text-color-regular:#606266;--el-text-color-secondary:#909399;--el-text-color-placeholder:#a8abb2;--el-text-color-disabled:#c0c4cc;--el-border-color:#dcdfe6;--el-border-color-light:#e4e7ed;--el-border-color-lighter:#ebeef5;--el-border-color-extra-light:#f2f6fc;--el-border-color-dark:#d4d7de;--el-border-color-darker:#cdd0d6;--el-fill-color:#f0f2f5;--el-fill-color-light:#f5f7fa;--el-fill-color-lighter:#fafafa;--el-fill-color-extra-light:#fafcff;--el-fill-color-dark:#ebedf0;--el-fill-color-darker:#e6e8eb;--el-fill-color-blank:#ffffff;--el-box-shadow:0px 12px 32px 4px rgba(0, 0, 0, .04),0px 8px 20px rgba(0, 0, 0, .08);--el-box-shadow-light:0px 0px 12px rgba(0, 0, 0, .12);--el-box-shadow-lighter:0px 0px 6px rgba(0, 0, 0, .12);--el-box-shadow-dark:0px 16px 48px 16px rgba(0, 0, 0, .08),0px 12px 32px rgba(0, 0, 0, .12),0px 8px 16px -8px rgba(0, 0, 0, .16);--el-disabled-bg-color:var(--el-fill-color-light);--el-disabled-text-color:var(--el-text-color-placeholder);--el-disabled-border-color:var(--el-border-color-light);--el-overlay-color:rgba(0, 0, 0, .8);--el-overlay-color-light:rgba(0, 0, 0, .7);--el-overlay-color-lighter:rgba(0, 0, 0, .5);--el-mask-color:rgba(255, 255, 255, .9);--el-mask-color-extra-light:rgba(255, 255, 255, .3);--el-border-width:1px;--el-border-style:solid;--el-border-color-hover:var(--el-text-color-disabled);--el-border:var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey:var(--el-border-color)}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center top}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center bottom}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transition:var(--el-transition-md-fade);transform-origin:top left}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-enter-active,.el-collapse-transition-leave-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-icon-loading{animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.el-icon{--color:inherit;height:1em;width:1em;line-height:1em;display:inline-flex;justify-content:center;align-items:center;position:relative;fill:currentColor;color:var(--color);font-size:inherit}.el-icon.is-loading{animation:rotating 2s linear infinite}.el-icon svg{height:1em;width:1em}:root{--el-popup-modal-bg-color:var(--el-color-black);--el-popup-modal-opacity:.5}.v-modal-enter{animation:v-modal-in var(--el-transition-duration-fast) ease}.v-modal-leave{animation:v-modal-out var(--el-transition-duration-fast) ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:var(--el-popup-modal-opacity);background:var(--el-popup-modal-bg-color)}.el-popup-parent--hidden{overflow:hidden}.el-message-box{--el-messagebox-title-color:var(--el-text-color-primary);--el-messagebox-width:420px;--el-messagebox-border-radius:4px;--el-messagebox-font-size:var(--el-font-size-large);--el-messagebox-content-font-size:var(--el-font-size-base);--el-messagebox-content-color:var(--el-text-color-regular);--el-messagebox-error-font-size:12px;--el-messagebox-padding-primary:15px;display:inline-block;width:var(--el-messagebox-width);padding-bottom:10px;vertical-align:middle;background-color:var(--el-bg-color);border-radius:var(--el-messagebox-border-radius);border:1px solid var(--el-border-color-lighter);font-size:var(--el-messagebox-font-size);box-shadow:var(--el-box-shadow-light);text-align:left;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden}.el-message-box:focus{outline:0!important}.el-overlay.is-message-box .el-overlay-message-box{text-align:center;position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto}.el-overlay.is-message-box .el-overlay-message-box:after{content:"";display:inline-block;height:100%;width:0;vertical-align:middle}.el-message-box.is-draggable .el-message-box__header{cursor:move;-webkit-user-select:none;user-select:none}.el-message-box__header{position:relative;padding:var(--el-messagebox-padding-primary);padding-bottom:10px}.el-message-box__title{padding-left:0;margin-bottom:0;font-size:var(--el-messagebox-font-size);line-height:1;color:var(--el-messagebox-title-color)}.el-message-box__headerbtn{position:absolute;top:var(--el-messagebox-padding-primary);right:var(--el-messagebox-padding-primary);padding:0;border:none;outline:0;background:0 0;font-size:var(--el-message-close-size,16px);cursor:pointer}.el-message-box__headerbtn .el-message-box__close{color:var(--el-color-info);font-size:inherit}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:var(--el-color-primary)}.el-message-box__content{padding:10px var(--el-messagebox-padding-primary);color:var(--el-messagebox-content-color);font-size:var(--el-messagebox-content-font-size)}.el-message-box__container{position:relative}.el-message-box__input{padding-top:15px}.el-message-box__input div.invalid>input{border-color:var(--el-color-error)}.el-message-box__input div.invalid>input:focus{border-color:var(--el-color-error)}.el-message-box__status{position:absolute;top:50%;transform:translateY(-50%);font-size:24px!important}.el-message-box__status:before{padding-left:1px}.el-message-box__status.el-icon{position:absolute}.el-message-box__status+.el-message-box__message{padding-left:36px;padding-right:12px;word-break:break-word}.el-message-box__status.el-message-box-icon--success{--el-messagebox-color:var(--el-color-success);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--info{--el-messagebox-color:var(--el-color-info);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--warning{--el-messagebox-color:var(--el-color-warning);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--error{--el-messagebox-color:var(--el-color-error);color:var(--el-messagebox-color)}.el-message-box__message{margin:0}.el-message-box__message p{margin:0;line-height:24px}.el-message-box__errormsg{color:var(--el-color-error);font-size:var(--el-messagebox-error-font-size);min-height:18px;margin-top:2px}.el-message-box__btns{padding:5px 15px 0;display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center}.el-message-box__btns button:nth-child(2){margin-left:10px}.el-message-box__btns-reverse{flex-direction:row-reverse}.el-message-box--center .el-message-box__title{position:relative;display:flex;align-items:center;justify-content:center}.el-message-box--center .el-message-box__status{position:relative;top:auto;padding-right:5px;text-align:center;transform:translateY(-1px)}.el-message-box--center .el-message-box__message{margin-left:0}.el-message-box--center .el-message-box__btns{justify-content:center}.el-message-box--center .el-message-box__content{padding-left:calc(var(--el-messagebox-padding-primary) + 12px);padding-right:calc(var(--el-messagebox-padding-primary) + 12px);text-align:center}.fade-in-linear-enter-active .el-overlay-message-box{animation:msgbox-fade-in var(--el-transition-duration)}.fade-in-linear-leave-active .el-overlay-message-box{animation:msgbox-fade-in var(--el-transition-duration) reverse}@keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes msgbox-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}.el-button{--el-button-font-weight:var(--el-font-weight-primary);--el-button-border-color:var(--el-border-color);--el-button-bg-color:var(--el-fill-color-blank);--el-button-text-color:var(--el-text-color-regular);--el-button-disabled-text-color:var(--el-disabled-text-color);--el-button-disabled-bg-color:var(--el-fill-color-blank);--el-button-disabled-border-color:var(--el-border-color-light);--el-button-divide-border-color:rgba(255, 255, 255, .5);--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-7);--el-button-active-text-color:var(--el-button-hover-text-color);--el-button-active-border-color:var(--el-color-primary);--el-button-active-bg-color:var(--el-button-hover-bg-color);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-hover-link-text-color:var(--el-color-info);--el-button-active-color:var(--el-text-color-primary);display:inline-flex;justify-content:center;align-items:center;line-height:1;height:32px;white-space:nowrap;cursor:pointer;color:var(--el-button-text-color);text-align:center;box-sizing:border-box;outline:0;transition:.1s;font-weight:var(--el-button-font-weight);-webkit-user-select:none;user-select:none;vertical-align:middle;-webkit-appearance:none;background-color:var(--el-button-bg-color);border:var(--el-border);border-color:var(--el-button-border-color);padding:8px 15px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}.el-button:focus,.el-button:hover{color:var(--el-button-hover-text-color);border-color:var(--el-button-hover-border-color);background-color:var(--el-button-hover-bg-color);outline:0}.el-button:active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:0}.el-button:focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px}.el-button>span{display:inline-flex;align-items:center}.el-button+.el-button{margin-left:12px}.el-button.is-round{padding:8px 15px}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon]+span{margin-left:6px}.el-button [class*=el-icon] svg{vertical-align:bottom}.el-button.is-plain{--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-fill-color-blank);--el-button-hover-border-color:var(--el-color-primary)}.el-button.is-active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:0}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:var(--el-button-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color);border-color:var(--el-button-disabled-border-color)}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{z-index:1;pointer-events:none;content:"";position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:var(--el-mask-color-extra-light)}.el-button.is-round{border-radius:var(--el-border-radius-round)}.el-button.is-circle{border-radius:50%;padding:8px}.el-button.is-text{color:var(--el-button-text-color);border:0 solid transparent;background-color:transparent}.el-button.is-text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important}.el-button.is-text:not(.is-disabled):focus,.el-button.is-text:not(.is-disabled):hover{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled):focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px}.el-button.is-text:not(.is-disabled):active{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled).is-has-bg:focus,.el-button.is-text:not(.is-disabled).is-has-bg:hover{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg:active{background-color:var(--el-fill-color-dark)}.el-button__text--expand{letter-spacing:.3em;margin-right:-.3em}.el-button.is-link{border-color:transparent;color:var(--el-button-text-color);background:0 0;padding:2px;height:auto}.el-button.is-link:focus,.el-button.is-link:hover{color:var(--el-button-hover-link-text-color)}.el-button.is-link.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.el-button.is-link:not(.is-disabled):focus,.el-button.is-link:not(.is-disabled):hover{border-color:transparent;background-color:transparent}.el-button.is-link:not(.is-disabled):active{color:var(--el-button-active-color);border-color:transparent;background-color:transparent}.el-button--text{border-color:transparent;background:0 0;color:var(--el-color-primary);padding-left:0;padding-right:0}.el-button--text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.el-button--text:not(.is-disabled):focus,.el-button--text:not(.is-disabled):hover{color:var(--el-color-primary-light-3);border-color:transparent;background-color:transparent}.el-button--text:not(.is-disabled):active{color:var(--el-color-primary-dark-2);border-color:transparent;background-color:transparent}.el-button__link--expand{letter-spacing:.3em;margin-right:-.3em}.el-button--primary{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-primary);--el-button-border-color:var(--el-color-primary);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-active-color:var(--el-color-primary-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-primary-light-5);--el-button-hover-bg-color:var(--el-color-primary-light-3);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-bg-color:var(--el-color-primary-dark-2);--el-button-active-border-color:var(--el-color-primary-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-primary-light-5);--el-button-disabled-border-color:var(--el-color-primary-light-5)}.el-button--primary.is-link,.el-button--primary.is-plain,.el-button--primary.is-text{--el-button-text-color:var(--el-color-primary);--el-button-bg-color:var(--el-color-primary-light-9);--el-button-border-color:var(--el-color-primary-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-primary);--el-button-hover-border-color:var(--el-color-primary);--el-button-active-text-color:var(--el-color-white)}.el-button--primary.is-link.is-disabled,.el-button--primary.is-link.is-disabled:active,.el-button--primary.is-link.is-disabled:focus,.el-button--primary.is-link.is-disabled:hover,.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover,.el-button--primary.is-text.is-disabled,.el-button--primary.is-text.is-disabled:active,.el-button--primary.is-text.is-disabled:focus,.el-button--primary.is-text.is-disabled:hover{color:var(--el-color-primary-light-5);background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8)}.el-button--success{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-success);--el-button-border-color:var(--el-color-success);--el-button-outline-color:var(--el-color-success-light-5);--el-button-active-color:var(--el-color-success-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-success-light-5);--el-button-hover-bg-color:var(--el-color-success-light-3);--el-button-hover-border-color:var(--el-color-success-light-3);--el-button-active-bg-color:var(--el-color-success-dark-2);--el-button-active-border-color:var(--el-color-success-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-success-light-5);--el-button-disabled-border-color:var(--el-color-success-light-5)}.el-button--success.is-link,.el-button--success.is-plain,.el-button--success.is-text{--el-button-text-color:var(--el-color-success);--el-button-bg-color:var(--el-color-success-light-9);--el-button-border-color:var(--el-color-success-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-success);--el-button-hover-border-color:var(--el-color-success);--el-button-active-text-color:var(--el-color-white)}.el-button--success.is-link.is-disabled,.el-button--success.is-link.is-disabled:active,.el-button--success.is-link.is-disabled:focus,.el-button--success.is-link.is-disabled:hover,.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover,.el-button--success.is-text.is-disabled,.el-button--success.is-text.is-disabled:active,.el-button--success.is-text.is-disabled:focus,.el-button--success.is-text.is-disabled:hover{color:var(--el-color-success-light-5);background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8)}.el-button--warning{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-warning);--el-button-border-color:var(--el-color-warning);--el-button-outline-color:var(--el-color-warning-light-5);--el-button-active-color:var(--el-color-warning-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-warning-light-5);--el-button-hover-bg-color:var(--el-color-warning-light-3);--el-button-hover-border-color:var(--el-color-warning-light-3);--el-button-active-bg-color:var(--el-color-warning-dark-2);--el-button-active-border-color:var(--el-color-warning-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-warning-light-5);--el-button-disabled-border-color:var(--el-color-warning-light-5)}.el-button--warning.is-link,.el-button--warning.is-plain,.el-button--warning.is-text{--el-button-text-color:var(--el-color-warning);--el-button-bg-color:var(--el-color-warning-light-9);--el-button-border-color:var(--el-color-warning-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-warning);--el-button-hover-border-color:var(--el-color-warning);--el-button-active-text-color:var(--el-color-white)}.el-button--warning.is-link.is-disabled,.el-button--warning.is-link.is-disabled:active,.el-button--warning.is-link.is-disabled:focus,.el-button--warning.is-link.is-disabled:hover,.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover,.el-button--warning.is-text.is-disabled,.el-button--warning.is-text.is-disabled:active,.el-button--warning.is-text.is-disabled:focus,.el-button--warning.is-text.is-disabled:hover{color:var(--el-color-warning-light-5);background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8)}.el-button--danger{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-danger);--el-button-border-color:var(--el-color-danger);--el-button-outline-color:var(--el-color-danger-light-5);--el-button-active-color:var(--el-color-danger-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-danger-light-5);--el-button-hover-bg-color:var(--el-color-danger-light-3);--el-button-hover-border-color:var(--el-color-danger-light-3);--el-button-active-bg-color:var(--el-color-danger-dark-2);--el-button-active-border-color:var(--el-color-danger-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-danger-light-5);--el-button-disabled-border-color:var(--el-color-danger-light-5)}.el-button--danger.is-link,.el-button--danger.is-plain,.el-button--danger.is-text{--el-button-text-color:var(--el-color-danger);--el-button-bg-color:var(--el-color-danger-light-9);--el-button-border-color:var(--el-color-danger-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-danger);--el-button-hover-border-color:var(--el-color-danger);--el-button-active-text-color:var(--el-color-white)}.el-button--danger.is-link.is-disabled,.el-button--danger.is-link.is-disabled:active,.el-button--danger.is-link.is-disabled:focus,.el-button--danger.is-link.is-disabled:hover,.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover,.el-button--danger.is-text.is-disabled,.el-button--danger.is-text.is-disabled:active,.el-button--danger.is-text.is-disabled:focus,.el-button--danger.is-text.is-disabled:hover{color:var(--el-color-danger-light-5);background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8)}.el-button--info{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-info);--el-button-border-color:var(--el-color-info);--el-button-outline-color:var(--el-color-info-light-5);--el-button-active-color:var(--el-color-info-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-info-light-5);--el-button-hover-bg-color:var(--el-color-info-light-3);--el-button-hover-border-color:var(--el-color-info-light-3);--el-button-active-bg-color:var(--el-color-info-dark-2);--el-button-active-border-color:var(--el-color-info-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-info-light-5);--el-button-disabled-border-color:var(--el-color-info-light-5)}.el-button--info.is-link,.el-button--info.is-plain,.el-button--info.is-text{--el-button-text-color:var(--el-color-info);--el-button-bg-color:var(--el-color-info-light-9);--el-button-border-color:var(--el-color-info-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-info);--el-button-hover-border-color:var(--el-color-info);--el-button-active-text-color:var(--el-color-white)}.el-button--info.is-link.is-disabled,.el-button--info.is-link.is-disabled:active,.el-button--info.is-link.is-disabled:focus,.el-button--info.is-link.is-disabled:hover,.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover,.el-button--info.is-text.is-disabled,.el-button--info.is-text.is-disabled:active,.el-button--info.is-text.is-disabled:focus,.el-button--info.is-text.is-disabled:hover{color:var(--el-color-info-light-5);background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8)}.el-button--large{--el-button-size:40px;height:var(--el-button-size);padding:12px 19px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}.el-button--large [class*=el-icon]+span{margin-left:8px}.el-button--large.is-round{padding:12px 19px}.el-button--large.is-circle{width:var(--el-button-size);padding:12px}.el-button--small{--el-button-size:24px;height:var(--el-button-size);padding:5px 11px;font-size:12px;border-radius:calc(var(--el-border-radius-base) - 1px)}.el-button--small [class*=el-icon]+span{margin-left:4px}.el-button--small.is-round{padding:5px 11px}.el-button--small.is-circle{width:var(--el-button-size);padding:5px}.el-textarea{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);position:relative;display:inline-block;width:100%;vertical-align:bottom;font-size:var(--el-font-size-base)}.el-textarea__inner{position:relative;display:block;resize:vertical;padding:5px 11px;line-height:1.5;box-sizing:border-box;width:100%;font-size:inherit;font-family:inherit;color:var(--el-input-text-color,var(--el-text-color-regular));background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;-webkit-appearance:none;box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));transition:var(--el-transition-box-shadow);border:none}.el-textarea__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-textarea__inner:focus{outline:0;box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-textarea .el-input__count{color:var(--el-color-info);background:var(--el-fill-color-blank);position:absolute;font-size:12px;line-height:14px;bottom:5px;right:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-exceed .el-textarea__inner{border-color:var(--el-color-danger)}.el-textarea.is-exceed .el-input__count{color:var(--el-color-danger)}.el-input{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-height:var(--el-component-size);position:relative;font-size:var(--el-font-size-base);display:inline-flex;width:100%;line-height:var(--el-input-height);box-sizing:border-box}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:var(--el-text-color-disabled)}.el-input::-webkit-scrollbar-corner{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track-piece{background:var(--el-fill-color-blank);width:6px}.el-input .el-input__clear,.el-input .el-input__password{color:var(--el-input-icon-color);font-size:14px;cursor:pointer}.el-input .el-input__clear:hover,.el-input .el-input__password:hover{color:var(--el-input-clear-hover-color)}.el-input .el-input__count{height:100%;display:inline-flex;align-items:center;color:var(--el-color-info);font-size:12px}.el-input .el-input__count .el-input__count-inner{background:var(--el-fill-color-blank);line-height:initial;display:inline-block;padding-left:8px}.el-input__wrapper{display:inline-flex;flex-grow:1;align-items:center;justify-content:center;padding:1px 11px;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));transition:var(--el-transition-box-shadow);box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset}.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 32px) - 2px);width:100%;flex-grow:1;-webkit-appearance:none;color:var(--el-input-text-color,var(--el-text-color-regular));font-size:inherit;height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);padding:0;outline:0;border:none;background:0 0;box-sizing:border-box}.el-input__inner:focus{outline:0}.el-input__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner[type=password]::-ms-reveal{display:none}.el-input__prefix{display:inline-flex;white-space:nowrap;flex-shrink:0;flex-wrap:nowrap;height:100%;text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none}.el-input__prefix-inner{pointer-events:all;display:inline-flex;align-items:center;justify-content:center}.el-input__prefix-inner>:last-child{margin-right:8px}.el-input__prefix-inner>:first-child,.el-input__prefix-inner>:first-child.el-input__icon{margin-left:0}.el-input__suffix{display:inline-flex;white-space:nowrap;flex-shrink:0;flex-wrap:nowrap;height:100%;text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none}.el-input__suffix-inner{pointer-events:all;display:inline-flex;align-items:center;justify-content:center}.el-input__suffix-inner>:first-child{margin-left:8px}.el-input .el-input__icon{height:inherit;line-height:inherit;display:flex;justify-content:center;align-items:center;transition:all var(--el-transition-duration);margin-left:8px}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-color,) inset}.el-input.is-disabled{cursor:not-allowed}.el-input.is-disabled .el-input__wrapper{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset}.el-input.is-disabled .el-input__inner{color:var(--el-disabled-text-color);cursor:not-allowed}.el-input.is-disabled .el-input__inner::placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-exceed .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-input.is-exceed .el-input__suffix .el-input__count{color:var(--el-color-danger)}.el-input--large{--el-input-height:var(--el-component-size-large);font-size:14px}.el-input--large .el-input__wrapper{padding:1px 15px}.el-input--large .el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 40px) - 2px)}.el-input--small{--el-input-height:var(--el-component-size-small);font-size:12px}.el-input--small .el-input__wrapper{padding:1px 7px}.el-input--small .el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 24px) - 2px)}.el-input-group{display:inline-flex;width:100%;align-items:stretch}.el-input-group__append,.el-input-group__prepend{background-color:var(--el-fill-color-light);color:var(--el-color-info);position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:100%;border-radius:var(--el-input-border-radius);padding:0 20px;white-space:nowrap}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:0}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:0 -20px}.el-input-group__append button.el-button,.el-input-group__append button.el-button:hover,.el-input-group__append div.el-select .el-input__wrapper,.el-input-group__append div.el-select:hover .el-input__wrapper,.el-input-group__prepend button.el-button,.el-input-group__prepend button.el-button:hover,.el-input-group__prepend div.el-select .el-input__wrapper,.el-input-group__prepend div.el-select:hover .el-input__wrapper{border-color:transparent;background-color:transparent;color:inherit}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group__append{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-group--prepend>.el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--prepend .el-input-group__prepend .el-select .el-input .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select .el-input .el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__wrapper{box-shadow:1px 0 0 0 var(--el-input-focus-border-color) inset,1px 0 0 0 var(--el-input-focus-border-color),0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important;z-index:2}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__wrapper:focus{outline:0;z-index:2;box-shadow:1px 0 0 0 var(--el-input-focus-border-color) inset,1px 0 0 0 var(--el-input-focus-border-color),0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important}.el-input-group--prepend .el-input-group__prepend .el-select:hover .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select:hover .el-input__wrapper{z-index:1;box-shadow:1px 0 0 0 var(--el-input-hover-border-color) inset,1px 0 0 0 var(--el-input-hover-border-color),0 1px 0 0 var(--el-input-hover-border-color) inset,0 -1px 0 0 var(--el-input-hover-border-color) inset!important}.el-input-group--append>.el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group--append .el-input-group__append .el-select .el-input .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select .el-input .el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-group--append .el-input-group__append .el-select .el-input.is-focus .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select .el-input.is-focus .el-input__wrapper{z-index:2;box-shadow:-1px 0 0 0 var(--el-input-focus-border-color),-1px 0 0 0 var(--el-input-focus-border-color) inset,0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important}.el-input-group--append .el-input-group__append .el-select:hover .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select:hover .el-input__wrapper{z-index:1;box-shadow:-1px 0 0 0 var(--el-input-hover-border-color),-1px 0 0 0 var(--el-input-hover-border-color) inset,0 1px 0 0 var(--el-input-hover-border-color) inset,0 -1px 0 0 var(--el-input-hover-border-color) inset!important}.el-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;height:100%;background-color:var(--el-overlay-color-lighter);overflow:auto}.el-overlay .el-overlay-root{height:0}.el-message{--el-message-min-width:380px;--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-border-color-lighter);--el-message-padding:15px 15px 15px 20px;--el-message-close-size:16px;--el-message-close-icon-color:var(--el-text-color-placeholder);--el-message-close-hover-color:var(--el-text-color-secondary);min-width:var(--el-message-min-width);box-sizing:border-box;border-radius:var(--el-border-radius-base);border-width:var(--el-border-width);border-style:var(--el-border-style);border-color:var(--el-message-border-color);position:fixed;left:50%;top:20px;transform:translate(-50%);transition:opacity .3s,transform .4s,top .4s;background-color:var(--el-message-bg-color);transition:opacity var(--el-transition-duration),transform .4s,top .4s;padding:var(--el-message-padding);display:flex;align-items:center}.el-message.is-center{justify-content:center}.el-message.is-closable .el-message__content{padding-right:16px}.el-message p{margin:0}.el-message--success{--el-message-bg-color:var(--el-color-success-light-9);--el-message-border-color:var(--el-color-success-light-8);--el-message-text-color:var(--el-color-success)}.el-message--success .el-message__content,.el-message .el-message-icon--success{color:var(--el-message-text-color)}.el-message--info{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-color-info-light-8);--el-message-text-color:var(--el-color-info)}.el-message--info .el-message__content,.el-message .el-message-icon--info{color:var(--el-message-text-color)}.el-message--warning{--el-message-bg-color:var(--el-color-warning-light-9);--el-message-border-color:var(--el-color-warning-light-8);--el-message-text-color:var(--el-color-warning)}.el-message--warning .el-message__content,.el-message .el-message-icon--warning{color:var(--el-message-text-color)}.el-message--error{--el-message-bg-color:var(--el-color-error-light-9);--el-message-border-color:var(--el-color-error-light-8);--el-message-text-color:var(--el-color-error)}.el-message--error .el-message__content,.el-message .el-message-icon--error{color:var(--el-message-text-color)}.el-message__icon{margin-right:10px}.el-message .el-message__badge{position:absolute;top:-8px;right:-8px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__content:focus{outline-width:0}.el-message .el-message__closeBtn{position:absolute;top:50%;right:15px;transform:translateY(-50%);cursor:pointer;color:var(--el-message-close-icon-color);font-size:var(--el-message-close-size)}.el-message .el-message__closeBtn:focus{outline-width:0}.el-message .el-message__closeBtn:hover{color:var(--el-message-close-hover-color)}.el-message-fade-enter-from,.el-message-fade-leave-to{opacity:0;transform:translate(-50%,-100%)}.el-notification{--el-notification-width:330px;--el-notification-padding:14px 26px 14px 13px;--el-notification-radius:8px;--el-notification-shadow:var(--el-box-shadow-light);--el-notification-border-color:var(--el-border-color-lighter);--el-notification-icon-size:24px;--el-notification-close-font-size:var(--el-message-close-size, 16px);--el-notification-group-margin-left:13px;--el-notification-group-margin-right:8px;--el-notification-content-font-size:var(--el-font-size-base);--el-notification-content-color:var(--el-text-color-regular);--el-notification-title-font-size:16px;--el-notification-title-color:var(--el-text-color-primary);--el-notification-close-color:var(--el-text-color-secondary);--el-notification-close-hover-color:var(--el-text-color-regular);display:flex;width:var(--el-notification-width);padding:var(--el-notification-padding);border-radius:var(--el-notification-radius);box-sizing:border-box;border:1px solid var(--el-notification-border-color);position:fixed;background-color:var(--el-bg-color-overlay);box-shadow:var(--el-notification-shadow);transition:opacity var(--el-transition-duration),transform var(--el-transition-duration),left var(--el-transition-duration),right var(--el-transition-duration),top .4s,bottom var(--el-transition-duration);overflow-wrap:anywhere;overflow:hidden;z-index:9999}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{margin-left:var(--el-notification-group-margin-left);margin-right:var(--el-notification-group-margin-right)}.el-notification__title{font-weight:700;font-size:var(--el-notification-title-font-size);line-height:var(--el-notification-icon-size);color:var(--el-notification-title-color);margin:0}.el-notification__content{font-size:var(--el-notification-content-font-size);line-height:24px;margin:6px 0 0;color:var(--el-notification-content-color);text-align:justify}.el-notification__content p{margin:0}.el-notification .el-notification__icon{height:var(--el-notification-icon-size);width:var(--el-notification-icon-size);font-size:var(--el-notification-icon-size)}.el-notification .el-notification__closeBtn{position:absolute;top:18px;right:15px;cursor:pointer;color:var(--el-notification-close-color);font-size:var(--el-notification-close-font-size)}.el-notification .el-notification__closeBtn:hover{color:var(--el-notification-close-hover-color)}.el-notification .el-notification--success{--el-notification-icon-color:var(--el-color-success);color:var(--el-notification-icon-color)}.el-notification .el-notification--info{--el-notification-icon-color:var(--el-color-info);color:var(--el-notification-icon-color)}.el-notification .el-notification--warning{--el-notification-icon-color:var(--el-color-warning);color:var(--el-notification-icon-color)}.el-notification .el-notification--error{--el-notification-icon-color:var(--el-color-error);color:var(--el-notification-icon-color)}.el-notification-fade-enter-from.right{right:0;transform:translate(100%)}.el-notification-fade-enter-from.left{left:0;transform:translate(-100%)}.el-notification-fade-leave-to{opacity:0}:root{--el-loading-spinner-size:42px;--el-loading-fullscreen-spinner-size:50px}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:var(--el-mask-color);margin:0;top:0;right:0;bottom:0;left:0;transition:opacity var(--el-transition-duration)}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:calc((0px - var(--el-loading-fullscreen-spinner-size))/ 2)}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:var(--el-loading-fullscreen-spinner-size);width:var(--el-loading-fullscreen-spinner-size)}.el-loading-spinner{top:50%;margin-top:calc((0px - var(--el-loading-spinner-size))/ 2);width:100%;text-align:center;position:absolute}.el-loading-spinner .el-loading-text{color:var(--el-color-primary);margin:3px 0;font-size:14px}.el-loading-spinner .circular{display:inline;height:var(--el-loading-spinner-size);width:var(--el-loading-spinner-size);animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:var(--el-color-primary);stroke-linecap:round}.el-loading-spinner i{color:var(--el-color-primary)}.el-loading-fade-enter-from,.el-loading-fade-leave-to{opacity:0}@keyframes loading-rotate{to{transform:rotate(360deg)}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}@media only screen and (max-width:767px){.hidden-xs-only{display:none!important}}@media only screen and (min-width:768px){.hidden-sm-and-up{display:none!important}}@media only screen and (min-width:768px) and (max-width:991px){.hidden-sm-only{display:none!important}}@media only screen and (max-width:991px){.hidden-sm-and-down{display:none!important}}@media only screen and (min-width:992px){.hidden-md-and-up{display:none!important}}@media only screen and (min-width:992px) and (max-width:1199px){.hidden-md-only{display:none!important}}@media only screen and (max-width:1199px){.hidden-md-and-down{display:none!important}}@media only screen and (min-width:1200px){.hidden-lg-and-up{display:none!important}}@media only screen and (min-width:1200px) and (max-width:1919px){.hidden-lg-only{display:none!important}}@media only screen and (max-width:1919px){.hidden-lg-and-down{display:none!important}}@media only screen and (min-width:1920px){.hidden-xl-only{display:none!important}}/*! +* Viewer.js v1.10.5 +* https://fengyuanchen.github.io/viewerjs +* +* Copyright 2015-present Chen Fengyuan +* Released under the MIT license +* +* Date: 2022-04-05T08:21:00.150Z +*/.viewer-zoom-in:before,.viewer-zoom-out:before,.viewer-one-to-one:before,.viewer-reset:before,.viewer-prev:before,.viewer-play:before,.viewer-next:before,.viewer-rotate-left:before,.viewer-rotate-right:before,.viewer-flip-horizontal:before,.viewer-flip-vertical:before,.viewer-fullscreen:before,.viewer-fullscreen-exit:before,.viewer-close:before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARgAAAAUCAYAAABWOyJDAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNui8sowAAAQPSURBVHic7Zs/iFxVFMa/0U2UaJGksUgnIVhYxVhpjDbZCBmLdAYECxsRFBTUamcXUiSNncgKQbSxsxH8gzAP3FU2jY0kKKJNiiiIghFlccnP4p3nPCdv3p9778vsLOcHB2bfveeb7955c3jvvNkBIMdxnD64a94GHMfZu3iBcRynN7zAOI7TG15gHCeeNUkr8zaxG2lbYDYsdgMbktBsP03jdQwljSXdtBhLOmtjowC9Mg9L+knSlcD8TNKpSA9lBpK2JF2VdDSR5n5J64m0qli399hNFMUlpshQii5jbXTbHGviB0nLNeNDSd9VO4A2UdB2fp+x0eCnaXxWXGA2X0au/3HgN9P4LFCjIANOJdrLr0zzZ+BEpNYDwKbpnQMeAw4m8HjQtM6Z9qa917zPQwFr3M5KgA6J5rTJCdFZJj9/lyvGhsDvwFNVuV2MhhjrK6b9bFiE+j1r87eBl4HDwCF7/U/k+ofAX5b/EXBv5JoLMuILzf3Ap6Z3EzgdqHMCuF7hcQf4HDgeoHnccncqdK/TvSDWffFXI/exICY/xZyqc6XLWF1UFZna4gJ7q8BsRvgd2/xXpo6P+D9dfT7PpECtA3cnWPM0GXGFZh/wgWltA+cDNC7X+AP4GzjZQe+k5dRxuYPeiuXU7e1qwLpDz7dFjXKRaSwuMLvAlG8zZlG+YmiK1HoFqT7wP2z+4Q45TfEGcMt01xLoNZEBTwRqD4BLpnMLeC1A41UmVxsXgXeBayV/Wx20rpTyrpnWRft7p6O/FdqzGrDukPNtkaMoMo3FBdBSQMOnYBCReyf05s126fU9ytfX98+mY54Kxnp7S9K3kj6U9KYdG0h6UdLbkh7poFXMfUnSOyVvL0h6VtIXHbS6nOP+s/Zm9mvyXW1uuC9ohZ72E9uDmXWLJOB1GxsH+DxPftsB8B6wlGDN02TAkxG6+4D3TWsbeC5CS8CDFce+AW500LhhOW2020TRjK3b21HEmgti9m0RonxbdMZeVzV+/4tF3cBpP7E9mKHNL5q8h5g0eYsCMQz0epq8gQrwMXAgcs0FGXGFRcB9wCemF9PkbYqM/Bas7fxLwNeJPdTdpo4itQti8lPMqTpXuozVRVXPpbHI3KkNTB1NfkL81j2mvhDp91HgV9MKuRIqrykj3WPq4rHyL+axj8/qGPmTqi6F9YDlHOvJU6oYcTsh/TYSzWmTE6JT19CtLTJt32D6CmHe0eQn1O8z5AXgT4sx4Vcu0/EQecMydB8z0hUWkTd2t4CrwNEePqMBcAR4mrBbwyXLPWJa8zrXmmLEhNBmfpkuY2102xxrih+pb+ieAb6vGhuA97UcJ5KR8gZ77K+99xxeYBzH6Q3/Z0fHcXrDC4zjOL3hBcZxnN74F+zlvXFWXF9PAAAAAElFTkSuQmCC);background-repeat:no-repeat;background-size:280px;color:transparent;display:block;font-size:0;height:20px;line-height:0;width:20px}.viewer-zoom-in:before{background-position:0 0;content:"Zoom In"}.viewer-zoom-out:before{background-position:-20px 0;content:"Zoom Out"}.viewer-one-to-one:before{background-position:-40px 0;content:"One to One"}.viewer-reset:before{background-position:-60px 0;content:"Reset"}.viewer-prev:before{background-position:-80px 0;content:"Previous"}.viewer-play:before{background-position:-100px 0;content:"Play"}.viewer-next:before{background-position:-120px 0;content:"Next"}.viewer-rotate-left:before{background-position:-140px 0;content:"Rotate Left"}.viewer-rotate-right:before{background-position:-160px 0;content:"Rotate Right"}.viewer-flip-horizontal:before{background-position:-180px 0;content:"Flip Horizontal"}.viewer-flip-vertical:before{background-position:-200px 0;content:"Flip Vertical"}.viewer-fullscreen:before{background-position:-220px 0;content:"Enter Full Screen"}.viewer-fullscreen-exit:before{background-position:-240px 0;content:"Exit Full Screen"}.viewer-close:before{background-position:-260px 0;content:"Close"}.viewer-container{bottom:0;direction:ltr;font-size:0;left:0;line-height:0;overflow:hidden;position:absolute;right:0;-webkit-tap-highlight-color:transparent;top:0;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.viewer-container::-moz-selection,.viewer-container *::-moz-selection{background-color:transparent}.viewer-container::selection,.viewer-container *::selection{background-color:transparent}.viewer-container:focus{outline:0}.viewer-container img{display:block;height:auto;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;width:100%}.viewer-canvas{bottom:0;left:0;overflow:hidden;position:absolute;right:0;top:0}.viewer-canvas>img{height:auto;margin:15px auto;max-width:90%!important;width:auto}.viewer-footer{bottom:0;left:0;overflow:hidden;position:absolute;right:0;text-align:center}.viewer-navbar{background-color:#0000007f;overflow:hidden}.viewer-list{box-sizing:content-box;height:50px;margin:0;overflow:hidden;padding:1px 0}.viewer-list>li{color:transparent;cursor:pointer;float:left;font-size:0;height:50px;line-height:0;opacity:.5;overflow:hidden;transition:opacity .15s;width:30px}.viewer-list>li:focus,.viewer-list>li:hover{opacity:.75}.viewer-list>li:focus{outline:0}.viewer-list>li+li{margin-left:1px}.viewer-list>.viewer-loading{position:relative}.viewer-list>.viewer-loading:after{border-width:2px;height:20px;margin-left:-10px;margin-top:-10px;width:20px}.viewer-list>.viewer-active,.viewer-list>.viewer-active:focus,.viewer-list>.viewer-active:hover{opacity:1}.viewer-player{background-color:#000;bottom:0;cursor:none;display:none;left:0;position:absolute;right:0;top:0;z-index:1}.viewer-player>img{left:0;position:absolute;top:0}.viewer-toolbar>ul{display:inline-block;margin:0 auto 5px;overflow:hidden;padding:6px 3px}.viewer-toolbar>ul>li{background-color:#0000007f;border-radius:50%;cursor:pointer;float:left;height:24px;overflow:hidden;transition:background-color .15s;width:24px}.viewer-toolbar>ul>li:focus,.viewer-toolbar>ul>li:hover{background-color:#000c}.viewer-toolbar>ul>li:focus{box-shadow:0 0 3px #fff;outline:0;position:relative;z-index:1}.viewer-toolbar>ul>li:before{margin:2px}.viewer-toolbar>ul>li+li{margin-left:1px}.viewer-toolbar>ul>.viewer-small{height:18px;margin-bottom:3px;margin-top:3px;width:18px}.viewer-toolbar>ul>.viewer-small:before{margin:-1px}.viewer-toolbar>ul>.viewer-large{height:30px;margin-bottom:-3px;margin-top:-3px;width:30px}.viewer-toolbar>ul>.viewer-large:before{margin:5px}.viewer-tooltip{background-color:#000c;border-radius:10px;color:#fff;display:none;font-size:12px;height:20px;left:50%;line-height:20px;margin-left:-25px;margin-top:-10px;position:absolute;text-align:center;top:50%;width:50px}.viewer-title{color:#ccc;display:inline-block;font-size:12px;line-height:1.2;margin:0 5% 5px;max-width:90%;opacity:.8;overflow:hidden;text-overflow:ellipsis;transition:opacity .15s;white-space:nowrap}.viewer-title:hover{opacity:1}.viewer-button{-webkit-app-region:no-drag;background-color:#0000007f;border-radius:50%;cursor:pointer;height:80px;overflow:hidden;position:absolute;right:-40px;top:-40px;transition:background-color .15s;width:80px}.viewer-button:focus,.viewer-button:hover{background-color:#000c}.viewer-button:focus{box-shadow:0 0 3px #fff;outline:0}.viewer-button:before{bottom:15px;left:15px;position:absolute}.viewer-fixed{position:fixed}.viewer-open{overflow:hidden}.viewer-show{display:block}.viewer-hide{display:none}.viewer-backdrop{background-color:#0000007f}.viewer-invisible{visibility:hidden}.viewer-move{cursor:move;cursor:-webkit-grab;cursor:grab}.viewer-fade{opacity:0}.viewer-in{opacity:1}.viewer-transition{transition:all .3s}@-webkit-keyframes viewer-spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes viewer-spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.viewer-loading:after{-webkit-animation:viewer-spinner 1s linear infinite;animation:viewer-spinner 1s linear infinite;border:4px solid rgba(255,255,255,10%);border-left-color:#ffffff7f;border-radius:50%;content:"";display:inline-block;height:40px;left:50%;margin-left:-20px;margin-top:-20px;position:absolute;top:50%;width:40px;z-index:1}@media (max-width: 767px){.viewer-hide-xs-down{display:none}}@media (max-width: 991px){.viewer-hide-sm-down{display:none}}@media (max-width: 1199px){.viewer-hide-md-down{display:none}}:root{--prism-scheme: light;--prism-foreground: #6e6e6e;--prism-background: #f4f4f4;--prism-comment: #a8a8a8;--prism-string: #555555;--prism-literal: #333333;--prism-keyword: #000000;--prism-function: #4f4f4f;--prism-deleted: #333333;--prism-class: #333333;--prism-builtin: #757575;--prism-property: #333333;--prism-namespace: #4f4f4f;--prism-punctuation: #ababab;--prism-decorator: var(--prism-class);--prism-operator: var(--prism-punctuation);--prism-number: var(--prism-literal);--prism-boolean: var(--prism-literal);--prism-variable: var(--prism-literal);--prism-constant: var(--prism-literal);--prism-symbol: var(--prism-literal);--prism-interpolation: var(--prism-literal);--prism-selector: var(--prism-keyword);--prism-keyword-control: var(--prism-keyword);--prism-regex: var(--prism-string);--prism-json-property: var(--prism-property);--prism-inline-background: var(--prism-background);--prism-comment-style: italic;--prism-url-decoration: underline;--prism-line-number: #a5a5a5;--prism-line-number-gutter: #333333;--prism-line-highlight-background: #eeeeee;--prism-selection-background: #aaaaaa;--prism-marker-color: var(--prism-foreground);--prism-marker-opacity: .4;--prism-marker-font-size: .8em;--prism-font-size: 1em;--prism-line-height: 1.5em;--prism-font-family: monospace;--prism-inline-font-size: var(--prism-font-size);--prism-block-font-size: var(--prism-font-size);--prism-tab-size: 2;--prism-block-padding-x: 1em;--prism-block-padding-y: 1em;--prism-block-margin-x: 0;--prism-block-margin-y: .5em;--prism-block-radius: .3em;--prism-inline-padding-x: .3em;--prism-inline-padding-y: .1em;--prism-inline-radius: .3em}div[class*=language-],pre[class*=language-],code[class*=language-]{font-size:var(--prism-font-size);font-family:var(--prism-font-family);direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;line-height:var(--prism-line-height);-moz-tab-size:var(--prism-tab-size);-o-tab-size:var(--prism-tab-size);tab-size:var(--prism-tab-size);-webkit-hyphens:none;hyphens:none;color:var(--prism-foreground)!important}div[class*=language-],pre[class*=language-]{font-size:var(--prism-block-font-size);padding:var(--prism-block-padding-y) var(--prism-block-padding-x);margin:var(--prism-block-margin-y) var(--prism-block-margin-x);border-radius:var(--prism-block-radius);overflow:auto;background:var(--prism-background)}:not(pre)>code[class*=language-]{font-size:var(--prism-inline-font-size);padding:var(--prism-inline-padding-y) var(--prism-inline-padding-x);border-radius:var(--prism-inline-radius);background:var(--prism-inline-background)}pre[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,code[class*=language-] ::-moz-selection{background:var(--prism-selection-background)}pre[class*=language-]::selection,pre[class*=language-] ::selection,code[class*=language-]::selection,code[class*=language-] ::selection{background:var(--prism-selection-background)}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:var(--prism-comment);font-style:var(--prism-comment-style)}.token.namespace{color:var(--prism-namespace)}.token.interpolation{color:var(--prism-interpolation)}.token.string{color:var(--prism-string)}.token.punctuation{color:var(--prism-punctuation)}.token.operator{color:var(--prism-operator)}.token.keyword.module,.token.keyword.control-flow{color:var(--prism-keyword-control)}.token.url,.token.symbol,.token.inserted{color:var(--prism-symbol)}.token.constant{color:var(--prism-constant)}.token.string.url{-webkit-text-decoration:var(--prism-url-decoration);text-decoration:var(--prism-url-decoration)}.token.boolean,.language-json .token.boolean{color:var(--prism-boolean)}.token.number,.language-json .token.number{color:var(--prism-number)}.token.variable{color:var(--prism-variable)}.token.keyword{color:var(--prism-keyword)}.token.atrule,.token.attr-value,.token.selector{color:var(--prism-selector)}.token.function{color:var(--prism-function)}.token.deleted{color:var(--prism-deleted)}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.class-name{color:var(--prism-class)}.token.tag,.token.builtin{color:var(--prism-builtin)}.token.attr-name,.token.property,.token.entity{color:var(--prism-property)}.language-json .token.property{color:var(--prism-json-property)}.token.regex{color:var(--prism-regex)}.token.decorator,.token.annotation{color:var(--prism-decorator)}.line-numbers .line-numbers-rows{border-right-color:var(--prism-line-number)}.line-numbers-rows>span:before{color:var(--prism-line-number-gutter)}.line-highlight{background:var(--prism-line-highlight-background)}.prose{--prism-font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol}.prose pre{font-weight:500;font-size:1rem}ol{padding-left:15px}.prose blockquote p:first-of-type:before{content:none}.prose pre{color:#495057;background:#f8f9fa}.prose-sm p{font-weight:500}.prose blockquote{margin:0;font-style:normal}.token.comment{font-style:normal;font-size:.5rem}html,body,#app{font-family:inherit;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--el-text-color-primary);overflow:hidden;height:100%;width:100%;margin:0;padding:0}.prose{scroll-behavior:smooth}#nprogress{pointer-events:none}#nprogress .bar{background-color:rgb(59 130 246 / var(--tw-bg-opacity));--tw-bg-opacity: .75;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}::-webkit-scrollbar{width:11px;height:11px;background-color:#f6f7f8}::-webkit-scrollbar-thumb{background-color:#e9ecef;border-radius:10px}::-webkit-scrollbar-track{background-color:#f6f7f8;border-radius:10px}.icon{width:1em;height:1em;vertical-align:-.15em;fill:currentColor;overflow:hidden}.dragging-over *{pointer-events:none}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::-webkit-backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-y-0{top:0px;bottom:0px}.left-0{left:0px}.right-0{right:0px}.-top-\[1\.5px\]{top:-1.5px}.bottom-0{bottom:0px}.right-5{right:1.25rem}.top-0{top:0px}.right-3{right:.75rem}.top-3{top:.75rem}.top-\[2px\]{top:2px}.z-10{z-index:10}.col-span-1{grid-column:span 1 / span 1}.float-right{float:right}.clear-right{clear:right}.m-12{margin:3rem}.m-2{margin:.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-3{margin-top:.75rem;margin-bottom:.75rem}.my-12{margin-top:3rem;margin-bottom:3rem}.my-auto{margin-top:auto;margin-bottom:auto}.my-2{margin-top:.5rem;margin-bottom:.5rem}.mr-1{margin-right:.25rem}.ml-3{margin-left:.75rem}.mt-2{margin-top:.5rem}.mt-5{margin-top:1.25rem}.mr-1\.5{margin-right:.375rem}.mt-10{margin-top:2.5rem}.mt-0{margin-top:0}.mb-0{margin-bottom:0}.mt-3{margin-top:.75rem}.mr-2{margin-right:.5rem}.mt-6{margin-top:1.5rem}.mt-1{margin-top:.25rem}.mr-3{margin-right:.75rem}.mb-3{margin-bottom:.75rem}.mt-4{margin-top:1rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-16{height:4rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-full{height:100%}.h-screen{height:100vh}.h-80{height:20rem}.h-12{height:3rem}.h-10{height:2.5rem}.h-5\/6{height:83.333333%}.h-5{height:1.25rem}.h-20{height:5rem}.h-\[17rem\]{height:17rem}.h-1\/2{height:50%}.h-\[40vh\]{height:40vh}.min-h-screen{min-height:100vh}.w-6{width:1.5rem}.w-auto{width:auto}.w-8{width:2rem}.w-48{width:12rem}.w-10\/12{width:83.333333%}.w-fit{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-11\/12{width:91.666667%}.w-16{width:4rem}.w-3\/4{width:75%}.w-10{width:2.5rem}.w-\[150px\]{width:150px}.w-\[90\%\]{width:90%}.w-12{width:3rem}.w-5\/6{width:83.333333%}.w-20{width:5rem}.max-w-7xl{max-width:80rem}.max-w-screen-lg{max-width:1024px}.max-w-3xl{max-width:48rem}.max-w-2xl{max-width:42rem}.max-w-\[40\%\]{max-width:40%}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.origin-top-right{transform-origin:top right}.translate-y-1\/2{--tw-translate-y: 50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-95{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-90{--tw-scale-x: .9;--tw-scale-y: .9;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-items-center{justify-items:center}.gap-6{gap:1.5rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1.5rem * var(--tw-space-x-reverse));margin-left:calc(1.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-5>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1.25rem * var(--tw-space-x-reverse));margin-left:calc(1.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-x-10>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(2.5rem * var(--tw-space-x-reverse));margin-left:calc(2.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-3\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.875rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.875rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-16>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(4rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(4rem * var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.space-x-1\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.375rem * var(--tw-space-x-reverse));margin-left:calc(.375rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-20>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(5rem * var(--tw-space-x-reverse));margin-left:calc(5rem * calc(1 - var(--tw-space-x-reverse)))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(229 231 235 / var(--tw-divide-opacity))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.rounded-md{border-radius:.375rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-l-xl{border-top-left-radius:.75rem;border-bottom-left-radius:.75rem}.border-2{border-width:2px}.border{border-width:1px}.border-b-2{border-bottom-width:2px}.border-b{border-bottom-width:1px}.border-l-4{border-left-width:4px}.border-dashed{border-style:dashed}.border-indigo-500{--tw-border-opacity: 1;border-color:rgb(99 102 241 / var(--tw-border-opacity))}.border-transparent{border-color:transparent}.border-blue-400{--tw-border-opacity: 1;border-color:rgb(96 165 250 / var(--tw-border-opacity))}.border-gray-400{--tw-border-opacity: 1;border-color:rgb(156 163 175 / var(--tw-border-opacity))}.border-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity))}.border-b-blue-300{--tw-border-opacity: 1;border-bottom-color:rgb(147 197 253 / var(--tw-border-opacity))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.bg-indigo-50{--tw-bg-opacity: 1;background-color:rgb(238 242 255 / var(--tw-bg-opacity))}.bg-\[\#313136\]{--tw-bg-opacity: 1;background-color:rgb(49 49 54 / var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.bg-opacity-20{--tw-bg-opacity: .2}.bg-contain{background-size:contain}.bg-center{background-position:center}.bg-no-repeat{background-repeat:no-repeat}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-6{padding:1.5rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-8{padding:2rem}.px-1{padding-left:.25rem;padding-right:.25rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.pt-1{padding-top:.25rem}.pr-2{padding-right:.5rem}.pt-2{padding-top:.5rem}.pb-4{padding-bottom:1rem}.pl-3{padding-left:.75rem}.pr-4{padding-right:1rem}.pb-20{padding-bottom:5rem}.pt-5{padding-top:1.25rem}.pb-2{padding-bottom:.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.text-sm{font-size:.875rem;line-height:1.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-7xl{font-size:4.5rem;line-height:1}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-5xl{font-size:3rem;line-height:1}.text-xs{font-size:.75rem;line-height:1rem}.text-\[17px\]{font-size:17px}.text-4xl{font-size:2.25rem;line-height:2.5rem}.font-medium{font-weight:500}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.leading-none{line-height:1}.leading-6{line-height:1.5rem}.tracking-wide{letter-spacing:.025em}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.text-indigo-700{--tw-text-opacity: 1;color:rgb(67 56 202 / var(--tw-text-opacity))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity))}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.underline{-webkit-text-decoration-line:underline;text-decoration-line:underline}.opacity-0{opacity:0}.opacity-100{opacity:1}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-black{--tw-ring-opacity: 1;--tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity))}.ring-opacity-5{--tw-ring-opacity: .05}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-75{transition-duration:75ms}.duration-300{transition-duration:.3s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.divider{margin-top:.25rem;margin-bottom:.25rem;display:block;height:1px;width:100%;border-top-width:1px}.link{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity))}.link:hover{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity))}.empty\:mt-0:empty{margin-top:0}.hover\:border-gray-300:hover{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity))}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.hover\:bg-gray-50:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.hover\:bg-gray-200:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity))}.hover\:text-gray-500:hover{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.hover\:text-gray-700:hover{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.hover\:text-blue-500:hover{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity))}.hover\:opacity-100:hover{opacity:1}.hover\:shadow:hover{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-2xl:hover{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-inset:focus{--tw-ring-inset: inset}.focus\:ring-indigo-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}@media (min-width: 640px){.sm\:static{position:static}.sm\:inset-auto{top:auto;right:auto;bottom:auto;left:auto}.sm\:bottom-10{bottom:2.5rem}.sm\:col-span-2{grid-column:span 2 / span 2}.sm\:ml-6{margin-left:1.5rem}.sm\:mt-5{margin-top:1.25rem}.sm\:mt-px{margin-top:1px}.sm\:mt-0{margin-top:0}.sm\:flex{display:flex}.sm\:grid{display:grid}.sm\:hidden{display:none}.sm\:w-6\/12{width:50%}.sm\:w-36{width:9rem}.sm\:w-24{width:6rem}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:items-start{align-items:flex-start}.sm\:items-stretch{align-items:stretch}.sm\:justify-start{justify-content:flex-start}.sm\:gap-4{gap:1rem}.sm\:space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(2rem * var(--tw-space-x-reverse));margin-left:calc(2rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:.5rem}.sm\:rounded-xl{border-radius:.75rem}.sm\:border-t{border-top-width:1px}.sm\:border-b-0{border-bottom-width:0px}.sm\:border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}.sm\:p-10{padding:2.5rem}.sm\:p-12{padding:3rem}.sm\:pr-0{padding-right:0}.sm\:pb-28{padding-bottom:7rem}.sm\:pt-5{padding-top:1.25rem}.sm\:pt-2{padding-top:.5rem}.sm\:pb-0{padding-bottom:0}}@media (min-width: 768px){.md\:block{display:block}.md\:h-\[60vh\]{height:60vh}.md\:w-5\/12{width:41.666667%}.md\:w-48{width:12rem}.md\:w-36{width:9rem}.md\:max-w-\[50\%\]{max-width:50%}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width: 1024px){.lg\:block{display:block}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:h-\[70vh\]{height:70vh}.lg\:w-1\/2{width:50%}.lg\:w-4\/12{width:33.333333%}.lg\:w-64{width:16rem}.lg\:w-48{width:12rem}.lg\:max-w-\[60\%\]{max-width:60%}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width: 1280px){.xl\:m-16{margin:4rem}.xl\:w-1\/2{width:50%}.xl\:w-3\/12{width:25%}.xl\:w-96{width:24rem}.xl\:w-80{width:20rem}.xl\:w-64{width:16rem}.xl\:max-w-\[70\%\]{max-width:70%}.xl\:text-3xl{font-size:1.875rem;line-height:2.25rem}} diff --git a/src/main/resources/static/assets/index.bbf7818f.js b/src/main/resources/static/assets/index.bbf7818f.js new file mode 100644 index 0000000..d771d4f --- /dev/null +++ b/src/main/resources/static/assets/index.bbf7818f.js @@ -0,0 +1,111 @@ +const p$2=function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))n(a);new MutationObserver(a=>{for(const o of a)if(o.type==="childList")for(const s of o.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&n(s)}).observe(document,{childList:!0,subtree:!0});function r(a){const o={};return a.integrity&&(o.integrity=a.integrity),a.referrerpolicy&&(o.referrerPolicy=a.referrerpolicy),a.crossorigin==="use-credentials"?o.credentials="include":a.crossorigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function n(a){if(a.ep)return;a.ep=!0;const o=r(a);fetch(a.href,o)}};p$2();function makeMap(e,t){const r=Object.create(null),n=e.split(",");for(let a=0;a!!r[a.toLowerCase()]:a=>!!r[a]}const GLOBALS_WHITE_LISTED="Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt",isGloballyWhitelisted=makeMap(GLOBALS_WHITE_LISTED),specialBooleanAttrs="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",isSpecialBooleanAttr=makeMap(specialBooleanAttrs);function includeBooleanAttr(e){return!!e||e===""}function normalizeStyle(e){if(isArray$2(e)){const t={};for(let r=0;r{if(r){const n=r.split(propertyDelimiterRE);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function normalizeClass(e){let t="";if(isString$4(e))t=e;else if(isArray$2(e))for(let r=0;rlooseEqual(r,t))}const toDisplayString$1=e=>isString$4(e)?e:e==null?"":isArray$2(e)||isObject$5(e)&&(e.toString===objectToString$2||!isFunction$4(e.toString))?JSON.stringify(e,replacer,2):String(e),replacer=(e,t)=>t&&t.__v_isRef?replacer(e,t.value):isMap(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((r,[n,a])=>(r[`${n} =>`]=a,r),{})}:isSet(t)?{[`Set(${t.size})`]:[...t.values()]}:isObject$5(t)&&!isArray$2(t)&&!isPlainObject$5(t)?String(t):t,EMPTY_OBJ={},EMPTY_ARR=[],NOOP=()=>{},NO=()=>!1,onRE=/^on[^a-z]/,isOn=e=>onRE.test(e),isModelListener=e=>e.startsWith("onUpdate:"),extend$1=Object.assign,remove=(e,t)=>{const r=e.indexOf(t);r>-1&&e.splice(r,1)},hasOwnProperty$3=Object.prototype.hasOwnProperty,hasOwn$2=(e,t)=>hasOwnProperty$3.call(e,t),isArray$2=Array.isArray,isMap=e=>toTypeString$2(e)==="[object Map]",isSet=e=>toTypeString$2(e)==="[object Set]",isDate$2=e=>toTypeString$2(e)==="[object Date]",isFunction$4=e=>typeof e=="function",isString$4=e=>typeof e=="string",isSymbol=e=>typeof e=="symbol",isObject$5=e=>e!==null&&typeof e=="object",isPromise$1=e=>isObject$5(e)&&isFunction$4(e.then)&&isFunction$4(e.catch),objectToString$2=Object.prototype.toString,toTypeString$2=e=>objectToString$2.call(e),toRawType=e=>toTypeString$2(e).slice(8,-1),isPlainObject$5=e=>toTypeString$2(e)==="[object Object]",isIntegerKey=e=>isString$4(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,isReservedProp=makeMap(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),cacheStringFunction=e=>{const t=Object.create(null);return r=>t[r]||(t[r]=e(r))},camelizeRE=/-(\w)/g,camelize=cacheStringFunction(e=>e.replace(camelizeRE,(t,r)=>r?r.toUpperCase():"")),hyphenateRE=/\B([A-Z])/g,hyphenate$1=cacheStringFunction(e=>e.replace(hyphenateRE,"-$1").toLowerCase()),capitalize=cacheStringFunction(e=>e.charAt(0).toUpperCase()+e.slice(1)),toHandlerKey=cacheStringFunction(e=>e?`on${capitalize(e)}`:""),hasChanged=(e,t)=>!Object.is(e,t),invokeArrayFns=(e,t)=>{for(let r=0;r{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:r})},toNumber=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let _globalThis$1;const getGlobalThis$1=()=>_globalThis$1||(_globalThis$1=typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:typeof window!="undefined"?window:typeof global!="undefined"?global:{});let activeEffectScope;class EffectScope{constructor(t=!1){this.active=!0,this.effects=[],this.cleanups=[],!t&&activeEffectScope&&(this.parent=activeEffectScope,this.index=(activeEffectScope.scopes||(activeEffectScope.scopes=[])).push(this)-1)}run(t){if(this.active){const r=activeEffectScope;try{return activeEffectScope=this,t()}finally{activeEffectScope=r}}}on(){activeEffectScope=this}off(){activeEffectScope=this.parent}stop(t){if(this.active){let r,n;for(r=0,n=this.effects.length;r{const t=new Set(e);return t.w=0,t.n=0,t},wasTracked=e=>(e.w&trackOpBit)>0,newTracked=e=>(e.n&trackOpBit)>0,initDepMarkers=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let r=0;for(let n=0;n{(u==="length"||u>=n)&&l.push(c)});else switch(r!==void 0&&l.push(s.get(r)),t){case"add":isArray$2(e)?isIntegerKey(r)&&l.push(s.get("length")):(l.push(s.get(ITERATE_KEY)),isMap(e)&&l.push(s.get(MAP_KEY_ITERATE_KEY)));break;case"delete":isArray$2(e)||(l.push(s.get(ITERATE_KEY)),isMap(e)&&l.push(s.get(MAP_KEY_ITERATE_KEY)));break;case"set":isMap(e)&&l.push(s.get(ITERATE_KEY));break}if(l.length===1)l[0]&&triggerEffects(l[0]);else{const c=[];for(const u of l)u&&c.push(...u);triggerEffects(createDep(c))}}function triggerEffects(e,t){const r=isArray$2(e)?e:[...e];for(const n of r)n.computed&&triggerEffect(n);for(const n of r)n.computed||triggerEffect(n)}function triggerEffect(e,t){(e!==activeEffect||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}const isNonTrackableKeys=makeMap("__proto__,__v_isRef,__isVue"),builtInSymbols=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(isSymbol)),get=createGetter(),shallowGet=createGetter(!1,!0),readonlyGet=createGetter(!0),shallowReadonlyGet=createGetter(!0,!0),arrayInstrumentations=createArrayInstrumentations();function createArrayInstrumentations(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...r){const n=toRaw(this);for(let o=0,s=this.length;o{e[t]=function(...r){pauseTracking();const n=toRaw(this)[t].apply(this,r);return resetTracking(),n}}),e}function createGetter(e=!1,t=!1){return function(n,a,o){if(a==="__v_isReactive")return!e;if(a==="__v_isReadonly")return e;if(a==="__v_isShallow")return t;if(a==="__v_raw"&&o===(e?t?shallowReadonlyMap:readonlyMap:t?shallowReactiveMap:reactiveMap).get(n))return n;const s=isArray$2(n);if(!e&&s&&hasOwn$2(arrayInstrumentations,a))return Reflect.get(arrayInstrumentations,a,o);const l=Reflect.get(n,a,o);return(isSymbol(a)?builtInSymbols.has(a):isNonTrackableKeys(a))||(e||track(n,"get",a),t)?l:isRef(l)?s&&isIntegerKey(a)?l:l.value:isObject$5(l)?e?readonly(l):reactive(l):l}}const set=createSetter(),shallowSet=createSetter(!0);function createSetter(e=!1){return function(r,n,a,o){let s=r[n];if(isReadonly(s)&&isRef(s)&&!isRef(a))return!1;if(!e&&!isReadonly(a)&&(isShallow(a)||(a=toRaw(a),s=toRaw(s)),!isArray$2(r)&&isRef(s)&&!isRef(a)))return s.value=a,!0;const l=isArray$2(r)&&isIntegerKey(n)?Number(n)e,getProto=e=>Reflect.getPrototypeOf(e);function get$1(e,t,r=!1,n=!1){e=e.__v_raw;const a=toRaw(e),o=toRaw(t);r||(t!==o&&track(a,"get",t),track(a,"get",o));const{has:s}=getProto(a),l=n?toShallow:r?toReadonly:toReactive;if(s.call(a,t))return l(e.get(t));if(s.call(a,o))return l(e.get(o));e!==a&&e.get(t)}function has$1(e,t=!1){const r=this.__v_raw,n=toRaw(r),a=toRaw(e);return t||(e!==a&&track(n,"has",e),track(n,"has",a)),e===a?r.has(e):r.has(e)||r.has(a)}function size(e,t=!1){return e=e.__v_raw,!t&&track(toRaw(e),"iterate",ITERATE_KEY),Reflect.get(e,"size",e)}function add(e){e=toRaw(e);const t=toRaw(this);return getProto(t).has.call(t,e)||(t.add(e),trigger(t,"add",e,e)),this}function set$1(e,t){t=toRaw(t);const r=toRaw(this),{has:n,get:a}=getProto(r);let o=n.call(r,e);o||(e=toRaw(e),o=n.call(r,e));const s=a.call(r,e);return r.set(e,t),o?hasChanged(t,s)&&trigger(r,"set",e,t):trigger(r,"add",e,t),this}function deleteEntry(e){const t=toRaw(this),{has:r,get:n}=getProto(t);let a=r.call(t,e);a||(e=toRaw(e),a=r.call(t,e)),n&&n.call(t,e);const o=t.delete(e);return a&&trigger(t,"delete",e,void 0),o}function clear(){const e=toRaw(this),t=e.size!==0,r=e.clear();return t&&trigger(e,"clear",void 0,void 0),r}function createForEach(e,t){return function(n,a){const o=this,s=o.__v_raw,l=toRaw(s),c=t?toShallow:e?toReadonly:toReactive;return!e&&track(l,"iterate",ITERATE_KEY),s.forEach((u,f)=>n.call(a,c(u),c(f),o))}}function createIterableMethod(e,t,r){return function(...n){const a=this.__v_raw,o=toRaw(a),s=isMap(o),l=e==="entries"||e===Symbol.iterator&&s,c=e==="keys"&&s,u=a[e](...n),f=r?toShallow:t?toReadonly:toReactive;return!t&&track(o,"iterate",c?MAP_KEY_ITERATE_KEY:ITERATE_KEY),{next(){const{value:t1,done:a1}=u.next();return a1?{value:t1,done:a1}:{value:l?[f(t1[0]),f(t1[1])]:f(t1),done:a1}},[Symbol.iterator](){return this}}}}function createReadonlyMethod(e){return function(...t){return e==="delete"?!1:this}}function createInstrumentations(){const e={get(o){return get$1(this,o)},get size(){return size(this)},has:has$1,add,set:set$1,delete:deleteEntry,clear,forEach:createForEach(!1,!1)},t={get(o){return get$1(this,o,!1,!0)},get size(){return size(this)},has:has$1,add,set:set$1,delete:deleteEntry,clear,forEach:createForEach(!1,!0)},r={get(o){return get$1(this,o,!0)},get size(){return size(this,!0)},has(o){return has$1.call(this,o,!0)},add:createReadonlyMethod("add"),set:createReadonlyMethod("set"),delete:createReadonlyMethod("delete"),clear:createReadonlyMethod("clear"),forEach:createForEach(!0,!1)},n={get(o){return get$1(this,o,!0,!0)},get size(){return size(this,!0)},has(o){return has$1.call(this,o,!0)},add:createReadonlyMethod("add"),set:createReadonlyMethod("set"),delete:createReadonlyMethod("delete"),clear:createReadonlyMethod("clear"),forEach:createForEach(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(o=>{e[o]=createIterableMethod(o,!1,!1),r[o]=createIterableMethod(o,!0,!1),t[o]=createIterableMethod(o,!1,!0),n[o]=createIterableMethod(o,!0,!0)}),[e,r,t,n]}const[mutableInstrumentations,readonlyInstrumentations,shallowInstrumentations,shallowReadonlyInstrumentations]=createInstrumentations();function createInstrumentationGetter(e,t){const r=t?e?shallowReadonlyInstrumentations:shallowInstrumentations:e?readonlyInstrumentations:mutableInstrumentations;return(n,a,o)=>a==="__v_isReactive"?!e:a==="__v_isReadonly"?e:a==="__v_raw"?n:Reflect.get(hasOwn$2(r,a)&&a in n?r:n,a,o)}const mutableCollectionHandlers={get:createInstrumentationGetter(!1,!1)},shallowCollectionHandlers={get:createInstrumentationGetter(!1,!0)},readonlyCollectionHandlers={get:createInstrumentationGetter(!0,!1)},shallowReadonlyCollectionHandlers={get:createInstrumentationGetter(!0,!0)},reactiveMap=new WeakMap,shallowReactiveMap=new WeakMap,readonlyMap=new WeakMap,shallowReadonlyMap=new WeakMap;function targetTypeMap(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function getTargetType(e){return e.__v_skip||!Object.isExtensible(e)?0:targetTypeMap(toRawType(e))}function reactive(e){return isReadonly(e)?e:createReactiveObject(e,!1,mutableHandlers,mutableCollectionHandlers,reactiveMap)}function shallowReactive(e){return createReactiveObject(e,!1,shallowReactiveHandlers,shallowCollectionHandlers,shallowReactiveMap)}function readonly(e){return createReactiveObject(e,!0,readonlyHandlers,readonlyCollectionHandlers,readonlyMap)}function shallowReadonly(e){return createReactiveObject(e,!0,shallowReadonlyHandlers,shallowReadonlyCollectionHandlers,shallowReadonlyMap)}function createReactiveObject(e,t,r,n,a){if(!isObject$5(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=a.get(e);if(o)return o;const s=getTargetType(e);if(s===0)return e;const l=new Proxy(e,s===2?n:r);return a.set(e,l),l}function isReactive(e){return isReadonly(e)?isReactive(e.__v_raw):!!(e&&e.__v_isReactive)}function isReadonly(e){return!!(e&&e.__v_isReadonly)}function isShallow(e){return!!(e&&e.__v_isShallow)}function isProxy(e){return isReactive(e)||isReadonly(e)}function toRaw(e){const t=e&&e.__v_raw;return t?toRaw(t):e}function markRaw(e){return def(e,"__v_skip",!0),e}const toReactive=e=>isObject$5(e)?reactive(e):e,toReadonly=e=>isObject$5(e)?readonly(e):e;function trackRefValue(e){shouldTrack&&activeEffect&&(e=toRaw(e),trackEffects(e.dep||(e.dep=createDep())))}function triggerRefValue(e,t){e=toRaw(e),e.dep&&triggerEffects(e.dep)}function isRef(e){return!!(e&&e.__v_isRef===!0)}function ref(e){return createRef(e,!1)}function shallowRef(e){return createRef(e,!0)}function createRef(e,t){return isRef(e)?e:new RefImpl(e,t)}class RefImpl{constructor(t,r){this.__v_isShallow=r,this.dep=void 0,this.__v_isRef=!0,this._rawValue=r?t:toRaw(t),this._value=r?t:toReactive(t)}get value(){return trackRefValue(this),this._value}set value(t){t=this.__v_isShallow?t:toRaw(t),hasChanged(t,this._rawValue)&&(this._rawValue=t,this._value=this.__v_isShallow?t:toReactive(t),triggerRefValue(this))}}function triggerRef(e){triggerRefValue(e)}function unref(e){return isRef(e)?e.value:e}const shallowUnwrapHandlers={get:(e,t,r)=>unref(Reflect.get(e,t,r)),set:(e,t,r,n)=>{const a=e[t];return isRef(a)&&!isRef(r)?(a.value=r,!0):Reflect.set(e,t,r,n)}};function proxyRefs(e){return isReactive(e)?e:new Proxy(e,shallowUnwrapHandlers)}class CustomRefImpl{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:r,set:n}=t(()=>trackRefValue(this),()=>triggerRefValue(this));this._get=r,this._set=n}get value(){return this._get()}set value(t){this._set(t)}}function customRef(e){return new CustomRefImpl(e)}function toRefs(e){const t=isArray$2(e)?new Array(e.length):{};for(const r in e)t[r]=toRef(e,r);return t}class ObjectRefImpl{constructor(t,r,n){this._object=t,this._key=r,this._defaultValue=n,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}}function toRef(e,t,r){const n=e[t];return isRef(n)?n:new ObjectRefImpl(e,t,r)}class ComputedRefImpl{constructor(t,r,n,a){this._setter=r,this.dep=void 0,this.__v_isRef=!0,this._dirty=!0,this.effect=new ReactiveEffect(t,()=>{this._dirty||(this._dirty=!0,triggerRefValue(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!a,this.__v_isReadonly=n}get value(){const t=toRaw(this);return trackRefValue(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}function computed$1(e,t,r=!1){let n,a;const o=isFunction$4(e);return o?(n=e,a=NOOP):(n=e.get,a=e.set),new ComputedRefImpl(n,a,o||!a,r)}const stack=[];function warn$1(e,...t){pauseTracking();const r=stack.length?stack[stack.length-1].component:null,n=r&&r.appContext.config.warnHandler,a=getComponentTrace();if(n)callWithErrorHandling(n,r,11,[e+t.join(""),r&&r.proxy,a.map(({vnode:o})=>`at <${formatComponentName(r,o.type)}>`).join(` +`),a]);else{const o=[`[Vue warn]: ${e}`,...t];a.length&&o.push(` +`,...formatTrace(a)),console.warn(...o)}resetTracking()}function getComponentTrace(){let e=stack[stack.length-1];if(!e)return[];const t=[];for(;e;){const r=t[0];r&&r.vnode===e?r.recurseCount++:t.push({vnode:e,recurseCount:0});const n=e.component&&e.component.parent;e=n&&n.vnode}return t}function formatTrace(e){const t=[];return e.forEach((r,n)=>{t.push(...n===0?[]:[` +`],...formatTraceEntry(r))}),t}function formatTraceEntry({vnode:e,recurseCount:t}){const r=t>0?`... (${t} recursive calls)`:"",n=e.component?e.component.parent==null:!1,a=` at <${formatComponentName(e.component,e.type,n)}`,o=">"+r;return e.props?[a,...formatProps(e.props),o]:[a+o]}function formatProps(e){const t=[],r=Object.keys(e);return r.slice(0,3).forEach(n=>{t.push(...formatProp(n,e[n]))}),r.length>3&&t.push(" ..."),t}function formatProp(e,t,r){return isString$4(t)?(t=JSON.stringify(t),r?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?r?t:[`${e}=${t}`]:isRef(t)?(t=formatProp(e,toRaw(t.value),!0),r?t:[`${e}=Ref<`,t,">"]):isFunction$4(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=toRaw(t),r?t:[`${e}=`,t])}function callWithErrorHandling(e,t,r,n){let a;try{a=n?e(...n):e()}catch(o){handleError(o,t,r)}return a}function callWithAsyncErrorHandling(e,t,r,n){if(isFunction$4(e)){const o=callWithErrorHandling(e,t,r,n);return o&&isPromise$1(o)&&o.catch(s=>{handleError(s,t,r)}),o}const a=[];for(let o=0;o>>1;getId(queue[n])flushIndex&&queue.splice(t,1)}function queueCb(e,t,r,n){isArray$2(e)?r.push(...e):(!t||!t.includes(e,e.allowRecurse?n+1:n))&&r.push(e),queueFlush()}function queuePreFlushCb(e){queueCb(e,activePreFlushCbs,pendingPreFlushCbs,preFlushIndex)}function queuePostFlushCb(e){queueCb(e,activePostFlushCbs,pendingPostFlushCbs,postFlushIndex)}function flushPreFlushCbs(e,t=null){if(pendingPreFlushCbs.length){for(currentPreFlushParentJob=t,activePreFlushCbs=[...new Set(pendingPreFlushCbs)],pendingPreFlushCbs.length=0,preFlushIndex=0;preFlushIndexgetId(r)-getId(n)),postFlushIndex=0;postFlushIndexe.id==null?1/0:e.id;function flushJobs(e){isFlushPending=!1,isFlushing=!0,flushPreFlushCbs(e),queue.sort((r,n)=>getId(r)-getId(n));const t=NOOP;try{for(flushIndex=0;flushIndexdevtools$1.emit(a,...o)),buffer=[]):typeof window!="undefined"&&window.HTMLElement&&!(!((n=(r=window.navigator)===null||r===void 0?void 0:r.userAgent)===null||n===void 0)&&n.includes("jsdom"))?((t.__VUE_DEVTOOLS_HOOK_REPLAY__=t.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push(o=>{setDevtoolsHook(o,t)}),setTimeout(()=>{devtools$1||(t.__VUE_DEVTOOLS_HOOK_REPLAY__=null,buffer=[])},3e3)):buffer=[]}function emit$1(e,t,...r){if(e.isUnmounted)return;const n=e.vnode.props||EMPTY_OBJ;let a=r;const o=t.startsWith("update:"),s=o&&t.slice(7);if(s&&s in n){const f=`${s==="modelValue"?"model":s}Modifiers`,{number:t1,trim:a1}=n[f]||EMPTY_OBJ;a1&&(a=r.map(i1=>i1.trim())),t1&&(a=r.map(toNumber))}let l,c=n[l=toHandlerKey(t)]||n[l=toHandlerKey(camelize(t))];!c&&o&&(c=n[l=toHandlerKey(hyphenate$1(t))]),c&&callWithAsyncErrorHandling(c,e,6,a);const u=n[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,callWithAsyncErrorHandling(u,e,6,a)}}function normalizeEmitsOptions(e,t,r=!1){const n=t.emitsCache,a=n.get(e);if(a!==void 0)return a;const o=e.emits;let s={},l=!1;if(!isFunction$4(e)){const c=u=>{const f=normalizeEmitsOptions(u,t,!0);f&&(l=!0,extend$1(s,f))};!r&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(n.set(e,null),null):(isArray$2(o)?o.forEach(c=>s[c]=null):extend$1(s,o),n.set(e,s),s)}function isEmitListener(e,t){return!e||!isOn(t)?!1:(t=t.slice(2).replace(/Once$/,""),hasOwn$2(e,t[0].toLowerCase()+t.slice(1))||hasOwn$2(e,hyphenate$1(t))||hasOwn$2(e,t))}let currentRenderingInstance=null,currentScopeId=null;function setCurrentRenderingInstance(e){const t=currentRenderingInstance;return currentRenderingInstance=e,currentScopeId=e&&e.type.__scopeId||null,t}function pushScopeId(e){currentScopeId=e}function popScopeId(){currentScopeId=null}const withScopeId=e=>withCtx;function withCtx(e,t=currentRenderingInstance,r){if(!t||e._n)return e;const n=(...a)=>{n._d&&setBlockTracking(-1);const o=setCurrentRenderingInstance(t),s=e(...a);return setCurrentRenderingInstance(o),n._d&&setBlockTracking(1),s};return n._n=!0,n._c=!0,n._d=!0,n}function markAttrsAccessed(){}function renderComponentRoot(e){const{type:t,vnode:r,proxy:n,withProxy:a,props:o,propsOptions:[s],slots:l,attrs:c,emit:u,render:f,renderCache:t1,data:a1,setupState:i1,ctx:r1,inheritAttrs:l1}=e;let s1,n1;const o1=setCurrentRenderingInstance(e);try{if(r.shapeFlag&4){const f1=a||n;s1=normalizeVNode(f.call(f1,f1,t1,o,i1,a1,r1)),n1=c}else{const f1=t;s1=normalizeVNode(f1.length>1?f1(o,{attrs:c,slots:l,emit:u}):f1(o,null)),n1=t.props?c:getFunctionalFallthrough(c)}}catch(f1){blockStack.length=0,handleError(f1,e,1),s1=createVNode(Comment)}let u1=s1;if(n1&&l1!==!1){const f1=Object.keys(n1),{shapeFlag:g1}=u1;f1.length&&g1&7&&(s&&f1.some(isModelListener)&&(n1=filterModelListeners(n1,s)),u1=cloneVNode(u1,n1))}return r.dirs&&(u1=cloneVNode(u1),u1.dirs=u1.dirs?u1.dirs.concat(r.dirs):r.dirs),r.transition&&(u1.transition=r.transition),s1=u1,setCurrentRenderingInstance(o1),s1}function filterSingleRoot(e){let t;for(let r=0;r{let t;for(const r in e)(r==="class"||r==="style"||isOn(r))&&((t||(t={}))[r]=e[r]);return t},filterModelListeners=(e,t)=>{const r={};for(const n in e)(!isModelListener(n)||!(n.slice(9)in t))&&(r[n]=e[n]);return r};function shouldUpdateComponent(e,t,r){const{props:n,children:a,component:o}=e,{props:s,children:l,patchFlag:c}=t,u=o.emitsOptions;if(t.dirs||t.transition)return!0;if(r&&c>=0){if(c&1024)return!0;if(c&16)return n?hasPropsChanged(n,s,u):!!s;if(c&8){const f=t.dynamicProps;for(let t1=0;t1e.__isSuspense,SuspenseImpl={name:"Suspense",__isSuspense:!0,process(e,t,r,n,a,o,s,l,c,u){e==null?mountSuspense(t,r,n,a,o,s,l,c,u):patchSuspense(e,t,r,n,a,s,l,c,u)},hydrate:hydrateSuspense,create:createSuspenseBoundary,normalize:normalizeSuspenseChildren},Suspense=SuspenseImpl;function triggerEvent(e,t){const r=e.props&&e.props[t];isFunction$4(r)&&r()}function mountSuspense(e,t,r,n,a,o,s,l,c){const{p:u,o:{createElement:f}}=c,t1=f("div"),a1=e.suspense=createSuspenseBoundary(e,a,n,t,t1,r,o,s,l,c);u(null,a1.pendingBranch=e.ssContent,t1,null,n,a1,o,s),a1.deps>0?(triggerEvent(e,"onPending"),triggerEvent(e,"onFallback"),u(null,e.ssFallback,t,r,n,null,o,s),setActiveBranch(a1,e.ssFallback)):a1.resolve()}function patchSuspense(e,t,r,n,a,o,s,l,{p:c,um:u,o:{createElement:f}}){const t1=t.suspense=e.suspense;t1.vnode=t,t.el=e.el;const a1=t.ssContent,i1=t.ssFallback,{activeBranch:r1,pendingBranch:l1,isInFallback:s1,isHydrating:n1}=t1;if(l1)t1.pendingBranch=a1,isSameVNodeType(a1,l1)?(c(l1,a1,t1.hiddenContainer,null,a,t1,o,s,l),t1.deps<=0?t1.resolve():s1&&(c(r1,i1,r,n,a,null,o,s,l),setActiveBranch(t1,i1))):(t1.pendingId++,n1?(t1.isHydrating=!1,t1.activeBranch=l1):u(l1,a,t1),t1.deps=0,t1.effects.length=0,t1.hiddenContainer=f("div"),s1?(c(null,a1,t1.hiddenContainer,null,a,t1,o,s,l),t1.deps<=0?t1.resolve():(c(r1,i1,r,n,a,null,o,s,l),setActiveBranch(t1,i1))):r1&&isSameVNodeType(a1,r1)?(c(r1,a1,r,n,a,t1,o,s,l),t1.resolve(!0)):(c(null,a1,t1.hiddenContainer,null,a,t1,o,s,l),t1.deps<=0&&t1.resolve()));else if(r1&&isSameVNodeType(a1,r1))c(r1,a1,r,n,a,t1,o,s,l),setActiveBranch(t1,a1);else if(triggerEvent(t,"onPending"),t1.pendingBranch=a1,t1.pendingId++,c(null,a1,t1.hiddenContainer,null,a,t1,o,s,l),t1.deps<=0)t1.resolve();else{const{timeout:o1,pendingId:u1}=t1;o1>0?setTimeout(()=>{t1.pendingId===u1&&t1.fallback(i1)},o1):o1===0&&t1.fallback(i1)}}function createSuspenseBoundary(e,t,r,n,a,o,s,l,c,u,f=!1){const{p:t1,m:a1,um:i1,n:r1,o:{parentNode:l1,remove:s1}}=u,n1=toNumber(e.props&&e.props.timeout),o1={vnode:e,parent:t,parentComponent:r,isSVG:s,container:n,hiddenContainer:a,anchor:o,deps:0,pendingId:0,timeout:typeof n1=="number"?n1:-1,activeBranch:null,pendingBranch:null,isInFallback:!0,isHydrating:f,isUnmounted:!1,effects:[],resolve(u1=!1){const{vnode:f1,activeBranch:g1,pendingBranch:k1,pendingId:p1,effects:y1,parentComponent:S1,container:E1}=o1;if(o1.isHydrating)o1.isHydrating=!1;else if(!u1){const F1=g1&&k1.transition&&k1.transition.mode==="out-in";F1&&(g1.transition.afterLeave=()=>{p1===o1.pendingId&&a1(k1,E1,L1,0)});let{anchor:L1}=o1;g1&&(L1=r1(g1),i1(g1,S1,o1,!0)),F1||a1(k1,E1,L1,0)}setActiveBranch(o1,k1),o1.pendingBranch=null,o1.isInFallback=!1;let w1=o1.parent,M1=!1;for(;w1;){if(w1.pendingBranch){w1.effects.push(...y1),M1=!0;break}w1=w1.parent}M1||queuePostFlushCb(y1),o1.effects=[],triggerEvent(f1,"onResolve")},fallback(u1){if(!o1.pendingBranch)return;const{vnode:f1,activeBranch:g1,parentComponent:k1,container:p1,isSVG:y1}=o1;triggerEvent(f1,"onFallback");const S1=r1(g1),E1=()=>{!o1.isInFallback||(t1(null,u1,p1,S1,k1,null,y1,l,c),setActiveBranch(o1,u1))},w1=u1.transition&&u1.transition.mode==="out-in";w1&&(g1.transition.afterLeave=E1),o1.isInFallback=!0,i1(g1,k1,null,!0),w1||E1()},move(u1,f1,g1){o1.activeBranch&&a1(o1.activeBranch,u1,f1,g1),o1.container=u1},next(){return o1.activeBranch&&r1(o1.activeBranch)},registerDep(u1,f1){const g1=!!o1.pendingBranch;g1&&o1.deps++;const k1=u1.vnode.el;u1.asyncDep.catch(p1=>{handleError(p1,u1,0)}).then(p1=>{if(u1.isUnmounted||o1.isUnmounted||o1.pendingId!==u1.suspenseId)return;u1.asyncResolved=!0;const{vnode:y1}=u1;handleSetupResult(u1,p1,!1),k1&&(y1.el=k1);const S1=!k1&&u1.subTree.el;f1(u1,y1,l1(k1||u1.subTree.el),k1?null:r1(u1.subTree),o1,s,c),S1&&s1(S1),updateHOCHostEl(u1,y1.el),g1&&--o1.deps===0&&o1.resolve()})},unmount(u1,f1){o1.isUnmounted=!0,o1.activeBranch&&i1(o1.activeBranch,r,u1,f1),o1.pendingBranch&&i1(o1.pendingBranch,r,u1,f1)}};return o1}function hydrateSuspense(e,t,r,n,a,o,s,l,c){const u=t.suspense=createSuspenseBoundary(t,n,r,e.parentNode,document.createElement("div"),null,a,o,s,l,!0),f=c(e,u.pendingBranch=t.ssContent,r,u,o,s);return u.deps===0&&u.resolve(),f}function normalizeSuspenseChildren(e){const{shapeFlag:t,children:r}=e,n=t&32;e.ssContent=normalizeSuspenseSlot(n?r.default:r),e.ssFallback=n?normalizeSuspenseSlot(r.fallback):createVNode(Comment)}function normalizeSuspenseSlot(e){let t;if(isFunction$4(e)){const r=isBlockTreeEnabled&&e._c;r&&(e._d=!1,openBlock()),e=e(),r&&(e._d=!0,t=currentBlock,closeBlock())}return isArray$2(e)&&(e=filterSingleRoot(e)),e=normalizeVNode(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter(r=>r!==e)),e}function queueEffectWithSuspense(e,t){t&&t.pendingBranch?isArray$2(e)?t.effects.push(...e):t.effects.push(e):queuePostFlushCb(e)}function setActiveBranch(e,t){e.activeBranch=t;const{vnode:r,parentComponent:n}=e,a=r.el=t.el;n&&n.subTree===r&&(n.vnode.el=a,updateHOCHostEl(n,a))}function provide(e,t){if(currentInstance){let r=currentInstance.provides;const n=currentInstance.parent&¤tInstance.parent.provides;n===r&&(r=currentInstance.provides=Object.create(n)),r[e]=t}}function inject(e,t,r=!1){const n=currentInstance||currentRenderingInstance;if(n){const a=n.parent==null?n.vnode.appContext&&n.vnode.appContext.provides:n.parent.provides;if(a&&e in a)return a[e];if(arguments.length>1)return r&&isFunction$4(t)?t.call(n.proxy):t}}function watchEffect(e,t){return doWatch(e,null,t)}function watchPostEffect(e,t){return doWatch(e,null,{flush:"post"})}function watchSyncEffect(e,t){return doWatch(e,null,{flush:"sync"})}const INITIAL_WATCHER_VALUE={};function watch(e,t,r){return doWatch(e,t,r)}function doWatch(e,t,{immediate:r,deep:n,flush:a,onTrack:o,onTrigger:s}=EMPTY_OBJ){const l=currentInstance;let c,u=!1,f=!1;if(isRef(e)?(c=()=>e.value,u=isShallow(e)):isReactive(e)?(c=()=>e,n=!0):isArray$2(e)?(f=!0,u=e.some(n1=>isReactive(n1)||isShallow(n1)),c=()=>e.map(n1=>{if(isRef(n1))return n1.value;if(isReactive(n1))return traverse(n1);if(isFunction$4(n1))return callWithErrorHandling(n1,l,2)})):isFunction$4(e)?t?c=()=>callWithErrorHandling(e,l,2):c=()=>{if(!(l&&l.isUnmounted))return t1&&t1(),callWithAsyncErrorHandling(e,l,3,[a1])}:c=NOOP,t&&n){const n1=c;c=()=>traverse(n1())}let t1,a1=n1=>{t1=s1.onStop=()=>{callWithErrorHandling(n1,l,4)}};if(isInSSRComponentSetup)return a1=NOOP,t?r&&callWithAsyncErrorHandling(t,l,3,[c(),f?[]:void 0,a1]):c(),NOOP;let i1=f?[]:INITIAL_WATCHER_VALUE;const r1=()=>{if(!!s1.active)if(t){const n1=s1.run();(n||u||(f?n1.some((o1,u1)=>hasChanged(o1,i1[u1])):hasChanged(n1,i1)))&&(t1&&t1(),callWithAsyncErrorHandling(t,l,3,[n1,i1===INITIAL_WATCHER_VALUE?void 0:i1,a1]),i1=n1)}else s1.run()};r1.allowRecurse=!!t;let l1;a==="sync"?l1=r1:a==="post"?l1=()=>queuePostRenderEffect(r1,l&&l.suspense):l1=()=>queuePreFlushCb(r1);const s1=new ReactiveEffect(c,l1);return t?r?r1():i1=s1.run():a==="post"?queuePostRenderEffect(s1.run.bind(s1),l&&l.suspense):s1.run(),()=>{s1.stop(),l&&l.scope&&remove(l.scope.effects,s1)}}function instanceWatch(e,t,r){const n=this.proxy,a=isString$4(e)?e.includes(".")?createPathGetter(n,e):()=>n[e]:e.bind(n,n);let o;isFunction$4(t)?o=t:(o=t.handler,r=t);const s=currentInstance;setCurrentInstance(this);const l=doWatch(a,o.bind(n),r);return s?setCurrentInstance(s):unsetCurrentInstance(),l}function createPathGetter(e,t){const r=t.split(".");return()=>{let n=e;for(let a=0;a{traverse(r,t)});else if(isPlainObject$5(e))for(const r in e)traverse(e[r],t);return e}function useTransitionState(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return onMounted(()=>{e.isMounted=!0}),onBeforeUnmount(()=>{e.isUnmounting=!0}),e}const TransitionHookValidator=[Function,Array],BaseTransitionImpl={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:TransitionHookValidator,onEnter:TransitionHookValidator,onAfterEnter:TransitionHookValidator,onEnterCancelled:TransitionHookValidator,onBeforeLeave:TransitionHookValidator,onLeave:TransitionHookValidator,onAfterLeave:TransitionHookValidator,onLeaveCancelled:TransitionHookValidator,onBeforeAppear:TransitionHookValidator,onAppear:TransitionHookValidator,onAfterAppear:TransitionHookValidator,onAppearCancelled:TransitionHookValidator},setup(e,{slots:t}){const r=getCurrentInstance(),n=useTransitionState();let a;return()=>{const o=t.default&&getTransitionRawChildren(t.default(),!0);if(!o||!o.length)return;let s=o[0];if(o.length>1){for(const l1 of o)if(l1.type!==Comment){s=l1;break}}const l=toRaw(e),{mode:c}=l;if(n.isLeaving)return emptyPlaceholder(s);const u=getKeepAliveChild(s);if(!u)return emptyPlaceholder(s);const f=resolveTransitionHooks(u,l,n,r);setTransitionHooks(u,f);const t1=r.subTree,a1=t1&&getKeepAliveChild(t1);let i1=!1;const{getTransitionKey:r1}=u.type;if(r1){const l1=r1();a===void 0?a=l1:l1!==a&&(a=l1,i1=!0)}if(a1&&a1.type!==Comment&&(!isSameVNodeType(u,a1)||i1)){const l1=resolveTransitionHooks(a1,l,n,r);if(setTransitionHooks(a1,l1),c==="out-in")return n.isLeaving=!0,l1.afterLeave=()=>{n.isLeaving=!1,r.update()},emptyPlaceholder(s);c==="in-out"&&u.type!==Comment&&(l1.delayLeave=(s1,n1,o1)=>{const u1=getLeavingNodesForType(n,a1);u1[String(a1.key)]=a1,s1._leaveCb=()=>{n1(),s1._leaveCb=void 0,delete f.delayedLeave},f.delayedLeave=o1})}return s}}},BaseTransition=BaseTransitionImpl;function getLeavingNodesForType(e,t){const{leavingVNodes:r}=e;let n=r.get(t.type);return n||(n=Object.create(null),r.set(t.type,n)),n}function resolveTransitionHooks(e,t,r,n){const{appear:a,mode:o,persisted:s=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:u,onEnterCancelled:f,onBeforeLeave:t1,onLeave:a1,onAfterLeave:i1,onLeaveCancelled:r1,onBeforeAppear:l1,onAppear:s1,onAfterAppear:n1,onAppearCancelled:o1}=t,u1=String(e.key),f1=getLeavingNodesForType(r,e),g1=(y1,S1)=>{y1&&callWithAsyncErrorHandling(y1,n,9,S1)},k1=(y1,S1)=>{const E1=S1[1];g1(y1,S1),isArray$2(y1)?y1.every(w1=>w1.length<=1)&&E1():y1.length<=1&&E1()},p1={mode:o,persisted:s,beforeEnter(y1){let S1=l;if(!r.isMounted)if(a)S1=l1||l;else return;y1._leaveCb&&y1._leaveCb(!0);const E1=f1[u1];E1&&isSameVNodeType(e,E1)&&E1.el._leaveCb&&E1.el._leaveCb(),g1(S1,[y1])},enter(y1){let S1=c,E1=u,w1=f;if(!r.isMounted)if(a)S1=s1||c,E1=n1||u,w1=o1||f;else return;let M1=!1;const F1=y1._enterCb=L1=>{M1||(M1=!0,L1?g1(w1,[y1]):g1(E1,[y1]),p1.delayedLeave&&p1.delayedLeave(),y1._enterCb=void 0)};S1?k1(S1,[y1,F1]):F1()},leave(y1,S1){const E1=String(e.key);if(y1._enterCb&&y1._enterCb(!0),r.isUnmounting)return S1();g1(t1,[y1]);let w1=!1;const M1=y1._leaveCb=F1=>{w1||(w1=!0,S1(),F1?g1(r1,[y1]):g1(i1,[y1]),y1._leaveCb=void 0,f1[E1]===e&&delete f1[E1])};f1[E1]=e,a1?k1(a1,[y1,M1]):M1()},clone(y1){return resolveTransitionHooks(y1,t,r,n)}};return p1}function emptyPlaceholder(e){if(isKeepAlive(e))return e=cloneVNode(e),e.children=null,e}function getKeepAliveChild(e){return isKeepAlive(e)?e.children?e.children[0]:void 0:e}function setTransitionHooks(e,t){e.shapeFlag&6&&e.component?setTransitionHooks(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function getTransitionRawChildren(e,t=!1,r){let n=[],a=0;for(let o=0;o1)for(let o=0;o!!e.type.__asyncLoader;function defineAsyncComponent(e){isFunction$4(e)&&(e={loader:e});const{loader:t,loadingComponent:r,errorComponent:n,delay:a=200,timeout:o,suspensible:s=!0,onError:l}=e;let c=null,u,f=0;const t1=()=>(f++,c=null,a1()),a1=()=>{let i1;return c||(i1=c=t().catch(r1=>{if(r1=r1 instanceof Error?r1:new Error(String(r1)),l)return new Promise((l1,s1)=>{l(r1,()=>l1(t1()),()=>s1(r1),f+1)});throw r1}).then(r1=>i1!==c&&c?c:(r1&&(r1.__esModule||r1[Symbol.toStringTag]==="Module")&&(r1=r1.default),u=r1,r1)))};return defineComponent({name:"AsyncComponentWrapper",__asyncLoader:a1,get __asyncResolved(){return u},setup(){const i1=currentInstance;if(u)return()=>createInnerComp(u,i1);const r1=o1=>{c=null,handleError(o1,i1,13,!n)};if(s&&i1.suspense||isInSSRComponentSetup)return a1().then(o1=>()=>createInnerComp(o1,i1)).catch(o1=>(r1(o1),()=>n?createVNode(n,{error:o1}):null));const l1=ref(!1),s1=ref(),n1=ref(!!a);return a&&setTimeout(()=>{n1.value=!1},a),o!=null&&setTimeout(()=>{if(!l1.value&&!s1.value){const o1=new Error(`Async component timed out after ${o}ms.`);r1(o1),s1.value=o1}},o),a1().then(()=>{l1.value=!0,i1.parent&&isKeepAlive(i1.parent.vnode)&&queueJob(i1.parent.update)}).catch(o1=>{r1(o1),s1.value=o1}),()=>{if(l1.value&&u)return createInnerComp(u,i1);if(s1.value&&n)return createVNode(n,{error:s1.value});if(r&&!n1.value)return createVNode(r)}}})}function createInnerComp(e,{vnode:{ref:t,props:r,children:n,shapeFlag:a},parent:o}){const s=createVNode(e,r,n);return s.ref=t,s}const isKeepAlive=e=>e.type.__isKeepAlive,KeepAliveImpl={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){const r=getCurrentInstance(),n=r.ctx;if(!n.renderer)return()=>{const o1=t.default&&t.default();return o1&&o1.length===1?o1[0]:o1};const a=new Map,o=new Set;let s=null;const l=r.suspense,{renderer:{p:c,m:u,um:f,o:{createElement:t1}}}=n,a1=t1("div");n.activate=(o1,u1,f1,g1,k1)=>{const p1=o1.component;u(o1,u1,f1,0,l),c(p1.vnode,o1,u1,f1,p1,l,g1,o1.slotScopeIds,k1),queuePostRenderEffect(()=>{p1.isDeactivated=!1,p1.a&&invokeArrayFns(p1.a);const y1=o1.props&&o1.props.onVnodeMounted;y1&&invokeVNodeHook(y1,p1.parent,o1)},l)},n.deactivate=o1=>{const u1=o1.component;u(o1,a1,null,1,l),queuePostRenderEffect(()=>{u1.da&&invokeArrayFns(u1.da);const f1=o1.props&&o1.props.onVnodeUnmounted;f1&&invokeVNodeHook(f1,u1.parent,o1),u1.isDeactivated=!0},l)};function i1(o1){resetShapeFlag(o1),f(o1,r,l,!0)}function r1(o1){a.forEach((u1,f1)=>{const g1=getComponentName(u1.type);g1&&(!o1||!o1(g1))&&l1(f1)})}function l1(o1){const u1=a.get(o1);!s||u1.type!==s.type?i1(u1):s&&resetShapeFlag(s),a.delete(o1),o.delete(o1)}watch(()=>[e.include,e.exclude],([o1,u1])=>{o1&&r1(f1=>matches(o1,f1)),u1&&r1(f1=>!matches(u1,f1))},{flush:"post",deep:!0});let s1=null;const n1=()=>{s1!=null&&a.set(s1,getInnerChild(r.subTree))};return onMounted(n1),onUpdated(n1),onBeforeUnmount(()=>{a.forEach(o1=>{const{subTree:u1,suspense:f1}=r,g1=getInnerChild(u1);if(o1.type===g1.type){resetShapeFlag(g1);const k1=g1.component.da;k1&&queuePostRenderEffect(k1,f1);return}i1(o1)})}),()=>{if(s1=null,!t.default)return null;const o1=t.default(),u1=o1[0];if(o1.length>1)return s=null,o1;if(!isVNode(u1)||!(u1.shapeFlag&4)&&!(u1.shapeFlag&128))return s=null,u1;let f1=getInnerChild(u1);const g1=f1.type,k1=getComponentName(isAsyncWrapper(f1)?f1.type.__asyncResolved||{}:g1),{include:p1,exclude:y1,max:S1}=e;if(p1&&(!k1||!matches(p1,k1))||y1&&k1&&matches(y1,k1))return s=f1,u1;const E1=f1.key==null?g1:f1.key,w1=a.get(E1);return f1.el&&(f1=cloneVNode(f1),u1.shapeFlag&128&&(u1.ssContent=f1)),s1=E1,w1?(f1.el=w1.el,f1.component=w1.component,f1.transition&&setTransitionHooks(f1,f1.transition),f1.shapeFlag|=512,o.delete(E1),o.add(E1)):(o.add(E1),S1&&o.size>parseInt(S1,10)&&l1(o.values().next().value)),f1.shapeFlag|=256,s=f1,isSuspense(u1.type)?u1:f1}}},KeepAlive=KeepAliveImpl;function matches(e,t){return isArray$2(e)?e.some(r=>matches(r,t)):isString$4(e)?e.split(",").includes(t):e.test?e.test(t):!1}function onActivated(e,t){registerKeepAliveHook(e,"a",t)}function onDeactivated(e,t){registerKeepAliveHook(e,"da",t)}function registerKeepAliveHook(e,t,r=currentInstance){const n=e.__wdc||(e.__wdc=()=>{let a=r;for(;a;){if(a.isDeactivated)return;a=a.parent}return e()});if(injectHook(t,n,r),r){let a=r.parent;for(;a&&a.parent;)isKeepAlive(a.parent.vnode)&&injectToKeepAliveRoot(n,t,r,a),a=a.parent}}function injectToKeepAliveRoot(e,t,r,n){const a=injectHook(t,e,n,!0);onUnmounted(()=>{remove(n[t],a)},r)}function resetShapeFlag(e){let t=e.shapeFlag;t&256&&(t-=256),t&512&&(t-=512),e.shapeFlag=t}function getInnerChild(e){return e.shapeFlag&128?e.ssContent:e}function injectHook(e,t,r=currentInstance,n=!1){if(r){const a=r[e]||(r[e]=[]),o=t.__weh||(t.__weh=(...s)=>{if(r.isUnmounted)return;pauseTracking(),setCurrentInstance(r);const l=callWithAsyncErrorHandling(t,r,e,s);return unsetCurrentInstance(),resetTracking(),l});return n?a.unshift(o):a.push(o),o}}const createHook=e=>(t,r=currentInstance)=>(!isInSSRComponentSetup||e==="sp")&&injectHook(e,t,r),onBeforeMount=createHook("bm"),onMounted=createHook("m"),onBeforeUpdate=createHook("bu"),onUpdated=createHook("u"),onBeforeUnmount=createHook("bum"),onUnmounted=createHook("um"),onServerPrefetch=createHook("sp"),onRenderTriggered=createHook("rtg"),onRenderTracked=createHook("rtc");function onErrorCaptured(e,t=currentInstance){injectHook("ec",e,t)}function withDirectives(e,t){const r=currentRenderingInstance;if(r===null)return e;const n=getExposeProxy(r)||r.proxy,a=e.dirs||(e.dirs=[]);for(let o=0;ot(s,l,void 0,o&&o[l]));else{const s=Object.keys(e);a=new Array(s.length);for(let l=0,c=s.length;lisVNode(t)?!(t.type===Comment||t.type===Fragment&&!ensureValidVNode(t.children)):!0)?e:null}function toHandlers(e){const t={};for(const r in e)t[toHandlerKey(r)]=e[r];return t}const getPublicInstance=e=>e?isStatefulComponent(e)?getExposeProxy(e)||e.proxy:getPublicInstance(e.parent):null,publicPropertiesMap=extend$1(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>getPublicInstance(e.parent),$root:e=>getPublicInstance(e.root),$emit:e=>e.emit,$options:e=>resolveMergedOptions(e),$forceUpdate:e=>e.f||(e.f=()=>queueJob(e.update)),$nextTick:e=>e.n||(e.n=nextTick.bind(e.proxy)),$watch:e=>instanceWatch.bind(e)}),PublicInstanceProxyHandlers={get({_:e},t){const{ctx:r,setupState:n,data:a,props:o,accessCache:s,type:l,appContext:c}=e;let u;if(t[0]!=="$"){const i1=s[t];if(i1!==void 0)switch(i1){case 1:return n[t];case 2:return a[t];case 4:return r[t];case 3:return o[t]}else{if(n!==EMPTY_OBJ&&hasOwn$2(n,t))return s[t]=1,n[t];if(a!==EMPTY_OBJ&&hasOwn$2(a,t))return s[t]=2,a[t];if((u=e.propsOptions[0])&&hasOwn$2(u,t))return s[t]=3,o[t];if(r!==EMPTY_OBJ&&hasOwn$2(r,t))return s[t]=4,r[t];shouldCacheAccess&&(s[t]=0)}}const f=publicPropertiesMap[t];let t1,a1;if(f)return t==="$attrs"&&track(e,"get",t),f(e);if((t1=l.__cssModules)&&(t1=t1[t]))return t1;if(r!==EMPTY_OBJ&&hasOwn$2(r,t))return s[t]=4,r[t];if(a1=c.config.globalProperties,hasOwn$2(a1,t))return a1[t]},set({_:e},t,r){const{data:n,setupState:a,ctx:o}=e;return a!==EMPTY_OBJ&&hasOwn$2(a,t)?(a[t]=r,!0):n!==EMPTY_OBJ&&hasOwn$2(n,t)?(n[t]=r,!0):hasOwn$2(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=r,!0)},has({_:{data:e,setupState:t,accessCache:r,ctx:n,appContext:a,propsOptions:o}},s){let l;return!!r[s]||e!==EMPTY_OBJ&&hasOwn$2(e,s)||t!==EMPTY_OBJ&&hasOwn$2(t,s)||(l=o[0])&&hasOwn$2(l,s)||hasOwn$2(n,s)||hasOwn$2(publicPropertiesMap,s)||hasOwn$2(a.config.globalProperties,s)},defineProperty(e,t,r){return r.get!=null?e._.accessCache[t]=0:hasOwn$2(r,"value")&&this.set(e,t,r.value,null),Reflect.defineProperty(e,t,r)}},RuntimeCompiledPublicInstanceProxyHandlers=extend$1({},PublicInstanceProxyHandlers,{get(e,t){if(t!==Symbol.unscopables)return PublicInstanceProxyHandlers.get(e,t,e)},has(e,t){return t[0]!=="_"&&!isGloballyWhitelisted(t)}});let shouldCacheAccess=!0;function applyOptions(e){const t=resolveMergedOptions(e),r=e.proxy,n=e.ctx;shouldCacheAccess=!1,t.beforeCreate&&callHook$1(t.beforeCreate,e,"bc");const{data:a,computed:o,methods:s,watch:l,provide:c,inject:u,created:f,beforeMount:t1,mounted:a1,beforeUpdate:i1,updated:r1,activated:l1,deactivated:s1,beforeDestroy:n1,beforeUnmount:o1,destroyed:u1,unmounted:f1,render:g1,renderTracked:k1,renderTriggered:p1,errorCaptured:y1,serverPrefetch:S1,expose:E1,inheritAttrs:w1,components:M1,directives:F1,filters:L1}=t;if(u&&resolveInjections(u,n,null,e.appContext.config.unwrapInjectedRef),s)for(const Q1 in s){const K1=s[Q1];isFunction$4(K1)&&(n[Q1]=K1.bind(r))}if(a){const Q1=a.call(r,r);isObject$5(Q1)&&(e.data=reactive(Q1))}if(shouldCacheAccess=!0,o)for(const Q1 in o){const K1=o[Q1],or=isFunction$4(K1)?K1.bind(r,r):isFunction$4(K1.get)?K1.get.bind(r,r):NOOP,lr=!isFunction$4(K1)&&isFunction$4(K1.set)?K1.set.bind(r):NOOP,ur=computed({get:or,set:lr});Object.defineProperty(n,Q1,{enumerable:!0,configurable:!0,get:()=>ur.value,set:fr=>ur.value=fr})}if(l)for(const Q1 in l)createWatcher(l[Q1],n,r,Q1);if(c){const Q1=isFunction$4(c)?c.call(r):c;Reflect.ownKeys(Q1).forEach(K1=>{provide(K1,Q1[K1])})}f&&callHook$1(f,e,"c");function j1(Q1,K1){isArray$2(K1)?K1.forEach(or=>Q1(or.bind(r))):K1&&Q1(K1.bind(r))}if(j1(onBeforeMount,t1),j1(onMounted,a1),j1(onBeforeUpdate,i1),j1(onUpdated,r1),j1(onActivated,l1),j1(onDeactivated,s1),j1(onErrorCaptured,y1),j1(onRenderTracked,k1),j1(onRenderTriggered,p1),j1(onBeforeUnmount,o1),j1(onUnmounted,f1),j1(onServerPrefetch,S1),isArray$2(E1))if(E1.length){const Q1=e.exposed||(e.exposed={});E1.forEach(K1=>{Object.defineProperty(Q1,K1,{get:()=>r[K1],set:or=>r[K1]=or})})}else e.exposed||(e.exposed={});g1&&e.render===NOOP&&(e.render=g1),w1!=null&&(e.inheritAttrs=w1),M1&&(e.components=M1),F1&&(e.directives=F1)}function resolveInjections(e,t,r=NOOP,n=!1){isArray$2(e)&&(e=normalizeInject(e));for(const a in e){const o=e[a];let s;isObject$5(o)?"default"in o?s=inject(o.from||a,o.default,!0):s=inject(o.from||a):s=inject(o),isRef(s)&&n?Object.defineProperty(t,a,{enumerable:!0,configurable:!0,get:()=>s.value,set:l=>s.value=l}):t[a]=s}}function callHook$1(e,t,r){callWithAsyncErrorHandling(isArray$2(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,r)}function createWatcher(e,t,r,n){const a=n.includes(".")?createPathGetter(r,n):()=>r[n];if(isString$4(e)){const o=t[e];isFunction$4(o)&&watch(a,o)}else if(isFunction$4(e))watch(a,e.bind(r));else if(isObject$5(e))if(isArray$2(e))e.forEach(o=>createWatcher(o,t,r,n));else{const o=isFunction$4(e.handler)?e.handler.bind(r):t[e.handler];isFunction$4(o)&&watch(a,o,e)}}function resolveMergedOptions(e){const t=e.type,{mixins:r,extends:n}=t,{mixins:a,optionsCache:o,config:{optionMergeStrategies:s}}=e.appContext,l=o.get(t);let c;return l?c=l:!a.length&&!r&&!n?c=t:(c={},a.length&&a.forEach(u=>mergeOptions$1(c,u,s,!0)),mergeOptions$1(c,t,s)),o.set(t,c),c}function mergeOptions$1(e,t,r,n=!1){const{mixins:a,extends:o}=t;o&&mergeOptions$1(e,o,r,!0),a&&a.forEach(s=>mergeOptions$1(e,s,r,!0));for(const s in t)if(!(n&&s==="expose")){const l=internalOptionMergeStrats[s]||r&&r[s];e[s]=l?l(e[s],t[s]):t[s]}return e}const internalOptionMergeStrats={data:mergeDataFn,props:mergeObjectOptions,emits:mergeObjectOptions,methods:mergeObjectOptions,computed:mergeObjectOptions,beforeCreate:mergeAsArray,created:mergeAsArray,beforeMount:mergeAsArray,mounted:mergeAsArray,beforeUpdate:mergeAsArray,updated:mergeAsArray,beforeDestroy:mergeAsArray,beforeUnmount:mergeAsArray,destroyed:mergeAsArray,unmounted:mergeAsArray,activated:mergeAsArray,deactivated:mergeAsArray,errorCaptured:mergeAsArray,serverPrefetch:mergeAsArray,components:mergeObjectOptions,directives:mergeObjectOptions,watch:mergeWatchOptions,provide:mergeDataFn,inject:mergeInject};function mergeDataFn(e,t){return t?e?function(){return extend$1(isFunction$4(e)?e.call(this,this):e,isFunction$4(t)?t.call(this,this):t)}:t:e}function mergeInject(e,t){return mergeObjectOptions(normalizeInject(e),normalizeInject(t))}function normalizeInject(e){if(isArray$2(e)){const t={};for(let r=0;r0)&&!(s&16)){if(s&8){const f=e.vnode.dynamicProps;for(let t1=0;t1{c=!0;const[a1,i1]=normalizePropsOptions(t1,t,!0);extend$1(s,a1),i1&&l.push(...i1)};!r&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}if(!o&&!c)return n.set(e,EMPTY_ARR),EMPTY_ARR;if(isArray$2(o))for(let f=0;f-1,i1[1]=l1<0||r1-1||hasOwn$2(i1,"default"))&&l.push(t1)}}}const u=[s,l];return n.set(e,u),u}function validatePropName(e){return e[0]!=="$"}function getType(e){const t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:e===null?"null":""}function isSameType(e,t){return getType(e)===getType(t)}function getTypeIndex(e,t){return isArray$2(t)?t.findIndex(r=>isSameType(r,e)):isFunction$4(t)&&isSameType(t,e)?0:-1}const isInternalKey=e=>e[0]==="_"||e==="$stable",normalizeSlotValue=e=>isArray$2(e)?e.map(normalizeVNode):[normalizeVNode(e)],normalizeSlot$1=(e,t,r)=>{if(t._n)return t;const n=withCtx((...a)=>normalizeSlotValue(t(...a)),r);return n._c=!1,n},normalizeObjectSlots=(e,t,r)=>{const n=e._ctx;for(const a in e){if(isInternalKey(a))continue;const o=e[a];if(isFunction$4(o))t[a]=normalizeSlot$1(a,o,n);else if(o!=null){const s=normalizeSlotValue(o);t[a]=()=>s}}},normalizeVNodeSlots=(e,t)=>{const r=normalizeSlotValue(t);e.slots.default=()=>r},initSlots=(e,t)=>{if(e.vnode.shapeFlag&32){const r=t._;r?(e.slots=toRaw(t),def(t,"_",r)):normalizeObjectSlots(t,e.slots={})}else e.slots={},t&&normalizeVNodeSlots(e,t);def(e.slots,InternalObjectKey,1)},updateSlots=(e,t,r)=>{const{vnode:n,slots:a}=e;let o=!0,s=EMPTY_OBJ;if(n.shapeFlag&32){const l=t._;l?r&&l===1?o=!1:(extend$1(a,t),!r&&l===1&&delete a._):(o=!t.$stable,normalizeObjectSlots(t,a)),s=t}else t&&(normalizeVNodeSlots(e,t),s={default:1});if(o)for(const l in a)!isInternalKey(l)&&!(l in s)&&delete a[l]};function createAppContext(){return{app:null,config:{isNativeTag:NO,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let uid=0;function createAppAPI(e,t){return function(n,a=null){isFunction$4(n)||(n=Object.assign({},n)),a!=null&&!isObject$5(a)&&(a=null);const o=createAppContext(),s=new Set;let l=!1;const c=o.app={_uid:uid++,_component:n,_props:a,_container:null,_context:o,_instance:null,version,get config(){return o.config},set config(u){},use(u,...f){return s.has(u)||(u&&isFunction$4(u.install)?(s.add(u),u.install(c,...f)):isFunction$4(u)&&(s.add(u),u(c,...f))),c},mixin(u){return o.mixins.includes(u)||o.mixins.push(u),c},component(u,f){return f?(o.components[u]=f,c):o.components[u]},directive(u,f){return f?(o.directives[u]=f,c):o.directives[u]},mount(u,f,t1){if(!l){const a1=createVNode(n,a);return a1.appContext=o,f&&t?t(a1,u):e(a1,u,t1),l=!0,c._container=u,u.__vue_app__=c,getExposeProxy(a1.component)||a1.component.proxy}},unmount(){l&&(e(null,c._container),delete c._container.__vue_app__)},provide(u,f){return o.provides[u]=f,c}};return c}}function setRef(e,t,r,n,a=!1){if(isArray$2(e)){e.forEach((a1,i1)=>setRef(a1,t&&(isArray$2(t)?t[i1]:t),r,n,a));return}if(isAsyncWrapper(n)&&!a)return;const o=n.shapeFlag&4?getExposeProxy(n.component)||n.component.proxy:n.el,s=a?null:o,{i:l,r:c}=e,u=t&&t.r,f=l.refs===EMPTY_OBJ?l.refs={}:l.refs,t1=l.setupState;if(u!=null&&u!==c&&(isString$4(u)?(f[u]=null,hasOwn$2(t1,u)&&(t1[u]=null)):isRef(u)&&(u.value=null)),isFunction$4(c))callWithErrorHandling(c,l,12,[s,f]);else{const a1=isString$4(c),i1=isRef(c);if(a1||i1){const r1=()=>{if(e.f){const l1=a1?f[c]:c.value;a?isArray$2(l1)&&remove(l1,o):isArray$2(l1)?l1.includes(o)||l1.push(o):a1?(f[c]=[o],hasOwn$2(t1,c)&&(t1[c]=f[c])):(c.value=[o],e.k&&(f[e.k]=c.value))}else a1?(f[c]=s,hasOwn$2(t1,c)&&(t1[c]=s)):i1&&(c.value=s,e.k&&(f[e.k]=s))};s?(r1.id=-1,queuePostRenderEffect(r1,r)):r1()}}}let hasMismatch=!1;const isSVGContainer=e=>/svg/.test(e.namespaceURI)&&e.tagName!=="foreignObject",isComment=e=>e.nodeType===8;function createHydrationFunctions(e){const{mt:t,p:r,o:{patchProp:n,createText:a,nextSibling:o,parentNode:s,remove:l,insert:c,createComment:u}}=e,f=(n1,o1)=>{if(!o1.hasChildNodes()){r(null,n1,o1),flushPostFlushCbs(),o1._vnode=n1;return}hasMismatch=!1,t1(o1.firstChild,n1,null,null,null),flushPostFlushCbs(),o1._vnode=n1,hasMismatch&&console.error("Hydration completed but contains mismatches.")},t1=(n1,o1,u1,f1,g1,k1=!1)=>{const p1=isComment(n1)&&n1.data==="[",y1=()=>l1(n1,o1,u1,f1,g1,p1),{type:S1,ref:E1,shapeFlag:w1,patchFlag:M1}=o1,F1=n1.nodeType;o1.el=n1,M1===-2&&(k1=!1,o1.dynamicChildren=null);let L1=null;switch(S1){case Text:F1!==3?o1.children===""?(c(o1.el=a(""),s(n1),n1),L1=n1):L1=y1():(n1.data!==o1.children&&(hasMismatch=!0,n1.data=o1.children),L1=o(n1));break;case Comment:F1!==8||p1?L1=y1():L1=o(n1);break;case Static:if(F1!==1&&F1!==3)L1=y1();else{L1=n1;const X1=!o1.children.length;for(let j1=0;j1{k1=k1||!!o1.dynamicChildren;const{type:p1,props:y1,patchFlag:S1,shapeFlag:E1,dirs:w1}=o1,M1=p1==="input"&&w1||p1==="option";if(M1||S1!==-1){if(w1&&invokeDirectiveHook(o1,null,u1,"created"),y1)if(M1||!k1||S1&48)for(const L1 in y1)(M1&&L1.endsWith("value")||isOn(L1)&&!isReservedProp(L1))&&n(n1,L1,null,y1[L1],!1,void 0,u1);else y1.onClick&&n(n1,"onClick",null,y1.onClick,!1,void 0,u1);let F1;if((F1=y1&&y1.onVnodeBeforeMount)&&invokeVNodeHook(F1,u1,o1),w1&&invokeDirectiveHook(o1,null,u1,"beforeMount"),((F1=y1&&y1.onVnodeMounted)||w1)&&queueEffectWithSuspense(()=>{F1&&invokeVNodeHook(F1,u1,o1),w1&&invokeDirectiveHook(o1,null,u1,"mounted")},f1),E1&16&&!(y1&&(y1.innerHTML||y1.textContent))){let L1=i1(n1.firstChild,o1,n1,u1,f1,g1,k1);for(;L1;){hasMismatch=!0;const X1=L1;L1=L1.nextSibling,l(X1)}}else E1&8&&n1.textContent!==o1.children&&(hasMismatch=!0,n1.textContent=o1.children)}return n1.nextSibling},i1=(n1,o1,u1,f1,g1,k1,p1)=>{p1=p1||!!o1.dynamicChildren;const y1=o1.children,S1=y1.length;for(let E1=0;E1{const{slotScopeIds:p1}=o1;p1&&(g1=g1?g1.concat(p1):p1);const y1=s(n1),S1=i1(o(n1),o1,y1,u1,f1,g1,k1);return S1&&isComment(S1)&&S1.data==="]"?o(o1.anchor=S1):(hasMismatch=!0,c(o1.anchor=u("]"),y1,S1),S1)},l1=(n1,o1,u1,f1,g1,k1)=>{if(hasMismatch=!0,o1.el=null,k1){const S1=s1(n1);for(;;){const E1=o(n1);if(E1&&E1!==S1)l(E1);else break}}const p1=o(n1),y1=s(n1);return l(n1),r(null,o1,y1,p1,u1,f1,isSVGContainer(y1),g1),p1},s1=n1=>{let o1=0;for(;n1;)if(n1=o(n1),n1&&isComment(n1)&&(n1.data==="["&&o1++,n1.data==="]")){if(o1===0)return o(n1);o1--}return n1};return[f,t1]}const queuePostRenderEffect=queueEffectWithSuspense;function createRenderer(e){return baseCreateRenderer(e)}function createHydrationRenderer(e){return baseCreateRenderer(e,createHydrationFunctions)}function baseCreateRenderer(e,t){const r=getGlobalThis$1();r.__VUE__=!0;const{insert:n,remove:a,patchProp:o,createElement:s,createText:l,createComment:c,setText:u,setElementText:f,parentNode:t1,nextSibling:a1,setScopeId:i1=NOOP,cloneNode:r1,insertStaticContent:l1}=e,s1=(m1,b1,x1,O1=null,A1=null,z1=null,T1=!1,R1=null,h1=!!b1.dynamicChildren)=>{if(m1===b1)return;m1&&!isSameVNodeType(m1,b1)&&(O1=D1(m1),cr(m1,A1,z1,!0),m1=null),b1.patchFlag===-2&&(h1=!1,b1.dynamicChildren=null);const{type:v1,ref:H1,shapeFlag:P1}=b1;switch(v1){case Text:n1(m1,b1,x1,O1);break;case Comment:o1(m1,b1,x1,O1);break;case Static:m1==null&&u1(b1,x1,O1,T1);break;case Fragment:F1(m1,b1,x1,O1,A1,z1,T1,R1,h1);break;default:P1&1?k1(m1,b1,x1,O1,A1,z1,T1,R1,h1):P1&6?L1(m1,b1,x1,O1,A1,z1,T1,R1,h1):(P1&64||P1&128)&&v1.process(m1,b1,x1,O1,A1,z1,T1,R1,h1,rr)}H1!=null&&A1&&setRef(H1,m1&&m1.ref,z1,b1||m1,!b1)},n1=(m1,b1,x1,O1)=>{if(m1==null)n(b1.el=l(b1.children),x1,O1);else{const A1=b1.el=m1.el;b1.children!==m1.children&&u(A1,b1.children)}},o1=(m1,b1,x1,O1)=>{m1==null?n(b1.el=c(b1.children||""),x1,O1):b1.el=m1.el},u1=(m1,b1,x1,O1)=>{[m1.el,m1.anchor]=l1(m1.children,b1,x1,O1,m1.el,m1.anchor)},f1=({el:m1,anchor:b1},x1,O1)=>{let A1;for(;m1&&m1!==b1;)A1=a1(m1),n(m1,x1,O1),m1=A1;n(b1,x1,O1)},g1=({el:m1,anchor:b1})=>{let x1;for(;m1&&m1!==b1;)x1=a1(m1),a(m1),m1=x1;a(b1)},k1=(m1,b1,x1,O1,A1,z1,T1,R1,h1)=>{T1=T1||b1.type==="svg",m1==null?p1(b1,x1,O1,A1,z1,T1,R1,h1):E1(m1,b1,A1,z1,T1,R1,h1)},p1=(m1,b1,x1,O1,A1,z1,T1,R1)=>{let h1,v1;const{type:H1,props:P1,shapeFlag:B1,transition:U1,patchFlag:J1,dirs:ar}=m1;if(m1.el&&r1!==void 0&&J1===-1)h1=m1.el=r1(m1.el);else{if(h1=m1.el=s(m1.type,z1,P1&&P1.is,P1),B1&8?f(h1,m1.children):B1&16&&S1(m1.children,h1,null,O1,A1,z1&&H1!=="foreignObject",T1,R1),ar&&invokeDirectiveHook(m1,null,O1,"created"),P1){for(const sr in P1)sr!=="value"&&!isReservedProp(sr)&&o(h1,sr,null,P1[sr],z1,m1.children,O1,A1,I1);"value"in P1&&o(h1,"value",null,P1.value),(v1=P1.onVnodeBeforeMount)&&invokeVNodeHook(v1,O1,m1)}y1(h1,m1,m1.scopeId,T1,O1)}ar&&invokeDirectiveHook(m1,null,O1,"beforeMount");const ir=(!A1||A1&&!A1.pendingBranch)&&U1&&!U1.persisted;ir&&U1.beforeEnter(h1),n(h1,b1,x1),((v1=P1&&P1.onVnodeMounted)||ir||ar)&&queuePostRenderEffect(()=>{v1&&invokeVNodeHook(v1,O1,m1),ir&&U1.enter(h1),ar&&invokeDirectiveHook(m1,null,O1,"mounted")},A1)},y1=(m1,b1,x1,O1,A1)=>{if(x1&&i1(m1,x1),O1)for(let z1=0;z1{for(let v1=h1;v1{const R1=b1.el=m1.el;let{patchFlag:h1,dynamicChildren:v1,dirs:H1}=b1;h1|=m1.patchFlag&16;const P1=m1.props||EMPTY_OBJ,B1=b1.props||EMPTY_OBJ;let U1;x1&&toggleRecurse(x1,!1),(U1=B1.onVnodeBeforeUpdate)&&invokeVNodeHook(U1,x1,b1,m1),H1&&invokeDirectiveHook(b1,m1,x1,"beforeUpdate"),x1&&toggleRecurse(x1,!0);const J1=A1&&b1.type!=="foreignObject";if(v1?w1(m1.dynamicChildren,v1,R1,x1,O1,J1,z1):T1||or(m1,b1,R1,null,x1,O1,J1,z1,!1),h1>0){if(h1&16)M1(R1,b1,P1,B1,x1,O1,A1);else if(h1&2&&P1.class!==B1.class&&o(R1,"class",null,B1.class,A1),h1&4&&o(R1,"style",P1.style,B1.style,A1),h1&8){const ar=b1.dynamicProps;for(let ir=0;ir{U1&&invokeVNodeHook(U1,x1,b1,m1),H1&&invokeDirectiveHook(b1,m1,x1,"updated")},O1)},w1=(m1,b1,x1,O1,A1,z1,T1)=>{for(let R1=0;R1{if(x1!==O1){for(const R1 in O1){if(isReservedProp(R1))continue;const h1=O1[R1],v1=x1[R1];h1!==v1&&R1!=="value"&&o(m1,R1,v1,h1,T1,b1.children,A1,z1,I1)}if(x1!==EMPTY_OBJ)for(const R1 in x1)!isReservedProp(R1)&&!(R1 in O1)&&o(m1,R1,x1[R1],null,T1,b1.children,A1,z1,I1);"value"in O1&&o(m1,"value",x1.value,O1.value)}},F1=(m1,b1,x1,O1,A1,z1,T1,R1,h1)=>{const v1=b1.el=m1?m1.el:l(""),H1=b1.anchor=m1?m1.anchor:l("");let{patchFlag:P1,dynamicChildren:B1,slotScopeIds:U1}=b1;U1&&(R1=R1?R1.concat(U1):U1),m1==null?(n(v1,x1,O1),n(H1,x1,O1),S1(b1.children,x1,H1,A1,z1,T1,R1,h1)):P1>0&&P1&64&&B1&&m1.dynamicChildren?(w1(m1.dynamicChildren,B1,x1,A1,z1,T1,R1),(b1.key!=null||A1&&b1===A1.subTree)&&traverseStaticChildren(m1,b1,!0)):or(m1,b1,x1,H1,A1,z1,T1,R1,h1)},L1=(m1,b1,x1,O1,A1,z1,T1,R1,h1)=>{b1.slotScopeIds=R1,m1==null?b1.shapeFlag&512?A1.ctx.activate(b1,x1,O1,T1,h1):X1(b1,x1,O1,A1,z1,T1,h1):j1(m1,b1,h1)},X1=(m1,b1,x1,O1,A1,z1,T1)=>{const R1=m1.component=createComponentInstance(m1,O1,A1);if(isKeepAlive(m1)&&(R1.ctx.renderer=rr),setupComponent(R1),R1.asyncDep){if(A1&&A1.registerDep(R1,Q1),!m1.el){const h1=R1.subTree=createVNode(Comment);o1(null,h1,b1,x1)}return}Q1(R1,m1,b1,x1,A1,z1,T1)},j1=(m1,b1,x1)=>{const O1=b1.component=m1.component;if(shouldUpdateComponent(m1,b1,x1))if(O1.asyncDep&&!O1.asyncResolved){K1(O1,b1,x1);return}else O1.next=b1,invalidateJob(O1.update),O1.update();else b1.el=m1.el,O1.vnode=b1},Q1=(m1,b1,x1,O1,A1,z1,T1)=>{const R1=()=>{if(m1.isMounted){let{next:H1,bu:P1,u:B1,parent:U1,vnode:J1}=m1,ar=H1,ir;toggleRecurse(m1,!1),H1?(H1.el=J1.el,K1(m1,H1,T1)):H1=J1,P1&&invokeArrayFns(P1),(ir=H1.props&&H1.props.onVnodeBeforeUpdate)&&invokeVNodeHook(ir,U1,H1,J1),toggleRecurse(m1,!0);const sr=renderComponentRoot(m1),mr=m1.subTree;m1.subTree=sr,s1(mr,sr,t1(mr.el),D1(mr),m1,A1,z1),H1.el=sr.el,ar===null&&updateHOCHostEl(m1,sr.el),B1&&queuePostRenderEffect(B1,A1),(ir=H1.props&&H1.props.onVnodeUpdated)&&queuePostRenderEffect(()=>invokeVNodeHook(ir,U1,H1,J1),A1)}else{let H1;const{el:P1,props:B1}=b1,{bm:U1,m:J1,parent:ar}=m1,ir=isAsyncWrapper(b1);if(toggleRecurse(m1,!1),U1&&invokeArrayFns(U1),!ir&&(H1=B1&&B1.onVnodeBeforeMount)&&invokeVNodeHook(H1,ar,b1),toggleRecurse(m1,!0),P1&&q1){const sr=()=>{m1.subTree=renderComponentRoot(m1),q1(P1,m1.subTree,m1,A1,null)};ir?b1.type.__asyncLoader().then(()=>!m1.isUnmounted&&sr()):sr()}else{const sr=m1.subTree=renderComponentRoot(m1);s1(null,sr,x1,O1,m1,A1,z1),b1.el=sr.el}if(J1&&queuePostRenderEffect(J1,A1),!ir&&(H1=B1&&B1.onVnodeMounted)){const sr=b1;queuePostRenderEffect(()=>invokeVNodeHook(H1,ar,sr),A1)}(b1.shapeFlag&256||ar&&isAsyncWrapper(ar.vnode)&&ar.vnode.shapeFlag&256)&&m1.a&&queuePostRenderEffect(m1.a,A1),m1.isMounted=!0,b1=x1=O1=null}},h1=m1.effect=new ReactiveEffect(R1,()=>queueJob(v1),m1.scope),v1=m1.update=()=>h1.run();v1.id=m1.uid,toggleRecurse(m1,!0),v1()},K1=(m1,b1,x1)=>{b1.component=m1;const O1=m1.vnode.props;m1.vnode=b1,m1.next=null,updateProps(m1,b1.props,O1,x1),updateSlots(m1,b1.children,x1),pauseTracking(),flushPreFlushCbs(void 0,m1.update),resetTracking()},or=(m1,b1,x1,O1,A1,z1,T1,R1,h1=!1)=>{const v1=m1&&m1.children,H1=m1?m1.shapeFlag:0,P1=b1.children,{patchFlag:B1,shapeFlag:U1}=b1;if(B1>0){if(B1&128){ur(v1,P1,x1,O1,A1,z1,T1,R1,h1);return}else if(B1&256){lr(v1,P1,x1,O1,A1,z1,T1,R1,h1);return}}U1&8?(H1&16&&I1(v1,A1,z1),P1!==v1&&f(x1,P1)):H1&16?U1&16?ur(v1,P1,x1,O1,A1,z1,T1,R1,h1):I1(v1,A1,z1,!0):(H1&8&&f(x1,""),U1&16&&S1(P1,x1,O1,A1,z1,T1,R1,h1))},lr=(m1,b1,x1,O1,A1,z1,T1,R1,h1)=>{m1=m1||EMPTY_ARR,b1=b1||EMPTY_ARR;const v1=m1.length,H1=b1.length,P1=Math.min(v1,H1);let B1;for(B1=0;B1H1?I1(m1,A1,z1,!0,!1,P1):S1(b1,x1,O1,A1,z1,T1,R1,h1,P1)},ur=(m1,b1,x1,O1,A1,z1,T1,R1,h1)=>{let v1=0;const H1=b1.length;let P1=m1.length-1,B1=H1-1;for(;v1<=P1&&v1<=B1;){const U1=m1[v1],J1=b1[v1]=h1?cloneIfMounted(b1[v1]):normalizeVNode(b1[v1]);if(isSameVNodeType(U1,J1))s1(U1,J1,x1,null,A1,z1,T1,R1,h1);else break;v1++}for(;v1<=P1&&v1<=B1;){const U1=m1[P1],J1=b1[B1]=h1?cloneIfMounted(b1[B1]):normalizeVNode(b1[B1]);if(isSameVNodeType(U1,J1))s1(U1,J1,x1,null,A1,z1,T1,R1,h1);else break;P1--,B1--}if(v1>P1){if(v1<=B1){const U1=B1+1,J1=U1B1)for(;v1<=P1;)cr(m1[v1],A1,z1,!0),v1++;else{const U1=v1,J1=v1,ar=new Map;for(v1=J1;v1<=B1;v1++){const dr=b1[v1]=h1?cloneIfMounted(b1[v1]):normalizeVNode(b1[v1]);dr.key!=null&&ar.set(dr.key,v1)}let ir,sr=0;const mr=B1-J1+1;let gr=!1,wr=0;const br=new Array(mr);for(v1=0;v1=mr){cr(dr,A1,z1,!0);continue}let pr;if(dr.key!=null)pr=ar.get(dr.key);else for(ir=J1;ir<=B1;ir++)if(br[ir-J1]===0&&isSameVNodeType(dr,b1[ir])){pr=ir;break}pr===void 0?cr(dr,A1,z1,!0):(br[pr-J1]=v1+1,pr>=wr?wr=pr:gr=!0,s1(dr,b1[pr],x1,null,A1,z1,T1,R1,h1),sr++)}const _r=gr?getSequence(br):EMPTY_ARR;for(ir=_r.length-1,v1=mr-1;v1>=0;v1--){const dr=J1+v1,pr=b1[dr],Er=dr+1{const{el:z1,type:T1,transition:R1,children:h1,shapeFlag:v1}=m1;if(v1&6){fr(m1.component.subTree,b1,x1,O1);return}if(v1&128){m1.suspense.move(b1,x1,O1);return}if(v1&64){T1.move(m1,b1,x1,rr);return}if(T1===Fragment){n(z1,b1,x1);for(let P1=0;P1R1.enter(z1),A1);else{const{leave:P1,delayLeave:B1,afterLeave:U1}=R1,J1=()=>n(z1,b1,x1),ar=()=>{P1(z1,()=>{J1(),U1&&U1()})};B1?B1(z1,J1,ar):ar()}else n(z1,b1,x1)},cr=(m1,b1,x1,O1=!1,A1=!1)=>{const{type:z1,props:T1,ref:R1,children:h1,dynamicChildren:v1,shapeFlag:H1,patchFlag:P1,dirs:B1}=m1;if(R1!=null&&setRef(R1,null,x1,m1,!0),H1&256){b1.ctx.deactivate(m1);return}const U1=H1&1&&B1,J1=!isAsyncWrapper(m1);let ar;if(J1&&(ar=T1&&T1.onVnodeBeforeUnmount)&&invokeVNodeHook(ar,b1,m1),H1&6)N1(m1.component,x1,O1);else{if(H1&128){m1.suspense.unmount(x1,O1);return}U1&&invokeDirectiveHook(m1,null,b1,"beforeUnmount"),H1&64?m1.type.remove(m1,b1,x1,A1,rr,O1):v1&&(z1!==Fragment||P1>0&&P1&64)?I1(v1,b1,x1,!1,!0):(z1===Fragment&&P1&384||!A1&&H1&16)&&I1(h1,b1,x1),O1&&hr(m1)}(J1&&(ar=T1&&T1.onVnodeUnmounted)||U1)&&queuePostRenderEffect(()=>{ar&&invokeVNodeHook(ar,b1,m1),U1&&invokeDirectiveHook(m1,null,b1,"unmounted")},x1)},hr=m1=>{const{type:b1,el:x1,anchor:O1,transition:A1}=m1;if(b1===Fragment){_1(x1,O1);return}if(b1===Static){g1(m1);return}const z1=()=>{a(x1),A1&&!A1.persisted&&A1.afterLeave&&A1.afterLeave()};if(m1.shapeFlag&1&&A1&&!A1.persisted){const{leave:T1,delayLeave:R1}=A1,h1=()=>T1(x1,z1);R1?R1(m1.el,z1,h1):h1()}else z1()},_1=(m1,b1)=>{let x1;for(;m1!==b1;)x1=a1(m1),a(m1),m1=x1;a(b1)},N1=(m1,b1,x1)=>{const{bum:O1,scope:A1,update:z1,subTree:T1,um:R1}=m1;O1&&invokeArrayFns(O1),A1.stop(),z1&&(z1.active=!1,cr(T1,m1,b1,x1)),R1&&queuePostRenderEffect(R1,b1),queuePostRenderEffect(()=>{m1.isUnmounted=!0},b1),b1&&b1.pendingBranch&&!b1.isUnmounted&&m1.asyncDep&&!m1.asyncResolved&&m1.suspenseId===b1.pendingId&&(b1.deps--,b1.deps===0&&b1.resolve())},I1=(m1,b1,x1,O1=!1,A1=!1,z1=0)=>{for(let T1=z1;T1m1.shapeFlag&6?D1(m1.component.subTree):m1.shapeFlag&128?m1.suspense.next():a1(m1.anchor||m1.el),G1=(m1,b1,x1)=>{m1==null?b1._vnode&&cr(b1._vnode,null,null,!0):s1(b1._vnode||null,m1,b1,null,null,null,x1),flushPostFlushCbs(),b1._vnode=m1},rr={p:s1,um:cr,m:fr,r:hr,mt:X1,mc:S1,pc:or,pbc:w1,n:D1,o:e};let W1,q1;return t&&([W1,q1]=t(rr)),{render:G1,hydrate:W1,createApp:createAppAPI(G1,W1)}}function toggleRecurse({effect:e,update:t},r){e.allowRecurse=t.allowRecurse=r}function traverseStaticChildren(e,t,r=!1){const n=e.children,a=t.children;if(isArray$2(n)&&isArray$2(a))for(let o=0;o>1,e[r[l]]0&&(t[n]=r[o-1]),r[o]=n)}}for(o=r.length,s=r[o-1];o-- >0;)r[o]=s,s=t[s];return r}const isTeleport=e=>e.__isTeleport,isTeleportDisabled=e=>e&&(e.disabled||e.disabled===""),isTargetSVG=e=>typeof SVGElement!="undefined"&&e instanceof SVGElement,resolveTarget=(e,t)=>{const r=e&&e.to;return isString$4(r)?t?t(r):null:r},TeleportImpl={__isTeleport:!0,process(e,t,r,n,a,o,s,l,c,u){const{mc:f,pc:t1,pbc:a1,o:{insert:i1,querySelector:r1,createText:l1,createComment:s1}}=u,n1=isTeleportDisabled(t.props);let{shapeFlag:o1,children:u1,dynamicChildren:f1}=t;if(e==null){const g1=t.el=l1(""),k1=t.anchor=l1("");i1(g1,r,n),i1(k1,r,n);const p1=t.target=resolveTarget(t.props,r1),y1=t.targetAnchor=l1("");p1&&(i1(y1,p1),s=s||isTargetSVG(p1));const S1=(E1,w1)=>{o1&16&&f(u1,E1,w1,a,o,s,l,c)};n1?S1(r,k1):p1&&S1(p1,y1)}else{t.el=e.el;const g1=t.anchor=e.anchor,k1=t.target=e.target,p1=t.targetAnchor=e.targetAnchor,y1=isTeleportDisabled(e.props),S1=y1?r:k1,E1=y1?g1:p1;if(s=s||isTargetSVG(k1),f1?(a1(e.dynamicChildren,f1,S1,a,o,s,l),traverseStaticChildren(e,t,!0)):c||t1(e,t,S1,E1,a,o,s,l,!1),n1)y1||moveTeleport(t,r,g1,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const w1=t.target=resolveTarget(t.props,r1);w1&&moveTeleport(t,w1,null,u,0)}else y1&&moveTeleport(t,k1,p1,u,1)}},remove(e,t,r,n,{um:a,o:{remove:o}},s){const{shapeFlag:l,children:c,anchor:u,targetAnchor:f,target:t1,props:a1}=e;if(t1&&o(f),(s||!isTeleportDisabled(a1))&&(o(u),l&16))for(let i1=0;i10?currentBlock||EMPTY_ARR:null,closeBlock(),isBlockTreeEnabled>0&¤tBlock&¤tBlock.push(e),e}function createElementBlock(e,t,r,n,a,o){return setupBlock(createBaseVNode(e,t,r,n,a,o,!0))}function createBlock(e,t,r,n,a){return setupBlock(createVNode(e,t,r,n,a,!0))}function isVNode(e){return e?e.__v_isVNode===!0:!1}function isSameVNodeType(e,t){return e.type===t.type&&e.key===t.key}function transformVNodeArgs(e){}const InternalObjectKey="__vInternal",normalizeKey=({key:e})=>e!=null?e:null,normalizeRef=({ref:e,ref_key:t,ref_for:r})=>e!=null?isString$4(e)||isRef(e)||isFunction$4(e)?{i:currentRenderingInstance,r:e,k:t,f:!!r}:e:null;function createBaseVNode(e,t=null,r=null,n=0,a=null,o=e===Fragment?0:1,s=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&normalizeKey(t),ref:t&&normalizeRef(t),scopeId:currentScopeId,slotScopeIds:null,children:r,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:n,dynamicProps:a,dynamicChildren:null,appContext:null};return l?(normalizeChildren(c,r),o&128&&e.normalize(c)):r&&(c.shapeFlag|=isString$4(r)?8:16),isBlockTreeEnabled>0&&!s&¤tBlock&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&¤tBlock.push(c),c}const createVNode=_createVNode;function _createVNode(e,t=null,r=null,n=0,a=null,o=!1){if((!e||e===NULL_DYNAMIC_COMPONENT)&&(e=Comment),isVNode(e)){const l=cloneVNode(e,t,!0);return r&&normalizeChildren(l,r),isBlockTreeEnabled>0&&!o&¤tBlock&&(l.shapeFlag&6?currentBlock[currentBlock.indexOf(e)]=l:currentBlock.push(l)),l.patchFlag|=-2,l}if(isClassComponent(e)&&(e=e.__vccOpts),t){t=guardReactiveProps(t);let{class:l,style:c}=t;l&&!isString$4(l)&&(t.class=normalizeClass(l)),isObject$5(c)&&(isProxy(c)&&!isArray$2(c)&&(c=extend$1({},c)),t.style=normalizeStyle(c))}const s=isString$4(e)?1:isSuspense(e)?128:isTeleport(e)?64:isObject$5(e)?4:isFunction$4(e)?2:0;return createBaseVNode(e,t,r,n,a,s,o,!0)}function guardReactiveProps(e){return e?isProxy(e)||InternalObjectKey in e?extend$1({},e):e:null}function cloneVNode(e,t,r=!1){const{props:n,ref:a,patchFlag:o,children:s}=e,l=t?mergeProps(n||{},t):n;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&normalizeKey(l),ref:t&&t.ref?r&&a?isArray$2(a)?a.concat(normalizeRef(t)):[a,normalizeRef(t)]:normalizeRef(t):a,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:s,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Fragment?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&cloneVNode(e.ssContent),ssFallback:e.ssFallback&&cloneVNode(e.ssFallback),el:e.el,anchor:e.anchor}}function createTextVNode(e=" ",t=0){return createVNode(Text,null,e,t)}function createStaticVNode(e,t){const r=createVNode(Static,null,e);return r.staticCount=t,r}function createCommentVNode(e="",t=!1){return t?(openBlock(),createBlock(Comment,null,e)):createVNode(Comment,null,e)}function normalizeVNode(e){return e==null||typeof e=="boolean"?createVNode(Comment):isArray$2(e)?createVNode(Fragment,null,e.slice()):typeof e=="object"?cloneIfMounted(e):createVNode(Text,null,String(e))}function cloneIfMounted(e){return e.el===null||e.memo?e:cloneVNode(e)}function normalizeChildren(e,t){let r=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(isArray$2(t))r=16;else if(typeof t=="object")if(n&65){const a=t.default;a&&(a._c&&(a._d=!1),normalizeChildren(e,a()),a._c&&(a._d=!0));return}else{r=32;const a=t._;!a&&!(InternalObjectKey in t)?t._ctx=currentRenderingInstance:a===3&¤tRenderingInstance&&(currentRenderingInstance.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else isFunction$4(t)?(t={default:t,_ctx:currentRenderingInstance},r=32):(t=String(t),n&64?(r=16,t=[createTextVNode(t)]):r=8);e.children=t,e.shapeFlag|=r}function mergeProps(...e){const t={};for(let r=0;rcurrentInstance||currentRenderingInstance,setCurrentInstance=e=>{currentInstance=e,e.scope.on()},unsetCurrentInstance=()=>{currentInstance&¤tInstance.scope.off(),currentInstance=null};function isStatefulComponent(e){return e.vnode.shapeFlag&4}let isInSSRComponentSetup=!1;function setupComponent(e,t=!1){isInSSRComponentSetup=t;const{props:r,children:n}=e.vnode,a=isStatefulComponent(e);initProps(e,r,a,t),initSlots(e,n);const o=a?setupStatefulComponent(e,t):void 0;return isInSSRComponentSetup=!1,o}function setupStatefulComponent(e,t){const r=e.type;e.accessCache=Object.create(null),e.proxy=markRaw(new Proxy(e.ctx,PublicInstanceProxyHandlers));const{setup:n}=r;if(n){const a=e.setupContext=n.length>1?createSetupContext(e):null;setCurrentInstance(e),pauseTracking();const o=callWithErrorHandling(n,e,0,[e.props,a]);if(resetTracking(),unsetCurrentInstance(),isPromise$1(o)){if(o.then(unsetCurrentInstance,unsetCurrentInstance),t)return o.then(s=>{handleSetupResult(e,s,t)}).catch(s=>{handleError(s,e,0)});e.asyncDep=o}else handleSetupResult(e,o,t)}else finishComponentSetup(e,t)}function handleSetupResult(e,t,r){isFunction$4(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:isObject$5(t)&&(e.setupState=proxyRefs(t)),finishComponentSetup(e,r)}let compile,installWithProxy;function registerRuntimeCompiler(e){compile=e,installWithProxy=t=>{t.render._rc&&(t.withProxy=new Proxy(t.ctx,RuntimeCompiledPublicInstanceProxyHandlers))}}const isRuntimeOnly=()=>!compile;function finishComponentSetup(e,t,r){const n=e.type;if(!e.render){if(!t&&compile&&!n.render){const a=n.template;if(a){const{isCustomElement:o,compilerOptions:s}=e.appContext.config,{delimiters:l,compilerOptions:c}=n,u=extend$1(extend$1({isCustomElement:o,delimiters:l},s),c);n.render=compile(a,u)}}e.render=n.render||NOOP,installWithProxy&&installWithProxy(e)}setCurrentInstance(e),pauseTracking(),applyOptions(e),resetTracking(),unsetCurrentInstance()}function createAttrsProxy(e){return new Proxy(e.attrs,{get(t,r){return track(e,"get","$attrs"),t[r]}})}function createSetupContext(e){const t=n=>{e.exposed=n||{}};let r;return{get attrs(){return r||(r=createAttrsProxy(e))},slots:e.slots,emit:e.emit,expose:t}}function getExposeProxy(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(proxyRefs(markRaw(e.exposed)),{get(t,r){if(r in t)return t[r];if(r in publicPropertiesMap)return publicPropertiesMap[r](e)}}))}const classifyRE=/(?:^|[-_])(\w)/g,classify=e=>e.replace(classifyRE,t=>t.toUpperCase()).replace(/[-_]/g,"");function getComponentName(e,t=!0){return isFunction$4(e)?e.displayName||e.name:e.name||t&&e.__name}function formatComponentName(e,t,r=!1){let n=getComponentName(t);if(!n&&t.__file){const a=t.__file.match(/([^/\\]+)\.\w+$/);a&&(n=a[1])}if(!n&&e&&e.parent){const a=o=>{for(const s in o)if(o[s]===t)return s};n=a(e.components||e.parent.type.components)||a(e.appContext.components)}return n?classify(n):r?"App":"Anonymous"}function isClassComponent(e){return isFunction$4(e)&&"__vccOpts"in e}const computed=(e,t)=>computed$1(e,t,isInSSRComponentSetup);function defineProps(){return null}function defineEmits(){return null}function defineExpose(e){}function withDefaults(e,t){return null}function useSlots(){return getContext().slots}function useAttrs(){return getContext().attrs}function getContext(){const e=getCurrentInstance();return e.setupContext||(e.setupContext=createSetupContext(e))}function mergeDefaults(e,t){const r=isArray$2(e)?e.reduce((n,a)=>(n[a]={},n),{}):e;for(const n in t){const a=r[n];a?isArray$2(a)||isFunction$4(a)?r[n]={type:a,default:t[n]}:a.default=t[n]:a===null&&(r[n]={default:t[n]})}return r}function createPropsRestProxy(e,t){const r={};for(const n in e)t.includes(n)||Object.defineProperty(r,n,{enumerable:!0,get:()=>e[n]});return r}function withAsyncContext(e){const t=getCurrentInstance();let r=e();return unsetCurrentInstance(),isPromise$1(r)&&(r=r.catch(n=>{throw setCurrentInstance(t),n})),[r,()=>setCurrentInstance(t)]}function h$1(e,t,r){const n=arguments.length;return n===2?isObject$5(t)&&!isArray$2(t)?isVNode(t)?createVNode(e,null,[t]):createVNode(e,t):createVNode(e,null,t):(n>3?r=Array.prototype.slice.call(arguments,2):n===3&&isVNode(r)&&(r=[r]),createVNode(e,t,r))}const ssrContextKey=Symbol(""),useSSRContext=()=>{{const e=inject(ssrContextKey);return e||warn$1("Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build."),e}};function initCustomFormatter(){}function withMemo(e,t,r,n){const a=r[n];if(a&&isMemoSame(a,e))return a;const o=t();return o.memo=e.slice(),r[n]=o}function isMemoSame(e,t){const r=e.memo;if(r.length!=t.length)return!1;for(let n=0;n0&¤tBlock&¤tBlock.push(e),!0}const version="3.2.37",_ssrUtils={createComponentInstance,setupComponent,renderComponentRoot,setCurrentRenderingInstance,isVNode,normalizeVNode},ssrUtils=_ssrUtils,resolveFilter=null,compatUtils=null,svgNS="http://www.w3.org/2000/svg",doc=typeof document!="undefined"?document:null,templateContainer=doc&&doc.createElement("template"),nodeOps={insert:(e,t,r)=>{t.insertBefore(e,r||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,r,n)=>{const a=t?doc.createElementNS(svgNS,e):doc.createElement(e,r?{is:r}:void 0);return e==="select"&&n&&n.multiple!=null&&a.setAttribute("multiple",n.multiple),a},createText:e=>doc.createTextNode(e),createComment:e=>doc.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>doc.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},cloneNode(e){const t=e.cloneNode(!0);return"_value"in e&&(t._value=e._value),t},insertStaticContent(e,t,r,n,a,o){const s=r?r.previousSibling:t.lastChild;if(a&&(a===o||a.nextSibling))for(;t.insertBefore(a.cloneNode(!0),r),!(a===o||!(a=a.nextSibling)););else{templateContainer.innerHTML=n?`${e}`:e;const l=templateContainer.content;if(n){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,r)}return[s?s.nextSibling:t.firstChild,r?r.previousSibling:t.lastChild]}};function patchClass(e,t,r){const n=e._vtc;n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):r?e.setAttribute("class",t):e.className=t}function patchStyle(e,t,r){const n=e.style,a=isString$4(r);if(r&&!a){for(const o in r)setStyle$1(n,o,r[o]);if(t&&!isString$4(t))for(const o in t)r[o]==null&&setStyle$1(n,o,"")}else{const o=n.display;a?t!==r&&(n.cssText=r):t&&e.removeAttribute("style"),"_vod"in e&&(n.display=o)}}const importantRE=/\s*!important$/;function setStyle$1(e,t,r){if(isArray$2(r))r.forEach(n=>setStyle$1(e,t,n));else if(r==null&&(r=""),t.startsWith("--"))e.setProperty(t,r);else{const n=autoPrefix(e,t);importantRE.test(r)?e.setProperty(hyphenate$1(n),r.replace(importantRE,""),"important"):e[n]=r}}const prefixes=["Webkit","Moz","ms"],prefixCache={};function autoPrefix(e,t){const r=prefixCache[t];if(r)return r;let n=camelize(t);if(n!=="filter"&&n in e)return prefixCache[t]=n;n=capitalize(n);for(let a=0;a{let e=Date.now,t=!1;if(typeof window!="undefined"){Date.now()>document.createEvent("Event").timeStamp&&(e=performance.now.bind(performance));const r=navigator.userAgent.match(/firefox\/(\d+)/i);t=!!(r&&Number(r[1])<=53)}return[e,t]})();let cachedNow=0;const p$1=Promise.resolve(),reset=()=>{cachedNow=0},getNow=()=>cachedNow||(p$1.then(reset),cachedNow=_getNow());function addEventListener(e,t,r,n){e.addEventListener(t,r,n)}function removeEventListener(e,t,r,n){e.removeEventListener(t,r,n)}function patchEvent(e,t,r,n,a=null){const o=e._vei||(e._vei={}),s=o[t];if(n&&s)s.value=n;else{const[l,c]=parseName(t);if(n){const u=o[t]=createInvoker(n,a);addEventListener(e,l,u,c)}else s&&(removeEventListener(e,l,s,c),o[t]=void 0)}}const optionsModifierRE=/(?:Once|Passive|Capture)$/;function parseName(e){let t;if(optionsModifierRE.test(e)){t={};let r;for(;r=e.match(optionsModifierRE);)e=e.slice(0,e.length-r[0].length),t[r[0].toLowerCase()]=!0}return[hyphenate$1(e.slice(2)),t]}function createInvoker(e,t){const r=n=>{const a=n.timeStamp||_getNow();(skipTimestampCheck||a>=r.attached-1)&&callWithAsyncErrorHandling(patchStopImmediatePropagation(n,r.value),t,5,[n])};return r.value=e,r.attached=getNow(),r}function patchStopImmediatePropagation(e,t){if(isArray$2(t)){const r=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{r.call(e),e._stopped=!0},t.map(n=>a=>!a._stopped&&n&&n(a))}else return t}const nativeOnRE=/^on[a-z]/,patchProp=(e,t,r,n,a=!1,o,s,l,c)=>{t==="class"?patchClass(e,n,a):t==="style"?patchStyle(e,r,n):isOn(t)?isModelListener(t)||patchEvent(e,t,r,n,s):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):shouldSetAsProp(e,t,n,a))?patchDOMProp(e,t,n,o,s,l,c):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),patchAttr(e,t,n,a))};function shouldSetAsProp(e,t,r,n){return n?!!(t==="innerHTML"||t==="textContent"||t in e&&nativeOnRE.test(t)&&isFunction$4(r)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||nativeOnRE.test(t)&&isString$4(r)?!1:t in e}function defineCustomElement(e,t){const r=defineComponent(e);class n extends VueElement{constructor(o){super(r,o,t)}}return n.def=r,n}const defineSSRCustomElement=e=>defineCustomElement(e,hydrate),BaseClass=typeof HTMLElement!="undefined"?HTMLElement:class{};class VueElement extends BaseClass{constructor(t,r={},n){super(),this._def=t,this._props=r,this._instance=null,this._connected=!1,this._resolved=!1,this._numberProps=null,this.shadowRoot&&n?n(this._createVNode(),this.shadowRoot):this.attachShadow({mode:"open"})}connectedCallback(){this._connected=!0,this._instance||this._resolveDef()}disconnectedCallback(){this._connected=!1,nextTick(()=>{this._connected||(render$1(null,this.shadowRoot),this._instance=null)})}_resolveDef(){if(this._resolved)return;this._resolved=!0;for(let n=0;n{for(const a of n)this._setAttr(a.attributeName)}).observe(this,{attributes:!0});const t=n=>{const{props:a,styles:o}=n,s=!isArray$2(a),l=a?s?Object.keys(a):a:[];let c;if(s)for(const u in this._props){const f=a[u];(f===Number||f&&f.type===Number)&&(this._props[u]=toNumber(this._props[u]),(c||(c=Object.create(null)))[u]=!0)}this._numberProps=c;for(const u of Object.keys(this))u[0]!=="_"&&this._setProp(u,this[u],!0,!1);for(const u of l.map(camelize))Object.defineProperty(this,u,{get(){return this._getProp(u)},set(f){this._setProp(u,f)}});this._applyStyles(o),this._update()},r=this._def.__asyncLoader;r?r().then(t):t(this._def)}_setAttr(t){let r=this.getAttribute(t);this._numberProps&&this._numberProps[t]&&(r=toNumber(r)),this._setProp(camelize(t),r,!1)}_getProp(t){return this._props[t]}_setProp(t,r,n=!0,a=!0){r!==this._props[t]&&(this._props[t]=r,a&&this._instance&&this._update(),n&&(r===!0?this.setAttribute(hyphenate$1(t),""):typeof r=="string"||typeof r=="number"?this.setAttribute(hyphenate$1(t),r+""):r||this.removeAttribute(hyphenate$1(t))))}_update(){render$1(this._createVNode(),this.shadowRoot)}_createVNode(){const t=createVNode(this._def,extend$1({},this._props));return this._instance||(t.ce=r=>{this._instance=r,r.isCE=!0,r.emit=(a,...o)=>{this.dispatchEvent(new CustomEvent(a,{detail:o}))};let n=this;for(;n=n&&(n.parentNode||n.host);)if(n instanceof VueElement){r.parent=n._instance;break}}),t}_applyStyles(t){t&&t.forEach(r=>{const n=document.createElement("style");n.textContent=r,this.shadowRoot.appendChild(n)})}}function useCssModule(e="$style"){{const t=getCurrentInstance();if(!t)return EMPTY_OBJ;const r=t.type.__cssModules;if(!r)return EMPTY_OBJ;const n=r[e];return n||EMPTY_OBJ}}function useCssVars(e){const t=getCurrentInstance();if(!t)return;const r=()=>setVarsOnVNode(t.subTree,e(t.proxy));watchPostEffect(r),onMounted(()=>{const n=new MutationObserver(r);n.observe(t.subTree.el.parentNode,{childList:!0}),onUnmounted(()=>n.disconnect())})}function setVarsOnVNode(e,t){if(e.shapeFlag&128){const r=e.suspense;e=r.activeBranch,r.pendingBranch&&!r.isHydrating&&r.effects.push(()=>{setVarsOnVNode(r.activeBranch,t)})}for(;e.component;)e=e.component.subTree;if(e.shapeFlag&1&&e.el)setVarsOnNode(e.el,t);else if(e.type===Fragment)e.children.forEach(r=>setVarsOnVNode(r,t));else if(e.type===Static){let{el:r,anchor:n}=e;for(;r&&(setVarsOnNode(r,t),r!==n);)r=r.nextSibling}}function setVarsOnNode(e,t){if(e.nodeType===1){const r=e.style;for(const n in t)r.setProperty(`--${n}`,t[n])}}const TRANSITION="transition",ANIMATION="animation",Transition=(e,{slots:t})=>h$1(BaseTransition,resolveTransitionProps(e),t);Transition.displayName="Transition";const DOMTransitionPropsValidators={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},TransitionPropsValidators=Transition.props=extend$1({},BaseTransition.props,DOMTransitionPropsValidators),callHook=(e,t=[])=>{isArray$2(e)?e.forEach(r=>r(...t)):e&&e(...t)},hasExplicitCallback=e=>e?isArray$2(e)?e.some(t=>t.length>1):e.length>1:!1;function resolveTransitionProps(e){const t={};for(const M1 in e)M1 in DOMTransitionPropsValidators||(t[M1]=e[M1]);if(e.css===!1)return t;const{name:r="v",type:n,duration:a,enterFromClass:o=`${r}-enter-from`,enterActiveClass:s=`${r}-enter-active`,enterToClass:l=`${r}-enter-to`,appearFromClass:c=o,appearActiveClass:u=s,appearToClass:f=l,leaveFromClass:t1=`${r}-leave-from`,leaveActiveClass:a1=`${r}-leave-active`,leaveToClass:i1=`${r}-leave-to`}=e,r1=normalizeDuration(a),l1=r1&&r1[0],s1=r1&&r1[1],{onBeforeEnter:n1,onEnter:o1,onEnterCancelled:u1,onLeave:f1,onLeaveCancelled:g1,onBeforeAppear:k1=n1,onAppear:p1=o1,onAppearCancelled:y1=u1}=t,S1=(M1,F1,L1)=>{removeTransitionClass(M1,F1?f:l),removeTransitionClass(M1,F1?u:s),L1&&L1()},E1=(M1,F1)=>{M1._isLeaving=!1,removeTransitionClass(M1,t1),removeTransitionClass(M1,i1),removeTransitionClass(M1,a1),F1&&F1()},w1=M1=>(F1,L1)=>{const X1=M1?p1:o1,j1=()=>S1(F1,M1,L1);callHook(X1,[F1,j1]),nextFrame(()=>{removeTransitionClass(F1,M1?c:o),addTransitionClass(F1,M1?f:l),hasExplicitCallback(X1)||whenTransitionEnds(F1,n,l1,j1)})};return extend$1(t,{onBeforeEnter(M1){callHook(n1,[M1]),addTransitionClass(M1,o),addTransitionClass(M1,s)},onBeforeAppear(M1){callHook(k1,[M1]),addTransitionClass(M1,c),addTransitionClass(M1,u)},onEnter:w1(!1),onAppear:w1(!0),onLeave(M1,F1){M1._isLeaving=!0;const L1=()=>E1(M1,F1);addTransitionClass(M1,t1),forceReflow(),addTransitionClass(M1,a1),nextFrame(()=>{!M1._isLeaving||(removeTransitionClass(M1,t1),addTransitionClass(M1,i1),hasExplicitCallback(f1)||whenTransitionEnds(M1,n,s1,L1))}),callHook(f1,[M1,L1])},onEnterCancelled(M1){S1(M1,!1),callHook(u1,[M1])},onAppearCancelled(M1){S1(M1,!0),callHook(y1,[M1])},onLeaveCancelled(M1){E1(M1),callHook(g1,[M1])}})}function normalizeDuration(e){if(e==null)return null;if(isObject$5(e))return[NumberOf(e.enter),NumberOf(e.leave)];{const t=NumberOf(e);return[t,t]}}function NumberOf(e){return toNumber(e)}function addTransitionClass(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.add(r)),(e._vtc||(e._vtc=new Set)).add(t)}function removeTransitionClass(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.remove(n));const{_vtc:r}=e;r&&(r.delete(t),r.size||(e._vtc=void 0))}function nextFrame(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let endId=0;function whenTransitionEnds(e,t,r,n){const a=e._endId=++endId,o=()=>{a===e._endId&&n()};if(r)return setTimeout(o,r);const{type:s,timeout:l,propCount:c}=getTransitionInfo(e,t);if(!s)return n();const u=s+"end";let f=0;const t1=()=>{e.removeEventListener(u,a1),o()},a1=i1=>{i1.target===e&&++f>=c&&t1()};setTimeout(()=>{f(r[r1]||"").split(", "),a=n(TRANSITION+"Delay"),o=n(TRANSITION+"Duration"),s=getTimeout(a,o),l=n(ANIMATION+"Delay"),c=n(ANIMATION+"Duration"),u=getTimeout(l,c);let f=null,t1=0,a1=0;t===TRANSITION?s>0&&(f=TRANSITION,t1=s,a1=o.length):t===ANIMATION?u>0&&(f=ANIMATION,t1=u,a1=c.length):(t1=Math.max(s,u),f=t1>0?s>u?TRANSITION:ANIMATION:null,a1=f?f===TRANSITION?o.length:c.length:0);const i1=f===TRANSITION&&/\b(transform|all)(,|$)/.test(r[TRANSITION+"Property"]);return{type:f,timeout:t1,propCount:a1,hasTransform:i1}}function getTimeout(e,t){for(;e.lengthtoMs(r)+toMs(e[n])))}function toMs(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function forceReflow(){return document.body.offsetHeight}const positionMap=new WeakMap,newPositionMap=new WeakMap,TransitionGroupImpl={name:"TransitionGroup",props:extend$1({},TransitionPropsValidators,{tag:String,moveClass:String}),setup(e,{slots:t}){const r=getCurrentInstance(),n=useTransitionState();let a,o;return onUpdated(()=>{if(!a.length)return;const s=e.moveClass||`${e.name||"v"}-move`;if(!hasCSSTransform(a[0].el,r.vnode.el,s))return;a.forEach(callPendingCbs),a.forEach(recordPosition);const l=a.filter(applyTranslation);forceReflow(),l.forEach(c=>{const u=c.el,f=u.style;addTransitionClass(u,s),f.transform=f.webkitTransform=f.transitionDuration="";const t1=u._moveCb=a1=>{a1&&a1.target!==u||(!a1||/transform$/.test(a1.propertyName))&&(u.removeEventListener("transitionend",t1),u._moveCb=null,removeTransitionClass(u,s))};u.addEventListener("transitionend",t1)})}),()=>{const s=toRaw(e),l=resolveTransitionProps(s);let c=s.tag||Fragment;a=o,o=t.default?getTransitionRawChildren(t.default()):[];for(let u=0;u{s.split(/\s+/).forEach(l=>l&&n.classList.remove(l))}),r.split(/\s+/).forEach(s=>s&&n.classList.add(s)),n.style.display="none";const a=t.nodeType===1?t:t.parentNode;a.appendChild(n);const{hasTransform:o}=getTransitionInfo(n);return a.removeChild(n),o}const getModelAssigner=e=>{const t=e.props["onUpdate:modelValue"]||!1;return isArray$2(t)?r=>invokeArrayFns(t,r):t};function onCompositionStart(e){e.target.composing=!0}function onCompositionEnd(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const vModelText={created(e,{modifiers:{lazy:t,trim:r,number:n}},a){e._assign=getModelAssigner(a);const o=n||a.props&&a.props.type==="number";addEventListener(e,t?"change":"input",s=>{if(s.target.composing)return;let l=e.value;r&&(l=l.trim()),o&&(l=toNumber(l)),e._assign(l)}),r&&addEventListener(e,"change",()=>{e.value=e.value.trim()}),t||(addEventListener(e,"compositionstart",onCompositionStart),addEventListener(e,"compositionend",onCompositionEnd),addEventListener(e,"change",onCompositionEnd))},mounted(e,{value:t}){e.value=t==null?"":t},beforeUpdate(e,{value:t,modifiers:{lazy:r,trim:n,number:a}},o){if(e._assign=getModelAssigner(o),e.composing||document.activeElement===e&&e.type!=="range"&&(r||n&&e.value.trim()===t||(a||e.type==="number")&&toNumber(e.value)===t))return;const s=t==null?"":t;e.value!==s&&(e.value=s)}},vModelCheckbox={deep:!0,created(e,t,r){e._assign=getModelAssigner(r),addEventListener(e,"change",()=>{const n=e._modelValue,a=getValue(e),o=e.checked,s=e._assign;if(isArray$2(n)){const l=looseIndexOf(n,a),c=l!==-1;if(o&&!c)s(n.concat(a));else if(!o&&c){const u=[...n];u.splice(l,1),s(u)}}else if(isSet(n)){const l=new Set(n);o?l.add(a):l.delete(a),s(l)}else s(getCheckboxValue(e,o))})},mounted:setChecked,beforeUpdate(e,t,r){e._assign=getModelAssigner(r),setChecked(e,t,r)}};function setChecked(e,{value:t,oldValue:r},n){e._modelValue=t,isArray$2(t)?e.checked=looseIndexOf(t,n.props.value)>-1:isSet(t)?e.checked=t.has(n.props.value):t!==r&&(e.checked=looseEqual(t,getCheckboxValue(e,!0)))}const vModelRadio={created(e,{value:t},r){e.checked=looseEqual(t,r.props.value),e._assign=getModelAssigner(r),addEventListener(e,"change",()=>{e._assign(getValue(e))})},beforeUpdate(e,{value:t,oldValue:r},n){e._assign=getModelAssigner(n),t!==r&&(e.checked=looseEqual(t,n.props.value))}},vModelSelect={deep:!0,created(e,{value:t,modifiers:{number:r}},n){const a=isSet(t);addEventListener(e,"change",()=>{const o=Array.prototype.filter.call(e.options,s=>s.selected).map(s=>r?toNumber(getValue(s)):getValue(s));e._assign(e.multiple?a?new Set(o):o:o[0])}),e._assign=getModelAssigner(n)},mounted(e,{value:t}){setSelected(e,t)},beforeUpdate(e,t,r){e._assign=getModelAssigner(r)},updated(e,{value:t}){setSelected(e,t)}};function setSelected(e,t){const r=e.multiple;if(!(r&&!isArray$2(t)&&!isSet(t))){for(let n=0,a=e.options.length;n-1:o.selected=t.has(s);else if(looseEqual(getValue(o),t)){e.selectedIndex!==n&&(e.selectedIndex=n);return}}!r&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function getValue(e){return"_value"in e?e._value:e.value}function getCheckboxValue(e,t){const r=t?"_trueValue":"_falseValue";return r in e?e[r]:t}const vModelDynamic={created(e,t,r){callModelHook(e,t,r,null,"created")},mounted(e,t,r){callModelHook(e,t,r,null,"mounted")},beforeUpdate(e,t,r,n){callModelHook(e,t,r,n,"beforeUpdate")},updated(e,t,r,n){callModelHook(e,t,r,n,"updated")}};function resolveDynamicModel(e,t){switch(e){case"SELECT":return vModelSelect;case"TEXTAREA":return vModelText;default:switch(t){case"checkbox":return vModelCheckbox;case"radio":return vModelRadio;default:return vModelText}}}function callModelHook(e,t,r,n,a){const s=resolveDynamicModel(e.tagName,r.props&&r.props.type)[a];s&&s(e,t,r,n)}function initVModelForSSR(){vModelText.getSSRProps=({value:e})=>({value:e}),vModelRadio.getSSRProps=({value:e},t)=>{if(t.props&&looseEqual(t.props.value,e))return{checked:!0}},vModelCheckbox.getSSRProps=({value:e},t)=>{if(isArray$2(e)){if(t.props&&looseIndexOf(e,t.props.value)>-1)return{checked:!0}}else if(isSet(e)){if(t.props&&e.has(t.props.value))return{checked:!0}}else if(e)return{checked:!0}},vModelDynamic.getSSRProps=(e,t)=>{if(typeof t.type!="string")return;const r=resolveDynamicModel(t.type.toUpperCase(),t.props&&t.props.type);if(r.getSSRProps)return r.getSSRProps(e,t)}}const systemModifiers=["ctrl","shift","alt","meta"],modifierGuards={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>systemModifiers.some(r=>e[`${r}Key`]&&!t.includes(r))},withModifiers=(e,t)=>(r,...n)=>{for(let a=0;ar=>{if(!("key"in r))return;const n=hyphenate$1(r.key);if(t.some(a=>a===n||keyNames[a]===n))return e(r)},vShow={beforeMount(e,{value:t},{transition:r}){e._vod=e.style.display==="none"?"":e.style.display,r&&t?r.beforeEnter(e):setDisplay(e,t)},mounted(e,{value:t},{transition:r}){r&&t&&r.enter(e)},updated(e,{value:t,oldValue:r},{transition:n}){!t!=!r&&(n?t?(n.beforeEnter(e),setDisplay(e,!0),n.enter(e)):n.leave(e,()=>{setDisplay(e,!1)}):setDisplay(e,t))},beforeUnmount(e,{value:t}){setDisplay(e,t)}};function setDisplay(e,t){e.style.display=t?e._vod:"none"}function initVShowForSSR(){vShow.getSSRProps=({value:e})=>{if(!e)return{style:{display:"none"}}}}const rendererOptions=extend$1({patchProp},nodeOps);let renderer,enabledHydration=!1;function ensureRenderer(){return renderer||(renderer=createRenderer(rendererOptions))}function ensureHydrationRenderer(){return renderer=enabledHydration?renderer:createHydrationRenderer(rendererOptions),enabledHydration=!0,renderer}const render$1=(...e)=>{ensureRenderer().render(...e)},hydrate=(...e)=>{ensureHydrationRenderer().hydrate(...e)},createApp=(...e)=>{const t=ensureRenderer().createApp(...e),{mount:r}=t;return t.mount=n=>{const a=normalizeContainer(n);if(!a)return;const o=t._component;!isFunction$4(o)&&!o.render&&!o.template&&(o.template=a.innerHTML),a.innerHTML="";const s=r(a,!1,a instanceof SVGElement);return a instanceof Element&&(a.removeAttribute("v-cloak"),a.setAttribute("data-v-app","")),s},t},createSSRApp=(...e)=>{const t=ensureHydrationRenderer().createApp(...e),{mount:r}=t;return t.mount=n=>{const a=normalizeContainer(n);if(a)return r(a,!0,a instanceof SVGElement)},t};function normalizeContainer(e){return isString$4(e)?document.querySelector(e):e}let ssrDirectiveInitialized=!1;const initDirectivesForSSR=()=>{ssrDirectiveInitialized||(ssrDirectiveInitialized=!0,initVModelForSSR(),initVShowForSSR())};var animate_min=(()=>`@charset "UTF-8";/*! +* animate.css - https://animate.style/ +* Version - 4.1.1 +* Licensed under the MIT license - http://opensource.org/licenses/MIT +* +* Copyright (c) 2020 Animate.css +*/:root{--animate-duration:1s;--animate-delay:1s;--animate-repeat:1}.animate__animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-duration:var(--animate-duration);animation-duration:var(--animate-duration);-webkit-animation-fill-mode:both;animation-fill-mode:both}.animate__animated.animate__infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animate__animated.animate__repeat-1{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-iteration-count:var(--animate-repeat);animation-iteration-count:var(--animate-repeat)}.animate__animated.animate__repeat-2{-webkit-animation-iteration-count:2;animation-iteration-count:2;-webkit-animation-iteration-count:calc(var(--animate-repeat)*2);animation-iteration-count:calc(var(--animate-repeat)*2)}.animate__animated.animate__repeat-3{-webkit-animation-iteration-count:3;animation-iteration-count:3;-webkit-animation-iteration-count:calc(var(--animate-repeat)*3);animation-iteration-count:calc(var(--animate-repeat)*3)}.animate__animated.animate__delay-1s{-webkit-animation-delay:1s;animation-delay:1s;-webkit-animation-delay:var(--animate-delay);animation-delay:var(--animate-delay)}.animate__animated.animate__delay-2s{-webkit-animation-delay:2s;animation-delay:2s;-webkit-animation-delay:calc(var(--animate-delay)*2);animation-delay:calc(var(--animate-delay)*2)}.animate__animated.animate__delay-3s{-webkit-animation-delay:3s;animation-delay:3s;-webkit-animation-delay:calc(var(--animate-delay)*3);animation-delay:calc(var(--animate-delay)*3)}.animate__animated.animate__delay-4s{-webkit-animation-delay:4s;animation-delay:4s;-webkit-animation-delay:calc(var(--animate-delay)*4);animation-delay:calc(var(--animate-delay)*4)}.animate__animated.animate__delay-5s{-webkit-animation-delay:5s;animation-delay:5s;-webkit-animation-delay:calc(var(--animate-delay)*5);animation-delay:calc(var(--animate-delay)*5)}.animate__animated.animate__faster{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-duration:calc(var(--animate-duration)/2);animation-duration:calc(var(--animate-duration)/2)}.animate__animated.animate__fast{-webkit-animation-duration:.8s;animation-duration:.8s;-webkit-animation-duration:calc(var(--animate-duration)*.8);animation-duration:calc(var(--animate-duration)*.8)}.animate__animated.animate__slow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-duration:calc(var(--animate-duration)*2);animation-duration:calc(var(--animate-duration)*2)}.animate__animated.animate__slower{-webkit-animation-duration:3s;animation-duration:3s;-webkit-animation-duration:calc(var(--animate-duration)*3);animation-duration:calc(var(--animate-duration)*3)}@media (prefers-reduced-motion:reduce),print{.animate__animated{-webkit-animation-duration:1ms!important;animation-duration:1ms!important;-webkit-transition-duration:1ms!important;transition-duration:1ms!important;-webkit-animation-iteration-count:1!important;animation-iteration-count:1!important}.animate__animated[class*=Out]{opacity:0}}@-webkit-keyframes bounce{0%,20%,53%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0) scaleY(1.1);transform:translate3d(0,-30px,0) scaleY(1.1)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0) scaleY(1.05);transform:translate3d(0,-15px,0) scaleY(1.05)}80%{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0) scaleY(.95);transform:translateZ(0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-4px,0) scaleY(1.02);transform:translate3d(0,-4px,0) scaleY(1.02)}}@keyframes bounce{0%,20%,53%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0) scaleY(1.1);transform:translate3d(0,-30px,0) scaleY(1.1)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0) scaleY(1.05);transform:translate3d(0,-15px,0) scaleY(1.05)}80%{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0) scaleY(.95);transform:translateZ(0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-4px,0) scaleY(1.02);transform:translate3d(0,-4px,0) scaleY(1.02)}}.animate__bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}.animate__flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__pulse{-webkit-animation-name:pulse;animation-name:pulse;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}@-webkit-keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shakeX{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes shakeX{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.animate__shakeX{-webkit-animation-name:shakeX;animation-name:shakeX}@-webkit-keyframes shakeY{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}20%,40%,60%,80%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}}@keyframes shakeY{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}20%,40%,60%,80%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}}.animate__shakeY{-webkit-animation-name:shakeY;animation-name:shakeY}@-webkit-keyframes headShake{0%{-webkit-transform:translateX(0);transform:translate(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translate(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translate(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translate(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translate(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translate(0)}}@keyframes headShake{0%{-webkit-transform:translateX(0);transform:translate(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translate(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translate(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translate(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translate(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translate(0)}}.animate__headShake{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-name:headShake;animation-name:headShake}@-webkit-keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0)}}@keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0)}}.animate__swing{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skew(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skew(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skew(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skew(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skew(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skew(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skew(-.1953125deg) skewY(-.1953125deg)}}@keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skew(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skew(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skew(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skew(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skew(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skew(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skew(-.1953125deg) skewY(-.1953125deg)}}.animate__jello{-webkit-animation-name:jello;animation-name:jello;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes heartBeat{0%{-webkit-transform:scale(1);transform:scale(1)}14%{-webkit-transform:scale(1.3);transform:scale(1.3)}28%{-webkit-transform:scale(1);transform:scale(1)}42%{-webkit-transform:scale(1.3);transform:scale(1.3)}70%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes heartBeat{0%{-webkit-transform:scale(1);transform:scale(1)}14%{-webkit-transform:scale(1.3);transform:scale(1.3)}28%{-webkit-transform:scale(1);transform:scale(1)}42%{-webkit-transform:scale(1.3);transform:scale(1.3)}70%{-webkit-transform:scale(1);transform:scale(1)}}.animate__heartBeat{-webkit-animation-name:heartBeat;animation-name:heartBeat;-webkit-animation-duration:1.3s;animation-duration:1.3s;-webkit-animation-duration:calc(var(--animate-duration)*1.3);animation-duration:calc(var(--animate-duration)*1.3);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}@-webkit-keyframes backInDown{0%{-webkit-transform:translateY(-1200px) scale(.7);transform:translateY(-1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInDown{0%{-webkit-transform:translateY(-1200px) scale(.7);transform:translateY(-1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInDown{-webkit-animation-name:backInDown;animation-name:backInDown}@-webkit-keyframes backInLeft{0%{-webkit-transform:translateX(-2000px) scale(.7);transform:translate(-2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translate(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInLeft{0%{-webkit-transform:translateX(-2000px) scale(.7);transform:translate(-2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translate(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInLeft{-webkit-animation-name:backInLeft;animation-name:backInLeft}@-webkit-keyframes backInRight{0%{-webkit-transform:translateX(2000px) scale(.7);transform:translate(2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translate(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInRight{0%{-webkit-transform:translateX(2000px) scale(.7);transform:translate(2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translate(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInRight{-webkit-animation-name:backInRight;animation-name:backInRight}@-webkit-keyframes backInUp{0%{-webkit-transform:translateY(1200px) scale(.7);transform:translateY(1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInUp{0%{-webkit-transform:translateY(1200px) scale(.7);transform:translateY(1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInUp{-webkit-animation-name:backInUp;animation-name:backInUp}@-webkit-keyframes backOutDown{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(700px) scale(.7);transform:translateY(700px) scale(.7);opacity:.7}}@keyframes backOutDown{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(700px) scale(.7);transform:translateY(700px) scale(.7);opacity:.7}}.animate__backOutDown{-webkit-animation-name:backOutDown;animation-name:backOutDown}@-webkit-keyframes backOutLeft{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0) scale(.7);transform:translate(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(-2000px) scale(.7);transform:translate(-2000px) scale(.7);opacity:.7}}@keyframes backOutLeft{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0) scale(.7);transform:translate(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(-2000px) scale(.7);transform:translate(-2000px) scale(.7);opacity:.7}}.animate__backOutLeft{-webkit-animation-name:backOutLeft;animation-name:backOutLeft}@-webkit-keyframes backOutRight{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0) scale(.7);transform:translate(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(2000px) scale(.7);transform:translate(2000px) scale(.7);opacity:.7}}@keyframes backOutRight{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0) scale(.7);transform:translate(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(2000px) scale(.7);transform:translate(2000px) scale(.7);opacity:.7}}.animate__backOutRight{-webkit-animation-name:backOutRight;animation-name:backOutRight}@-webkit-keyframes backOutUp{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(-700px) scale(.7);transform:translateY(-700px) scale(.7);opacity:.7}}@keyframes backOutUp{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(-700px) scale(.7);transform:translateY(-700px) scale(.7);opacity:.7}}.animate__backOutUp{-webkit-animation-name:backOutUp;animation-name:backOutUp}@-webkit-keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__bounceIn{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0) scaleY(3);transform:translate3d(0,-3000px,0) scaleY(3)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0) scaleY(.9);transform:translate3d(0,25px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,-10px,0) scaleY(.95);transform:translate3d(0,-10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,5px,0) scaleY(.985);transform:translate3d(0,5px,0) scaleY(.985)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0) scaleY(3);transform:translate3d(0,-3000px,0) scaleY(3)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0) scaleY(.9);transform:translate3d(0,25px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,-10px,0) scaleY(.95);transform:translate3d(0,-10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,5px,0) scaleY(.985);transform:translate3d(0,5px,0) scaleY(.985)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0) scaleX(3);transform:translate3d(-3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0) scaleX(1);transform:translate3d(25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(-10px,0,0) scaleX(.98);transform:translate3d(-10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(5px,0,0) scaleX(.995);transform:translate3d(5px,0,0) scaleX(.995)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0) scaleX(3);transform:translate3d(-3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0) scaleX(1);transform:translate3d(25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(-10px,0,0) scaleX(.98);transform:translate3d(-10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(5px,0,0) scaleX(.995);transform:translate3d(5px,0,0) scaleX(.995)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0) scaleX(3);transform:translate3d(3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0) scaleX(1);transform:translate3d(-25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(10px,0,0) scaleX(.98);transform:translate3d(10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(-5px,0,0) scaleX(.995);transform:translate3d(-5px,0,0) scaleX(.995)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0) scaleX(3);transform:translate3d(3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0) scaleX(1);transform:translate3d(-25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(10px,0,0) scaleX(.98);transform:translate3d(10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(-5px,0,0) scaleX(.995);transform:translate3d(-5px,0,0) scaleX(.995)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0) scaleY(5);transform:translate3d(0,3000px,0) scaleY(5)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,10px,0) scaleY(.95);transform:translate3d(0,10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-5px,0) scaleY(.985);transform:translate3d(0,-5px,0) scaleY(.985)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0) scaleY(5);transform:translate3d(0,3000px,0) scaleY(5)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,10px,0) scaleY(.95);transform:translate3d(0,10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-5px,0) scaleY(.985);transform:translate3d(0,-5px,0) scaleY(.985)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}.animate__bounceOut{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);-webkit-animation-name:bounceOut;animation-name:bounceOut}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0) scaleY(.985);transform:translate3d(0,10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0) scaleY(3);transform:translate3d(0,2000px,0) scaleY(3)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0) scaleY(.985);transform:translate3d(0,10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0) scaleY(3);transform:translate3d(0,2000px,0) scaleY(3)}}.animate__bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0) scaleX(.9);transform:translate3d(20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0) scaleX(2);transform:translate3d(-2000px,0,0) scaleX(2)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0) scaleX(.9);transform:translate3d(20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0) scaleX(2);transform:translate3d(-2000px,0,0) scaleX(2)}}.animate__bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0) scaleX(.9);transform:translate3d(-20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0) scaleX(2);transform:translate3d(2000px,0,0) scaleX(2)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0) scaleX(.9);transform:translate3d(-20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0) scaleX(2);transform:translate3d(2000px,0,0) scaleX(2)}}.animate__bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0) scaleY(.985);transform:translate3d(0,-10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0) scaleY(.9);transform:translate3d(0,20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0) scaleY(3);transform:translate3d(0,-2000px,0) scaleY(3)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0) scaleY(.985);transform:translate3d(0,-10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0) scaleY(.9);transform:translate3d(0,20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0) scaleY(3);transform:translate3d(0,-2000px,0) scaleY(3)}}.animate__bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate__fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeInTopLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInTopLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInTopLeft{-webkit-animation-name:fadeInTopLeft;animation-name:fadeInTopLeft}@-webkit-keyframes fadeInTopRight{0%{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInTopRight{0%{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInTopRight{-webkit-animation-name:fadeInTopRight;animation-name:fadeInTopRight}@-webkit-keyframes fadeInBottomLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInBottomLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInBottomLeft{-webkit-animation-name:fadeInBottomLeft;animation-name:fadeInBottomLeft}@-webkit-keyframes fadeInBottomRight{0%{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInBottomRight{0%{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInBottomRight{-webkit-animation-name:fadeInBottomRight;animation-name:fadeInBottomRight}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.animate__fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.animate__fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.animate__fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.animate__fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.animate__fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.animate__fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.animate__fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.animate__fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.animate__fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes fadeOutTopLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}}@keyframes fadeOutTopLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}}.animate__fadeOutTopLeft{-webkit-animation-name:fadeOutTopLeft;animation-name:fadeOutTopLeft}@-webkit-keyframes fadeOutTopRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}}@keyframes fadeOutTopRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}}.animate__fadeOutTopRight{-webkit-animation-name:fadeOutTopRight;animation-name:fadeOutTopRight}@-webkit-keyframes fadeOutBottomRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}}@keyframes fadeOutBottomRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}}.animate__fadeOutBottomRight{-webkit-animation-name:fadeOutBottomRight;animation-name:fadeOutBottomRight}@-webkit-keyframes fadeOutBottomLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}}@keyframes fadeOutBottomLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}}.animate__fadeOutBottomLeft{-webkit-animation-name:fadeOutBottomLeft;animation-name:fadeOutBottomLeft}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animate__animated.animate__flip{-webkit-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.animate__flipInX{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.animate__flipInY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}.animate__flipOutX{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}.animate__flipOutY{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY}@-webkit-keyframes lightSpeedInRight{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skew(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skew(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skew(-5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes lightSpeedInRight{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skew(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skew(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skew(-5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__lightSpeedInRight{-webkit-animation-name:lightSpeedInRight;animation-name:lightSpeedInRight;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedInLeft{0%{-webkit-transform:translate3d(-100%,0,0) skewX(30deg);transform:translate3d(-100%,0,0) skew(30deg);opacity:0}60%{-webkit-transform:skewX(-20deg);transform:skew(-20deg);opacity:1}80%{-webkit-transform:skewX(5deg);transform:skew(5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes lightSpeedInLeft{0%{-webkit-transform:translate3d(-100%,0,0) skewX(30deg);transform:translate3d(-100%,0,0) skew(30deg);opacity:0}60%{-webkit-transform:skewX(-20deg);transform:skew(-20deg);opacity:1}80%{-webkit-transform:skewX(5deg);transform:skew(5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__lightSpeedInLeft{-webkit-animation-name:lightSpeedInLeft;animation-name:lightSpeedInLeft;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOutRight{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skew(30deg);opacity:0}}@keyframes lightSpeedOutRight{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skew(30deg);opacity:0}}.animate__lightSpeedOutRight{-webkit-animation-name:lightSpeedOutRight;animation-name:lightSpeedOutRight;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes lightSpeedOutLeft{0%{opacity:1}to{-webkit-transform:translate3d(-100%,0,0) skewX(-30deg);transform:translate3d(-100%,0,0) skew(-30deg);opacity:0}}@keyframes lightSpeedOutLeft{0%{opacity:1}to{-webkit-transform:translate3d(-100%,0,0) skewX(-30deg);transform:translate3d(-100%,0,0) skew(-30deg);opacity:0}}.animate__lightSpeedOutLeft{-webkit-animation-name:lightSpeedOutLeft;animation-name:lightSpeedOutLeft;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateIn{0%{-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInDownLeft{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInDownRight{0%{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInUpLeft{0%{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInUpRight{0%{-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes rotateOut{0%{opacity:1}to{-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}@keyframes rotateOut{0%{opacity:1}to{-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}.animate__rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes rotateOutDownLeft{0%{opacity:1}to{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}@keyframes rotateOutDownLeft{0%{opacity:1}to{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}.animate__rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateOutDownRight{0%{opacity:1}to{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutDownRight{0%{opacity:1}to{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.animate__rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes rotateOutUpLeft{0%{opacity:1}to{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutUpLeft{0%{opacity:1}to{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.animate__rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateOutUpRight{0%{opacity:1}to{-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}@keyframes rotateOutUpRight{0%{opacity:1}to{-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}.animate__rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes hinge{0%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}@keyframes hinge{0%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}.animate__hinge{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-duration:calc(var(--animate-duration)*2);animation-duration:calc(var(--animate-duration)*2);-webkit-animation-name:hinge;animation-name:hinge;-webkit-transform-origin:top left;transform-origin:top left}@-webkit-keyframes jackInTheBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes jackInTheBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.animate__jackInTheBox{-webkit-animation-name:jackInTheBox;animation-name:jackInTheBox}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}@keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}.animate__rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.animate__zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}.animate__zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0)}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0)}}.animate__zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft;-webkit-transform-origin:left center;transform-origin:left center}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0)}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0)}}.animate__zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight;-webkit-transform-origin:right center;transform-origin:right center}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.animate__slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.animate__slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.animate__slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.animate__slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp} +`)(),animate=e=>{},__glob_0_0=Object.freeze(Object.defineProperty({__proto__:null,default:animate},Symbol.toStringTag,{value:"Module"})),base$1=(()=>`@charset "UTF-8";:root{--el-color-primary-rgb:64,158,255;--el-color-success-rgb:103,194,58;--el-color-warning-rgb:230,162,60;--el-color-danger-rgb:245,108,108;--el-color-error-rgb:245,108,108;--el-color-info-rgb:144,147,153;--el-font-size-extra-large:20px;--el-font-size-large:18px;--el-font-size-medium:16px;--el-font-size-base:14px;--el-font-size-small:13px;--el-font-size-extra-small:12px;--el-font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","\\5fae\\8f6f\\96c5\\9ed1",Arial,sans-serif;--el-font-weight-primary:500;--el-font-line-height-primary:24px;--el-index-normal:1;--el-index-top:1000;--el-index-popper:2000;--el-border-radius-base:4px;--el-border-radius-small:2px;--el-border-radius-round:20px;--el-border-radius-circle:100%;--el-transition-duration:.3s;--el-transition-duration-fast:.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(.645, .045, .355, 1);--el-transition-function-fast-bezier:cubic-bezier(.23, 1, .32, 1);--el-transition-all:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade:opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade:transform var(--el-transition-duration) var(--el-transition-function-fast-bezier),opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear:opacity var(--el-transition-duration-fast) linear;--el-transition-border:border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow:box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color:color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large:40px;--el-component-size:32px;--el-component-size-small:24px;color-scheme:light;--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary:#409eff;--el-color-primary-light-3:#79bbff;--el-color-primary-light-5:#a0cfff;--el-color-primary-light-7:#c6e2ff;--el-color-primary-light-8:#d9ecff;--el-color-primary-light-9:#ecf5ff;--el-color-primary-dark-2:#337ecc;--el-color-success:#67c23a;--el-color-success-light-3:#95d475;--el-color-success-light-5:#b3e19d;--el-color-success-light-7:#d1edc4;--el-color-success-light-8:#e1f3d8;--el-color-success-light-9:#f0f9eb;--el-color-success-dark-2:#529b2e;--el-color-warning:#e6a23c;--el-color-warning-light-3:#eebe77;--el-color-warning-light-5:#f3d19e;--el-color-warning-light-7:#f8e3c5;--el-color-warning-light-8:#faecd8;--el-color-warning-light-9:#fdf6ec;--el-color-warning-dark-2:#b88230;--el-color-danger:#f56c6c;--el-color-danger-light-3:#f89898;--el-color-danger-light-5:#fab6b6;--el-color-danger-light-7:#fcd3d3;--el-color-danger-light-8:#fde2e2;--el-color-danger-light-9:#fef0f0;--el-color-danger-dark-2:#c45656;--el-color-error:#f56c6c;--el-color-error-light-3:#f89898;--el-color-error-light-5:#fab6b6;--el-color-error-light-7:#fcd3d3;--el-color-error-light-8:#fde2e2;--el-color-error-light-9:#fef0f0;--el-color-error-dark-2:#c45656;--el-color-info:#909399;--el-color-info-light-3:#b1b3b8;--el-color-info-light-5:#c8c9cc;--el-color-info-light-7:#dedfe0;--el-color-info-light-8:#e9e9eb;--el-color-info-light-9:#f4f4f5;--el-color-info-dark-2:#73767a;--el-bg-color:#ffffff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#ffffff;--el-text-color-primary:#303133;--el-text-color-regular:#606266;--el-text-color-secondary:#909399;--el-text-color-placeholder:#a8abb2;--el-text-color-disabled:#c0c4cc;--el-border-color:#dcdfe6;--el-border-color-light:#e4e7ed;--el-border-color-lighter:#ebeef5;--el-border-color-extra-light:#f2f6fc;--el-border-color-dark:#d4d7de;--el-border-color-darker:#cdd0d6;--el-fill-color:#f0f2f5;--el-fill-color-light:#f5f7fa;--el-fill-color-lighter:#fafafa;--el-fill-color-extra-light:#fafcff;--el-fill-color-dark:#ebedf0;--el-fill-color-darker:#e6e8eb;--el-fill-color-blank:#ffffff;--el-box-shadow:0px 12px 32px 4px rgba(0, 0, 0, .04),0px 8px 20px rgba(0, 0, 0, .08);--el-box-shadow-light:0px 0px 12px rgba(0, 0, 0, .12);--el-box-shadow-lighter:0px 0px 6px rgba(0, 0, 0, .12);--el-box-shadow-dark:0px 16px 48px 16px rgba(0, 0, 0, .08),0px 12px 32px rgba(0, 0, 0, .12),0px 8px 16px -8px rgba(0, 0, 0, .16);--el-disabled-bg-color:var(--el-fill-color-light);--el-disabled-text-color:var(--el-text-color-placeholder);--el-disabled-border-color:var(--el-border-color-light);--el-overlay-color:rgba(0, 0, 0, .8);--el-overlay-color-light:rgba(0, 0, 0, .7);--el-overlay-color-lighter:rgba(0, 0, 0, .5);--el-mask-color:rgba(255, 255, 255, .9);--el-mask-color-extra-light:rgba(255, 255, 255, .3);--el-border-width:1px;--el-border-style:solid;--el-border-color-hover:var(--el-text-color-disabled);--el-border:var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey:var(--el-border-color)}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center top}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center bottom}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transition:var(--el-transition-md-fade);transform-origin:top left}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-enter-active,.el-collapse-transition-leave-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-icon-loading{animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.el-icon{--color:inherit;height:1em;width:1em;line-height:1em;display:inline-flex;justify-content:center;align-items:center;position:relative;fill:currentColor;color:var(--color);font-size:inherit}.el-icon.is-loading{animation:rotating 2s linear infinite}.el-icon svg{height:1em;width:1em} +`)(),elMessageBox=(()=>`:root{--el-popup-modal-bg-color:var(--el-color-black);--el-popup-modal-opacity:.5}.v-modal-enter{animation:v-modal-in var(--el-transition-duration-fast) ease}.v-modal-leave{animation:v-modal-out var(--el-transition-duration-fast) ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:var(--el-popup-modal-opacity);background:var(--el-popup-modal-bg-color)}.el-popup-parent--hidden{overflow:hidden}.el-message-box{--el-messagebox-title-color:var(--el-text-color-primary);--el-messagebox-width:420px;--el-messagebox-border-radius:4px;--el-messagebox-font-size:var(--el-font-size-large);--el-messagebox-content-font-size:var(--el-font-size-base);--el-messagebox-content-color:var(--el-text-color-regular);--el-messagebox-error-font-size:12px;--el-messagebox-padding-primary:15px;display:inline-block;width:var(--el-messagebox-width);padding-bottom:10px;vertical-align:middle;background-color:var(--el-bg-color);border-radius:var(--el-messagebox-border-radius);border:1px solid var(--el-border-color-lighter);font-size:var(--el-messagebox-font-size);box-shadow:var(--el-box-shadow-light);text-align:left;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden}.el-message-box:focus{outline:0!important}.el-overlay.is-message-box .el-overlay-message-box{text-align:center;position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto}.el-overlay.is-message-box .el-overlay-message-box:after{content:"";display:inline-block;height:100%;width:0;vertical-align:middle}.el-message-box.is-draggable .el-message-box__header{cursor:move;-webkit-user-select:none;user-select:none}.el-message-box__header{position:relative;padding:var(--el-messagebox-padding-primary);padding-bottom:10px}.el-message-box__title{padding-left:0;margin-bottom:0;font-size:var(--el-messagebox-font-size);line-height:1;color:var(--el-messagebox-title-color)}.el-message-box__headerbtn{position:absolute;top:var(--el-messagebox-padding-primary);right:var(--el-messagebox-padding-primary);padding:0;border:none;outline:0;background:0 0;font-size:var(--el-message-close-size,16px);cursor:pointer}.el-message-box__headerbtn .el-message-box__close{color:var(--el-color-info);font-size:inherit}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:var(--el-color-primary)}.el-message-box__content{padding:10px var(--el-messagebox-padding-primary);color:var(--el-messagebox-content-color);font-size:var(--el-messagebox-content-font-size)}.el-message-box__container{position:relative}.el-message-box__input{padding-top:15px}.el-message-box__input div.invalid>input{border-color:var(--el-color-error)}.el-message-box__input div.invalid>input:focus{border-color:var(--el-color-error)}.el-message-box__status{position:absolute;top:50%;transform:translateY(-50%);font-size:24px!important}.el-message-box__status:before{padding-left:1px}.el-message-box__status.el-icon{position:absolute}.el-message-box__status+.el-message-box__message{padding-left:36px;padding-right:12px;word-break:break-word}.el-message-box__status.el-message-box-icon--success{--el-messagebox-color:var(--el-color-success);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--info{--el-messagebox-color:var(--el-color-info);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--warning{--el-messagebox-color:var(--el-color-warning);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--error{--el-messagebox-color:var(--el-color-error);color:var(--el-messagebox-color)}.el-message-box__message{margin:0}.el-message-box__message p{margin:0;line-height:24px}.el-message-box__errormsg{color:var(--el-color-error);font-size:var(--el-messagebox-error-font-size);min-height:18px;margin-top:2px}.el-message-box__btns{padding:5px 15px 0;display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center}.el-message-box__btns button:nth-child(2){margin-left:10px}.el-message-box__btns-reverse{flex-direction:row-reverse}.el-message-box--center .el-message-box__title{position:relative;display:flex;align-items:center;justify-content:center}.el-message-box--center .el-message-box__status{position:relative;top:auto;padding-right:5px;text-align:center;transform:translateY(-1px)}.el-message-box--center .el-message-box__message{margin-left:0}.el-message-box--center .el-message-box__btns{justify-content:center}.el-message-box--center .el-message-box__content{padding-left:calc(var(--el-messagebox-padding-primary) + 12px);padding-right:calc(var(--el-messagebox-padding-primary) + 12px);text-align:center}.fade-in-linear-enter-active .el-overlay-message-box{animation:msgbox-fade-in var(--el-transition-duration)}.fade-in-linear-leave-active .el-overlay-message-box{animation:msgbox-fade-in var(--el-transition-duration) reverse}@keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes msgbox-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}} +`)(),elButton=(()=>`.el-button{--el-button-font-weight:var(--el-font-weight-primary);--el-button-border-color:var(--el-border-color);--el-button-bg-color:var(--el-fill-color-blank);--el-button-text-color:var(--el-text-color-regular);--el-button-disabled-text-color:var(--el-disabled-text-color);--el-button-disabled-bg-color:var(--el-fill-color-blank);--el-button-disabled-border-color:var(--el-border-color-light);--el-button-divide-border-color:rgba(255, 255, 255, .5);--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-7);--el-button-active-text-color:var(--el-button-hover-text-color);--el-button-active-border-color:var(--el-color-primary);--el-button-active-bg-color:var(--el-button-hover-bg-color);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-hover-link-text-color:var(--el-color-info);--el-button-active-color:var(--el-text-color-primary);display:inline-flex;justify-content:center;align-items:center;line-height:1;height:32px;white-space:nowrap;cursor:pointer;color:var(--el-button-text-color);text-align:center;box-sizing:border-box;outline:0;transition:.1s;font-weight:var(--el-button-font-weight);-webkit-user-select:none;user-select:none;vertical-align:middle;-webkit-appearance:none;background-color:var(--el-button-bg-color);border:var(--el-border);border-color:var(--el-button-border-color);padding:8px 15px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}.el-button:focus,.el-button:hover{color:var(--el-button-hover-text-color);border-color:var(--el-button-hover-border-color);background-color:var(--el-button-hover-bg-color);outline:0}.el-button:active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:0}.el-button:focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px}.el-button>span{display:inline-flex;align-items:center}.el-button+.el-button{margin-left:12px}.el-button.is-round{padding:8px 15px}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon]+span{margin-left:6px}.el-button [class*=el-icon] svg{vertical-align:bottom}.el-button.is-plain{--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-fill-color-blank);--el-button-hover-border-color:var(--el-color-primary)}.el-button.is-active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:0}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:var(--el-button-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color);border-color:var(--el-button-disabled-border-color)}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{z-index:1;pointer-events:none;content:"";position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:var(--el-mask-color-extra-light)}.el-button.is-round{border-radius:var(--el-border-radius-round)}.el-button.is-circle{border-radius:50%;padding:8px}.el-button.is-text{color:var(--el-button-text-color);border:0 solid transparent;background-color:transparent}.el-button.is-text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important}.el-button.is-text:not(.is-disabled):focus,.el-button.is-text:not(.is-disabled):hover{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled):focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px}.el-button.is-text:not(.is-disabled):active{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled).is-has-bg:focus,.el-button.is-text:not(.is-disabled).is-has-bg:hover{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg:active{background-color:var(--el-fill-color-dark)}.el-button__text--expand{letter-spacing:.3em;margin-right:-.3em}.el-button.is-link{border-color:transparent;color:var(--el-button-text-color);background:0 0;padding:2px;height:auto}.el-button.is-link:focus,.el-button.is-link:hover{color:var(--el-button-hover-link-text-color)}.el-button.is-link.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.el-button.is-link:not(.is-disabled):focus,.el-button.is-link:not(.is-disabled):hover{border-color:transparent;background-color:transparent}.el-button.is-link:not(.is-disabled):active{color:var(--el-button-active-color);border-color:transparent;background-color:transparent}.el-button--text{border-color:transparent;background:0 0;color:var(--el-color-primary);padding-left:0;padding-right:0}.el-button--text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.el-button--text:not(.is-disabled):focus,.el-button--text:not(.is-disabled):hover{color:var(--el-color-primary-light-3);border-color:transparent;background-color:transparent}.el-button--text:not(.is-disabled):active{color:var(--el-color-primary-dark-2);border-color:transparent;background-color:transparent}.el-button__link--expand{letter-spacing:.3em;margin-right:-.3em}.el-button--primary{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-primary);--el-button-border-color:var(--el-color-primary);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-active-color:var(--el-color-primary-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-primary-light-5);--el-button-hover-bg-color:var(--el-color-primary-light-3);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-bg-color:var(--el-color-primary-dark-2);--el-button-active-border-color:var(--el-color-primary-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-primary-light-5);--el-button-disabled-border-color:var(--el-color-primary-light-5)}.el-button--primary.is-link,.el-button--primary.is-plain,.el-button--primary.is-text{--el-button-text-color:var(--el-color-primary);--el-button-bg-color:var(--el-color-primary-light-9);--el-button-border-color:var(--el-color-primary-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-primary);--el-button-hover-border-color:var(--el-color-primary);--el-button-active-text-color:var(--el-color-white)}.el-button--primary.is-link.is-disabled,.el-button--primary.is-link.is-disabled:active,.el-button--primary.is-link.is-disabled:focus,.el-button--primary.is-link.is-disabled:hover,.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover,.el-button--primary.is-text.is-disabled,.el-button--primary.is-text.is-disabled:active,.el-button--primary.is-text.is-disabled:focus,.el-button--primary.is-text.is-disabled:hover{color:var(--el-color-primary-light-5);background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8)}.el-button--success{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-success);--el-button-border-color:var(--el-color-success);--el-button-outline-color:var(--el-color-success-light-5);--el-button-active-color:var(--el-color-success-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-success-light-5);--el-button-hover-bg-color:var(--el-color-success-light-3);--el-button-hover-border-color:var(--el-color-success-light-3);--el-button-active-bg-color:var(--el-color-success-dark-2);--el-button-active-border-color:var(--el-color-success-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-success-light-5);--el-button-disabled-border-color:var(--el-color-success-light-5)}.el-button--success.is-link,.el-button--success.is-plain,.el-button--success.is-text{--el-button-text-color:var(--el-color-success);--el-button-bg-color:var(--el-color-success-light-9);--el-button-border-color:var(--el-color-success-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-success);--el-button-hover-border-color:var(--el-color-success);--el-button-active-text-color:var(--el-color-white)}.el-button--success.is-link.is-disabled,.el-button--success.is-link.is-disabled:active,.el-button--success.is-link.is-disabled:focus,.el-button--success.is-link.is-disabled:hover,.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover,.el-button--success.is-text.is-disabled,.el-button--success.is-text.is-disabled:active,.el-button--success.is-text.is-disabled:focus,.el-button--success.is-text.is-disabled:hover{color:var(--el-color-success-light-5);background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8)}.el-button--warning{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-warning);--el-button-border-color:var(--el-color-warning);--el-button-outline-color:var(--el-color-warning-light-5);--el-button-active-color:var(--el-color-warning-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-warning-light-5);--el-button-hover-bg-color:var(--el-color-warning-light-3);--el-button-hover-border-color:var(--el-color-warning-light-3);--el-button-active-bg-color:var(--el-color-warning-dark-2);--el-button-active-border-color:var(--el-color-warning-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-warning-light-5);--el-button-disabled-border-color:var(--el-color-warning-light-5)}.el-button--warning.is-link,.el-button--warning.is-plain,.el-button--warning.is-text{--el-button-text-color:var(--el-color-warning);--el-button-bg-color:var(--el-color-warning-light-9);--el-button-border-color:var(--el-color-warning-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-warning);--el-button-hover-border-color:var(--el-color-warning);--el-button-active-text-color:var(--el-color-white)}.el-button--warning.is-link.is-disabled,.el-button--warning.is-link.is-disabled:active,.el-button--warning.is-link.is-disabled:focus,.el-button--warning.is-link.is-disabled:hover,.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover,.el-button--warning.is-text.is-disabled,.el-button--warning.is-text.is-disabled:active,.el-button--warning.is-text.is-disabled:focus,.el-button--warning.is-text.is-disabled:hover{color:var(--el-color-warning-light-5);background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8)}.el-button--danger{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-danger);--el-button-border-color:var(--el-color-danger);--el-button-outline-color:var(--el-color-danger-light-5);--el-button-active-color:var(--el-color-danger-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-danger-light-5);--el-button-hover-bg-color:var(--el-color-danger-light-3);--el-button-hover-border-color:var(--el-color-danger-light-3);--el-button-active-bg-color:var(--el-color-danger-dark-2);--el-button-active-border-color:var(--el-color-danger-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-danger-light-5);--el-button-disabled-border-color:var(--el-color-danger-light-5)}.el-button--danger.is-link,.el-button--danger.is-plain,.el-button--danger.is-text{--el-button-text-color:var(--el-color-danger);--el-button-bg-color:var(--el-color-danger-light-9);--el-button-border-color:var(--el-color-danger-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-danger);--el-button-hover-border-color:var(--el-color-danger);--el-button-active-text-color:var(--el-color-white)}.el-button--danger.is-link.is-disabled,.el-button--danger.is-link.is-disabled:active,.el-button--danger.is-link.is-disabled:focus,.el-button--danger.is-link.is-disabled:hover,.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover,.el-button--danger.is-text.is-disabled,.el-button--danger.is-text.is-disabled:active,.el-button--danger.is-text.is-disabled:focus,.el-button--danger.is-text.is-disabled:hover{color:var(--el-color-danger-light-5);background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8)}.el-button--info{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-info);--el-button-border-color:var(--el-color-info);--el-button-outline-color:var(--el-color-info-light-5);--el-button-active-color:var(--el-color-info-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-info-light-5);--el-button-hover-bg-color:var(--el-color-info-light-3);--el-button-hover-border-color:var(--el-color-info-light-3);--el-button-active-bg-color:var(--el-color-info-dark-2);--el-button-active-border-color:var(--el-color-info-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-info-light-5);--el-button-disabled-border-color:var(--el-color-info-light-5)}.el-button--info.is-link,.el-button--info.is-plain,.el-button--info.is-text{--el-button-text-color:var(--el-color-info);--el-button-bg-color:var(--el-color-info-light-9);--el-button-border-color:var(--el-color-info-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-info);--el-button-hover-border-color:var(--el-color-info);--el-button-active-text-color:var(--el-color-white)}.el-button--info.is-link.is-disabled,.el-button--info.is-link.is-disabled:active,.el-button--info.is-link.is-disabled:focus,.el-button--info.is-link.is-disabled:hover,.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover,.el-button--info.is-text.is-disabled,.el-button--info.is-text.is-disabled:active,.el-button--info.is-text.is-disabled:focus,.el-button--info.is-text.is-disabled:hover{color:var(--el-color-info-light-5);background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8)}.el-button--large{--el-button-size:40px;height:var(--el-button-size);padding:12px 19px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}.el-button--large [class*=el-icon]+span{margin-left:8px}.el-button--large.is-round{padding:12px 19px}.el-button--large.is-circle{width:var(--el-button-size);padding:12px}.el-button--small{--el-button-size:24px;height:var(--el-button-size);padding:5px 11px;font-size:12px;border-radius:calc(var(--el-border-radius-base) - 1px)}.el-button--small [class*=el-icon]+span{margin-left:4px}.el-button--small.is-round{padding:5px 11px}.el-button--small.is-circle{width:var(--el-button-size);padding:5px} +`)(),elInput=(()=>`.el-textarea{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);position:relative;display:inline-block;width:100%;vertical-align:bottom;font-size:var(--el-font-size-base)}.el-textarea__inner{position:relative;display:block;resize:vertical;padding:5px 11px;line-height:1.5;box-sizing:border-box;width:100%;font-size:inherit;font-family:inherit;color:var(--el-input-text-color,var(--el-text-color-regular));background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;-webkit-appearance:none;box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));transition:var(--el-transition-box-shadow);border:none}.el-textarea__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-textarea__inner:focus{outline:0;box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-textarea .el-input__count{color:var(--el-color-info);background:var(--el-fill-color-blank);position:absolute;font-size:12px;line-height:14px;bottom:5px;right:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-exceed .el-textarea__inner{border-color:var(--el-color-danger)}.el-textarea.is-exceed .el-input__count{color:var(--el-color-danger)}.el-input{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-height:var(--el-component-size);position:relative;font-size:var(--el-font-size-base);display:inline-flex;width:100%;line-height:var(--el-input-height);box-sizing:border-box}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:var(--el-text-color-disabled)}.el-input::-webkit-scrollbar-corner{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track-piece{background:var(--el-fill-color-blank);width:6px}.el-input .el-input__clear,.el-input .el-input__password{color:var(--el-input-icon-color);font-size:14px;cursor:pointer}.el-input .el-input__clear:hover,.el-input .el-input__password:hover{color:var(--el-input-clear-hover-color)}.el-input .el-input__count{height:100%;display:inline-flex;align-items:center;color:var(--el-color-info);font-size:12px}.el-input .el-input__count .el-input__count-inner{background:var(--el-fill-color-blank);line-height:initial;display:inline-block;padding-left:8px}.el-input__wrapper{display:inline-flex;flex-grow:1;align-items:center;justify-content:center;padding:1px 11px;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));transition:var(--el-transition-box-shadow);box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset}.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 32px) - 2px);width:100%;flex-grow:1;-webkit-appearance:none;color:var(--el-input-text-color,var(--el-text-color-regular));font-size:inherit;height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);padding:0;outline:0;border:none;background:0 0;box-sizing:border-box}.el-input__inner:focus{outline:0}.el-input__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner[type=password]::-ms-reveal{display:none}.el-input__prefix{display:inline-flex;white-space:nowrap;flex-shrink:0;flex-wrap:nowrap;height:100%;text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none}.el-input__prefix-inner{pointer-events:all;display:inline-flex;align-items:center;justify-content:center}.el-input__prefix-inner>:last-child{margin-right:8px}.el-input__prefix-inner>:first-child,.el-input__prefix-inner>:first-child.el-input__icon{margin-left:0}.el-input__suffix{display:inline-flex;white-space:nowrap;flex-shrink:0;flex-wrap:nowrap;height:100%;text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none}.el-input__suffix-inner{pointer-events:all;display:inline-flex;align-items:center;justify-content:center}.el-input__suffix-inner>:first-child{margin-left:8px}.el-input .el-input__icon{height:inherit;line-height:inherit;display:flex;justify-content:center;align-items:center;transition:all var(--el-transition-duration);margin-left:8px}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-color,) inset}.el-input.is-disabled{cursor:not-allowed}.el-input.is-disabled .el-input__wrapper{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset}.el-input.is-disabled .el-input__inner{color:var(--el-disabled-text-color);cursor:not-allowed}.el-input.is-disabled .el-input__inner::placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-exceed .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-input.is-exceed .el-input__suffix .el-input__count{color:var(--el-color-danger)}.el-input--large{--el-input-height:var(--el-component-size-large);font-size:14px}.el-input--large .el-input__wrapper{padding:1px 15px}.el-input--large .el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 40px) - 2px)}.el-input--small{--el-input-height:var(--el-component-size-small);font-size:12px}.el-input--small .el-input__wrapper{padding:1px 7px}.el-input--small .el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 24px) - 2px)}.el-input-group{display:inline-flex;width:100%;align-items:stretch}.el-input-group__append,.el-input-group__prepend{background-color:var(--el-fill-color-light);color:var(--el-color-info);position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:100%;border-radius:var(--el-input-border-radius);padding:0 20px;white-space:nowrap}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:0}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:0 -20px}.el-input-group__append button.el-button,.el-input-group__append button.el-button:hover,.el-input-group__append div.el-select .el-input__wrapper,.el-input-group__append div.el-select:hover .el-input__wrapper,.el-input-group__prepend button.el-button,.el-input-group__prepend button.el-button:hover,.el-input-group__prepend div.el-select .el-input__wrapper,.el-input-group__prepend div.el-select:hover .el-input__wrapper{border-color:transparent;background-color:transparent;color:inherit}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group__append{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-group--prepend>.el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--prepend .el-input-group__prepend .el-select .el-input .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select .el-input .el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__wrapper{box-shadow:1px 0 0 0 var(--el-input-focus-border-color) inset,1px 0 0 0 var(--el-input-focus-border-color),0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important;z-index:2}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__wrapper:focus{outline:0;z-index:2;box-shadow:1px 0 0 0 var(--el-input-focus-border-color) inset,1px 0 0 0 var(--el-input-focus-border-color),0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important}.el-input-group--prepend .el-input-group__prepend .el-select:hover .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select:hover .el-input__wrapper{z-index:1;box-shadow:1px 0 0 0 var(--el-input-hover-border-color) inset,1px 0 0 0 var(--el-input-hover-border-color),0 1px 0 0 var(--el-input-hover-border-color) inset,0 -1px 0 0 var(--el-input-hover-border-color) inset!important}.el-input-group--append>.el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group--append .el-input-group__append .el-select .el-input .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select .el-input .el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-group--append .el-input-group__append .el-select .el-input.is-focus .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select .el-input.is-focus .el-input__wrapper{z-index:2;box-shadow:-1px 0 0 0 var(--el-input-focus-border-color),-1px 0 0 0 var(--el-input-focus-border-color) inset,0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important}.el-input-group--append .el-input-group__append .el-select:hover .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select:hover .el-input__wrapper{z-index:1;box-shadow:-1px 0 0 0 var(--el-input-hover-border-color),-1px 0 0 0 var(--el-input-hover-border-color) inset,0 1px 0 0 var(--el-input-hover-border-color) inset,0 -1px 0 0 var(--el-input-hover-border-color) inset!important} +`)(),elOverlay=(()=>`.el-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;height:100%;background-color:var(--el-overlay-color-lighter);overflow:auto}.el-overlay .el-overlay-root{height:0} +`)(),elMessage=(()=>`.el-message{--el-message-min-width:380px;--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-border-color-lighter);--el-message-padding:15px 15px 15px 20px;--el-message-close-size:16px;--el-message-close-icon-color:var(--el-text-color-placeholder);--el-message-close-hover-color:var(--el-text-color-secondary);min-width:var(--el-message-min-width);box-sizing:border-box;border-radius:var(--el-border-radius-base);border-width:var(--el-border-width);border-style:var(--el-border-style);border-color:var(--el-message-border-color);position:fixed;left:50%;top:20px;transform:translate(-50%);transition:opacity .3s,transform .4s,top .4s;background-color:var(--el-message-bg-color);transition:opacity var(--el-transition-duration),transform .4s,top .4s;padding:var(--el-message-padding);display:flex;align-items:center}.el-message.is-center{justify-content:center}.el-message.is-closable .el-message__content{padding-right:16px}.el-message p{margin:0}.el-message--success{--el-message-bg-color:var(--el-color-success-light-9);--el-message-border-color:var(--el-color-success-light-8);--el-message-text-color:var(--el-color-success)}.el-message--success .el-message__content,.el-message .el-message-icon--success{color:var(--el-message-text-color)}.el-message--info{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-color-info-light-8);--el-message-text-color:var(--el-color-info)}.el-message--info .el-message__content,.el-message .el-message-icon--info{color:var(--el-message-text-color)}.el-message--warning{--el-message-bg-color:var(--el-color-warning-light-9);--el-message-border-color:var(--el-color-warning-light-8);--el-message-text-color:var(--el-color-warning)}.el-message--warning .el-message__content,.el-message .el-message-icon--warning{color:var(--el-message-text-color)}.el-message--error{--el-message-bg-color:var(--el-color-error-light-9);--el-message-border-color:var(--el-color-error-light-8);--el-message-text-color:var(--el-color-error)}.el-message--error .el-message__content,.el-message .el-message-icon--error{color:var(--el-message-text-color)}.el-message__icon{margin-right:10px}.el-message .el-message__badge{position:absolute;top:-8px;right:-8px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__content:focus{outline-width:0}.el-message .el-message__closeBtn{position:absolute;top:50%;right:15px;transform:translateY(-50%);cursor:pointer;color:var(--el-message-close-icon-color);font-size:var(--el-message-close-size)}.el-message .el-message__closeBtn:focus{outline-width:0}.el-message .el-message__closeBtn:hover{color:var(--el-message-close-hover-color)}.el-message-fade-enter-from,.el-message-fade-leave-to{opacity:0;transform:translate(-50%,-100%)} +`)(),elNotification=(()=>`.el-notification{--el-notification-width:330px;--el-notification-padding:14px 26px 14px 13px;--el-notification-radius:8px;--el-notification-shadow:var(--el-box-shadow-light);--el-notification-border-color:var(--el-border-color-lighter);--el-notification-icon-size:24px;--el-notification-close-font-size:var(--el-message-close-size, 16px);--el-notification-group-margin-left:13px;--el-notification-group-margin-right:8px;--el-notification-content-font-size:var(--el-font-size-base);--el-notification-content-color:var(--el-text-color-regular);--el-notification-title-font-size:16px;--el-notification-title-color:var(--el-text-color-primary);--el-notification-close-color:var(--el-text-color-secondary);--el-notification-close-hover-color:var(--el-text-color-regular);display:flex;width:var(--el-notification-width);padding:var(--el-notification-padding);border-radius:var(--el-notification-radius);box-sizing:border-box;border:1px solid var(--el-notification-border-color);position:fixed;background-color:var(--el-bg-color-overlay);box-shadow:var(--el-notification-shadow);transition:opacity var(--el-transition-duration),transform var(--el-transition-duration),left var(--el-transition-duration),right var(--el-transition-duration),top .4s,bottom var(--el-transition-duration);overflow-wrap:anywhere;overflow:hidden;z-index:9999}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{margin-left:var(--el-notification-group-margin-left);margin-right:var(--el-notification-group-margin-right)}.el-notification__title{font-weight:700;font-size:var(--el-notification-title-font-size);line-height:var(--el-notification-icon-size);color:var(--el-notification-title-color);margin:0}.el-notification__content{font-size:var(--el-notification-content-font-size);line-height:24px;margin:6px 0 0;color:var(--el-notification-content-color);text-align:justify}.el-notification__content p{margin:0}.el-notification .el-notification__icon{height:var(--el-notification-icon-size);width:var(--el-notification-icon-size);font-size:var(--el-notification-icon-size)}.el-notification .el-notification__closeBtn{position:absolute;top:18px;right:15px;cursor:pointer;color:var(--el-notification-close-color);font-size:var(--el-notification-close-font-size)}.el-notification .el-notification__closeBtn:hover{color:var(--el-notification-close-hover-color)}.el-notification .el-notification--success{--el-notification-icon-color:var(--el-color-success);color:var(--el-notification-icon-color)}.el-notification .el-notification--info{--el-notification-icon-color:var(--el-color-info);color:var(--el-notification-icon-color)}.el-notification .el-notification--warning{--el-notification-icon-color:var(--el-color-warning);color:var(--el-notification-icon-color)}.el-notification .el-notification--error{--el-notification-icon-color:var(--el-color-error);color:var(--el-notification-icon-color)}.el-notification-fade-enter-from.right{right:0;transform:translate(100%)}.el-notification-fade-enter-from.left{left:0;transform:translate(-100%)}.el-notification-fade-leave-to{opacity:0} +`)(),elLoading=(()=>`:root{--el-loading-spinner-size:42px;--el-loading-fullscreen-spinner-size:50px}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:var(--el-mask-color);margin:0;top:0;right:0;bottom:0;left:0;transition:opacity var(--el-transition-duration)}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:calc((0px - var(--el-loading-fullscreen-spinner-size))/ 2)}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:var(--el-loading-fullscreen-spinner-size);width:var(--el-loading-fullscreen-spinner-size)}.el-loading-spinner{top:50%;margin-top:calc((0px - var(--el-loading-spinner-size))/ 2);width:100%;text-align:center;position:absolute}.el-loading-spinner .el-loading-text{color:var(--el-color-primary);margin:3px 0;font-size:14px}.el-loading-spinner .circular{display:inline;height:var(--el-loading-spinner-size);width:var(--el-loading-spinner-size);animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:var(--el-color-primary);stroke-linecap:round}.el-loading-spinner i{color:var(--el-color-primary)}.el-loading-fade-enter-from,.el-loading-fade-leave-to{opacity:0}@keyframes loading-rotate{to{transform:rotate(360deg)}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}} +`)(),display=(()=>`@media only screen and (max-width:767px){.hidden-xs-only{display:none!important}}@media only screen and (min-width:768px){.hidden-sm-and-up{display:none!important}}@media only screen and (min-width:768px) and (max-width:991px){.hidden-sm-only{display:none!important}}@media only screen and (max-width:991px){.hidden-sm-and-down{display:none!important}}@media only screen and (min-width:992px){.hidden-md-and-up{display:none!important}}@media only screen and (min-width:992px) and (max-width:1199px){.hidden-md-only{display:none!important}}@media only screen and (max-width:1199px){.hidden-md-and-down{display:none!important}}@media only screen and (min-width:1200px){.hidden-lg-and-up{display:none!important}}@media only screen and (min-width:1200px) and (max-width:1919px){.hidden-lg-only{display:none!important}}@media only screen and (max-width:1919px){.hidden-lg-and-down{display:none!important}}@media only screen and (min-width:1920px){.hidden-xl-only{display:none!important}} +`)(),elementPlus=e=>{},__glob_0_1=Object.freeze(Object.defineProperty({__proto__:null,default:elementPlus},Symbol.toStringTag,{value:"Module"})),en={index:e=>{const{normalize:t}=e;return t(["index"])},about:e=>{const{normalize:t}=e;return t(["about"])},"not-found":e=>{const{normalize:t}=e;return t(["Notfound"])},nesting:{sir:e=>{const{normalize:t}=e;return t(["man"])},lady:e=>{const{normalize:t}=e;return t(["lady"])}}},__glob_1_0=Object.freeze(Object.defineProperty({__proto__:null,default:en},Symbol.toStringTag,{value:"Module"})),zhCN={index:e=>{const{normalize:t}=e;return t(["\u4E3B\u9875"])},about:e=>{const{normalize:t}=e;return t(["\u5173\u4E8E"])},"not-found":e=>{const{normalize:t}=e;return t(["\u672A\u627E\u5230\u9875\u9762"])},nesting:{sir:e=>{const{normalize:t}=e;return t(["\u7537\u4EBA"])},lady:e=>{const{normalize:t}=e;return t(["\u5973\u58EB"])}}},__glob_1_1=Object.freeze(Object.defineProperty({__proto__:null,default:zhCN},Symbol.toStringTag,{value:"Module"}));/*! + * @intlify/shared v9.1.10 + * (c) 2022 kazuya kawaguchi + * Released under the MIT License. + */const hasSymbol$1=typeof Symbol=="function"&&typeof Symbol.toStringTag=="symbol",makeSymbol=e=>hasSymbol$1?Symbol(e):e,generateFormatCacheKey=(e,t,r)=>friendlyJSONstringify({l:e,k:t,s:r}),friendlyJSONstringify=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),isNumber$2=e=>typeof e=="number"&&isFinite(e),isDate$1=e=>toTypeString$1(e)==="[object Date]",isRegExp=e=>toTypeString$1(e)==="[object RegExp]",isEmptyObject=e=>isPlainObject$4(e)&&Object.keys(e).length===0;function warn(e,t){typeof console!="undefined"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const assign$3=Object.assign;let _globalThis;const getGlobalThis=()=>_globalThis||(_globalThis=typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:typeof window!="undefined"?window:typeof global!="undefined"?global:{});function escapeHtml(e){return e.replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}const hasOwnProperty$2=Object.prototype.hasOwnProperty;function hasOwn$1(e,t){return hasOwnProperty$2.call(e,t)}const isArray$1=Array.isArray,isFunction$3=e=>typeof e=="function",isString$3=e=>typeof e=="string",isBoolean=e=>typeof e=="boolean",isObject$4=e=>e!==null&&typeof e=="object",objectToString$1=Object.prototype.toString,toTypeString$1=e=>objectToString$1.call(e),isPlainObject$4=e=>toTypeString$1(e)==="[object Object]",toDisplayString=e=>e==null?"":isArray$1(e)||isPlainObject$4(e)&&e.toString===objectToString$1?JSON.stringify(e,null,2):String(e);/*! + * @intlify/message-resolver v9.1.10 + * (c) 2022 kazuya kawaguchi + * Released under the MIT License. + */const hasOwnProperty$1=Object.prototype.hasOwnProperty;function hasOwn(e,t){return hasOwnProperty$1.call(e,t)}const isObject$3=e=>e!==null&&typeof e=="object",pathStateMachine=[];pathStateMachine[0]={w:[0],i:[3,0],["["]:[4],o:[7]};pathStateMachine[1]={w:[1],["."]:[2],["["]:[4],o:[7]};pathStateMachine[2]={w:[2],i:[3,0],[0]:[3,0]};pathStateMachine[3]={i:[3,0],[0]:[3,0],w:[1,1],["."]:[2,1],["["]:[4,1],o:[7,1]};pathStateMachine[4]={["'"]:[5,0],['"']:[6,0],["["]:[4,2],["]"]:[1,3],o:8,l:[4,0]};pathStateMachine[5]={["'"]:[4,0],o:8,l:[5,0]};pathStateMachine[6]={['"']:[4,0],o:8,l:[6,0]};const literalValueRE=/^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/;function isLiteral(e){return literalValueRE.test(e)}function stripQuotes(e){const t=e.charCodeAt(0),r=e.charCodeAt(e.length-1);return t===r&&(t===34||t===39)?e.slice(1,-1):e}function getPathCharType(e){if(e==null)return"o";switch(e.charCodeAt(0)){case 91:case 93:case 46:case 34:case 39:return e;case 95:case 36:case 45:return"i";case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return"w"}return"i"}function formatSubPath(e){const t=e.trim();return e.charAt(0)==="0"&&isNaN(parseInt(e))?!1:isLiteral(t)?stripQuotes(t):"*"+t}function parse(e){const t=[];let r=-1,n=0,a=0,o,s,l,c,u,f,t1;const a1=[];a1[0]=()=>{s===void 0?s=l:s+=l},a1[1]=()=>{s!==void 0&&(t.push(s),s=void 0)},a1[2]=()=>{a1[0](),a++},a1[3]=()=>{if(a>0)a--,n=4,a1[0]();else{if(a=0,s===void 0||(s=formatSubPath(s),s===!1))return!1;a1[1]()}};function i1(){const r1=e[r+1];if(n===5&&r1==="'"||n===6&&r1==='"')return r++,l="\\"+r1,a1[0](),!0}for(;n!==null;)if(r++,o=e[r],!(o==="\\"&&i1())){if(c=getPathCharType(o),t1=pathStateMachine[n],u=t1[c]||t1.l||8,u===8||(n=u[0],u[1]!==void 0&&(f=a1[u[1]],f&&(l=o,f()===!1))))return;if(n===7)return t}}const cache=new Map;function resolveValue(e,t){if(!isObject$3(e))return null;let r=cache.get(t);if(r||(r=parse(t),r&&cache.set(t,r)),!r)return null;const n=r.length;let a=e,o=0;for(;oe,DEFAULT_MESSAGE=e=>"",DEFAULT_MESSAGE_DATA_TYPE="text",DEFAULT_NORMALIZE=e=>e.length===0?"":e.join(""),DEFAULT_INTERPOLATE=toDisplayString;function pluralDefault(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function getPluralIndex(e){const t=isNumber$2(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(isNumber$2(e.named.count)||isNumber$2(e.named.n))?isNumber$2(e.named.count)?e.named.count:isNumber$2(e.named.n)?e.named.n:t:t}function normalizeNamed(e,t){t.count||(t.count=e),t.n||(t.n=e)}function createMessageContext(e={}){const t=e.locale,r=getPluralIndex(e),n=isObject$4(e.pluralRules)&&isString$3(t)&&isFunction$3(e.pluralRules[t])?e.pluralRules[t]:pluralDefault,a=isObject$4(e.pluralRules)&&isString$3(t)&&isFunction$3(e.pluralRules[t])?pluralDefault:void 0,o=s1=>s1[n(r,s1.length,a)],s=e.list||[],l=s1=>s[s1],c=e.named||{};isNumber$2(e.pluralIndex)&&normalizeNamed(r,c);const u=s1=>c[s1];function f(s1){const n1=isFunction$3(e.messages)?e.messages(s1):isObject$4(e.messages)?e.messages[s1]:!1;return n1||(e.parent?e.parent.message(s1):DEFAULT_MESSAGE)}const t1=s1=>e.modifiers?e.modifiers[s1]:DEFAULT_MODIFIER,a1=isPlainObject$4(e.processor)&&isFunction$3(e.processor.normalize)?e.processor.normalize:DEFAULT_NORMALIZE,i1=isPlainObject$4(e.processor)&&isFunction$3(e.processor.interpolate)?e.processor.interpolate:DEFAULT_INTERPOLATE,r1=isPlainObject$4(e.processor)&&isString$3(e.processor.type)?e.processor.type:DEFAULT_MESSAGE_DATA_TYPE,l1={list:l,named:u,plural:o,linked:(s1,n1)=>{const o1=f(s1)(l1);return isString$3(n1)?t1(n1)(o1):o1},message:f,type:r1,interpolate:i1,normalize:a1};return l1}/*! + * @intlify/message-compiler v9.1.10 + * (c) 2022 kazuya kawaguchi + * Released under the MIT License. + */function createCompileError(e,t,r={}){const{domain:n,messages:a,args:o}=r,s=e,l=new SyntaxError(String(s));return l.code=e,t&&(l.location=t),l.domain=n,l}/*! + * @intlify/devtools-if v9.1.10 + * (c) 2022 kazuya kawaguchi + * Released under the MIT License. + */const IntlifyDevToolsHooks={I18nInit:"i18n:init",FunctionTranslate:"function:translate"};/*! + * @intlify/core-base v9.1.10 + * (c) 2022 kazuya kawaguchi + * Released under the MIT License. + */let devtools=null;function setDevToolsHook(e){devtools=e}function initI18nDevTools(e,t,r){devtools&&devtools.emit(IntlifyDevToolsHooks.I18nInit,{timestamp:Date.now(),i18n:e,version:t,meta:r})}const translateDevTools=createDevToolsHook(IntlifyDevToolsHooks.FunctionTranslate);function createDevToolsHook(e){return t=>devtools&&devtools.emit(e,t)}const VERSION$2="9.1.10",NOT_REOSLVED=-1,MISSING_RESOLVE_VALUE="";function getDefaultLinkedModifiers(){return{upper:e=>isString$3(e)?e.toUpperCase():e,lower:e=>isString$3(e)?e.toLowerCase():e,capitalize:e=>isString$3(e)?`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`:e}}let _compiler,_additionalMeta=null;const setAdditionalMeta=e=>{_additionalMeta=e},getAdditionalMeta=()=>_additionalMeta;let _cid=0;function createCoreContext(e={}){const t=isString$3(e.version)?e.version:VERSION$2,r=isString$3(e.locale)?e.locale:"en-US",n=isArray$1(e.fallbackLocale)||isPlainObject$4(e.fallbackLocale)||isString$3(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:r,a=isPlainObject$4(e.messages)?e.messages:{[r]:{}},o=isPlainObject$4(e.datetimeFormats)?e.datetimeFormats:{[r]:{}},s=isPlainObject$4(e.numberFormats)?e.numberFormats:{[r]:{}},l=assign$3({},e.modifiers||{},getDefaultLinkedModifiers()),c=e.pluralRules||{},u=isFunction$3(e.missing)?e.missing:null,f=isBoolean(e.missingWarn)||isRegExp(e.missingWarn)?e.missingWarn:!0,t1=isBoolean(e.fallbackWarn)||isRegExp(e.fallbackWarn)?e.fallbackWarn:!0,a1=!!e.fallbackFormat,i1=!!e.unresolving,r1=isFunction$3(e.postTranslation)?e.postTranslation:null,l1=isPlainObject$4(e.processor)?e.processor:null,s1=isBoolean(e.warnHtmlMessage)?e.warnHtmlMessage:!0,n1=!!e.escapeParameter,o1=isFunction$3(e.messageCompiler)?e.messageCompiler:_compiler,u1=isFunction$3(e.onWarn)?e.onWarn:warn,f1=e,g1=isObject$4(f1.__datetimeFormatters)?f1.__datetimeFormatters:new Map,k1=isObject$4(f1.__numberFormatters)?f1.__numberFormatters:new Map,p1=isObject$4(f1.__meta)?f1.__meta:{};_cid++;const y1={version:t,cid:_cid,locale:r,fallbackLocale:n,messages:a,datetimeFormats:o,numberFormats:s,modifiers:l,pluralRules:c,missing:u,missingWarn:f,fallbackWarn:t1,fallbackFormat:a1,unresolving:i1,postTranslation:r1,processor:l1,warnHtmlMessage:s1,escapeParameter:n1,messageCompiler:o1,onWarn:u1,__datetimeFormatters:g1,__numberFormatters:k1,__meta:p1};return __INTLIFY_PROD_DEVTOOLS__&&initI18nDevTools(y1,t,p1),y1}function handleMissing(e,t,r,n,a){const{missing:o,onWarn:s}=e;if(o!==null){const l=o(e,r,t,a);return isString$3(l)?l:t}else return t}function getLocaleChain(e,t,r){const n=e;n.__localeChainCache||(n.__localeChainCache=new Map);let a=n.__localeChainCache.get(r);if(!a){a=[];let o=[r];for(;isArray$1(o);)o=appendBlockToChain(a,o,t);const s=isArray$1(t)?t:isPlainObject$4(t)?t.default?t.default:null:t;o=isString$3(s)?[s]:s,isArray$1(o)&&appendBlockToChain(a,o,!1),n.__localeChainCache.set(r,a)}return a}function appendBlockToChain(e,t,r){let n=!0;for(let a=0;a"",isMessageFunction=e=>isFunction$3(e);function translate(e,...t){const{fallbackFormat:r,postTranslation:n,unresolving:a,fallbackLocale:o,messages:s}=e,[l,c]=parseTranslateArgs(...t),u=isBoolean(c.missingWarn)?c.missingWarn:e.missingWarn,f=isBoolean(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,t1=isBoolean(c.escapeParameter)?c.escapeParameter:e.escapeParameter,a1=!!c.resolvedMessage,i1=isString$3(c.default)||isBoolean(c.default)?isBoolean(c.default)?l:c.default:r?l:"",r1=r||i1!=="",l1=isString$3(c.locale)?c.locale:e.locale;t1&&escapeParams(c);let[s1,n1,o1]=a1?[l,l1,s[l1]||{}]:resolveMessageFormat(e,l,l1,o,f,u),u1=l;if(!a1&&!(isString$3(s1)||isMessageFunction(s1))&&r1&&(s1=i1,u1=s1),!a1&&(!(isString$3(s1)||isMessageFunction(s1))||!isString$3(n1)))return a?NOT_REOSLVED:l;let f1=!1;const g1=()=>{f1=!0},k1=isMessageFunction(s1)?s1:compileMessageFormat(e,l,n1,s1,u1,g1);if(f1)return s1;const p1=getMessageContextOptions(e,n1,o1,c),y1=createMessageContext(p1),S1=evaluateMessage(e,k1,y1),E1=n?n(S1):S1;if(__INTLIFY_PROD_DEVTOOLS__){const w1={timestamp:Date.now(),key:isString$3(l)?l:isMessageFunction(s1)?s1.key:"",locale:n1||(isMessageFunction(s1)?s1.locale:""),format:isString$3(s1)?s1:isMessageFunction(s1)?s1.source:"",message:E1};w1.meta=assign$3({},e.__meta,getAdditionalMeta()||{}),translateDevTools(w1)}return E1}function escapeParams(e){isArray$1(e.list)?e.list=e.list.map(t=>isString$3(t)?escapeHtml(t):t):isObject$4(e.named)&&Object.keys(e.named).forEach(t=>{isString$3(e.named[t])&&(e.named[t]=escapeHtml(e.named[t]))})}function resolveMessageFormat(e,t,r,n,a,o){const{messages:s,onWarn:l}=e,c=getLocaleChain(e,n,r);let u={},f,t1=null;const a1="translate";for(let i1=0;i1{throw o&&o(s),s},onCacheKey:s=>generateFormatCacheKey(t,r,s)}}function getMessageContextOptions(e,t,r,n){const{modifiers:a,pluralRules:o}=e,l={locale:t,modifiers:a,pluralRules:o,messages:c=>{const u=resolveValue(r,c);if(isString$3(u)){let f=!1;const a1=compileMessageFormat(e,c,t,u,c,()=>{f=!0});return f?NOOP_MESSAGE_FUNCTION:a1}else return isMessageFunction(u)?u:NOOP_MESSAGE_FUNCTION}};return e.processor&&(l.processor=e.processor),n.list&&(l.list=n.list),n.named&&(l.named=n.named),isNumber$2(n.plural)&&(l.pluralIndex=n.plural),l}function datetime(e,...t){const{datetimeFormats:r,unresolving:n,fallbackLocale:a,onWarn:o}=e,{__datetimeFormatters:s}=e,[l,c,u,f]=parseDateTimeArgs(...t),t1=isBoolean(u.missingWarn)?u.missingWarn:e.missingWarn;isBoolean(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const a1=!!u.part,i1=isString$3(u.locale)?u.locale:e.locale,r1=getLocaleChain(e,a,i1);if(!isString$3(l)||l==="")return new Intl.DateTimeFormat(i1).format(c);let l1={},s1,n1=null;const o1="datetime format";for(let g1=0;g1e(r,n,getCurrentInstance()||void 0,a)}function getLocaleMessages(e,t){const{messages:r,__i18n:n}=t,a=isPlainObject$4(r)?r:isArray$1(n)?{}:{[e]:{}};if(isArray$1(n)&&n.forEach(({locale:o,resource:s})=>{o?(a[o]=a[o]||{},deepCopy(s,a[o])):deepCopy(s,a)}),t.flatJson)for(const o in a)hasOwn$1(a,o)&&handleFlatJson(a[o]);return a}const isNotObjectOrIsArray=e=>!isObject$4(e)||isArray$1(e);function deepCopy(e,t){if(isNotObjectOrIsArray(e)||isNotObjectOrIsArray(t))throw createI18nError(20);for(const r in e)hasOwn$1(e,r)&&(isNotObjectOrIsArray(e[r])||isNotObjectOrIsArray(t[r])?t[r]=e[r]:deepCopy(e[r],t[r]))}const getMetaInfo=()=>{const e=getCurrentInstance();return e&&e.type[DEVTOOLS_META]?{[DEVTOOLS_META]:e.type[DEVTOOLS_META]}:null};function createComposer(e={}){const{__root:t}=e,r=t===void 0;let n=isBoolean(e.inheritLocale)?e.inheritLocale:!0;const a=ref(t&&n?t.locale.value:isString$3(e.locale)?e.locale:"en-US"),o=ref(t&&n?t.fallbackLocale.value:isString$3(e.fallbackLocale)||isArray$1(e.fallbackLocale)||isPlainObject$4(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:a.value),s=ref(getLocaleMessages(a.value,e)),l=ref(isPlainObject$4(e.datetimeFormats)?e.datetimeFormats:{[a.value]:{}}),c=ref(isPlainObject$4(e.numberFormats)?e.numberFormats:{[a.value]:{}});let u=t?t.missingWarn:isBoolean(e.missingWarn)||isRegExp(e.missingWarn)?e.missingWarn:!0,f=t?t.fallbackWarn:isBoolean(e.fallbackWarn)||isRegExp(e.fallbackWarn)?e.fallbackWarn:!0,t1=t?t.fallbackRoot:isBoolean(e.fallbackRoot)?e.fallbackRoot:!0,a1=!!e.fallbackFormat,i1=isFunction$3(e.missing)?e.missing:null,r1=isFunction$3(e.missing)?defineCoreMissingHandler(e.missing):null,l1=isFunction$3(e.postTranslation)?e.postTranslation:null,s1=isBoolean(e.warnHtmlMessage)?e.warnHtmlMessage:!0,n1=!!e.escapeParameter;const o1=t?t.modifiers:isPlainObject$4(e.modifiers)?e.modifiers:{};let u1=e.pluralRules||t&&t.pluralRules,f1;function g1(){return createCoreContext({version:VERSION$1,locale:a.value,fallbackLocale:o.value,messages:s.value,datetimeFormats:l.value,numberFormats:c.value,modifiers:o1,pluralRules:u1,missing:r1===null?void 0:r1,missingWarn:u,fallbackWarn:f,fallbackFormat:a1,unresolving:!0,postTranslation:l1===null?void 0:l1,warnHtmlMessage:s1,escapeParameter:n1,__datetimeFormatters:isPlainObject$4(f1)?f1.__datetimeFormatters:void 0,__numberFormatters:isPlainObject$4(f1)?f1.__numberFormatters:void 0,__v_emitter:isPlainObject$4(f1)?f1.__v_emitter:void 0,__meta:{framework:"vue"}})}f1=g1(),updateFallbackLocale(f1,a.value,o.value);function k1(){return[a.value,o.value,s.value,l.value,c.value]}const p1=computed({get:()=>a.value,set:h1=>{a.value=h1,f1.locale=a.value}}),y1=computed({get:()=>o.value,set:h1=>{o.value=h1,f1.fallbackLocale=o.value,updateFallbackLocale(f1,a.value,h1)}}),S1=computed(()=>s.value),E1=computed(()=>l.value),w1=computed(()=>c.value);function M1(){return isFunction$3(l1)?l1:null}function F1(h1){l1=h1,f1.postTranslation=h1}function L1(){return i1}function X1(h1){h1!==null&&(r1=defineCoreMissingHandler(h1)),i1=h1,f1.missing=r1}function j1(h1,v1,H1,P1,B1,U1){k1();let J1;if(__INTLIFY_PROD_DEVTOOLS__)try{setAdditionalMeta(getMetaInfo()),J1=h1(f1)}finally{setAdditionalMeta(null)}else J1=h1(f1);if(isNumber$2(J1)&&J1===NOT_REOSLVED){const[ar,ir]=v1();return t&&t1?P1(t):B1(ar)}else{if(U1(J1))return J1;throw createI18nError(14)}}function Q1(...h1){return j1(v1=>translate(v1,...h1),()=>parseTranslateArgs(...h1),"translate",v1=>v1.t(...h1),v1=>v1,v1=>isString$3(v1))}function K1(...h1){const[v1,H1,P1]=h1;if(P1&&!isObject$4(P1))throw createI18nError(15);return Q1(v1,H1,assign$3({resolvedMessage:!0},P1||{}))}function or(...h1){return j1(v1=>datetime(v1,...h1),()=>parseDateTimeArgs(...h1),"datetime format",v1=>v1.d(...h1),()=>MISSING_RESOLVE_VALUE,v1=>isString$3(v1))}function lr(...h1){return j1(v1=>number(v1,...h1),()=>parseNumberArgs(...h1),"number format",v1=>v1.n(...h1),()=>MISSING_RESOLVE_VALUE,v1=>isString$3(v1))}function ur(h1){return h1.map(v1=>isString$3(v1)?createVNode(Text,null,v1,0):v1)}const cr={normalize:ur,interpolate:h1=>h1,type:"vnode"};function hr(...h1){return j1(v1=>{let H1;const P1=v1;try{P1.processor=cr,H1=translate(P1,...h1)}finally{P1.processor=null}return H1},()=>parseTranslateArgs(...h1),"translate",v1=>v1[TransrateVNodeSymbol](...h1),v1=>[createVNode(Text,null,v1,0)],v1=>isArray$1(v1))}function _1(...h1){return j1(v1=>number(v1,...h1),()=>parseNumberArgs(...h1),"number format",v1=>v1[NumberPartsSymbol](...h1),()=>[],v1=>isString$3(v1)||isArray$1(v1))}function N1(...h1){return j1(v1=>datetime(v1,...h1),()=>parseDateTimeArgs(...h1),"datetime format",v1=>v1[DatetimePartsSymbol](...h1),()=>[],v1=>isString$3(v1)||isArray$1(v1))}function I1(h1){u1=h1,f1.pluralRules=u1}function D1(h1,v1){const H1=isString$3(v1)?v1:a.value,P1=W1(H1);return resolveValue(P1,h1)!==null}function G1(h1){let v1=null;const H1=getLocaleChain(f1,o.value,a.value);for(let P1=0;P1{n&&(a.value=h1,f1.locale=h1,updateFallbackLocale(f1,a.value,o.value))}),watch(t.fallbackLocale,h1=>{n&&(o.value=h1,f1.fallbackLocale=h1,updateFallbackLocale(f1,a.value,o.value))})),{id:composerID,locale:p1,fallbackLocale:y1,get inheritLocale(){return n},set inheritLocale(h1){n=h1,h1&&t&&(a.value=t.locale.value,o.value=t.fallbackLocale.value,updateFallbackLocale(f1,a.value,o.value))},get availableLocales(){return Object.keys(s.value).sort()},messages:S1,datetimeFormats:E1,numberFormats:w1,get modifiers(){return o1},get pluralRules(){return u1||{}},get isGlobal(){return r},get missingWarn(){return u},set missingWarn(h1){u=h1,f1.missingWarn=u},get fallbackWarn(){return f},set fallbackWarn(h1){f=h1,f1.fallbackWarn=f},get fallbackRoot(){return t1},set fallbackRoot(h1){t1=h1},get fallbackFormat(){return a1},set fallbackFormat(h1){a1=h1,f1.fallbackFormat=a1},get warnHtmlMessage(){return s1},set warnHtmlMessage(h1){s1=h1,f1.warnHtmlMessage=h1},get escapeParameter(){return n1},set escapeParameter(h1){n1=h1,f1.escapeParameter=h1},t:Q1,rt:K1,d:or,n:lr,te:D1,tm:rr,getLocaleMessage:W1,setLocaleMessage:q1,mergeLocaleMessage:m1,getDateTimeFormat:b1,setDateTimeFormat:x1,mergeDateTimeFormat:O1,getNumberFormat:A1,setNumberFormat:z1,mergeNumberFormat:T1,getPostTranslationHandler:M1,setPostTranslationHandler:F1,getMissingHandler:L1,setMissingHandler:X1,[TransrateVNodeSymbol]:hr,[NumberPartsSymbol]:_1,[DatetimePartsSymbol]:N1,[SetPluralRulesSymbol]:I1,[InejctWithOption]:e.__injectWithOption}}const baseFormatProps={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}},Translation={name:"i18n-t",props:assign$3({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>isNumber$2(e)||!isNaN(e)}},baseFormatProps),setup(e,t){const{slots:r,attrs:n}=t,a=e.i18n||useI18n({useScope:e.scope,__useComponent:!0}),o=Object.keys(r).filter(s=>s!=="_");return()=>{const s={};e.locale&&(s.locale=e.locale),e.plural!==void 0&&(s.plural=isString$3(e.plural)?+e.plural:e.plural);const l=getInterpolateArg(t,o),c=a[TransrateVNodeSymbol](e.keypath,l,s),u=assign$3({},n);return isString$3(e.tag)||isObject$4(e.tag)?h$1(e.tag,u,c):h$1(Fragment,u,c)}}};function getInterpolateArg({slots:e},t){return t.length===1&&t[0]==="default"?e.default?e.default():[]:t.reduce((r,n)=>{const a=e[n];return a&&(r[n]=a()),r},{})}function renderFormatter(e,t,r,n){const{slots:a,attrs:o}=t;return()=>{const s={part:!0};let l={};e.locale&&(s.locale=e.locale),isString$3(e.format)?s.key=e.format:isObject$4(e.format)&&(isString$3(e.format.key)&&(s.key=e.format.key),l=Object.keys(e.format).reduce((t1,a1)=>r.includes(a1)?assign$3({},t1,{[a1]:e.format[a1]}):t1,{}));const c=n(e.value,s,l);let u=[s.key];isArray$1(c)?u=c.map((t1,a1)=>{const i1=a[t1.type];return i1?i1({[t1.type]:t1.value,index:a1,parts:c}):[t1.value]}):isString$3(c)&&(u=[c]);const f=assign$3({},o);return isString$3(e.tag)||isObject$4(e.tag)?h$1(e.tag,f,u):h$1(Fragment,f,u)}}const NUMBER_FORMAT_KEYS=["localeMatcher","style","unit","unitDisplay","currency","currencyDisplay","useGrouping","numberingSystem","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","notation","formatMatcher"],NumberFormat={name:"i18n-n",props:assign$3({value:{type:Number,required:!0},format:{type:[String,Object]}},baseFormatProps),setup(e,t){const r=e.i18n||useI18n({useScope:"parent",__useComponent:!0});return renderFormatter(e,t,NUMBER_FORMAT_KEYS,(...n)=>r[NumberPartsSymbol](...n))}},DATETIME_FORMAT_KEYS=["dateStyle","timeStyle","fractionalSecondDigits","calendar","dayPeriod","numberingSystem","localeMatcher","timeZone","hour12","hourCycle","formatMatcher","weekday","era","year","month","day","hour","minute","second","timeZoneName"],DatetimeFormat={name:"i18n-d",props:assign$3({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},baseFormatProps),setup(e,t){const r=e.i18n||useI18n({useScope:"parent",__useComponent:!0});return renderFormatter(e,t,DATETIME_FORMAT_KEYS,(...n)=>r[DatetimePartsSymbol](...n))}};function getComposer$2(e,t){const r=e;if(e.mode==="composition")return r.__getInstance(t)||e.global;{const n=r.__getInstance(t);return n!=null?n.__composer:e.global.__composer}}function vTDirective(e){const t=(r,{instance:n,value:a,modifiers:o})=>{if(!n||!n.$)throw createI18nError(22);const s=getComposer$2(e,n.$),l=parseValue(a);r.textContent=s.t(...makeParams(l))};return{beforeMount:t,beforeUpdate:t}}function parseValue(e){if(isString$3(e))return{path:e};if(isPlainObject$4(e)){if(!("path"in e))throw createI18nError(19,"path");return e}else throw createI18nError(20)}function makeParams(e){const{path:t,locale:r,args:n,choice:a,plural:o}=e,s={},l=n||{};return isString$3(r)&&(s.locale=r),isNumber$2(a)&&(s.plural=a),isNumber$2(o)&&(s.plural=o),[t,l,s]}function apply(e,t,...r){const n=isPlainObject$4(r[0])?r[0]:{},a=!!n.useI18nComponentName;(isBoolean(n.globalInstall)?n.globalInstall:!0)&&(e.component(a?"i18n":Translation.name,Translation),e.component(NumberFormat.name,NumberFormat),e.component(DatetimeFormat.name,DatetimeFormat)),e.directive("t",vTDirective(t))}function createI18n(e={}){const t=!!e.globalInjection,r=new Map,n=createComposer(e),a=makeSymbol(""),o={get mode(){return"composition"},async install(s,...l){s.__VUE_I18N_SYMBOL__=a,s.provide(s.__VUE_I18N_SYMBOL__,o),t&&injectGlobalFields(s,o.global),apply(s,o,...l)},get global(){return n},__instances:r,__getInstance(s){return r.get(s)||null},__setInstance(s,l){r.set(s,l)},__deleteInstance(s){r.delete(s)}};return o}function useI18n(e={}){const t=getCurrentInstance();if(t==null)throw createI18nError(16);if(!t.appContext.app.__VUE_I18N_SYMBOL__)throw createI18nError(17);const r=inject(t.appContext.app.__VUE_I18N_SYMBOL__);if(!r)throw createI18nError(22);const n=r.mode==="composition"?r.global:r.global.__composer,a=isEmptyObject(e)?"__i18n"in t.type?"local":"global":e.useScope?e.useScope:"local";if(a==="global"){let l=isObject$4(e.messages)?e.messages:{};"__i18nGlobal"in t.type&&(l=getLocaleMessages(n.locale.value,{messages:l,__i18n:t.type.__i18nGlobal}));const c=Object.keys(l);if(c.length&&c.forEach(u=>{n.mergeLocaleMessage(u,l[u])}),isObject$4(e.datetimeFormats)){const u=Object.keys(e.datetimeFormats);u.length&&u.forEach(f=>{n.mergeDateTimeFormat(f,e.datetimeFormats[f])})}if(isObject$4(e.numberFormats)){const u=Object.keys(e.numberFormats);u.length&&u.forEach(f=>{n.mergeNumberFormat(f,e.numberFormats[f])})}return n}if(a==="parent"){let l=getComposer(r,t,e.__useComponent);return l==null&&(l=n),l}if(r.mode==="legacy")throw createI18nError(18);const o=r;let s=o.__getInstance(t);if(s==null){const l=t.type,c=assign$3({},e);l.__i18n&&(c.__i18n=l.__i18n),n&&(c.__root=n),s=createComposer(c),setupLifeCycle(o,t),o.__setInstance(t,s)}return s}function getComposer(e,t,r=!1){let n=null;const a=t.root;let o=t.parent;for(;o!=null;){const s=e;if(e.mode==="composition")n=s.__getInstance(o);else{const l=s.__getInstance(o);l!=null&&(n=l.__composer),r&&n&&!n[InejctWithOption]&&(n=null)}if(n!=null||a===o)break;o=o.parent}return n}function setupLifeCycle(e,t,r){onMounted(()=>{},t),onUnmounted(()=>{e.__deleteInstance(t)},t)}const globalExportProps=["locale","fallbackLocale","availableLocales"],globalExportMethods=["t","rt","d","n","tm"];function injectGlobalFields(e,t){const r=Object.create(null);globalExportProps.forEach(n=>{const a=Object.getOwnPropertyDescriptor(t,n);if(!a)throw createI18nError(22);const o=isRef(a.value)?{get(){return a.value.value},set(s){a.value.value=s}}:{get(){return a.get&&a.get()}};Object.defineProperty(r,n,o)}),e.config.globalProperties.$i18n=r,globalExportMethods.forEach(n=>{const a=Object.getOwnPropertyDescriptor(t,n);if(!a||!a.value)throw createI18nError(22);Object.defineProperty(e.config.globalProperties,`$${n}`,a)})}initFeatureFlags();if(__INTLIFY_PROD_DEVTOOLS__){const e=getGlobalThis();e.__INTLIFY__=!0,setDevToolsHook(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const messages=Object.fromEntries(Object.entries({"../../locales/en.yml":__glob_1_0,"../../locales/zh-CN.yml":__glob_1_1}).map(([e,t])=>{const r=e.endsWith(".yaml");return[e.slice(14,r?-5:-4),t.default]}));var i18n=e=>{const t=createI18n({legacy:!1,locale:"en",messages});e.use(t)},__glob_0_2=Object.freeze(Object.defineProperty({__proto__:null,default:i18n},Symbol.toStringTag,{value:"Module"})),commonjsGlobal=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function getDefaultExportFromCjs(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function getAugmentedNamespace(e){if(e.__esModule)return e;var t=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(e).forEach(function(r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}),t}function commonjsRequire(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var masonry={exports:{}},outlayer={exports:{}},evEmitter={exports:{}};(function(e){(function(t,r){e.exports?e.exports=r():t.EvEmitter=r()})(typeof window!="undefined"?window:commonjsGlobal,function(){function t(){}var r=t.prototype;return r.on=function(n,a){if(!(!n||!a)){var o=this._events=this._events||{},s=o[n]=o[n]||[];return s.indexOf(a)==-1&&s.push(a),this}},r.once=function(n,a){if(!(!n||!a)){this.on(n,a);var o=this._onceEvents=this._onceEvents||{},s=o[n]=o[n]||{};return s[a]=!0,this}},r.off=function(n,a){var o=this._events&&this._events[n];if(!(!o||!o.length)){var s=o.indexOf(a);return s!=-1&&o.splice(s,1),this}},r.emitEvent=function(n,a){var o=this._events&&this._events[n];if(!(!o||!o.length)){o=o.slice(0),a=a||[];for(var s=this._onceEvents&&this._onceEvents[n],l=0;l