diff --git a/app/Http/Controllers/Api/SystemController.php b/app/Http/Controllers/Api/SystemController.php
index 1306a115a..ff19c9ae2 100755
--- a/app/Http/Controllers/Api/SystemController.php
+++ b/app/Http/Controllers/Api/SystemController.php
@@ -40,7 +40,7 @@ class SystemController extends AbstractController
* @apiParam {String} type
* - get: 获取(默认)
* - all: 获取所有(需要管理员权限)
- * - save: 保存设置(参数:['reg', 'reg_identity', 'reg_invite', 'temp_account_alias', 'login_code', 'password_policy', 'project_invite', 'chat_information', 'anon_message', 'voice2text', 'translation', 'convert_video', 'compress_video', 'e2e_message', 'auto_archived', 'archived_day', 'task_visible', 'task_default_time', 'all_group_mute', 'all_group_autoin', 'user_private_chat_mute', 'user_group_chat_mute', 'system_alias', 'system_welcome', 'image_compress', 'image_quality', 'image_save_local', 'start_home'])
+ * - save: 保存设置(参数:['reg', 'reg_identity', 'reg_invite', 'temp_account_alias', 'login_code', 'password_policy', 'project_invite', 'chat_information', 'anon_message', 'voice2text', 'translation', 'convert_video', 'compress_video', 'e2e_message', 'auto_archived', 'archived_day', 'task_visible', 'task_default_time', 'all_group_mute', 'all_group_autoin', 'user_private_chat_mute', 'user_group_chat_mute', 'system_alias', 'system_welcome', 'image_compress', 'image_quality', 'image_save_local'])
* @apiSuccess {Number} ret 返回状态码(1正确、0错误)
* @apiSuccess {String} msg 返回信息(错误描述)
@@ -87,7 +87,6 @@ class SystemController extends AbstractController
'image_compress',
'image_quality',
'image_save_local',
- 'start_home',
'file_upload_limit',
'unclaimed_task_reminder',
'unclaimed_task_reminder_time',
@@ -149,7 +148,6 @@ class SystemController extends AbstractController
$setting['all_group_autoin'] = $setting['all_group_autoin'] ?: 'yes';
$setting['user_private_chat_mute'] = $setting['user_private_chat_mute'] ?: 'open';
$setting['user_group_chat_mute'] = $setting['user_group_chat_mute'] ?: 'open';
- $setting['start_home'] = $setting['start_home'] ?: 'close';
$setting['file_upload_limit'] = $setting['file_upload_limit'] ?: '';
$setting['unclaimed_task_reminder'] = $setting['unclaimed_task_reminder'] ?: 'close';
$setting['unclaimed_task_reminder_time'] = $setting['unclaimed_task_reminder_time'] ?: '';
diff --git a/app/Module/Apps/Apps.php b/app/Module/Apps/Apps.php
index 37c6cea41..229979022 100644
--- a/app/Module/Apps/Apps.php
+++ b/app/Module/Apps/Apps.php
@@ -516,6 +516,17 @@ class Apps
return $output;
}
+ /**
+ * 判断应用是否已安装
+ * @param string $appName 应用名称
+ * @return bool 如果应用已安装返回 true,否则返回 false
+ */
+ public static function isInstalled(string $appName): bool
+ {
+ $appConfig = self::getAppConfig($appName);
+ return $appConfig['status'] === 'installed';
+ }
+
/**
* 获取应用的文档(README)
*
diff --git a/docker-compose.yml b/docker-compose.yml
index 418c94e8a..a561caece 100755
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -214,7 +214,6 @@ services:
- /var/run/docker.sock:/var/run/docker.sock
- ./:/var/www
environment:
- DOO_ENV: "/var/www"
HOST_PWD: "${PWD}"
networks:
- extnetwork
diff --git a/public/site/css/about.css b/public/site/css/about.css
deleted file mode 100644
index 6a9cfe1df..000000000
--- a/public/site/css/about.css
+++ /dev/null
@@ -1,206 +0,0 @@
-/* 头部样式 */
-.about_green_bg {
- background: var(--bg-11-url) top right no-repeat;
-}
-.head {
- background-color: transparent !important;
-}
-.company-ul {
- padding: 32px 0;
- margin-top: 32px;
- width: 100%;
- max-width: 1280px;
- background: var(--bg-fa-color);
- box-shadow: 0px 2px 8px 4px rgba(0, 0, 0, 0.05);
- border-radius: 12px;
- display: flex;
- align-items: center;
- justify-content: space-around;
- z-index: 2;
-}
-.company-ul-item {
- text-align: center;
- padding: 0 32px;
- width: 362px;
-}
-.company-ul-item:nth-of-type(1),
-.company-ul-item:nth-of-type(2) {
- border-right: 1px solid var(--border-color);
-}
-.company-h2 {
- color: var(--text-color);
- opacity: 0.5;
-}
-.company-h6 {
- color: var(--txt-gray-color);
-}
-.company-sup {
- font-weight: 400;
- font-size: 14px;
- margin-left: 5px;
- color: var(--txt-gray-color);
- vertical-align: super;
-}
-.company-profile {
- padding-top: 120px;
-}
-.company-profile-con {
- width: 100%;
- max-width: 1280px;
- margin: 0 auto;
-}
-.company-profile-layout {
- display: flex;
- align-items: flex-start;
- justify-content: space-between;
- padding-bottom: 120px;
-}
-.company-profile-l {
- display: inline-block;
- height: auto;
- width: 580px;
-}
-.company-profile-r {
- width: 620px;
-}
-.company-profile-h1 {
- position: relative;
- color: var(--text-color);
- width: fit-content;
-}
-.company-profile-arcs {
- display: block;
- width: 100%;
- position: absolute;
- bottom: -28px;
- left: 0;
-}
-.company-profile-h6 {
- color: var(--txt-gray-color);
-}
-.company-year,
-.company-area,
-.company-size {
-}
-@keyframes randomize {
- from {
- content: attr(data-value); /* 使用 data-value 属性作为初始值 */
- }
- to {
- content: attr(data-random); /* 使用 data-random 属性作为随机值 */
- }
-}
-.scenario-app {
- position: relative;
- padding: 120px 0px;
- background-color: var(--bg-fa-color);
-}
-.scenario-app-con {
- width: 100%;
- max-width: 1280px;
- margin: 0 auto;
-}
-.scenario-app-h1 {
- text-align: center;
- color: var(--text-color);
-}
-.scenario-app-h6 {
- color: var(--txt-gray-color);
-}
-.scenario-app-ul {
- display: flex;
- flex-wrap: wrap;
- align-items: center;
- justify-content: space-between;
-}
-.scenario-app-ul-item {
- padding: 24px;
- background: var(--choose-bg-hover-color);
- box-shadow: 0px 2px 8px 4px rgba(0, 0, 0, 0.05);
- border-radius: 12px;
- width: 576px;
- height: 225px;
- position: relative;
- transition: all 0.3s ease-in-out;
-}
-.scenario-app-ul-item:hover {
- transform: translateY(-16px);
-}
-.scenario-app-ul-item-svg {
- position: absolute;
- top: 0;
- right: 0;
-}
-.scenario-app-icon-bg {
- display: flex;
- justify-content: center;
- align-items: center;
- width: 32px;
- height: 32px;
- padding: 16px;
- border-radius: 50%;
- background-color: var(--txt-theme-color);
-}
-.scenario-app-icon {
- display: inline-block;
-}
-.scenario-app-h5 {
- font-weight: 600;
- font-size: 20px;
- line-height: 25px;
- color: var(--txt-191a15-color);
-}
-.from-submit {
- display: inline-block;
- width: 100%;
-}
-/* 底部样式 */
-.footer-layout {
- border-top: var(--border-color) solid 1px;
-}
-/* 弹框样式 */
-.BulletBox {
- position: fixed;
- display: none;
- top: 50%;
- left: 50%;
- transform: translate(-50%, -50%);
- padding: 8px;
- background-color: var(--txt-theme-color);
- line-height: 20px;
- text-align: center;
- z-index: 9999;
- border: 1px solid transparent;
- border-radius: 8px;
- color: #fff;
-}
-#desc_wrap {
- position: relative;
-}
-#characterCount {
- position: absolute;
- right: 20px;
- bottom: 7px;
- z-index: 999;
- color: #ccc;
-}
-#loadingWrap {
- position: relative;
-}
-#submitLoading {
- position: absolute;
- display: none;
- left: 42%;
- width: 18px;
- height: 18px;
- border-radius: 50%;
- animation: spin 3s infinite linear;
-}
-@keyframes spin {
- 0% {
- transform: rotate(0deg);
- }
- 100% {
- transform: rotate(360deg);
- }
-}
diff --git a/public/site/css/ad.css b/public/site/css/ad.css
deleted file mode 100644
index cf5b82109..000000000
--- a/public/site/css/ad.css
+++ /dev/null
@@ -1,592 +0,0 @@
-.ad-wrapper {
- color: #441726;
-}
-
-.ad-wrapper #ad-banner {
- background-image: url(../img/ad/banner.png);
- background-size: cover;
- background-position: center;
- background-repeat: no-repeat;
-}
-
-header .ad {
- width: 100vw;
- height: 0;
- background-color: #fff;
- position: fixed;
- top: 0;
- left: 0;
- right: 0;
- z-index: 999;
- background-size: cover;
- background-position: center;
- background-repeat: no-repeat;
-}
-
-header .ad .ad-content {
- display: flex;
- justify-content: center;
- align-items: center;
- height: 100%;
- padding: 0 20px;
- position: relative;
-}
-
-header .ad .ad-content .ad-content-left {
- flex-grow: 1;
- display: flex;
- justify-content: center;
- align-items: center;
- padding-right: 32px;
-}
-
-header .ad .ad-content .ad-close {
- position: absolute;
- right: 24px;
- top: 50%;
- transform: translateY(-50%);
- cursor: pointer;
- width: 28px;
- height: 28px;
- display: flex;
- justify-content: center;
- align-items: center;
- border-radius: 50%;
- background: rgba(0, 0, 0, 0.2);
- transition: all 0.3s;
-}
-
-header .ad .ad-content .ad-close:hover {
- background: rgba(0, 0, 0, 0.15);
-}
-
-header .ad .ad-content .ad-close img {
- width: 16px;
- height: 16px;
-}
-
-header .ad .ad-content .ad-content-left .ad-text {
- font-size: 28px;
- font-weight: 600;
- color: #441726;
- font-family: Lexend;
- margin-right: 16px;
- line-height: 35px;
-}
-
-header .ad .ad-content .ad-content-left .ad-btn {
- height: 36px;
- min-width: 72px;
- background: linear-gradient(
- 104.43deg,
- #fc8c80 1.18%,
- #f3596e 46.98%,
- #ee61d4 93.24%
- );
- padding: 8px 16px 8px 16px;
- border-radius: 8px;
- border: none;
- font-family: Lexend;
- font-size: 16px;
- font-weight: 500;
- line-height: 20px;
- text-align: left;
- color: #fff;
- cursor: pointer;
-}
-
-footer.ad-footer {
- background-color: #1d0f14;
- color: #fff;
-}
-
-footer.ad-footer .dootask {
- color: #fff;
-}
-
-footer.ad-footer .footer-layout {
- border-top-color: transparent;
- border-bottom: rgba(231, 233, 228, 0.12) solid 1px;
-}
-
-.ad-wrapper .arcs {
- display: inline-block;
- position: absolute;
- width: 100%;
- height: 60px;
- left: 0;
- top: 60px;
- z-index: -1;
- background-color: transparent;
-}
-
-.ad-wrapper .topics .topics-h1-green {
- color: #f3474c;
- position: relative;
- text-align: center;
-}
-
-.ad-wrapper .topics .btn-primary {
- background: linear-gradient(
- 104.43deg,
- #ff7155 1.18%,
- #ef3e56 46.98%,
- #ee61d4 93.24%
- );
- box-shadow: 0px 3px 6px 0px #ff010133;
- transition: all 0.3s ease-in-out;
- border: 1px solid transparent;
-}
-
-.ad-wrapper .topics .topics-btn {
- gap: 16px;
-
- margin-bottom: 240px;
-}
-
-.ad-wrapper .topics .topics-btn .btn {
- min-width: 120px;
-}
-
-.ad-wrapper .topics .btn-primary:hover {
- background: linear-gradient(
- -104.43deg,
- #ff7155 1.18%,
- #ef3e56 46.98%,
- #ee61d4 93.24%
- );
- border: 1px solid #f3474c;
-}
-
-.ad-wrapper .topics .btn-default {
- color: #f3474c;
- background-color: #fff;
- border: 1px solid #f3474c;
- box-shadow: 0px 3px 6px 0px #ff010133;
- transition: all 0.3s ease-in-out;
-}
-
-.ad-wrapper .topics .btn-default:hover {
- background-color: #f3474c;
- color: #fff;
-}
-
-.ad-wrapper main {
- /* background-image: url(../img/ad/plan.png);
- background-size: cover;
- background-position: center;
- background-repeat: no-repeat; */
- position: relative;
-}
-
-.ad-plan {
- margin-top: -240px;
-}
-
-.ad-plan,
-.ad-intro {
- background: transparent;
-}
-
-.section-wrapper {
- max-width: 1280px;
- margin: 0 auto;
- padding: 0 0 96px 64px;
-
- display: flex;
-
- flex-direction: column;
- align-items: center;
- gap: 16px;
-}
-
-.section-wrapper .section-title {
- font-size: 28px;
- font-weight: 600;
- color: #441726;
-}
-
-.section-wrapper .section-description {
- font-size: 16px;
- color: #441726;
-}
-
-.section-wrapper .section-content {
- margin-top: 48px;
-}
-
-.ad-plan .section-content {
- width: 100%;
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- gap: 32px;
-}
-
-.ad-plan .section-content .plan-item {
- box-shadow: 0px 4px 16px 8px #0000001f;
- border-radius: 16px;
- background-color: #fff;
-
- min-height: 360px;
- padding: 32px 24px;
- border: 2px solid transparent;
-
- position: relative;
-}
-
-.ad-plan .section-content .plan-item:hover,
-.ad-plan .section-content .plan-item.active {
- border-color: #f3474c;
- box-shadow: 0px 24px 32px 16px #0000001f;
-}
-
-.ad-plan .section-content .plan-item .plan-item-tag {
- position: absolute;
- top: -12px;
- right: -12px;
- width: 88px;
- height: 32px;
- background-image: url(../img/ad/tag.png);
- background-size: cover;
- background-position: center;
- background-repeat: no-repeat;
- display: flex;
- justify-content: center;
- align-items: center;
- font-size: 14px;
- font-weight: 500;
- color: #fff;
-}
-
-.ad-plan .section-content .plan-item .plan-item-title {
- font-size: 18px;
- font-weight: 600;
-}
-
-.ad-plan .section-content .plan-item .plan-item-price {
- font-family: Lexend;
- margin-top: 32px;
- display: flex;
- flex-direction: column;
- align-items: flex-start;
- gap: 16px;
-}
-
-.ad-plan .section-content .plan-item .plan-item-price .plan-item-price-current {
- font-size: 32px;
- font-weight: 900;
-}
-
-.ad-plan
- .section-content
- .plan-item
- .plan-item-price
- .plan-item-price-current.price {
- color: #f3474c;
-}
-
-.ad-plan .section-content .plan-item .plan-item-price .plan-item-price-payment {
- font-size: 14px;
- font-weight: 500;
- color: #727570;
-}
-
-.ad-plan
- .section-content
- .plan-item
- .plan-item-price
- .plan-item-price-original {
- font-size: 14px;
- color: #727570;
-}
-
-.ad-plan
- .section-content
- .plan-item
- .plan-item-price
- .plan-item-price-original.price {
- text-decoration: line-through;
-}
-
-.ad-plan .section-content .plan-item .plan-item-button {
- margin-top: 24px;
-}
-
-.ad-plan .section-content .plan-item .plan-item-button .btn-primary {
- width: 100%;
-
- height: 40px;
- padding: 10px 16px 10px 16px;
- border-radius: 8px;
- background: linear-gradient(
- 104.43deg,
- #ff7155 1.18%,
- #ef3e56 46.98%,
- #ee61d4 93.24%
- );
- border: none;
- font-size: 16px;
- font-weight: 500;
- line-height: 20px;
- text-align: center;
- color: #fff;
- cursor: pointer;
-}
-
-.ad-plan .section-content .plan-item .plan-item-description {
- margin-top: 24px;
-}
-
-.ad-plan
- .section-content
- .plan-item
- .plan-item-description
- .plan-item-description-list {
- display: flex;
- flex-direction: column;
- gap: 12px;
-}
-
-.ad-plan
- .section-content
- .plan-item
- .plan-item-description
- .plan-item-description-item {
- display: flex;
- align-items: flex-start;
- gap: 8px;
- font-size: 14px;
-}
-
-.ad-plan
- .section-content
- .plan-item
- .plan-item-description
- .plan-item-description-item
- .plan-item-description-item-icon {
- width: 18px;
- height: 18px;
- display: flex;
- justify-content: flex-start;
- align-items: flex-end;
- flex-shrink: 0;
-}
-
-.ad-plan
- .section-content
- .plan-item
- .plan-item-description
- .plan-item-description-item
- .plan-item-description-item-content {
- color: #727570;
-}
-
-.ad-intro .section-content {
- width: 100%;
- display: grid;
- grid-template-columns: repeat(2, 1fr);
- gap: 24px;
-}
-
-.ad-intro .section-content .ad-intro-item {
- display: flex;
- flex-direction: column;
- align-items: center;
- gap: 16px;
- background-color: #fff;
- border-radius: 16px;
- padding: 24px;
- position: relative;
-
- box-shadow: 0px 4px 16px 8px #0000001f;
-}
-
-.ad-intro .section-content .ad-intro-item .ad-intro-item-header {
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- height: 20px;
-}
-
-.ad-intro .section-content .ad-intro-item .ad-intro-item-header img {
- border-top-left-radius: 16px;
- border-top-right-radius: 16px;
- width: 100%;
- height: 100%;
-}
-
-.ad-intro .section-content .ad-intro-item .ad-intro-item-image {
- width: 100%;
- height: 260px;
-}
-
-.ad-intro .section-content .ad-intro-item .ad-intro-item-image img {
- width: 100%;
- height: 100%;
-}
-
-.ad-intro .section-content .ad-intro-item .ad-intro-item-title {
- margin-top: 12px;
- font-size: 18px;
- font-weight: 600;
- align-self: flex-start;
-}
-
-.ad-intro .section-content .ad-intro-item .ad-intro-item-description {
- font-size: 14px;
- align-self: flex-start;
- color: #727570;
- line-height: 24px;
-}
-
-@media screen and (max-width: 1200px) {
- .ad-plan .section-content {
- grid-template-columns: repeat(3, 1fr);
- }
-
- .section-wrapper {
- padding: 96px 24px 64px;
- }
-}
-
-@media screen and (max-width: 900px) {
- .ad-plan .section-content {
- grid-template-columns: repeat(2, 1fr);
- }
-
- .ad-intro .section-content {
- grid-template-columns: repeat(1, 1fr);
- }
-}
-
-@media screen and (max-width: 768px) {
- header .ad .ad-content .ad-content-left .ad-text {
- font-size: 20px;
- }
-
- header .ad .ad-content .ad-content-left .ad-btn {
- font-size: 14px;
- height: 28px;
- line-height: 14px;
- }
-
- .ad-plan .section-content {
- grid-template-columns: repeat(1, 1fr);
- }
-}
-
-.ad-dialog {
- position: fixed;
- z-index: 10000;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- display: none;
-}
-
-.ad-dialog.show {
- display: flex;
- justify-content: center;
- align-items: center;
-}
-
-.ad-dialog .ad-dialog-backdrop {
- position: absolute;
- z-index: 10010;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- background-color: #0000001f;
-}
-
-.ad-dialog .ad-dialog-wrapper {
- z-index: 10020;
- min-height: 200px;
- min-width: 200px;
- max-width: 320px;
- max-height: 480px;
-
- background-color: #fff;
- border-radius: 16px;
- padding: 24px;
-
- box-shadow: 0px 4px 16px 8px #00000014;
-
- display: flex;
- flex-direction: column;
-}
-
-.ad-dialog .ad-dialog-wrapper .ad-dialog-header {
- display: flex;
- justify-content: center;
- align-items: center;
-
- flex-grow: 0;
- flex-shrink: 0;
- padding: 8px 12px;
-}
-
-.ad-dialog .ad-dialog-wrapper .ad-dialog-header .ad-dialog-header-img {
- height: 240px;
- width: 240px;
- background-image: url(../img/side_nav_wechat.png);
- background-size: cover;
- background-position: center;
- background-repeat: no-repeat;
-}
-
-.ad-dialog .ad-dialog-wrapper .ad-dialog-content {
- display: flex;
- justify-content: center;
- align-items: center;
-
- flex-grow: 1;
- flex-shrink: 0;
- padding: 8px 12px;
-
- font-size: 14px;
- color: #727570;
-}
-
-.ad-dialog .ad-dialog-wrapper .ad-dialog-footer {
- display: flex;
- justify-content: center;
- align-items: center;
-
- flex-grow: 0;
- flex-shrink: 0;
- padding: 8px 12px;
-}
-
-.ad-dialog .ad-dialog-wrapper .ad-dialog-footer .ad-dialog-footer-btn {
- width: 100%;
-
- height: 40px;
- padding: 10px 16px 10px 16px;
- border-radius: 8px;
- background: linear-gradient(
- 104.43deg,
- #ff7155 1.18%,
- #ef3e56 46.98%,
- #ee61d4 93.24%
- );
- border: none;
- font-size: 16px;
- font-weight: 500;
- line-height: 20px;
- text-align: center;
- color: #fff;
- cursor: pointer;
-}
-
-.ad-dialog .ad-dialog-wrapper .ad-dialog-footer .ad-dialog-footer-btn:hover {
- background: linear-gradient(
- -104.43deg,
- #ff7155 1.18%,
- #ef3e56 46.98%,
- #ee61d4 93.24%
- );
-}
diff --git a/public/site/css/animate.min.css b/public/site/css/animate.min.css
deleted file mode 100644
index 76d2fe1a8..000000000
--- a/public/site/css/animate.min.css
+++ /dev/null
@@ -1,7 +0,0 @@
-@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)*0.8);animation-duration:calc(var(--animate-duration)*0.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:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(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(0deg)}}@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(0deg)}}.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:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.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:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.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:translateX(-2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translateX(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:translateX(-2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translateX(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:translateX(2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translateX(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:translateX(2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translateX(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:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(-2000px) scale(.7);transform:translateX(-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:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(-2000px) scale(.7);transform:translateX(-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:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(2000px) scale(.7);transform:translateX(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:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(2000px) scale(.7);transform:translateX(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)*0.75);animation-duration:calc(var(--animate-duration)*0.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)*0.75);animation-duration:calc(var(--animate-duration)*0.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(0deg);-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(0deg);-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(0deg);-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(0deg);-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)*0.75);animation-duration:calc(var(--animate-duration)*0.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)*0.75);animation-duration:calc(var(--animate-duration)*0.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) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-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) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-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) skewX(30deg);opacity:0}60%{-webkit-transform:skewX(-20deg);transform:skewX(-20deg);opacity:1}80%{-webkit-transform:skewX(5deg);transform:skewX(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) skewX(30deg);opacity:0}60%{-webkit-transform:skewX(-20deg);transform:skewX(-20deg);opacity:1}80%{-webkit-transform:skewX(5deg);transform:skewX(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) skewX(30deg);opacity:0}}@keyframes lightSpeedOutRight{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(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) skewX(-30deg);opacity:0}}@keyframes lightSpeedOutLeft{0%{opacity:1}to{-webkit-transform:translate3d(-100%,0,0) skewX(-30deg);transform:translate3d(-100%,0,0) skewX(-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}
\ No newline at end of file
diff --git a/public/site/css/common.css b/public/site/css/common.css
deleted file mode 100644
index 2fefce168..000000000
--- a/public/site/css/common.css
+++ /dev/null
@@ -1,1249 +0,0 @@
-/* 全局 CSS 文件 */
-body {
- background-color: var(--bg-color);
- color: var(--text-color);
- font-family: "Lexend";
- font-style: normal;
- font-size: 16px;
-}
-
-* {
- margin: 0;
- padding: 0;
-}
-
-ul,
-ol {
- list-style: none;
-}
-
-i {
- font-style: normal;
-}
-
-a {
- color: var(--text-color);
- text-decoration: none;
- cursor: pointer;
-}
-
-img {
- max-width: 100%;
- height: auto;
- display: block;
-}
-
-.theme_dark {
- display: none;
-}
-
-.theme_light {
- display: block;
-}
-
-/* 字体样式 */
-.txt-4001416 {
- font-weight: 400;
- font-size: 14px;
- line-height: 16px;
-}
-
-.txt-4001418 {
- font-weight: 400;
- font-size: 14px;
- line-height: 18px;
-}
-
-.txt-4001516 {
- font-weight: 400;
- font-size: 15px;
- line-height: 16px;
-}
-
-.txt-4001520 {
- font-weight: 400;
- font-size: 15px;
- line-height: 20px;
-}
-
-.txt-4001524 {
- font-weight: 400;
- font-size: 15px;
- line-height: 24px;
-}
-
-.txt-4001616 {
- font-weight: 400;
- font-size: 16px;
- line-height: 16px;
-}
-
-.txt-4001620 {
- font-weight: 400;
- font-size: 16px;
- line-height: 20px;
-}
-
-.txt-4001624 {
- font-weight: 400;
- font-size: 16px;
- line-height: 24px;
-}
-
-.txt-4001630 {
- font-weight: 400;
- font-size: 16px;
- line-height: 30px;
-}
-
-.txt-4001822 {
- font-weight: 400;
- font-size: 18px;
- line-height: 22px;
-}
-
-.txt-4001824 {
- font-weight: 400;
- font-size: 18px;
- line-height: 24px;
-}
-
-.txt-4001830 {
- font-weight: 400;
- font-size: 18px;
- line-height: 30px;
-}
-
-.txt-4002025 {
- font-weight: 400;
- font-size: 20px;
- line-height: 25px;
-}
-
-.txt-4003645 {
- font-weight: 400;
- font-size: 36px;
- line-height: 45px;
-}
-
-.txt-5001616 {
- font-weight: 500;
- font-size: 16px;
- line-height: 16px;
-}
-
-.txt-5001624 {
- font-weight: 500;
- font-size: 16px;
- line-height: 24px;
-}
-
-.txt-5001528 {
- font-weight: 500;
- font-size: 15px;
- line-height: 28px;
-}
-
-.txt-5001628 {
- font-weight: 500;
- font-size: 16px;
- line-height: 28px;
-}
-
-.txt-5001822 {
- font-weight: 500;
- font-size: 18px;
- line-height: 22px;
-}
-
-.txt-5002016 {
- font-weight: 500;
- font-size: 20px;
- line-height: 16px;
-}
-
-.txt-5002024 {
- font-weight: 500;
- font-size: 20px;
- line-height: 24px;
-}
-
-.txt-5002025 {
- font-weight: 500;
- font-size: 20px;
- line-height: 25px;
-}
-
-.txt-5002228 {
- font-weight: 500;
- font-size: 22px;
- line-height: 28px;
-}
-
-.txt-5002835 {
- font-weight: 500;
- font-size: 28px;
- line-height: 35px;
-}
-
-.txt-5002430 {
- font-weight: 500;
- font-size: 24px;
- line-height: 30px;
-}
-
-.txt-5003636 {
- font-weight: 500;
- font-size: 36px;
- line-height: 36px;
-}
-
-.txt-5003645 {
- font-weight: 500;
- font-size: 36px;
- line-height: 45px;
-}
-
-.txt-5004455 {
- font-weight: 500;
- font-size: 44px;
- line-height: 55px;
-}
-
-.txt-6002025 {
- font-weight: 600;
- font-size: 20px;
- line-height: 25px;
-}
-
-.txt-6002430 {
- font-weight: 600;
- font-size: 24px;
- line-height: 30px;
-}
-
-.txt-6002835 {
- font-weight: 600;
- font-size: 28px;
- line-height: 35px;
-}
-
-.txt-6003645 {
- font-weight: 600;
- font-size: 36px;
- line-height: 45px;
-}
-
-.txt-6003652 {
- font-weight: 600;
- font-size: 36px;
- line-height: 52px;
-}
-
-.txt-6005670 {
- font-weight: 600;
- font-size: 56px;
- line-height: 70px;
-}
-
-.txt-6007290 {
- font-weight: 600;
- font-size: 72px;
- line-height: 90px;
-}
-
-.txt-7002027 {
- font-weight: 700;
- font-size: 20px;
- line-height: 27px;
-}
-
-.txt-7003240 {
- font-weight: 700;
- font-size: 32px;
- line-height: 40px;
-}
-
-.txt-7003645 {
- font-weight: 700;
- font-size: 36px;
- line-height: 45px;
-}
-
-/* button样式 */
-.btn {
- padding: 10px 16px;
- border-radius: 8px;
- border: 1px solid transparent;
- cursor: pointer;
- outline: none;
- position: relative;
- display: inline-block;
- white-space: nowrap;
- text-align: center;
- transition: all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
- user-select: none;
- touch-action: manipulation;
- width: 100%;
- font-size: 16px;
- line-height: 18px;
-}
-
-.btn-primary {
- background-color: var(--txt-theme-color);
- color: #fff;
-}
-
-.btn-primary:hover {
- background-color: var(--btn-hover-color);
-}
-
-.btn-green {
- color: var(--txt-theme-color);
- border-color: var(--txt-theme-color);
- background-color: transparent;
-}
-
-.btn-green:hover {
- color: #fff;
- border-color: var(--txt-theme-color);
- background-color: var(--txt-theme-color);
-}
-
-.btn-wwg {
- color: #fff;
- border-color: #fff;
- background-color: var(--txt-theme-color);
-}
-
-.btn-default {
- color: var(--txt-gray-color);
- border-color: var(--border-color);
- background-color: transparent;
-}
-
-.btn-default:hover {
- color: var(--txt-theme-color);
- border-color: var(--txt-theme-color);
-}
-
-.btn-gw {
- color: var(--txt-theme-color);
- background-color: #fff;
-}
-
-/* input样式 */
-.input {
- box-sizing: border-box;
- padding: 9px 13px;
- height: 44px;
- color: var(--text-color);
- background-color: var(--bg-fa-color);
- border: 1px solid var(--border-color);
- border-radius: 4px;
- transition: all 0.2s;
- font-size: 15px;
-}
-
-.input::placeholder {
- color: var(--txt-gray-color) !important;
- opacity: 0.5;
-}
-
-.input:focus {
- outline: none;
- border: 1px solid var(--txt-theme-color);
-}
-
-.textarea {
- box-sizing: border-box;
- padding: 9px 13px;
- color: var(--text-color);
- background-color: var(--bg-fa-color);
- border: 1px solid var(--border-color);
- border-radius: 4px;
- transition: all 0.2s;
- font-size: 15px;
-}
-
-.textarea::placeholder {
- color: var(--txt-gray-color) !important;
- opacity: 0.5;
-}
-
-.textarea:focus {
- outline: none;
- border: 1px solid var(--txt-theme-color);
-}
-
-.search-form {
- display: none;
- position: relative;
-}
-
-.search-input {
- box-sizing: border-box;
- display: flex;
- flex-direction: row;
- align-items: center;
- padding: 9px 13px 9px 38px;
- width: 240px;
- height: 40px;
- color: var(--text-color);
- background-color: var(--choose-bg-hover-color);
- border: 1px solid var(--border-color);
- border-radius: 8px;
- transition: all 0.2s;
- font-size: 15px;
-}
-
-.search-input::placeholder {
- color: var(--txt-gray-color) !important;
- opacity: 0.5;
-}
-
-.search-input:focus {
- outline: none;
- border: 1px solid var(--txt-theme-color);
-}
-
-.search-icon {
- display: inline-block;
- background: url(../img/search-icon.svg) no-repeat;
- width: 20px;
- height: 20px;
- position: absolute;
- top: 10px;
- left: 10px;
- z-index: 2;
-}
-
-.from-ul {
- width: 543px;
-}
-
-.from-ul-item {
- display: flex;
- flex-direction: column;
-}
-
-.from-ul-tags {
- font-family: "Lexend";
- font-style: normal;
- font-weight: 400;
- font-size: 14px;
- line-height: 16px;
- color: var(--txt-gray-color);
-}
-
-.input-txt {
- padding: 10px 16px;
- background: var(--bg-fa-color);
- border: 1px solid var(--border-color);
- border-radius: 4px;
-}
-
-.input-textArea {
- padding: 10px 16px;
- height: 120px;
- background: var(--bg-fa-color);
- border: 1px solid var(--border-color);
- border-radius: 4px;
-}
-
-/* flex样式 */
-.flex-cc {
- display: flex;
- align-items: center;
- justify-content: center;
-}
-
-.flex-sc {
- display: flex;
- align-items: flex-start;
- justify-content: center;
-}
-
-/* grid样式 */
-.grid-4 {
- display: grid !important;
- grid-template-columns: 480px 266px 266px 266px;
-}
-
-.grid-5 {
- display: grid !important;
- grid-template-columns: 336px 236px 236px 236px 236px;
-}
-
-/* padding样式 */
-.pl-26 {
- padding-left: 26px;
-}
-
-/* margin样式 */
-.mb-4 {
- margin-bottom: 4px;
-}
-
-.mb-8 {
- margin-bottom: 8px;
-}
-
-.mb-12 {
- margin-bottom: 12px;
-}
-
-.mb-16 {
- margin-bottom: 16px;
-}
-
-.mb-24 {
- margin-bottom: 24px;
-}
-
-.mb-32 {
- margin-bottom: 32px;
-}
-
-.mb-36 {
- margin-bottom: 36px;
-}
-
-.mb-40 {
- margin-bottom: 40px;
-}
-
-.mb-48 {
- margin-bottom: 48px;
-}
-
-.mb-56 {
- margin-bottom: 56px;
-}
-
-.mb-64 {
- margin-bottom: 64px;
-}
-
-.mb-80 {
- margin-bottom: 80px;
-}
-
-.mr-12 {
- margin-right: 12px;
-}
-
-.mr-16 {
- margin-right: 16px;
-}
-
-.mr-20 {
- margin-right: 20px;
-}
-
-.mr-24 {
- margin-right: 24px;
-}
-
-.mr-48 {
- margin-right: 48px;
-}
-
-.mt-16 {
- margin-top: 16px;
-}
-
-.mt-40 {
- margin-top: 40px;
-}
-
-.mt-80 {
- margin-top: 80px;
-}
-
-/* header布局 */
-.head {
- position: relative;
- background-color: var(--bg-color);
-}
-
-.head-con {
- width: 100%;
- max-width: 1280px;
- margin: 0 auto;
-}
-
-/* 导航栏样式 */
-.nav {
- display: block;
- background-color: transparent;
- width: 100%;
- position: relative;
- z-index: 999;
- height: 80px;
- position: fixed;
- top: 0;
-}
-
-.nav-layout {
- width: 100%;
- max-width: 1280px;
- margin: 0 auto;
- height: 80px;
- display: flex;
- align-items: center;
- justify-content: space-between;
-}
-
-.navbar-white {
- background-color: var(--pop-bg-color);
- box-shadow: 0px 4px 9px var(--box-shadow-color);
-}
-
-.topics {
- position: relative;
- width: 100%;
-}
-
-.topics-con {
- padding-top: 200px;
- max-width: 1280px;
- width: 100%;
- margin: 0 auto;
-}
-
-.topics-layout {
- display: flex;
- justify-content: center;
- flex-direction: column;
- align-items: center;
-}
-
-.topics-tit,
-.topics-btn {
- opacity: 0;
- transform: translateY(100px);
- animation: fadeSlideIn1 0.7s ease-in-out forwards;
- /* 应用动画效果 */
-}
-
-.topics-h4 {
- width: 680px;
- color: var(--txt-gray-color);
- text-align: center;
- opacity: 0;
- transform: translateY(100px);
- animation: fadeSlideIn1 0.7s ease-in-out forwards;
- /* 应用动画效果 */
-}
-
-/* 定义动画 */
-@keyframes fadeSlideIn1 {
- from {
- opacity: 0;
- transform: translateY(100px);
- }
-
- to {
- opacity: 1;
- transform: translateY(0);
- }
-}
-
-.topics-h1-green {
- color: var(--txt-theme-color);
- position: relative;
- text-align: center;
-}
-
-.topics-h1 {
- color: var(--text-color);
- text-align: center;
-}
-
-.topics-btn {
- margin-bottom: 64px;
-}
-
-.topics-tit-en {
- width: 896px;
- text-align: center;
-}
-
-.topics-h4-en {
- width: 660px;
- text-align: center;
-}
-
-.arcs {
- display: inline-block;
- position: absolute;
- width: 95%;
- height: 25px;
- left: 0;
- top: 83px;
-}
-
-.home-pic {
- display: block;
- width: 100%;
- max-width: 1280px;
- /* height: 580px; */
-}
-
-/* 抽屉菜单 */
-.menuBtn {
- display: none;
- cursor: pointer;
-}
-
-.drawer {
- position: fixed;
- top: 0;
- left: -90vw;
- width: 75vw;
- height: 100%;
- padding: 22px 24px;
- background-color: var(--pop-bg-color);
- border: 1px solid var(--box-shadow-color);
- box-shadow: var(--pop-box-shadow);
- transition: all 0.5s ease-in-out;
- z-index: 999;
-}
-
-.drawer-t {
- display: flex;
- justify-content: space-between;
- align-items: center;
-}
-
-.close-drawer {
- display: inline-block;
- margin-bottom: 10px;
- cursor: pointer;
- color: var(--txt-gray-color);
- font-size: 20px;
-}
-
-.open-drawer {
- left: 0;
-}
-
-.drawer-item-t {
- border-bottom: 1px solid var(--border-color);
-}
-
-.drawer .drawer-item {
- cursor: pointer;
- position: relative;
-}
-
-.drawer .drawer-item > a {
- padding: 16px;
- display: inline-block;
- width: calc(100% - 36px);
-}
-
-.drawer .drawer-item > i {
- padding: 16px;
- display: flex;
- width: calc(100% - 36px);
-}
-
-.drawer .drawer-active .drawer-item {
- padding: 0 36px;
-}
-
-.drawer .drawer-item .txt {
- color: var(--txt-gray-color);
-}
-
-.drawer .drawer-item:hover {
- background-color: var(--bg-hover-color);
- border-radius: 4px;
-}
-
-.drawer .drawer-item:hover .txt {
- color: var(--text-color);
-}
-
-.logo {
- display: flex;
- align-items: center;
-}
-
-.dootask {
- margin-left: 16px;
- color: var(--text-color);
-}
-
-.nav-ul {
- display: flex;
- align-items: center;
- justify-content: space-between;
- width: 545px;
-}
-
-.nav-ul-item {
- display: inline-block;
- position: relative;
-}
-
-.nav-vector {
- margin-left: 5px;
-}
-
-.nav-ul-item .txt {
- padding: 7px 8px;
- color: var(--txt-gray-color);
-}
-
-.nav-ul-item .txt:hover {
- background-color: var(--bg-hover-color);
- border-radius: 6px;
- color: var(--text-color);
-}
-
-.nav-ul-item .support-active {
- background-color: var(--bg-hover-color);
- border-radius: 6px;
- color: var(--text-color);
-}
-
-.submenu-pop {
- position: absolute;
- top: 40px;
- left: -38px;
- display: none;
- background-color: var(--pop-bg-color);
- border: 1px solid var(--box-shadow-color);
- box-shadow: var(--pop-box-shadow);
- border-radius: 4px;
- padding: 8px 0;
- z-index: 99;
- width: 150px;
- text-align: start;
-}
-
-.submenu-pop .submenu-pop-item {
- cursor: pointer;
-}
-
-.submenu-pop .submenu-pop-item .txt-sub {
- display: inline-block;
- padding: 9px 16px;
- color: var(--txt-gray-color);
-}
-
-.submenu-pop .submenu-pop-item:hover {
- background-color: var(--bg-hover-color);
-}
-
-.submenu-pop .submenu-pop-item:hover .txt-sub {
- color: var(--text-color);
-}
-
-.nav-r {
- width: 355px;
- display: flex;
- justify-content: space-between;
- align-items: center;
- position: relative;
-}
-
-.nav-support {
- display: flex;
- align-items: center;
- cursor: pointer;
-}
-
-.line-1 {
- height: 24px;
- border: 1px solid var(--border-color);
-}
-
-.nav-r a {
- font-style: normal;
- font-weight: 400;
- font-size: 16px;
- line-height: 20px;
- color: var(--txt-gray-color);
-}
-
-.nav-r-icon {
- height: 20px;
- cursor: pointer;
-}
-
-.lang {
- display: inline-block;
- height: 20px;
- cursor: pointer;
-}
-
-.lang-pop {
- position: absolute;
- top: 40px;
- left: -38px;
- display: none;
- background-color: var(--pop-bg-color);
- border: 1px solid var(--box-shadow-color);
- box-shadow: var(--pop-box-shadow);
- border-radius: 4px;
- padding: 8px 0;
- z-index: 99;
- text-align: start;
-}
-
-.lang-pop .show {
- display: inline-block;
-}
-
-.lang-pop .lang-pop-item {
- padding: 9px 16px;
- cursor: pointer;
-}
-
-.lang-pop .lang-pop-item .lang-txt {
- font-weight: 400;
- font-size: 14px;
- line-height: 18px;
- color: var(--txt-gray-color);
- display: inline-block;
-}
-
-.lang-pop .lang-pop-item:hover {
- background-color: var(--bg-hover-color);
-}
-
-.lang-pop .lang-pop-item:hover .lang-txt {
- color: var(--text-color);
-}
-
-.get-started {
- display: inline-block;
-}
-
-.login-btn {
- width: 84px;
- display: inline-block;
-}
-
-/* 底部样式 */
-footer {
- width: 100%;
- z-index: 2;
- position: relative;
-}
-
-.footer-con {
- width: 100%;
- max-width: 1280px;
- margin: 0 auto;
-}
-
-.footer-layout {
- display: flex;
- justify-content: space-between;
- align-items: flex-start;
- padding-top: 46px;
- border-bottom: var(--border-color) solid 1px;
-}
-
-#qq_group {
- position: relative;
- width: 164px;
-}
-
-#qq_group:hover .group_code {
- display: flex;
-}
-
-.group_code {
- display: none;
- position: absolute;
- bottom: 25px;
- left: -35px;
- background-color: var(--code-bg-color);
- padding: 12px;
- border-radius: 4px;
- justify-content: center;
- flex-direction: column;
-}
-
-.group_num {
- display: inline-block;
- color: #fff;
- font-weight: 400;
- font-size: 14px;
- line-height: 16px;
- margin-top: 10px;
-}
-
-.lower_triangle {
- position: absolute;
- bottom: -4px;
- left: 70px;
- width: 0;
- height: 0;
- border-left: 5px solid transparent;
- border-right: 5px solid transparent;
- border-top: 4px solid var(--code-bg-color);
-}
-
-.footer-l {
- display: flex;
- flex-direction: column;
- align-items: flex-start;
- width: 405px;
-}
-
-.footer-l .logo {
- height: 36px;
- display: flex;
- align-items: center;
- margin-bottom: 24px;
-}
-
-.footer-l .txt {
- color: var(--txt-gray-color);
-}
-
-.footer-r {
- width: 625px;
-}
-
-.footer-r-ul {
- display: flex;
- justify-content: space-between;
- padding-bottom: 48px;
-}
-
-.footer-ol-item {
- cursor: pointer;
-}
-
-.footer-ol-item .txt {
- color: var(--txt-gray-color);
-}
-
-.footer-ol-item .code-svg {
- display: block;
- height: 125px;
-}
-
-.filings {
- text-align: center;
- color: var(--txt-gray-color);
- padding: 24px 0;
-}
-
-.footer-t {
- position: relative;
- padding: 120px 0;
-}
-
-.footer-t-con {
- width: 100%;
- max-width: 1280px;
- margin: 0 auto;
-}
-
-.footer-t-layout {
- display: flex;
- justify-content: space-between;
- align-items: flex-start;
-}
-
-.footer-t-l {
- width: 657px;
-}
-
-.footer-t-h1 {
- font-weight: 500;
- font-size: 44px;
- line-height: 55px;
- color: var(--text-color);
-}
-
-.footer-t-h6 {
- font-weight: 400;
- font-size: 18px;
- line-height: 30px;
- color: var(--txt-gray-color);
-}
-
-.footer-t-contact {
- display: flex;
- justify-content: flex-start;
- align-items: center;
-}
-
-.footer-t-contact-icon {
- display: inline-block;
- width: 24px;
- height: 24px;
-}
-
-.footer-t-contact-h6 {
- font-weight: 400;
- font-size: 16px;
- line-height: 24px;
- color: var(--text-color);
-}
-
-/* 序号公共样式 */
-.serial-number {
- color: var(--txt-theme-color);
-}
-
-.choose-con-item-h5 {
- color: var(--text-color);
-}
-
-.choose-con-item-h6 {
- color: var(--txt-gray-color);
-}
-
-.support .support-item {
- padding-bottom: 8px;
-}
-
-.support .support-item .txt {
- font-family: "Lexend";
- font-style: normal;
- font-weight: 400;
- font-size: 16px;
- line-height: 24px;
- color: var(--txt-gray-color);
-}
-
-.support .support-item:first-of-type {
- padding-bottom: 16px;
-}
-
-.support .support-item:first-of-type .txt {
- color: var(--text-color);
- font-weight: 500;
-}
-
-.group .group-item {
- padding-bottom: 24px;
-}
-
-.group .group-item .txt {
- color: var(--text-color);
- font-weight: 500;
- font-size: 16px;
- line-height: 24px;
-}
-
-.group .group-item .logo {
- display: block;
- height: auto;
-}
-
-/* 动画 style="--delay: 0s;" */
-.about-animate-box,
-.solutions-animate-box,
-.home-animate-box,
-.dow-animate-box {
- opacity: 0;
- transform: translateY(30%);
-}
-
-.about-animate-box.animate,
-.price-animate-box.animate,
-.solutions-animate-box.animate,
-.home-animate-box.animate,
-.dow-animate-box.animate {
- animation: fadeIn 0.7s cubic-bezier(0.61, -0.01, 0.57, 0.96) forwards
- var(--delay);
- /* 应用动画效果 */
-}
-
-/* 定义动画 */
-@keyframes fadeIn {
- from {
- opacity: 0;
- transform: translateY(30%);
- }
-
- to {
- opacity: 1;
- transform: translateY(0);
- }
-}
-
-#arc {
- animation: arcsFadeIn 2s ease-in-out;
-}
-
-.arc-animate {
- animation: arcsFadeIn 2s ease-in-out;
-}
-
-@keyframes arcsFadeIn {
- from {
- stroke-dashoffset: 600;
- }
-
- to {
- stroke-dashoffset: 0;
- }
-}
-
-.start_a {
- width: 100%;
-}
-
-.hide {
- display: none;
-}
-
-#cookieConsent {
- display: none;
- width: 100%;
- height: 180px;
- background-color: rgba(0, 0, 0, 0.8);
- position: fixed;
- bottom: 0;
- z-index: 9999;
- color: #dfe4e8;
- padding: 40px 50px;
- box-sizing: border-box;
- text-align: center;
-}
-
-#agreeButton {
- width: 130px;
- position: absolute;
- right: 80px;
- bottom: 50px;
-}
-
-#cookie_a {
- color: #dfe4e8;
- text-decoration-line: underline;
-}
-
-.footer_beian {
- line-height: 20px;
- margin-left: 5px;
- color: #939393;
-}
-
-.footer_beian_a {
- line-height: 20px;
- margin-left: 5px;
- color: #939393;
- text-decoration: underline;
- display: inline-block;
-}
-
-.footer_copyright {
- display: flex;
- margin: 0 auto;
- align-items: center;
- justify-content: center;
-}
diff --git a/public/site/css/distribution.css b/public/site/css/distribution.css
deleted file mode 100644
index 7e1150427..000000000
--- a/public/site/css/distribution.css
+++ /dev/null
@@ -1,223 +0,0 @@
-main{
- position: relative;
-}
-.bg_fpic1{
- display: block;
- position: absolute;
- top: 0;
- left: 0;
- width: 34vw;
- max-width: 300px;
-}
-.bg_fpic2{
- display: block;
- position: absolute;
- top: 0;
- right: 0;
- width: 34vw;
- max-width: 300px;
-}
-section{
- width: 100%;
- height: 100vh;
- max-width: 768px;
- margin: 0 auto;
-}
-.content{
- display: flex;
- justify-content: center;
- align-items: center;
- height: 100%;
-}
-.layout{
- display: flex;
- justify-content: center;
- align-items: center;
- flex-direction: column;
- min-width: 240px;
-}
-.icon1{
- display: none;
- height: 88px;
- margin-bottom: 18px;
-}
-.name{
- width: 100%;
- display: flex;
- align-items: center;
- justify-content: center;
- padding-bottom: 20px;
-
-}
-.name >i{
- color: #000;
- font-weight: 500;
- font-size: 28px;
- line-height: 39px;
-}
-.icon2{
- display: block;
- height: 32px;
- margin-right: 8px;
-}
-.info{
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
-}
-.info-t{
- display: inline-block;
- margin-bottom: 2px;
-}
-.info-t >i{
- color: #727570;
- font-weight: 400;
- font-size: 12px;
- line-height: 17px;
-}
-.info-b{
- display: inline-block;
- color: #727570;
- font-weight: 400;
- font-size: 12px;
- line-height: 17px;
- margin-bottom: 36px;
-}
-.info-btn{
- margin-bottom: 16px;
-}
-.info-btn >button{
- min-width: 200px;
- padding: 10px 24px;
- border: 1px solid transparent;
- cursor: pointer;
- outline: none;
- position: relative;
- display: inline-block;
- white-space: nowrap;
- text-align: center;
- user-select: none;
- touch-action: manipulation;
- width: 100%;
- font-weight: 400;
- font-size: 16px;
- line-height: 22px;
- background: #8BCF70;
- border-radius: 22px;
- color: #fff;
-}
-.info-dow{
- display: block;
-}
-.info-tip{
- display: none;
- font-weight: 500;
- font-size: 16px;
- line-height: 22px;
- color: #8BCF70;
- opacity: 0.7;
-}
-.line-con{
- width: 100%;
- height: auto;
- margin-bottom: 32px;
- text-align: center;
-}
-.line1{
- display: inline-block;
- width: 100%;
- height: 1px;
- background-color: #E7E9E4;
-}
-.line2{
- display: none;
- font-weight: 500;
- font-size: 16px;
- line-height: 22px;
- color: #8BCF70;
- opacity: 0.7;
-}
-.operat-tips{
- position: absolute;
- top: 0;
- right: 10px;
- display: none;
-}
-.operat-con{
- position: relative;
- max-width: 152px;
-}
-.operat-con .lower_triangle{
- position: absolute;
- top: 6px;
- left: 120px;
- width: 0;
- height: 0;
- border-left: 6px solid transparent;
- border-right: 6px solid transparent;
- border-bottom: 4px solid #8BCF70;
-}
-.operat-con .group_num{
- background-color: #8BCF70;
-
- padding: 6px 12px;;
- border-radius: 6px;
-}
-.operat-con .group_num >p{
- font-weight: 400;
- font-size: 14px;
- line-height: 20px;
- color: #fff;
-}
-.qr_code{
- width: 160px;
- height: 160px;
- background-color: #F2F3F1;
- border-radius: 12px;
- margin-bottom: 36px;
- display: flex;
- justify-content: center;
- align-items: center;
-}
-.scan{
- text-align: center;
- display: flex;
- flex-direction: column;
-}
-.scan-txt{
- display: inline-block;
- color: #727570;
- font-weight: 400;
- font-size: 14px;
- line-height: 20px;
- opacity: 0.7;
-}
-.scan-txt-b{
- display: inline-block;
- color: #000000;
-}
-@media screen and (max-width: 768px){
- .qr_code,.scan{
- display: none !important;
- }
- .icon1{
- display: block !important;
- }
- .name >i{
- color: #000;
- font-weight: 500;
- font-size: 18px;
- line-height: 25px;
- }
- .icon2{
- display: block;
- height: 24px;
- margin-right: 8px;
- }
-}
-.qrcode_box{
- width: 130px;
- height: 130px;
- display: inline-block;
-}
diff --git a/public/site/css/download.css b/public/site/css/download.css
deleted file mode 100644
index e8e5d0ea7..000000000
--- a/public/site/css/download.css
+++ /dev/null
@@ -1,182 +0,0 @@
-/* 头部样式 */
-.head {
- text-align: center;
- background: var(--bg-8-url) top left no-repeat;
- background-size: contain;
-}
-.nav {
- background-color: var(--pop-bg-color);
- box-shadow: 0px 4px 9px var(--box-shadow-color);
-}
-
-.download-ul {
- display: flex;
- justify-content: space-between;
- align-items: center;
- width: 70%;
-}
-.download-ul-item {
- cursor: pointer;
-}
-.download-ul-item .normal {
- display: flex;
- background-color: var(--bg-fa-color);
- border-radius: 80px;
- width: 160px;
- height: 160px;
- justify-content: center;
- align-items: center;
- flex-direction: column;
-}
-.download-ul-item .icon {
- display: block;
- height: 48px;
-}
-.download-ul-item .hover {
- display: none;
- width: 160px;
- height: 160px;
- justify-content: center;
- align-items: center;
- flex-direction: column;
-}
-.download-ul-item .hover.radius {
- background-color: var(--bg-fa-color);
- border-radius: 80px;
- width: 160px;
- height: 160px;
-}
-.download-ul-item .qr-code {
- display: block;
- height: 100px;
-}
-.download-ul-item .txt {
- color: var(--txt-gray-color);
-}
-.download-ul-item .hover.radius .txt {
- color: var(--txt-theme-color);
-}
-.chips-txt {
- color: var(--txt-theme-color);
-}
-.download-ul-item .btn:hover .chips-txt {
- color: #fff;
-}
-.update {
- position: relative;
- background-color: var(--bg-fa-color);
-}
-.update-con {
- width: 100%;
- max-width: 1280px;
- margin: 0 auto;
- padding: 120px 0px;
- z-index: 2;
- position: relative;
-}
-.update-layout {
- display: flex;
- justify-content: space-between;
- align-items: center;
- position: relative;
-}
-.update-h1 {
- color: var(--text-color);
-}
-.update-ul {
- width: 465px;
-}
-.update-item {
- display: flex;
- justify-content: space-between;
- align-items: center;
- border-bottom: 1px solid var(--border-color);
- padding: 16px 0;
- cursor: pointer;
-}
-.update-item:hover .update-h5 {
- color: var(--txt-theme-color);
-}
-.update-item:hover .time {
- color: var(--txt-theme-color);
-}
-.update-h5 {
- color: var(--txt-gray-color);
-}
-.update-item .time {
- color: var(--txt-gray-color);
-}
-.update-ul .more-item {
- display: flex;
- align-items: center;
-}
-.more-item .more {
- color: var(--txt-theme-color);
- margin-right: 8px;
- cursor: pointer;
- padding: 16px 0;
-}
-.more-item .icon {
- display: inline-block;
- width: 8px;
- height: 12px;
- line-height: 24px;
-}
-.update-bg-svg {
- background: var(--bg-9-url) no-repeat top right;
- background-size: contain;
-}
-.update-r {
- max-width: 672px;
- margin-left: 123px;
- box-shadow: 0px 2px 8px 4px rgba(0, 0, 0, 0.05);
- border-radius: 45px;
-}
-.update-r-svg {
- display: block;
- background: var(--bg-pic1-url) no-repeat;
- background-size: cover;
- width: 100%;
- height: 100%;
-}
-/* 底部布局 */
-.footer-layout {
- padding-top: 120px;
-}
-.btn-padding {
- padding: 0 !important;
-}
-.btn-padding a {
- display: block;
- padding: 10px 16px;
-}
-/* 弹框样式 */
-.BulletBox {
- position: fixed;
- display: none;
- top: 50%;
- left: 50%;
- transform: translate(-50%, -50%);
- padding: 8px;
- background-color: var(--txt-theme-color);
- line-height: 20px;
- text-align: center;
- z-index: 9999;
- border: 1px solid transparent;
- border-radius: 8px;
- color: #fff;
-}
-.download-other-btn {
- padding: 10px 16px;
- border-radius: 8px;
- margin-top: 64px;
- margin-bottom: 100px;
-}
-.download-other-btn span {
- opacity: 0.7;
- color: var(--txt-gray-color);
-}
-.download-other-btn:hover span {
- color: var(--txt-theme-color);
- opacity: 1;
-}
diff --git a/public/site/css/help.css b/public/site/css/help.css
deleted file mode 100644
index d9158dd64..000000000
--- a/public/site/css/help.css
+++ /dev/null
@@ -1,195 +0,0 @@
-/* 头部样式 */
-.nav {
- background-color: var(--pop-bg-color);
- box-shadow: 0px 4px 9px var(--box-shadow-color);
-}
-
-.help {
- position: relative;
- margin: 56px 0 96px 0;
- padding-top: 80px;
-}
-
-.help-con {
- width: 100%;
- max-width: 1280px;
- margin: 0 auto;
-}
-
-.help-layout {
- display: flex;
- align-items: flex-start;
-}
-
-.help-l {
- display: block;
- padding: 24px;
- background: var(--bg-fa-color);
- border-radius: 8px;
- margin-right: 32px;
- height: 95%;
-}
-
-.help-h5 {
- color: var(--text-color);
-}
-
-.help-l-ul {
- width: 240px;
- overflow: auto;
- height: 82vh;
-}
-
-.l-ul-item.active .txt {
- color: var(--txt-theme-color);
-}
-
-.l-ul-item.active {
- background-color: var(--bg-hover-color);
- border-radius: 8px;
-}
-
-.l-ul-item:hover {
- background: var(--bg-hover-color);
- border-radius: 8px;
-}
-
-.txt {
- /* display: inline-block; */
- color: var(--txt-gray-color);
-}
-
-.help-r {
- padding-left: 32px;
- position: relative;
-}
-
-.help-r::-webkit-scrollbar {
- width: 0 !important
-}
-
-.help-pic1 {
- position: relative;
- padding-left: 34px;
- width: auto;
- height: 240px;
- background: var(--txt-theme-color);
- border-radius: 8px;
- display: flex;
- align-items: center;
- overflow: hidden;
-}
-
-#help-pic1-svg {
- height: 100%;
- position: absolute;
- top: 0;
- right: 0;
-}
-
-.help-pic1-tips {
- max-width: 360px;
-}
-
-.help-pic1-tips-h2 {
- color: #fff;
- margin-bottom: 16px;
-}
-
-.help-pic1-tips-h6 {
- color: #fff;
-}
-
-.help-h4 {
- color: var(--text-color) !important;
-}
-
-.help-h6 {
- color: var(--txt-gray-color);
-}
-
-.help-h6-bold {
- color: var(--text-color) !important;
-}
-
-.r-ul-item-pic1 {
- display: block;
- max-width: 90%;
- margin: 12px 0;
-}
-
-.r-ul-item-pic2 {
- display: block;
- height: 418px;
-}
-
-.dots {
- background: url(../img/dots.svg) no-repeat;
- width: 4px;
- height: 4px;
- display: block;
- position: absolute;
- left: 10px;
- top: 10px;
-}
-
-.help-t-768 {
- display: flex;
- align-items: center;
- padding: 14px 16px;
- background: var(--bg-fa-color);
- border-radius: 8px;
- margin-top: 16px;
- cursor: pointer;
- margin-bottom: 40px;
-}
-
-.help-t-prev {
- display: inline-block;
- width: 14px;
- margin-right: 8px;
-}
-
-.help-t-tit {
- font-weight: 400;
- font-size: 16px;
- line-height: 20px;
- color: var(--txt-theme-color);
-}
-
-.help-drawer {
- position: fixed;
- top: 0;
- left: -90vw;
- width: 75vw;
- height: 100%;
- padding: 22px 24px;
- background-color: var(--pop-bg-color);
- border: 1px solid var(--box-shadow-color);
- box-shadow: var(--pop-box-shadow);
- transition: all 0.5s ease-in-out;
- z-index: 999;
-}
-
-.open-help-drawer {
- left: 0;
-}
-
-.help-t-768 {
- display: none;
-}
-
-.filings {
- border-top: 1px solid var(--border-color);
-}
-.help-fiexd{
- position: sticky;
- top: 80px;
-}
-.help-a{
- display: block;
- width: 100%;
- height: 100%;
- padding: 9px 16px;
- line-height: normal;
-}
diff --git a/public/site/css/home.css b/public/site/css/home.css
deleted file mode 100644
index c7cc77943..000000000
--- a/public/site/css/home.css
+++ /dev/null
@@ -1,318 +0,0 @@
-/* 头部样式 */
-.head {
- text-align: center;
- background: var(--bg-1-url) top left no-repeat;
- background-size: cover;
-}
-section {
- background: var(--bg-2-url) bottom left no-repeat;
-}
-/* 底部样式 */
-.footer-layout {
- border-top: var(--border-color) solid 1px;
-}
-.collaboration {
- width: 100%;
- max-width: 1280px;
- max-height: 243px;
- margin: 0 auto;
- position: relative;
- margin-bottom: 120px;
-}
-.collaboration-content {
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- position: absolute;
- top: 50%;
- left: 50%;
- transform: translate(-50%, -50%);
- z-index: 5;
-}
-/* .collaboration-content-zh{
- top: 27.7%;
- left: 36.7%;
-}
-.collaboration-content-en{
- top: 27.7%;
- left: 28.6%;
-} */
-.collaboration-txt {
- color: #fff;
- text-align: center;
-}
-/* 合作公司 */
-.companies {
- height: 100%;
- background: var(--bg-fa-color);
-}
-.companies-con {
- width: 100%;
- max-width: 1280px;
- margin: 0 auto;
- padding: 88px 0;
-}
-.companies-h1 {
- text-align: center;
- color: var(--text-color);
-}
-.companies-ul {
- display: flex;
- align-items: center;
- justify-content: space-around;
- margin-top: 56px;
-}
-.companies-ul .companies-ul-item {
- height: 64px;
-}
-.companies-ul .companies-ul-item img {
- height: 100%;
- display: inline-block;
-}
-.ten_img {
- opacity: 0;
- animation-name: fadeSlideIn2;
- animation-duration: 2s;
- animation-delay: 0.6s;
- transition-timing-function: ease;
- animation-fill-mode: forwards;
-}
-/* 定义动画 */
-@keyframes fadeSlideIn2 {
- from {
- opacity: 0;
- }
- to {
- opacity: 1;
- }
-}
-/* 功能卡片 */
-.card {
- height: auto;
- width: 100%;
- max-width: 1280px;
- margin: 0 auto;
-}
-.card-pic {
- max-width: 717px;
-}
-.card-con {
- padding-top: 120px;
-}
-.card-con-768 {
- padding-top: 56px;
- display: none;
-}
-.card-con-layout {
- display: flex;
- align-items: flex-start;
- margin-top: 56px;
-}
-.card-h1 {
- text-align: center;
- color: var(--text-color);
-}
-.card-ul {
- width: 483px;
- margin-right: 48px;
- padding-right: 32px;
-}
-.card-768-ul .icon {
- flex: 1;
- display: inline-block;
- padding: 10px;
- background-color: var(--bg-292c2f-color);
- box-shadow: 0px 4px 9px rgba(0, 0, 0, 0.05);
- border-radius: 8px;
- margin-bottom: 16px;
-}
-.card-ul .card-ul-item {
- display: flex;
- align-items: center;
- padding: 24px 16px;
- border-bottom: 1px solid var(--border-color);
- cursor: pointer;
- max-height: 50px;
- transition: max-height 1s ease;
-}
-@keyframes fadeSlideIn3 {
- from {
- opacity: 0;
- transform: translateY(30px);
- }
- to {
- opacity: 1;
- transform: translateY(0);
- }
-}
-.card-ul .card-ul-item:hover {
- background-color: var(--bg-hover-color);
-}
-.card-ul .card-ul-item .icon {
- flex: 1;
- display: inline-block;
- padding: 10px;
- background-color: var(--bg-292c2f-color);
- box-shadow: 0px 4px 9px rgba(0, 0, 0, 0.05);
- border-radius: 8px;
- margin-right: 24px;
-}
-.card-ul .card-ul-item .arrows {
- display: inline-block;
- height: 18px;
- width: 18px;
-}
-.card-ul-item-h3 {
- color: var(--text-color);
-}
-.card-ul-item-unfolded {
- display: flex;
- justify-content: space-between;
- align-items: center;
- flex: 14;
-}
-.card-ul-item-expand {
- display: none;
-}
-.card-ul-item-expand-tit {
- display: flex;
- justify-content: space-between;
- align-items: center;
- margin-bottom: 16px;
-}
-.card-ul-item-txt {
- display: inline-block;
- color: var(--txt-gray-color);
- opacity: 0;
- animation: fadeSlideIn3 0.5s cubic-bezier(0.61, -0.01, 0.57, 0.96) forwards
- var(--delay);
-}
-@keyframes fadeSlideIn3 {
- from {
- opacity: 0;
- }
- to {
- opacity: 1;
- }
-}
-.card-ul-item.active {
- align-items: flex-start !important;
- max-height: 138px;
-}
-.card-ul-item.active .arrows {
- transform: rotate(180deg);
-}
-.card-ul-item.active .card-ul-item-unfolded {
- display: none;
-}
-.card-ul-item.active .card-ul-item-expand {
- display: inline-block;
-}
-
-/* 为什么选择我们 */
-.choose {
- position: relative;
- height: auto;
- width: 100%;
- max-width: 1280px;
- margin: 0 auto;
- z-index: 10;
-}
-.choose-con {
- padding: 240px 0 120px 0;
-}
-.choose-con-768 {
- display: none;
- justify-content: center;
- align-items: center;
- flex-direction: column;
- padding-bottom: 88px;
-}
-.choose-con-768-box {
- position: relative;
- width: calc(100vw);
- overflow-x: hidden;
-}
-.zh_choose_768,
-.en_choose_768 {
- /* min-height: 257px; */
-}
-.choose-con-768-ul {
- z-index: 99;
- display: flex;
- position: absolute;
- left: 0;
- top: 10px;
- transition: all cubic-bezier(0, -0.26, 0.13, 1.04) 0.8s;
-}
-.choose-con-768-ul::-webkit-scrollbar {
- display: none;
-}
-.choose-con-768-item {
- padding: 30px 24px;
- width: calc(100vw - 88px);
- min-height: 177px;
- height: 100%;
- background: var(--choose-bg-hover-color);
- box-shadow: 0px 2px 8px 4px rgba(0, 0, 0, 0.05);
- border-radius: 12px;
- margin: 0 20px;
-}
-#card-indicators {
- position: absolute;
- bottom: 54px;
- left: 50%;
- transform: translateX(-50%);
- display: flex;
- justify-content: center;
- align-items: center;
- z-index: 99;
-}
-.card-indicators-item {
- list-style: none;
- margin: 0 5px;
- width: 10px;
- height: 10px;
- border-radius: 50%;
- background-color: var(--border-color);
- cursor: pointer;
- transition: background-color 0.3s ease-in-out;
-}
-.card-indicators-item.active {
- background-color: var(--txt-theme-color);
-}
-.arcs2 {
- display: inline-block;
- position: absolute;
- width: 100%;
- left: 0;
- bottom: -28px;
-}
-.choose-con-ul {
- display: flex;
- justify-content: space-between;
-}
-.choose-con-item {
- width: calc(18vw + 12px);
- padding: 24px;
-}
-.choose-con-ul .hover {
- cursor: pointer;
- transition: all 0.3s ease-in-out;
-}
-.choose-con-ul .hover:hover {
- background-color: var(--choose-bg-hover-color);
- box-shadow: 0px 2px 8px 4px rgba(0, 0, 0, 0.05);
- border-radius: 12px;
- transform: translateY(-16px);
-}
-.choose-con-tit {
- color: var(--text-color);
- padding-top: 80px;
- position: relative;
- width: fit-content;
-}
-.home_pic7_768 {
- display: none;
-}
diff --git a/public/site/css/log.css b/public/site/css/log.css
deleted file mode 100644
index ebaf79e5d..000000000
--- a/public/site/css/log.css
+++ /dev/null
@@ -1,146 +0,0 @@
-/* 头部样式 */
-.nav {
- background-color: var(--pop-bg-color);
- box-shadow: 0px 4px 9px var(--box-shadow-color);
-}
-.logs {
- position: relative;
- margin: 136px 0 96px 0;
-}
-.logs-con {
- width: 100%;
- max-width: 1280px;
- margin: 0 auto;
-}
-.logs-layout {
- display: flex;
- align-items: flex-start;
- /* height: 929px; */
-}
-.logs-l {
- padding: 24px;
- background-color: var(--bg-fa-color);
- border-radius: 8px;
- margin-right: 32px;
- height: 95%;
-}
-.logs-h5 {
- font-weight: 400;
- font-size: 16px;
- line-height: 20px;
- color: var(--text-color);
-}
-.logs-l-ul {
- width: 240px;
-}
-.l-ul-item.active .txt {
- color: var(--txt-theme-color);
-}
-.l-ul-item.active {
- background-color: var(--bg-hover-color);
- border-radius: 8px;
-}
-.l-ul-item:hover {
- background-color: var(--bg-hover-color);
- border-radius: 8px;
-}
-.txt {
- /* display: inline-block; */
- color: var(--txt-gray-color);
-}
-.logs-r {
- border-left: 1px solid var(--border-color);
- padding-left: 32px;
- /* height: 929px; */
- /* overflow-y:scroll; */
-}
-.logs-r::-webkit-scrollbar {
- width: 0 !important;
-}
-.logs-h1 {
- color: var(--text-color);
-}
-.logs-h4 {
- font-weight: 500;
- font-size: 24px;
- line-height: 30px;
- color: var(--text-color);
- padding-top: 15px;
- box-sizing: border-box;
-}
-.r-ol-item {
- color: var(--txt-gray-color);
- position: relative;
-}
-.r-ul-item:last-child {
- margin-bottom: 0 !important;
-}
-.dots {
- background: url(../img/dots.svg) no-repeat;
- width: 4px;
- height: 4px;
- display: inline-block;
- position: absolute;
- left: 10px;
- top: 10px;
-}
-.logs-t-768 {
- display: flex;
- align-items: center;
- padding: 14px 16px;
- background: var(--bg-fa-color);
- border-radius: 8px;
- margin-top: 16px;
- cursor: pointer;
- margin-bottom: 40px;
-}
-.logs-t-prev {
- display: inline-block;
- width: 14px;
- margin-right: 8px;
-}
-.logs-t-tit {
- font-weight: 400;
- font-size: 16px;
- line-height: 20px;
- color: var(--txt-theme-color);
-}
-.logs-drawer {
- position: fixed;
- top: 0;
- left: -90vw;
- width: 75vw;
- height: 100%;
- padding: 22px 24px;
- background-color: var(--pop-bg-color);
- border: 1px solid var(--box-shadow-color);
- box-shadow: var(--pop-box-shadow);
- transition: all 0.5s ease-in-out;
- z-index: 999;
-}
-.open-logs-drawer {
- left: 0;
-}
-.logs-t-768 {
- display: none;
-}
-
-.log-a {
- display: block;
- width: 100%;
- height: 100%;
- padding: 9px 16px;
- line-height: normal;
-}
-.logs-sticky {
- position: sticky;
- top: 80px;
- height: calc(100vh - 136px);
-}
-#help-l-ul {
- overflow-y: auto;
- height: calc(100% - 36px);
-}
-.footer-layout {
- border-top: var(--border-color) solid 1px;
-}
diff --git a/public/site/css/price.css b/public/site/css/price.css
deleted file mode 100644
index 972ed38f5..000000000
--- a/public/site/css/price.css
+++ /dev/null
@@ -1,268 +0,0 @@
-/* 头部样式 */
-.head {
- background: var(--bg-10-url) top left no-repeat;
- background-size: contain;
-}
-.price-card {
- width: 100%;
- display: flex;
- justify-content: space-between;
- z-index: 2;
-}
-.price-card-item {
- box-sizing: border-box;
- display: flex;
- flex-direction: column;
- align-items: flex-start;
- padding: 24px;
- width: 298px;
- transition: all 0.3s ease-in-out;
- background: var(--choose-bg-hover-color);
- border: 1px solid var(--border-color);
- border-radius: 12px;
- cursor: pointer;
-}
-.price-card-item:hover {
- border: 1px solid var(--txt-theme-color);
- transform: translateY(-16px);
-}
-.price-animate-box {
- opacity: 0;
- transform: translateY(50%);
- animation: fadeIn 1s ease-in-out forwards var(--delay); /* 应用动画效果 */
-}
-.price-card-item:hover .btn-green {
- background-color: var(--txt-theme-color);
- color: #fff;
-}
-.price-card-h4 {
- color: var(--text-color);
- display: flex;
-}
-.price-card-item.active {
- border: 2px solid var(--txt-theme-color);
- box-shadow: 0px 4px 8px 4px rgba(0, 0, 0, 0.05);
-}
-.price-card-item.active .btn-green {
- background-color: var(--txt-theme-color);
- color: #fff;
-}
-.price-card-item.active .btn-green:hover {
- background-color: var(--btn-hover-color);
- border-color: var(--btn-hover-color);
-}
-.price-card-item.active .price-card-h4 {
- display: flex;
- align-items: center;
- color: var(--txt-theme-color);
-}
-.rec-icon {
- display: flex;
- flex-direction: row;
- align-items: center;
- padding: 2px 6px;
- height: 20px;
- background-color: var(--bg-rec-color);
- border-radius: 4px;
- color: #fff;
- font-size: 14px;
- line-height: 16px;
- margin-left: 8px;
-}
-.price-card-money {
- display: flex;
- align-items: flex-end;
-}
-.price-card-h2 {
- color: var(--text-color);
- text-align: left;
- margin-right: 4px;
-}
-.price-card-unit {
- color: var(--txt-gray-color);
-}
-.price-card-h6 {
- color: var(--txt-gray-color);
- text-align: left;
-}
-.price-card-ol-item {
- display: flex;
- align-items: flex-start;
-}
-.price-card-ol-item .icon {
- display: inline-block;
- height: 20px;
-}
-.plans-ul-t .plans-ul-t-item:last-child,
-.plans-ol-item:last-child {
- border-bottom: none !important;
-}
-.plans-ol .plans-ol-item:first-child {
- background-color: var(--bg-fa-color);
- padding: 20px 24px !important;
-}
-.plans {
- position: relative;
-}
-.plans-tit-h2 {
- text-align: center;
- color: var(--text-color);
-}
-.plans-tit-h5 {
- text-align: center;
- color: var(--txt-gray-color);
-}
-.plans-con {
- width: 100%;
- max-width: 1280px;
- margin: 0 auto;
- z-index: 2;
- position: relative;
-}
-.plans-layout {
- padding: 120px 0;
-}
-.plans-ul-t-item {
- border-bottom: 1px solid var(--border-color);
-}
-.plans-ul-t-item-h4 {
- color: var(--text-color);
-}
-.plans-ol-item {
- display: flex;
- align-items: center;
- padding: 24px;
- border-bottom: 1px solid var(--border-color);
-}
-.plans-ol-item .plans-ol-item-h6:first-child {
- color: var(--txt-gray-color) !important;
-}
-.plans-ol-item-h6 {
- color: var(--txt-4ca5);
- line-height: normal;
-}
-.plans-ol-item-icon {
- display: block;
- height: 24px;
-}
-
-.plans-ol-item-icon2 {
- display: block;
- height: 24px;
- opacity: 0.5;
-}
-
-.plans-ul-b {
- display: grid;
- grid-template-columns: 506px 266px 266px 266px;
-}
-.plans-ul-b-item-btn {
- display: inline-block;
- width: 160px;
-}
-.flex-s-c {
- display: flex;
- justify-content: flex-start;
- align-items: center;
-}
-.plans-ul-768 {
- display: none;
-}
-.plans-ul-768-item:nth-of-type(1),
-.plans-ul-768-item:nth-of-type(2) {
- border-bottom: 1px solid var(--border-color);
- padding-bottom: 36px;
-}
-.plans-ol-768-item {
- border: 1px solid var(--border-color);
- border-radius: 12px;
- margin-bottom: 24px;
- background-color: var(--bg-color);
-}
-.plans-ol-768-item .plans-ol-768-content {
- display: flex;
- align-items: center;
- justify-content: space-between;
- padding: 20px 24px;
-}
-.plans-ol-768-item .plans-ol-768-content:nth-child(2n) {
- background-color: var(--bg-fa-color);
-}
-.plans-ol-768-item .plans-ol-768-content:last-child {
- border-radius: 0 0 12px 12px;
-}
-
-/* 底部样式 */
-.footer-layout {
- border-top: var(--border-color) solid 1px;
-}
-.BulletBox1 {
- position: fixed;
- display: none;
- top: 50%;
- left: 50%;
- transform: translate(-50%, -50%);
- background-color: #fff;
- width: 430px;
- text-align: center;
- z-index: 9999;
- border: 1px solid transparent;
- border-radius: 18px;
- box-sizing: border-box;
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
-}
-
-@media screen and (max-width: 600px) {
- .BulletBox1 {
- width: 80%;
- }
-}
-
-.BulletBox1 .top {
- width: 382px;
- line-height: 20px;
- padding: 22px 24px 20px 24px;
- font-size: 18px;
- color: #303133;
- font-weight: 500;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- display: flex;
- justify-content: space-between;
-}
-.BulletBox1 .content {
- width: 100%;
- box-sizing: border-box;
- line-height: 1.5;
- font-size: 14px;
- padding: 16px 32px 2px 32px;
- text-align: left;
- color: rgb(96, 98, 102);
-}
-.BulletBox1 .bottom {
- display: flex;
- justify-content: end;
- padding: 20px 30px 22px 30px;
- position: relative;
-}
-.BulletBox1 .bottom .BulletBox1Btn {
- min-width: 100px;
- right: 20px;
- height: 34px;
- line-height: 32px;
- color: #fff;
- background-color: #8bcf70;
- border-color: #8bcf70;
- cursor: pointer;
- border-radius: 8px;
- padding: 5px;
-}
-
-.price-ceiling {
- position: sticky;
- top: 80px;
- background-color: var(--bg-color);
- border-bottom: 1px solid var(--border-color);
- z-index: 9999;
-}
diff --git a/public/site/css/privacy.css b/public/site/css/privacy.css
deleted file mode 100644
index e69de29bb..000000000
diff --git a/public/site/css/product.css b/public/site/css/product.css
deleted file mode 100644
index 4d62168e0..000000000
--- a/public/site/css/product.css
+++ /dev/null
@@ -1,312 +0,0 @@
-/* 头部样式 */
-.head.product {
- position: relative;
- background: var(--bg-3-url) top right no-repeat;
-}
-.prooduct-con {
- width: 100%;
- max-width: 1280px;
- margin: 0 auto;
- position: relative;
-}
-.prooduct-list {
- display: flex;
- flex-wrap: wrap;
-}
-.prooduct-list .prooduct-list-item {
- padding: 24px;
- background-color: var(--bg-fa-color);
- border: 1px solid var(--border-color);
- border-radius: 12px;
- cursor: pointer;
- margin-right: 32px;
- width: 100%;
- margin-bottom: 24px;
- opacity: 0;
- animation: fadeIn 0.5s ease-in-out forwards var(--delay); /* 应用动画效果 */
-}
-/* 定义动画 */
-@keyframes fadeIn {
- from {
- opacity: 0;
- transform: translateY(50%);
- }
- to {
- opacity: 1;
- transform: translateY(0);
- }
-}
-.prooduct-list .prooduct-list-item.top {
- max-width: 180px;
-}
-.prooduct-list .prooduct-list-item:nth-of-type(6),
-.prooduct-list .prooduct-list-item:nth-of-type(10) {
- margin-right: 0 !important;
-}
-.prooduct-list .prooduct-list-item.bot {
- max-width: 246px;
-}
-.prooduct-list .prooduct-list-item:hover {
- background-color: var(--choose-bg-hover-color);
- border: 1px solid var(--txt-theme-color);
- box-shadow: 0px 1px 6px 2px rgba(0, 0, 0, 0.12);
-}
-.prooduct-list .prooduct-list-item .icon {
- width: 48px;
- display: block;
- margin-bottom: 16px;
-}
-.prooduct-list .prooduct-list-item .txt {
- color: var(--txt-gray-color);
-}
-.prooduct-list .active {
- background-color: var(--choose-bg-hover-color) !important;
- border: 1px solid var(--txt-theme-color) !important;
- box-shadow: 0px 2px 8px 4px rgba(0, 0, 0, 0.05) !important;
-}
-.prooduct-list .prev,
-.prooduct-list .next {
- padding: 14px;
- background: var(--choose-bg-hover-color);
- box-shadow: 0px 2px 8px 4px rgba(0, 0, 0, 0.05);
- border-radius: 8px;
- cursor: pointer;
- display: none;
-}
-.prooduct-list .prev {
- margin-right: 16px;
-}
-.prooduct-list .next {
- margin-left: 16px;
-}
-.active .txt {
- color: var(--text-color) !important;
-}
-.details {
- display: none;
- width: 100%;
- max-width: 1280px;
- opacity: 0;
- transform: translateY(20%); /* 将元素向下移动 50 像素 */
- animation-name: fadeIn2; /* 指定动画名称 */
- animation-duration: 1s; /* 动画持续时间为 1 秒 */
- transition-delay: 1s;
- transition-timing-function: ease;
- animation-fill-mode: forwards; /* 元素保持动画结束状态 */
-}
-.details.active {
- display: block;
-}
-.details-ul-1280 {
- display: none;
- flex-wrap: wrap;
- justify-content: space-between;
- padding: 56px 48px;
- background-color: var(--choose-bg-hover-color);
- box-shadow: 0px 2px 8px 4px rgba(0, 0, 0, 0.05);
- border-radius: 12px;
-}
-.details-ul-1280 .details-ul-item {
- width: 48%;
-}
-.prooduct-ul {
- margin: 12px 0 125px 0;
-}
-.details-con {
- display: flex;
- align-items: flex-start;
- padding: 56px 48px;
- background-color: var(--choose-bg-hover-color);
- box-shadow: 0px 2px 8px 4px rgba(0, 0, 0, 0.05);
- border-radius: 12px;
-}
-/* 定义动画 */
-@keyframes fadeIn2 {
- from {
- opacity: 0;
- transform: translateY(20%);
- }
- to {
- opacity: 1;
- transform: translateY(0);
- }
-}
-.details-con .pic {
- display: block;
-}
-.details-con .details-ul {
- margin-left: 56px;
-}
-.details-con .details-ul.item4 {
- width: 764px;
- display: flex;
- flex-wrap: wrap;
- justify-content: space-between;
-}
-.details-con .details-ul.item4 .details-ul-item {
- width: 364px;
-}
-
-main {
- width: 100%;
- z-index: 2;
- position: relative;
-}
-.manage {
- background-color: var(--bg-fa-color);
-}
-.manage-con {
- padding: 120px 0px;
- width: 100%;
- max-width: 1280px;
- margin: 0 auto;
- position: relative;
-}
-.manage-t {
- display: flex;
- align-items: center;
- flex-direction: column;
-}
-.manage-b {
- display: flex;
- justify-content: space-between;
- position: relative;
-}
-.manage-h1 {
- color: var(--text-color);
-}
-.manage-h3 {
- font-weight: 500;
- font-size: 20px;
- line-height: 25px;
- color: var(--txt-191a15-color);
-}
-.manage-h5 {
- color: var(--txt-gray-color);
-}
-.manage-h6 {
- color: var(--txt-gray-color);
-}
-.manage-h5-768 {
- display: none;
-}
-.manage-tit {
- width: 341px;
-}
-.manage-icon {
- height: 24px;
- display: block;
-}
-.manage-bg {
- display: block;
- max-width: 100%;
- width: 100%;
- height: 100%;
-}
-.manage-svg {
- position: relative;
- box-shadow: 0px 4px 8px 4px rgba(0, 0, 0, 0.05);
- border-radius: 30px;
- width: 405px;
-}
-.manage-tips {
- padding: 18px 20px;
- background: var(--choose-bg-hover-color);
- box-shadow: 0px 4px 8px 4px rgba(0, 0, 0, 0.05);
- border-radius: 12px;
- display: flex;
- align-items: center;
- position: absolute;
- top: 42px;
- left: 100px;
- width: 76%;
-}
-.manage-tips-txt {
- margin-left: 12px;
- color: var(--text-color);
-}
-.manage-svg-h2 {
- display: inline-block;
- position: absolute;
- bottom: 52px;
- left: 120px;
- text-align: end;
- color: #fff;
- width: 60%;
-}
-.manage-ul-item {
- display: flex;
- align-items: flex-start;
-}
-.performance {
- position: relative;
- background: var(--bg-4-url) top left no-repeat;
-}
-.performance-con {
- padding: 120px 0px;
- width: 100%;
- max-width: 1280px;
- margin: 0 auto;
-}
-.performance-con .pic {
- display: block;
- height: auto;
-}
-.performance-h1 {
- color: var(--text-color);
- text-align: center;
-}
-.performance-ul {
- display: flex;
- align-items: flex-start;
- justify-content: space-between;
- margin-top: 48px;
-}
-.performance-ul-item {
- width: 248px;
-}
-.performance-ul-item .icon {
- display: inline-block;
- width: 24px;
- height: 24px;
- background-color: var(--txt-theme-color);
- border-radius: 4px;
- transform: rotate(45deg);
-}
-.performance-h5 {
- color: var(--txt-191a15-color);
-}
-.performance-h6 {
- font-weight: 400;
- font-size: 16px;
- line-height: 24px;
- color: var(--txt-gray-color);
-}
-.product-animate-box,
-.product-animate-box2 {
- opacity: 0;
- transform: translateY(25%);
-}
-.product-animate-box.animate {
- animation: fadeIn5 0.8s cubic-bezier(0.61, -0.01, 0.57, 0.96) forwards
- var(--delay); /* 应用动画效果 */
-}
-.product-animate-box2.animate {
- animation: fadeIn5 0.7s cubic-bezier(0.61, -0.01, 0.57, 0.96) forwards
- var(--delay); /* 应用动画效果 */
-}
-/* 定义动画 */
-@keyframes fadeIn5 {
- from {
- opacity: 0;
- transform: translateY(30%);
- }
- to {
- opacity: 1;
- transform: translateY(0);
- }
-}
-/* 底部样式 */
-.footer-layout {
- border-top: var(--border-color) solid 1px;
-}
diff --git a/public/site/css/rem.css b/public/site/css/rem.css
deleted file mode 100644
index f132d000e..000000000
--- a/public/site/css/rem.css
+++ /dev/null
@@ -1,950 +0,0 @@
-@media screen and (max-width: 1280px) {
- .head-con,
- .companies-con,
- .card,
- .choose,
- .footer-con,
- .prooduct-con,
- .manage-con,
- .performance-con,
- .app-con,
- .nav-layout,
- .update-con,
- .logs-con,
- .help-con,
- .plans-con,
- .company-profile-con,
- .scenario-app-con,
- .footer-t-con,
- .topics-con,
- .collaboration {
- width: calc(100vw - 72px) !important;
- padding-left: 36px !important;
- padding-right: 36px !important;
- }
- .nav-r {
- width: 27%;
- }
- .nav-ul {
- width: 42%;
- }
- .card-pic {
- max-width: 50% !important;
- margin-bottom: 36px !important;
- }
- .manage-b,
- .scenario-app-ul {
- flex-wrap: wrap;
- justify-content: center !important;
- }
- .update-layout {
- justify-content: center !important;
- }
- .update-l {
- margin-right: 36px;
- }
- .manage-b {
- display: block !important;
- }
- .details,
- .manage-tit,
- .company-profile-l {
- width: calc(100vw - 72px) !important;
- }
- .topics-tit {
- width: calc(100vw - 72px) !important;
- text-align: center;
- }
- .prooduct-list .prooduct-list-item {
- width: auto !important;
- max-width: 100% !important;
- margin-right: 0 !important;
- margin-bottom: 0 !important;
- }
- .prooduct-ul {
- margin-top: 36px !important;
- }
- .manage-ul-item {
- margin-bottom: 32px !important;
- }
- .details-con-item4 {
- display: none !important;
- }
- .details-ul-1280 {
- display: flex !important;
- }
- .app-ul {
- justify-content: center !important;
- }
- .team-ul,
- .price-card {
- flex-wrap: wrap !important;
- justify-content: space-between !important;
- }
- .plans-ul-b {
- flex-wrap: wrap !important;
- justify-content: flex-start !important;
- }
- .team-ul-item,
- .price-card-item,
- .plans-ul-b-item {
- margin-bottom: 32px;
- }
- .team-con {
- width: calc(100vw - 72px) !important;
- padding: 120px 20px 88px 20px !important;
- }
- .download-ul {
- width: 100% !important;
- }
- .update-r {
- margin-left: 0 !important;
- }
- .grid-4 {
- grid-template-columns: 32vw 18vw 18vw 18vw !important;
- }
- .grid-5 {
- grid-template-columns: 26vw 18.5vw 18.5vw 18.5vw 18.5vw !important;
- }
- .plans-ul-b {
- grid-template-columns: calc(34vw + 4px) 18vw 18vw 18vw !important;
- }
- .scenario-app-ul-item:nth-of-type(3),
- .app-ul-item:nth-of-type(3) {
- margin-bottom: 32px !important;
- }
- .company-profile-layout {
- flex-wrap: wrap;
- justify-content: center !important;
- }
- .company-profile-r {
- margin-top: 48px !important;
- width: auto !important;
- }
- .team-ul-item {
- width: auto !important;
- height: auto !important;
- }
- .help-pic1 {
- height: auto !important;
- }
- .help-pic1-tips-h2 {
- margin-bottom: 0 !important;
- }
- .help-pic1-tips {
- position: relative;
- padding: 12px 0 !important;
- z-index: 10;
- max-width: calc(100% - 123px) !important;
- }
- .help-pic1-tips-h2 {
- font-weight: 500 !important;
- font-size: 16px !important;
- line-height: 24px !important;
- margin-bottom: 8px !important;
- }
- .help-pic1-tips-h6 {
- font-weight: 400 !important;
- font-size: 12px !important;
- line-height: 16px !important;
- }
- .choose-con-ul {
- justify-content: flex-start !important;
- }
- .choose-con-item,
- .app-ul-item,
- .scenario-app-ul-item {
- width: 100% !important;
- }
- .choose-con {
- padding: 120px 0 56px 0 !important;
- }
- .collaboration {
- /* padding-bottom: 56px !important; */
- }
- .price-card-item {
- width: 22% !important;
- min-width: 200px !important;
- }
- .performance-ul-item {
- margin-right: 24px !important;
- width: 100% !important;
- }
- .performance-ul-item:last-child {
- margin-right: 0 !important;
- }
- .prooduct-list {
- display: grid !important;
- grid-template-columns: repeat(3, 1fr) !important;
- grid-gap: 24px 32px;
- }
- .plans-ul-b-item-btn {
- width: auto !important;
- }
- .app-bg-box {
- max-height: 100% !important;
- }
-}
-
-@media screen and (max-width: 1050px) {
- .nav-ul,
- .nav-r {
- display: none;
- }
- .menuBtn {
- display: block;
- }
- .footer-t-layout {
- flex-direction: column !important;
- }
- .footer-t-l {
- margin-bottom: 32px;
- }
- .price-card-item {
- width: 358px !important;
- }
- .price-card-h2 {
- font-size: 24px !important;
- }
- .plans-ul-t-item-h4 {
- font-size: 16px !important;
- }
- .price-card-unit {
- font-size: 14px !important;
- }
- .update-layout {
- flex-wrap: wrap;
- justify-content: center !important;
- }
- .update-l {
- margin-right: 0 !important;
- }
- .from-ul {
- width: calc(100vw - 72px) !important;
- margin-top: 40px !important;
- }
- .update-ul {
- width: calc(100vw - 72px) !important;
- }
- .update-r {
- max-width: 100% !important;
- }
- .topics-h1-green,
- .topics-h1 {
- font-size: 56px !important;
- }
- .collaboration-txt {
- font-size: 24px !important;
- margin-bottom: 8px !important;
- }
- .logs-l-ul,
- .help-l-ul,
- .search-input {
- width: 220px !important;
- }
- .update-bg-svg {
- background-size: 62% !important;
- }
- .card-ul-item.active {
- max-height: 307px !important;
- }
- .footer_copyright {
- flex-direction: column;
- }
-}
-@media screen and (max-width: 768px) and (min-width: 768px) {
- .download-ul-item:nth-of-type(2) {
- margin-right: 24px;
- }
-}
-@media screen and (max-width: 768px) {
- img {
- max-width: 100% !important;
- }
- .filings {
- font-size: 14px !important;
- }
- .nav-layout {
- height: 64px !important;
- }
- section {
- background: transparent !important;
- }
- #logo {
- height: 28px !important;
- }
- .btn {
- font-size: 15px !important;
- line-height: 18px !important;
- }
- .companies-ul .companies-ul-item {
- height: 36px !important;
- }
- .topics-con {
- width: calc(100vw - 40px) !important;
- padding-top: 100px !important;
- padding-left: 20px !important;
- padding-right: 20px !important;
- }
- .details,
- .manage-tit,
- .company-profile-l {
- width: calc(100vw - 40px) !important;
- }
- .nav {
- height: 60px !important;
- }
- .head-con,
- .card,
- .choose,
- .footer-con,
- .companies-con,
- .manage-con,
- .performance-con,
- .app-con,
- .team-con,
- .update-con,
- .logs-con,
- .help-con,
- .plans-con,
- .prooduct-con,
- .scenario-app-con,
- .footer-t-con,
- .nav-layout,
- .company-profile-con,
- .collaboration {
- width: calc(100vw - 40px) !important;
- padding: 0 20px !important;
- }
- .company-profile-r {
- width: 100% !important;
- margin-top: 0 !important;
- }
- .details,
- .manage-b,
- .performance-con .pic {
- width: calc(100vw - 40px) !important;
- }
- .manage-b {
- justify-content: center !important;
- padding-bottom: 56px;
- }
- .topics-h1,
- .topics-h1-green {
- font-weight: 600;
- font-size: 28px !important;
- line-height: 35px !important;
- text-align: center;
- }
- .topics-tit,
- .topics-h4 {
- width: 340px !important;
- margin-bottom: 20px !important;
- text-align: center;
- }
- .solutions .topics-btn {
- margin-bottom: 56px !important;
- }
- .topics-btn {
- margin-bottom: 32px !important;
- }
- .arcs {
- top: 26px !important;
- width: 120px !important;
- }
- .companies-h1 {
- font-weight: 400;
- font-size: 18px;
- line-height: 22px;
- }
- .companies-con {
- padding: 32px 0 !important;
- }
- .companies-ul {
- margin-top: 24px !important;
- display: grid !important;
- grid-template-columns: repeat(2, 50%) !important;
- grid-template-rows: repeat(2, 50%) !important;
- justify-items: center !important;
- }
- .companies-ul .companies-ul-item:nth-of-type(1),
- .companies-ul .companies-ul-item:nth-of-type(2) {
- margin-bottom: 20px !important;
- }
- .card-con,
- .collaboration-bg,
- .choose-con,
- .footer-l,
- .footer-r,
- .manage-h5-1920,
- .download-ul-item .hover,
- .home_pic7 {
- display: none !important;
- }
- .card-con-768,
- .performance-ul,
- .help-t-768,
- .prooduct-list .prev,
- .prooduct-list .next,
- .manage-ul-item,
- .logs-t-768,
- .plans-ul-768,
- .manage-h5-768,
- .home_pic7_768 {
- display: block !important;
- }
- .choose-con-768 {
- display: flex !important;
- }
- .manage-h5-768 {
- width: 320px !important;
- }
- .card-pic {
- max-width: 100% !important;
- }
- .choose-con-768-item,
- .r-ul-item-pic1 {
- height: auto !important;
- }
- .choose-con-tit {
- padding-top: 20px !important;
- font-weight: 500;
- font-size: 22px;
- line-height: 30px;
- text-align: center;
- margin-bottom: 48px;
- }
- .manage-h1,
- .performance-h1,
- .app-h1,
- .team-tit,
- .update-h1 {
- padding-top: 56px !important;
- font-weight: 500;
- font-size: 22px;
- line-height: 28px;
- text-align: center;
- margin-bottom: 12px !important;
- }
- .manage-b,
- .app-ul,
- .team-ul {
- margin-top: 40px !important;
- }
- .manage-icon {
- margin-bottom: 16px;
- }
- .manage-h5,
- .app-h5,
- .topics-h4,
- .scenario-app-h6,
- .footer-t-h6 {
- font-weight: 400;
- font-size: 16px;
- line-height: 24px;
- text-align: center;
- }
- .app-h5 {
- width: 320px !important;
- }
- .footer-t-h6 {
- text-align: start !important;
- margin-bottom: 32px !important;
- }
- .plans-tit-h5 {
- font-weight: 400;
- font-size: 16px;
- line-height: 24px;
- text-align: center;
- margin-bottom: 48px !important;
- }
- .manage-h3 {
- margin-bottom: 12px !important;
- font-size: 18px !important;
- }
- .performance-h5,
- .help-h4,
- .price-card-h4 {
- font-size: 18px !important;
- }
- .price-card-h4 {
- margin-bottom: 20px !important;
- }
- .price-card-h2 {
- font-size: 24px !important;
- }
- .price-card-h2 {
- margin-right: 4px;
- }
- .manage-ul-item {
- margin-bottom: 36px !important;
- }
- .performance-ul {
- margin-top: 36px !important;
- }
- .arcs2 {
- width: 170px !important;
- left: 4px !important;
- bottom: -12px !important;
- }
- .collaboration-txt {
- font-size: 20px !important;
- max-width: 280px !important;
- }
- .collaboration {
- margin-bottom: 56px !important;
- max-height: inherit !important;
- }
- .footer-layout {
- border-bottom: none !important;
- padding: 0 !important;
- }
- .prooduct-list {
- display: flex !important;
- flex-wrap: nowrap !important;
- margin-bottom: 24px !important;
- justify-content: space-between !important;
- align-items: center !important;
- grid-gap: 0 !important;
- }
- .prooduct-list .active {
- display: flex !important;
- align-items: center;
- }
- .prooduct-list .prooduct-list-item.top {
- width: 100% !important;
- }
- .prooduct-list .prooduct-list-item {
- display: none;
- padding: 16px !important;
- margin: 0 !important;
- }
- .prooduct-list .prooduct-list-item .icon {
- width: 28px !important;
- margin-bottom: 0 !important;
- margin-right: 12px !important;
- }
- .prooduct-list .prooduct-list-item .txt {
- font-weight: 500;
- font-size: 16px;
- line-height: 20px;
- }
- .prooduct-ul {
- margin: 0 0 56px 0 !important;
- }
- .performance {
- background: var(--bg-768-4-url) top left no-repeat !important;
- }
- .about_green_bg {
- background: var(--bg-768-9-url) top right no-repeat !important;
- }
- .head.product {
- background: var(--bg-768-3-url) top left no-repeat !important;
- }
- .head.price {
- background: var(--bg-768-8-url) top left no-repeat !important;
- }
- .head.dow {
- background: var(--bg-768-7-url) top left no-repeat !important;
- }
- .head.solutions {
- background: var(--bg-768-5-url) top right no-repeat !important;
- }
- .team.solutions {
- background: var(--bg-768-6-url) top right no-repeat !important;
- }
- .details-con .pic {
- margin-bottom: 36px;
- }
- .choose-con-item-h5,
- .app-h4,
- .scenario-app-h5 {
- font-size: 18px !important;
- }
- .choose-con-item-h6,
- .app-h6,
- .company-profile-h6,
- .scenario-app-h6,
- .footer-t-contact-h6,
- .update-h5,
- .performance-h6,
- .manage-h6,
- .download-ul-item .txt,
- .update-item .time,
- .price-card-unit,
- .price-card-h6 {
- font-size: 15px !important;
- }
- .details-ul-item {
- margin-bottom: 32px !important;
- }
- .details-ul-item:last-child {
- margin-bottom: 0 !important;
- }
- .serial-number {
- font-size: 32px !important;
- }
- .details-ul-1280,
- .details-con {
- flex-direction: column;
- justify-content: center;
- align-items: center;
- padding: 30px 24px !important;
- }
- .details-ul-1280 .details-ul-item,
- .update-ul,
- .update-l {
- width: 100% !important;
- }
- .details-con .details-ul {
- margin-left: 0 !important;
- }
- .performance-con .pic {
- margin-top: 40px !important;
- }
- .performance-ul-item {
- width: auto !important;
- margin-bottom: 40px;
- }
- .app-bg {
- margin-bottom: 16px !important;
- }
- .app-h4 {
- margin-bottom: 12px !important;
- }
- .app-ul-item {
- width: auto !important;
- margin-bottom: 36px !important;
- }
- .team-ul-item {
- padding: 30px 24px !important;
- }
- .download-ul {
- flex-wrap: wrap !important;
- justify-content: center !important;
- padding-bottom: 32px !important;
- padding-top: 12px !important;
- }
- .download-ul-item {
- margin-bottom: 24px;
- }
- .download-ul-item .normal,
- .download-ul-item .hover.radius,
- .download-ul-item .hover {
- width: 120px !important;
- height: 120px !important;
- }
- .download-ul-item .icon {
- height: 36px !important;
- }
- .download-ul-item:nth-of-type(odd) {
- margin-right: 24px;
- }
- .update-bg-svg {
- background: none !important;
- }
- .update-r {
- margin-bottom: 56px;
- margin-top: 28px;
- }
- .logs-l,
- .help-l,
- .plans-ul-t,
- .plans-ul-b {
- display: none !important;
- }
- .logs-r,
- .help-r {
- border: none !important;
- padding-left: 0 !important;
- }
- .logs-h1,
- .plans-tit-h2 {
- font-weight: 600;
- font-size: 22px !important;
- line-height: 28px !important;
- }
- .company-profile-h1 {
- margin-bottom: 34px !important;
- margin-top: 40px !important;
- font-weight: 500 !important;
- font-size: 22px !important;
- line-height: 28px !important;
- }
- .logs-h4 {
- font-size: 18px !important;
- line-height: 22px !important;
- }
- .r-ol-item,
- .help-h6,
- .l-ul-item .txt {
- font-weight: 400;
- font-size: 15px !important;
- line-height: 24px !important;
- }
- .logs {
- margin: 0 !important;
- padding-bottom: 56px !important;
- }
- .help {
- margin: 0 !important;
- padding-bottom: 20px !important;
- }
- .l-ul-item {
- padding: 12px 0 !important;
- }
- .logs-h5 {
- margin-top: 10px;
- font-weight: 400 !important;
- font-size: 18px !important;
- line-height: 20px !important;
- }
- .help-pic1 {
- height: calc(50vw / 2 + 10px) !important;
- padding-left: 14px !important;
- }
- .help-pic1-tips-h2 {
- font-weight: 500 !important;
- font-size: 16px !important;
- line-height: 24px !important;
- margin-bottom: 8px !important;
- }
- .help-pic1-tips-h6 {
- font-weight: 400 !important;
- font-size: 12px !important;
- line-height: 16px !important;
- }
- .help-pic1-tips {
- max-width: 160px !important;
- }
- #help_pic2 {
- height: calc(60vw - 40px) !important;
- }
- #help_pic3 {
- height: calc(80vw - 60px) !important;
- }
- .price-card {
- flex-direction: column !important;
- }
- .price-card-item {
- width: 100% !important;
- height: 100% !important;
- }
- .price-card-item:last-of-type {
- margin-bottom: 0 !important;
- }
- .plans-layout {
- padding: 56px 0 !important;
- }
- .company-profile {
- width: 100% !important;
- margin-top: 56px;
- padding-top: 0 !important;
- }
- .company-profile-layout,
- .footer-t-layout {
- flex-direction: column !important;
- }
- .company-profile-arcs {
- bottom: -20px !important;
- left: 0 !important;
- }
- .company-h2 {
- font-weight: 500 !important;
- font-size: 20px !important;
- line-height: 30px !important;
- }
- .company-h6 {
- font-weight: 400 !important;
- font-size: 12px !important;
- line-height: 15px !important;
- }
- .company-ul {
- width: 100% !important;
- padding: 24px 0 !important;
- margin-top: 12px !important;
- }
- .company-ul-item {
- padding: 0 24px !important;
- }
- .scenario-app,
- .footer-t {
- padding: 56px 0 !important ;
- }
- .scenario-app-h1,
- .footer-t-h1 {
- font-weight: 500 !important;
- font-size: 22px !important;
- line-height: 28px !important;
- }
- .scenario-app-ul-item .scenario-app-h6 {
- text-align: start !important;
- }
- .scenario-app-ul-item,
- .footer-t-l {
- width: 100% !important;
- }
- .from-ul {
- width: calc(100vw - 40px) !important;
- margin-top: 8px !important;
- }
- .app-con,
- .team-con {
- padding-top: 0 !important;
- padding-bottom: 24px !important;
- }
- .card-ul-item-txt,
- .prooduct-list .prooduct-list-item,
- .details-con {
- opacity: 1 !important;
- animation: normal !important;
- }
- .details-con {
- transform: translateY(0) !important;
- }
- .company-profile-layout {
- padding-bottom: 56px !important;
- }
- .footer-t-h1 {
- margin-bottom: 32px !important;
- }
- .logs-layout,
- .team-ul-item,
- .scenario-app-ul-item {
- height: auto !important;
- }
- .logs-r {
- height: auto !important;
- overflow: auto !important;
- }
- .manage-svg {
- width: 100% !important;
- }
- .manage-bg {
- width: 100% !important;
- margin-top: 0 !important;
- }
- .manage-tips {
- top: 42px !important;
- right: 0 !important;
- width: auto !important;
- }
- .manage-tips-txt {
- font-size: 16px !important;
- line-height: 20px !important;
- }
- .manage-svg-h2 {
- bottom: 52px;
- right: 22px;
- width: 45% !important;
- font-size: 28px !important;
- line-height: 40px !important;
- }
- .prooduct-list .prooduct-list-item.bot {
- width: auto !important;
- }
- .head.product {
- background-size: contain !important;
- }
- .details-ul-item:nth-of-type(4) {
- margin-bottom: 32px !important;
- }
- .card-h1 {
- margin-bottom: 40px !important;
- }
- .card-con-layout {
- margin-top: 0 !important;
- }
- .bg-style {
- background: transparent !important;
- }
- .logo {
- width: 32px !important;
- }
- .dootask {
- margin-left: 12px !important;
- }
- .price-card-item > .price-card-h6 {
- height: auto !important;
- margin-bottom: 20px !important;
- }
- .scenario-app-layout > .scenario-app-h6 {
- margin-bottom: 48px !important;
- }
- .update-h1 {
- margin-bottom: 28px !important;
- }
- .logs-t-768 {
- margin-top: 96px !important;
- }
- #help-pic1-svg {
- width: 44%;
- }
- .en_choose_768 {
- min-height: 378px !important;
- }
- .plans-ol-768-content .plans-ol-item-h6:first-child {
- color: var(--txt-gray-color) !important;
- }
- .plans-ol-768-content .plans-ol-item-h6:last-child {
- color: var(--txt-4ca5) !important;
- }
- .scenario-app-ul-item-svg {
- width: 140px !important;
- }
- .scenario-app-ul-item:hover,
- .price-card-item:hover,
- .team-ul-item:hover {
- transform: none !important;
- }
- .topics-tit,
- .topics-btn,
- .topics-h4,
- .ten_img,
- .details,
- .price-animate-box {
- opacity: 1 !important;
- animation: normal !important;
- transform: none !important;
- }
- .about-animate-box,
- .solutions-animate-box,
- .home-animate-box,
- .dow-animate-box,
- .product-animate-box,
- .product-animate-box2 {
- opacity: 1 !important;
- transform: none !important;
- }
- .about-animate-box.animate,
- .price-animate-box.animate,
- .solutions-animate-box.animate,
- .home-animate-box.animate,
- .dow-animate-box.animate,
- #arc {
- animation: normal !important;
- }
- .drawer-ul {
- overflow: auto;
- height: 82vh;
- }
- .home_pic7_768 {
- width: 100%;
- }
- .help-l-ul {
- width: auto !important;
- }
- .footer_copyright {
- flex-direction: column;
- }
- #cookieConsent {
- width: 90% !important;
- right: 0 !important;
- left: 0;
- margin: 0 auto;
- }
- .download-other-btn {
- margin-top: 0px !important;
- margin-bottom: 56px !important;
- }
-}
diff --git a/public/site/css/side_nav.css b/public/site/css/side_nav.css
deleted file mode 100644
index 8cdac9cbe..000000000
--- a/public/site/css/side_nav.css
+++ /dev/null
@@ -1,140 +0,0 @@
-@font-face {
- font-family: "official.iconfont";
- src: url("../font/side_nav_font.woff");
- font-weight: normal;
- font-style: normal
-}
-
-.side_nav{
- position: fixed;
- right: 20px;
- bottom: 135px;
- z-index: 100;
-}
-.side_nav .side_toolbars{
- width: 48px;
- padding: 4px;
- box-sizing: border-box;
- border-radius: 60px;
- background-color: var(--pop-bg-color);
- color: var(--text-color);
- box-shadow: var(--pop-box-shadow);
-}
-.side_nav .side_toolbars .side_toolbar_item{
- display: flex;
- width: 40px;
- height: 40px;
- justify-content: center;
- align-items: center;
- border-radius: 50%;
- cursor: pointer;
- position: relative;
-}
-.side_nav .side_toolbars .side_toolbar_item .toolbar_font{
- font-size: 24px;
- height: 24px;
- color: var(--text-color);
-}
-.side_nav .side_toolbars .side_toolbar_item .toolbar_font::after{
- display: inline-block;
- font-family: "official.iconfont";
- font-style: normal;
- font-weight: normal;
- line-height: 1;
- -webkit-font-smoothing: antialiased;
-}
-.side_nav .side_toolbars .side_toolbar_item .font_phone::after{
- content: "\EA25";
-}
-.side_nav .side_toolbars .side_toolbar_item .font_qrcode::after{
- content: "\EA28";
-}
-.side_nav .side_toolbars .side_toolbar_item .toolbar_tooltip{
- position: absolute;
- right: 40px;
- top: 2px;
- transform-origin: right center;
- white-space: nowrap;
- width: fit-content;
- display: none;
- background-color: var(--code-bg-color);
- color: #fff;
- margin-right: 12px;
- border-radius: 4px;
- padding: 10px;
- z-index: 2000;
- font-size: 12px;
- line-height: 1.2;
- min-width: 10px;
- word-wrap: break-word;
- text-align: center;
-}
-.side_nav .side_toolbars .side_toolbar_item .toolbar_tooltip .toolbar_whtasapp{
- width: 120px;
- height: 120px;
- background-image: url('../img/side_nav_whatsapp.png');
- background-repeat: no-repeat;
- background-size: cover;
-}
-.side_nav .side_toolbars .side_toolbar_item .toolbar_tooltip .toolbar_qrcode{
- width: 120px;
- height: 120px;
- background-image: url('../img/side_nav_wechat.png');
- background-repeat: no-repeat;
- background-size: cover;
-}
-.side_nav .side_toolbars .side_toolbar_item .toolbar_tooltip .tooltip_arrow{
- position: absolute;
- display: block;
- width: 0;
- height: 0;
- border-color: transparent;
- border-style: solid;
- right: -5px;
- top: 11px;
- border-width: 6px;
- border-right-width: 0;
- border-left-color: var(--code-bg-color);
-}
-.side_nav .side_to_top{
- width: 48px;
- height: 48px;
- background: #fff;
- margin-top: 16px;
- border-radius: 50%;
- cursor: pointer;
- position: relative;
- display: none;
- background-color: var(--pop-bg-color);
- color: var(--text-color);
- box-shadow: var(--pop-box-shadow);
-}
-.side_nav .side_to_top .side_to_top_wrapper{
- height: 40px;
- width: 40px;
- padding: 4px;
- display: flex;
- box-sizing: border-box;
- border-radius: 50%;
- align-items: center;
- justify-content: center;
- position: absolute;
- top: 50%;
- left: 50%;
- transform: translate(-50%, -50%);
-}
-.side_nav .side_to_top .side_to_top_wrapper svg{
- transform: rotate(180deg);
- fill: var(--text-color);
- height: 24px;
- width: 24px;
-}
-.font_whatsapp svg{
- fill: var(--text-color);
-}
-.side_nav .side_toolbars .side_toolbar_item:hover,.side_nav .side_to_top .side_to_top_wrapper:hover{
- background-color: var(--bg-hover-color);
-}
-#toolbar_tooltip_phone,#toolbar_tooltip_whtasapp,#toolbar_tooltip_qrcode{
- display: none;
-}
\ No newline at end of file
diff --git a/public/site/css/solution.css b/public/site/css/solution.css
deleted file mode 100644
index 7b6755838..000000000
--- a/public/site/css/solution.css
+++ /dev/null
@@ -1,116 +0,0 @@
-/* 头部样式 */
-.head {
- text-align: center;
- background: var(--bg-5-url) top center no-repeat;
- background-size: cover;
-}
-.app {
- position: relative;
- z-index: 2;
- background-color: var(--bg-fa-color);
-}
-.bg-style {
- background: var(--bg-6-url) top left no-repeat;
-}
-.app-con {
- padding: 120px 0px;
- width: 100%;
- max-width: 1280px;
- margin: 0 auto;
- position: relative;
- z-index: 2;
-}
-.app-tit {
- display: flex;
- justify-content: center;
- align-items: center;
- flex-direction: column;
-}
-.app-h1 {
- color: var(--text-color);
-}
-.app-h4 {
- color: var(--txt-191a15-color);
-}
-.app-ul {
- display: flex;
- flex-wrap: wrap;
- align-items: flex-start;
- justify-content: space-between;
-}
-.app-ul-item {
- width: 624px;
-}
-.app-bg-box {
- max-width: 100%;
- max-height: 100%;
- overflow: hidden;
- border-radius: 16px;
- margin-bottom: 32px;
-}
-.app-bg {
- display: block;
- height: auto;
- transform: scale(1);
- transition: all 2s;
-}
-.app-bg:hover {
- transform: scale(1.15);
-}
-.app-h5 {
- color: var(--txt-gray-color);
-}
-.app-h6 {
- color: var(--txt-gray-color);
-}
-.team {
- background: var(--bg-7-url) top right no-repeat;
- background-size: contain;
-}
-.team-con {
- padding: 120px 0px;
- width: 100%;
- max-width: 1280px;
- margin: 0 auto;
-}
-.team-tit {
- text-align: center;
- color: var(--text-color);
-}
-.team-ul {
- display: flex;
- align-items: flex-start;
- justify-content: space-between;
-}
-.team-ul-item {
- padding: 24px;
- width: 357px;
- transition: all 0.3s ease-in-out;
- background-color: var(--choose-bg-hover-color);
- box-shadow: 0px 2px 8px 4px rgba(0, 0, 0, 0.05);
- border-radius: 12px;
- z-index: 2;
-}
-.team-ul-item:hover {
- transform: translateY(-16px);
-}
-.team-ul-item-en {
- height: 358px;
-}
-.team-ul-item-zh {
- height: 234px;
-}
-.team-icon {
- display: block;
- width: 48px;
-}
-/* 底部样式 */
-footer {
- width: 100%;
- z-index: 2;
- position: relative;
- background-color: var(--bg-color);
-}
-.footer-layout {
- border-top: var(--border-color) solid 1px;
-}
diff --git a/public/site/en/about.html b/public/site/en/about.html
deleted file mode 100644
index d60e7bd6b..000000000
--- a/public/site/en/about.html
+++ /dev/null
@@ -1,766 +0,0 @@
-
-
-
-
-
- About Us - DooTask
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- About our company
-
-
- Focusing on the field of network security, we
- are committed to providing users with a full
- range of network security solutions.
-
-
-
-
- 2020
-
-
- Company founded
-
-
-
-
-
- 10
-
- +
-
-
- Team experience
-
-
-
-
-
- 99
-
- %
-
-
- Customer staisfaction
-
-
-
-
-
-
-
-
-
-
-
-
- Company profile
-
-
-
-
-
- Since its establishment, Guangxi Hitosea
- Information Technology Co., Ltd.(HITOSEA)
- has been focusing on the innovation of
- cutting-edge technologies in the field of
- network security, providing network security
- products and services including border
- security, cloud security, data security,
- intranet security, and is committed to
- providing users with comprehensive, smarter,
- and zero-disturbance network security
- solutions, and is a dynamic technology
- company with a young and energetic team.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/public/site/en/ad.html b/public/site/en/ad.html
deleted file mode 100644
index 9553b6ea1..000000000
--- a/public/site/en/ad.html
+++ /dev/null
@@ -1,911 +0,0 @@
-
-
-
-
-
-
- DooTask - The most popular open source project collaboration tool
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Please scan the QR code to add our WeChat customer service
- representative for purchase
-
-
-
-
-
-
-
-
-
- We use first party cookies to improve your browsing
- experience on our website, to analyze our website traffic
- and to understand where our visitors are coming from. If you
- choose to opt-out, only strictly necessary cookies will be
- used.
Our cookie policy
-
-
-
- I decline
-
-
- Allow cookies
-
-
-
-
-
-
-
-
-
-
-
- DooTask
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ,Lightweight
-
- Task Management Tool
-
-
-
- Empower the team to advance projects
- efficiently, making work simpler.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Free
-
-
-
- 0
-
- /month
-
-
-
- Up to 3 People
-
-
-
-
-
-
-
Popular
-
- 10-License Pro
-
-
-
- ¥5,800
-
-
-
-
- ¥8,800
-
-
-
-
-
-
-
Hot
-
- Unlimited Pro
-
-
-
- ¥16,800
-
-
-
-
- ¥18,888
-
-
-
-
-
-
-
-
-
-
-
-
- Why Choose DooTask?
-
-
-
-
-
-
-
-
-
-
-
-
- Project Management
-
-
- Supports various project management
- methodologies such as Agile, Crystal,
- Kanban, and more, suitable for managing
- projects of all sizes and types. Users
- can utilize DooTask’s project management
- tools, including task assignment,
- progress tracking, resource allocation,
- and more to manage the entire project.
-
-
-
-
-
-
-
-
-
- Team Collaboration
-
-
- DooTask’s rich and practical tools
- facilitate communication and
- collaboration among team members,
- enhancing work efficiency. For instance,
- team members can use DooTask’s document
- collaboration tools, online mind maps,
- flowcharts, and more for collaborative
- work.
-
-
-
-
-
-
-
-
-
- Data Security Protection
-
-
- DooTask uses asymmetric encryption for
- messaging to maximize user information
- security. It also features a powerful
- permission system to customize access
- and actions in project management based
- on user roles and duties.
-
-
-
-
-
-
-
-
-
- Customizable Freely
-
-
- DooTask is a completely open-source
- tool that users can modify and customize
- freely, avoiding the additional costs
- associated with commercial software
- subscriptions.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/en/cookie.html b/public/site/en/cookie.html
deleted file mode 100644
index 020c05eca..000000000
--- a/public/site/en/cookie.html
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
-
-
- Cookie Policy - DooTask
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/en/cookie.md b/public/site/en/cookie.md
deleted file mode 100644
index d86817f98..000000000
--- a/public/site/en/cookie.md
+++ /dev/null
@@ -1,80 +0,0 @@
-# Cookies Policy
-
-Last updated: August 10, 2023
-
-This Cookies Policy explains what Cookies are and how We use them. You should read this policy so You can understand what type of cookies We use, or the information We collect using Cookies and how that information is used. This Cookies Policy has been created with the help of the [Cookies Policy Generator](https://www.termsfeed.com/cookies-policy-generator/).
-
-Cookies do not typically contain any information that personally identifies a user, but personal information that we store about You may be linked to the information stored in and obtained from Cookies. For further information on how We use, store and keep your personal data secure, see our Privacy Policy.
-
-We do not store sensitive personal information, such as mailing addresses, account passwords, etc. in the Cookies We use.
-
-# Interpretation and Definitions
-
-## Interpretation
-
-The words of which the initial letter is capitalized have meanings defined under the following conditions. The following definitions shall have the same meaning regardless of whether they appear in singular or in plural.
-
-## Definitions
-
-For the purposes of this Cookies Policy:
-
-- __Company__ (referred to as either "the Company", "We", "Us" or "Our" in this Cookies Policy) refers to Guangxi Hitosea Information Technology Co, No. 1411, 14/F, Building 1, Wuxiang Hangyang City, Liangqing District, Nanning City, Guangxi Zhuang Autonomous Region, China.
-- __Cookies__ means small files that are placed on Your computer, mobile device or any other device by a website, containing details of your browsing history on that website among its many uses.
-- __Website__ refers to DooTask, accessible from [ https://www.dootask.com/]( https://www.dootask.com/)
-- __You__ means the individual accessing or using the Website, or a company, or any legal entity on behalf of which such individual is accessing or using the Website, as applicable.
-
-# The use of the Cookies
-
-## Type of Cookies We Use
-
-Cookies can be "Persistent" or "Session" Cookies. Persistent Cookies remain on your personal computer or mobile device when You go offline, while Session Cookies are deleted as soon as You close your web browser.
-
-We use both session and persistent Cookies for the purposes set out below:
-
-- __Necessary / Essential Cookies__
-
- Type: Session Cookies
-
- Administered by: Us
-
- Purpose: These Cookies are essential to provide You with services available through the Website and to enable You to use some of its features. They help to authenticate users and prevent fraudulent use of user accounts. Without these Cookies, the services that You have asked for cannot be provided, and We only use these Cookies to provide You with those services.
-
-- __Functionality Cookies__
-
- Type: Persistent Cookies
-
- Administered by: Us
-
- Purpose: These Cookies allow us to remember choices You make when You use the Website, such as remembering your login details or language preference. The purpose of these Cookies is to provide You with a more personal experience and to avoid You having to re-enter your preferences every time You use the Website.
-
-
-
-
-## Your Choices Regarding Cookies
-
-If You prefer to avoid the use of Cookies on the Website, first You must disable the use of Cookies in your browser and then delete the Cookies saved in your browser associated with this website. You may use this option for preventing the use of Cookies at any time.
-
-If You do not accept Our Cookies, You may experience some inconvenience in your use of the Website and some features may not function properly.
-
-If You'd like to delete Cookies or instruct your web browser to delete or refuse Cookies, please visit the help pages of your web browser.
-
-- For the Chrome web browser, please visit this page from Google: [https://support.google.com/accounts/answer/32050](https://support.google.com/accounts/answer/32050)
-
-- For the Internet Explorer web browser, please visit this page from Microsoft: [http://support.microsoft.com/kb/278835](http://support.microsoft.com/kb/278835)
-
-- For the Firefox web browser, please visit this page from Mozilla: [https://support.mozilla.org/en-US/kb/delete-cookies-remove-info-websites-stored](https://support.mozilla.org/en-US/kb/delete-cookies-remove-info-websites-stored)
-
-- For the Safari web browser, please visit this page from Apple: [https://support.apple.com/guide/safari/manage-cookies-and-website-data-sfri11471/mac](https://support.apple.com/guide/safari/manage-cookies-and-website-data-sfri11471/mac)
-
-For any other web browser, please visit your web browser's official web pages.
-
-## More Information about Cookies
-
-You can learn more about cookies here: [All About Cookies by TermsFeed](https://www.termsfeed.com/blog/cookies/).
-
-## Contact Us
-
-If you have any questions about this Cookies Policy, You can contact us:
-
-
-- By email: service@hitosea.com
\ No newline at end of file
diff --git a/public/site/en/download.html b/public/site/en/download.html
deleted file mode 100644
index c2cc725c2..000000000
--- a/public/site/en/download.html
+++ /dev/null
@@ -1,655 +0,0 @@
-
-
-
-
-
- Download Center - DooTask
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Download DooTask client
-
-
- Also supports iOS, Android, macOS, Windows
- versions
-
-
-
Other
- Versions
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/public/site/en/help.html b/public/site/en/help.html
deleted file mode 100644
index 8f94431d0..000000000
--- a/public/site/en/help.html
+++ /dev/null
@@ -1,1793 +0,0 @@
-
-
-
-
-
- Help Center - DooTask
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- User Manual
-
-
- Just starting out with DooTask?
- No problem, this primer is for
- you!
-
-
-
-
-
-
- What is DooTask?
-
-
- DooTask is a lightweight open
- source online project task
- management tool that provides
- various document collaboration
- tools, online mind mapping,
- online flowcharting, project
- management, task distribution,
- instant IM, file management and
- other tools. It helps teams to
- advance their projects
- efficiently and makes work
- easier.
-
-
-
-
- What is task management?
-
-
- Task management is the process
- of monitoring your project's
- tasks through their various
- stages from start to finish.
- This involves actively making
- decisions for your tasks to
- accommodate changes that can
- occur real-time, with your end
- goal being the successful
- completion of your tasks.
- Project task management also
- means managing all aspects of a
- task like budget, time, scope,
- resources, recurrence and so on
- effectively.
-
-
-
-
-
- How to manage tasks?
-
-
- Here are some key steps involved
- in task management:
-
-
- Prioritization: Whatever tool you use to manage
- your tasks, whether a simple
- to-do list or a comprehensive
- project task management tool,
- the most important aspect of
- task management is
- prioritization. This helps in
- efficiently completing all the
- tasks involved while maintaining
- the planned constraints.
-
-
- Milestone tracking: The findings of this study
- also
- show that establishing clear
- goals is essential to the
- successful completion of a
- project. Although for task
- management an end goal isn't
- necessary, defining milestones
- helps motivate teams to execute
- tasks successfully.
-
-
- Schedule management: Making sure your task gets
- completed on time is something
- that has an impact on the
- overall project health.
- Attributing the right time frame
- by estimating the effort
- involved is key here.
-
-
-
-
-
- How to choose the right task
- management software?
-
-
- Depending on your purpose, price
- range, existing work environment
- and preferred platform, there
- are several project and task
- management tools available. From
- simple checklists which may not
- even require an internet
- connection to a full-fledged
- project task management
- software, the capabilities are
- varied. There are also software
- options that fit specific
- industries like construction, IT
- or education or specific
- functions like crm task
- management.
-
-
-
-
- Registered Account
-
-
- (1) Click [Register Account] to
- enter the registration page;
-
-
-
- (2) In the corresponding input
- box on the registration page,
- enter your email
- address/password/invitation code
- respectively to create a DooTask
- account, and click [Register] to
- complete the account
- registration.
-
-
-
-
-
- Login to your account
-
-
- Account Password Login
-
-
- (1) Enter your email
- address/password in the
- corresponding input box on the
- login page;
-
-
- (2) Click [Login] to access your
- account.
-
-
-
- Scan Code To Login
-
-
- (1) Click the green QR code at
- the top right corner of the
- login page to enter the code
- scanning login page;
-
-
-
- (2) Use DooTask Mobile to scan
- the QR code to log in to your
- account.
-
-
-
-
-
- Task Reminder Robot
-
-
- Open the [Message] button in the
- left navigation bar of DooTask,
- you can view the "Task
- Reminder", the task reminder
- robot according to the
- associated task change status
- real-time update reminder, such
- as the new task prompts, task
- modification prompts, task
- expiration prompts, and so on.
-
-
-
-
-
- Check-in And Clock-out Robot
-
-
- Open the [Message] button in the
- left navigation bar of DooTask,
- you can view the "Check-in and
- Punch-in", Check-in and Punch-in
- Robot automatically records the
- employee's daily check-in and
- punch-in data to help users
- achieve effective work progress
- management and time planning.
-
-
-
-
-
- Personal Information Settings
-
-
- (1) Click [Avatar] in the upper
- right corner of the user → click
- [Personal Settings] to select
- the personal settings page, you
- can modify your personal
- avatar/telephone/nickname/position
- (title) and other information;
-
-
- (2) Click [Submit] to confirm
- the changes and [Reset] to clear
- the current settings.
-
-
-
-
-
- Check-in Settings
-
-
- (1) Click the user's upper-right
- corner [avatar] → click
- [Personal Settings] → click
- [Sign-in Settings], that is, to
- display the last five days of
- the sign-in record, click the
- bottom of the [View more sign-in
- data] to view the history of the
- sign-in record;
-
-
-
- (2) In the corresponding input
- box under the check-in setting
- column, enter the device MAC
- address/remarks information, and
- associate the device to connect
- to the designated router (WiFi)
- to achieve automatic check-in,
- if you need to add other
- devices, you can click [Add
- Device] to add new ones;
-
-
- (3) Click [Submit] to confirm
- the changes and [Reset] to clear
- the current settings.
-
-
-
-
-
- Shortcut Key Setting
-
-
- (1) Click [Avatar] in the upper
- right corner of the user → click
- [Personal Settings] → click
- [Shortcut Keys], you can
- customise the shortcut key
- combinations according to your
- personal habits;
-
-
- (2) Click [Save] to confirm the
- changes and [Reset] to clear the
- current settings.
-
-
-
-
-
- Language Settings
-
-
- (1) Click [Avatar] in the upper
- right corner of the user → click
- [Personal Settings] → click
- [Language Settings], click the
- drop-down icon in the box to the
- right of the selected language
- to switch between different
- languages. The system currently
- supports Simplified Chinese,
- Traditional Chinese, English,
- Korean, Japanese, German, French
- and Indonesian;
-
-
- (2) Click [Submit] to confirm
- the changes and [Reset] to clear
- the current settings.
-
-
-
-
-
- Theme Setting
-
-
- (1) Click the user's upper-right
- corner [avatar] → click
- [Personal Settings] → click
- [Theme Settings], click to
- select the theme of the right
- side of the box drop-down icon,
- you can switch to the
- corresponding theme, the system
- currently supports the bright /
- dark two themes;
-
-
- (2) Click [Submit] to confirm
- the changes and [Reset] to clear
- the current settings.
-
-
-
-
-
- Password Setting
-
-
- (1) Click [Avatar] in the upper
- right corner of the user → click
- [Personal Settings] → click
- [Password Settings], enter the
- user's old password → enter the
- user's new password → enter the
- user's new password again to
- confirm;
-
-
- (2) Click [Submit] to confirm
- the changes and [Reset] to clear
- the current settings.
-
-
-
-
-
- Modify Mailbox
-
-
- (1) Click [Avatar] in the upper
- left corner of the user → click
- [Personal Settings] → click
- [Modify Mailbox], enter the new
- mailbox address and click [Send
- Verification Code] and enter the
- verification code;
-
-
- (2) Click [Submit] to confirm
- the changes and [Reset] to clear
- the current settings.
-
-
-
-
-
- Multi-style project management
- templates
-
-
- DooTask template to meet a
- variety of team collaboration
- scenarios, while supporting
- custom templates to meet the
- team's personalised scenario
- management needs, you can
- intuitively view the progress of
- the project, team collaboration
- is more convenient.
-
-
-
-
- Visualisation Project Office
-
-
- Use multiple views such as
- Kanban, tables, and lists to
- keep the overall project at a
- glance; members have the
- flexibility to filter, sort, and
- group tasks to prioritise the
- essentials and stay focused.
-
-
-
-
- Real-time monitoring of project
- management developments
-
-
- Real-time changes in project
- dynamics, specific task changes
- record reminders, so that the
- team to control the overall
- project process, the development
- of appropriate plans.
-
-
-
-
- Create A Project
-
-
- (1) Click [New Project] at the
- bottom left corner of the
- DooTask page;
-
-
-
- (2) In the new project pop-up
- window that appears, enter the
- project name (required and can
- not be less than two words) ¡ú
- select the project template
- (default blank template) ¡ú
- select whether to open the
- workflow;
-
-
- (3) Click [Add] to complete the
- project creation.
-
-
-
-
-
- Multi-view Task List
-
-
- (1) Open DooTask page and click
- the corresponding project name
- button on the left side to
- display the list of all tasks
- belonging to the project;
-
-
-
- (2) Click the corresponding
- [Switch View] icon in the upper
- left corner to view the task
- classification/task
- priority/responsible person/due
- time information of the
- corresponding task.
-
-
-
-
-
- Completed Tasks Display
-
-
- (1) Under normal circumstances,
- "Completed Tasks" will be
- automatically hidden in the task
- list and will not be displayed;
-
-
- (2) Check the [Show Completed]
- icon in the upper-right corner
- of the project task list to view
- the "Completed Tasks".
-
-
-
-
-
- Project Dynamic Display
-
-
- (1) On the corresponding project
- page, click the [Project
- Dynamics] icon in the upper-left
- corner to view the operation
- history of project members
- according to the date.
-
-
-
-
-
-
- Creating Tasks
-
-
- (1) Select the project name to
- enter the task list, and click
- the [New Task] icon in the upper
- left corner of the corresponding
- task list;
-
-
-
- (2) Enter task
- description/detailed
- description, select task
- priority/task time/task
- leader/visibility and other
- information in the corresponding
- input box, and add subtasks as
- required;
-
-
- (3) Click [Add Task] in the
- lower right corner of the Create
- Task page to complete the
- creation of a new task.
-
-
-
-
-
- Mission Dashboard
-
-
- Click [Dashboard] on the left
- side of the DooTask page to
- display task statistics (showing
- tasks due today, overdue tasks,
- and pending tasks).
-
-
-
-
-
- Duration Of The Mission
-
-
- Select the task that needs to be
- modified, open the task detail
- page, click [Deadline] to modify
- the task time according to the
- actual situation.
-
-
-
-
-
- Task visibility
-
-
- Select the corresponding task,
- open the task detail page, and
- click [Visibility] to select
- project personnel/task
- personnel/specified members to
- be visible as needed.
-
-
-
-
-
- Task Priority
-
-
- In the task creation window and
- task details page, you can set
- the task priority as needed. The
- system currently supports four
- major task priorities: important
- and urgent, important and not
- urgent, urgent and not
- important, and not important and
- not urgent. (You can change the
- priority according to the task
- situation)
-
-
-
-
-
- Citing Associated Documents and
- Tasks
-
-
- Select the corresponding task,
- open the task detail page, enter
- the associated file link/task in
- the input box of the chat window
- on the right side of the page,
- and click the [Send] icon to
- quote it.
-
-
-
-
-
- Mission Affiliates
-
-
- Select the corresponding task,
- open the task details page, in
- the chat window on the right
- side of the page in the input
- box @ the task associated with
- the personnel account nickname,
- click on the [Send] icon, the
- members of the task instantly
- enter the group chat.
-
-
-
-
-
- Task Force Meeting
-
-
- Select the corresponding task,
- open the task details page, and
- click the [Expand] icon at the
- bottom right of the chat window
- on the right side of the page to
- launch a group video/voice
- conference for all members in
- the task group chat.
-
-
- Group video/voice conferencing
- can be initiated for all members
- within a task group chat.
-
-
-
-
-
- Project Dynamic Display
-
-
- In the corresponding task detail
- page, click the [Task Dynamics]
- icon in the upper right corner
- to view the operation history of
- task members according to the
- date.
-
-
-
-
-
-
- Corporate Governance
-
-
- Helping organisations to their
- corporate goals, connecting
- objectives, key results and
- individual work, and working
- together to drive strategy to
- fruition and goals to be
- achieved;
-
-
- Through collaborative authoring,
- the progress, completion status
- and schedule of all enterprise
- work are shared to facilitate
- the flow of information, so that
- all staff can access key project
- information, follow up in a
- timely manner and promote
- cross-departmental
- collaboration.
-
-
-
-
- Product Management
-
-
- Customise the workflow of the
- product development process,
- assign tasks to different roles
- at different stages to promote
- the product development process;
- archive the history of each
- completed project and task, so
- that it is easy to call or
- discuss at any time, forming a
- closed loop of knowledge
- precipitation to reuse.
-
-
-
-
- Personnel Administration
-
-
- Obtain multi-dimensional
- corporate data through data
- visualisation statistical
- reports to gain a comprehensive
- understanding of employee
- performance and make performance
- evaluation more objective and
- fair; use announcements to
- release notices, arrange company
- activities, deliver corporate
- decisions, facilitate the
- shaping of corporate culture and
- make employees more engaged.
-
-
-
-
- Working Report
-
-
- 1 My debriefing:
-
-
- Report Search
-
-
- Click on the user's avatar in
- the upper-left corner → click on
- [Work Reports] → click on [My
- Reports], select the type of
- report/reporting time that needs
- to be queried on the upper-left
- side of the page, and click on
- [Search] to instantly display
- the relevant report data.
-
-
-
- Reporting Record Display
-
-
- Click the user's avatar in the
- upper-left corner → click [Work
- Reports] → click [My Reports],
- and you can view the
- name/type/reporting
- time/reporting object/operation
- and other information of the
- corresponding report on the Work
- Reports page.
-
-
-
- Additional Reports
-
-
- (1) Click on the user's avatar
- in the upper-left corner → Click
- on [Work Reports] → Click on
- [Add Report];
-
-
- (2) On the New Report page,
- select the report type (select
- Weekly/Daily)/reporting object
- (you can directly use the object
- of the last report), enter the
- corresponding report content,
- and click [Submit] to complete
- the report.
-
-
-
-
- 2 Report received:
-
-
- Report Search
-
-
- Click on the user's avatar in
- the upper-left corner → click on
- [Work Reports] → click on
- [Received Reports], select the
- keywords/reporting
- type/reporting time that you
- need to query on the upper-left
- side of the page, and click on
- [Search] to instantly display
- the relevant report data.
-
-
-
- Reporting Record Display
-
-
- Click the user's avatar in the
- upper-left corner → click [Work
- Reports] → click [Received
- Reports], and you can view the
- title/type/receipt
- time//operation of the
- corresponding report on the Work
- Reports page.
-
-
-
-
-
- Data Dxport
-
-
- Click the user's avatar in the
- upper-left corner → click [Team
- Management], and select [Export
- Task Statistics] / [Export
- Overdue Tasks] / [Export
- Approval Data] / [Export
- Check-In Data] according to your
- needs to export the associated
- data records.
-
-
-
-
-
- New Sectors
-
-
- (1) Click on the user's avatar
- in the upper-left corner → Click
- on the "Team Management" option
- in the [Team Management] list,
- and then click on [New
- Department] in the lower-left
- corner of the page;
-
-
-
- (2) Enter the name of the
- department in the New Department
- pop-up window that appears →
- Select the parent department →
- Add the department head → Choose
- to create a departmental group
- chat or use an existing group
- chat;
-
-
- (3) Click [New] to complete the
- creation of a new department.
-
-
-
-
-
- Search For Members
-
-
- Click on the user's avatar in
- the upper-left corner → Click on
- the "Team Management" option in
- the [Team Management] list,
- select the
- keywords/identity/on-the-job
- status/email authentication that
- you need to query at the top of
- the page, and then click on
- [Search] to display the relevant
- personnel information.
-
-
-
-
-
- Team Member Operation
-
-
- Click on the user's avatar in
- the upper-left corner → Click on
- the "Team Management" option in
- the [Team Management] list,
- click on the corresponding
- personnel information
- [Operation] button, you can
- choose to carry out the member:
- set up as an administrator / set
- up as a temporary account /
- change the mailbox / change the
- password / modify the department
- / operation of the operation of
- the departure / deletion of the
- operation.
-
-
-
-
-
- Project Members
-
-
- (1) Select the corresponding
- project and click [Member
- Management] on the upper right
- to add/delete project members;
-
-
- (2) Click [Cancel] to cancel the
- member management settings and
- [Save] to save the member
- modification management
- operation.
-
-
-
-
-
-
- Mandate Holder
-
-
- Select the corresponding
- project, click the [New Task]
- icon in the upper right corner
- of the task list → click
- [Advanced Options] to add/delete
- the relevant task leader or
- assistants.
-
-
-
-
-
-
- File Type
-
-
- (1) Click [File] on the left
- side of the DooTask page to
- display and view project-related
- files.
-
-
-
- (2) Click the [New File] icon
- button in the upper right corner
- of the page to create a new
- folder/upload files/upload
- folders, the current system
- supports text, icons, mind maps,
- Word documents, Excel
- worksheets, PPT presentations a
- variety of file types.
-
-
-
-
-
- File Sharing
-
-
- Click [File] on the left side of
- DooTask page, select the
- corresponding folder/file and
- click the icon in the upper
- right corner, then click [Share]
- to share the folder/file to
- relevant project members.
-
-
-
-
-
- Access Authority
-
-
- (1) Click [File] on the left
- side of DooTask page, select the
- corresponding folder/file and
- then click the icon on the upper
- right corner, click [Share] to
- open the sharing settings;
-
-
- (2) According to the need to
- select all people/specified
- members visible, shared file
- read/write/read-only, click
- [Share] to complete the
- operation.
-
-
-
-
-
- Document Display
-
-
- Click [Files] on the left side
- of the DooTask page and tick the
- [Show My Only] icon at the top
- right corner of the page to view
- your personal files.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/public/site/en/index.html b/public/site/en/index.html
deleted file mode 100644
index 02a7a9025..000000000
--- a/public/site/en/index.html
+++ /dev/null
@@ -1,1130 +0,0 @@
-
-
-
-
-
-
- DooTask - The most popular open source project collaboration tool
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- We use first party cookies to improve your browsing
- experience on our website, to analyze our website traffic
- and to understand where our visitors are coming from. If you
- choose to opt-out, only strictly necessary cookies will be
- used.
Our cookie policy
-
-
-
- I decline
-
-
- Allow cookies
-
-
-
-
-
-
-
-
-
-
-
- DooTask
- ,
-
-
-
-
-
Lightweight task management tool
-
-
- Lightweight open source online project task
- management tool to help teams efficiently
- advance their projects and make work easier.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trusted by many companies
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Our Features you cab get
-
-
-
-
-
-
-
- Project Management
-
-
-
-
-
-
- Project Management
-
-
-
-
Support a variety
- of project
- management modes, suitable for
- all sizes and types of project
- management, real-time control of
- project progress, optimize
- work.
-
-
-
-
-
-
- Teamwork
-
-
-
-
-
-
- Teamwork
-
-
-
-
Provide rich and
- practical
- online document collaboration
- tools to facilitate
- communication and collaboration
- among team members and improve
- work efficiency.
-
-
-
-
-
-
- Task Synergy
-
-
-
-
-
-
- Task Synergy
-
-
-
-
A task-oriented
- approach keeps
- the team's work organized and
- ensures efficient teamwork and a
- clear division of tasks.
-
-
-
-
-
-
- Performance Measurement
-
-
-
-
-
-
- Performance Measurement
-
-
-
-
Establishing
- quantifiable
- evaluation standards, data
- presentation of work
- effectiveness, and cohesion of
- core talents.
-
-
-
-
-
-
- Communication Report
-
-
-
-
-
-
- Communication Report
-
-
-
-
Instant messaging
- and sharing
- based on work scenarios for
- better team communication.
-
-
-
-
-
-
-
-
- Our Features you cab get
-
-
-
-
-
-
-
-
-
-
- Why Choose Us
-
-
-
-
-
-
-
- 01
-
-
- Efficient and convenient team
- communication tools
-
-
- Establish groups for projects and tasks,
- work issues can be communicated in a
- timely manner to promote rapid teamwork
- and improve team efficiency.
-
-
-
-
- 02
-
-
- Powerful and easy-to-use collaborative
- document creation
-
-
- It brings together a variety of online
- tools such as documents, spreadsheets,
- thinking notes, etc., bringing together
- corporate knowledge resources in one
- place and supporting real-time
- collaborative editing by multiple
- people, making teamwork more convenient.
-
-
-
-
-
-
- 03
-
-
- Convenient and diverse project
- management templates
-
-
- Template to meet a variety of team
- collaboration scenarios, while
- supporting custom templates to meet the
- team's personalized scenario management
- needs, you can intuitively view the
- progress of the project, team
- collaboration more convenient.
-
-
-
-
- 04
-
-
- Clear and intuitive task calendar
-
-
- Easily schedule each day with a flexible
- task calendar that breaks down tasks to
- each day, allowing for clearer work
- goals and more reasonable time
- allocation.
-
-
-
-
- 05
-
-
- Support for multi-platform applications
-
-
- With multi-platform application support,
- you can track the progress of your
- project anytime, anywhere while having a
- more efficient and enjoyable experience
- at every step of your work.
-
-
-
-
-
-
- Why Choose Us
-
-
-
-
-
- 01
-
-
- Efficient and convenient team
- communication tools
-
-
- Establish groups for projects and
- tasks, work issues can be
- communicated in a timely manner to
- promote rapid teamwork and improve
- team efficiency.
-
-
-
-
- 02
-
-
- Powerful and easy-to-use
- collaborative document creation
-
-
- It brings together a variety of
- online tools such as documents,
- spreadsheets, thinking notes, etc.,
- bringing together corporate
- knowledge resources in one place and
- supporting real-time collaborative
- editing by multiple people, making
- teamwork more convenient.
-
-
-
-
- 03
-
-
- Convenient and diverse project
- management templates
-
-
- Template to meet a variety of team
- collaboration scenarios, while
- supporting custom templates to meet
- the team's personalized scenario
- management needs, you can
- intuitively view the progress of the
- project, team collaboration more
- convenient.
-
-
-
-
- 04
-
-
- Clear and intuitive task calendar
-
-
- Easily schedule each day with a
- flexible task calendar that breaks
- down tasks to each day, allowing for
- clearer work goals and more
- reasonable time allocation.
-
-
-
-
- 05
-
-
- Support for multi-platform
- applications
-
-
- With multi-platform application
- support, you can track the progress
- of your project anytime, anywhere
- while having a more efficient and
- enjoyable experience at every step
- of your work.
-
-
-
-
-
-
-
-
-
-
-
-
- Turn on your DooTask team collaboration
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/public/site/en/log.html b/public/site/en/log.html
deleted file mode 100644
index 44aa6703a..000000000
--- a/public/site/en/log.html
+++ /dev/null
@@ -1,702 +0,0 @@
-
-
-
-
-
- Logs - DooTask
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- DooTask Update Log
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/public/site/en/price.html b/public/site/en/price.html
deleted file mode 100644
index dcb52e146..000000000
--- a/public/site/en/price.html
+++ /dev/null
@@ -1,1990 +0,0 @@
-
-
-
-
-
- Pricing - DooTask
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- If you have any questions, please feel free to contact us
- using the following methods.
-
-
Landline Telephone:0771-3164099
-
Email Address:service@hitosea.com
-
-
-
-
-
-
-
-
-
-
-
- Choose your plan
-
-
- Different versions are available depending on
- the size and needs of your business
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Compare all plans
-
-
- The product supports a variety of
- application scenarios to help team
- collaboration
-
-
-
-
-
- Regular version
-
-
-
-
-
- System usage
-
-
-
-
- Number of users
-
-
- Unlimited
-
-
-
-
- Number of projects
-
-
- Unlimited
-
-
-
-
- Number of tasks
-
-
- Unlimited
-
-
-
-
- Offline Deployment
-
-
- Support
-
-
-
-
-
-
- Task Collaboration
-
-
-
-
- Multi-view presentation
-
-
-
-
-
- Custom column
-
-
-
-
-
- Visibility setting
-
-
-
-
-
- Repetition cycle
-
-
-
-
-
-
-
- Project management
-
-
-
-
- Project progress
-
-
-
-
-
- Project templates
-
-
-
-
-
- Gantt chart
-
-
-
-
-
-
-
- Application
-
-
-
-
- Approval center
-
-
-
-
-
- OKR management
-
-
-
-
-
- AI robot
-
-
-
-
-
- Meeting
-
-
-
-
-
- OKR results analysis
-
-
-
-
-
- LDAP
-
-
-
-
-
- Email
-
-
-
-
-
- App Push Notifications
-
-
-
-
-
- Team management
-
-
-
-
-
-
-
- Chat
-
-
-
-
- @ Features
-
-
-
-
-
- Linked Task
-
-
-
-
-
- Emoji
-
-
-
-
-
- Message categorization
-
-
-
-
-
- Message Right-Click
- Functionality
-
-
-
-
-
- Message Do Not Disturb
-
-
-
-
-
- Color Coding
-
-
-
-
-
-
- ¥0
-
- /month
-
-
-
-
-
- Deploy Now
-
-
-
-
-
-
-
-
- Professional Edition
-
-
-
-
-
- System usage
-
-
-
-
- Number of users
-
-
- ≤3
-
-
-
-
- Number of projects
-
-
- Unlimited
-
-
-
-
- Number of tasks
-
-
- Unlimited
-
-
-
-
- Offline Deployment
-
-
- Support
-
-
-
-
-
-
- Task Collaboration
-
-
-
-
- Multi-view presentation
-
-
-
-
-
- Custom column
-
-
-
-
-
- Visibility setting
-
-
-
-
-
- Repetition cycle
-
-
-
-
-
-
-
- Project management
-
-
-
-
- Project progress
-
-
-
-
-
- Project templates
-
-
-
-
-
- Gantt chart
-
-
-
-
-
-
-
- Application
-
-
-
-
- Approval center
-
-
-
-
-
- OKR management
-
-
-
-
-
- AI robot
-
-
-
-
-
- Meeting
-
-
-
-
-
- OKR results analysis
-
-
-
-
-
- LDAP
-
-
-
-
-
- Email
-
-
-
-
-
- App Push Notifications
-
-
-
-
-
- Team management
-
-
-
-
-
-
-
- Chat
-
-
-
-
- @ Features
-
-
-
-
-
- Linked Task
-
-
-
-
-
- Emoji
-
-
-
-
-
- Message categorization
-
-
-
-
-
- Message Right-Click
- Functionality
-
-
-
-
-
- Message Do Not Disturb
-
-
-
-
-
- Color Coding
-
-
-
-
-
-
- ¥0
-
- /month
-
-
-
-
-
- Deploy Now
-
-
-
-
-
-
-
-
- Regular version
-
-
-
-
-
- System usage
-
-
-
-
- Number of users
-
-
- Unlimited
-
-
-
-
- Number of projects
-
-
- Unlimited
-
-
-
-
- Number of tasks
-
-
- Unlimited
-
-
-
-
- Offline Deployment
-
-
- Official Support
-
-
-
-
-
-
- Task Collaboration
-
-
-
-
- Multi-view presentation
-
-
-
-
-
- Custom column
-
-
-
-
-
- Visibility setting
-
-
-
-
-
- Repetition cycle
-
-
-
-
-
-
-
- Project management
-
-
-
-
- Project progress
-
-
-
-
-
- Project templates
-
-
-
-
-
- Gantt chart
-
-
-
-
-
-
-
- Application
-
-
-
-
- Approval center
-
-
-
-
-
- OKR management
-
-
-
-
-
- AI robot
-
-
-
-
-
- Meeting
-
-
-
-
-
- OKR results analysis
-
-
-
-
-
- LDAP
-
-
-
-
-
- Email
-
-
-
-
-
- App Push Notifications
-
-
-
-
-
- Team management
-
-
-
-
-
-
-
- Chat
-
-
-
-
- @ Features
-
-
-
-
-
- Linked Task
-
-
-
-
-
- Emoji
-
-
-
-
-
- Message categorization
-
-
-
-
-
- Message Right-Click
- Functionality
-
-
-
-
-
- Message Do Not Disturb
-
-
-
-
-
- Color Coding
-
-
-
-
-
-
- ¥18,888
-
- /perpetual
-
-
-
-
- Contact Us
-
-
-
-
-
-
-
- Customised version
-
-
-
-
-
- System usage
-
-
-
-
- Number of users
-
-
- Unlimited
-
-
-
-
- Number of projects
-
-
- Unlimited
-
-
-
-
- Number of tasks
-
-
- Unlimited
-
-
-
-
- Offline Deployment
-
-
- Official Support
-
-
-
-
-
-
- Task Collaboration
-
-
-
-
- Multi-view presentation
-
-
-
-
-
- Custom column
-
-
-
-
-
- Visibility setting
-
-
-
-
-
- Repetition cycle
-
-
-
-
-
-
-
- Project management
-
-
-
-
- Project progress
-
-
-
-
-
- Project templates
-
-
-
-
-
- Gantt chart
-
-
-
-
-
-
-
- Application
-
-
-
-
- Approval center
-
-
-
-
-
- OKR management
-
-
-
-
-
- AI robot
-
-
-
-
-
- Meeting
-
-
-
-
-
- OKR results analysis
-
-
-
-
-
- LDAP
-
-
-
-
-
- Email
-
-
-
-
-
- App Push Notifications
-
-
-
-
-
- Team management
-
-
-
-
-
-
-
- Chat
-
-
-
-
- @ Features
-
-
-
-
-
- Linked Task
-
-
-
-
-
- Emoji
-
-
-
-
-
- Message categorization
-
-
-
-
-
- Message Right-Click
- Functionality
-
-
-
-
-
- Message Do Not Disturb
-
-
-
-
-
- Color Coding
-
-
-
-
-
-
- Consult
-
-
-
-
-
- Consult
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/public/site/en/privacy.html b/public/site/en/privacy.html
deleted file mode 100644
index df1de923a..000000000
--- a/public/site/en/privacy.html
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
-
-
- Privacy - DooTask
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/en/privacy.md b/public/site/en/privacy.md
deleted file mode 100644
index 5e962b6a1..000000000
--- a/public/site/en/privacy.md
+++ /dev/null
@@ -1,242 +0,0 @@
-# Privacy Policy
-
-Last updated: July 21, 2023
-
-This Privacy Policy describes Our policies and procedures on the collection, use and disclosure of Your information when You use the Service and tells You about Your privacy rights and how the law protects You.
-
-We use Your Personal data to provide and improve the Service. By using the Service, You agree to the collection and use of information in accordance with this Privacy Policy. This Privacy Policy has been created with the help of the [Privacy Policy Generator](https://www.termsfeed.com/privacy-policy-generator/).
-
-# Interpretation and Definitions
-
-## Interpretation
-
-The words of which the initial letter is capitalized have meanings defined under the following conditions. The following definitions shall have the same meaning regardless of whether they appear in singular or in plural.
-
-## Definitions
-
-For the purposes of this Privacy Policy:
-
-- Account: means a unique account created for You to access our Service or parts of our Service.
-- Affiliate: means an entity that controls, is controlled by or is under common control with a party, where "control" means ownership of 50% or more of the shares, equity interest or other securities entitled to vote for election of directors or other managing authority.
-
-
-
-- Company: (referred to as either "the Company", "We", "Us" or "Our" in this Agreement) refers to Guangxi Hitosea Information Technology Co., No. 1411, 14/F, Building 1, Wuxiang Hangyang City, Liangqing District, Nanning City, Guangxi Zhuang Autonomous Region, China.
-
-
-
-- __Cookies__ are small files that are placed on Your computer, mobile device or any other device by a website, containing the details of Your browsing history on that website among its many uses.
-
-- __Country__ refers to: China
-
-- __Device__ means any device that can access the Service such as a computer, a cellphone or a digital tablet.
-
-
-
-- __Personal Data__ is any information that relates to an identified or identifiable individual.
-
-
-
-
-- __Service__ refers to the Website.
-
-- __Service Provider__ means any natural or legal person who processes the data on behalf of the Company. It refers to third-party companies or individuals employed by the Company to facilitate the Service, to provide the Service on behalf of the Company, to perform services related to the Service or to assist the Company in analyzing how the Service is used.
-
-
-- __Usage Data__ refers to data collected automatically, either generated by the use of the Service or from the Service infrastructure itself (for example, the duration of a page visit).
-
-
-- __Website__ refers to DooTask, accessible from [https://www.dootask.com/](https://www.dootask.com/)
-
-- __You__ means the individual accessing or using the Service, or the company, or other legal entity on behalf of which such individual is accessing or using the Service, as applicable.
-
-
-
-# Collecting and Using Your Personal Data
-
-## Types of Data Collected
-
-### Personal Data
-
-While using Our Service, We may ask You to provide Us with certain personally identifiable information that can be used to contact or identify You. Personally identifiable information may include, but is not limited to:
-
-
-
-- Phone number
-
-
-
-- Usage Data
-
-
-
-### Usage Data
-
-Usage Data is collected automatically when using the Service.
-
-Usage Data may include information such as Your Device's Internet Protocol address (e.g. IP address), browser type, browser version, the pages of our Service that You visit, the time and date of Your visit, the time spent on those pages, unique device identifiers and other diagnostic data.
-
-When You access the Service by or through a mobile device, We may collect certain information automatically, including, but not limited to, the type of mobile device You use, Your mobile device unique ID, the IP address of Your mobile device, Your mobile operating system, the type of mobile Internet browser You use, unique device identifiers and other diagnostic data.
-
-We may also collect information that Your browser sends whenever You visit our Service or when You access the Service by or through a mobile device.
-
-
-
-
-
-
-### Tracking Technologies and Cookies
-
-We use Cookies and similar tracking technologies to track the activity on Our Service and store certain information. Tracking technologies used are beacons, tags, and scripts to collect and track information and to improve and analyze Our Service. The technologies We use may include:
-
-- __Cookies or Browser Cookies.__ A cookie is a small file placed on Your Device. You can instruct Your browser to refuse all Cookies or to indicate when a Cookie is being sent. However, if You do not accept Cookies, You may not be able to use some parts of our Service. Unless you have adjusted Your browser setting so that it will refuse Cookies, our Service may use Cookies.
-- __Web Beacons.__ Certain sections of our Service and our emails may contain small electronic files known as web beacons (also referred to as clear gifs, pixel tags, and single-pixel gifs) that permit the Company, for example, to count users who have visited those pages or opened an email and for other related website statistics (for example, recording the popularity of a certain section and verifying system and server integrity).
-
-Cookies can be "Persistent" or "Session" Cookies. Persistent Cookies remain on Your personal computer or mobile device when You go offline, while Session Cookies are deleted as soon as You close Your web browser. You can learn more about cookies on [TermsFeed website](https://www.termsfeed.com/blog/cookies/#What_Are_Cookies) article.
-
-We use both Session and Persistent Cookies for the purposes set out below:
-
-- __Necessary / Essential Cookies__
-
- Type: Session Cookies
-
- Administered by: Us
-
- Purpose: These Cookies are essential to provide You with services available through the Website and to enable You to use some of its features. They help to authenticate users and prevent fraudulent use of user accounts. Without these Cookies, the services that You have asked for cannot be provided, and We only use these Cookies to provide You with those services.
-- __Cookies Policy / Notice Acceptance Cookies__
-
- Type: Persistent Cookies
-
- Administered by: Us
-
- Purpose: These Cookies identify if users have accepted the use of cookies on the Website.
-- __Functionality Cookies__
-
- Type: Persistent Cookies
-
- Administered by: Us
-
- Purpose: These Cookies allow us to remember choices You make when You use the Website, such as remembering your login details or language preference. The purpose of these Cookies is to provide You with a more personal experience and to avoid You having to re-enter your preferences every time You use the Website.
-
-
-
-For more information about the cookies we use and your choices regarding cookies, please visit our Cookies Policy or the Cookies section of our Privacy Policy.
-
-
-## Use of Your Personal Data
-
-The Company may use Personal Data for the following purposes:
-
-- __To provide and maintain our Service__, including to monitor the usage of our Service.
-- __To manage Your Account:__ to manage Your registration as a user of the Service. The Personal Data You provide can give You access to different functionalities of the Service that are available to You as a registered user.
-- __For the performance of a contract:__ the development, compliance and undertaking of the purchase contract for the products, items or services You have purchased or of any other contract with Us through the Service.
-- __To contact You:__ To contact You by email, telephone calls, SMS, or other equivalent forms of electronic communication, such as a mobile application's push notifications regarding updates or informative communications related to the functionalities, products or contracted services, including the security updates, when necessary or reasonable for their implementation.
-- __To provide You__ with news, special offers and general information about other goods, services and events which we offer that are similar to those that you have already purchased or enquired about unless You have opted not to receive such information.
-- __To manage Your requests:__ To attend and manage Your requests to Us.
-
-- __For business transfers:__ We may use Your information to evaluate or conduct a merger, divestiture, restructuring, reorganization, dissolution, or other sale or transfer of some or all of Our assets, whether as a going concern or as part of bankruptcy, liquidation, or similar proceeding, in which Personal Data held by Us about our Service users is among the assets transferred.
-- __For other purposes__: We may use Your information for other purposes, such as data analysis, identifying usage trends, determining the effectiveness of our promotional campaigns and to evaluate and improve our Service, products, services, marketing and your experience.
-
-We may share Your personal information in the following situations:
-
-- __With Service Providers:__ We may share Your personal information with Service Providers to monitor and analyze the use of our Service, to contact You.
-- __For business transfers:__ We may share or transfer Your personal information in connection with, or during negotiations of, any merger, sale of Company assets, financing, or acquisition of all or a portion of Our business to another company.
-- __With Affiliates:__ We may share Your information with Our affiliates, in which case we will require those affiliates to honor this Privacy Policy. Affiliates include Our parent company and any other subsidiaries, joint venture partners or other companies that We control or that are under common control with Us.
-- __With business partners:__ We may share Your information with Our business partners to offer You certain products, services or promotions.
-- __With other users:__ when You share personal information or otherwise interact in the public areas with other users, such information may be viewed by all users and may be publicly distributed outside.
-- __With Your consent__: We may disclose Your personal information for any other purpose with Your consent.
-
-## Retention of Your Personal Data
-
-The Company will retain Your Personal Data only for as long as is necessary for the purposes set out in this Privacy Policy. We will retain and use Your Personal Data to the extent necessary to comply with our legal obligations (for example, if we are required to retain your data to comply with applicable laws), resolve disputes, and enforce our legal agreements and policies.
-
-The Company will also retain Usage Data for internal analysis purposes. Usage Data is generally retained for a shorter period of time, except when this data is used to strengthen the security or to improve the functionality of Our Service, or We are legally obligated to retain this data for longer time periods.
-
-## Transfer of Your Personal Data
-
-Your information, including Personal Data, is processed at the Company's operating offices and in any other places where the parties involved in the processing are located. It means that this information may be transferred to — and maintained on — computers located outside of Your state, province, country or other governmental jurisdiction where the data protection laws may differ than those from Your jurisdiction.
-
-Your consent to this Privacy Policy followed by Your submission of such information represents Your agreement to that transfer.
-
-The Company will take all steps reasonably necessary to ensure that Your data is treated securely and in accordance with this Privacy Policy and no transfer of Your Personal Data will take place to an organization or a country unless there are adequate controls in place including the security of Your data and other personal information.
-
-## Delete Your Personal Data
-
-You have the right to delete or request that We assist in deleting the Personal Data that We have collected about You.
-
-Our Service may give You the ability to delete certain information about You from within the Service.
-
-You may update, amend, or delete Your information at any time by signing in to Your Account, if you have one, and visiting the account settings section that allows you to manage Your personal information. You may also contact Us to request access to, correct, or delete any personal information that You have provided to Us.
-
-Please note, however, that We may need to retain certain information when we have a legal obligation or lawful basis to do so.
-
-## Disclosure of Your Personal Data
-
-### Business Transactions
-
-If the Company is involved in a merger, acquisition or asset sale, Your Personal Data may be transferred. We will provide notice before Your Personal Data is transferred and becomes subject to a different Privacy Policy.
-
-### Law enforcement
-
-Under certain circumstances, the Company may be required to disclose Your Personal Data if required to do so by law or in response to valid requests by public authorities (e.g. a court or a government agency).
-
-### Other legal requirements
-
-The Company may disclose Your Personal Data in the good faith belief that such action is necessary to:
-
-- Comply with a legal obligation
-- Protect and defend the rights or property of the Company
-- Prevent or investigate possible wrongdoing in connection with the Service
-- Protect the personal safety of Users of the Service or the public
-- Protect against legal liability
-
-## Security of Your Personal Data
-
-The security of Your Personal Data is important to Us, but remember that no method of transmission over the Internet, or method of electronic storage is 100% secure. While We strive to use commercially acceptable means to protect Your Personal Data, We cannot guarantee its absolute security.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# Children's Privacy
-
-Our Service does not address anyone under the age of 13. We do not knowingly collect personally identifiable information from anyone under the age of 13. If You are a parent or guardian and You are aware that Your child has provided Us with Personal Data, please contact Us. If We become aware that We have collected Personal Data from anyone under the age of 13 without verification of parental consent, We take steps to remove that information from Our servers.
-
-If We need to rely on consent as a legal basis for processing Your information and Your country requires consent from a parent, We may require Your parent's consent before We collect and use that information.
-
-
-# Links to Other Websites
-
-Our Service may contain links to other websites that are not operated by Us. If You click on a third party link, You will be directed to that third party's site. We strongly advise You to review the Privacy Policy of every site You visit.
-
-We have no control over and assume no responsibility for the content, privacy policies or practices of any third party sites or services.
-
-# Changes to this Privacy Policy
-
-We may update Our Privacy Policy from time to time. We will notify You of any changes by posting the new Privacy Policy on this page.
-
-We will let You know via email and/or a prominent notice on Our Service, prior to the change becoming effective and update the "Last updated" date at the top of this Privacy Policy.
-
-You are advised to review this Privacy Policy periodically for any changes. Changes to this Privacy Policy are effective when they are posted on this page.
-
-# Contact Us
-
-If you have any questions about this Privacy Policy, You can contact us:
-
-
-
-
-- By phone number: 0771-3164099
diff --git a/public/site/en/product.html b/public/site/en/product.html
deleted file mode 100644
index f6e8a5c92..000000000
--- a/public/site/en/product.html
+++ /dev/null
@@ -1,1332 +0,0 @@
-
-
-
-
-
- Product - DooTask
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- One product, multiple powerful tools
-
-
- The product brings together various document
- collaboration, online mind mapping, online
- flowcharting, project management, task
- distribution, instant IM, document management
- and other functions
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Co-creation
-
-
-
-
-
- Instant Messaging
-
-
-
-
- Project Mgmt
-
-
-
-
- Task Dashboard
-
-
-
-
- Task Calendar
-
-
-
-
- Bot Assistant
-
-
-
-
- Team Mgmt
-
-
-
-
-
- End-to-End Encryption
-
-
-
-
-
- Multi-platform
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 01
-
-
- Teamwork without boundaries
-
-
- Bring together a variety of online
- tools such as documents,
- spreadsheets, thinking notes, etc.,
- bringing together enterprise
- knowledge resources in one place and
- supporting real-time collaborative
- editing by multiple people, making
- teamwork more convenient.
-
-
-
-
- 02
-
-
- No more document silos
-
-
- Multiple file formats support,
- internal team file sharing,
- controllable file permissions,
- historical version tracking, etc. to
- facilitate file collaboration and
- discussion among team members and
- improve work efficiency.
-
-
-
-
-
-
-
-
-
-
-
-
- 01
-
-
- Focused communication, efficient
- communication
-
-
- Establishing groups for projects and
- tasks, the instant IM function can
- help team members communicate with
- each other in real time, add
- comments, attachments, reminders,
- etc. in task cards to promote fast
- team collaboration and improve team
- work efficiency.
-
-
-
-
- 02
-
-
- Messages must reach communication
- without hindrance
-
-
- Messages support checking read and
- unread, and unread messages are
- notified to each other through
- official emails for efficient
- communication.
-
-
-
-
- 03
-
-
- Cloud synchronization for
- unrestricted access to historical
- information
-
-
- Information is synchronized at
- multiple ends without loss. New
- employees join the organization,
- support to view chat history
- messages, seamless integration into
- the team.
-
-
-
-
- 04
-
-
- Attend meetings anytime, anywhere
-
-
- Using communication group video
- conferencing, project staff can
- participate in meetings anytime and
- anywhere to enhance the convenience
- of online meetings and ensure that
- the entire meeting is secure and
- controlled and orderly.
-
-
-
-
-
-
-
-
-
-
-
- 01
-
-
- Focused communication, efficient
- communication
-
-
- Establishing groups for projects and
- tasks, the instant IM function can help
- team members communicate with each other
- in real time, add comments, attachments,
- reminders, etc. in task cards to promote
- fast team collaboration and improve team
- work efficiency.
-
-
-
-
- 02
-
-
- Messages must reach communication
- without hindrance
-
-
- Messages support checking read and
- unread, and unread messages are notified
- to each other through official emails
- for efficient communication.
-
-
-
-
- 03
-
-
- Cloud synchronization for unrestricted
- access to historical information
-
-
- Information is synchronized at multiple
- ends without loss. New employees join
- the organization, support to view chat
- history messages, seamless integration
- into the team.
-
-
-
-
- 04
-
-
- Attend meetings anytime, anywhere
-
-
- Using communication group video
- conferencing, project staff can
- participate in meetings anytime and
- anywhere to enhance the convenience of
- online meetings and ensure that the
- entire meeting is secure and controlled
- and orderly.
-
-
-
-
-
-
-
-
-
-
-
- 01
-
-
- Multi-style management templates
-
-
- Templates to meet a variety of team
- collaboration scenarios, while
- supporting custom templates to meet
- the team's personalized scenario
- management needs, you can
- intuitively view the progress of the
- project, team collaboration more
- convenient.
-
-
-
-
- 02
-
-
- Project-based office, action
- visualization
-
-
- Use multiple views such as Kanban
- boards, tables, and lists to make
- the overall project visible at a
- glance; members can filter, sort,
- and group tasks flexibly to give
- priority to what's important and
- stay focused.
-
-
-
-
- 03
-
-
- Dynamic management, real-time
- monitoring
-
-
- Real-time changes to project
- dynamics, specific task changes are
- recorded and reminded so that the
- team can control the overall project
- process and make corresponding
- plans.
-
-
-
-
- 04
-
-
- One-click archiving of associated
- documents
-
-
- Project and related task files are
- automatically archived and stored
- for easy access later.
-
-
-
-
-
-
-
-
-
-
-
- 01
-
-
- Multi-style management templates
-
-
- Templates to meet a variety of team
- collaboration scenarios, while
- supporting custom templates to meet the
- team's personalized scenario management
- needs, you can intuitively view the
- progress of the project, team
- collaboration more convenient.
-
-
-
-
- 02
-
-
- Project-based office, action
- visualization
-
-
- Use multiple views such as Kanban
- boards, tables, and lists to make the
- overall project visible at a glance;
- members can filter, sort, and group
- tasks flexibly to give priority to
- what's important and stay focused.
-
-
-
-
- 03
-
-
- Dynamic management, real-time monitoring
-
-
- Real-time changes to project dynamics,
- specific task changes are recorded and
- reminded so that the team can control
- the overall project process and make
- corresponding plans.
-
-
-
-
- 04
-
-
- One-click archiving of associated
- documents
-
-
- Project and related task files are
- automatically archived and stored for
- easy access later.
-
-
-
-
-
-
-
-
-
-
-
- 01
-
-
- Comprehensive insight into task data
-
-
- The task dashboard shows task status
- classification statistics, which
- makes it easy for individuals to
- grasp task progress, rationalize and
- plan work, and improve work
- efficiency.
-
-
-
-
-
-
-
-
-
-
-
-
- 01
-
-
- Accurate Timeline
-
-
- Show the schedule scheduling of each
- task, so that you can see the work
- tasks at a glance and better balance
- work and life.
-
-
-
-
- 02
-
-
- Multiple calendar views
-
-
- Provide multiple calendar views such
- as month/week/day, easy to switch;
- support to create multiple calendars
- by purpose of use, customize the
- visible range and color markers, let
- the schedule classified display.
-
-
-
-
-
-
-
-
-
-
-
-
- 01
-
-
- Smart tips to bring technology
- closer to life
-
-
- Intelligent robots can serve
- employees' daily check-in and
- clock-in, task reminders, and
- pushing the latest consultation
- messages, helping users achieve
- effective work progress management
- and time planning.
-
-
-
-
- 02
-
-
- Artificial intelligence, realizing
- real-time communication with AI
-
-
- The smart little dolphin, a language
- processing tool based on artificial
- intelligence technology, is able to
- carry out dialogues and real-time
- communication by learning and
- understanding human language, and
- comprehensively grasp all kinds of
- text information, greatly improving
- the convenience of work.
-
-
-
-
-
-
-
-
-
-
-
-
- 01
-
-
- Fully enhance hierarchical
- organizational effectiveness
-
-
- Managers can set the company
- personnel structure in the
- background to form a complete team
- form, which facilitates hierarchical
- and collaborative management of
- projects and related tasks.
-
-
-
-
- 02
-
-
- Multi-functional assistance for
- enterprise management teams
-
-
- Provide daily work report editing
- summary, project and task data
- summary statistics, a variety of
- functions to assist enterprises to
- manage teams and projects, improve
- the company's management efficiency
- and management level.
-
-
-
-
-
-
-
-
-
-
-
-
- 01
-
-
- Control encryption keys for security
- and safety
-
-
- Using end-to-end encryption ensures
- that users' data can only be
- decrypted by them. This means that
- even if hackers break into DooTask's
- servers, they cannot access users'
- data.
-
-
-
-
- 02
-
-
- Data classification encryption for
- secure synchronization
-
-
- Using categorical encryption, users
- can synchronize their tasks and
- files across multiple devices
- without fear of data theft or
- tampering.
-
-
-
-
-
-
-
-
-
-
-
-
- 01
-
-
- Multi-Platform Applications
-
-
- Multi-platform application support
- allows you to track project progress
- anytime, anywhere, while making
- every step of your work a more
- efficient and enjoyable experience.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Organizational Management
-
-
- Unified management of internal and external
- work, real-time view statistics,
-
-
- transparent goals, visible progress,
- controllable performance
-
-
- Unified management of internal and external
- work, real-time view statistics, transparent
- goals, visible progress, controllable
- performance
-
-
-
-
-
-
-
-
- Real-time view of attendance
- statistics
-
-
- View attendance data anytime and
- anywhere, record the working
- hours of each team member,
- including starting time,
- finishing time, overtime, etc.,
- to achieve goal management and
- performance management within
- the enterprise
-
-
-
-
-
-
-
- The ultimate experience in speed
- clocking
-
-
- The system recognizes and
- connects to the company's wifi
- to automatically punch in and
- out, saying goodbye to queuing
- and opening cell phone
- operations, employees no longer
- forget to punch in and out
-
-
-
-
-
-
-
-
- Attendance data visualization and
- analysis
-
-
- Statistics on attendance, tardiness,
- early departure, overtime hours and
- other related data of each team
- member are generated and visualized
- in statistical charts. Through these
- data and charts, enterprise
- management can gain an in-depth
- understanding of team members'
- working conditions and efficiency,
- and provide a reference basis for
- subsequent personnel arrangement and
- performance assessment.
-
-
-
-
-
-
-
-
-
Clocking in to work successfully
-
-
- Attendance Check-in
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/public/site/en/sideNav.html b/public/site/en/sideNav.html
deleted file mode 100644
index b3f05121a..000000000
--- a/public/site/en/sideNav.html
+++ /dev/null
@@ -1,58 +0,0 @@
-
-
-
-
- Solutions - DooTask
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/en/solutions.html b/public/site/en/solutions.html
deleted file mode 100644
index 093919ae1..000000000
--- a/public/site/en/solutions.html
+++ /dev/null
@@ -1,608 +0,0 @@
-
-
-
-
-
- Solutions - DooTask
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Helping you collaborate better
-
-
- DooTask offers a range of solutions based on
- different scenarios so that you can quickly
- start collaborating with your team or department
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Scenario Application
-
-
-
- The product supports a variety of
- application scenarios to help team
- collaboration
-
-
-
-
-
-
-
-
-
- Project Management
-
-
- Support a variety of project
- management models, such as Agile
- Development, Crystal Planning,
- Kanban, etc., for all sizes and
- types of project management. Users
- can use the project management tools
- in DooTask, such as task assignment,
- progress tracking, resource
- allocation, etc. to manage the whole
- project.
-
-
-
-
-
-
-
- Team Collaboration
-
-
- DooTask's rich and useful tools can
- facilitate communication and
- collaboration among team members and
- improve work efficiency. For
- example, team members can use the
- document collaboration tools, online
- mind maps, flowcharts and other
- tools in DooTask to collaborate.
-
-
-
-
-
-
-
- Data Security Protection
-
-
- DooTask uses asymmetric encryption
- technology in its messaging function
- to ensure maximum protection of
- users' information. In addition, it
- also provides a powerful permission
- management system that enables
- flexible setting of permissions and
- scope of operations for different
- users in project management
- according to their roles and
- responsibilities.
-
-
-
-
-
-
-
- Free Customization
-
-
- DooTask is a completely open source
- tool that allows users to freely
- modify and customize it, avoiding
- the extra costs associated with
- commercial software subscription
- fees.
-
-
-
-
-
-
-
-
-
- Team Operations
-
-
-
-
-
- Corporate Management
-
-
- Helping enterprises to their corporate
- goals, connecting goals, key results and
- individual work, and jointly promoting
- strategy implementation and goal
- achievement;Through co-creation, share
- the progress, completion status, and
- schedule of all corporate work, promote
- information flow, allow all staff to
- access key information of projects,
- follow up in time, and promote
- cross-departmental
- collaboration.Translated with DeepL
-
-
-
-
-
- Product Management
-
-
- Customize the workflow of the product
- development process, assign tasks to
- different roles at different stages, and
- promote the product development process;
- Uniform archiving of each completed
- project and task history data, which is
- convenient to recall or discuss at any
- time, forming a closed loop of knowledge
- precipitation to reuse.
-
-
-
-
-
- Corporate Management
-
-
- Get multi-dimensional corporate data
- through data visualization statistical
- reports to get a comprehensive
- understanding of employee performance
- and make performance evaluation more
- objective and fair; use announcements to
- release notices, arrange company
- activities, convey corporate decisions,
- facilitate the shaping of corporate
- culture, and make employees more
- engaged.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/public/site/font/side_nav_font.woff b/public/site/font/side_nav_font.woff
deleted file mode 100644
index 297c262f1..000000000
Binary files a/public/site/font/side_nav_font.woff and /dev/null differ
diff --git a/public/site/img/01.svg b/public/site/img/01.svg
deleted file mode 100644
index 387daf4bd..000000000
--- a/public/site/img/01.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/public/site/img/02.svg b/public/site/img/02.svg
deleted file mode 100644
index 984d298b3..000000000
--- a/public/site/img/02.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/public/site/img/03.svg b/public/site/img/03.svg
deleted file mode 100644
index 9e96664b6..000000000
--- a/public/site/img/03.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/public/site/img/04.svg b/public/site/img/04.svg
deleted file mode 100644
index ebd3b8677..000000000
--- a/public/site/img/04.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/public/site/img/about_icon1.svg b/public/site/img/about_icon1.svg
deleted file mode 100644
index 13e28392a..000000000
--- a/public/site/img/about_icon1.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/about_icon10.svg b/public/site/img/about_icon10.svg
deleted file mode 100644
index 85a9ac1f8..000000000
--- a/public/site/img/about_icon10.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/public/site/img/about_icon2.svg b/public/site/img/about_icon2.svg
deleted file mode 100644
index 6dd123ba5..000000000
--- a/public/site/img/about_icon2.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/about_icon3.svg b/public/site/img/about_icon3.svg
deleted file mode 100644
index 88c3cc70c..000000000
--- a/public/site/img/about_icon3.svg
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/about_icon4.svg b/public/site/img/about_icon4.svg
deleted file mode 100644
index bff4cc780..000000000
--- a/public/site/img/about_icon4.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/public/site/img/about_icon5.svg b/public/site/img/about_icon5.svg
deleted file mode 100644
index 91dfea2e1..000000000
--- a/public/site/img/about_icon5.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/about_icon6.svg b/public/site/img/about_icon6.svg
deleted file mode 100644
index 2288bf64b..000000000
--- a/public/site/img/about_icon6.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/about_icon7.svg b/public/site/img/about_icon7.svg
deleted file mode 100644
index 8ecc7aea7..000000000
--- a/public/site/img/about_icon7.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/public/site/img/about_icon8.svg b/public/site/img/about_icon8.svg
deleted file mode 100644
index 0dcd9a043..000000000
--- a/public/site/img/about_icon8.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/public/site/img/about_icon9.svg b/public/site/img/about_icon9.svg
deleted file mode 100644
index b6ba84216..000000000
--- a/public/site/img/about_icon9.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/public/site/img/ad/banner.png b/public/site/img/ad/banner.png
deleted file mode 100644
index d1abe8f40..000000000
Binary files a/public/site/img/ad/banner.png and /dev/null differ
diff --git a/public/site/img/ad/checked.svg b/public/site/img/ad/checked.svg
deleted file mode 100644
index a9211bb43..000000000
--- a/public/site/img/ad/checked.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/ad/intro-card-head.png b/public/site/img/ad/intro-card-head.png
deleted file mode 100644
index 6305e2f7d..000000000
Binary files a/public/site/img/ad/intro-card-head.png and /dev/null differ
diff --git a/public/site/img/ad/intro-card-img01.svg b/public/site/img/ad/intro-card-img01.svg
deleted file mode 100644
index 70e28cfe5..000000000
--- a/public/site/img/ad/intro-card-img01.svg
+++ /dev/null
@@ -1,76 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/ad/intro-card-img02.svg b/public/site/img/ad/intro-card-img02.svg
deleted file mode 100644
index d6fc325a6..000000000
--- a/public/site/img/ad/intro-card-img02.svg
+++ /dev/null
@@ -1,77 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/ad/intro-card-img03.svg b/public/site/img/ad/intro-card-img03.svg
deleted file mode 100644
index 5fc9eb2e5..000000000
--- a/public/site/img/ad/intro-card-img03.svg
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/ad/intro-card-img04.svg b/public/site/img/ad/intro-card-img04.svg
deleted file mode 100644
index cb460200d..000000000
--- a/public/site/img/ad/intro-card-img04.svg
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/ad/intro.png b/public/site/img/ad/intro.png
deleted file mode 100644
index 25fc96a44..000000000
Binary files a/public/site/img/ad/intro.png and /dev/null differ
diff --git a/public/site/img/ad/plan.png b/public/site/img/ad/plan.png
deleted file mode 100644
index 1a0dbbe03..000000000
Binary files a/public/site/img/ad/plan.png and /dev/null differ
diff --git a/public/site/img/ad/tag.png b/public/site/img/ad/tag.png
deleted file mode 100644
index e6c0cb619..000000000
Binary files a/public/site/img/ad/tag.png and /dev/null differ
diff --git a/public/site/img/android_code.png b/public/site/img/android_code.png
deleted file mode 100644
index abff5046d..000000000
Binary files a/public/site/img/android_code.png and /dev/null differ
diff --git a/public/site/img/android_y.svg b/public/site/img/android_y.svg
deleted file mode 100644
index 302b922f9..000000000
--- a/public/site/img/android_y.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/public/site/img/arcs.svg b/public/site/img/arcs.svg
deleted file mode 100644
index 3b72ab43c..000000000
--- a/public/site/img/arcs.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/public/site/img/beian.png b/public/site/img/beian.png
deleted file mode 100644
index 27882dc6c..000000000
Binary files a/public/site/img/beian.png and /dev/null differ
diff --git a/public/site/img/bg_fpic1.svg b/public/site/img/bg_fpic1.svg
deleted file mode 100644
index 9eba7523a..000000000
--- a/public/site/img/bg_fpic1.svg
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/bg_fpic2.svg b/public/site/img/bg_fpic2.svg
deleted file mode 100644
index 04db16ec5..000000000
--- a/public/site/img/bg_fpic2.svg
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/dark/about_pic1.png b/public/site/img/dark/about_pic1.png
deleted file mode 100644
index 53d811f6b..000000000
Binary files a/public/site/img/dark/about_pic1.png and /dev/null differ
diff --git a/public/site/img/dark/bg1.png b/public/site/img/dark/bg1.png
deleted file mode 100644
index affc4b919..000000000
Binary files a/public/site/img/dark/bg1.png and /dev/null differ
diff --git a/public/site/img/dark/bg10.png b/public/site/img/dark/bg10.png
deleted file mode 100644
index bd2fcc963..000000000
Binary files a/public/site/img/dark/bg10.png and /dev/null differ
diff --git a/public/site/img/dark/bg11.png b/public/site/img/dark/bg11.png
deleted file mode 100644
index 71835c316..000000000
Binary files a/public/site/img/dark/bg11.png and /dev/null differ
diff --git a/public/site/img/dark/bg1_768.png b/public/site/img/dark/bg1_768.png
deleted file mode 100644
index 983294b2e..000000000
Binary files a/public/site/img/dark/bg1_768.png and /dev/null differ
diff --git a/public/site/img/dark/bg2.png b/public/site/img/dark/bg2.png
deleted file mode 100644
index 7ab6496b7..000000000
Binary files a/public/site/img/dark/bg2.png and /dev/null differ
diff --git a/public/site/img/dark/bg2_768.png b/public/site/img/dark/bg2_768.png
deleted file mode 100644
index 7ab6496b7..000000000
Binary files a/public/site/img/dark/bg2_768.png and /dev/null differ
diff --git a/public/site/img/dark/bg3.png b/public/site/img/dark/bg3.png
deleted file mode 100644
index 1acc4a7d7..000000000
Binary files a/public/site/img/dark/bg3.png and /dev/null differ
diff --git a/public/site/img/dark/bg3_768.png b/public/site/img/dark/bg3_768.png
deleted file mode 100644
index 21b451ceb..000000000
Binary files a/public/site/img/dark/bg3_768.png and /dev/null differ
diff --git a/public/site/img/dark/bg4.png b/public/site/img/dark/bg4.png
deleted file mode 100644
index 703fa5cb8..000000000
Binary files a/public/site/img/dark/bg4.png and /dev/null differ
diff --git a/public/site/img/dark/bg4_768.png b/public/site/img/dark/bg4_768.png
deleted file mode 100644
index d56a6f09a..000000000
Binary files a/public/site/img/dark/bg4_768.png and /dev/null differ
diff --git a/public/site/img/dark/bg5.png b/public/site/img/dark/bg5.png
deleted file mode 100644
index 6d7fcddfe..000000000
Binary files a/public/site/img/dark/bg5.png and /dev/null differ
diff --git a/public/site/img/dark/bg5_768.png b/public/site/img/dark/bg5_768.png
deleted file mode 100644
index 9241e9b91..000000000
Binary files a/public/site/img/dark/bg5_768.png and /dev/null differ
diff --git a/public/site/img/dark/bg6.png b/public/site/img/dark/bg6.png
deleted file mode 100644
index 7255f9cd2..000000000
Binary files a/public/site/img/dark/bg6.png and /dev/null differ
diff --git a/public/site/img/dark/bg6_768.png b/public/site/img/dark/bg6_768.png
deleted file mode 100644
index 6815fe807..000000000
Binary files a/public/site/img/dark/bg6_768.png and /dev/null differ
diff --git a/public/site/img/dark/bg7.png b/public/site/img/dark/bg7.png
deleted file mode 100644
index b0bfa9965..000000000
Binary files a/public/site/img/dark/bg7.png and /dev/null differ
diff --git a/public/site/img/dark/bg7_768.png b/public/site/img/dark/bg7_768.png
deleted file mode 100644
index 71cf4457d..000000000
Binary files a/public/site/img/dark/bg7_768.png and /dev/null differ
diff --git a/public/site/img/dark/bg8.png b/public/site/img/dark/bg8.png
deleted file mode 100644
index 85072452e..000000000
Binary files a/public/site/img/dark/bg8.png and /dev/null differ
diff --git a/public/site/img/dark/bg8_768.png b/public/site/img/dark/bg8_768.png
deleted file mode 100644
index 5930140a1..000000000
Binary files a/public/site/img/dark/bg8_768.png and /dev/null differ
diff --git a/public/site/img/dark/bg9.png b/public/site/img/dark/bg9.png
deleted file mode 100644
index b0b54779a..000000000
Binary files a/public/site/img/dark/bg9.png and /dev/null differ
diff --git a/public/site/img/dark/bg9_768.png b/public/site/img/dark/bg9_768.png
deleted file mode 100644
index aaa6c7126..000000000
Binary files a/public/site/img/dark/bg9_768.png and /dev/null differ
diff --git a/public/site/img/dark/en_dow_pic1.png b/public/site/img/dark/en_dow_pic1.png
deleted file mode 100644
index 4ec9861c0..000000000
Binary files a/public/site/img/dark/en_dow_pic1.png and /dev/null differ
diff --git a/public/site/img/dark/en_home_pic1.png b/public/site/img/dark/en_home_pic1.png
deleted file mode 100644
index 7c6db7c13..000000000
Binary files a/public/site/img/dark/en_home_pic1.png and /dev/null differ
diff --git a/public/site/img/dark/en_home_pic2.png b/public/site/img/dark/en_home_pic2.png
deleted file mode 100644
index f7dbcefb0..000000000
Binary files a/public/site/img/dark/en_home_pic2.png and /dev/null differ
diff --git a/public/site/img/dark/en_home_pic3.png b/public/site/img/dark/en_home_pic3.png
deleted file mode 100644
index a5f89b1b1..000000000
Binary files a/public/site/img/dark/en_home_pic3.png and /dev/null differ
diff --git a/public/site/img/dark/en_home_pic4.png b/public/site/img/dark/en_home_pic4.png
deleted file mode 100644
index 83f4f6ae3..000000000
Binary files a/public/site/img/dark/en_home_pic4.png and /dev/null differ
diff --git a/public/site/img/dark/en_home_pic5.png b/public/site/img/dark/en_home_pic5.png
deleted file mode 100644
index 97ec3cd30..000000000
Binary files a/public/site/img/dark/en_home_pic5.png and /dev/null differ
diff --git a/public/site/img/dark/en_home_pic6.png b/public/site/img/dark/en_home_pic6.png
deleted file mode 100644
index 804e08980..000000000
Binary files a/public/site/img/dark/en_home_pic6.png and /dev/null differ
diff --git a/public/site/img/dark/en_product_pic11.png b/public/site/img/dark/en_product_pic11.png
deleted file mode 100644
index 36ca584f8..000000000
Binary files a/public/site/img/dark/en_product_pic11.png and /dev/null differ
diff --git a/public/site/img/dark/en_solution_pic1.png b/public/site/img/dark/en_solution_pic1.png
deleted file mode 100644
index e40963201..000000000
Binary files a/public/site/img/dark/en_solution_pic1.png and /dev/null differ
diff --git a/public/site/img/dark/en_solution_pic2.png b/public/site/img/dark/en_solution_pic2.png
deleted file mode 100644
index 388b16e6e..000000000
Binary files a/public/site/img/dark/en_solution_pic2.png and /dev/null differ
diff --git a/public/site/img/dark/en_solution_pic3.png b/public/site/img/dark/en_solution_pic3.png
deleted file mode 100644
index c704cd59e..000000000
Binary files a/public/site/img/dark/en_solution_pic3.png and /dev/null differ
diff --git a/public/site/img/dark/help_pic11.svg b/public/site/img/dark/help_pic11.svg
deleted file mode 100644
index 21cdd6d67..000000000
--- a/public/site/img/dark/help_pic11.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/dark/help_pic2.png b/public/site/img/dark/help_pic2.png
deleted file mode 100644
index 35d75dcb0..000000000
Binary files a/public/site/img/dark/help_pic2.png and /dev/null differ
diff --git a/public/site/img/dark/help_pic3.png b/public/site/img/dark/help_pic3.png
deleted file mode 100644
index a6f1e1a06..000000000
Binary files a/public/site/img/dark/help_pic3.png and /dev/null differ
diff --git a/public/site/img/dark/home_code.svg b/public/site/img/dark/home_code.svg
deleted file mode 100644
index 8c6bec5bf..000000000
--- a/public/site/img/dark/home_code.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/dark/home_icon1.png b/public/site/img/dark/home_icon1.png
deleted file mode 100644
index f3b1726d9..000000000
Binary files a/public/site/img/dark/home_icon1.png and /dev/null differ
diff --git a/public/site/img/dark/home_icon2.png b/public/site/img/dark/home_icon2.png
deleted file mode 100644
index dc6efd31c..000000000
Binary files a/public/site/img/dark/home_icon2.png and /dev/null differ
diff --git a/public/site/img/dark/home_icon3.png b/public/site/img/dark/home_icon3.png
deleted file mode 100644
index 8b209cd1d..000000000
Binary files a/public/site/img/dark/home_icon3.png and /dev/null differ
diff --git a/public/site/img/dark/home_icon4.png b/public/site/img/dark/home_icon4.png
deleted file mode 100644
index 94fa7536f..000000000
Binary files a/public/site/img/dark/home_icon4.png and /dev/null differ
diff --git a/public/site/img/dark/home_pic7.svg b/public/site/img/dark/home_pic7.svg
deleted file mode 100644
index f59630bd1..000000000
--- a/public/site/img/dark/home_pic7.svg
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/dark/home_pic7_768.svg b/public/site/img/dark/home_pic7_768.svg
deleted file mode 100644
index 0bf3d21c2..000000000
--- a/public/site/img/dark/home_pic7_768.svg
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/dark/logo.svg b/public/site/img/dark/logo.svg
deleted file mode 100644
index 40fab0ba5..000000000
--- a/public/site/img/dark/logo.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/dark/product_pic1.svg b/public/site/img/dark/product_pic1.svg
deleted file mode 100644
index d03ccae18..000000000
--- a/public/site/img/dark/product_pic1.svg
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/dark/product_pic10.svg b/public/site/img/dark/product_pic10.svg
deleted file mode 100644
index c193d9ccf..000000000
--- a/public/site/img/dark/product_pic10.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/dark/product_pic2.svg b/public/site/img/dark/product_pic2.svg
deleted file mode 100644
index 24064724f..000000000
--- a/public/site/img/dark/product_pic2.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/dark/product_pic3.svg b/public/site/img/dark/product_pic3.svg
deleted file mode 100644
index 0ca6574ba..000000000
--- a/public/site/img/dark/product_pic3.svg
+++ /dev/null
@@ -1,58 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/dark/product_pic4.svg b/public/site/img/dark/product_pic4.svg
deleted file mode 100644
index 7c89fff0a..000000000
--- a/public/site/img/dark/product_pic4.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/dark/product_pic5.svg b/public/site/img/dark/product_pic5.svg
deleted file mode 100644
index bf26e57a4..000000000
--- a/public/site/img/dark/product_pic5.svg
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/dark/product_pic6.svg b/public/site/img/dark/product_pic6.svg
deleted file mode 100644
index 96767ce0d..000000000
--- a/public/site/img/dark/product_pic6.svg
+++ /dev/null
@@ -1,85 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/dark/product_pic7.svg b/public/site/img/dark/product_pic7.svg
deleted file mode 100644
index 62c2e648a..000000000
--- a/public/site/img/dark/product_pic7.svg
+++ /dev/null
@@ -1,94 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/dark/product_pic8.svg b/public/site/img/dark/product_pic8.svg
deleted file mode 100644
index c38ff9c80..000000000
--- a/public/site/img/dark/product_pic8.svg
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/dark/product_pic9.svg b/public/site/img/dark/product_pic9.svg
deleted file mode 100644
index 3ea14c117..000000000
--- a/public/site/img/dark/product_pic9.svg
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/dark/solution_pic4.png b/public/site/img/dark/solution_pic4.png
deleted file mode 100644
index 7bd7b4b7b..000000000
Binary files a/public/site/img/dark/solution_pic4.png and /dev/null differ
diff --git a/public/site/img/dark/zh_dow_pic1.png b/public/site/img/dark/zh_dow_pic1.png
deleted file mode 100644
index fcea1f1ea..000000000
Binary files a/public/site/img/dark/zh_dow_pic1.png and /dev/null differ
diff --git a/public/site/img/dark/zh_home_pic1.png b/public/site/img/dark/zh_home_pic1.png
deleted file mode 100644
index e21656f86..000000000
Binary files a/public/site/img/dark/zh_home_pic1.png and /dev/null differ
diff --git a/public/site/img/dark/zh_home_pic2.png b/public/site/img/dark/zh_home_pic2.png
deleted file mode 100644
index 5311f6b3f..000000000
Binary files a/public/site/img/dark/zh_home_pic2.png and /dev/null differ
diff --git a/public/site/img/dark/zh_home_pic3.png b/public/site/img/dark/zh_home_pic3.png
deleted file mode 100644
index ff16cc452..000000000
Binary files a/public/site/img/dark/zh_home_pic3.png and /dev/null differ
diff --git a/public/site/img/dark/zh_home_pic4.png b/public/site/img/dark/zh_home_pic4.png
deleted file mode 100644
index e6a35a83c..000000000
Binary files a/public/site/img/dark/zh_home_pic4.png and /dev/null differ
diff --git a/public/site/img/dark/zh_home_pic5.png b/public/site/img/dark/zh_home_pic5.png
deleted file mode 100644
index 76e968c9e..000000000
Binary files a/public/site/img/dark/zh_home_pic5.png and /dev/null differ
diff --git a/public/site/img/dark/zh_home_pic6.png b/public/site/img/dark/zh_home_pic6.png
deleted file mode 100644
index e57027f17..000000000
Binary files a/public/site/img/dark/zh_home_pic6.png and /dev/null differ
diff --git a/public/site/img/dark/zh_product_pic11.png b/public/site/img/dark/zh_product_pic11.png
deleted file mode 100644
index 77f903c55..000000000
Binary files a/public/site/img/dark/zh_product_pic11.png and /dev/null differ
diff --git a/public/site/img/dark/zh_solution_pic1.png b/public/site/img/dark/zh_solution_pic1.png
deleted file mode 100644
index 1de318850..000000000
Binary files a/public/site/img/dark/zh_solution_pic1.png and /dev/null differ
diff --git a/public/site/img/dark/zh_solution_pic2.png b/public/site/img/dark/zh_solution_pic2.png
deleted file mode 100644
index b27a801f0..000000000
Binary files a/public/site/img/dark/zh_solution_pic2.png and /dev/null differ
diff --git a/public/site/img/dark/zh_solution_pic3.png b/public/site/img/dark/zh_solution_pic3.png
deleted file mode 100644
index 6f9f80b9a..000000000
Binary files a/public/site/img/dark/zh_solution_pic3.png and /dev/null differ
diff --git a/public/site/img/dots.svg b/public/site/img/dots.svg
deleted file mode 100644
index 3df09b613..000000000
--- a/public/site/img/dots.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/public/site/img/dow_android.svg b/public/site/img/dow_android.svg
deleted file mode 100644
index 2d43d23d2..000000000
--- a/public/site/img/dow_android.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/public/site/img/dow_arrow.svg b/public/site/img/dow_arrow.svg
deleted file mode 100644
index 6e05e6dde..000000000
--- a/public/site/img/dow_arrow.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/public/site/img/dow_code.svg b/public/site/img/dow_code.svg
deleted file mode 100644
index 14c9a36d0..000000000
--- a/public/site/img/dow_code.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/dow_icon.svg b/public/site/img/dow_icon.svg
deleted file mode 100644
index 94b7b2a7a..000000000
--- a/public/site/img/dow_icon.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/dow_ios.svg b/public/site/img/dow_ios.svg
deleted file mode 100644
index ea806db07..000000000
--- a/public/site/img/dow_ios.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/public/site/img/dow_mac.svg b/public/site/img/dow_mac.svg
deleted file mode 100644
index 337b7971b..000000000
--- a/public/site/img/dow_mac.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/public/site/img/dow_window.svg b/public/site/img/dow_window.svg
deleted file mode 100644
index ebb685a18..000000000
--- a/public/site/img/dow_window.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/public/site/img/drak.svg b/public/site/img/drak.svg
deleted file mode 100644
index 71a0449c7..000000000
--- a/public/site/img/drak.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/public/site/img/favicon.ico b/public/site/img/favicon.ico
deleted file mode 100644
index 0d2525721..000000000
Binary files a/public/site/img/favicon.ico and /dev/null differ
diff --git a/public/site/img/github.svg b/public/site/img/github.svg
deleted file mode 100644
index f23b00a60..000000000
--- a/public/site/img/github.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/public/site/img/home_icon1.svg b/public/site/img/home_icon1.svg
deleted file mode 100644
index 8c2966e02..000000000
--- a/public/site/img/home_icon1.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/public/site/img/home_icon2.svg b/public/site/img/home_icon2.svg
deleted file mode 100644
index 5fb5c5e6c..000000000
--- a/public/site/img/home_icon2.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/public/site/img/home_icon3.svg b/public/site/img/home_icon3.svg
deleted file mode 100644
index bdf08c65e..000000000
--- a/public/site/img/home_icon3.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/public/site/img/home_icon4.svg b/public/site/img/home_icon4.svg
deleted file mode 100644
index abc1d2ec3..000000000
--- a/public/site/img/home_icon4.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/public/site/img/home_icon5.svg b/public/site/img/home_icon5.svg
deleted file mode 100644
index 9a27dbdb0..000000000
--- a/public/site/img/home_icon5.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/public/site/img/ios_code.png b/public/site/img/ios_code.png
deleted file mode 100644
index 09aaed994..000000000
Binary files a/public/site/img/ios_code.png and /dev/null differ
diff --git a/public/site/img/lang-select.svg b/public/site/img/lang-select.svg
deleted file mode 100644
index 3cebf1e7d..000000000
--- a/public/site/img/lang-select.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/light.svg b/public/site/img/light.svg
deleted file mode 100644
index e5f7414d3..000000000
--- a/public/site/img/light.svg
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/light/about_pic1.png b/public/site/img/light/about_pic1.png
deleted file mode 100644
index 218da0fb2..000000000
Binary files a/public/site/img/light/about_pic1.png and /dev/null differ
diff --git a/public/site/img/light/bg1.png b/public/site/img/light/bg1.png
deleted file mode 100644
index 7df1a4c67..000000000
Binary files a/public/site/img/light/bg1.png and /dev/null differ
diff --git a/public/site/img/light/bg10.png b/public/site/img/light/bg10.png
deleted file mode 100644
index 57ba94642..000000000
Binary files a/public/site/img/light/bg10.png and /dev/null differ
diff --git a/public/site/img/light/bg11.png b/public/site/img/light/bg11.png
deleted file mode 100644
index 6c8d2ce6b..000000000
Binary files a/public/site/img/light/bg11.png and /dev/null differ
diff --git a/public/site/img/light/bg1_768.png b/public/site/img/light/bg1_768.png
deleted file mode 100644
index 341a974ff..000000000
Binary files a/public/site/img/light/bg1_768.png and /dev/null differ
diff --git a/public/site/img/light/bg2.png b/public/site/img/light/bg2.png
deleted file mode 100644
index d00c891bb..000000000
Binary files a/public/site/img/light/bg2.png and /dev/null differ
diff --git a/public/site/img/light/bg2_768.png b/public/site/img/light/bg2_768.png
deleted file mode 100644
index 4369b2443..000000000
Binary files a/public/site/img/light/bg2_768.png and /dev/null differ
diff --git a/public/site/img/light/bg3.png b/public/site/img/light/bg3.png
deleted file mode 100644
index c022b8552..000000000
Binary files a/public/site/img/light/bg3.png and /dev/null differ
diff --git a/public/site/img/light/bg3_768.png b/public/site/img/light/bg3_768.png
deleted file mode 100644
index 9dec512d0..000000000
Binary files a/public/site/img/light/bg3_768.png and /dev/null differ
diff --git a/public/site/img/light/bg4.png b/public/site/img/light/bg4.png
deleted file mode 100644
index e00669e2e..000000000
Binary files a/public/site/img/light/bg4.png and /dev/null differ
diff --git a/public/site/img/light/bg4_768.png b/public/site/img/light/bg4_768.png
deleted file mode 100644
index b17351407..000000000
Binary files a/public/site/img/light/bg4_768.png and /dev/null differ
diff --git a/public/site/img/light/bg5.png b/public/site/img/light/bg5.png
deleted file mode 100644
index 955d1d3ce..000000000
Binary files a/public/site/img/light/bg5.png and /dev/null differ
diff --git a/public/site/img/light/bg5_768.png b/public/site/img/light/bg5_768.png
deleted file mode 100644
index 2e7d84e64..000000000
Binary files a/public/site/img/light/bg5_768.png and /dev/null differ
diff --git a/public/site/img/light/bg6.png b/public/site/img/light/bg6.png
deleted file mode 100644
index 57f8b3029..000000000
Binary files a/public/site/img/light/bg6.png and /dev/null differ
diff --git a/public/site/img/light/bg6_768.png b/public/site/img/light/bg6_768.png
deleted file mode 100644
index 8f87d76ea..000000000
Binary files a/public/site/img/light/bg6_768.png and /dev/null differ
diff --git a/public/site/img/light/bg7.png b/public/site/img/light/bg7.png
deleted file mode 100644
index c4b8534fb..000000000
Binary files a/public/site/img/light/bg7.png and /dev/null differ
diff --git a/public/site/img/light/bg7_768.png b/public/site/img/light/bg7_768.png
deleted file mode 100644
index d21b7af86..000000000
Binary files a/public/site/img/light/bg7_768.png and /dev/null differ
diff --git a/public/site/img/light/bg8.png b/public/site/img/light/bg8.png
deleted file mode 100644
index 323ce86fb..000000000
Binary files a/public/site/img/light/bg8.png and /dev/null differ
diff --git a/public/site/img/light/bg8_768.png b/public/site/img/light/bg8_768.png
deleted file mode 100644
index 52ba79ff0..000000000
Binary files a/public/site/img/light/bg8_768.png and /dev/null differ
diff --git a/public/site/img/light/bg9.png b/public/site/img/light/bg9.png
deleted file mode 100644
index ba7f19f7b..000000000
Binary files a/public/site/img/light/bg9.png and /dev/null differ
diff --git a/public/site/img/light/bg9_768.png b/public/site/img/light/bg9_768.png
deleted file mode 100644
index 37121b083..000000000
Binary files a/public/site/img/light/bg9_768.png and /dev/null differ
diff --git a/public/site/img/light/en_dow_pic1.png b/public/site/img/light/en_dow_pic1.png
deleted file mode 100644
index c65495e65..000000000
Binary files a/public/site/img/light/en_dow_pic1.png and /dev/null differ
diff --git a/public/site/img/light/en_home_pic1.png b/public/site/img/light/en_home_pic1.png
deleted file mode 100644
index c5706b2b8..000000000
Binary files a/public/site/img/light/en_home_pic1.png and /dev/null differ
diff --git a/public/site/img/light/en_home_pic2.png b/public/site/img/light/en_home_pic2.png
deleted file mode 100644
index f7925831e..000000000
Binary files a/public/site/img/light/en_home_pic2.png and /dev/null differ
diff --git a/public/site/img/light/en_home_pic3.png b/public/site/img/light/en_home_pic3.png
deleted file mode 100644
index b79afb7f4..000000000
Binary files a/public/site/img/light/en_home_pic3.png and /dev/null differ
diff --git a/public/site/img/light/en_home_pic4.png b/public/site/img/light/en_home_pic4.png
deleted file mode 100644
index addc1b431..000000000
Binary files a/public/site/img/light/en_home_pic4.png and /dev/null differ
diff --git a/public/site/img/light/en_home_pic5.png b/public/site/img/light/en_home_pic5.png
deleted file mode 100644
index 6e20e555b..000000000
Binary files a/public/site/img/light/en_home_pic5.png and /dev/null differ
diff --git a/public/site/img/light/en_home_pic6.png b/public/site/img/light/en_home_pic6.png
deleted file mode 100644
index 2ce730a05..000000000
Binary files a/public/site/img/light/en_home_pic6.png and /dev/null differ
diff --git a/public/site/img/light/en_product_pic11.png b/public/site/img/light/en_product_pic11.png
deleted file mode 100644
index 3050cc7b9..000000000
Binary files a/public/site/img/light/en_product_pic11.png and /dev/null differ
diff --git a/public/site/img/light/en_solution_pic1.png b/public/site/img/light/en_solution_pic1.png
deleted file mode 100644
index a84369b78..000000000
Binary files a/public/site/img/light/en_solution_pic1.png and /dev/null differ
diff --git a/public/site/img/light/en_solution_pic2.png b/public/site/img/light/en_solution_pic2.png
deleted file mode 100644
index 5daae671a..000000000
Binary files a/public/site/img/light/en_solution_pic2.png and /dev/null differ
diff --git a/public/site/img/light/en_solution_pic3.png b/public/site/img/light/en_solution_pic3.png
deleted file mode 100644
index b94ef45fb..000000000
Binary files a/public/site/img/light/en_solution_pic3.png and /dev/null differ
diff --git a/public/site/img/light/help_pic11.svg b/public/site/img/light/help_pic11.svg
deleted file mode 100644
index ca8b360f9..000000000
--- a/public/site/img/light/help_pic11.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/light/help_pic2.png b/public/site/img/light/help_pic2.png
deleted file mode 100644
index f70ec96a6..000000000
Binary files a/public/site/img/light/help_pic2.png and /dev/null differ
diff --git a/public/site/img/light/help_pic3.png b/public/site/img/light/help_pic3.png
deleted file mode 100644
index 07c647016..000000000
Binary files a/public/site/img/light/help_pic3.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_creat_task1.png b/public/site/img/light/help_pic_creat_task1.png
deleted file mode 100644
index 7ab1a6999..000000000
Binary files a/public/site/img/light/help_pic_creat_task1.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_creat_task10.png b/public/site/img/light/help_pic_creat_task10.png
deleted file mode 100644
index 3270e6848..000000000
Binary files a/public/site/img/light/help_pic_creat_task10.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_creat_task2.png b/public/site/img/light/help_pic_creat_task2.png
deleted file mode 100644
index 2ce88362d..000000000
Binary files a/public/site/img/light/help_pic_creat_task2.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_creat_task3.png b/public/site/img/light/help_pic_creat_task3.png
deleted file mode 100644
index c32ebc0ef..000000000
Binary files a/public/site/img/light/help_pic_creat_task3.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_creat_task4.png b/public/site/img/light/help_pic_creat_task4.png
deleted file mode 100644
index 5123ba5f8..000000000
Binary files a/public/site/img/light/help_pic_creat_task4.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_creat_task5.png b/public/site/img/light/help_pic_creat_task5.png
deleted file mode 100644
index 57dec4410..000000000
Binary files a/public/site/img/light/help_pic_creat_task5.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_creat_task6.png b/public/site/img/light/help_pic_creat_task6.png
deleted file mode 100644
index ec8e81a77..000000000
Binary files a/public/site/img/light/help_pic_creat_task6.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_creat_task7.png b/public/site/img/light/help_pic_creat_task7.png
deleted file mode 100644
index 649e00ae4..000000000
Binary files a/public/site/img/light/help_pic_creat_task7.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_creat_task8.png b/public/site/img/light/help_pic_creat_task8.png
deleted file mode 100644
index 2e1f35296..000000000
Binary files a/public/site/img/light/help_pic_creat_task8.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_creat_task9.png b/public/site/img/light/help_pic_creat_task9.png
deleted file mode 100644
index a1c7dcc51..000000000
Binary files a/public/site/img/light/help_pic_creat_task9.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_file1.png b/public/site/img/light/help_pic_file1.png
deleted file mode 100644
index 6d620ba4c..000000000
Binary files a/public/site/img/light/help_pic_file1.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_file2.png b/public/site/img/light/help_pic_file2.png
deleted file mode 100644
index af1d54452..000000000
Binary files a/public/site/img/light/help_pic_file2.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_file3.png b/public/site/img/light/help_pic_file3.png
deleted file mode 100644
index bda98796b..000000000
Binary files a/public/site/img/light/help_pic_file3.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_file4.png b/public/site/img/light/help_pic_file4.png
deleted file mode 100644
index e2dd8634c..000000000
Binary files a/public/site/img/light/help_pic_file4.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_file5.png b/public/site/img/light/help_pic_file5.png
deleted file mode 100644
index d4f83dded..000000000
Binary files a/public/site/img/light/help_pic_file5.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_login1.png b/public/site/img/light/help_pic_login1.png
deleted file mode 100644
index eb0e4a975..000000000
Binary files a/public/site/img/light/help_pic_login1.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_login2.png b/public/site/img/light/help_pic_login2.png
deleted file mode 100644
index 852aa9acf..000000000
Binary files a/public/site/img/light/help_pic_login2.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_login3.png b/public/site/img/light/help_pic_login3.png
deleted file mode 100644
index b1111380d..000000000
Binary files a/public/site/img/light/help_pic_login3.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_new_project1.png b/public/site/img/light/help_pic_new_project1.png
deleted file mode 100644
index 26b04ace4..000000000
Binary files a/public/site/img/light/help_pic_new_project1.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_new_project2.png b/public/site/img/light/help_pic_new_project2.png
deleted file mode 100644
index 8523e9319..000000000
Binary files a/public/site/img/light/help_pic_new_project2.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_new_project3.png b/public/site/img/light/help_pic_new_project3.png
deleted file mode 100644
index baa1691d8..000000000
Binary files a/public/site/img/light/help_pic_new_project3.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_new_project4.png b/public/site/img/light/help_pic_new_project4.png
deleted file mode 100644
index d8aad5fa2..000000000
Binary files a/public/site/img/light/help_pic_new_project4.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_new_project5.png b/public/site/img/light/help_pic_new_project5.png
deleted file mode 100644
index eb12ef1de..000000000
Binary files a/public/site/img/light/help_pic_new_project5.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_new_project6.png b/public/site/img/light/help_pic_new_project6.png
deleted file mode 100644
index c4c96a6ab..000000000
Binary files a/public/site/img/light/help_pic_new_project6.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_new_project7.png b/public/site/img/light/help_pic_new_project7.png
deleted file mode 100644
index 7e360f370..000000000
Binary files a/public/site/img/light/help_pic_new_project7.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_note1.png b/public/site/img/light/help_pic_note1.png
deleted file mode 100644
index ca06c630f..000000000
Binary files a/public/site/img/light/help_pic_note1.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_note2.png b/public/site/img/light/help_pic_note2.png
deleted file mode 100644
index 9d35d094e..000000000
Binary files a/public/site/img/light/help_pic_note2.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_register1.png b/public/site/img/light/help_pic_register1.png
deleted file mode 100644
index fad1dbc49..000000000
Binary files a/public/site/img/light/help_pic_register1.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_register2.png b/public/site/img/light/help_pic_register2.png
deleted file mode 100644
index c0279cf05..000000000
Binary files a/public/site/img/light/help_pic_register2.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_set1.png b/public/site/img/light/help_pic_set1.png
deleted file mode 100644
index c4650889a..000000000
Binary files a/public/site/img/light/help_pic_set1.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_set2.png b/public/site/img/light/help_pic_set2.png
deleted file mode 100644
index 7fa80a85f..000000000
Binary files a/public/site/img/light/help_pic_set2.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_set3.png b/public/site/img/light/help_pic_set3.png
deleted file mode 100644
index db5ed3688..000000000
Binary files a/public/site/img/light/help_pic_set3.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_set4.png b/public/site/img/light/help_pic_set4.png
deleted file mode 100644
index 8ebc8e10c..000000000
Binary files a/public/site/img/light/help_pic_set4.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_set5.png b/public/site/img/light/help_pic_set5.png
deleted file mode 100644
index c138450f9..000000000
Binary files a/public/site/img/light/help_pic_set5.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_set6.png b/public/site/img/light/help_pic_set6.png
deleted file mode 100644
index 8f1d96a19..000000000
Binary files a/public/site/img/light/help_pic_set6.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_set7.png b/public/site/img/light/help_pic_set7.png
deleted file mode 100644
index a058c9356..000000000
Binary files a/public/site/img/light/help_pic_set7.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_set8.png b/public/site/img/light/help_pic_set8.png
deleted file mode 100644
index 0701cd9e8..000000000
Binary files a/public/site/img/light/help_pic_set8.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_team1.png b/public/site/img/light/help_pic_team1.png
deleted file mode 100644
index b5bfdae2a..000000000
Binary files a/public/site/img/light/help_pic_team1.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_team10.png b/public/site/img/light/help_pic_team10.png
deleted file mode 100644
index 43520ebcd..000000000
Binary files a/public/site/img/light/help_pic_team10.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_team11.png b/public/site/img/light/help_pic_team11.png
deleted file mode 100644
index 2e91a7f52..000000000
Binary files a/public/site/img/light/help_pic_team11.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_team12.png b/public/site/img/light/help_pic_team12.png
deleted file mode 100644
index defa03760..000000000
Binary files a/public/site/img/light/help_pic_team12.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_team13.png b/public/site/img/light/help_pic_team13.png
deleted file mode 100644
index 2da3a736f..000000000
Binary files a/public/site/img/light/help_pic_team13.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_team14.png b/public/site/img/light/help_pic_team14.png
deleted file mode 100644
index d75432ba5..000000000
Binary files a/public/site/img/light/help_pic_team14.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_team15.png b/public/site/img/light/help_pic_team15.png
deleted file mode 100644
index 0afcb74f9..000000000
Binary files a/public/site/img/light/help_pic_team15.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_team2.png b/public/site/img/light/help_pic_team2.png
deleted file mode 100644
index b36fcd370..000000000
Binary files a/public/site/img/light/help_pic_team2.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_team3.png b/public/site/img/light/help_pic_team3.png
deleted file mode 100644
index 1dd1f50ff..000000000
Binary files a/public/site/img/light/help_pic_team3.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_team4.png b/public/site/img/light/help_pic_team4.png
deleted file mode 100644
index 729eec0e4..000000000
Binary files a/public/site/img/light/help_pic_team4.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_team5.png b/public/site/img/light/help_pic_team5.png
deleted file mode 100644
index 82a7891e1..000000000
Binary files a/public/site/img/light/help_pic_team5.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_team6.png b/public/site/img/light/help_pic_team6.png
deleted file mode 100644
index df59ce937..000000000
Binary files a/public/site/img/light/help_pic_team6.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_team7.png b/public/site/img/light/help_pic_team7.png
deleted file mode 100644
index 8d8d8cf6a..000000000
Binary files a/public/site/img/light/help_pic_team7.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_team8.png b/public/site/img/light/help_pic_team8.png
deleted file mode 100644
index 67d38b137..000000000
Binary files a/public/site/img/light/help_pic_team8.png and /dev/null differ
diff --git a/public/site/img/light/help_pic_team9.png b/public/site/img/light/help_pic_team9.png
deleted file mode 100644
index 56f039bfa..000000000
Binary files a/public/site/img/light/help_pic_team9.png and /dev/null differ
diff --git a/public/site/img/light/home_code.svg b/public/site/img/light/home_code.svg
deleted file mode 100644
index 9bba95757..000000000
--- a/public/site/img/light/home_code.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/light/home_icon1.png b/public/site/img/light/home_icon1.png
deleted file mode 100644
index f0e856339..000000000
Binary files a/public/site/img/light/home_icon1.png and /dev/null differ
diff --git a/public/site/img/light/home_icon2.png b/public/site/img/light/home_icon2.png
deleted file mode 100644
index f310a8c4f..000000000
Binary files a/public/site/img/light/home_icon2.png and /dev/null differ
diff --git a/public/site/img/light/home_icon3.png b/public/site/img/light/home_icon3.png
deleted file mode 100644
index ed443d251..000000000
Binary files a/public/site/img/light/home_icon3.png and /dev/null differ
diff --git a/public/site/img/light/home_icon4.png b/public/site/img/light/home_icon4.png
deleted file mode 100644
index 9db25f277..000000000
Binary files a/public/site/img/light/home_icon4.png and /dev/null differ
diff --git a/public/site/img/light/home_pic7.svg b/public/site/img/light/home_pic7.svg
deleted file mode 100644
index 0a2f6de87..000000000
--- a/public/site/img/light/home_pic7.svg
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/light/home_pic7_768.svg b/public/site/img/light/home_pic7_768.svg
deleted file mode 100644
index 2017468d1..000000000
--- a/public/site/img/light/home_pic7_768.svg
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/light/logo.svg b/public/site/img/light/logo.svg
deleted file mode 100644
index ea93b08f1..000000000
--- a/public/site/img/light/logo.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/light/product_pic1.svg b/public/site/img/light/product_pic1.svg
deleted file mode 100644
index 195695159..000000000
--- a/public/site/img/light/product_pic1.svg
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/light/product_pic10.svg b/public/site/img/light/product_pic10.svg
deleted file mode 100644
index bbd18aa75..000000000
--- a/public/site/img/light/product_pic10.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/light/product_pic2.svg b/public/site/img/light/product_pic2.svg
deleted file mode 100644
index 8a6a494e0..000000000
--- a/public/site/img/light/product_pic2.svg
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/light/product_pic3.svg b/public/site/img/light/product_pic3.svg
deleted file mode 100644
index f2899b249..000000000
--- a/public/site/img/light/product_pic3.svg
+++ /dev/null
@@ -1,58 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/light/product_pic4.svg b/public/site/img/light/product_pic4.svg
deleted file mode 100644
index 309450e37..000000000
--- a/public/site/img/light/product_pic4.svg
+++ /dev/null
@@ -1,60 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/light/product_pic5.svg b/public/site/img/light/product_pic5.svg
deleted file mode 100644
index f95660938..000000000
--- a/public/site/img/light/product_pic5.svg
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/light/product_pic6.svg b/public/site/img/light/product_pic6.svg
deleted file mode 100644
index bdcdaa1a1..000000000
--- a/public/site/img/light/product_pic6.svg
+++ /dev/null
@@ -1,85 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/light/product_pic7.svg b/public/site/img/light/product_pic7.svg
deleted file mode 100644
index 60ed8eaa3..000000000
--- a/public/site/img/light/product_pic7.svg
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/light/product_pic8.svg b/public/site/img/light/product_pic8.svg
deleted file mode 100644
index f35a8dbca..000000000
--- a/public/site/img/light/product_pic8.svg
+++ /dev/null
@@ -1,94 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/light/product_pic9.svg b/public/site/img/light/product_pic9.svg
deleted file mode 100644
index ea37e71ff..000000000
--- a/public/site/img/light/product_pic9.svg
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/light/solution_pic4.png b/public/site/img/light/solution_pic4.png
deleted file mode 100644
index e9ec30a34..000000000
Binary files a/public/site/img/light/solution_pic4.png and /dev/null differ
diff --git a/public/site/img/light/zh_dow_pic1.png b/public/site/img/light/zh_dow_pic1.png
deleted file mode 100644
index a4cc0889a..000000000
Binary files a/public/site/img/light/zh_dow_pic1.png and /dev/null differ
diff --git a/public/site/img/light/zh_home_pic1.png b/public/site/img/light/zh_home_pic1.png
deleted file mode 100644
index 65843d707..000000000
Binary files a/public/site/img/light/zh_home_pic1.png and /dev/null differ
diff --git a/public/site/img/light/zh_home_pic2.png b/public/site/img/light/zh_home_pic2.png
deleted file mode 100644
index 6c1e7bdbe..000000000
Binary files a/public/site/img/light/zh_home_pic2.png and /dev/null differ
diff --git a/public/site/img/light/zh_home_pic3.png b/public/site/img/light/zh_home_pic3.png
deleted file mode 100644
index b7737fe75..000000000
Binary files a/public/site/img/light/zh_home_pic3.png and /dev/null differ
diff --git a/public/site/img/light/zh_home_pic4.png b/public/site/img/light/zh_home_pic4.png
deleted file mode 100644
index 9b14ab251..000000000
Binary files a/public/site/img/light/zh_home_pic4.png and /dev/null differ
diff --git a/public/site/img/light/zh_home_pic5.png b/public/site/img/light/zh_home_pic5.png
deleted file mode 100644
index b631d7e99..000000000
Binary files a/public/site/img/light/zh_home_pic5.png and /dev/null differ
diff --git a/public/site/img/light/zh_home_pic6.png b/public/site/img/light/zh_home_pic6.png
deleted file mode 100644
index 73a351ce2..000000000
Binary files a/public/site/img/light/zh_home_pic6.png and /dev/null differ
diff --git a/public/site/img/light/zh_product_pic11.png b/public/site/img/light/zh_product_pic11.png
deleted file mode 100644
index 33eaf4758..000000000
Binary files a/public/site/img/light/zh_product_pic11.png and /dev/null differ
diff --git a/public/site/img/light/zh_solution_pic1.png b/public/site/img/light/zh_solution_pic1.png
deleted file mode 100644
index 2ab624a79..000000000
Binary files a/public/site/img/light/zh_solution_pic1.png and /dev/null differ
diff --git a/public/site/img/light/zh_solution_pic2.png b/public/site/img/light/zh_solution_pic2.png
deleted file mode 100644
index 5b6ab33d8..000000000
Binary files a/public/site/img/light/zh_solution_pic2.png and /dev/null differ
diff --git a/public/site/img/light/zh_solution_pic3.png b/public/site/img/light/zh_solution_pic3.png
deleted file mode 100644
index 5ea2c1b3f..000000000
Binary files a/public/site/img/light/zh_solution_pic3.png and /dev/null differ
diff --git a/public/site/img/loading.png b/public/site/img/loading.png
deleted file mode 100644
index e9ec5e714..000000000
Binary files a/public/site/img/loading.png and /dev/null differ
diff --git a/public/site/img/logo_y.svg b/public/site/img/logo_y.svg
deleted file mode 100644
index abbfabdc5..000000000
--- a/public/site/img/logo_y.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/menu.svg b/public/site/img/menu.svg
deleted file mode 100644
index dec5de1d7..000000000
--- a/public/site/img/menu.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/next.svg b/public/site/img/next.svg
deleted file mode 100644
index 295277f0b..000000000
--- a/public/site/img/next.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/public/site/img/prev.svg b/public/site/img/prev.svg
deleted file mode 100644
index 051af887d..000000000
--- a/public/site/img/prev.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/public/site/img/price_icon1.svg b/public/site/img/price_icon1.svg
deleted file mode 100644
index 47df1f81b..000000000
--- a/public/site/img/price_icon1.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/price_icon2.svg b/public/site/img/price_icon2.svg
deleted file mode 100644
index 62a2ec657..000000000
--- a/public/site/img/price_icon2.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/product_icon1.svg b/public/site/img/product_icon1.svg
deleted file mode 100644
index a6ffa9a69..000000000
--- a/public/site/img/product_icon1.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/product_icons0.svg b/public/site/img/product_icons0.svg
deleted file mode 100644
index f963d4d3b..000000000
--- a/public/site/img/product_icons0.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/product_icons0_h.svg b/public/site/img/product_icons0_h.svg
deleted file mode 100644
index 1166326c7..000000000
--- a/public/site/img/product_icons0_h.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/product_icons1.svg b/public/site/img/product_icons1.svg
deleted file mode 100644
index 53b1f7609..000000000
--- a/public/site/img/product_icons1.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/product_icons1_h.svg b/public/site/img/product_icons1_h.svg
deleted file mode 100644
index adf1716cb..000000000
--- a/public/site/img/product_icons1_h.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/product_icons2.svg b/public/site/img/product_icons2.svg
deleted file mode 100644
index 658a91e80..000000000
--- a/public/site/img/product_icons2.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/product_icons2_h.svg b/public/site/img/product_icons2_h.svg
deleted file mode 100644
index 0f6cf7604..000000000
--- a/public/site/img/product_icons2_h.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/product_icons3.svg b/public/site/img/product_icons3.svg
deleted file mode 100644
index 6e4d1efeb..000000000
--- a/public/site/img/product_icons3.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/product_icons3_h.svg b/public/site/img/product_icons3_h.svg
deleted file mode 100644
index aa3961a41..000000000
--- a/public/site/img/product_icons3_h.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/product_icons4.svg b/public/site/img/product_icons4.svg
deleted file mode 100644
index c2e2b1a8e..000000000
--- a/public/site/img/product_icons4.svg
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/product_icons4_h.svg b/public/site/img/product_icons4_h.svg
deleted file mode 100644
index 45f3603d5..000000000
--- a/public/site/img/product_icons4_h.svg
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/product_icons5.svg b/public/site/img/product_icons5.svg
deleted file mode 100644
index c50c67f77..000000000
--- a/public/site/img/product_icons5.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/product_icons5_h.svg b/public/site/img/product_icons5_h.svg
deleted file mode 100644
index c60ad525b..000000000
--- a/public/site/img/product_icons5_h.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/product_icons6.svg b/public/site/img/product_icons6.svg
deleted file mode 100644
index 3c2a67036..000000000
--- a/public/site/img/product_icons6.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/product_icons6_h.svg b/public/site/img/product_icons6_h.svg
deleted file mode 100644
index e4744a168..000000000
--- a/public/site/img/product_icons6_h.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/product_icons7.svg b/public/site/img/product_icons7.svg
deleted file mode 100644
index 565fae137..000000000
--- a/public/site/img/product_icons7.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/product_icons7_h.svg b/public/site/img/product_icons7_h.svg
deleted file mode 100644
index 8ab74aee5..000000000
--- a/public/site/img/product_icons7_h.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/product_icons8.svg b/public/site/img/product_icons8.svg
deleted file mode 100644
index 4ed9ee6ff..000000000
--- a/public/site/img/product_icons8.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/product_icons8_h.svg b/public/site/img/product_icons8_h.svg
deleted file mode 100644
index c9b0c4722..000000000
--- a/public/site/img/product_icons8_h.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/product_subtract.svg b/public/site/img/product_subtract.svg
deleted file mode 100644
index 31c5d0d6b..000000000
--- a/public/site/img/product_subtract.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/public/site/img/qq_code.jpg b/public/site/img/qq_code.jpg
deleted file mode 100644
index 2640e860e..000000000
Binary files a/public/site/img/qq_code.jpg and /dev/null differ
diff --git a/public/site/img/search-icon.svg b/public/site/img/search-icon.svg
deleted file mode 100644
index 4e73c09da..000000000
--- a/public/site/img/search-icon.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/side_nav_wechat.png b/public/site/img/side_nav_wechat.png
deleted file mode 100644
index c92250bf5..000000000
Binary files a/public/site/img/side_nav_wechat.png and /dev/null differ
diff --git a/public/site/img/side_nav_whatsapp.png b/public/site/img/side_nav_whatsapp.png
deleted file mode 100644
index b4d81d3ce..000000000
Binary files a/public/site/img/side_nav_whatsapp.png and /dev/null differ
diff --git a/public/site/img/solution_icon1.svg b/public/site/img/solution_icon1.svg
deleted file mode 100644
index 102bd1d25..000000000
--- a/public/site/img/solution_icon1.svg
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/solution_icon2.svg b/public/site/img/solution_icon2.svg
deleted file mode 100644
index c6f567931..000000000
--- a/public/site/img/solution_icon2.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/solution_icon3.svg b/public/site/img/solution_icon3.svg
deleted file mode 100644
index 7a68a1a3e..000000000
--- a/public/site/img/solution_icon3.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/img/vector.svg b/public/site/img/vector.svg
deleted file mode 100644
index c6d32b28b..000000000
--- a/public/site/img/vector.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/public/site/index.html b/public/site/index.html
deleted file mode 100644
index f5853cb71..000000000
--- a/public/site/index.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/js/ad.js b/public/site/js/ad.js
deleted file mode 100644
index e607ab1f7..000000000
--- a/public/site/js/ad.js
+++ /dev/null
@@ -1,828 +0,0 @@
-// 根据窗口宽度设置广告栏高度
-let adBarHeight = window?.innerWidth <= 768 ? 48 : 64;
-const adBarHeightPX = `${adBarHeight}px`;
-
-// 当DOM加载完成时执行
-document.addEventListener("DOMContentLoaded", function () {
- // 获取当前页面路径
- const currentPath = window.location.pathname;
- // 判断是否为广告页面
- const isAdPage = currentPath.endsWith("/ad.html");
-
- // 获取URL对象
- const url = new URL(window.location.href);
- // 分割路径
- const pathSegments = url.pathname.split("/");
- // 确定语言
- const language = pathSegments.includes("zh")
- ? "zh"
- : pathSegments.includes("en")
- ? "en"
- : "zh";
-
- if (isAdPage) {
- // 如果是广告页面,设置导航背景色并获取广告计划和介绍
- setNavBackgroundColor();
- fetchAdBanner(language);
- fetchAdPlan(language);
- fetchAdIntro(language);
-
- manageAnimate();
-
- handleDialog();
- } else {
- // 如果不是广告页面,插入广告样式表并获取广告栏
- insertAdStylesheet();
- fetchAdBar(language);
- }
-});
-
-// 初始化广告栏
-function initializeAdBar() {
- displayAdBar();
- adjustNavPosition("down");
-
- // 添加关闭广告栏的事件监听器
- const closeAdBarButton = document.getElementById("ad-close");
- closeAdBarButton.addEventListener("click", () => {
- hideAdBar();
- adjustNavPosition("up");
- });
-}
-
-// 显示广告栏
-function displayAdBar() {
- const adWrapper = document.getElementById("ad");
- if (!adWrapper) return;
- adWrapper.style.height = adBarHeightPX;
- adWrapper.style.display = "block";
-
- // 调整头部元素的边距
- const headerEl = document.getElementsByTagName("header")[0];
- if (!headerEl) return;
- headerEl.style.marginTop = adBarHeightPX;
-}
-
-// 隐藏广告栏
-function hideAdBar() {
- const adWrapper = document.getElementById("ad");
- if (!adWrapper) return;
- adWrapper.style.height = "0px";
- adWrapper.style.display = "none";
-
- // 重置头部元素的边距
- const headerEl = document.getElementsByTagName("header")[0];
- if (!headerEl) return;
- headerEl.style.marginTop = "0px";
-}
-
-// 调整导航栏位置
-function adjustNavPosition(direction) {
- const navWrapper = document.getElementsByClassName("nav")[0];
- navWrapper.style.top = direction === "down" ? adBarHeightPX : "0";
-}
-
-// 获取广告栏数据
-function fetchAdBar(language) {
- const apiUrl = `https://cms.hitosea.com/api/doo-task-ad-bar?locale=${language}&populate[0]=background`;
- fetchData(apiUrl)
- .then(({ data: { attributes } }) => {
- updateAdBar(attributes);
- })
- .catch(handleError);
-}
-
-// 获取广告banner数据
-function fetchAdBanner(language) {
- const query = window.Qs.stringify(
- {
- locale: language,
- populate: {
- title: {
- populate: "*",
- },
- description: {
- populate: "*",
- },
- background: {
- populate: "*",
- },
- underline: {
- populate: "*",
- },
- signUpButton: {
- populate: "*",
- },
- selfHostButton: {
- populate: "*",
- },
- localizations: {
- populate: "*",
- },
- },
- },
- {
- encodeValuesOnly: true,
- }
- );
- const apiUrl = `https://cms.hitosea.com/api/doo-task-ad-banner?${query}`;
- fetchData(apiUrl).then(handleAdBannerResponse).catch(handleError);
-}
-
-// 获取广告计划数据
-function fetchAdPlan(language) {
- const query = window.Qs.stringify({
- locale: language,
- populate: {
- plans: {
- populate: {
- price: {
- populate: "*",
- },
- button: {
- populate: "*",
- },
- features: {
- populate: "*",
- },
- },
- },
- },
- });
- const apiUrl = `https://cms.hitosea.com/api/doo-task-ad-plan?${query}`;
- fetchData(apiUrl).then(handleAdPlanResponse).catch(handleError);
-}
-
-// 获取广告介绍数据
-function fetchAdIntro(language) {
- const query = window.Qs.stringify({
- locale: language,
- populate: {
- intros: {
- populate: {
- bar: {
- populate: "*",
- },
- cover: {
- populate: "*",
- },
- title: {
- populate: "*",
- },
- description: {
- populate: "*",
- },
- },
- },
- },
- });
- const apiUrl = `https://cms.hitosea.com/api/doo-task-ad-intro?${query}`;
- fetchData(apiUrl).then(handleAdIntroResponse).catch(handleError);
-}
-
-// 通用数据获取函数
-function fetchData(url) {
- return fetch(url).then((response) => response.json());
-}
-
-function getMediaUrl(media) {
- if (!media?.data?.attributes?.url) {
- return "";
- }
- return `https://cms.hitosea.com${media.data.attributes.url}`;
-}
-
-function getStyle(style) {
- if (!style) return null;
- return Object.keys(style)
- .map((key) => `${key}: ${style[key]}`)
- .join("; ");
-}
-
-// 处理广告banner响应
-function handleAdBannerResponse(response) {
- // 在此实现广告banner处理逻辑
- try {
- const {
- data: {
- attributes: {
- title,
- description,
- background,
- underline,
- signUpButton,
- selfHostButton,
- },
- },
- } = response;
- handleAdBannerTitle(title);
- handleAdBannerDescription(description);
- handleAdBannerBackground(background);
- handleAdBannerUnderline(underline);
- handleAdBannerSignUpButton(signUpButton);
- handleAdBannerSelfHostButton(selfHostButton);
- } catch (error) {
- console.error("处理广告banner响应时出错:", error);
- }
-}
-
-function handleAdBannerTitle(title) {
- const titleText = {};
- if (Array.isArray(title)) {
- title.forEach((item) => {
- titleText[item.key] = { text: item.text, style: item.style };
- });
- }
- const titlePart1El = document.getElementById("ad-banner-title-part1");
- const titlePart2El = document.getElementById("ad-banner-title-part2");
- const titlePart3El = document.getElementById("ad-banner-title-part3");
- if (titlePart1El && titleText["part1"]) {
- titlePart1El.textContent = titleText["part1"].text;
- titlePart1El.style = getStyle(titleText["part1"].style);
- }
- if (titlePart2El && titleText["part2"]) {
- titlePart2El.textContent = titleText["part2"].text;
- titlePart2El.style = getStyle(titleText["part2"].style);
- }
- if (titlePart3El && titleText["part3"]) {
- titlePart3El.textContent = titleText["part3"].text;
- titlePart3El.style = getStyle(titleText["part3"].style);
- }
-}
-
-function handleAdBannerDescription(description) {
- const descriptionText = {
- text: description.text,
- style: description.style,
- };
- const descriptionEl = document.getElementById("ad-banner-description");
- if (descriptionEl && descriptionText.text) {
- descriptionEl.textContent = descriptionText.text;
- descriptionEl.style = getStyle(descriptionText.style);
- }
-}
-
-function handleAdBannerBackground(background) {
- const backgroundUrl = getMediaUrl(background);
- const adBannerEl = document.getElementById("ad-banner");
-
- if (adBannerEl && backgroundUrl) {
- adBannerEl.style.backgroundImage = `url(${backgroundUrl})`;
- }
-}
-
-function handleAdBannerUnderline(underline) {
- const underlineUrl = getMediaUrl(underline);
- const adBannerTitleUnderlineEl = document.getElementById(
- "ad-banner-title-underline"
- );
- if (adBannerTitleUnderlineEl && underlineUrl) {
- adBannerTitleUnderlineEl.innerHTML = ` `;
- }
-}
-
-function handleAdBannerSignUpButton({
- theme,
- style,
- link: { label, href, target, slug },
-}) {
- const signUpButtonEl = document.getElementById("ad-banner-sign-up-button");
- if (signUpButtonEl) {
- signUpButtonEl.innerHTML = `
-
-
- ${label}
-
- `;
- signUpButtonEl.style = getStyle(style);
- }
-}
-
-function handleAdBannerSelfHostButton({
- theme,
- style,
- link: { label, href, target, slug },
-}) {
- const selfHostButtonEl = document.getElementById(
- "ad-banner-self-host-button"
- );
- if (selfHostButtonEl) {
- if (href === "#") {
- selfHostButtonEl.innerHTML = `
-
-
- ${label}
-
- `;
- function showDialog(e) {
- e.preventDefault();
- e.stopPropagation();
-
- const dialogEl = document.querySelector(".ad-dialog");
- if (!dialogEl) return;
- dialogEl.classList.add("show");
- lockBodyScroll(true);
- handleDialogAnimate(true)
- }
- selfHostButtonEl.addEventListener("click", showDialog);
- } else {
- selfHostButtonEl.innerHTML = `
-
-
- ${label}
-
- `;
- }
- selfHostButtonEl.style = getStyle(style);
- }
-}
-
-// 处理广告计划响应
-function handleAdPlanResponse(response) {
- // 在此实现广告计划处理逻辑
- try {
- const {
- data: {
- attributes: { title, description, plans },
- },
- } = response;
- handleAdPlanTitle(title);
- handleAdPlanDescription(description);
- handleAdPlanPlans(plans);
- } catch (error) {
- console.error("处理广告计划响应时出错:", error);
- }
-}
-
-function handleAdPlanTitle(title) {
- const planTitleEl = document.getElementById("ad-plan-title");
- if (planTitleEl && title) {
- planTitleEl.textContent = title;
- }
-}
-
-function handleAdPlanDescription(description) {
- const planDescriptionEl = document.getElementById("ad-plan-description");
- if (planDescriptionEl && description) {
- planDescriptionEl.textContent = description;
- }
-}
-
-async function handleAdPlanPlans(plans) {
- const planContentEl = document.getElementById("ad-plan-content");
- if (planContentEl && Array.isArray(plans)) {
- const prevPlanItems = planContentEl.querySelectorAll(".plan-item");
-
- for (const prevPlanItem of prevPlanItems) {
- prevPlanItem.classList.add(
- "animate__animated",
- "animate__backOutDown"
- );
- prevPlanItem.addEventListener(
- "animationend",
- () => {
- prevPlanItem.remove();
- },
- { once: true }
- );
- }
-
- plans.sort((a, b) => a.priority - b.priority);
- for (const plan of plans) {
- const planItemEl = document.createElement("div");
- planItemEl.className = `plan-item ${plan.activated ? "active" : ""
- }`;
- planItemEl.innerHTML = `
- ${plan.tag ? `${plan.tag}
` : ""}
-
- ${plan.title}
-
-
-
- ${plan.price.current}
-
- ${plan.price.payment ?? ""}
-
-
-
- ${plan.price.original ?? ""}
-
-
-
-
-
- ${plan.features
- .map((feature) => {
- const iconUrl = feature.icon.data
- ? getMediaUrl(feature.icon)
- : "../img/ad/checked.svg";
- return `
-
-
-
-
-
- ${feature.text}
-
-
- `;
- })
- .join("")}
-
-
- `;
- planContentEl.appendChild(planItemEl);
- planItemEl.classList.add(
- "animate__animated",
- "animate__backInUp",
- "animate__faster",
- "animate__delay-1s"
- );
- couldAdPlanElAnimate[`${plan.id}`] = false;
- planItemEl.addEventListener(
- "animationend",
- () => {
- planItemEl.classList.remove(
- "animate__backInUp",
- "animate__faster",
- "animate__delay-1s"
- );
- couldAdPlanElAnimate[`${plan.id}`] = true;
- },
- { once: true }
- );
-
- await new Promise((resolve) => {
- setTimeout(resolve, 150);
- });
- }
-
- overridePlanButton();
- }
-}
-
-// 处理广告介绍响应
-function handleAdIntroResponse(response) {
- try {
- const {
- data: {
- attributes: { title, description, intros },
- },
- } = response;
- handleAdIntroTitle(title);
- handleAdIntroDescription(description);
- handleAdIntroIntros(intros);
- } catch (error) {
- console.error("处理广告介绍响应时出错:", error);
- }
-}
-
-function handleAdIntroTitle(title) {
- const introTitleEl = document.getElementById("ad-intro-title");
- if (introTitleEl && title) {
- introTitleEl.textContent = title;
- }
-}
-
-function handleAdIntroDescription(description) {
- const introDescriptionEl = document.getElementById("ad-intro-description");
- if (introDescriptionEl && description) {
- introDescriptionEl.textContent = description;
- }
-}
-
-async function handleAdIntroIntros(intros) {
- const introContentEl = document.getElementById("ad-intro-content");
- if (introContentEl && Array.isArray(intros)) {
- const prevIntroItems =
- introContentEl.querySelectorAll(".ad-intro-item");
- for (const prevIntroItem of prevIntroItems) {
- prevIntroItem.classList.add(
- "animate__animated",
- "animate__zoomOut"
- );
- prevIntroItem.addEventListener(
- "animationend",
- () => {
- prevIntroItem.remove();
- },
- { once: true }
- );
- }
-
- intros.sort((a, b) => a.priority - b.priority);
-
- for (const intro of intros) {
- const introItemEl = document.createElement("div");
- const barUrl = intro.bar.data
- ? getMediaUrl(intro.bar)
- : "../img/ad/intro-card-head.png";
- const coverUrl = intro.cover.data
- ? getMediaUrl(intro.cover)
- : `../img/ad/intro-card-img${intro.priority + 1}.svg`;
- introItemEl.className = "ad-intro-item";
- introItemEl.innerHTML = `
-
-
-
-
-
- ${intro.title}
-
-
- ${intro.description}
-
- `;
- introContentEl.appendChild(introItemEl);
- introItemEl.classList.add(
- "animate__animated",
- "animate__zoomIn",
- "animate__delay-1s"
- );
- couldAdIntroElAnimate[`${intro.id}`] = false;
-
- introItemEl.addEventListener(
- "animationend",
- () => {
- introItemEl.classList.remove(
- "animate__zoomIn",
- "animate__delay-1s"
- );
- couldAdIntroElAnimate[`${intro.id}`] = true;
- },
- { once: true }
- );
- await new Promise((resolve) => {
- setTimeout(resolve, 150);
- });
- }
- }
-}
-
-// 错误处理函数
-function handleError(error) {
- console.error("获取数据时出错:", error);
-}
-
-// 插入广告栏元素
-function insertAdBarElement() {
- const adBarHTML = `
-
-
-
-
-
-
-
-
- `;
- const headerElement = document.getElementsByTagName("header")[0];
- if (headerElement) {
- headerElement.insertAdjacentHTML("afterbegin", adBarHTML);
- }
-
- // 添加广告按钮点击事件
- const adButton = document.getElementById("ad-btn");
- if (adButton) {
- adButton.addEventListener("click", () => {
- window.location.href = "ad.html";
- });
- }
-}
-
-// 插入广告样式表
-function insertAdStylesheet() {
- const adStylesheet = document.createElement("link");
- adStylesheet.rel = "stylesheet";
- adStylesheet.type = "text/css";
- adStylesheet.href = "../css/ad.css";
- document.head.appendChild(adStylesheet);
-}
-
-// 更新广告栏内容
-function updateAdBar({ background, text, buttonText }) {
- insertAdBarElement();
-
- const adWrapper = document.getElementById("ad");
- if (!adWrapper) return;
-
- // 设置背景图片
- const backgroundUrl = background?.data?.attributes?.url;
- if (backgroundUrl) {
- adWrapper.style.backgroundImage = `url(https://cms.hitosea.com${backgroundUrl})`;
- }
-
- // 更新文本内容
- const textElement = adWrapper.querySelector(".ad-text");
- if (textElement) {
- textElement.textContent = text;
- }
-
- // 更新按钮文本
- const buttonElement = adWrapper.querySelector(".ad-btn");
- if (buttonElement) {
- buttonElement.textContent = buttonText;
- }
-
- initializeAdBar();
-}
-
-// 设置导航栏背景颜色
-function setNavBackgroundColor() {
- const navWrapper = document.getElementsByClassName("nav")[0];
- navWrapper.style.backgroundColor = "#fff";
-}
-
-// 管理动画
-function manageAnimate() {
- let throttleTimer = null;
- const throttle = (callback, time) => {
- if (throttleTimer) return;
- throttleTimer = true;
- setTimeout(() => {
- callback();
- throttleTimer = false;
- }, time);
- };
-
- window.addEventListener("scroll", () => {
- throttle(() => {
- detectAdPlanEl();
- detectAdIntroEl();
- }, 200);
- });
-}
-
-const couldAdPlanElAnimate = {};
-const couldAdIntroElAnimate = {};
-
-function detectAdPlanEl() {
- const adPlanEl = document.querySelector(".ad-plan");
- if (isElementOutOfViewport(adPlanEl)) {
- const els = document.querySelectorAll(".plan-item");
- for (const el of els) {
- couldAdPlanElAnimate[`${el.id}`] = true;
- }
- return;
- }
-
- const _couldAdPlanElAnimate =
- Object.values(couldAdPlanElAnimate).every(Boolean);
- if (!_couldAdPlanElAnimate) return;
- if (isElementPartiallyInViewport(adPlanEl)) {
- const els = document.querySelectorAll(".plan-item");
- for (const el of els) {
- el.classList.add("animate__flipInX");
- couldAdPlanElAnimate[`${el.id}`] = false;
- el.addEventListener(
- "animationend",
- () => {
- el.classList.remove("animate__flipInX");
- },
- { once: true }
- );
- }
- return;
- }
-}
-
-function detectAdIntroEl() {
- const adIntroEl = document.querySelector(".ad-intro");
- if (isElementOutOfViewport(adIntroEl)) {
- const els = document.querySelectorAll(".ad-intro-item");
- for (const el of els) {
- couldAdIntroElAnimate[`${el.id}`] = true;
- }
- return;
- }
-
- const _couldAdIntroElAnimate = Object.values(couldAdIntroElAnimate).every(
- Boolean
- );
- if (!_couldAdIntroElAnimate) return;
- if (isElementPartiallyInViewport(adIntroEl)) {
- const els = document.querySelectorAll(".ad-intro-item");
- for (const el of els) {
- el.classList.add("animate__zoomIn");
- couldAdIntroElAnimate[`${el.id}`] = false;
- el.addEventListener(
- "animationend",
- () => {
- el.classList.remove("animate__zoomIn");
- },
- { once: true }
- );
- }
- return;
- }
-}
-
-function isElementPartiallyInViewport(el) {
- if (!el) return false;
- const rect = el.getBoundingClientRect();
- return (
- rect.top <
- (window.innerHeight || document.documentElement.clientHeight) &&
- rect.bottom > 0 &&
- rect.left <
- (window.innerWidth || document.documentElement.clientWidth) &&
- rect.right > 0
- );
-}
-
-function isElementOutOfViewport(el) {
- if (!el) return false;
- const rect = el.getBoundingClientRect();
- return (
- rect.bottom < 0 ||
- rect.top >
- (window.innerHeight || document.documentElement.clientHeight) ||
- rect.right < 0 ||
- rect.left > (window.innerWidth || document.documentElement.clientWidth)
- );
-}
-
-function handleDialog() {
- const dialogEl = document.querySelector(".ad-dialog");
- if (!dialogEl) return;
-
- lockBodyScroll(dialogEl.classList.contains("show"));
- overridePlanButton();
-
- const dialogBackdropEl = dialogEl.querySelector(".ad-dialog-backdrop");
- if (dialogBackdropEl) {
- dialogBackdropEl.addEventListener("click", () => {
- dialogEl.classList.remove("show");
- lockBodyScroll(false);
- handleDialogAnimate(false)
- });
- }
-
- const dialogFooterBtnEl = dialogEl.querySelector(".ad-dialog-footer-btn");
- if (dialogFooterBtnEl) {
- dialogFooterBtnEl.addEventListener("click", () => {
- dialogEl.classList.remove("show");
- lockBodyScroll(false);
- handleDialogAnimate(false)
- });
- }
-}
-
-function lockBodyScroll(bool) {
- document.body.style.overflowY = bool ? "hidden" : "auto";
-}
-
-function overridePlanButton() {
- function showDialog(e) {
- e.preventDefault();
- e.stopPropagation();
-
- const dialogEl = document.querySelector(".ad-dialog");
- if (!dialogEl) return;
- dialogEl.classList.add("show");
- lockBodyScroll(true);
- handleDialogAnimate(true)
- }
-
- const planButtonEl = document.querySelectorAll(".plan-item-button");
- planButtonEl.forEach((el) => {
- el.removeEventListener("click", showDialog);
-
- const aEl = el.querySelector("a");
- if (!aEl.href || aEl.href.includes("#")) {
- aEl.removeAttribute("href");
- el.addEventListener("click", showDialog);
- }
- });
-}
-
-function handleDialogAnimate(bool) {
- const dialogEl = document.querySelector(".ad-dialog");
- if (!dialogEl) return;
-
- const dialogWrapperEl = dialogEl.querySelector(".ad-dialog-wrapper");
- if (!dialogWrapperEl) return;
-
- if (bool) {
- dialogWrapperEl.classList.add("animate__animated", "animate__bounceIn", "animate__faster");
- dialogWrapperEl.addEventListener("animationend", () => {
- dialogWrapperEl.classList.remove("animate__animated", "animate__bounceIn", "animate__faster")
- })
- } else {
- dialogWrapperEl.classList.remove("animate__animated", "animate__bounceIn", "animate__faster")
- }
-}
\ No newline at end of file
diff --git a/public/site/js/axios.js b/public/site/js/axios.js
deleted file mode 100644
index b662228e7..000000000
--- a/public/site/js/axios.js
+++ /dev/null
@@ -1,2972 +0,0 @@
-// Axios v1.3.6 Copyright (c) 2023 Matt Zabriskie and contributors
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.axios = factory());
-})(this, (function () { 'use strict';
-
- function _typeof(obj) {
- "@babel/helpers - typeof";
-
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
- return typeof obj;
- } : function (obj) {
- return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
- }, _typeof(obj);
- }
- function _classCallCheck(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
- }
- function _defineProperties(target, props) {
- for (var i = 0; i < props.length; i++) {
- var descriptor = props[i];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor) descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
- }
- function _createClass(Constructor, protoProps, staticProps) {
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
- if (staticProps) _defineProperties(Constructor, staticProps);
- Object.defineProperty(Constructor, "prototype", {
- writable: false
- });
- return Constructor;
- }
- function _slicedToArray(arr, i) {
- return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
- }
- function _arrayWithHoles(arr) {
- if (Array.isArray(arr)) return arr;
- }
- function _iterableToArrayLimit(arr, i) {
- var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
- if (_i == null) return;
- var _arr = [];
- var _n = true;
- var _d = false;
- var _s, _e;
- try {
- for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
- _arr.push(_s.value);
- if (i && _arr.length === i) break;
- }
- } catch (err) {
- _d = true;
- _e = err;
- } finally {
- try {
- if (!_n && _i["return"] != null) _i["return"]();
- } finally {
- if (_d) throw _e;
- }
- }
- return _arr;
- }
- function _unsupportedIterableToArray(o, minLen) {
- if (!o) return;
- if (typeof o === "string") return _arrayLikeToArray(o, minLen);
- var n = Object.prototype.toString.call(o).slice(8, -1);
- if (n === "Object" && o.constructor) n = o.constructor.name;
- if (n === "Map" || n === "Set") return Array.from(o);
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
- }
- function _arrayLikeToArray(arr, len) {
- if (len == null || len > arr.length) len = arr.length;
- for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
- return arr2;
- }
- function _nonIterableRest() {
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
- }
-
- function bind(fn, thisArg) {
- return function wrap() {
- return fn.apply(thisArg, arguments);
- };
- }
-
- // utils is a library of generic helper functions non-specific to axios
-
- var toString = Object.prototype.toString;
- var getPrototypeOf = Object.getPrototypeOf;
- var kindOf = function (cache) {
- return function (thing) {
- var str = toString.call(thing);
- return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());
- };
- }(Object.create(null));
- var kindOfTest = function kindOfTest(type) {
- type = type.toLowerCase();
- return function (thing) {
- return kindOf(thing) === type;
- };
- };
- var typeOfTest = function typeOfTest(type) {
- return function (thing) {
- return _typeof(thing) === type;
- };
- };
-
- /**
- * Determine if a value is an Array
- *
- * @param {Object} val The value to test
- *
- * @returns {boolean} True if value is an Array, otherwise false
- */
- var isArray = Array.isArray;
-
- /**
- * Determine if a value is undefined
- *
- * @param {*} val The value to test
- *
- * @returns {boolean} True if the value is undefined, otherwise false
- */
- var isUndefined = typeOfTest('undefined');
-
- /**
- * Determine if a value is a Buffer
- *
- * @param {*} val The value to test
- *
- * @returns {boolean} True if value is a Buffer, otherwise false
- */
- function isBuffer(val) {
- return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);
- }
-
- /**
- * Determine if a value is an ArrayBuffer
- *
- * @param {*} val The value to test
- *
- * @returns {boolean} True if value is an ArrayBuffer, otherwise false
- */
- var isArrayBuffer = kindOfTest('ArrayBuffer');
-
- /**
- * Determine if a value is a view on an ArrayBuffer
- *
- * @param {*} val The value to test
- *
- * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false
- */
- function isArrayBufferView(val) {
- var result;
- if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {
- result = ArrayBuffer.isView(val);
- } else {
- result = val && val.buffer && isArrayBuffer(val.buffer);
- }
- return result;
- }
-
- /**
- * Determine if a value is a String
- *
- * @param {*} val The value to test
- *
- * @returns {boolean} True if value is a String, otherwise false
- */
- var isString = typeOfTest('string');
-
- /**
- * Determine if a value is a Function
- *
- * @param {*} val The value to test
- * @returns {boolean} True if value is a Function, otherwise false
- */
- var isFunction = typeOfTest('function');
-
- /**
- * Determine if a value is a Number
- *
- * @param {*} val The value to test
- *
- * @returns {boolean} True if value is a Number, otherwise false
- */
- var isNumber = typeOfTest('number');
-
- /**
- * Determine if a value is an Object
- *
- * @param {*} thing The value to test
- *
- * @returns {boolean} True if value is an Object, otherwise false
- */
- var isObject = function isObject(thing) {
- return thing !== null && _typeof(thing) === 'object';
- };
-
- /**
- * Determine if a value is a Boolean
- *
- * @param {*} thing The value to test
- * @returns {boolean} True if value is a Boolean, otherwise false
- */
- var isBoolean = function isBoolean(thing) {
- return thing === true || thing === false;
- };
-
- /**
- * Determine if a value is a plain Object
- *
- * @param {*} val The value to test
- *
- * @returns {boolean} True if value is a plain Object, otherwise false
- */
- var isPlainObject = function isPlainObject(val) {
- if (kindOf(val) !== 'object') {
- return false;
- }
- var prototype = getPrototypeOf(val);
- return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);
- };
-
- /**
- * Determine if a value is a Date
- *
- * @param {*} val The value to test
- *
- * @returns {boolean} True if value is a Date, otherwise false
- */
- var isDate = kindOfTest('Date');
-
- /**
- * Determine if a value is a File
- *
- * @param {*} val The value to test
- *
- * @returns {boolean} True if value is a File, otherwise false
- */
- var isFile = kindOfTest('File');
-
- /**
- * Determine if a value is a Blob
- *
- * @param {*} val The value to test
- *
- * @returns {boolean} True if value is a Blob, otherwise false
- */
- var isBlob = kindOfTest('Blob');
-
- /**
- * Determine if a value is a FileList
- *
- * @param {*} val The value to test
- *
- * @returns {boolean} True if value is a File, otherwise false
- */
- var isFileList = kindOfTest('FileList');
-
- /**
- * Determine if a value is a Stream
- *
- * @param {*} val The value to test
- *
- * @returns {boolean} True if value is a Stream, otherwise false
- */
- var isStream = function isStream(val) {
- return isObject(val) && isFunction(val.pipe);
- };
-
- /**
- * Determine if a value is a FormData
- *
- * @param {*} thing The value to test
- *
- * @returns {boolean} True if value is an FormData, otherwise false
- */
- var isFormData = function isFormData(thing) {
- var kind;
- return thing && (typeof FormData === 'function' && thing instanceof FormData || isFunction(thing.append) && ((kind = kindOf(thing)) === 'formdata' ||
- // detect form-data instance
- kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]'));
- };
-
- /**
- * Determine if a value is a URLSearchParams object
- *
- * @param {*} val The value to test
- *
- * @returns {boolean} True if value is a URLSearchParams object, otherwise false
- */
- var isURLSearchParams = kindOfTest('URLSearchParams');
-
- /**
- * Trim excess whitespace off the beginning and end of a string
- *
- * @param {String} str The String to trim
- *
- * @returns {String} The String freed of excess whitespace
- */
- var trim = function trim(str) {
- return str.trim ? str.trim() : str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
- };
-
- /**
- * Iterate over an Array or an Object invoking a function for each item.
- *
- * If `obj` is an Array callback will be called passing
- * the value, index, and complete array for each item.
- *
- * If 'obj' is an Object callback will be called passing
- * the value, key, and complete object for each property.
- *
- * @param {Object|Array} obj The object to iterate
- * @param {Function} fn The callback to invoke for each item
- *
- * @param {Boolean} [allOwnKeys = false]
- * @returns {any}
- */
- function forEach(obj, fn) {
- var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
- _ref$allOwnKeys = _ref.allOwnKeys,
- allOwnKeys = _ref$allOwnKeys === void 0 ? false : _ref$allOwnKeys;
- // Don't bother if no value provided
- if (obj === null || typeof obj === 'undefined') {
- return;
- }
- var i;
- var l;
-
- // Force an array if not already something iterable
- if (_typeof(obj) !== 'object') {
- /*eslint no-param-reassign:0*/
- obj = [obj];
- }
- if (isArray(obj)) {
- // Iterate over array values
- for (i = 0, l = obj.length; i < l; i++) {
- fn.call(null, obj[i], i, obj);
- }
- } else {
- // Iterate over object keys
- var keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);
- var len = keys.length;
- var key;
- for (i = 0; i < len; i++) {
- key = keys[i];
- fn.call(null, obj[key], key, obj);
- }
- }
- }
- function findKey(obj, key) {
- key = key.toLowerCase();
- var keys = Object.keys(obj);
- var i = keys.length;
- var _key;
- while (i-- > 0) {
- _key = keys[i];
- if (key === _key.toLowerCase()) {
- return _key;
- }
- }
- return null;
- }
- var _global = function () {
- /*eslint no-undef:0*/
- if (typeof globalThis !== "undefined") return globalThis;
- return typeof self !== "undefined" ? self : typeof window !== 'undefined' ? window : global;
- }();
- var isContextDefined = function isContextDefined(context) {
- return !isUndefined(context) && context !== _global;
- };
-
- /**
- * Accepts varargs expecting each argument to be an object, then
- * immutably merges the properties of each object and returns result.
- *
- * When multiple objects contain the same key the later object in
- * the arguments list will take precedence.
- *
- * Example:
- *
- * ```js
- * var result = merge({foo: 123}, {foo: 456});
- * console.log(result.foo); // outputs 456
- * ```
- *
- * @param {Object} obj1 Object to merge
- *
- * @returns {Object} Result of all merge properties
- */
- function /* obj1, obj2, obj3, ... */
- merge() {
- var _ref2 = isContextDefined(this) && this || {},
- caseless = _ref2.caseless;
- var result = {};
- var assignValue = function assignValue(val, key) {
- var targetKey = caseless && findKey(result, key) || key;
- if (isPlainObject(result[targetKey]) && isPlainObject(val)) {
- result[targetKey] = merge(result[targetKey], val);
- } else if (isPlainObject(val)) {
- result[targetKey] = merge({}, val);
- } else if (isArray(val)) {
- result[targetKey] = val.slice();
- } else {
- result[targetKey] = val;
- }
- };
- for (var i = 0, l = arguments.length; i < l; i++) {
- arguments[i] && forEach(arguments[i], assignValue);
- }
- return result;
- }
-
- /**
- * Extends object a by mutably adding to it the properties of object b.
- *
- * @param {Object} a The object to be extended
- * @param {Object} b The object to copy properties from
- * @param {Object} thisArg The object to bind function to
- *
- * @param {Boolean} [allOwnKeys]
- * @returns {Object} The resulting value of object a
- */
- var extend = function extend(a, b, thisArg) {
- var _ref3 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {},
- allOwnKeys = _ref3.allOwnKeys;
- forEach(b, function (val, key) {
- if (thisArg && isFunction(val)) {
- a[key] = bind(val, thisArg);
- } else {
- a[key] = val;
- }
- }, {
- allOwnKeys: allOwnKeys
- });
- return a;
- };
-
- /**
- * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)
- *
- * @param {string} content with BOM
- *
- * @returns {string} content value without BOM
- */
- var stripBOM = function stripBOM(content) {
- if (content.charCodeAt(0) === 0xFEFF) {
- content = content.slice(1);
- }
- return content;
- };
-
- /**
- * Inherit the prototype methods from one constructor into another
- * @param {function} constructor
- * @param {function} superConstructor
- * @param {object} [props]
- * @param {object} [descriptors]
- *
- * @returns {void}
- */
- var inherits = function inherits(constructor, superConstructor, props, descriptors) {
- constructor.prototype = Object.create(superConstructor.prototype, descriptors);
- constructor.prototype.constructor = constructor;
- Object.defineProperty(constructor, 'super', {
- value: superConstructor.prototype
- });
- props && Object.assign(constructor.prototype, props);
- };
-
- /**
- * Resolve object with deep prototype chain to a flat object
- * @param {Object} sourceObj source object
- * @param {Object} [destObj]
- * @param {Function|Boolean} [filter]
- * @param {Function} [propFilter]
- *
- * @returns {Object}
- */
- var toFlatObject = function toFlatObject(sourceObj, destObj, filter, propFilter) {
- var props;
- var i;
- var prop;
- var merged = {};
- destObj = destObj || {};
- // eslint-disable-next-line no-eq-null,eqeqeq
- if (sourceObj == null) return destObj;
- do {
- props = Object.getOwnPropertyNames(sourceObj);
- i = props.length;
- while (i-- > 0) {
- prop = props[i];
- if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {
- destObj[prop] = sourceObj[prop];
- merged[prop] = true;
- }
- }
- sourceObj = filter !== false && getPrototypeOf(sourceObj);
- } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);
- return destObj;
- };
-
- /**
- * Determines whether a string ends with the characters of a specified string
- *
- * @param {String} str
- * @param {String} searchString
- * @param {Number} [position= 0]
- *
- * @returns {boolean}
- */
- var endsWith = function endsWith(str, searchString, position) {
- str = String(str);
- if (position === undefined || position > str.length) {
- position = str.length;
- }
- position -= searchString.length;
- var lastIndex = str.indexOf(searchString, position);
- return lastIndex !== -1 && lastIndex === position;
- };
-
- /**
- * Returns new array from array like object or null if failed
- *
- * @param {*} [thing]
- *
- * @returns {?Array}
- */
- var toArray = function toArray(thing) {
- if (!thing) return null;
- if (isArray(thing)) return thing;
- var i = thing.length;
- if (!isNumber(i)) return null;
- var arr = new Array(i);
- while (i-- > 0) {
- arr[i] = thing[i];
- }
- return arr;
- };
-
- /**
- * Checking if the Uint8Array exists and if it does, it returns a function that checks if the
- * thing passed in is an instance of Uint8Array
- *
- * @param {TypedArray}
- *
- * @returns {Array}
- */
- // eslint-disable-next-line func-names
- var isTypedArray = function (TypedArray) {
- // eslint-disable-next-line func-names
- return function (thing) {
- return TypedArray && thing instanceof TypedArray;
- };
- }(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));
-
- /**
- * For each entry in the object, call the function with the key and value.
- *
- * @param {Object} obj - The object to iterate over.
- * @param {Function} fn - The function to call for each entry.
- *
- * @returns {void}
- */
- var forEachEntry = function forEachEntry(obj, fn) {
- var generator = obj && obj[Symbol.iterator];
- var iterator = generator.call(obj);
- var result;
- while ((result = iterator.next()) && !result.done) {
- var pair = result.value;
- fn.call(obj, pair[0], pair[1]);
- }
- };
-
- /**
- * It takes a regular expression and a string, and returns an array of all the matches
- *
- * @param {string} regExp - The regular expression to match against.
- * @param {string} str - The string to search.
- *
- * @returns {Array}
- */
- var matchAll = function matchAll(regExp, str) {
- var matches;
- var arr = [];
- while ((matches = regExp.exec(str)) !== null) {
- arr.push(matches);
- }
- return arr;
- };
-
- /* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */
- var isHTMLForm = kindOfTest('HTMLFormElement');
- var toCamelCase = function toCamelCase(str) {
- return str.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g, function replacer(m, p1, p2) {
- return p1.toUpperCase() + p2;
- });
- };
-
- /* Creating a function that will check if an object has a property. */
- var hasOwnProperty = function (_ref4) {
- var hasOwnProperty = _ref4.hasOwnProperty;
- return function (obj, prop) {
- return hasOwnProperty.call(obj, prop);
- };
- }(Object.prototype);
-
- /**
- * Determine if a value is a RegExp object
- *
- * @param {*} val The value to test
- *
- * @returns {boolean} True if value is a RegExp object, otherwise false
- */
- var isRegExp = kindOfTest('RegExp');
- var reduceDescriptors = function reduceDescriptors(obj, reducer) {
- var descriptors = Object.getOwnPropertyDescriptors(obj);
- var reducedDescriptors = {};
- forEach(descriptors, function (descriptor, name) {
- if (reducer(descriptor, name, obj) !== false) {
- reducedDescriptors[name] = descriptor;
- }
- });
- Object.defineProperties(obj, reducedDescriptors);
- };
-
- /**
- * Makes all methods read-only
- * @param {Object} obj
- */
-
- var freezeMethods = function freezeMethods(obj) {
- reduceDescriptors(obj, function (descriptor, name) {
- // skip restricted props in strict mode
- if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {
- return false;
- }
- var value = obj[name];
- if (!isFunction(value)) return;
- descriptor.enumerable = false;
- if ('writable' in descriptor) {
- descriptor.writable = false;
- return;
- }
- if (!descriptor.set) {
- descriptor.set = function () {
- throw Error('Can not rewrite read-only method \'' + name + '\'');
- };
- }
- });
- };
- var toObjectSet = function toObjectSet(arrayOrString, delimiter) {
- var obj = {};
- var define = function define(arr) {
- arr.forEach(function (value) {
- obj[value] = true;
- });
- };
- isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));
- return obj;
- };
- var noop = function noop() {};
- var toFiniteNumber = function toFiniteNumber(value, defaultValue) {
- value = +value;
- return Number.isFinite(value) ? value : defaultValue;
- };
- var ALPHA = 'abcdefghijklmnopqrstuvwxyz';
- var DIGIT = '0123456789';
- var ALPHABET = {
- DIGIT: DIGIT,
- ALPHA: ALPHA,
- ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT
- };
- var generateString = function generateString() {
- var size = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 16;
- var alphabet = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ALPHABET.ALPHA_DIGIT;
- var str = '';
- var length = alphabet.length;
- while (size--) {
- str += alphabet[Math.random() * length | 0];
- }
- return str;
- };
-
- /**
- * If the thing is a FormData object, return true, otherwise return false.
- *
- * @param {unknown} thing - The thing to check.
- *
- * @returns {boolean}
- */
- function isSpecCompliantForm(thing) {
- return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);
- }
- var toJSONObject = function toJSONObject(obj) {
- var stack = new Array(10);
- var visit = function visit(source, i) {
- if (isObject(source)) {
- if (stack.indexOf(source) >= 0) {
- return;
- }
- if (!('toJSON' in source)) {
- stack[i] = source;
- var target = isArray(source) ? [] : {};
- forEach(source, function (value, key) {
- var reducedValue = visit(value, i + 1);
- !isUndefined(reducedValue) && (target[key] = reducedValue);
- });
- stack[i] = undefined;
- return target;
- }
- }
- return source;
- };
- return visit(obj, 0);
- };
- var utils = {
- isArray: isArray,
- isArrayBuffer: isArrayBuffer,
- isBuffer: isBuffer,
- isFormData: isFormData,
- isArrayBufferView: isArrayBufferView,
- isString: isString,
- isNumber: isNumber,
- isBoolean: isBoolean,
- isObject: isObject,
- isPlainObject: isPlainObject,
- isUndefined: isUndefined,
- isDate: isDate,
- isFile: isFile,
- isBlob: isBlob,
- isRegExp: isRegExp,
- isFunction: isFunction,
- isStream: isStream,
- isURLSearchParams: isURLSearchParams,
- isTypedArray: isTypedArray,
- isFileList: isFileList,
- forEach: forEach,
- merge: merge,
- extend: extend,
- trim: trim,
- stripBOM: stripBOM,
- inherits: inherits,
- toFlatObject: toFlatObject,
- kindOf: kindOf,
- kindOfTest: kindOfTest,
- endsWith: endsWith,
- toArray: toArray,
- forEachEntry: forEachEntry,
- matchAll: matchAll,
- isHTMLForm: isHTMLForm,
- hasOwnProperty: hasOwnProperty,
- hasOwnProp: hasOwnProperty,
- // an alias to avoid ESLint no-prototype-builtins detection
- reduceDescriptors: reduceDescriptors,
- freezeMethods: freezeMethods,
- toObjectSet: toObjectSet,
- toCamelCase: toCamelCase,
- noop: noop,
- toFiniteNumber: toFiniteNumber,
- findKey: findKey,
- global: _global,
- isContextDefined: isContextDefined,
- ALPHABET: ALPHABET,
- generateString: generateString,
- isSpecCompliantForm: isSpecCompliantForm,
- toJSONObject: toJSONObject
- };
-
- /**
- * Create an Error with the specified message, config, error code, request and response.
- *
- * @param {string} message The error message.
- * @param {string} [code] The error code (for example, 'ECONNABORTED').
- * @param {Object} [config] The config.
- * @param {Object} [request] The request.
- * @param {Object} [response] The response.
- *
- * @returns {Error} The created error.
- */
- function AxiosError(message, code, config, request, response) {
- Error.call(this);
- if (Error.captureStackTrace) {
- Error.captureStackTrace(this, this.constructor);
- } else {
- this.stack = new Error().stack;
- }
- this.message = message;
- this.name = 'AxiosError';
- code && (this.code = code);
- config && (this.config = config);
- request && (this.request = request);
- response && (this.response = response);
- }
- utils.inherits(AxiosError, Error, {
- toJSON: function toJSON() {
- return {
- // Standard
- message: this.message,
- name: this.name,
- // Microsoft
- description: this.description,
- number: this.number,
- // Mozilla
- fileName: this.fileName,
- lineNumber: this.lineNumber,
- columnNumber: this.columnNumber,
- stack: this.stack,
- // Axios
- config: utils.toJSONObject(this.config),
- code: this.code,
- status: this.response && this.response.status ? this.response.status : null
- };
- }
- });
- var prototype$1 = AxiosError.prototype;
- var descriptors = {};
- ['ERR_BAD_OPTION_VALUE', 'ERR_BAD_OPTION', 'ECONNABORTED', 'ETIMEDOUT', 'ERR_NETWORK', 'ERR_FR_TOO_MANY_REDIRECTS', 'ERR_DEPRECATED', 'ERR_BAD_RESPONSE', 'ERR_BAD_REQUEST', 'ERR_CANCELED', 'ERR_NOT_SUPPORT', 'ERR_INVALID_URL'
- // eslint-disable-next-line func-names
- ].forEach(function (code) {
- descriptors[code] = {
- value: code
- };
- });
- Object.defineProperties(AxiosError, descriptors);
- Object.defineProperty(prototype$1, 'isAxiosError', {
- value: true
- });
-
- // eslint-disable-next-line func-names
- AxiosError.from = function (error, code, config, request, response, customProps) {
- var axiosError = Object.create(prototype$1);
- utils.toFlatObject(error, axiosError, function filter(obj) {
- return obj !== Error.prototype;
- }, function (prop) {
- return prop !== 'isAxiosError';
- });
- AxiosError.call(axiosError, error.message, code, config, request, response);
- axiosError.cause = error;
- axiosError.name = error.name;
- customProps && Object.assign(axiosError, customProps);
- return axiosError;
- };
-
- // eslint-disable-next-line strict
- var httpAdapter = null;
-
- /**
- * Determines if the given thing is a array or js object.
- *
- * @param {string} thing - The object or array to be visited.
- *
- * @returns {boolean}
- */
- function isVisitable(thing) {
- return utils.isPlainObject(thing) || utils.isArray(thing);
- }
-
- /**
- * It removes the brackets from the end of a string
- *
- * @param {string} key - The key of the parameter.
- *
- * @returns {string} the key without the brackets.
- */
- function removeBrackets(key) {
- return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;
- }
-
- /**
- * It takes a path, a key, and a boolean, and returns a string
- *
- * @param {string} path - The path to the current key.
- * @param {string} key - The key of the current object being iterated over.
- * @param {string} dots - If true, the key will be rendered with dots instead of brackets.
- *
- * @returns {string} The path to the current key.
- */
- function renderKey(path, key, dots) {
- if (!path) return key;
- return path.concat(key).map(function each(token, i) {
- // eslint-disable-next-line no-param-reassign
- token = removeBrackets(token);
- return !dots && i ? '[' + token + ']' : token;
- }).join(dots ? '.' : '');
- }
-
- /**
- * If the array is an array and none of its elements are visitable, then it's a flat array.
- *
- * @param {Array} arr - The array to check
- *
- * @returns {boolean}
- */
- function isFlatArray(arr) {
- return utils.isArray(arr) && !arr.some(isVisitable);
- }
- var predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {
- return /^is[A-Z]/.test(prop);
- });
-
- /**
- * Convert a data object to FormData
- *
- * @param {Object} obj
- * @param {?Object} [formData]
- * @param {?Object} [options]
- * @param {Function} [options.visitor]
- * @param {Boolean} [options.metaTokens = true]
- * @param {Boolean} [options.dots = false]
- * @param {?Boolean} [options.indexes = false]
- *
- * @returns {Object}
- **/
-
- /**
- * It converts an object into a FormData object
- *
- * @param {Object} obj - The object to convert to form data.
- * @param {string} formData - The FormData object to append to.
- * @param {Object} options
- *
- * @returns
- */
- function toFormData(obj, formData, options) {
- if (!utils.isObject(obj)) {
- throw new TypeError('target must be an object');
- }
-
- // eslint-disable-next-line no-param-reassign
- formData = formData || new (FormData)();
-
- // eslint-disable-next-line no-param-reassign
- options = utils.toFlatObject(options, {
- metaTokens: true,
- dots: false,
- indexes: false
- }, false, function defined(option, source) {
- // eslint-disable-next-line no-eq-null,eqeqeq
- return !utils.isUndefined(source[option]);
- });
- var metaTokens = options.metaTokens;
- // eslint-disable-next-line no-use-before-define
- var visitor = options.visitor || defaultVisitor;
- var dots = options.dots;
- var indexes = options.indexes;
- var _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;
- var useBlob = _Blob && utils.isSpecCompliantForm(formData);
- if (!utils.isFunction(visitor)) {
- throw new TypeError('visitor must be a function');
- }
- function convertValue(value) {
- if (value === null) return '';
- if (utils.isDate(value)) {
- return value.toISOString();
- }
- if (!useBlob && utils.isBlob(value)) {
- throw new AxiosError('Blob is not supported. Use a Buffer instead.');
- }
- if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {
- return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);
- }
- return value;
- }
-
- /**
- * Default visitor.
- *
- * @param {*} value
- * @param {String|Number} key
- * @param {Array} path
- * @this {FormData}
- *
- * @returns {boolean} return true to visit the each prop of the value recursively
- */
- function defaultVisitor(value, key, path) {
- var arr = value;
- if (value && !path && _typeof(value) === 'object') {
- if (utils.endsWith(key, '{}')) {
- // eslint-disable-next-line no-param-reassign
- key = metaTokens ? key : key.slice(0, -2);
- // eslint-disable-next-line no-param-reassign
- value = JSON.stringify(value);
- } else if (utils.isArray(value) && isFlatArray(value) || (utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))) {
- // eslint-disable-next-line no-param-reassign
- key = removeBrackets(key);
- arr.forEach(function each(el, index) {
- !(utils.isUndefined(el) || el === null) && formData.append(
- // eslint-disable-next-line no-nested-ternary
- indexes === true ? renderKey([key], index, dots) : indexes === null ? key : key + '[]', convertValue(el));
- });
- return false;
- }
- }
- if (isVisitable(value)) {
- return true;
- }
- formData.append(renderKey(path, key, dots), convertValue(value));
- return false;
- }
- var stack = [];
- var exposedHelpers = Object.assign(predicates, {
- defaultVisitor: defaultVisitor,
- convertValue: convertValue,
- isVisitable: isVisitable
- });
- function build(value, path) {
- if (utils.isUndefined(value)) return;
- if (stack.indexOf(value) !== -1) {
- throw Error('Circular reference detected in ' + path.join('.'));
- }
- stack.push(value);
- utils.forEach(value, function each(el, key) {
- var result = !(utils.isUndefined(el) || el === null) && visitor.call(formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers);
- if (result === true) {
- build(el, path ? path.concat(key) : [key]);
- }
- });
- stack.pop();
- }
- if (!utils.isObject(obj)) {
- throw new TypeError('data must be an object');
- }
- build(obj);
- return formData;
- }
-
- /**
- * It encodes a string by replacing all characters that are not in the unreserved set with
- * their percent-encoded equivalents
- *
- * @param {string} str - The string to encode.
- *
- * @returns {string} The encoded string.
- */
- function encode$1(str) {
- var charMap = {
- '!': '%21',
- "'": '%27',
- '(': '%28',
- ')': '%29',
- '~': '%7E',
- '%20': '+',
- '%00': '\x00'
- };
- return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {
- return charMap[match];
- });
- }
-
- /**
- * It takes a params object and converts it to a FormData object
- *
- * @param {Object} params - The parameters to be converted to a FormData object.
- * @param {Object} options - The options object passed to the Axios constructor.
- *
- * @returns {void}
- */
- function AxiosURLSearchParams(params, options) {
- this._pairs = [];
- params && toFormData(params, this, options);
- }
- var prototype = AxiosURLSearchParams.prototype;
- prototype.append = function append(name, value) {
- this._pairs.push([name, value]);
- };
- prototype.toString = function toString(encoder) {
- var _encode = encoder ? function (value) {
- return encoder.call(this, value, encode$1);
- } : encode$1;
- return this._pairs.map(function each(pair) {
- return _encode(pair[0]) + '=' + _encode(pair[1]);
- }, '').join('&');
- };
-
- /**
- * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their
- * URI encoded counterparts
- *
- * @param {string} val The value to be encoded.
- *
- * @returns {string} The encoded value.
- */
- function encode(val) {
- return encodeURIComponent(val).replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']');
- }
-
- /**
- * Build a URL by appending params to the end
- *
- * @param {string} url The base of the url (e.g., http://www.google.com)
- * @param {object} [params] The params to be appended
- * @param {?object} options
- *
- * @returns {string} The formatted url
- */
- function buildURL(url, params, options) {
- /*eslint no-param-reassign:0*/
- if (!params) {
- return url;
- }
- var _encode = options && options.encode || encode;
- var serializeFn = options && options.serialize;
- var serializedParams;
- if (serializeFn) {
- serializedParams = serializeFn(params, options);
- } else {
- serializedParams = utils.isURLSearchParams(params) ? params.toString() : new AxiosURLSearchParams(params, options).toString(_encode);
- }
- if (serializedParams) {
- var hashmarkIndex = url.indexOf("#");
- if (hashmarkIndex !== -1) {
- url = url.slice(0, hashmarkIndex);
- }
- url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;
- }
- return url;
- }
-
- var InterceptorManager = /*#__PURE__*/function () {
- function InterceptorManager() {
- _classCallCheck(this, InterceptorManager);
- this.handlers = [];
- }
-
- /**
- * Add a new interceptor to the stack
- *
- * @param {Function} fulfilled The function to handle `then` for a `Promise`
- * @param {Function} rejected The function to handle `reject` for a `Promise`
- *
- * @return {Number} An ID used to remove interceptor later
- */
- _createClass(InterceptorManager, [{
- key: "use",
- value: function use(fulfilled, rejected, options) {
- this.handlers.push({
- fulfilled: fulfilled,
- rejected: rejected,
- synchronous: options ? options.synchronous : false,
- runWhen: options ? options.runWhen : null
- });
- return this.handlers.length - 1;
- }
-
- /**
- * Remove an interceptor from the stack
- *
- * @param {Number} id The ID that was returned by `use`
- *
- * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise
- */
- }, {
- key: "eject",
- value: function eject(id) {
- if (this.handlers[id]) {
- this.handlers[id] = null;
- }
- }
-
- /**
- * Clear all interceptors from the stack
- *
- * @returns {void}
- */
- }, {
- key: "clear",
- value: function clear() {
- if (this.handlers) {
- this.handlers = [];
- }
- }
-
- /**
- * Iterate over all the registered interceptors
- *
- * This method is particularly useful for skipping over any
- * interceptors that may have become `null` calling `eject`.
- *
- * @param {Function} fn The function to call for each interceptor
- *
- * @returns {void}
- */
- }, {
- key: "forEach",
- value: function forEach(fn) {
- utils.forEach(this.handlers, function forEachHandler(h) {
- if (h !== null) {
- fn(h);
- }
- });
- }
- }]);
- return InterceptorManager;
- }();
- var InterceptorManager$1 = InterceptorManager;
-
- var transitionalDefaults = {
- silentJSONParsing: true,
- forcedJSONParsing: true,
- clarifyTimeoutError: false
- };
-
- var URLSearchParams$1 = typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;
-
- var FormData$1 = typeof FormData !== 'undefined' ? FormData : null;
-
- var Blob$1 = typeof Blob !== 'undefined' ? Blob : null;
-
- /**
- * Determine if we're running in a standard browser environment
- *
- * This allows axios to run in a web worker, and react-native.
- * Both environments support XMLHttpRequest, but not fully standard globals.
- *
- * web workers:
- * typeof window -> undefined
- * typeof document -> undefined
- *
- * react-native:
- * navigator.product -> 'ReactNative'
- * nativescript
- * navigator.product -> 'NativeScript' or 'NS'
- *
- * @returns {boolean}
- */
- var isStandardBrowserEnv = function () {
- var product;
- if (typeof navigator !== 'undefined' && ((product = navigator.product) === 'ReactNative' || product === 'NativeScript' || product === 'NS')) {
- return false;
- }
- return typeof window !== 'undefined' && typeof document !== 'undefined';
- }();
-
- /**
- * Determine if we're running in a standard browser webWorker environment
- *
- * Although the `isStandardBrowserEnv` method indicates that
- * `allows axios to run in a web worker`, the WebWorker will still be
- * filtered out due to its judgment standard
- * `typeof window !== 'undefined' && typeof document !== 'undefined'`.
- * This leads to a problem when axios post `FormData` in webWorker
- */
- var isStandardBrowserWebWorkerEnv = function () {
- return typeof WorkerGlobalScope !== 'undefined' &&
- // eslint-disable-next-line no-undef
- self instanceof WorkerGlobalScope && typeof self.importScripts === 'function';
- }();
- var platform = {
- isBrowser: true,
- classes: {
- URLSearchParams: URLSearchParams$1,
- FormData: FormData$1,
- Blob: Blob$1
- },
- isStandardBrowserEnv: isStandardBrowserEnv,
- isStandardBrowserWebWorkerEnv: isStandardBrowserWebWorkerEnv,
- protocols: ['http', 'https', 'file', 'blob', 'url', 'data']
- };
-
- function toURLEncodedForm(data, options) {
- return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({
- visitor: function visitor(value, key, path, helpers) {
- if (platform.isNode && utils.isBuffer(value)) {
- this.append(key, value.toString('base64'));
- return false;
- }
- return helpers.defaultVisitor.apply(this, arguments);
- }
- }, options));
- }
-
- /**
- * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']
- *
- * @param {string} name - The name of the property to get.
- *
- * @returns An array of strings.
- */
- function parsePropPath(name) {
- // foo[x][y][z]
- // foo.x.y.z
- // foo-x-y-z
- // foo x y z
- return utils.matchAll(/\w+|\[(\w*)]/g, name).map(function (match) {
- return match[0] === '[]' ? '' : match[1] || match[0];
- });
- }
-
- /**
- * Convert an array to an object.
- *
- * @param {Array} arr - The array to convert to an object.
- *
- * @returns An object with the same keys and values as the array.
- */
- function arrayToObject(arr) {
- var obj = {};
- var keys = Object.keys(arr);
- var i;
- var len = keys.length;
- var key;
- for (i = 0; i < len; i++) {
- key = keys[i];
- obj[key] = arr[key];
- }
- return obj;
- }
-
- /**
- * It takes a FormData object and returns a JavaScript object
- *
- * @param {string} formData The FormData object to convert to JSON.
- *
- * @returns {Object | null} The converted object.
- */
- function formDataToJSON(formData) {
- function buildPath(path, value, target, index) {
- var name = path[index++];
- var isNumericKey = Number.isFinite(+name);
- var isLast = index >= path.length;
- name = !name && utils.isArray(target) ? target.length : name;
- if (isLast) {
- if (utils.hasOwnProp(target, name)) {
- target[name] = [target[name], value];
- } else {
- target[name] = value;
- }
- return !isNumericKey;
- }
- if (!target[name] || !utils.isObject(target[name])) {
- target[name] = [];
- }
- var result = buildPath(path, value, target[name], index);
- if (result && utils.isArray(target[name])) {
- target[name] = arrayToObject(target[name]);
- }
- return !isNumericKey;
- }
- if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {
- var obj = {};
- utils.forEachEntry(formData, function (name, value) {
- buildPath(parsePropPath(name), value, obj, 0);
- });
- return obj;
- }
- return null;
- }
-
- var DEFAULT_CONTENT_TYPE = {
- 'Content-Type': undefined
- };
-
- /**
- * It takes a string, tries to parse it, and if it fails, it returns the stringified version
- * of the input
- *
- * @param {any} rawValue - The value to be stringified.
- * @param {Function} parser - A function that parses a string into a JavaScript object.
- * @param {Function} encoder - A function that takes a value and returns a string.
- *
- * @returns {string} A stringified version of the rawValue.
- */
- function stringifySafely(rawValue, parser, encoder) {
- if (utils.isString(rawValue)) {
- try {
- (parser || JSON.parse)(rawValue);
- return utils.trim(rawValue);
- } catch (e) {
- if (e.name !== 'SyntaxError') {
- throw e;
- }
- }
- }
- return (encoder || JSON.stringify)(rawValue);
- }
- var defaults = {
- transitional: transitionalDefaults,
- adapter: ['xhr', 'http'],
- transformRequest: [function transformRequest(data, headers) {
- var contentType = headers.getContentType() || '';
- var hasJSONContentType = contentType.indexOf('application/json') > -1;
- var isObjectPayload = utils.isObject(data);
- if (isObjectPayload && utils.isHTMLForm(data)) {
- data = new FormData(data);
- }
- var isFormData = utils.isFormData(data);
- if (isFormData) {
- if (!hasJSONContentType) {
- return data;
- }
- return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;
- }
- if (utils.isArrayBuffer(data) || utils.isBuffer(data) || utils.isStream(data) || utils.isFile(data) || utils.isBlob(data)) {
- return data;
- }
- if (utils.isArrayBufferView(data)) {
- return data.buffer;
- }
- if (utils.isURLSearchParams(data)) {
- headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);
- return data.toString();
- }
- var isFileList;
- if (isObjectPayload) {
- if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {
- return toURLEncodedForm(data, this.formSerializer).toString();
- }
- if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {
- var _FormData = this.env && this.env.FormData;
- return toFormData(isFileList ? {
- 'files[]': data
- } : data, _FormData && new _FormData(), this.formSerializer);
- }
- }
- if (isObjectPayload || hasJSONContentType) {
- headers.setContentType('application/json', false);
- return stringifySafely(data);
- }
- return data;
- }],
- transformResponse: [function transformResponse(data) {
- var transitional = this.transitional || defaults.transitional;
- var forcedJSONParsing = transitional && transitional.forcedJSONParsing;
- var JSONRequested = this.responseType === 'json';
- if (data && utils.isString(data) && (forcedJSONParsing && !this.responseType || JSONRequested)) {
- var silentJSONParsing = transitional && transitional.silentJSONParsing;
- var strictJSONParsing = !silentJSONParsing && JSONRequested;
- try {
- return JSON.parse(data);
- } catch (e) {
- if (strictJSONParsing) {
- if (e.name === 'SyntaxError') {
- throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);
- }
- throw e;
- }
- }
- }
- return data;
- }],
- /**
- * A timeout in milliseconds to abort a request. If set to 0 (default) a
- * timeout is not created.
- */
- timeout: 0,
- xsrfCookieName: 'XSRF-TOKEN',
- xsrfHeaderName: 'X-XSRF-TOKEN',
- maxContentLength: -1,
- maxBodyLength: -1,
- env: {
- FormData: platform.classes.FormData,
- Blob: platform.classes.Blob
- },
- validateStatus: function validateStatus(status) {
- return status >= 200 && status < 300;
- },
- headers: {
- common: {
- 'Accept': 'application/json, text/plain, */*'
- }
- }
- };
- utils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {
- defaults.headers[method] = {};
- });
- utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {
- defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);
- });
- var defaults$1 = defaults;
-
- // RawAxiosHeaders whose duplicates are ignored by node
- // c.f. https://nodejs.org/api/http.html#http_message_headers
- var ignoreDuplicateOf = utils.toObjectSet(['age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent']);
-
- /**
- * Parse headers into an object
- *
- * ```
- * Date: Wed, 27 Aug 2014 08:58:49 GMT
- * Content-Type: application/json
- * Connection: keep-alive
- * Transfer-Encoding: chunked
- * ```
- *
- * @param {String} rawHeaders Headers needing to be parsed
- *
- * @returns {Object} Headers parsed into an object
- */
- var parseHeaders = (function (rawHeaders) {
- var parsed = {};
- var key;
- var val;
- var i;
- rawHeaders && rawHeaders.split('\n').forEach(function parser(line) {
- i = line.indexOf(':');
- key = line.substring(0, i).trim().toLowerCase();
- val = line.substring(i + 1).trim();
- if (!key || parsed[key] && ignoreDuplicateOf[key]) {
- return;
- }
- if (key === 'set-cookie') {
- if (parsed[key]) {
- parsed[key].push(val);
- } else {
- parsed[key] = [val];
- }
- } else {
- parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;
- }
- });
- return parsed;
- });
-
- var $internals = Symbol('internals');
- function normalizeHeader(header) {
- return header && String(header).trim().toLowerCase();
- }
- function normalizeValue(value) {
- if (value === false || value == null) {
- return value;
- }
- return utils.isArray(value) ? value.map(normalizeValue) : String(value);
- }
- function parseTokens(str) {
- var tokens = Object.create(null);
- var tokensRE = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;
- var match;
- while (match = tokensRE.exec(str)) {
- tokens[match[1]] = match[2];
- }
- return tokens;
- }
- var isValidHeaderName = function isValidHeaderName(str) {
- return /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());
- };
- function matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {
- if (utils.isFunction(filter)) {
- return filter.call(this, value, header);
- }
- if (isHeaderNameFilter) {
- value = header;
- }
- if (!utils.isString(value)) return;
- if (utils.isString(filter)) {
- return value.indexOf(filter) !== -1;
- }
- if (utils.isRegExp(filter)) {
- return filter.test(value);
- }
- }
- function formatHeader(header) {
- return header.trim().toLowerCase().replace(/([a-z\d])(\w*)/g, function (w, _char, str) {
- return _char.toUpperCase() + str;
- });
- }
- function buildAccessors(obj, header) {
- var accessorName = utils.toCamelCase(' ' + header);
- ['get', 'set', 'has'].forEach(function (methodName) {
- Object.defineProperty(obj, methodName + accessorName, {
- value: function value(arg1, arg2, arg3) {
- return this[methodName].call(this, header, arg1, arg2, arg3);
- },
- configurable: true
- });
- });
- }
- var AxiosHeaders = /*#__PURE__*/function (_Symbol$iterator, _Symbol$toStringTag) {
- function AxiosHeaders(headers) {
- _classCallCheck(this, AxiosHeaders);
- headers && this.set(headers);
- }
- _createClass(AxiosHeaders, [{
- key: "set",
- value: function set(header, valueOrRewrite, rewrite) {
- var self = this;
- function setHeader(_value, _header, _rewrite) {
- var lHeader = normalizeHeader(_header);
- if (!lHeader) {
- throw new Error('header name must be a non-empty string');
- }
- var key = utils.findKey(self, lHeader);
- if (!key || self[key] === undefined || _rewrite === true || _rewrite === undefined && self[key] !== false) {
- self[key || _header] = normalizeValue(_value);
- }
- }
- var setHeaders = function setHeaders(headers, _rewrite) {
- return utils.forEach(headers, function (_value, _header) {
- return setHeader(_value, _header, _rewrite);
- });
- };
- if (utils.isPlainObject(header) || header instanceof this.constructor) {
- setHeaders(header, valueOrRewrite);
- } else if (utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {
- setHeaders(parseHeaders(header), valueOrRewrite);
- } else {
- header != null && setHeader(valueOrRewrite, header, rewrite);
- }
- return this;
- }
- }, {
- key: "get",
- value: function get(header, parser) {
- header = normalizeHeader(header);
- if (header) {
- var key = utils.findKey(this, header);
- if (key) {
- var value = this[key];
- if (!parser) {
- return value;
- }
- if (parser === true) {
- return parseTokens(value);
- }
- if (utils.isFunction(parser)) {
- return parser.call(this, value, key);
- }
- if (utils.isRegExp(parser)) {
- return parser.exec(value);
- }
- throw new TypeError('parser must be boolean|regexp|function');
- }
- }
- }
- }, {
- key: "has",
- value: function has(header, matcher) {
- header = normalizeHeader(header);
- if (header) {
- var key = utils.findKey(this, header);
- return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));
- }
- return false;
- }
- }, {
- key: "delete",
- value: function _delete(header, matcher) {
- var self = this;
- var deleted = false;
- function deleteHeader(_header) {
- _header = normalizeHeader(_header);
- if (_header) {
- var key = utils.findKey(self, _header);
- if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {
- delete self[key];
- deleted = true;
- }
- }
- }
- if (utils.isArray(header)) {
- header.forEach(deleteHeader);
- } else {
- deleteHeader(header);
- }
- return deleted;
- }
- }, {
- key: "clear",
- value: function clear(matcher) {
- var keys = Object.keys(this);
- var i = keys.length;
- var deleted = false;
- while (i--) {
- var key = keys[i];
- if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {
- delete this[key];
- deleted = true;
- }
- }
- return deleted;
- }
- }, {
- key: "normalize",
- value: function normalize(format) {
- var self = this;
- var headers = {};
- utils.forEach(this, function (value, header) {
- var key = utils.findKey(headers, header);
- if (key) {
- self[key] = normalizeValue(value);
- delete self[header];
- return;
- }
- var normalized = format ? formatHeader(header) : String(header).trim();
- if (normalized !== header) {
- delete self[header];
- }
- self[normalized] = normalizeValue(value);
- headers[normalized] = true;
- });
- return this;
- }
- }, {
- key: "concat",
- value: function concat() {
- var _this$constructor;
- for (var _len = arguments.length, targets = new Array(_len), _key = 0; _key < _len; _key++) {
- targets[_key] = arguments[_key];
- }
- return (_this$constructor = this.constructor).concat.apply(_this$constructor, [this].concat(targets));
- }
- }, {
- key: "toJSON",
- value: function toJSON(asStrings) {
- var obj = Object.create(null);
- utils.forEach(this, function (value, header) {
- value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);
- });
- return obj;
- }
- }, {
- key: _Symbol$iterator,
- value: function value() {
- return Object.entries(this.toJSON())[Symbol.iterator]();
- }
- }, {
- key: "toString",
- value: function toString() {
- return Object.entries(this.toJSON()).map(function (_ref) {
- var _ref2 = _slicedToArray(_ref, 2),
- header = _ref2[0],
- value = _ref2[1];
- return header + ': ' + value;
- }).join('\n');
- }
- }, {
- key: _Symbol$toStringTag,
- get: function get() {
- return 'AxiosHeaders';
- }
- }], [{
- key: "from",
- value: function from(thing) {
- return thing instanceof this ? thing : new this(thing);
- }
- }, {
- key: "concat",
- value: function concat(first) {
- var computed = new this(first);
- for (var _len2 = arguments.length, targets = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
- targets[_key2 - 1] = arguments[_key2];
- }
- targets.forEach(function (target) {
- return computed.set(target);
- });
- return computed;
- }
- }, {
- key: "accessor",
- value: function accessor(header) {
- var internals = this[$internals] = this[$internals] = {
- accessors: {}
- };
- var accessors = internals.accessors;
- var prototype = this.prototype;
- function defineAccessor(_header) {
- var lHeader = normalizeHeader(_header);
- if (!accessors[lHeader]) {
- buildAccessors(prototype, _header);
- accessors[lHeader] = true;
- }
- }
- utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);
- return this;
- }
- }]);
- return AxiosHeaders;
- }(Symbol.iterator, Symbol.toStringTag);
- AxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);
- utils.freezeMethods(AxiosHeaders.prototype);
- utils.freezeMethods(AxiosHeaders);
- var AxiosHeaders$1 = AxiosHeaders;
-
- /**
- * Transform the data for a request or a response
- *
- * @param {Array|Function} fns A single function or Array of functions
- * @param {?Object} response The response object
- *
- * @returns {*} The resulting transformed data
- */
- function transformData(fns, response) {
- var config = this || defaults$1;
- var context = response || config;
- var headers = AxiosHeaders$1.from(context.headers);
- var data = context.data;
- utils.forEach(fns, function transform(fn) {
- data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);
- });
- headers.normalize();
- return data;
- }
-
- function isCancel(value) {
- return !!(value && value.__CANCEL__);
- }
-
- /**
- * A `CanceledError` is an object that is thrown when an operation is canceled.
- *
- * @param {string=} message The message.
- * @param {Object=} config The config.
- * @param {Object=} request The request.
- *
- * @returns {CanceledError} The created error.
- */
- function CanceledError(message, config, request) {
- // eslint-disable-next-line no-eq-null,eqeqeq
- AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);
- this.name = 'CanceledError';
- }
- utils.inherits(CanceledError, AxiosError, {
- __CANCEL__: true
- });
-
- /**
- * Resolve or reject a Promise based on response status.
- *
- * @param {Function} resolve A function that resolves the promise.
- * @param {Function} reject A function that rejects the promise.
- * @param {object} response The response.
- *
- * @returns {object} The response.
- */
- function settle(resolve, reject, response) {
- var validateStatus = response.config.validateStatus;
- if (!response.status || !validateStatus || validateStatus(response.status)) {
- resolve(response);
- } else {
- reject(new AxiosError('Request failed with status code ' + response.status, [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4], response.config, response.request, response));
- }
- }
-
- var cookies = platform.isStandardBrowserEnv ?
- // Standard browser envs support document.cookie
- function standardBrowserEnv() {
- return {
- write: function write(name, value, expires, path, domain, secure) {
- var cookie = [];
- cookie.push(name + '=' + encodeURIComponent(value));
- if (utils.isNumber(expires)) {
- cookie.push('expires=' + new Date(expires).toGMTString());
- }
- if (utils.isString(path)) {
- cookie.push('path=' + path);
- }
- if (utils.isString(domain)) {
- cookie.push('domain=' + domain);
- }
- if (secure === true) {
- cookie.push('secure');
- }
- document.cookie = cookie.join('; ');
- },
- read: function read(name) {
- var match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)'));
- return match ? decodeURIComponent(match[3]) : null;
- },
- remove: function remove(name) {
- this.write(name, '', Date.now() - 86400000);
- }
- };
- }() :
- // Non standard browser env (web workers, react-native) lack needed support.
- function nonStandardBrowserEnv() {
- return {
- write: function write() {},
- read: function read() {
- return null;
- },
- remove: function remove() {}
- };
- }();
-
- /**
- * Determines whether the specified URL is absolute
- *
- * @param {string} url The URL to test
- *
- * @returns {boolean} True if the specified URL is absolute, otherwise false
- */
- function isAbsoluteURL(url) {
- // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL).
- // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed
- // by any combination of letters, digits, plus, period, or hyphen.
- return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url);
- }
-
- /**
- * Creates a new URL by combining the specified URLs
- *
- * @param {string} baseURL The base URL
- * @param {string} relativeURL The relative URL
- *
- * @returns {string} The combined URL
- */
- function combineURLs(baseURL, relativeURL) {
- return relativeURL ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '') : baseURL;
- }
-
- /**
- * Creates a new URL by combining the baseURL with the requestedURL,
- * only when the requestedURL is not already an absolute URL.
- * If the requestURL is absolute, this function returns the requestedURL untouched.
- *
- * @param {string} baseURL The base URL
- * @param {string} requestedURL Absolute or relative URL to combine
- *
- * @returns {string} The combined full path
- */
- function buildFullPath(baseURL, requestedURL) {
- if (baseURL && !isAbsoluteURL(requestedURL)) {
- return combineURLs(baseURL, requestedURL);
- }
- return requestedURL;
- }
-
- var isURLSameOrigin = platform.isStandardBrowserEnv ?
- // Standard browser envs have full support of the APIs needed to test
- // whether the request URL is of the same origin as current location.
- function standardBrowserEnv() {
- var msie = /(msie|trident)/i.test(navigator.userAgent);
- var urlParsingNode = document.createElement('a');
- var originURL;
-
- /**
- * Parse a URL to discover it's components
- *
- * @param {String} url The URL to be parsed
- * @returns {Object}
- */
- function resolveURL(url) {
- var href = url;
- if (msie) {
- // IE needs attribute set twice to normalize properties
- urlParsingNode.setAttribute('href', href);
- href = urlParsingNode.href;
- }
- urlParsingNode.setAttribute('href', href);
-
- // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils
- return {
- href: urlParsingNode.href,
- protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',
- host: urlParsingNode.host,
- search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '',
- hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',
- hostname: urlParsingNode.hostname,
- port: urlParsingNode.port,
- pathname: urlParsingNode.pathname.charAt(0) === '/' ? urlParsingNode.pathname : '/' + urlParsingNode.pathname
- };
- }
- originURL = resolveURL(window.location.href);
-
- /**
- * Determine if a URL shares the same origin as the current location
- *
- * @param {String} requestURL The URL to test
- * @returns {boolean} True if URL shares the same origin, otherwise false
- */
- return function isURLSameOrigin(requestURL) {
- var parsed = utils.isString(requestURL) ? resolveURL(requestURL) : requestURL;
- return parsed.protocol === originURL.protocol && parsed.host === originURL.host;
- };
- }() :
- // Non standard browser envs (web workers, react-native) lack needed support.
- function nonStandardBrowserEnv() {
- return function isURLSameOrigin() {
- return true;
- };
- }();
-
- function parseProtocol(url) {
- var match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url);
- return match && match[1] || '';
- }
-
- /**
- * Calculate data maxRate
- * @param {Number} [samplesCount= 10]
- * @param {Number} [min= 1000]
- * @returns {Function}
- */
- function speedometer(samplesCount, min) {
- samplesCount = samplesCount || 10;
- var bytes = new Array(samplesCount);
- var timestamps = new Array(samplesCount);
- var head = 0;
- var tail = 0;
- var firstSampleTS;
- min = min !== undefined ? min : 1000;
- return function push(chunkLength) {
- var now = Date.now();
- var startedAt = timestamps[tail];
- if (!firstSampleTS) {
- firstSampleTS = now;
- }
- bytes[head] = chunkLength;
- timestamps[head] = now;
- var i = tail;
- var bytesCount = 0;
- while (i !== head) {
- bytesCount += bytes[i++];
- i = i % samplesCount;
- }
- head = (head + 1) % samplesCount;
- if (head === tail) {
- tail = (tail + 1) % samplesCount;
- }
- if (now - firstSampleTS < min) {
- return;
- }
- var passed = startedAt && now - startedAt;
- return passed ? Math.round(bytesCount * 1000 / passed) : undefined;
- };
- }
-
- function progressEventReducer(listener, isDownloadStream) {
- var bytesNotified = 0;
- var _speedometer = speedometer(50, 250);
- return function (e) {
- var loaded = e.loaded;
- var total = e.lengthComputable ? e.total : undefined;
- var progressBytes = loaded - bytesNotified;
- var rate = _speedometer(progressBytes);
- var inRange = loaded <= total;
- bytesNotified = loaded;
- var data = {
- loaded: loaded,
- total: total,
- progress: total ? loaded / total : undefined,
- bytes: progressBytes,
- rate: rate ? rate : undefined,
- estimated: rate && total && inRange ? (total - loaded) / rate : undefined,
- event: e
- };
- data[isDownloadStream ? 'download' : 'upload'] = true;
- listener(data);
- };
- }
- var isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';
- var xhrAdapter = isXHRAdapterSupported && function (config) {
- return new Promise(function dispatchXhrRequest(resolve, reject) {
- var requestData = config.data;
- var requestHeaders = AxiosHeaders$1.from(config.headers).normalize();
- var responseType = config.responseType;
- var onCanceled;
- function done() {
- if (config.cancelToken) {
- config.cancelToken.unsubscribe(onCanceled);
- }
- if (config.signal) {
- config.signal.removeEventListener('abort', onCanceled);
- }
- }
- if (utils.isFormData(requestData) && (platform.isStandardBrowserEnv || platform.isStandardBrowserWebWorkerEnv)) {
- requestHeaders.setContentType(false); // Let the browser set it
- }
-
- var request = new XMLHttpRequest();
-
- // HTTP basic authentication
- if (config.auth) {
- var username = config.auth.username || '';
- var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';
- requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));
- }
- var fullPath = buildFullPath(config.baseURL, config.url);
- request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);
-
- // Set the request timeout in MS
- request.timeout = config.timeout;
- function onloadend() {
- if (!request) {
- return;
- }
- // Prepare the response
- var responseHeaders = AxiosHeaders$1.from('getAllResponseHeaders' in request && request.getAllResponseHeaders());
- var responseData = !responseType || responseType === 'text' || responseType === 'json' ? request.responseText : request.response;
- var response = {
- data: responseData,
- status: request.status,
- statusText: request.statusText,
- headers: responseHeaders,
- config: config,
- request: request
- };
- settle(function _resolve(value) {
- resolve(value);
- done();
- }, function _reject(err) {
- reject(err);
- done();
- }, response);
-
- // Clean up request
- request = null;
- }
- if ('onloadend' in request) {
- // Use onloadend if available
- request.onloadend = onloadend;
- } else {
- // Listen for ready state to emulate onloadend
- request.onreadystatechange = function handleLoad() {
- if (!request || request.readyState !== 4) {
- return;
- }
-
- // The request errored out and we didn't get a response, this will be
- // handled by onerror instead
- // With one exception: request that using file: protocol, most browsers
- // will return status as 0 even though it's a successful request
- if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {
- return;
- }
- // readystate handler is calling before onerror or ontimeout handlers,
- // so we should call onloadend on the next 'tick'
- setTimeout(onloadend);
- };
- }
-
- // Handle browser request cancellation (as opposed to a manual cancellation)
- request.onabort = function handleAbort() {
- if (!request) {
- return;
- }
- reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));
-
- // Clean up request
- request = null;
- };
-
- // Handle low level network errors
- request.onerror = function handleError() {
- // Real errors are hidden from us by the browser
- // onerror should only fire if it's a network error
- reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));
-
- // Clean up request
- request = null;
- };
-
- // Handle timeout
- request.ontimeout = function handleTimeout() {
- var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';
- var transitional = config.transitional || transitionalDefaults;
- if (config.timeoutErrorMessage) {
- timeoutErrorMessage = config.timeoutErrorMessage;
- }
- reject(new AxiosError(timeoutErrorMessage, transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED, config, request));
-
- // Clean up request
- request = null;
- };
-
- // Add xsrf header
- // This is only done if running in a standard browser environment.
- // Specifically not if we're in a web worker, or react-native.
- if (platform.isStandardBrowserEnv) {
- // Add xsrf header
- var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName && cookies.read(config.xsrfCookieName);
- if (xsrfValue) {
- requestHeaders.set(config.xsrfHeaderName, xsrfValue);
- }
- }
-
- // Remove Content-Type if data is undefined
- requestData === undefined && requestHeaders.setContentType(null);
-
- // Add headers to the request
- if ('setRequestHeader' in request) {
- utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {
- request.setRequestHeader(key, val);
- });
- }
-
- // Add withCredentials to request if needed
- if (!utils.isUndefined(config.withCredentials)) {
- request.withCredentials = !!config.withCredentials;
- }
-
- // Add responseType to request if needed
- if (responseType && responseType !== 'json') {
- request.responseType = config.responseType;
- }
-
- // Handle progress if needed
- if (typeof config.onDownloadProgress === 'function') {
- request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));
- }
-
- // Not all browsers support upload events
- if (typeof config.onUploadProgress === 'function' && request.upload) {
- request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));
- }
- if (config.cancelToken || config.signal) {
- // Handle cancellation
- // eslint-disable-next-line func-names
- onCanceled = function onCanceled(cancel) {
- if (!request) {
- return;
- }
- reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);
- request.abort();
- request = null;
- };
- config.cancelToken && config.cancelToken.subscribe(onCanceled);
- if (config.signal) {
- config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);
- }
- }
- var protocol = parseProtocol(fullPath);
- if (protocol && platform.protocols.indexOf(protocol) === -1) {
- reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));
- return;
- }
-
- // Send the request
- request.send(requestData || null);
- });
- };
-
- var knownAdapters = {
- http: httpAdapter,
- xhr: xhrAdapter
- };
- utils.forEach(knownAdapters, function (fn, value) {
- if (fn) {
- try {
- Object.defineProperty(fn, 'name', {
- value: value
- });
- } catch (e) {
- // eslint-disable-next-line no-empty
- }
- Object.defineProperty(fn, 'adapterName', {
- value: value
- });
- }
- });
- var adapters = {
- getAdapter: function getAdapter(adapters) {
- adapters = utils.isArray(adapters) ? adapters : [adapters];
- var _adapters = adapters,
- length = _adapters.length;
- var nameOrAdapter;
- var adapter;
- for (var i = 0; i < length; i++) {
- nameOrAdapter = adapters[i];
- if (adapter = utils.isString(nameOrAdapter) ? knownAdapters[nameOrAdapter.toLowerCase()] : nameOrAdapter) {
- break;
- }
- }
- if (!adapter) {
- if (adapter === false) {
- throw new AxiosError("Adapter ".concat(nameOrAdapter, " is not supported by the environment"), 'ERR_NOT_SUPPORT');
- }
- throw new Error(utils.hasOwnProp(knownAdapters, nameOrAdapter) ? "Adapter '".concat(nameOrAdapter, "' is not available in the build") : "Unknown adapter '".concat(nameOrAdapter, "'"));
- }
- if (!utils.isFunction(adapter)) {
- throw new TypeError('adapter is not a function');
- }
- return adapter;
- },
- adapters: knownAdapters
- };
-
- /**
- * Throws a `CanceledError` if cancellation has been requested.
- *
- * @param {Object} config The config that is to be used for the request
- *
- * @returns {void}
- */
- function throwIfCancellationRequested(config) {
- if (config.cancelToken) {
- config.cancelToken.throwIfRequested();
- }
- if (config.signal && config.signal.aborted) {
- throw new CanceledError(null, config);
- }
- }
-
- /**
- * Dispatch a request to the server using the configured adapter.
- *
- * @param {object} config The config that is to be used for the request
- *
- * @returns {Promise} The Promise to be fulfilled
- */
- function dispatchRequest(config) {
- throwIfCancellationRequested(config);
- config.headers = AxiosHeaders$1.from(config.headers);
-
- // Transform request data
- config.data = transformData.call(config, config.transformRequest);
- if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {
- config.headers.setContentType('application/x-www-form-urlencoded', false);
- }
- var adapter = adapters.getAdapter(config.adapter || defaults$1.adapter);
- return adapter(config).then(function onAdapterResolution(response) {
- throwIfCancellationRequested(config);
-
- // Transform response data
- response.data = transformData.call(config, config.transformResponse, response);
- response.headers = AxiosHeaders$1.from(response.headers);
- return response;
- }, function onAdapterRejection(reason) {
- if (!isCancel(reason)) {
- throwIfCancellationRequested(config);
-
- // Transform response data
- if (reason && reason.response) {
- reason.response.data = transformData.call(config, config.transformResponse, reason.response);
- reason.response.headers = AxiosHeaders$1.from(reason.response.headers);
- }
- }
- return Promise.reject(reason);
- });
- }
-
- var headersToObject = function headersToObject(thing) {
- return thing instanceof AxiosHeaders$1 ? thing.toJSON() : thing;
- };
-
- /**
- * Config-specific merge-function which creates a new config-object
- * by merging two configuration objects together.
- *
- * @param {Object} config1
- * @param {Object} config2
- *
- * @returns {Object} New object resulting from merging config2 to config1
- */
- function mergeConfig(config1, config2) {
- // eslint-disable-next-line no-param-reassign
- config2 = config2 || {};
- var config = {};
- function getMergedValue(target, source, caseless) {
- if (utils.isPlainObject(target) && utils.isPlainObject(source)) {
- return utils.merge.call({
- caseless: caseless
- }, target, source);
- } else if (utils.isPlainObject(source)) {
- return utils.merge({}, source);
- } else if (utils.isArray(source)) {
- return source.slice();
- }
- return source;
- }
-
- // eslint-disable-next-line consistent-return
- function mergeDeepProperties(a, b, caseless) {
- if (!utils.isUndefined(b)) {
- return getMergedValue(a, b, caseless);
- } else if (!utils.isUndefined(a)) {
- return getMergedValue(undefined, a, caseless);
- }
- }
-
- // eslint-disable-next-line consistent-return
- function valueFromConfig2(a, b) {
- if (!utils.isUndefined(b)) {
- return getMergedValue(undefined, b);
- }
- }
-
- // eslint-disable-next-line consistent-return
- function defaultToConfig2(a, b) {
- if (!utils.isUndefined(b)) {
- return getMergedValue(undefined, b);
- } else if (!utils.isUndefined(a)) {
- return getMergedValue(undefined, a);
- }
- }
-
- // eslint-disable-next-line consistent-return
- function mergeDirectKeys(a, b, prop) {
- if (prop in config2) {
- return getMergedValue(a, b);
- } else if (prop in config1) {
- return getMergedValue(undefined, a);
- }
- }
- var mergeMap = {
- url: valueFromConfig2,
- method: valueFromConfig2,
- data: valueFromConfig2,
- baseURL: defaultToConfig2,
- transformRequest: defaultToConfig2,
- transformResponse: defaultToConfig2,
- paramsSerializer: defaultToConfig2,
- timeout: defaultToConfig2,
- timeoutMessage: defaultToConfig2,
- withCredentials: defaultToConfig2,
- adapter: defaultToConfig2,
- responseType: defaultToConfig2,
- xsrfCookieName: defaultToConfig2,
- xsrfHeaderName: defaultToConfig2,
- onUploadProgress: defaultToConfig2,
- onDownloadProgress: defaultToConfig2,
- decompress: defaultToConfig2,
- maxContentLength: defaultToConfig2,
- maxBodyLength: defaultToConfig2,
- beforeRedirect: defaultToConfig2,
- transport: defaultToConfig2,
- httpAgent: defaultToConfig2,
- httpsAgent: defaultToConfig2,
- cancelToken: defaultToConfig2,
- socketPath: defaultToConfig2,
- responseEncoding: defaultToConfig2,
- validateStatus: mergeDirectKeys,
- headers: function headers(a, b) {
- return mergeDeepProperties(headersToObject(a), headersToObject(b), true);
- }
- };
- utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {
- var merge = mergeMap[prop] || mergeDeepProperties;
- var configValue = merge(config1[prop], config2[prop], prop);
- utils.isUndefined(configValue) && merge !== mergeDirectKeys || (config[prop] = configValue);
- });
- return config;
- }
-
- var VERSION = "1.3.6";
-
- var validators$1 = {};
-
- // eslint-disable-next-line func-names
- ['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function (type, i) {
- validators$1[type] = function validator(thing) {
- return _typeof(thing) === type || 'a' + (i < 1 ? 'n ' : ' ') + type;
- };
- });
- var deprecatedWarnings = {};
-
- /**
- * Transitional option validator
- *
- * @param {function|boolean?} validator - set to false if the transitional option has been removed
- * @param {string?} version - deprecated version / removed since version
- * @param {string?} message - some message with additional info
- *
- * @returns {function}
- */
- validators$1.transitional = function transitional(validator, version, message) {
- function formatMessage(opt, desc) {
- return '[Axios v' + VERSION + '] Transitional option \'' + opt + '\'' + desc + (message ? '. ' + message : '');
- }
-
- // eslint-disable-next-line func-names
- return function (value, opt, opts) {
- if (validator === false) {
- throw new AxiosError(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')), AxiosError.ERR_DEPRECATED);
- }
- if (version && !deprecatedWarnings[opt]) {
- deprecatedWarnings[opt] = true;
- // eslint-disable-next-line no-console
- console.warn(formatMessage(opt, ' has been deprecated since v' + version + ' and will be removed in the near future'));
- }
- return validator ? validator(value, opt, opts) : true;
- };
- };
-
- /**
- * Assert object's properties type
- *
- * @param {object} options
- * @param {object} schema
- * @param {boolean?} allowUnknown
- *
- * @returns {object}
- */
-
- function assertOptions(options, schema, allowUnknown) {
- if (_typeof(options) !== 'object') {
- throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);
- }
- var keys = Object.keys(options);
- var i = keys.length;
- while (i-- > 0) {
- var opt = keys[i];
- var validator = schema[opt];
- if (validator) {
- var value = options[opt];
- var result = value === undefined || validator(value, opt, options);
- if (result !== true) {
- throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);
- }
- continue;
- }
- if (allowUnknown !== true) {
- throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);
- }
- }
- }
- var validator = {
- assertOptions: assertOptions,
- validators: validators$1
- };
-
- var validators = validator.validators;
-
- /**
- * Create a new instance of Axios
- *
- * @param {Object} instanceConfig The default config for the instance
- *
- * @return {Axios} A new instance of Axios
- */
- var Axios = /*#__PURE__*/function () {
- function Axios(instanceConfig) {
- _classCallCheck(this, Axios);
- this.defaults = instanceConfig;
- this.interceptors = {
- request: new InterceptorManager$1(),
- response: new InterceptorManager$1()
- };
- }
-
- /**
- * Dispatch a request
- *
- * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)
- * @param {?Object} config
- *
- * @returns {Promise} The Promise to be fulfilled
- */
- _createClass(Axios, [{
- key: "request",
- value: function request(configOrUrl, config) {
- /*eslint no-param-reassign:0*/
- // Allow for axios('example/url'[, config]) a la fetch API
- if (typeof configOrUrl === 'string') {
- config = config || {};
- config.url = configOrUrl;
- } else {
- config = configOrUrl || {};
- }
- config = mergeConfig(this.defaults, config);
- var _config = config,
- transitional = _config.transitional,
- paramsSerializer = _config.paramsSerializer,
- headers = _config.headers;
- if (transitional !== undefined) {
- validator.assertOptions(transitional, {
- silentJSONParsing: validators.transitional(validators["boolean"]),
- forcedJSONParsing: validators.transitional(validators["boolean"]),
- clarifyTimeoutError: validators.transitional(validators["boolean"])
- }, false);
- }
- if (paramsSerializer != null) {
- if (utils.isFunction(paramsSerializer)) {
- config.paramsSerializer = {
- serialize: paramsSerializer
- };
- } else {
- validator.assertOptions(paramsSerializer, {
- encode: validators["function"],
- serialize: validators["function"]
- }, true);
- }
- }
-
- // Set config.method
- config.method = (config.method || this.defaults.method || 'get').toLowerCase();
- var contextHeaders;
-
- // Flatten headers
- contextHeaders = headers && utils.merge(headers.common, headers[config.method]);
- contextHeaders && utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], function (method) {
- delete headers[method];
- });
- config.headers = AxiosHeaders$1.concat(contextHeaders, headers);
-
- // filter out skipped interceptors
- var requestInterceptorChain = [];
- var synchronousRequestInterceptors = true;
- this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {
- if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {
- return;
- }
- synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;
- requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);
- });
- var responseInterceptorChain = [];
- this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {
- responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);
- });
- var promise;
- var i = 0;
- var len;
- if (!synchronousRequestInterceptors) {
- var chain = [dispatchRequest.bind(this), undefined];
- chain.unshift.apply(chain, requestInterceptorChain);
- chain.push.apply(chain, responseInterceptorChain);
- len = chain.length;
- promise = Promise.resolve(config);
- while (i < len) {
- promise = promise.then(chain[i++], chain[i++]);
- }
- return promise;
- }
- len = requestInterceptorChain.length;
- var newConfig = config;
- i = 0;
- while (i < len) {
- var onFulfilled = requestInterceptorChain[i++];
- var onRejected = requestInterceptorChain[i++];
- try {
- newConfig = onFulfilled(newConfig);
- } catch (error) {
- onRejected.call(this, error);
- break;
- }
- }
- try {
- promise = dispatchRequest.call(this, newConfig);
- } catch (error) {
- return Promise.reject(error);
- }
- i = 0;
- len = responseInterceptorChain.length;
- while (i < len) {
- promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);
- }
- return promise;
- }
- }, {
- key: "getUri",
- value: function getUri(config) {
- config = mergeConfig(this.defaults, config);
- var fullPath = buildFullPath(config.baseURL, config.url);
- return buildURL(fullPath, config.params, config.paramsSerializer);
- }
- }]);
- return Axios;
- }(); // Provide aliases for supported request methods
- utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {
- /*eslint func-names:0*/
- Axios.prototype[method] = function (url, config) {
- return this.request(mergeConfig(config || {}, {
- method: method,
- url: url,
- data: (config || {}).data
- }));
- };
- });
- utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {
- /*eslint func-names:0*/
-
- function generateHTTPMethod(isForm) {
- return function httpMethod(url, data, config) {
- return this.request(mergeConfig(config || {}, {
- method: method,
- headers: isForm ? {
- 'Content-Type': 'multipart/form-data'
- } : {},
- url: url,
- data: data
- }));
- };
- }
- Axios.prototype[method] = generateHTTPMethod();
- Axios.prototype[method + 'Form'] = generateHTTPMethod(true);
- });
- var Axios$1 = Axios;
-
- /**
- * A `CancelToken` is an object that can be used to request cancellation of an operation.
- *
- * @param {Function} executor The executor function.
- *
- * @returns {CancelToken}
- */
- var CancelToken = /*#__PURE__*/function () {
- function CancelToken(executor) {
- _classCallCheck(this, CancelToken);
- if (typeof executor !== 'function') {
- throw new TypeError('executor must be a function.');
- }
- var resolvePromise;
- this.promise = new Promise(function promiseExecutor(resolve) {
- resolvePromise = resolve;
- });
- var token = this;
-
- // eslint-disable-next-line func-names
- this.promise.then(function (cancel) {
- if (!token._listeners) return;
- var i = token._listeners.length;
- while (i-- > 0) {
- token._listeners[i](cancel);
- }
- token._listeners = null;
- });
-
- // eslint-disable-next-line func-names
- this.promise.then = function (onfulfilled) {
- var _resolve;
- // eslint-disable-next-line func-names
- var promise = new Promise(function (resolve) {
- token.subscribe(resolve);
- _resolve = resolve;
- }).then(onfulfilled);
- promise.cancel = function reject() {
- token.unsubscribe(_resolve);
- };
- return promise;
- };
- executor(function cancel(message, config, request) {
- if (token.reason) {
- // Cancellation has already been requested
- return;
- }
- token.reason = new CanceledError(message, config, request);
- resolvePromise(token.reason);
- });
- }
-
- /**
- * Throws a `CanceledError` if cancellation has been requested.
- */
- _createClass(CancelToken, [{
- key: "throwIfRequested",
- value: function throwIfRequested() {
- if (this.reason) {
- throw this.reason;
- }
- }
-
- /**
- * Subscribe to the cancel signal
- */
- }, {
- key: "subscribe",
- value: function subscribe(listener) {
- if (this.reason) {
- listener(this.reason);
- return;
- }
- if (this._listeners) {
- this._listeners.push(listener);
- } else {
- this._listeners = [listener];
- }
- }
-
- /**
- * Unsubscribe from the cancel signal
- */
- }, {
- key: "unsubscribe",
- value: function unsubscribe(listener) {
- if (!this._listeners) {
- return;
- }
- var index = this._listeners.indexOf(listener);
- if (index !== -1) {
- this._listeners.splice(index, 1);
- }
- }
-
- /**
- * Returns an object that contains a new `CancelToken` and a function that, when called,
- * cancels the `CancelToken`.
- */
- }], [{
- key: "source",
- value: function source() {
- var cancel;
- var token = new CancelToken(function executor(c) {
- cancel = c;
- });
- return {
- token: token,
- cancel: cancel
- };
- }
- }]);
- return CancelToken;
- }();
- var CancelToken$1 = CancelToken;
-
- /**
- * Syntactic sugar for invoking a function and expanding an array for arguments.
- *
- * Common use case would be to use `Function.prototype.apply`.
- *
- * ```js
- * function f(x, y, z) {}
- * var args = [1, 2, 3];
- * f.apply(null, args);
- * ```
- *
- * With `spread` this example can be re-written.
- *
- * ```js
- * spread(function(x, y, z) {})([1, 2, 3]);
- * ```
- *
- * @param {Function} callback
- *
- * @returns {Function}
- */
- function spread(callback) {
- return function wrap(arr) {
- return callback.apply(null, arr);
- };
- }
-
- /**
- * Determines whether the payload is an error thrown by Axios
- *
- * @param {*} payload The value to test
- *
- * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false
- */
- function isAxiosError(payload) {
- return utils.isObject(payload) && payload.isAxiosError === true;
- }
-
- var HttpStatusCode = {
- Continue: 100,
- SwitchingProtocols: 101,
- Processing: 102,
- EarlyHints: 103,
- Ok: 200,
- Created: 201,
- Accepted: 202,
- NonAuthoritativeInformation: 203,
- NoContent: 204,
- ResetContent: 205,
- PartialContent: 206,
- MultiStatus: 207,
- AlreadyReported: 208,
- ImUsed: 226,
- MultipleChoices: 300,
- MovedPermanently: 301,
- Found: 302,
- SeeOther: 303,
- NotModified: 304,
- UseProxy: 305,
- Unused: 306,
- TemporaryRedirect: 307,
- PermanentRedirect: 308,
- BadRequest: 400,
- Unauthorized: 401,
- PaymentRequired: 402,
- Forbidden: 403,
- NotFound: 404,
- MethodNotAllowed: 405,
- NotAcceptable: 406,
- ProxyAuthenticationRequired: 407,
- RequestTimeout: 408,
- Conflict: 409,
- Gone: 410,
- LengthRequired: 411,
- PreconditionFailed: 412,
- PayloadTooLarge: 413,
- UriTooLong: 414,
- UnsupportedMediaType: 415,
- RangeNotSatisfiable: 416,
- ExpectationFailed: 417,
- ImATeapot: 418,
- MisdirectedRequest: 421,
- UnprocessableEntity: 422,
- Locked: 423,
- FailedDependency: 424,
- TooEarly: 425,
- UpgradeRequired: 426,
- PreconditionRequired: 428,
- TooManyRequests: 429,
- RequestHeaderFieldsTooLarge: 431,
- UnavailableForLegalReasons: 451,
- InternalServerError: 500,
- NotImplemented: 501,
- BadGateway: 502,
- ServiceUnavailable: 503,
- GatewayTimeout: 504,
- HttpVersionNotSupported: 505,
- VariantAlsoNegotiates: 506,
- InsufficientStorage: 507,
- LoopDetected: 508,
- NotExtended: 510,
- NetworkAuthenticationRequired: 511
- };
- Object.entries(HttpStatusCode).forEach(function (_ref) {
- var _ref2 = _slicedToArray(_ref, 2),
- key = _ref2[0],
- value = _ref2[1];
- HttpStatusCode[value] = key;
- });
- var HttpStatusCode$1 = HttpStatusCode;
-
- /**
- * Create an instance of Axios
- *
- * @param {Object} defaultConfig The default config for the instance
- *
- * @returns {Axios} A new instance of Axios
- */
- function createInstance(defaultConfig) {
- var context = new Axios$1(defaultConfig);
- var instance = bind(Axios$1.prototype.request, context);
-
- // Copy axios.prototype to instance
- utils.extend(instance, Axios$1.prototype, context, {
- allOwnKeys: true
- });
-
- // Copy context to instance
- utils.extend(instance, context, null, {
- allOwnKeys: true
- });
-
- // Factory for creating new instances
- instance.create = function create(instanceConfig) {
- return createInstance(mergeConfig(defaultConfig, instanceConfig));
- };
- return instance;
- }
-
- // Create the default instance to be exported
- var axios = createInstance(defaults$1);
-
- // Expose Axios class to allow class inheritance
- axios.Axios = Axios$1;
-
- // Expose Cancel & CancelToken
- axios.CanceledError = CanceledError;
- axios.CancelToken = CancelToken$1;
- axios.isCancel = isCancel;
- axios.VERSION = VERSION;
- axios.toFormData = toFormData;
-
- // Expose AxiosError class
- axios.AxiosError = AxiosError;
-
- // alias for CanceledError for backward compatibility
- axios.Cancel = axios.CanceledError;
-
- // Expose all/spread
- axios.all = function all(promises) {
- return Promise.all(promises);
- };
- axios.spread = spread;
-
- // Expose isAxiosError
- axios.isAxiosError = isAxiosError;
-
- // Expose mergeConfig
- axios.mergeConfig = mergeConfig;
- axios.AxiosHeaders = AxiosHeaders$1;
- axios.formToJSON = function (thing) {
- return formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);
- };
- axios.HttpStatusCode = HttpStatusCode$1;
- axios["default"] = axios;
-
- return axios;
-
-}));
-//# sourceMappingURL=axios.js.map
diff --git a/public/site/js/common.js b/public/site/js/common.js
deleted file mode 100644
index a526de435..000000000
--- a/public/site/js/common.js
+++ /dev/null
@@ -1,308 +0,0 @@
-const menuBtn = document.getElementById("menuBtn"); // 768模式下的菜单按钮
-const drawer = document.querySelector(".drawer"); // 768模式下的菜单
-const theme_light = document.querySelectorAll(".theme_light");
-const theme_dark = document.querySelectorAll(".theme_dark");
-/* 主题切换更换图片 */
-const themeSwitch = (val1, val2) => {
- theme_light.forEach((item) => {
- item.style.display = val1;
- });
- theme_dark.forEach((item) => {
- item.style.display = val2;
- });
-};
-/* 更换图片 */
-const changeImageSrc = (img, src) => {
- const imgDom = document.querySelectorAll(img);
- const url = window.location.href; // 获取当前浏览器 URL
- if (imgDom.length > 0) {
- imgDom.forEach((item) => {
- item.src = url.includes("site/i")
- ? `./img/${src}`
- : `../img/${src}`;
- });
- }
-};
-/* 设置默认语言 */
-if (!localStorage.getItem("lang")) {
- localStorage.setItem("lang", "zh");
-}
-/* 设置默认主题 */
-const localStorageTheme = localStorage.getItem("theme");
-if (!localStorageTheme) {
- setTheme("light");
- localStorage.setItem("theme", "light");
-} else {
- setTheme(localStorageTheme);
-}
-
-/* 切换主题函数 */
-function setTheme(theme) {
- const root = document.documentElement;
- const lang = localStorage.getItem("lang");
- changeImageSrc("#logo", `${theme}/logo.svg`);
- changeImageSrc("#home_pic", `${theme}/${lang}_home_pic1.png`);
- changeImageSrc("#home_pic2", `${theme}/${lang}_home_pic2.png`);
- changeImageSrc("#home_pic3", `${theme}/${lang}_home_pic3.png`);
- changeImageSrc("#home_pic4", `${theme}/${lang}_home_pic4.png`);
- changeImageSrc("#home_pic5", `${theme}/${lang}_home_pic5.png`);
- changeImageSrc("#home_pic6", `${theme}/${lang}_home_pic6.png`);
- changeImageSrc("#solution_pic1", `${theme}/${lang}_solution_pic1.png`);
- changeImageSrc("#solution_pic2", `${theme}/${lang}_solution_pic2.png`);
- changeImageSrc("#solution_pic3", `${theme}/${lang}_solution_pic3.png`);
- changeImageSrc("#dow_pic1", `${theme}/${lang}_dow_pic1.png`);
- changeImageSrc("#solution_pic4", `${theme}/solution_pic4.png`);
- changeImageSrc("#about_pic1", `${theme}/about_pic1.png`);
- changeImageSrc("#home_icon1", `${theme}/home_icon1.png`);
- changeImageSrc("#home_icon2", `${theme}/home_icon2.png`);
- changeImageSrc("#home_icon3", `${theme}/home_icon3.png`);
- changeImageSrc("#home_icon4", `${theme}/home_icon4.png`);
- changeImageSrc("#home_pic7", `${theme}/home_pic7.svg`);
- changeImageSrc("#home_pic7_768", `${theme}/home_pic7_768.svg`);
- changeImageSrc("#help_pic2", `${theme}/help_pic2.png`);
- changeImageSrc("#help_pic3", `${theme}/help_pic3.png`);
- root.style.setProperty(
- "--bg-pic7-url",
- `url(../img/${theme}/home_pic7.svg)`
- );
- root.style.setProperty(
- "--bg-pic7-768-url",
- `url(../img/${theme}/home_pic7-768.svg)`
- );
- root.style.setProperty(
- `--bg-pic1-url`,
- `url(../img/${theme}/${lang}_dow_pic1.png)`
- );
- root.style.setProperty(
- `--bg-pic2-url`,
- `url(../img/${theme}/help_pic1.svg)`
- );
- root.style.setProperty(`--bg-1-url`, `url(../img/${theme}/bg1.png)`);
- root.style.setProperty(`--bg-2-url`, `url(../img/${theme}/bg2.png)`);
- root.style.setProperty(`--bg-3-url`, `url(../img/${theme}/bg3.png)`);
- root.style.setProperty(`--bg-4-url`, `url(../img/${theme}/bg4.png)`);
- root.style.setProperty(`--bg-5-url`, `url(../img/${theme}/bg5.png)`);
- root.style.setProperty(`--bg-6-url`, `url(../img/${theme}/bg6.png)`);
- root.style.setProperty(`--bg-7-url`, `url(../img/${theme}/bg7.png)`);
- root.style.setProperty(`--bg-8-url`, `url(../img/${theme}/bg8.png)`);
- root.style.setProperty(`--bg-9-url`, `url(../img/${theme}/bg9.png)`);
- root.style.setProperty(`--bg-10-url`, `url(../img/${theme}/bg10.png)`);
- root.style.setProperty(`--bg-11-url`, `url(../img/${theme}/bg11.png)`);
- root.style.setProperty(
- `--bg-768-3-url`,
- `url(../img/${theme}/bg3_768.png)`
- );
- root.style.setProperty(
- `--bg-768-4-url`,
- `url(../img/${theme}/bg4_768.png)`
- );
- root.style.setProperty(
- `--bg-768-5-url`,
- `url(../img/${theme}/bg5_768.png)`
- );
- root.style.setProperty(
- `--bg-768-6-url`,
- `url(../img/${theme}/bg6_768.png)`
- );
- root.style.setProperty(
- `--bg-768-7-url`,
- `url(../img/${theme}/bg7_768.png)`
- );
- root.style.setProperty(
- `--bg-768-8-url`,
- `url(../img/${theme}/bg8_768.png)`
- );
- root.style.setProperty(
- `--bg-768-9-url`,
- `url(../img/${theme}/bg9_768.png)`
- );
- root.style.setProperty("--bg-color", theme === "dark" ? "#1E1E1E" : "#fff");
- root.style.setProperty("--text-color", theme === "dark" ? "#fff" : "#000");
- root.style.setProperty(
- "--txt-gray-color",
- theme === "dark" ? "#888C8A" : "#727570"
- );
- root.style.setProperty(
- "--txt-4ca5",
- theme === "dark" ? "#A5ACA9" : "#4C4E4B"
- );
- root.style.setProperty(
- "--txt-theme-color",
- theme === "dark" ? "#58A738" : "#8BCF70"
- );
- root.style.setProperty(
- "--bg-hover-color",
- theme === "dark" ? "#2C312E" : "#F2F3F1"
- );
- root.style.setProperty(
- "--btn-hover-color",
- theme === "dark" ? "#5EB939" : "#98d87f"
- );
- root.style.setProperty(
- "--choose-bg-hover-color",
- theme === "dark" ? "#2E3533" : "#fff"
- );
- root.style.setProperty(
- "--box-shadow-color",
- theme === "dark" ? "rgba(0, 0, 0, 0.12)" : "rgba(234, 236, 242, 0.5)"
- );
- root.style.setProperty(
- "--border-color",
- theme === "dark" ? "#2F3329" : "#E7E9E4"
- );
- root.style.setProperty(
- "--pop-bg-color",
- theme === "dark" ? "#202124" : "#fff"
- );
- root.style.setProperty(
- "--bg-fa-color",
- theme === "dark" ? "#262B2A" : "#fafafa"
- );
- root.style.setProperty(
- "--txt-191a15-color",
- theme === "dark" ? "#fff" : "#191a15"
- );
- root.style.setProperty(
- "--bg-rec-color",
- theme === "dark" ? "#D6B300" : "#FFDD33"
- );
- root.style.setProperty(
- "--bg-292c2f-color",
- theme === "dark" ? "#292C2F" : "#fff"
- );
- root.style.setProperty(
- "--pop-box-shadow",
- theme === "dark"
- ? "0px 4px 16px 8px rgba(0, 0, 0, 0.12)"
- : "0px 0px 8px #F3F2F5"
- );
- root.style.setProperty(
- "--code-bg-color",
- theme === "dark" ? "#2E3533" : "#000"
- );
- theme === "dark"
- ? themeSwitch("none", "block")
- : themeSwitch("block", "none");
- localStorage.setItem("theme", theme);
- drawer.classList.remove("open-drawer");
-}
-/* 导航选中激活 */
-const url = window.location.pathname;
-const currentTabName = url.split("/")[url.split("/").length - 1].split(".")[0];
-if (
- currentTabName &&
- currentTabName != "index" &&
- currentTabName != "help" &&
- currentTabName != "download" &&
- currentTabName != "log"
-) {
- const currentTab = document.querySelector(`.nav-${currentTabName}`);
- if (currentTab) {
- currentTab.style.backgroundColor = "var(--bg-hover-color)";
- currentTab.style.color = "var(--text-color)";
- currentTab.style.borderRadius = "6px";
- }
-}
-/* 导航下拉菜单函数 */
-const submenuPopDom = document.querySelector("#submenu-pop");
-const dropDownSvgDom = document.querySelector("#drop-down-svg");
-const showMenuPopHandle = () => {
- submenuPopDom.style.display = "block";
- dropDownSvgDom.style.transform = "rotate(180deg)";
-};
-const changeMenu = (type) => {
- submenuPopDom.style.display = "none";
- dropDownSvgDom.style.transform = "";
-};
-document.addEventListener("click", function (event) {
- if (!event.target.closest("#support-txt")) {
- submenuPopDom.style.display = "none";
- dropDownSvgDom.style.transform = "";
- }
-});
-/* 语言切换函数 */
-const langPopDom = document.querySelector("#lang-pop");
-const shouLangPopHandle = () => {
- langPopDom.style.display = "block";
-};
-const changeLanguage = (type) => {
- const str = window.location.pathname;
- const index = str.lastIndexOf("/");
- const newStr = str.slice(index + 1);
- const lang = localStorage.getItem("lang");
- if (type != lang) {
- if (str.includes("site")) {
- window.location.href = `/site/${type}/${newStr}`;
- } else {
- window.location.href = `/site/${type}/index.html`;
- }
- } else {
- if (str.includes("site")) {
- window.location.href = `/site/${lang}/${newStr}`;
- } else {
- window.location.href = `/site/${lang}/index.html`;
- }
- }
- langPopDom.style.display = "none";
- localStorage.setItem("lang", type);
- drawer.classList.remove("open-drawer");
-};
-document.addEventListener("click", function (event) {
- if (!event.target.closest("#lang-img")) {
- langPopDom.style.display = "none";
- }
-});
-/* 当屏幕宽度低于768px时显示菜单的抽屉的相关操作逻辑 */
-menuBtn.addEventListener("click", () => {
- drawer.classList.add("open-drawer");
-});
-const closeDraweHandle = () => {
- drawer.classList.remove("open-drawer");
-};
-window.addEventListener("click", (e) => {
- if (!drawer.contains(e.target) && e.target !== menuBtn) {
- drawer.classList.remove("open-drawer");
- }
-});
-const expandMenuHandle = (val) => {
- const actives = document.querySelector(`#${val}`);
- const dropDownSvgDom = document.querySelector(`#drawer-down-${val}-svg`);
- if (actives.style.display == "none") {
- actives.style.display = "block";
- dropDownSvgDom.style.transform = "rotate(180deg)";
- } else {
- dropDownSvgDom.style.transform = "";
- actives.style.display = "none";
- }
-};
-/* 导航栏悬浮函数 */
-const navbar = document.querySelector(".nav");
-window.addEventListener("scroll", () => {
- if (window.scrollY >= 30) {
- navbar.classList.add("navbar-white");
- } else {
- navbar.classList.remove("navbar-white");
- }
-});
-const openInNewTab = (url) => {
- const win = window.open(url, "_blank");
- win.focus();
-};
-// 点击其他地方置为none
-document.addEventListener("click", function (event) {
- let toolbarPhone = document.getElementById("side_toolbar_item_phone");
- let tooltipPhone = document.getElementById("toolbar_tooltip_phone");
- let toolbarWhtasapp = document.getElementById("side_toolbar_item_whtasapp");
- let tooltipWhtasapp = document.getElementById("toolbar_tooltip_whtasapp");
- let toolbarQrcode = document.getElementById("side_toolbar_item_qrcode");
- let tooltipQrcode = document.getElementById("toolbar_tooltip_qrcode");
- if (!toolbarPhone.contains(event.target)) {
- tooltipPhone.style.display = "none";
- }
- if (!toolbarWhtasapp.contains(event.target)) {
- tooltipWhtasapp.style.display = "none";
- }
- if (!toolbarQrcode.contains(event.target)) {
- tooltipQrcode.style.display = "none";
- }
-});
diff --git a/public/site/js/googleAds.js b/public/site/js/googleAds.js
deleted file mode 100644
index 48eea715b..000000000
--- a/public/site/js/googleAds.js
+++ /dev/null
@@ -1,6 +0,0 @@
-window.dataLayer = window.dataLayer || [];
-function gtag() {
- dataLayer.push(arguments);
-}
-gtag("js", new Date());
-gtag("config", "AW-16660800396");
diff --git a/public/site/js/googleAnalyze.js b/public/site/js/googleAnalyze.js
deleted file mode 100644
index bc8e5fd53..000000000
--- a/public/site/js/googleAnalyze.js
+++ /dev/null
@@ -1,6 +0,0 @@
-window.dataLayer = window.dataLayer || [];
-function gtag() {
- dataLayer.push(arguments);
-}
-gtag("js", new Date());
-gtag("config", "G-PE77P6491J");
diff --git a/public/site/js/markdown-it.min.js b/public/site/js/markdown-it.min.js
deleted file mode 100644
index 5e6f25691..000000000
--- a/public/site/js/markdown-it.min.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! markdown-it 14.1.0 https://github.com/markdown-it/markdown-it @license MIT */
-!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).markdownit=e()}(this,(function(){"use strict";const t={};function e(r,n){"string"!=typeof n&&(n=e.defaultChars);const s=function(e){let r=t[e];if(r)return r;r=t[e]=[];for(let t=0;t<128;t++){const e=String.fromCharCode(t);r.push(e)}for(let t=0;t=55296&&t<=57343?"\ufffd\ufffd\ufffd":String.fromCharCode(t),r+=6;continue}}if(240==(248&i)&&r+91114111?e+="\ufffd\ufffd\ufffd\ufffd":(t-=65536,e+=String.fromCharCode(55296+(t>>10),56320+(1023&t))),r+=9;continue}}e+="\ufffd"}}return e}))}e.defaultChars=";/?:@&=+$,#",e.componentChars="";const r={};function n(t,e,s){"string"!=typeof e&&(s=e,e=n.defaultChars),void 0===s&&(s=!0);const i=function(t){let e=r[t];if(e)return e;e=r[t]=[];for(let t=0;t<128;t++){const r=String.fromCharCode(t);/^[0-9a-z]$/i.test(r)?e.push(r):e.push("%"+("0"+t.toString(16).toUpperCase()).slice(-2))}for(let r=0;r=55296&&n<=57343){if(n>=55296&&n<=56319&&e+1=56320&&r<=57343){o+=encodeURIComponent(t[e]+t[e+1]),e++;continue}}o+="%EF%BF%BD"}else o+=encodeURIComponent(t[e])}return o}function s(t){let e="";return e+=t.protocol||"",e+=t.slashes?"//":"",e+=t.auth?t.auth+"@":"",t.hostname&&-1!==t.hostname.indexOf(":")?e+="["+t.hostname+"]":e+=t.hostname||"",e+=t.port?":"+t.port:"",e+=t.pathname||"",e+=t.search||"",e+=t.hash||"",e}function i(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}n.defaultChars=";/?:@&=+$,-_.!~*'()#",n.componentChars="-_.!~*'()";const o=/^([a-z0-9.+-]+:)/i,u=/:[0-9]*$/,c=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,a=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),l=["'"].concat(a),h=["%","/","?",";","#"].concat(l),p=["/","?","#"],f=/^[+a-z0-9A-Z_-]{0,63}$/,d=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,_={javascript:!0,"javascript:":!0},m={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};function g(t,e){if(t&&t instanceof i)return t;const r=new i;return r.parse(t,e),r}i.prototype.parse=function(t,e){let r,n,s,i=t;if(i=i.trim(),!e&&1===t.split("#").length){const t=c.exec(i);if(t)return this.pathname=t[1],t[2]&&(this.search=t[2]),this}let u=o.exec(i);if(u&&(u=u[0],r=u.toLowerCase(),this.protocol=u,i=i.substr(u.length)),(e||u||i.match(/^\/\/[^@\/]+@[^@\/]+/))&&(s="//"===i.substr(0,2),!s||u&&_[u]||(i=i.substr(2),this.slashes=!0)),!_[u]&&(s||u&&!m[u])){let t,e,r=-1;for(let t=0;t127?n+="x":n+=r[t];if(!n.match(f)){const n=t.slice(0,e),s=t.slice(e+1),o=r.match(d);o&&(n.push(o[1]),s.unshift(o[2])),s.length&&(i=s.join(".")+i),this.hostname=n.join(".");break}}}}this.hostname.length>255&&(this.hostname=""),o&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}const a=i.indexOf("#");-1!==a&&(this.hash=i.substr(a),i=i.slice(0,a));const l=i.indexOf("?");return-1!==l&&(this.search=i.substr(l),i=i.slice(0,l)),i&&(this.pathname=i),m[r]&&this.hostname&&!this.pathname&&(this.pathname=""),this},i.prototype.parseHost=function(t){let e=u.exec(t);e&&(e=e[0],":"!==e&&(this.port=e.substr(1)),t=t.substr(0,t.length-e.length)),t&&(this.hostname=t)};var k,D=Object.freeze({__proto__:null,decode:e,encode:n,format:s,parse:g}),C=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,y=/[\0-\x1F\x7F-\x9F]/,E=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1B7D\u1B7E\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-\u2E4F\u2E52-\u2E5D\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[\uDEAD\uDF55-\uDF59\uDF86-\uDF89]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDEB9\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2\uDF00-\uDF09]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDF43-\uDF4F\uDFFF]|\uD809[\uDC70-\uDC74]|\uD80B[\uDFF1\uDFF2]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/,A=/[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u0888\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20C0\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFF\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u31EF\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC2\uFD40-\uFD4F\uFDCF\uFDFC-\uFDFF\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD833[\uDF50-\uDFC3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDEA\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEDC-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF76\uDF7B-\uDFD9\uDFE0-\uDFEB\uDFF0]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDE53\uDE60-\uDE6D\uDE70-\uDE7C\uDE80-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC5\uDECE-\uDEDB\uDEE0-\uDEE8\uDEF0-\uDEF8\uDF00-\uDF92\uDF94-\uDFCA]/,b=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/,F=Object.freeze({__proto__:null,Any:C,Cc:y,Cf:/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u0890\u0891\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD80D[\uDC30-\uDC3F]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/,P:E,S:A,Z:b}),x=new Uint16Array('\u1d41<\xd5\u0131\u028a\u049d\u057b\u05d0\u0675\u06de\u07a2\u07d6\u080f\u0a4a\u0a91\u0da1\u0e6d\u0f09\u0f26\u10ca\u1228\u12e1\u1415\u149d\u14c3\u14df\u1525\0\0\0\0\0\0\u156b\u16cd\u198d\u1c12\u1ddd\u1f7e\u2060\u21b0\u228d\u23c0\u23fb\u2442\u2824\u2912\u2d08\u2e48\u2fce\u3016\u32ba\u3639\u37ac\u38fe\u3a28\u3a71\u3ae0\u3b2e\u0800EMabcfglmnoprstu\\bfms\x7f\x84\x8b\x90\x95\x98\xa6\xb3\xb9\xc8\xcflig\u803b\xc6\u40c6P\u803b&\u4026cute\u803b\xc1\u40c1reve;\u4102\u0100iyx}rc\u803b\xc2\u40c2;\u4410r;\uc000\ud835\udd04rave\u803b\xc0\u40c0pha;\u4391acr;\u4100d;\u6a53\u0100gp\x9d\xa1on;\u4104f;\uc000\ud835\udd38plyFunction;\u6061ing\u803b\xc5\u40c5\u0100cs\xbe\xc3r;\uc000\ud835\udc9cign;\u6254ilde\u803b\xc3\u40c3ml\u803b\xc4\u40c4\u0400aceforsu\xe5\xfb\xfe\u0117\u011c\u0122\u0127\u012a\u0100cr\xea\xf2kslash;\u6216\u0176\xf6\xf8;\u6ae7ed;\u6306y;\u4411\u0180crt\u0105\u010b\u0114ause;\u6235noullis;\u612ca;\u4392r;\uc000\ud835\udd05pf;\uc000\ud835\udd39eve;\u42d8c\xf2\u0113mpeq;\u624e\u0700HOacdefhilorsu\u014d\u0151\u0156\u0180\u019e\u01a2\u01b5\u01b7\u01ba\u01dc\u0215\u0273\u0278\u027ecy;\u4427PY\u803b\xa9\u40a9\u0180cpy\u015d\u0162\u017aute;\u4106\u0100;i\u0167\u0168\u62d2talDifferentialD;\u6145leys;\u612d\u0200aeio\u0189\u018e\u0194\u0198ron;\u410cdil\u803b\xc7\u40c7rc;\u4108nint;\u6230ot;\u410a\u0100dn\u01a7\u01adilla;\u40b8terDot;\u40b7\xf2\u017fi;\u43a7rcle\u0200DMPT\u01c7\u01cb\u01d1\u01d6ot;\u6299inus;\u6296lus;\u6295imes;\u6297o\u0100cs\u01e2\u01f8kwiseContourIntegral;\u6232eCurly\u0100DQ\u0203\u020foubleQuote;\u601duote;\u6019\u0200lnpu\u021e\u0228\u0247\u0255on\u0100;e\u0225\u0226\u6237;\u6a74\u0180git\u022f\u0236\u023aruent;\u6261nt;\u622fourIntegral;\u622e\u0100fr\u024c\u024e;\u6102oduct;\u6210nterClockwiseContourIntegral;\u6233oss;\u6a2fcr;\uc000\ud835\udc9ep\u0100;C\u0284\u0285\u62d3ap;\u624d\u0580DJSZacefios\u02a0\u02ac\u02b0\u02b4\u02b8\u02cb\u02d7\u02e1\u02e6\u0333\u048d\u0100;o\u0179\u02a5trahd;\u6911cy;\u4402cy;\u4405cy;\u440f\u0180grs\u02bf\u02c4\u02c7ger;\u6021r;\u61a1hv;\u6ae4\u0100ay\u02d0\u02d5ron;\u410e;\u4414l\u0100;t\u02dd\u02de\u6207a;\u4394r;\uc000\ud835\udd07\u0100af\u02eb\u0327\u0100cm\u02f0\u0322ritical\u0200ADGT\u0300\u0306\u0316\u031ccute;\u40b4o\u0174\u030b\u030d;\u42d9bleAcute;\u42ddrave;\u4060ilde;\u42dcond;\u62c4ferentialD;\u6146\u0470\u033d\0\0\0\u0342\u0354\0\u0405f;\uc000\ud835\udd3b\u0180;DE\u0348\u0349\u034d\u40a8ot;\u60dcqual;\u6250ble\u0300CDLRUV\u0363\u0372\u0382\u03cf\u03e2\u03f8ontourIntegra\xec\u0239o\u0274\u0379\0\0\u037b\xbb\u0349nArrow;\u61d3\u0100eo\u0387\u03a4ft\u0180ART\u0390\u0396\u03a1rrow;\u61d0ightArrow;\u61d4e\xe5\u02cang\u0100LR\u03ab\u03c4eft\u0100AR\u03b3\u03b9rrow;\u67f8ightArrow;\u67faightArrow;\u67f9ight\u0100AT\u03d8\u03derrow;\u61d2ee;\u62a8p\u0241\u03e9\0\0\u03efrrow;\u61d1ownArrow;\u61d5erticalBar;\u6225n\u0300ABLRTa\u0412\u042a\u0430\u045e\u047f\u037crrow\u0180;BU\u041d\u041e\u0422\u6193ar;\u6913pArrow;\u61f5reve;\u4311eft\u02d2\u043a\0\u0446\0\u0450ightVector;\u6950eeVector;\u695eector\u0100;B\u0459\u045a\u61bdar;\u6956ight\u01d4\u0467\0\u0471eeVector;\u695fector\u0100;B\u047a\u047b\u61c1ar;\u6957ee\u0100;A\u0486\u0487\u62a4rrow;\u61a7\u0100ct\u0492\u0497r;\uc000\ud835\udc9frok;\u4110\u0800NTacdfglmopqstux\u04bd\u04c0\u04c4\u04cb\u04de\u04e2\u04e7\u04ee\u04f5\u0521\u052f\u0536\u0552\u055d\u0560\u0565G;\u414aH\u803b\xd0\u40d0cute\u803b\xc9\u40c9\u0180aiy\u04d2\u04d7\u04dcron;\u411arc\u803b\xca\u40ca;\u442dot;\u4116r;\uc000\ud835\udd08rave\u803b\xc8\u40c8ement;\u6208\u0100ap\u04fa\u04fecr;\u4112ty\u0253\u0506\0\0\u0512mallSquare;\u65fberySmallSquare;\u65ab\u0100gp\u0526\u052aon;\u4118f;\uc000\ud835\udd3csilon;\u4395u\u0100ai\u053c\u0549l\u0100;T\u0542\u0543\u6a75ilde;\u6242librium;\u61cc\u0100ci\u0557\u055ar;\u6130m;\u6a73a;\u4397ml\u803b\xcb\u40cb\u0100ip\u056a\u056fsts;\u6203onentialE;\u6147\u0280cfios\u0585\u0588\u058d\u05b2\u05ccy;\u4424r;\uc000\ud835\udd09lled\u0253\u0597\0\0\u05a3mallSquare;\u65fcerySmallSquare;\u65aa\u0370\u05ba\0\u05bf\0\0\u05c4f;\uc000\ud835\udd3dAll;\u6200riertrf;\u6131c\xf2\u05cb\u0600JTabcdfgorst\u05e8\u05ec\u05ef\u05fa\u0600\u0612\u0616\u061b\u061d\u0623\u066c\u0672cy;\u4403\u803b>\u403emma\u0100;d\u05f7\u05f8\u4393;\u43dcreve;\u411e\u0180eiy\u0607\u060c\u0610dil;\u4122rc;\u411c;\u4413ot;\u4120r;\uc000\ud835\udd0a;\u62d9pf;\uc000\ud835\udd3eeater\u0300EFGLST\u0635\u0644\u064e\u0656\u065b\u0666qual\u0100;L\u063e\u063f\u6265ess;\u62dbullEqual;\u6267reater;\u6aa2ess;\u6277lantEqual;\u6a7eilde;\u6273cr;\uc000\ud835\udca2;\u626b\u0400Aacfiosu\u0685\u068b\u0696\u069b\u069e\u06aa\u06be\u06caRDcy;\u442a\u0100ct\u0690\u0694ek;\u42c7;\u405eirc;\u4124r;\u610clbertSpace;\u610b\u01f0\u06af\0\u06b2f;\u610dizontalLine;\u6500\u0100ct\u06c3\u06c5\xf2\u06a9rok;\u4126mp\u0144\u06d0\u06d8ownHum\xf0\u012fqual;\u624f\u0700EJOacdfgmnostu\u06fa\u06fe\u0703\u0707\u070e\u071a\u071e\u0721\u0728\u0744\u0778\u078b\u078f\u0795cy;\u4415lig;\u4132cy;\u4401cute\u803b\xcd\u40cd\u0100iy\u0713\u0718rc\u803b\xce\u40ce;\u4418ot;\u4130r;\u6111rave\u803b\xcc\u40cc\u0180;ap\u0720\u072f\u073f\u0100cg\u0734\u0737r;\u412ainaryI;\u6148lie\xf3\u03dd\u01f4\u0749\0\u0762\u0100;e\u074d\u074e\u622c\u0100gr\u0753\u0758ral;\u622bsection;\u62c2isible\u0100CT\u076c\u0772omma;\u6063imes;\u6062\u0180gpt\u077f\u0783\u0788on;\u412ef;\uc000\ud835\udd40a;\u4399cr;\u6110ilde;\u4128\u01eb\u079a\0\u079ecy;\u4406l\u803b\xcf\u40cf\u0280cfosu\u07ac\u07b7\u07bc\u07c2\u07d0\u0100iy\u07b1\u07b5rc;\u4134;\u4419r;\uc000\ud835\udd0dpf;\uc000\ud835\udd41\u01e3\u07c7\0\u07ccr;\uc000\ud835\udca5rcy;\u4408kcy;\u4404\u0380HJacfos\u07e4\u07e8\u07ec\u07f1\u07fd\u0802\u0808cy;\u4425cy;\u440cppa;\u439a\u0100ey\u07f6\u07fbdil;\u4136;\u441ar;\uc000\ud835\udd0epf;\uc000\ud835\udd42cr;\uc000\ud835\udca6\u0580JTaceflmost\u0825\u0829\u082c\u0850\u0863\u09b3\u09b8\u09c7\u09cd\u0a37\u0a47cy;\u4409\u803b<\u403c\u0280cmnpr\u0837\u083c\u0841\u0844\u084dute;\u4139bda;\u439bg;\u67ealacetrf;\u6112r;\u619e\u0180aey\u0857\u085c\u0861ron;\u413ddil;\u413b;\u441b\u0100fs\u0868\u0970t\u0500ACDFRTUVar\u087e\u08a9\u08b1\u08e0\u08e6\u08fc\u092f\u095b\u0390\u096a\u0100nr\u0883\u088fgleBracket;\u67e8row\u0180;BR\u0899\u089a\u089e\u6190ar;\u61e4ightArrow;\u61c6eiling;\u6308o\u01f5\u08b7\0\u08c3bleBracket;\u67e6n\u01d4\u08c8\0\u08d2eeVector;\u6961ector\u0100;B\u08db\u08dc\u61c3ar;\u6959loor;\u630aight\u0100AV\u08ef\u08f5rrow;\u6194ector;\u694e\u0100er\u0901\u0917e\u0180;AV\u0909\u090a\u0910\u62a3rrow;\u61a4ector;\u695aiangle\u0180;BE\u0924\u0925\u0929\u62b2ar;\u69cfqual;\u62b4p\u0180DTV\u0937\u0942\u094cownVector;\u6951eeVector;\u6960ector\u0100;B\u0956\u0957\u61bfar;\u6958ector\u0100;B\u0965\u0966\u61bcar;\u6952ight\xe1\u039cs\u0300EFGLST\u097e\u098b\u0995\u099d\u09a2\u09adqualGreater;\u62daullEqual;\u6266reater;\u6276ess;\u6aa1lantEqual;\u6a7dilde;\u6272r;\uc000\ud835\udd0f\u0100;e\u09bd\u09be\u62d8ftarrow;\u61daidot;\u413f\u0180npw\u09d4\u0a16\u0a1bg\u0200LRlr\u09de\u09f7\u0a02\u0a10eft\u0100AR\u09e6\u09ecrrow;\u67f5ightArrow;\u67f7ightArrow;\u67f6eft\u0100ar\u03b3\u0a0aight\xe1\u03bfight\xe1\u03caf;\uc000\ud835\udd43er\u0100LR\u0a22\u0a2ceftArrow;\u6199ightArrow;\u6198\u0180cht\u0a3e\u0a40\u0a42\xf2\u084c;\u61b0rok;\u4141;\u626a\u0400acefiosu\u0a5a\u0a5d\u0a60\u0a77\u0a7c\u0a85\u0a8b\u0a8ep;\u6905y;\u441c\u0100dl\u0a65\u0a6fiumSpace;\u605flintrf;\u6133r;\uc000\ud835\udd10nusPlus;\u6213pf;\uc000\ud835\udd44c\xf2\u0a76;\u439c\u0480Jacefostu\u0aa3\u0aa7\u0aad\u0ac0\u0b14\u0b19\u0d91\u0d97\u0d9ecy;\u440acute;\u4143\u0180aey\u0ab4\u0ab9\u0aberon;\u4147dil;\u4145;\u441d\u0180gsw\u0ac7\u0af0\u0b0eative\u0180MTV\u0ad3\u0adf\u0ae8ediumSpace;\u600bhi\u0100cn\u0ae6\u0ad8\xeb\u0ad9eryThi\xee\u0ad9ted\u0100GL\u0af8\u0b06reaterGreate\xf2\u0673essLes\xf3\u0a48Line;\u400ar;\uc000\ud835\udd11\u0200Bnpt\u0b22\u0b28\u0b37\u0b3areak;\u6060BreakingSpace;\u40a0f;\u6115\u0680;CDEGHLNPRSTV\u0b55\u0b56\u0b6a\u0b7c\u0ba1\u0beb\u0c04\u0c5e\u0c84\u0ca6\u0cd8\u0d61\u0d85\u6aec\u0100ou\u0b5b\u0b64ngruent;\u6262pCap;\u626doubleVerticalBar;\u6226\u0180lqx\u0b83\u0b8a\u0b9bement;\u6209ual\u0100;T\u0b92\u0b93\u6260ilde;\uc000\u2242\u0338ists;\u6204reater\u0380;EFGLST\u0bb6\u0bb7\u0bbd\u0bc9\u0bd3\u0bd8\u0be5\u626fqual;\u6271ullEqual;\uc000\u2267\u0338reater;\uc000\u226b\u0338ess;\u6279lantEqual;\uc000\u2a7e\u0338ilde;\u6275ump\u0144\u0bf2\u0bfdownHump;\uc000\u224e\u0338qual;\uc000\u224f\u0338e\u0100fs\u0c0a\u0c27tTriangle\u0180;BE\u0c1a\u0c1b\u0c21\u62eaar;\uc000\u29cf\u0338qual;\u62ecs\u0300;EGLST\u0c35\u0c36\u0c3c\u0c44\u0c4b\u0c58\u626equal;\u6270reater;\u6278ess;\uc000\u226a\u0338lantEqual;\uc000\u2a7d\u0338ilde;\u6274ested\u0100GL\u0c68\u0c79reaterGreater;\uc000\u2aa2\u0338essLess;\uc000\u2aa1\u0338recedes\u0180;ES\u0c92\u0c93\u0c9b\u6280qual;\uc000\u2aaf\u0338lantEqual;\u62e0\u0100ei\u0cab\u0cb9verseElement;\u620cghtTriangle\u0180;BE\u0ccb\u0ccc\u0cd2\u62ebar;\uc000\u29d0\u0338qual;\u62ed\u0100qu\u0cdd\u0d0cuareSu\u0100bp\u0ce8\u0cf9set\u0100;E\u0cf0\u0cf3\uc000\u228f\u0338qual;\u62e2erset\u0100;E\u0d03\u0d06\uc000\u2290\u0338qual;\u62e3\u0180bcp\u0d13\u0d24\u0d4eset\u0100;E\u0d1b\u0d1e\uc000\u2282\u20d2qual;\u6288ceeds\u0200;EST\u0d32\u0d33\u0d3b\u0d46\u6281qual;\uc000\u2ab0\u0338lantEqual;\u62e1ilde;\uc000\u227f\u0338erset\u0100;E\u0d58\u0d5b\uc000\u2283\u20d2qual;\u6289ilde\u0200;EFT\u0d6e\u0d6f\u0d75\u0d7f\u6241qual;\u6244ullEqual;\u6247ilde;\u6249erticalBar;\u6224cr;\uc000\ud835\udca9ilde\u803b\xd1\u40d1;\u439d\u0700Eacdfgmoprstuv\u0dbd\u0dc2\u0dc9\u0dd5\u0ddb\u0de0\u0de7\u0dfc\u0e02\u0e20\u0e22\u0e32\u0e3f\u0e44lig;\u4152cute\u803b\xd3\u40d3\u0100iy\u0dce\u0dd3rc\u803b\xd4\u40d4;\u441eblac;\u4150r;\uc000\ud835\udd12rave\u803b\xd2\u40d2\u0180aei\u0dee\u0df2\u0df6cr;\u414cga;\u43a9cron;\u439fpf;\uc000\ud835\udd46enCurly\u0100DQ\u0e0e\u0e1aoubleQuote;\u601cuote;\u6018;\u6a54\u0100cl\u0e27\u0e2cr;\uc000\ud835\udcaaash\u803b\xd8\u40d8i\u016c\u0e37\u0e3cde\u803b\xd5\u40d5es;\u6a37ml\u803b\xd6\u40d6er\u0100BP\u0e4b\u0e60\u0100ar\u0e50\u0e53r;\u603eac\u0100ek\u0e5a\u0e5c;\u63deet;\u63b4arenthesis;\u63dc\u0480acfhilors\u0e7f\u0e87\u0e8a\u0e8f\u0e92\u0e94\u0e9d\u0eb0\u0efcrtialD;\u6202y;\u441fr;\uc000\ud835\udd13i;\u43a6;\u43a0usMinus;\u40b1\u0100ip\u0ea2\u0eadncareplan\xe5\u069df;\u6119\u0200;eio\u0eb9\u0eba\u0ee0\u0ee4\u6abbcedes\u0200;EST\u0ec8\u0ec9\u0ecf\u0eda\u627aqual;\u6aaflantEqual;\u627cilde;\u627eme;\u6033\u0100dp\u0ee9\u0eeeuct;\u620fortion\u0100;a\u0225\u0ef9l;\u621d\u0100ci\u0f01\u0f06r;\uc000\ud835\udcab;\u43a8\u0200Ufos\u0f11\u0f16\u0f1b\u0f1fOT\u803b"\u4022r;\uc000\ud835\udd14pf;\u611acr;\uc000\ud835\udcac\u0600BEacefhiorsu\u0f3e\u0f43\u0f47\u0f60\u0f73\u0fa7\u0faa\u0fad\u1096\u10a9\u10b4\u10bearr;\u6910G\u803b\xae\u40ae\u0180cnr\u0f4e\u0f53\u0f56ute;\u4154g;\u67ebr\u0100;t\u0f5c\u0f5d\u61a0l;\u6916\u0180aey\u0f67\u0f6c\u0f71ron;\u4158dil;\u4156;\u4420\u0100;v\u0f78\u0f79\u611cerse\u0100EU\u0f82\u0f99\u0100lq\u0f87\u0f8eement;\u620builibrium;\u61cbpEquilibrium;\u696fr\xbb\u0f79o;\u43a1ght\u0400ACDFTUVa\u0fc1\u0feb\u0ff3\u1022\u1028\u105b\u1087\u03d8\u0100nr\u0fc6\u0fd2gleBracket;\u67e9row\u0180;BL\u0fdc\u0fdd\u0fe1\u6192ar;\u61e5eftArrow;\u61c4eiling;\u6309o\u01f5\u0ff9\0\u1005bleBracket;\u67e7n\u01d4\u100a\0\u1014eeVector;\u695dector\u0100;B\u101d\u101e\u61c2ar;\u6955loor;\u630b\u0100er\u102d\u1043e\u0180;AV\u1035\u1036\u103c\u62a2rrow;\u61a6ector;\u695biangle\u0180;BE\u1050\u1051\u1055\u62b3ar;\u69d0qual;\u62b5p\u0180DTV\u1063\u106e\u1078ownVector;\u694feeVector;\u695cector\u0100;B\u1082\u1083\u61bear;\u6954ector\u0100;B\u1091\u1092\u61c0ar;\u6953\u0100pu\u109b\u109ef;\u611dndImplies;\u6970ightarrow;\u61db\u0100ch\u10b9\u10bcr;\u611b;\u61b1leDelayed;\u69f4\u0680HOacfhimoqstu\u10e4\u10f1\u10f7\u10fd\u1119\u111e\u1151\u1156\u1161\u1167\u11b5\u11bb\u11bf\u0100Cc\u10e9\u10eeHcy;\u4429y;\u4428FTcy;\u442ccute;\u415a\u0280;aeiy\u1108\u1109\u110e\u1113\u1117\u6abcron;\u4160dil;\u415erc;\u415c;\u4421r;\uc000\ud835\udd16ort\u0200DLRU\u112a\u1134\u113e\u1149ownArrow\xbb\u041eeftArrow\xbb\u089aightArrow\xbb\u0fddpArrow;\u6191gma;\u43a3allCircle;\u6218pf;\uc000\ud835\udd4a\u0272\u116d\0\0\u1170t;\u621aare\u0200;ISU\u117b\u117c\u1189\u11af\u65a1ntersection;\u6293u\u0100bp\u118f\u119eset\u0100;E\u1197\u1198\u628fqual;\u6291erset\u0100;E\u11a8\u11a9\u6290qual;\u6292nion;\u6294cr;\uc000\ud835\udcaear;\u62c6\u0200bcmp\u11c8\u11db\u1209\u120b\u0100;s\u11cd\u11ce\u62d0et\u0100;E\u11cd\u11d5qual;\u6286\u0100ch\u11e0\u1205eeds\u0200;EST\u11ed\u11ee\u11f4\u11ff\u627bqual;\u6ab0lantEqual;\u627dilde;\u627fTh\xe1\u0f8c;\u6211\u0180;es\u1212\u1213\u1223\u62d1rset\u0100;E\u121c\u121d\u6283qual;\u6287et\xbb\u1213\u0580HRSacfhiors\u123e\u1244\u1249\u1255\u125e\u1271\u1276\u129f\u12c2\u12c8\u12d1ORN\u803b\xde\u40deADE;\u6122\u0100Hc\u124e\u1252cy;\u440by;\u4426\u0100bu\u125a\u125c;\u4009;\u43a4\u0180aey\u1265\u126a\u126fron;\u4164dil;\u4162;\u4422r;\uc000\ud835\udd17\u0100ei\u127b\u1289\u01f2\u1280\0\u1287efore;\u6234a;\u4398\u0100cn\u128e\u1298kSpace;\uc000\u205f\u200aSpace;\u6009lde\u0200;EFT\u12ab\u12ac\u12b2\u12bc\u623cqual;\u6243ullEqual;\u6245ilde;\u6248pf;\uc000\ud835\udd4bipleDot;\u60db\u0100ct\u12d6\u12dbr;\uc000\ud835\udcafrok;\u4166\u0ae1\u12f7\u130e\u131a\u1326\0\u132c\u1331\0\0\0\0\0\u1338\u133d\u1377\u1385\0\u13ff\u1404\u140a\u1410\u0100cr\u12fb\u1301ute\u803b\xda\u40dar\u0100;o\u1307\u1308\u619fcir;\u6949r\u01e3\u1313\0\u1316y;\u440eve;\u416c\u0100iy\u131e\u1323rc\u803b\xdb\u40db;\u4423blac;\u4170r;\uc000\ud835\udd18rave\u803b\xd9\u40d9acr;\u416a\u0100di\u1341\u1369er\u0100BP\u1348\u135d\u0100ar\u134d\u1350r;\u405fac\u0100ek\u1357\u1359;\u63dfet;\u63b5arenthesis;\u63ddon\u0100;P\u1370\u1371\u62c3lus;\u628e\u0100gp\u137b\u137fon;\u4172f;\uc000\ud835\udd4c\u0400ADETadps\u1395\u13ae\u13b8\u13c4\u03e8\u13d2\u13d7\u13f3rrow\u0180;BD\u1150\u13a0\u13a4ar;\u6912ownArrow;\u61c5ownArrow;\u6195quilibrium;\u696eee\u0100;A\u13cb\u13cc\u62a5rrow;\u61a5own\xe1\u03f3er\u0100LR\u13de\u13e8eftArrow;\u6196ightArrow;\u6197i\u0100;l\u13f9\u13fa\u43d2on;\u43a5ing;\u416ecr;\uc000\ud835\udcb0ilde;\u4168ml\u803b\xdc\u40dc\u0480Dbcdefosv\u1427\u142c\u1430\u1433\u143e\u1485\u148a\u1490\u1496ash;\u62abar;\u6aeby;\u4412ash\u0100;l\u143b\u143c\u62a9;\u6ae6\u0100er\u1443\u1445;\u62c1\u0180bty\u144c\u1450\u147aar;\u6016\u0100;i\u144f\u1455cal\u0200BLST\u1461\u1465\u146a\u1474ar;\u6223ine;\u407ceparator;\u6758ilde;\u6240ThinSpace;\u600ar;\uc000\ud835\udd19pf;\uc000\ud835\udd4dcr;\uc000\ud835\udcb1dash;\u62aa\u0280cefos\u14a7\u14ac\u14b1\u14b6\u14bcirc;\u4174dge;\u62c0r;\uc000\ud835\udd1apf;\uc000\ud835\udd4ecr;\uc000\ud835\udcb2\u0200fios\u14cb\u14d0\u14d2\u14d8r;\uc000\ud835\udd1b;\u439epf;\uc000\ud835\udd4fcr;\uc000\ud835\udcb3\u0480AIUacfosu\u14f1\u14f5\u14f9\u14fd\u1504\u150f\u1514\u151a\u1520cy;\u442fcy;\u4407cy;\u442ecute\u803b\xdd\u40dd\u0100iy\u1509\u150drc;\u4176;\u442br;\uc000\ud835\udd1cpf;\uc000\ud835\udd50cr;\uc000\ud835\udcb4ml;\u4178\u0400Hacdefos\u1535\u1539\u153f\u154b\u154f\u155d\u1560\u1564cy;\u4416cute;\u4179\u0100ay\u1544\u1549ron;\u417d;\u4417ot;\u417b\u01f2\u1554\0\u155boWidt\xe8\u0ad9a;\u4396r;\u6128pf;\u6124cr;\uc000\ud835\udcb5\u0be1\u1583\u158a\u1590\0\u15b0\u15b6\u15bf\0\0\0\0\u15c6\u15db\u15eb\u165f\u166d\0\u1695\u169b\u16b2\u16b9\0\u16becute\u803b\xe1\u40e1reve;\u4103\u0300;Ediuy\u159c\u159d\u15a1\u15a3\u15a8\u15ad\u623e;\uc000\u223e\u0333;\u623frc\u803b\xe2\u40e2te\u80bb\xb4\u0306;\u4430lig\u803b\xe6\u40e6\u0100;r\xb2\u15ba;\uc000\ud835\udd1erave\u803b\xe0\u40e0\u0100ep\u15ca\u15d6\u0100fp\u15cf\u15d4sym;\u6135\xe8\u15d3ha;\u43b1\u0100ap\u15dfc\u0100cl\u15e4\u15e7r;\u4101g;\u6a3f\u0264\u15f0\0\0\u160a\u0280;adsv\u15fa\u15fb\u15ff\u1601\u1607\u6227nd;\u6a55;\u6a5clope;\u6a58;\u6a5a\u0380;elmrsz\u1618\u1619\u161b\u161e\u163f\u164f\u1659\u6220;\u69a4e\xbb\u1619sd\u0100;a\u1625\u1626\u6221\u0461\u1630\u1632\u1634\u1636\u1638\u163a\u163c\u163e;\u69a8;\u69a9;\u69aa;\u69ab;\u69ac;\u69ad;\u69ae;\u69aft\u0100;v\u1645\u1646\u621fb\u0100;d\u164c\u164d\u62be;\u699d\u0100pt\u1654\u1657h;\u6222\xbb\xb9arr;\u637c\u0100gp\u1663\u1667on;\u4105f;\uc000\ud835\udd52\u0380;Eaeiop\u12c1\u167b\u167d\u1682\u1684\u1687\u168a;\u6a70cir;\u6a6f;\u624ad;\u624bs;\u4027rox\u0100;e\u12c1\u1692\xf1\u1683ing\u803b\xe5\u40e5\u0180cty\u16a1\u16a6\u16a8r;\uc000\ud835\udcb6;\u402amp\u0100;e\u12c1\u16af\xf1\u0288ilde\u803b\xe3\u40e3ml\u803b\xe4\u40e4\u0100ci\u16c2\u16c8onin\xf4\u0272nt;\u6a11\u0800Nabcdefiklnoprsu\u16ed\u16f1\u1730\u173c\u1743\u1748\u1778\u177d\u17e0\u17e6\u1839\u1850\u170d\u193d\u1948\u1970ot;\u6aed\u0100cr\u16f6\u171ek\u0200ceps\u1700\u1705\u170d\u1713ong;\u624cpsilon;\u43f6rime;\u6035im\u0100;e\u171a\u171b\u623dq;\u62cd\u0176\u1722\u1726ee;\u62bded\u0100;g\u172c\u172d\u6305e\xbb\u172drk\u0100;t\u135c\u1737brk;\u63b6\u0100oy\u1701\u1741;\u4431quo;\u601e\u0280cmprt\u1753\u175b\u1761\u1764\u1768aus\u0100;e\u010a\u0109ptyv;\u69b0s\xe9\u170cno\xf5\u0113\u0180ahw\u176f\u1771\u1773;\u43b2;\u6136een;\u626cr;\uc000\ud835\udd1fg\u0380costuvw\u178d\u179d\u17b3\u17c1\u17d5\u17db\u17de\u0180aiu\u1794\u1796\u179a\xf0\u0760rc;\u65efp\xbb\u1371\u0180dpt\u17a4\u17a8\u17adot;\u6a00lus;\u6a01imes;\u6a02\u0271\u17b9\0\0\u17becup;\u6a06ar;\u6605riangle\u0100du\u17cd\u17d2own;\u65bdp;\u65b3plus;\u6a04e\xe5\u1444\xe5\u14adarow;\u690d\u0180ako\u17ed\u1826\u1835\u0100cn\u17f2\u1823k\u0180lst\u17fa\u05ab\u1802ozenge;\u69ebriangle\u0200;dlr\u1812\u1813\u1818\u181d\u65b4own;\u65beeft;\u65c2ight;\u65b8k;\u6423\u01b1\u182b\0\u1833\u01b2\u182f\0\u1831;\u6592;\u65914;\u6593ck;\u6588\u0100eo\u183e\u184d\u0100;q\u1843\u1846\uc000=\u20e5uiv;\uc000\u2261\u20e5t;\u6310\u0200ptwx\u1859\u185e\u1867\u186cf;\uc000\ud835\udd53\u0100;t\u13cb\u1863om\xbb\u13cctie;\u62c8\u0600DHUVbdhmptuv\u1885\u1896\u18aa\u18bb\u18d7\u18db\u18ec\u18ff\u1905\u190a\u1910\u1921\u0200LRlr\u188e\u1890\u1892\u1894;\u6557;\u6554;\u6556;\u6553\u0280;DUdu\u18a1\u18a2\u18a4\u18a6\u18a8\u6550;\u6566;\u6569;\u6564;\u6567\u0200LRlr\u18b3\u18b5\u18b7\u18b9;\u655d;\u655a;\u655c;\u6559\u0380;HLRhlr\u18ca\u18cb\u18cd\u18cf\u18d1\u18d3\u18d5\u6551;\u656c;\u6563;\u6560;\u656b;\u6562;\u655fox;\u69c9\u0200LRlr\u18e4\u18e6\u18e8\u18ea;\u6555;\u6552;\u6510;\u650c\u0280;DUdu\u06bd\u18f7\u18f9\u18fb\u18fd;\u6565;\u6568;\u652c;\u6534inus;\u629flus;\u629eimes;\u62a0\u0200LRlr\u1919\u191b\u191d\u191f;\u655b;\u6558;\u6518;\u6514\u0380;HLRhlr\u1930\u1931\u1933\u1935\u1937\u1939\u193b\u6502;\u656a;\u6561;\u655e;\u653c;\u6524;\u651c\u0100ev\u0123\u1942bar\u803b\xa6\u40a6\u0200ceio\u1951\u1956\u195a\u1960r;\uc000\ud835\udcb7mi;\u604fm\u0100;e\u171a\u171cl\u0180;bh\u1968\u1969\u196b\u405c;\u69c5sub;\u67c8\u016c\u1974\u197el\u0100;e\u1979\u197a\u6022t\xbb\u197ap\u0180;Ee\u012f\u1985\u1987;\u6aae\u0100;q\u06dc\u06db\u0ce1\u19a7\0\u19e8\u1a11\u1a15\u1a32\0\u1a37\u1a50\0\0\u1ab4\0\0\u1ac1\0\0\u1b21\u1b2e\u1b4d\u1b52\0\u1bfd\0\u1c0c\u0180cpr\u19ad\u19b2\u19ddute;\u4107\u0300;abcds\u19bf\u19c0\u19c4\u19ca\u19d5\u19d9\u6229nd;\u6a44rcup;\u6a49\u0100au\u19cf\u19d2p;\u6a4bp;\u6a47ot;\u6a40;\uc000\u2229\ufe00\u0100eo\u19e2\u19e5t;\u6041\xee\u0693\u0200aeiu\u19f0\u19fb\u1a01\u1a05\u01f0\u19f5\0\u19f8s;\u6a4don;\u410ddil\u803b\xe7\u40e7rc;\u4109ps\u0100;s\u1a0c\u1a0d\u6a4cm;\u6a50ot;\u410b\u0180dmn\u1a1b\u1a20\u1a26il\u80bb\xb8\u01adptyv;\u69b2t\u8100\xa2;e\u1a2d\u1a2e\u40a2r\xe4\u01b2r;\uc000\ud835\udd20\u0180cei\u1a3d\u1a40\u1a4dy;\u4447ck\u0100;m\u1a47\u1a48\u6713ark\xbb\u1a48;\u43c7r\u0380;Ecefms\u1a5f\u1a60\u1a62\u1a6b\u1aa4\u1aaa\u1aae\u65cb;\u69c3\u0180;el\u1a69\u1a6a\u1a6d\u42c6q;\u6257e\u0261\u1a74\0\0\u1a88rrow\u0100lr\u1a7c\u1a81eft;\u61baight;\u61bb\u0280RSacd\u1a92\u1a94\u1a96\u1a9a\u1a9f\xbb\u0f47;\u64c8st;\u629birc;\u629aash;\u629dnint;\u6a10id;\u6aefcir;\u69c2ubs\u0100;u\u1abb\u1abc\u6663it\xbb\u1abc\u02ec\u1ac7\u1ad4\u1afa\0\u1b0aon\u0100;e\u1acd\u1ace\u403a\u0100;q\xc7\xc6\u026d\u1ad9\0\0\u1ae2a\u0100;t\u1ade\u1adf\u402c;\u4040\u0180;fl\u1ae8\u1ae9\u1aeb\u6201\xee\u1160e\u0100mx\u1af1\u1af6ent\xbb\u1ae9e\xf3\u024d\u01e7\u1afe\0\u1b07\u0100;d\u12bb\u1b02ot;\u6a6dn\xf4\u0246\u0180fry\u1b10\u1b14\u1b17;\uc000\ud835\udd54o\xe4\u0254\u8100\xa9;s\u0155\u1b1dr;\u6117\u0100ao\u1b25\u1b29rr;\u61b5ss;\u6717\u0100cu\u1b32\u1b37r;\uc000\ud835\udcb8\u0100bp\u1b3c\u1b44\u0100;e\u1b41\u1b42\u6acf;\u6ad1\u0100;e\u1b49\u1b4a\u6ad0;\u6ad2dot;\u62ef\u0380delprvw\u1b60\u1b6c\u1b77\u1b82\u1bac\u1bd4\u1bf9arr\u0100lr\u1b68\u1b6a;\u6938;\u6935\u0270\u1b72\0\0\u1b75r;\u62dec;\u62dfarr\u0100;p\u1b7f\u1b80\u61b6;\u693d\u0300;bcdos\u1b8f\u1b90\u1b96\u1ba1\u1ba5\u1ba8\u622arcap;\u6a48\u0100au\u1b9b\u1b9ep;\u6a46p;\u6a4aot;\u628dr;\u6a45;\uc000\u222a\ufe00\u0200alrv\u1bb5\u1bbf\u1bde\u1be3rr\u0100;m\u1bbc\u1bbd\u61b7;\u693cy\u0180evw\u1bc7\u1bd4\u1bd8q\u0270\u1bce\0\0\u1bd2re\xe3\u1b73u\xe3\u1b75ee;\u62ceedge;\u62cfen\u803b\xa4\u40a4earrow\u0100lr\u1bee\u1bf3eft\xbb\u1b80ight\xbb\u1bbde\xe4\u1bdd\u0100ci\u1c01\u1c07onin\xf4\u01f7nt;\u6231lcty;\u632d\u0980AHabcdefhijlorstuwz\u1c38\u1c3b\u1c3f\u1c5d\u1c69\u1c75\u1c8a\u1c9e\u1cac\u1cb7\u1cfb\u1cff\u1d0d\u1d7b\u1d91\u1dab\u1dbb\u1dc6\u1dcdr\xf2\u0381ar;\u6965\u0200glrs\u1c48\u1c4d\u1c52\u1c54ger;\u6020eth;\u6138\xf2\u1133h\u0100;v\u1c5a\u1c5b\u6010\xbb\u090a\u016b\u1c61\u1c67arow;\u690fa\xe3\u0315\u0100ay\u1c6e\u1c73ron;\u410f;\u4434\u0180;ao\u0332\u1c7c\u1c84\u0100gr\u02bf\u1c81r;\u61catseq;\u6a77\u0180glm\u1c91\u1c94\u1c98\u803b\xb0\u40b0ta;\u43b4ptyv;\u69b1\u0100ir\u1ca3\u1ca8sht;\u697f;\uc000\ud835\udd21ar\u0100lr\u1cb3\u1cb5\xbb\u08dc\xbb\u101e\u0280aegsv\u1cc2\u0378\u1cd6\u1cdc\u1ce0m\u0180;os\u0326\u1cca\u1cd4nd\u0100;s\u0326\u1cd1uit;\u6666amma;\u43ddin;\u62f2\u0180;io\u1ce7\u1ce8\u1cf8\u40f7de\u8100\xf7;o\u1ce7\u1cf0ntimes;\u62c7n\xf8\u1cf7cy;\u4452c\u026f\u1d06\0\0\u1d0arn;\u631eop;\u630d\u0280lptuw\u1d18\u1d1d\u1d22\u1d49\u1d55lar;\u4024f;\uc000\ud835\udd55\u0280;emps\u030b\u1d2d\u1d37\u1d3d\u1d42q\u0100;d\u0352\u1d33ot;\u6251inus;\u6238lus;\u6214quare;\u62a1blebarwedg\xe5\xfan\u0180adh\u112e\u1d5d\u1d67ownarrow\xf3\u1c83arpoon\u0100lr\u1d72\u1d76ef\xf4\u1cb4igh\xf4\u1cb6\u0162\u1d7f\u1d85karo\xf7\u0f42\u026f\u1d8a\0\0\u1d8ern;\u631fop;\u630c\u0180cot\u1d98\u1da3\u1da6\u0100ry\u1d9d\u1da1;\uc000\ud835\udcb9;\u4455l;\u69f6rok;\u4111\u0100dr\u1db0\u1db4ot;\u62f1i\u0100;f\u1dba\u1816\u65bf\u0100ah\u1dc0\u1dc3r\xf2\u0429a\xf2\u0fa6angle;\u69a6\u0100ci\u1dd2\u1dd5y;\u445fgrarr;\u67ff\u0900Dacdefglmnopqrstux\u1e01\u1e09\u1e19\u1e38\u0578\u1e3c\u1e49\u1e61\u1e7e\u1ea5\u1eaf\u1ebd\u1ee1\u1f2a\u1f37\u1f44\u1f4e\u1f5a\u0100Do\u1e06\u1d34o\xf4\u1c89\u0100cs\u1e0e\u1e14ute\u803b\xe9\u40e9ter;\u6a6e\u0200aioy\u1e22\u1e27\u1e31\u1e36ron;\u411br\u0100;c\u1e2d\u1e2e\u6256\u803b\xea\u40ealon;\u6255;\u444dot;\u4117\u0100Dr\u1e41\u1e45ot;\u6252;\uc000\ud835\udd22\u0180;rs\u1e50\u1e51\u1e57\u6a9aave\u803b\xe8\u40e8\u0100;d\u1e5c\u1e5d\u6a96ot;\u6a98\u0200;ils\u1e6a\u1e6b\u1e72\u1e74\u6a99nters;\u63e7;\u6113\u0100;d\u1e79\u1e7a\u6a95ot;\u6a97\u0180aps\u1e85\u1e89\u1e97cr;\u4113ty\u0180;sv\u1e92\u1e93\u1e95\u6205et\xbb\u1e93p\u01001;\u1e9d\u1ea4\u0133\u1ea1\u1ea3;\u6004;\u6005\u6003\u0100gs\u1eaa\u1eac;\u414bp;\u6002\u0100gp\u1eb4\u1eb8on;\u4119f;\uc000\ud835\udd56\u0180als\u1ec4\u1ece\u1ed2r\u0100;s\u1eca\u1ecb\u62d5l;\u69e3us;\u6a71i\u0180;lv\u1eda\u1edb\u1edf\u43b5on\xbb\u1edb;\u43f5\u0200csuv\u1eea\u1ef3\u1f0b\u1f23\u0100io\u1eef\u1e31rc\xbb\u1e2e\u0269\u1ef9\0\0\u1efb\xed\u0548ant\u0100gl\u1f02\u1f06tr\xbb\u1e5dess\xbb\u1e7a\u0180aei\u1f12\u1f16\u1f1als;\u403dst;\u625fv\u0100;D\u0235\u1f20D;\u6a78parsl;\u69e5\u0100Da\u1f2f\u1f33ot;\u6253rr;\u6971\u0180cdi\u1f3e\u1f41\u1ef8r;\u612fo\xf4\u0352\u0100ah\u1f49\u1f4b;\u43b7\u803b\xf0\u40f0\u0100mr\u1f53\u1f57l\u803b\xeb\u40ebo;\u60ac\u0180cip\u1f61\u1f64\u1f67l;\u4021s\xf4\u056e\u0100eo\u1f6c\u1f74ctatio\xee\u0559nential\xe5\u0579\u09e1\u1f92\0\u1f9e\0\u1fa1\u1fa7\0\0\u1fc6\u1fcc\0\u1fd3\0\u1fe6\u1fea\u2000\0\u2008\u205allingdotse\xf1\u1e44y;\u4444male;\u6640\u0180ilr\u1fad\u1fb3\u1fc1lig;\u8000\ufb03\u0269\u1fb9\0\0\u1fbdg;\u8000\ufb00ig;\u8000\ufb04;\uc000\ud835\udd23lig;\u8000\ufb01lig;\uc000fj\u0180alt\u1fd9\u1fdc\u1fe1t;\u666dig;\u8000\ufb02ns;\u65b1of;\u4192\u01f0\u1fee\0\u1ff3f;\uc000\ud835\udd57\u0100ak\u05bf\u1ff7\u0100;v\u1ffc\u1ffd\u62d4;\u6ad9artint;\u6a0d\u0100ao\u200c\u2055\u0100cs\u2011\u2052\u03b1\u201a\u2030\u2038\u2045\u2048\0\u2050\u03b2\u2022\u2025\u2027\u202a\u202c\0\u202e\u803b\xbd\u40bd;\u6153\u803b\xbc\u40bc;\u6155;\u6159;\u615b\u01b3\u2034\0\u2036;\u6154;\u6156\u02b4\u203e\u2041\0\0\u2043\u803b\xbe\u40be;\u6157;\u615c5;\u6158\u01b6\u204c\0\u204e;\u615a;\u615d8;\u615el;\u6044wn;\u6322cr;\uc000\ud835\udcbb\u0880Eabcdefgijlnorstv\u2082\u2089\u209f\u20a5\u20b0\u20b4\u20f0\u20f5\u20fa\u20ff\u2103\u2112\u2138\u0317\u213e\u2152\u219e\u0100;l\u064d\u2087;\u6a8c\u0180cmp\u2090\u2095\u209dute;\u41f5ma\u0100;d\u209c\u1cda\u43b3;\u6a86reve;\u411f\u0100iy\u20aa\u20aerc;\u411d;\u4433ot;\u4121\u0200;lqs\u063e\u0642\u20bd\u20c9\u0180;qs\u063e\u064c\u20c4lan\xf4\u0665\u0200;cdl\u0665\u20d2\u20d5\u20e5c;\u6aa9ot\u0100;o\u20dc\u20dd\u6a80\u0100;l\u20e2\u20e3\u6a82;\u6a84\u0100;e\u20ea\u20ed\uc000\u22db\ufe00s;\u6a94r;\uc000\ud835\udd24\u0100;g\u0673\u061bmel;\u6137cy;\u4453\u0200;Eaj\u065a\u210c\u210e\u2110;\u6a92;\u6aa5;\u6aa4\u0200Eaes\u211b\u211d\u2129\u2134;\u6269p\u0100;p\u2123\u2124\u6a8arox\xbb\u2124\u0100;q\u212e\u212f\u6a88\u0100;q\u212e\u211bim;\u62e7pf;\uc000\ud835\udd58\u0100ci\u2143\u2146r;\u610am\u0180;el\u066b\u214e\u2150;\u6a8e;\u6a90\u8300>;cdlqr\u05ee\u2160\u216a\u216e\u2173\u2179\u0100ci\u2165\u2167;\u6aa7r;\u6a7aot;\u62d7Par;\u6995uest;\u6a7c\u0280adels\u2184\u216a\u2190\u0656\u219b\u01f0\u2189\0\u218epro\xf8\u209er;\u6978q\u0100lq\u063f\u2196les\xf3\u2088i\xed\u066b\u0100en\u21a3\u21adrtneqq;\uc000\u2269\ufe00\xc5\u21aa\u0500Aabcefkosy\u21c4\u21c7\u21f1\u21f5\u21fa\u2218\u221d\u222f\u2268\u227dr\xf2\u03a0\u0200ilmr\u21d0\u21d4\u21d7\u21dbrs\xf0\u1484f\xbb\u2024il\xf4\u06a9\u0100dr\u21e0\u21e4cy;\u444a\u0180;cw\u08f4\u21eb\u21efir;\u6948;\u61adar;\u610firc;\u4125\u0180alr\u2201\u220e\u2213rts\u0100;u\u2209\u220a\u6665it\xbb\u220alip;\u6026con;\u62b9r;\uc000\ud835\udd25s\u0100ew\u2223\u2229arow;\u6925arow;\u6926\u0280amopr\u223a\u223e\u2243\u225e\u2263rr;\u61fftht;\u623bk\u0100lr\u2249\u2253eftarrow;\u61a9ightarrow;\u61aaf;\uc000\ud835\udd59bar;\u6015\u0180clt\u226f\u2274\u2278r;\uc000\ud835\udcbdas\xe8\u21f4rok;\u4127\u0100bp\u2282\u2287ull;\u6043hen\xbb\u1c5b\u0ae1\u22a3\0\u22aa\0\u22b8\u22c5\u22ce\0\u22d5\u22f3\0\0\u22f8\u2322\u2367\u2362\u237f\0\u2386\u23aa\u23b4cute\u803b\xed\u40ed\u0180;iy\u0771\u22b0\u22b5rc\u803b\xee\u40ee;\u4438\u0100cx\u22bc\u22bfy;\u4435cl\u803b\xa1\u40a1\u0100fr\u039f\u22c9;\uc000\ud835\udd26rave\u803b\xec\u40ec\u0200;ino\u073e\u22dd\u22e9\u22ee\u0100in\u22e2\u22e6nt;\u6a0ct;\u622dfin;\u69dcta;\u6129lig;\u4133\u0180aop\u22fe\u231a\u231d\u0180cgt\u2305\u2308\u2317r;\u412b\u0180elp\u071f\u230f\u2313in\xe5\u078ear\xf4\u0720h;\u4131f;\u62b7ed;\u41b5\u0280;cfot\u04f4\u232c\u2331\u233d\u2341are;\u6105in\u0100;t\u2338\u2339\u621eie;\u69dddo\xf4\u2319\u0280;celp\u0757\u234c\u2350\u235b\u2361al;\u62ba\u0100gr\u2355\u2359er\xf3\u1563\xe3\u234darhk;\u6a17rod;\u6a3c\u0200cgpt\u236f\u2372\u2376\u237by;\u4451on;\u412ff;\uc000\ud835\udd5aa;\u43b9uest\u803b\xbf\u40bf\u0100ci\u238a\u238fr;\uc000\ud835\udcben\u0280;Edsv\u04f4\u239b\u239d\u23a1\u04f3;\u62f9ot;\u62f5\u0100;v\u23a6\u23a7\u62f4;\u62f3\u0100;i\u0777\u23aelde;\u4129\u01eb\u23b8\0\u23bccy;\u4456l\u803b\xef\u40ef\u0300cfmosu\u23cc\u23d7\u23dc\u23e1\u23e7\u23f5\u0100iy\u23d1\u23d5rc;\u4135;\u4439r;\uc000\ud835\udd27ath;\u4237pf;\uc000\ud835\udd5b\u01e3\u23ec\0\u23f1r;\uc000\ud835\udcbfrcy;\u4458kcy;\u4454\u0400acfghjos\u240b\u2416\u2422\u2427\u242d\u2431\u2435\u243bppa\u0100;v\u2413\u2414\u43ba;\u43f0\u0100ey\u241b\u2420dil;\u4137;\u443ar;\uc000\ud835\udd28reen;\u4138cy;\u4445cy;\u445cpf;\uc000\ud835\udd5ccr;\uc000\ud835\udcc0\u0b80ABEHabcdefghjlmnoprstuv\u2470\u2481\u2486\u248d\u2491\u250e\u253d\u255a\u2580\u264e\u265e\u2665\u2679\u267d\u269a\u26b2\u26d8\u275d\u2768\u278b\u27c0\u2801\u2812\u0180art\u2477\u247a\u247cr\xf2\u09c6\xf2\u0395ail;\u691barr;\u690e\u0100;g\u0994\u248b;\u6a8bar;\u6962\u0963\u24a5\0\u24aa\0\u24b1\0\0\0\0\0\u24b5\u24ba\0\u24c6\u24c8\u24cd\0\u24f9ute;\u413amptyv;\u69b4ra\xee\u084cbda;\u43bbg\u0180;dl\u088e\u24c1\u24c3;\u6991\xe5\u088e;\u6a85uo\u803b\xab\u40abr\u0400;bfhlpst\u0899\u24de\u24e6\u24e9\u24eb\u24ee\u24f1\u24f5\u0100;f\u089d\u24e3s;\u691fs;\u691d\xeb\u2252p;\u61abl;\u6939im;\u6973l;\u61a2\u0180;ae\u24ff\u2500\u2504\u6aabil;\u6919\u0100;s\u2509\u250a\u6aad;\uc000\u2aad\ufe00\u0180abr\u2515\u2519\u251drr;\u690crk;\u6772\u0100ak\u2522\u252cc\u0100ek\u2528\u252a;\u407b;\u405b\u0100es\u2531\u2533;\u698bl\u0100du\u2539\u253b;\u698f;\u698d\u0200aeuy\u2546\u254b\u2556\u2558ron;\u413e\u0100di\u2550\u2554il;\u413c\xec\u08b0\xe2\u2529;\u443b\u0200cqrs\u2563\u2566\u256d\u257da;\u6936uo\u0100;r\u0e19\u1746\u0100du\u2572\u2577har;\u6967shar;\u694bh;\u61b2\u0280;fgqs\u258b\u258c\u0989\u25f3\u25ff\u6264t\u0280ahlrt\u2598\u25a4\u25b7\u25c2\u25e8rrow\u0100;t\u0899\u25a1a\xe9\u24f6arpoon\u0100du\u25af\u25b4own\xbb\u045ap\xbb\u0966eftarrows;\u61c7ight\u0180ahs\u25cd\u25d6\u25derrow\u0100;s\u08f4\u08a7arpoon\xf3\u0f98quigarro\xf7\u21f0hreetimes;\u62cb\u0180;qs\u258b\u0993\u25falan\xf4\u09ac\u0280;cdgs\u09ac\u260a\u260d\u261d\u2628c;\u6aa8ot\u0100;o\u2614\u2615\u6a7f\u0100;r\u261a\u261b\u6a81;\u6a83\u0100;e\u2622\u2625\uc000\u22da\ufe00s;\u6a93\u0280adegs\u2633\u2639\u263d\u2649\u264bppro\xf8\u24c6ot;\u62d6q\u0100gq\u2643\u2645\xf4\u0989gt\xf2\u248c\xf4\u099bi\xed\u09b2\u0180ilr\u2655\u08e1\u265asht;\u697c;\uc000\ud835\udd29\u0100;E\u099c\u2663;\u6a91\u0161\u2669\u2676r\u0100du\u25b2\u266e\u0100;l\u0965\u2673;\u696alk;\u6584cy;\u4459\u0280;acht\u0a48\u2688\u268b\u2691\u2696r\xf2\u25c1orne\xf2\u1d08ard;\u696bri;\u65fa\u0100io\u269f\u26a4dot;\u4140ust\u0100;a\u26ac\u26ad\u63b0che\xbb\u26ad\u0200Eaes\u26bb\u26bd\u26c9\u26d4;\u6268p\u0100;p\u26c3\u26c4\u6a89rox\xbb\u26c4\u0100;q\u26ce\u26cf\u6a87\u0100;q\u26ce\u26bbim;\u62e6\u0400abnoptwz\u26e9\u26f4\u26f7\u271a\u272f\u2741\u2747\u2750\u0100nr\u26ee\u26f1g;\u67ecr;\u61fdr\xeb\u08c1g\u0180lmr\u26ff\u270d\u2714eft\u0100ar\u09e6\u2707ight\xe1\u09f2apsto;\u67fcight\xe1\u09fdparrow\u0100lr\u2725\u2729ef\xf4\u24edight;\u61ac\u0180afl\u2736\u2739\u273dr;\u6985;\uc000\ud835\udd5dus;\u6a2dimes;\u6a34\u0161\u274b\u274fst;\u6217\xe1\u134e\u0180;ef\u2757\u2758\u1800\u65cange\xbb\u2758ar\u0100;l\u2764\u2765\u4028t;\u6993\u0280achmt\u2773\u2776\u277c\u2785\u2787r\xf2\u08a8orne\xf2\u1d8car\u0100;d\u0f98\u2783;\u696d;\u600eri;\u62bf\u0300achiqt\u2798\u279d\u0a40\u27a2\u27ae\u27bbquo;\u6039r;\uc000\ud835\udcc1m\u0180;eg\u09b2\u27aa\u27ac;\u6a8d;\u6a8f\u0100bu\u252a\u27b3o\u0100;r\u0e1f\u27b9;\u601arok;\u4142\u8400<;cdhilqr\u082b\u27d2\u2639\u27dc\u27e0\u27e5\u27ea\u27f0\u0100ci\u27d7\u27d9;\u6aa6r;\u6a79re\xe5\u25f2mes;\u62c9arr;\u6976uest;\u6a7b\u0100Pi\u27f5\u27f9ar;\u6996\u0180;ef\u2800\u092d\u181b\u65c3r\u0100du\u2807\u280dshar;\u694ahar;\u6966\u0100en\u2817\u2821rtneqq;\uc000\u2268\ufe00\xc5\u281e\u0700Dacdefhilnopsu\u2840\u2845\u2882\u288e\u2893\u28a0\u28a5\u28a8\u28da\u28e2\u28e4\u0a83\u28f3\u2902Dot;\u623a\u0200clpr\u284e\u2852\u2863\u287dr\u803b\xaf\u40af\u0100et\u2857\u2859;\u6642\u0100;e\u285e\u285f\u6720se\xbb\u285f\u0100;s\u103b\u2868to\u0200;dlu\u103b\u2873\u2877\u287bow\xee\u048cef\xf4\u090f\xf0\u13d1ker;\u65ae\u0100oy\u2887\u288cmma;\u6a29;\u443cash;\u6014asuredangle\xbb\u1626r;\uc000\ud835\udd2ao;\u6127\u0180cdn\u28af\u28b4\u28c9ro\u803b\xb5\u40b5\u0200;acd\u1464\u28bd\u28c0\u28c4s\xf4\u16a7ir;\u6af0ot\u80bb\xb7\u01b5us\u0180;bd\u28d2\u1903\u28d3\u6212\u0100;u\u1d3c\u28d8;\u6a2a\u0163\u28de\u28e1p;\u6adb\xf2\u2212\xf0\u0a81\u0100dp\u28e9\u28eeels;\u62a7f;\uc000\ud835\udd5e\u0100ct\u28f8\u28fdr;\uc000\ud835\udcc2pos\xbb\u159d\u0180;lm\u2909\u290a\u290d\u43bctimap;\u62b8\u0c00GLRVabcdefghijlmoprstuvw\u2942\u2953\u297e\u2989\u2998\u29da\u29e9\u2a15\u2a1a\u2a58\u2a5d\u2a83\u2a95\u2aa4\u2aa8\u2b04\u2b07\u2b44\u2b7f\u2bae\u2c34\u2c67\u2c7c\u2ce9\u0100gt\u2947\u294b;\uc000\u22d9\u0338\u0100;v\u2950\u0bcf\uc000\u226b\u20d2\u0180elt\u295a\u2972\u2976ft\u0100ar\u2961\u2967rrow;\u61cdightarrow;\u61ce;\uc000\u22d8\u0338\u0100;v\u297b\u0c47\uc000\u226a\u20d2ightarrow;\u61cf\u0100Dd\u298e\u2993ash;\u62afash;\u62ae\u0280bcnpt\u29a3\u29a7\u29ac\u29b1\u29ccla\xbb\u02deute;\u4144g;\uc000\u2220\u20d2\u0280;Eiop\u0d84\u29bc\u29c0\u29c5\u29c8;\uc000\u2a70\u0338d;\uc000\u224b\u0338s;\u4149ro\xf8\u0d84ur\u0100;a\u29d3\u29d4\u666el\u0100;s\u29d3\u0b38\u01f3\u29df\0\u29e3p\u80bb\xa0\u0b37mp\u0100;e\u0bf9\u0c00\u0280aeouy\u29f4\u29fe\u2a03\u2a10\u2a13\u01f0\u29f9\0\u29fb;\u6a43on;\u4148dil;\u4146ng\u0100;d\u0d7e\u2a0aot;\uc000\u2a6d\u0338p;\u6a42;\u443dash;\u6013\u0380;Aadqsx\u0b92\u2a29\u2a2d\u2a3b\u2a41\u2a45\u2a50rr;\u61d7r\u0100hr\u2a33\u2a36k;\u6924\u0100;o\u13f2\u13f0ot;\uc000\u2250\u0338ui\xf6\u0b63\u0100ei\u2a4a\u2a4ear;\u6928\xed\u0b98ist\u0100;s\u0ba0\u0b9fr;\uc000\ud835\udd2b\u0200Eest\u0bc5\u2a66\u2a79\u2a7c\u0180;qs\u0bbc\u2a6d\u0be1\u0180;qs\u0bbc\u0bc5\u2a74lan\xf4\u0be2i\xed\u0bea\u0100;r\u0bb6\u2a81\xbb\u0bb7\u0180Aap\u2a8a\u2a8d\u2a91r\xf2\u2971rr;\u61aear;\u6af2\u0180;sv\u0f8d\u2a9c\u0f8c\u0100;d\u2aa1\u2aa2\u62fc;\u62facy;\u445a\u0380AEadest\u2ab7\u2aba\u2abe\u2ac2\u2ac5\u2af6\u2af9r\xf2\u2966;\uc000\u2266\u0338rr;\u619ar;\u6025\u0200;fqs\u0c3b\u2ace\u2ae3\u2aeft\u0100ar\u2ad4\u2ad9rro\xf7\u2ac1ightarro\xf7\u2a90\u0180;qs\u0c3b\u2aba\u2aealan\xf4\u0c55\u0100;s\u0c55\u2af4\xbb\u0c36i\xed\u0c5d\u0100;r\u0c35\u2afei\u0100;e\u0c1a\u0c25i\xe4\u0d90\u0100pt\u2b0c\u2b11f;\uc000\ud835\udd5f\u8180\xac;in\u2b19\u2b1a\u2b36\u40acn\u0200;Edv\u0b89\u2b24\u2b28\u2b2e;\uc000\u22f9\u0338ot;\uc000\u22f5\u0338\u01e1\u0b89\u2b33\u2b35;\u62f7;\u62f6i\u0100;v\u0cb8\u2b3c\u01e1\u0cb8\u2b41\u2b43;\u62fe;\u62fd\u0180aor\u2b4b\u2b63\u2b69r\u0200;ast\u0b7b\u2b55\u2b5a\u2b5flle\xec\u0b7bl;\uc000\u2afd\u20e5;\uc000\u2202\u0338lint;\u6a14\u0180;ce\u0c92\u2b70\u2b73u\xe5\u0ca5\u0100;c\u0c98\u2b78\u0100;e\u0c92\u2b7d\xf1\u0c98\u0200Aait\u2b88\u2b8b\u2b9d\u2ba7r\xf2\u2988rr\u0180;cw\u2b94\u2b95\u2b99\u619b;\uc000\u2933\u0338;\uc000\u219d\u0338ghtarrow\xbb\u2b95ri\u0100;e\u0ccb\u0cd6\u0380chimpqu\u2bbd\u2bcd\u2bd9\u2b04\u0b78\u2be4\u2bef\u0200;cer\u0d32\u2bc6\u0d37\u2bc9u\xe5\u0d45;\uc000\ud835\udcc3ort\u026d\u2b05\0\0\u2bd6ar\xe1\u2b56m\u0100;e\u0d6e\u2bdf\u0100;q\u0d74\u0d73su\u0100bp\u2beb\u2bed\xe5\u0cf8\xe5\u0d0b\u0180bcp\u2bf6\u2c11\u2c19\u0200;Ees\u2bff\u2c00\u0d22\u2c04\u6284;\uc000\u2ac5\u0338et\u0100;e\u0d1b\u2c0bq\u0100;q\u0d23\u2c00c\u0100;e\u0d32\u2c17\xf1\u0d38\u0200;Ees\u2c22\u2c23\u0d5f\u2c27\u6285;\uc000\u2ac6\u0338et\u0100;e\u0d58\u2c2eq\u0100;q\u0d60\u2c23\u0200gilr\u2c3d\u2c3f\u2c45\u2c47\xec\u0bd7lde\u803b\xf1\u40f1\xe7\u0c43iangle\u0100lr\u2c52\u2c5ceft\u0100;e\u0c1a\u2c5a\xf1\u0c26ight\u0100;e\u0ccb\u2c65\xf1\u0cd7\u0100;m\u2c6c\u2c6d\u43bd\u0180;es\u2c74\u2c75\u2c79\u4023ro;\u6116p;\u6007\u0480DHadgilrs\u2c8f\u2c94\u2c99\u2c9e\u2ca3\u2cb0\u2cb6\u2cd3\u2ce3ash;\u62adarr;\u6904p;\uc000\u224d\u20d2ash;\u62ac\u0100et\u2ca8\u2cac;\uc000\u2265\u20d2;\uc000>\u20d2nfin;\u69de\u0180Aet\u2cbd\u2cc1\u2cc5rr;\u6902;\uc000\u2264\u20d2\u0100;r\u2cca\u2ccd\uc000<\u20d2ie;\uc000\u22b4\u20d2\u0100At\u2cd8\u2cdcrr;\u6903rie;\uc000\u22b5\u20d2im;\uc000\u223c\u20d2\u0180Aan\u2cf0\u2cf4\u2d02rr;\u61d6r\u0100hr\u2cfa\u2cfdk;\u6923\u0100;o\u13e7\u13e5ear;\u6927\u1253\u1a95\0\0\0\0\0\0\0\0\0\0\0\0\0\u2d2d\0\u2d38\u2d48\u2d60\u2d65\u2d72\u2d84\u1b07\0\0\u2d8d\u2dab\0\u2dc8\u2dce\0\u2ddc\u2e19\u2e2b\u2e3e\u2e43\u0100cs\u2d31\u1a97ute\u803b\xf3\u40f3\u0100iy\u2d3c\u2d45r\u0100;c\u1a9e\u2d42\u803b\xf4\u40f4;\u443e\u0280abios\u1aa0\u2d52\u2d57\u01c8\u2d5alac;\u4151v;\u6a38old;\u69bclig;\u4153\u0100cr\u2d69\u2d6dir;\u69bf;\uc000\ud835\udd2c\u036f\u2d79\0\0\u2d7c\0\u2d82n;\u42dbave\u803b\xf2\u40f2;\u69c1\u0100bm\u2d88\u0df4ar;\u69b5\u0200acit\u2d95\u2d98\u2da5\u2da8r\xf2\u1a80\u0100ir\u2d9d\u2da0r;\u69beoss;\u69bbn\xe5\u0e52;\u69c0\u0180aei\u2db1\u2db5\u2db9cr;\u414dga;\u43c9\u0180cdn\u2dc0\u2dc5\u01cdron;\u43bf;\u69b6pf;\uc000\ud835\udd60\u0180ael\u2dd4\u2dd7\u01d2r;\u69b7rp;\u69b9\u0380;adiosv\u2dea\u2deb\u2dee\u2e08\u2e0d\u2e10\u2e16\u6228r\xf2\u1a86\u0200;efm\u2df7\u2df8\u2e02\u2e05\u6a5dr\u0100;o\u2dfe\u2dff\u6134f\xbb\u2dff\u803b\xaa\u40aa\u803b\xba\u40bagof;\u62b6r;\u6a56lope;\u6a57;\u6a5b\u0180clo\u2e1f\u2e21\u2e27\xf2\u2e01ash\u803b\xf8\u40f8l;\u6298i\u016c\u2e2f\u2e34de\u803b\xf5\u40f5es\u0100;a\u01db\u2e3as;\u6a36ml\u803b\xf6\u40f6bar;\u633d\u0ae1\u2e5e\0\u2e7d\0\u2e80\u2e9d\0\u2ea2\u2eb9\0\0\u2ecb\u0e9c\0\u2f13\0\0\u2f2b\u2fbc\0\u2fc8r\u0200;ast\u0403\u2e67\u2e72\u0e85\u8100\xb6;l\u2e6d\u2e6e\u40b6le\xec\u0403\u0269\u2e78\0\0\u2e7bm;\u6af3;\u6afdy;\u443fr\u0280cimpt\u2e8b\u2e8f\u2e93\u1865\u2e97nt;\u4025od;\u402eil;\u6030enk;\u6031r;\uc000\ud835\udd2d\u0180imo\u2ea8\u2eb0\u2eb4\u0100;v\u2ead\u2eae\u43c6;\u43d5ma\xf4\u0a76ne;\u660e\u0180;tv\u2ebf\u2ec0\u2ec8\u43c0chfork\xbb\u1ffd;\u43d6\u0100au\u2ecf\u2edfn\u0100ck\u2ed5\u2eddk\u0100;h\u21f4\u2edb;\u610e\xf6\u21f4s\u0480;abcdemst\u2ef3\u2ef4\u1908\u2ef9\u2efd\u2f04\u2f06\u2f0a\u2f0e\u402bcir;\u6a23ir;\u6a22\u0100ou\u1d40\u2f02;\u6a25;\u6a72n\u80bb\xb1\u0e9dim;\u6a26wo;\u6a27\u0180ipu\u2f19\u2f20\u2f25ntint;\u6a15f;\uc000\ud835\udd61nd\u803b\xa3\u40a3\u0500;Eaceinosu\u0ec8\u2f3f\u2f41\u2f44\u2f47\u2f81\u2f89\u2f92\u2f7e\u2fb6;\u6ab3p;\u6ab7u\xe5\u0ed9\u0100;c\u0ece\u2f4c\u0300;acens\u0ec8\u2f59\u2f5f\u2f66\u2f68\u2f7eppro\xf8\u2f43urlye\xf1\u0ed9\xf1\u0ece\u0180aes\u2f6f\u2f76\u2f7approx;\u6ab9qq;\u6ab5im;\u62e8i\xed\u0edfme\u0100;s\u2f88\u0eae\u6032\u0180Eas\u2f78\u2f90\u2f7a\xf0\u2f75\u0180dfp\u0eec\u2f99\u2faf\u0180als\u2fa0\u2fa5\u2faalar;\u632eine;\u6312urf;\u6313\u0100;t\u0efb\u2fb4\xef\u0efbrel;\u62b0\u0100ci\u2fc0\u2fc5r;\uc000\ud835\udcc5;\u43c8ncsp;\u6008\u0300fiopsu\u2fda\u22e2\u2fdf\u2fe5\u2feb\u2ff1r;\uc000\ud835\udd2epf;\uc000\ud835\udd62rime;\u6057cr;\uc000\ud835\udcc6\u0180aeo\u2ff8\u3009\u3013t\u0100ei\u2ffe\u3005rnion\xf3\u06b0nt;\u6a16st\u0100;e\u3010\u3011\u403f\xf1\u1f19\xf4\u0f14\u0a80ABHabcdefhilmnoprstux\u3040\u3051\u3055\u3059\u30e0\u310e\u312b\u3147\u3162\u3172\u318e\u3206\u3215\u3224\u3229\u3258\u326e\u3272\u3290\u32b0\u32b7\u0180art\u3047\u304a\u304cr\xf2\u10b3\xf2\u03ddail;\u691car\xf2\u1c65ar;\u6964\u0380cdenqrt\u3068\u3075\u3078\u307f\u308f\u3094\u30cc\u0100eu\u306d\u3071;\uc000\u223d\u0331te;\u4155i\xe3\u116emptyv;\u69b3g\u0200;del\u0fd1\u3089\u308b\u308d;\u6992;\u69a5\xe5\u0fd1uo\u803b\xbb\u40bbr\u0580;abcfhlpstw\u0fdc\u30ac\u30af\u30b7\u30b9\u30bc\u30be\u30c0\u30c3\u30c7\u30cap;\u6975\u0100;f\u0fe0\u30b4s;\u6920;\u6933s;\u691e\xeb\u225d\xf0\u272el;\u6945im;\u6974l;\u61a3;\u619d\u0100ai\u30d1\u30d5il;\u691ao\u0100;n\u30db\u30dc\u6236al\xf3\u0f1e\u0180abr\u30e7\u30ea\u30eer\xf2\u17e5rk;\u6773\u0100ak\u30f3\u30fdc\u0100ek\u30f9\u30fb;\u407d;\u405d\u0100es\u3102\u3104;\u698cl\u0100du\u310a\u310c;\u698e;\u6990\u0200aeuy\u3117\u311c\u3127\u3129ron;\u4159\u0100di\u3121\u3125il;\u4157\xec\u0ff2\xe2\u30fa;\u4440\u0200clqs\u3134\u3137\u313d\u3144a;\u6937dhar;\u6969uo\u0100;r\u020e\u020dh;\u61b3\u0180acg\u314e\u315f\u0f44l\u0200;ips\u0f78\u3158\u315b\u109cn\xe5\u10bbar\xf4\u0fa9t;\u65ad\u0180ilr\u3169\u1023\u316esht;\u697d;\uc000\ud835\udd2f\u0100ao\u3177\u3186r\u0100du\u317d\u317f\xbb\u047b\u0100;l\u1091\u3184;\u696c\u0100;v\u318b\u318c\u43c1;\u43f1\u0180gns\u3195\u31f9\u31fcht\u0300ahlrst\u31a4\u31b0\u31c2\u31d8\u31e4\u31eerrow\u0100;t\u0fdc\u31ada\xe9\u30c8arpoon\u0100du\u31bb\u31bfow\xee\u317ep\xbb\u1092eft\u0100ah\u31ca\u31d0rrow\xf3\u0feaarpoon\xf3\u0551ightarrows;\u61c9quigarro\xf7\u30cbhreetimes;\u62ccg;\u42daingdotse\xf1\u1f32\u0180ahm\u320d\u3210\u3213r\xf2\u0feaa\xf2\u0551;\u600foust\u0100;a\u321e\u321f\u63b1che\xbb\u321fmid;\u6aee\u0200abpt\u3232\u323d\u3240\u3252\u0100nr\u3237\u323ag;\u67edr;\u61fer\xeb\u1003\u0180afl\u3247\u324a\u324er;\u6986;\uc000\ud835\udd63us;\u6a2eimes;\u6a35\u0100ap\u325d\u3267r\u0100;g\u3263\u3264\u4029t;\u6994olint;\u6a12ar\xf2\u31e3\u0200achq\u327b\u3280\u10bc\u3285quo;\u603ar;\uc000\ud835\udcc7\u0100bu\u30fb\u328ao\u0100;r\u0214\u0213\u0180hir\u3297\u329b\u32a0re\xe5\u31f8mes;\u62cai\u0200;efl\u32aa\u1059\u1821\u32ab\u65b9tri;\u69celuhar;\u6968;\u611e\u0d61\u32d5\u32db\u32df\u332c\u3338\u3371\0\u337a\u33a4\0\0\u33ec\u33f0\0\u3428\u3448\u345a\u34ad\u34b1\u34ca\u34f1\0\u3616\0\0\u3633cute;\u415bqu\xef\u27ba\u0500;Eaceinpsy\u11ed\u32f3\u32f5\u32ff\u3302\u330b\u330f\u331f\u3326\u3329;\u6ab4\u01f0\u32fa\0\u32fc;\u6ab8on;\u4161u\xe5\u11fe\u0100;d\u11f3\u3307il;\u415frc;\u415d\u0180Eas\u3316\u3318\u331b;\u6ab6p;\u6abaim;\u62e9olint;\u6a13i\xed\u1204;\u4441ot\u0180;be\u3334\u1d47\u3335\u62c5;\u6a66\u0380Aacmstx\u3346\u334a\u3357\u335b\u335e\u3363\u336drr;\u61d8r\u0100hr\u3350\u3352\xeb\u2228\u0100;o\u0a36\u0a34t\u803b\xa7\u40a7i;\u403bwar;\u6929m\u0100in\u3369\xf0nu\xf3\xf1t;\u6736r\u0100;o\u3376\u2055\uc000\ud835\udd30\u0200acoy\u3382\u3386\u3391\u33a0rp;\u666f\u0100hy\u338b\u338fcy;\u4449;\u4448rt\u026d\u3399\0\0\u339ci\xe4\u1464ara\xec\u2e6f\u803b\xad\u40ad\u0100gm\u33a8\u33b4ma\u0180;fv\u33b1\u33b2\u33b2\u43c3;\u43c2\u0400;deglnpr\u12ab\u33c5\u33c9\u33ce\u33d6\u33de\u33e1\u33e6ot;\u6a6a\u0100;q\u12b1\u12b0\u0100;E\u33d3\u33d4\u6a9e;\u6aa0\u0100;E\u33db\u33dc\u6a9d;\u6a9fe;\u6246lus;\u6a24arr;\u6972ar\xf2\u113d\u0200aeit\u33f8\u3408\u340f\u3417\u0100ls\u33fd\u3404lsetm\xe9\u336ahp;\u6a33parsl;\u69e4\u0100dl\u1463\u3414e;\u6323\u0100;e\u341c\u341d\u6aaa\u0100;s\u3422\u3423\u6aac;\uc000\u2aac\ufe00\u0180flp\u342e\u3433\u3442tcy;\u444c\u0100;b\u3438\u3439\u402f\u0100;a\u343e\u343f\u69c4r;\u633ff;\uc000\ud835\udd64a\u0100dr\u344d\u0402es\u0100;u\u3454\u3455\u6660it\xbb\u3455\u0180csu\u3460\u3479\u349f\u0100au\u3465\u346fp\u0100;s\u1188\u346b;\uc000\u2293\ufe00p\u0100;s\u11b4\u3475;\uc000\u2294\ufe00u\u0100bp\u347f\u348f\u0180;es\u1197\u119c\u3486et\u0100;e\u1197\u348d\xf1\u119d\u0180;es\u11a8\u11ad\u3496et\u0100;e\u11a8\u349d\xf1\u11ae\u0180;af\u117b\u34a6\u05b0r\u0165\u34ab\u05b1\xbb\u117car\xf2\u1148\u0200cemt\u34b9\u34be\u34c2\u34c5r;\uc000\ud835\udcc8tm\xee\xf1i\xec\u3415ar\xe6\u11be\u0100ar\u34ce\u34d5r\u0100;f\u34d4\u17bf\u6606\u0100an\u34da\u34edight\u0100ep\u34e3\u34eapsilo\xee\u1ee0h\xe9\u2eafs\xbb\u2852\u0280bcmnp\u34fb\u355e\u1209\u358b\u358e\u0480;Edemnprs\u350e\u350f\u3511\u3515\u351e\u3523\u352c\u3531\u3536\u6282;\u6ac5ot;\u6abd\u0100;d\u11da\u351aot;\u6ac3ult;\u6ac1\u0100Ee\u3528\u352a;\u6acb;\u628alus;\u6abfarr;\u6979\u0180eiu\u353d\u3552\u3555t\u0180;en\u350e\u3545\u354bq\u0100;q\u11da\u350feq\u0100;q\u352b\u3528m;\u6ac7\u0100bp\u355a\u355c;\u6ad5;\u6ad3c\u0300;acens\u11ed\u356c\u3572\u3579\u357b\u3326ppro\xf8\u32faurlye\xf1\u11fe\xf1\u11f3\u0180aes\u3582\u3588\u331bppro\xf8\u331aq\xf1\u3317g;\u666a\u0680123;Edehlmnps\u35a9\u35ac\u35af\u121c\u35b2\u35b4\u35c0\u35c9\u35d5\u35da\u35df\u35e8\u35ed\u803b\xb9\u40b9\u803b\xb2\u40b2\u803b\xb3\u40b3;\u6ac6\u0100os\u35b9\u35bct;\u6abeub;\u6ad8\u0100;d\u1222\u35c5ot;\u6ac4s\u0100ou\u35cf\u35d2l;\u67c9b;\u6ad7arr;\u697bult;\u6ac2\u0100Ee\u35e4\u35e6;\u6acc;\u628blus;\u6ac0\u0180eiu\u35f4\u3609\u360ct\u0180;en\u121c\u35fc\u3602q\u0100;q\u1222\u35b2eq\u0100;q\u35e7\u35e4m;\u6ac8\u0100bp\u3611\u3613;\u6ad4;\u6ad6\u0180Aan\u361c\u3620\u362drr;\u61d9r\u0100hr\u3626\u3628\xeb\u222e\u0100;o\u0a2b\u0a29war;\u692alig\u803b\xdf\u40df\u0be1\u3651\u365d\u3660\u12ce\u3673\u3679\0\u367e\u36c2\0\0\0\0\0\u36db\u3703\0\u3709\u376c\0\0\0\u3787\u0272\u3656\0\0\u365bget;\u6316;\u43c4r\xeb\u0e5f\u0180aey\u3666\u366b\u3670ron;\u4165dil;\u4163;\u4442lrec;\u6315r;\uc000\ud835\udd31\u0200eiko\u3686\u369d\u36b5\u36bc\u01f2\u368b\0\u3691e\u01004f\u1284\u1281a\u0180;sv\u3698\u3699\u369b\u43b8ym;\u43d1\u0100cn\u36a2\u36b2k\u0100as\u36a8\u36aeppro\xf8\u12c1im\xbb\u12acs\xf0\u129e\u0100as\u36ba\u36ae\xf0\u12c1rn\u803b\xfe\u40fe\u01ec\u031f\u36c6\u22e7es\u8180\xd7;bd\u36cf\u36d0\u36d8\u40d7\u0100;a\u190f\u36d5r;\u6a31;\u6a30\u0180eps\u36e1\u36e3\u3700\xe1\u2a4d\u0200;bcf\u0486\u36ec\u36f0\u36f4ot;\u6336ir;\u6af1\u0100;o\u36f9\u36fc\uc000\ud835\udd65rk;\u6ada\xe1\u3362rime;\u6034\u0180aip\u370f\u3712\u3764d\xe5\u1248\u0380adempst\u3721\u374d\u3740\u3751\u3757\u375c\u375fngle\u0280;dlqr\u3730\u3731\u3736\u3740\u3742\u65b5own\xbb\u1dbbeft\u0100;e\u2800\u373e\xf1\u092e;\u625cight\u0100;e\u32aa\u374b\xf1\u105aot;\u65ecinus;\u6a3alus;\u6a39b;\u69cdime;\u6a3bezium;\u63e2\u0180cht\u3772\u377d\u3781\u0100ry\u3777\u377b;\uc000\ud835\udcc9;\u4446cy;\u445brok;\u4167\u0100io\u378b\u378ex\xf4\u1777head\u0100lr\u3797\u37a0eftarro\xf7\u084fightarrow\xbb\u0f5d\u0900AHabcdfghlmoprstuw\u37d0\u37d3\u37d7\u37e4\u37f0\u37fc\u380e\u381c\u3823\u3834\u3851\u385d\u386b\u38a9\u38cc\u38d2\u38ea\u38f6r\xf2\u03edar;\u6963\u0100cr\u37dc\u37e2ute\u803b\xfa\u40fa\xf2\u1150r\u01e3\u37ea\0\u37edy;\u445eve;\u416d\u0100iy\u37f5\u37farc\u803b\xfb\u40fb;\u4443\u0180abh\u3803\u3806\u380br\xf2\u13adlac;\u4171a\xf2\u13c3\u0100ir\u3813\u3818sht;\u697e;\uc000\ud835\udd32rave\u803b\xf9\u40f9\u0161\u3827\u3831r\u0100lr\u382c\u382e\xbb\u0957\xbb\u1083lk;\u6580\u0100ct\u3839\u384d\u026f\u383f\0\0\u384arn\u0100;e\u3845\u3846\u631cr\xbb\u3846op;\u630fri;\u65f8\u0100al\u3856\u385acr;\u416b\u80bb\xa8\u0349\u0100gp\u3862\u3866on;\u4173f;\uc000\ud835\udd66\u0300adhlsu\u114b\u3878\u387d\u1372\u3891\u38a0own\xe1\u13b3arpoon\u0100lr\u3888\u388cef\xf4\u382digh\xf4\u382fi\u0180;hl\u3899\u389a\u389c\u43c5\xbb\u13faon\xbb\u389aparrows;\u61c8\u0180cit\u38b0\u38c4\u38c8\u026f\u38b6\0\0\u38c1rn\u0100;e\u38bc\u38bd\u631dr\xbb\u38bdop;\u630eng;\u416fri;\u65f9cr;\uc000\ud835\udcca\u0180dir\u38d9\u38dd\u38e2ot;\u62f0lde;\u4169i\u0100;f\u3730\u38e8\xbb\u1813\u0100am\u38ef\u38f2r\xf2\u38a8l\u803b\xfc\u40fcangle;\u69a7\u0780ABDacdeflnoprsz\u391c\u391f\u3929\u392d\u39b5\u39b8\u39bd\u39df\u39e4\u39e8\u39f3\u39f9\u39fd\u3a01\u3a20r\xf2\u03f7ar\u0100;v\u3926\u3927\u6ae8;\u6ae9as\xe8\u03e1\u0100nr\u3932\u3937grt;\u699c\u0380eknprst\u34e3\u3946\u394b\u3952\u395d\u3964\u3996app\xe1\u2415othin\xe7\u1e96\u0180hir\u34eb\u2ec8\u3959op\xf4\u2fb5\u0100;h\u13b7\u3962\xef\u318d\u0100iu\u3969\u396dgm\xe1\u33b3\u0100bp\u3972\u3984setneq\u0100;q\u397d\u3980\uc000\u228a\ufe00;\uc000\u2acb\ufe00setneq\u0100;q\u398f\u3992\uc000\u228b\ufe00;\uc000\u2acc\ufe00\u0100hr\u399b\u399fet\xe1\u369ciangle\u0100lr\u39aa\u39afeft\xbb\u0925ight\xbb\u1051y;\u4432ash\xbb\u1036\u0180elr\u39c4\u39d2\u39d7\u0180;be\u2dea\u39cb\u39cfar;\u62bbq;\u625alip;\u62ee\u0100bt\u39dc\u1468a\xf2\u1469r;\uc000\ud835\udd33tr\xe9\u39aesu\u0100bp\u39ef\u39f1\xbb\u0d1c\xbb\u0d59pf;\uc000\ud835\udd67ro\xf0\u0efbtr\xe9\u39b4\u0100cu\u3a06\u3a0br;\uc000\ud835\udccb\u0100bp\u3a10\u3a18n\u0100Ee\u3980\u3a16\xbb\u397en\u0100Ee\u3992\u3a1e\xbb\u3990igzag;\u699a\u0380cefoprs\u3a36\u3a3b\u3a56\u3a5b\u3a54\u3a61\u3a6airc;\u4175\u0100di\u3a40\u3a51\u0100bg\u3a45\u3a49ar;\u6a5fe\u0100;q\u15fa\u3a4f;\u6259erp;\u6118r;\uc000\ud835\udd34pf;\uc000\ud835\udd68\u0100;e\u1479\u3a66at\xe8\u1479cr;\uc000\ud835\udccc\u0ae3\u178e\u3a87\0\u3a8b\0\u3a90\u3a9b\0\0\u3a9d\u3aa8\u3aab\u3aaf\0\0\u3ac3\u3ace\0\u3ad8\u17dc\u17dftr\xe9\u17d1r;\uc000\ud835\udd35\u0100Aa\u3a94\u3a97r\xf2\u03c3r\xf2\u09f6;\u43be\u0100Aa\u3aa1\u3aa4r\xf2\u03b8r\xf2\u09eba\xf0\u2713is;\u62fb\u0180dpt\u17a4\u3ab5\u3abe\u0100fl\u3aba\u17a9;\uc000\ud835\udd69im\xe5\u17b2\u0100Aa\u3ac7\u3acar\xf2\u03cer\xf2\u0a01\u0100cq\u3ad2\u17b8r;\uc000\ud835\udccd\u0100pt\u17d6\u3adcr\xe9\u17d4\u0400acefiosu\u3af0\u3afd\u3b08\u3b0c\u3b11\u3b15\u3b1b\u3b21c\u0100uy\u3af6\u3afbte\u803b\xfd\u40fd;\u444f\u0100iy\u3b02\u3b06rc;\u4177;\u444bn\u803b\xa5\u40a5r;\uc000\ud835\udd36cy;\u4457pf;\uc000\ud835\udd6acr;\uc000\ud835\udcce\u0100cm\u3b26\u3b29y;\u444el\u803b\xff\u40ff\u0500acdefhiosw\u3b42\u3b48\u3b54\u3b58\u3b64\u3b69\u3b6d\u3b74\u3b7a\u3b80cute;\u417a\u0100ay\u3b4d\u3b52ron;\u417e;\u4437ot;\u417c\u0100et\u3b5d\u3b61tr\xe6\u155fa;\u43b6r;\uc000\ud835\udd37cy;\u4436grarr;\u61ddpf;\uc000\ud835\udd6bcr;\uc000\ud835\udccf\u0100jn\u3b85\u3b87;\u600dj;\u600c'.split("").map((t=>t.charCodeAt(0)))),w=new Uint16Array("\u0200aglq\t\x15\x18\x1b\u026d\x0f\0\0\x12p;\u4026os;\u4027t;\u403et;\u403cuot;\u4022".split("").map((t=>t.charCodeAt(0))));const v=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]),z=null!==(k=String.fromCodePoint)&&void 0!==k?k:function(t){let e="";return t>65535&&(t-=65536,e+=String.fromCharCode(t>>>10&1023|55296),t=56320|1023&t),e+=String.fromCharCode(t),e};var S;!function(t){t[t.NUM=35]="NUM",t[t.SEMI=59]="SEMI",t[t.EQUALS=61]="EQUALS",t[t.ZERO=48]="ZERO",t[t.NINE=57]="NINE",t[t.LOWER_A=97]="LOWER_A",t[t.LOWER_F=102]="LOWER_F",t[t.LOWER_X=120]="LOWER_X",t[t.LOWER_Z=122]="LOWER_Z",t[t.UPPER_A=65]="UPPER_A",t[t.UPPER_F=70]="UPPER_F",t[t.UPPER_Z=90]="UPPER_Z"}(S||(S={}));var q,B,L;function I(t){return t>=S.ZERO&&t<=S.NINE}function M(t){return t>=S.UPPER_A&&t<=S.UPPER_F||t>=S.LOWER_A&&t<=S.LOWER_F}function T(t){return t===S.EQUALS||function(t){return t>=S.UPPER_A&&t<=S.UPPER_Z||t>=S.LOWER_A&&t<=S.LOWER_Z||I(t)}(t)}!function(t){t[t.VALUE_LENGTH=49152]="VALUE_LENGTH",t[t.BRANCH_LENGTH=16256]="BRANCH_LENGTH",t[t.JUMP_TABLE=127]="JUMP_TABLE"}(q||(q={})),function(t){t[t.EntityStart=0]="EntityStart",t[t.NumericStart=1]="NumericStart",t[t.NumericDecimal=2]="NumericDecimal",t[t.NumericHex=3]="NumericHex",t[t.NamedEntity=4]="NamedEntity"}(B||(B={})),function(t){t[t.Legacy=0]="Legacy",t[t.Strict=1]="Strict",t[t.Attribute=2]="Attribute"}(L||(L={}));class R{constructor(t,e,r){this.decodeTree=t,this.emitCodePoint=e,this.errors=r,this.state=B.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=L.Strict}startEntity(t){this.decodeMode=t,this.state=B.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1}write(t,e){switch(this.state){case B.EntityStart:return t.charCodeAt(e)===S.NUM?(this.state=B.NumericStart,this.consumed+=1,this.stateNumericStart(t,e+1)):(this.state=B.NamedEntity,this.stateNamedEntity(t,e));case B.NumericStart:return this.stateNumericStart(t,e);case B.NumericDecimal:return this.stateNumericDecimal(t,e);case B.NumericHex:return this.stateNumericHex(t,e);case B.NamedEntity:return this.stateNamedEntity(t,e)}}stateNumericStart(t,e){return e>=t.length?-1:(32|t.charCodeAt(e))===S.LOWER_X?(this.state=B.NumericHex,this.consumed+=1,this.stateNumericHex(t,e+1)):(this.state=B.NumericDecimal,this.stateNumericDecimal(t,e))}addToNumericResult(t,e,r,n){if(e!==r){const s=r-e;this.result=this.result*Math.pow(n,s)+parseInt(t.substr(e,s),n),this.consumed+=s}}stateNumericHex(t,e){const r=e;for(;e=55296&&t<=57343||t>1114111?65533:null!==(e=v.get(t))&&void 0!==e?e:t}(this.result),this.consumed),this.errors&&(t!==S.SEMI&&this.errors.missingSemicolonAfterCharacterReference(),this.errors.validateNumericCharacterReference(this.result)),this.consumed}stateNamedEntity(t,e){const{decodeTree:r}=this;let n=r[this.treeIndex],s=(n&q.VALUE_LENGTH)>>14;for(;e>14,0!==s){if(i===S.SEMI)return this.emitNamedEntityData(this.treeIndex,s,this.consumed+this.excess);this.decodeMode!==L.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1}emitNotTerminatedNamedEntity(){var t;const{result:e,decodeTree:r}=this,n=(r[e]&q.VALUE_LENGTH)>>14;return this.emitNamedEntityData(e,n,this.consumed),null===(t=this.errors)||void 0===t||t.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(t,e,r){const{decodeTree:n}=this;return this.emitCodePoint(1===e?n[t]&~q.VALUE_LENGTH:n[t+1],r),3===e&&this.emitCodePoint(n[t+2],r),r}end(){var t;switch(this.state){case B.NamedEntity:return 0===this.result||this.decodeMode===L.Attribute&&this.result!==this.treeIndex?0:this.emitNotTerminatedNamedEntity();case B.NumericDecimal:return this.emitNumericEntity(0,2);case B.NumericHex:return this.emitNumericEntity(0,3);case B.NumericStart:return null===(t=this.errors)||void 0===t||t.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case B.EntityStart:return 0}}}function N(t){let e="";const r=new R(t,(t=>e+=z(t)));return function(t,n){let s=0,i=0;for(;(i=t.indexOf("&",i))>=0;){e+=t.slice(s,i),r.startEntity(n);const o=r.write(t,i+1);if(o<0){s=i+r.end();break}s=i+o,i=0===o?s+1:s}const o=e+t.slice(s);return e="",o}}function P(t,e,r,n){const s=(e&q.BRANCH_LENGTH)>>7,i=e&q.JUMP_TABLE;if(0===s)return 0!==i&&n===i?r:-1;if(i){const e=n-i;return e<0||e>=s?-1:t[r+e]-1}let o=r,u=o+s-1;for(;o<=u;){const e=o+u>>>1,r=t[e];if(rn))return t[e+s];u=e-1}}return-1}const O=N(x);function j(t,e=L.Legacy){return O(t,e)}function Z(t){return"[object String]"===function(t){return Object.prototype.toString.call(t)}(t)}N(w);const $=Object.prototype.hasOwnProperty;function U(t){return Array.prototype.slice.call(arguments,1).forEach((function(e){if(e){if("object"!=typeof e)throw new TypeError(e+"must be object");Object.keys(e).forEach((function(r){t[r]=e[r]}))}})),t}function H(t,e,r){return[].concat(t.slice(0,e),r,t.slice(e+1))}function V(t){return!(t>=55296&&t<=57343)&&(!(t>=64976&&t<=65007)&&(!!(65535&~t&&65534!=(65535&t))&&(!(t>=0&&t<=8)&&(11!==t&&(!(t>=14&&t<=31)&&(!(t>=127&&t<=159)&&!(t>1114111)))))))}function G(t){if(t>65535){const e=55296+((t-=65536)>>10),r=56320+(1023&t);return String.fromCharCode(e,r)}return String.fromCharCode(t)}const W=/\\([!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~])/g,J=new RegExp(W.source+"|"+/&([a-z#][a-z0-9]{1,31});/gi.source,"gi"),Q=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))$/i;function X(t){return t.indexOf("\\")<0&&t.indexOf("&")<0?t:t.replace(J,(function(t,e,r){return e||function(t,e){if(35===e.charCodeAt(0)&&Q.test(e)){const r="x"===e[1].toLowerCase()?parseInt(e.slice(2),16):parseInt(e.slice(1),10);return V(r)?G(r):t}const r=j(t);return r!==t?r:t}(t,r)}))}const Y=/[&<>"]/,K=/[&<>"]/g,tt={"&":"&","<":"<",">":">",'"':"""};function et(t){return tt[t]}function rt(t){return Y.test(t)?t.replace(K,et):t}const nt=/[.?*+^$[\]\\(){}|-]/g;function st(t){switch(t){case 9:case 32:return!0}return!1}function it(t){if(t>=8192&&t<=8202)return!0;switch(t){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}function ot(t){return E.test(t)||A.test(t)}function ut(t){switch(t){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}}function ct(t){return t=t.trim().replace(/\s+/g," "),"\u1e7e"==="\u1e9e".toLowerCase()&&(t=t.replace(/\u1e9e/g,"\xdf")),t.toLowerCase().toUpperCase()}const at={mdurl:D,ucmicro:F};var lt=Object.freeze({__proto__:null,arrayReplaceAt:H,assign:U,escapeHtml:rt,escapeRE:function(t){return t.replace(nt,"\\$&")},fromCodePoint:G,has:function(t,e){return $.call(t,e)},isMdAsciiPunct:ut,isPunctChar:ot,isSpace:st,isString:Z,isValidEntityCode:V,isWhiteSpace:it,lib:at,normalizeReference:ct,unescapeAll:X,unescapeMd:function(t){return t.indexOf("\\")<0?t:t.replace(W,"$1")}});var ht=Object.freeze({__proto__:null,parseLinkDestination:function(t,e,r){let n,s=e;const i={ok:!1,pos:0,str:""};if(60===t.charCodeAt(s)){for(s++;s32))return i;if(41===n){if(0===o)break;o--}s++}return e===s||0!==o||(i.str=X(t.slice(e,s)),i.pos=s,i.ok=!0),i},parseLinkLabel:function(t,e,r){let n,s,i,o;const u=t.posMax,c=t.pos;for(t.pos=e+1,n=1;t.pos=r)return o;let n=t.charCodeAt(i);if(34!==n&&39!==n&&40!==n)return o;e++,i++,40===n&&(n=41),o.marker=n}for(;i"+rt(i.content)+""},pt.code_block=function(t,e,r,n,s){const i=t[e];return""+rt(t[e].content)+" \n"},pt.fence=function(t,e,r,n,s){const i=t[e],o=i.info?X(i.info).trim():"";let u,c="",a="";if(o){const t=o.split(/(\s+)/g);c=t[0],a=t.slice(2).join("")}if(u=r.highlight&&r.highlight(i.content,c,a)||rt(i.content),0===u.indexOf("${u} \n`}return`${u} \n`},pt.image=function(t,e,r,n,s){const i=t[e];return i.attrs[i.attrIndex("alt")][1]=s.renderInlineAsText(i.children,r,n),s.renderToken(t,e,r)},pt.hardbreak=function(t,e,r){return r.xhtmlOut?" \n":" \n"},pt.softbreak=function(t,e,r){return r.breaks?r.xhtmlOut?" \n":" \n":"\n"},pt.text=function(t,e){return rt(t[e].content)},pt.html_block=function(t,e){return t[e].content},pt.html_inline=function(t,e){return t[e].content},ft.prototype.renderAttrs=function(t){let e,r,n;if(!t.attrs)return"";for(n="",e=0,r=t.attrs.length;e\n":">",s},ft.prototype.renderInline=function(t,e,r){let n="";const s=this.rules;for(let i=0,o=t.length;i=0&&(r=this.attrs[e][1]),r},_t.prototype.attrJoin=function(t,e){const r=this.attrIndex(t);r<0?this.attrPush([t,e]):this.attrs[r][1]=this.attrs[r][1]+" "+e},mt.prototype.Token=_t;const gt=/\r\n?|\n/g,kt=/\0/g;function Dt(t){return/^<\/a\s*>/i.test(t)}const Ct=/\+-|\.\.|\?\?\?\?|!!!!|,,|--/,yt=/\((c|tm|r)\)/i,Et=/\((c|tm|r)\)/gi,At={c:"\xa9",r:"\xae",tm:"\u2122"};function bt(t,e){return At[e.toLowerCase()]}function Ft(t){let e=0;for(let r=t.length-1;r>=0;r--){const n=t[r];"text"!==n.type||e||(n.content=n.content.replace(Et,bt)),"link_open"===n.type&&"auto"===n.info&&e--,"link_close"===n.type&&"auto"===n.info&&e++}}function xt(t){let e=0;for(let r=t.length-1;r>=0;r--){const n=t[r];"text"!==n.type||e||Ct.test(n.content)&&(n.content=n.content.replace(/\+-/g,"\xb1").replace(/\.{2,}/g,"\u2026").replace(/([?!])\u2026/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")),"link_open"===n.type&&"auto"===n.info&&e--,"link_close"===n.type&&"auto"===n.info&&e++}}const wt=/['"]/,vt=/['"]/g,zt="\u2019";function St(t,e,r){return t.slice(0,e)+r+t.slice(e+1)}function qt(t,e){let r;const n=[];for(let s=0;s=0&&!(n[r].level<=o);r--);if(n.length=r+1,"text"!==i.type)continue;let u=i.content,c=0,a=u.length;t:for(;c=0)d=u.charCodeAt(l.index-1);else for(r=s-1;r>=0&&("softbreak"!==t[r].type&&"hardbreak"!==t[r].type);r--)if(t[r].content){d=t[r].content.charCodeAt(t[r].content.length-1);break}let _=32;if(c =48&&d<=57&&(p=h=!1),h&&p&&(h=m,p=g),h||p){if(p)for(r=n.length-1;r>=0;r--){let h=n[r];if(n[r].level=0;o--){const u=s[o];if("link_close"!==u.type){if("html_inline"===u.type&&(r=u.content,/^\s]/i.test(r)&&i>0&&i--,Dt(u.content)&&i++),!(i>0)&&"text"===u.type&&t.md.linkify.test(u.content)){const r=u.content;let i=t.md.linkify.match(r);const c=[];let a=u.level,l=0;i.length>0&&0===i[0].index&&o>0&&"text_special"===s[o-1].type&&(i=i.slice(1));for(let e=0;el){const e=new t.Token("text","",0);e.content=r.slice(l,u),e.level=a,c.push(e)}const h=new t.Token("link_open","a",1);h.attrs=[["href",s]],h.level=a++,h.markup="linkify",h.info="auto",c.push(h);const p=new t.Token("text","",0);p.content=o,p.level=a,c.push(p);const f=new t.Token("link_close","a",-1);f.level=--a,f.markup="linkify",f.info="auto",c.push(f),l=i[e].lastIndex}if(l=0;e--)"inline"===t.tokens[e].type&&(yt.test(t.tokens[e].content)&&Ft(t.tokens[e].children),Ct.test(t.tokens[e].content)&&xt(t.tokens[e].children))}],["smartquotes",function(t){if(t.md.options.typographer)for(let e=t.tokens.length-1;e>=0;e--)"inline"===t.tokens[e].type&&wt.test(t.tokens[e].content)&&qt(t.tokens[e].children,t)}],["text_join",function(t){let e,r;const n=t.tokens,s=n.length;for(let t=0;t0&&this.level++,this.tokens.push(n),n},It.prototype.isEmpty=function(t){return this.bMarks[t]+this.tShift[t]>=this.eMarks[t]},It.prototype.skipEmptyLines=function(t){for(let e=this.lineMax;te;)if(!st(this.src.charCodeAt(--t)))return t+1;return t},It.prototype.skipChars=function(t,e){for(let r=this.src.length;tr;)if(e!==this.src.charCodeAt(--t))return t+1;return t},It.prototype.getLines=function(t,e,r,n){if(t>=e)return"";const s=new Array(e-t);for(let i=0,o=t;or?new Array(t-r+1).join(" ")+this.src.slice(a,c):this.src.slice(a,c)}return s.join("")},It.prototype.Token=_t;function Mt(t,e){const r=t.bMarks[e]+t.tShift[e],n=t.eMarks[e];return t.src.slice(r,n)}function Tt(t){const e=[],r=t.length;let n=0,s=t.charCodeAt(n),i=!1,o=0,u="";for(;n=n)return-1;let i=t.src.charCodeAt(s++);if(i<48||i>57)return-1;for(;;){if(s>=n)return-1;if(i=t.src.charCodeAt(s++),!(i>=48&&i<=57)){if(41===i||46===i)break;return-1}if(s-r>=10)return-1}return s`\\x00-\\x20]+|'[^']*'|\"[^\"]*\"))?)*\\s*\\/?>",Ot="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",jt=new RegExp("^(?:"+Pt+"|"+Ot+"|\x3c!---?>|\x3c!--(?:[^-]|-[^-]|--[^>])*--\x3e|<[?][\\s\\S]*?[?]>|]*>|)"),Zt=new RegExp("^(?:"+Pt+"|"+Ot+")"),$t=[[/^<(script|pre|style|textarea)(?=(\s|>|$))/i,/<\/(script|pre|style|textarea)>/i,!0],[/^/,!0],[/^<\?/,/\?>/,!0],[/^/,!0],[/^/,!0],[new RegExp("^?("+["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","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"].join("|")+")(?=(\\s|/?>|$))","i"),/^$/,!0],[new RegExp(Zt.source+"\\s*$"),/^$/,!1]];const Ut=[["table",function(t,e,r,n){if(e+2>r)return!1;let s=e+1;if(t.sCount[s]=4)return!1;let i=t.bMarks[s]+t.tShift[s];if(i>=t.eMarks[s])return!1;const o=t.src.charCodeAt(i++);if(124!==o&&45!==o&&58!==o)return!1;if(i>=t.eMarks[s])return!1;const u=t.src.charCodeAt(i++);if(124!==u&&45!==u&&58!==u&&!st(u))return!1;if(45===o&&st(u))return!1;for(;i=4)return!1;a=Tt(c),a.length&&""===a[0]&&a.shift(),a.length&&""===a[a.length-1]&&a.pop();const h=a.length;if(0===h||h!==l.length)return!1;if(n)return!0;const p=t.parentType;t.parentType="table";const f=t.md.block.ruler.getRules("blockquote"),d=[e,0];t.push("table_open","table",1).map=d,t.push("thead_open","thead",1).map=[e,e+1],t.push("tr_open","tr",1).map=[e,e+1];for(let e=0;e=4)break;if(a=Tt(c),a.length&&""===a[0]&&a.shift(),a.length&&""===a[a.length-1]&&a.pop(),m+=h-a.length,m>65536)break;if(s===e+2){t.push("tbody_open","tbody",1).map=_=[e+2,0]}t.push("tr_open","tr",1).map=[s,s+1];for(let e=0;e=4))break;n++,s=n}t.line=s;const i=t.push("code_block","code",0);return i.content=t.getLines(e,s,4+t.blkIndent,!1)+"\n",i.map=[e,t.line],!0}],["fence",function(t,e,r,n){let s=t.bMarks[e]+t.tShift[e],i=t.eMarks[e];if(t.sCount[e]-t.blkIndent>=4)return!1;if(s+3>i)return!1;const o=t.src.charCodeAt(s);if(126!==o&&96!==o)return!1;let u=s;s=t.skipChars(s,o);let c=s-u;if(c<3)return!1;const a=t.src.slice(u,s),l=t.src.slice(s,i);if(96===o&&l.indexOf(String.fromCharCode(o))>=0)return!1;if(n)return!0;let h=e,p=!1;for(;(h++,!(h>=r))&&(s=u=t.bMarks[h]+t.tShift[h],i=t.eMarks[h],!(s=4||(s=t.skipChars(s,o),s-u=4)return!1;if(62!==t.src.charCodeAt(s))return!1;if(n)return!0;const u=[],c=[],a=[],l=[],h=t.md.block.ruler.getRules("blockquote"),p=t.parentType;t.parentType="blockquote";let f,d=!1;for(f=e;f=i)break;if(62===t.src.charCodeAt(s++)&&!e){let e,r,n=t.sCount[f]+1;32===t.src.charCodeAt(s)?(s++,n++,r=!1,e=!0):9===t.src.charCodeAt(s)?(e=!0,(t.bsCount[f]+n)%4==3?(s++,n++,r=!1):r=!0):e=!1;let o=n;for(u.push(t.bMarks[f]),t.bMarks[f]=s;s=i,c.push(t.bsCount[f]),t.bsCount[f]=t.sCount[f]+1+(e?1:0),a.push(t.sCount[f]),t.sCount[f]=o-n,l.push(t.tShift[f]),t.tShift[f]=s-t.bMarks[f];continue}if(d)break;let n=!1;for(let e=0,s=h.length;e";const g=[e,0];m.map=g,t.md.block.tokenize(t,e,f),t.push("blockquote_close","blockquote",-1).markup=">",t.lineMax=o,t.parentType=p,g[1]=t.line;for(let r=0;r=4)return!1;let i=t.bMarks[e]+t.tShift[e];const o=t.src.charCodeAt(i++);if(42!==o&&45!==o&&95!==o)return!1;let u=1;for(;i=4)return!1;if(t.listIndent>=0&&t.sCount[c]-t.listIndent>=4&&t.sCount[c]=t.blkIndent&&(f=!0),(p=Nt(t,c))>=0){if(l=!0,o=t.bMarks[c]+t.tShift[c],h=Number(t.src.slice(o,p-1)),f&&1!==h)return!1}else{if(!((p=Rt(t,c))>=0))return!1;l=!1}if(f&&t.skipSpaces(p)>=t.eMarks[c])return!1;if(n)return!0;const d=t.src.charCodeAt(p-1),_=t.tokens.length;l?(u=t.push("ordered_list_open","ol",1),1!==h&&(u.attrs=[["start",h]])):u=t.push("bullet_list_open","ul",1);const m=[c,0];u.map=m,u.markup=String.fromCharCode(d);let g=!1;const k=t.md.block.ruler.getRules("list"),D=t.parentType;for(t.parentType="list";c=s?1:n-e,f>4&&(f=1);const _=e+f;u=t.push("list_item_open","li",1),u.markup=String.fromCharCode(d);const m=[c,0];u.map=m,l&&(u.info=t.src.slice(o,p-1));const D=t.tight,C=t.tShift[c],y=t.sCount[c],E=t.listIndent;if(t.listIndent=t.blkIndent,t.blkIndent=_,t.tight=!0,t.tShift[c]=h-t.bMarks[c],t.sCount[c]=n,h>=s&&t.isEmpty(c+1)?t.line=Math.min(t.line+2,r):t.md.block.tokenize(t,c,r,!0),t.tight&&!g||(a=!1),g=t.line-c>1&&t.isEmpty(t.line-1),t.blkIndent=t.listIndent,t.listIndent=E,t.tShift[c]=C,t.sCount[c]=y,t.tight=D,u=t.push("list_item_close","li",-1),u.markup=String.fromCharCode(d),c=t.line,m[1]=c,c>=r)break;if(t.sCount[c]=4)break;let A=!1;for(let e=0,n=k.length;e=4)return!1;if(91!==t.src.charCodeAt(s))return!1;function u(e){const r=t.lineMax;if(e>=r||t.isEmpty(e))return null;let n=!1;if(t.sCount[e]-t.blkIndent>3&&(n=!0),t.sCount[e]<0&&(n=!0),!n){const n=t.md.block.ruler.getRules("reference"),s=t.parentType;t.parentType="reference";let i=!1;for(let s=0,o=n.length;s=4)return!1;if(!t.md.options.html)return!1;if(60!==t.src.charCodeAt(s))return!1;let o=t.src.slice(s,i),u=0;for(;u<$t.length&&!$t[u][0].test(o);u++);if(u===$t.length)return!1;if(n)return $t[u][2];let c=e+1;if(!$t[u][1].test(o))for(;c=4)return!1;let o=t.src.charCodeAt(s);if(35!==o||s>=i)return!1;let u=1;for(o=t.src.charCodeAt(++s);35===o&&s6||ss&&st(t.src.charCodeAt(c-1))&&(i=c),t.line=e+1;const a=t.push("heading_open","h"+String(u),1);a.markup="########".slice(0,u),a.map=[e,t.line];const l=t.push("inline","",0);return l.content=t.src.slice(s,i).trim(),l.map=[e,t.line],l.children=[],t.push("heading_close","h"+String(u),-1).markup="########".slice(0,u),!0},["paragraph","reference","blockquote"]],["lheading",function(t,e,r){const n=t.md.block.ruler.getRules("paragraph");if(t.sCount[e]-t.blkIndent>=4)return!1;const s=t.parentType;t.parentType="paragraph";let i,o=0,u=e+1;for(;u3)continue;if(t.sCount[u]>=t.blkIndent){let e=t.bMarks[u]+t.tShift[u];const r=t.eMarks[u];if(e=r))){o=61===i?1:2;break}}if(t.sCount[u]<0)continue;let e=!1;for(let s=0,i=n.length;s3)continue;if(t.sCount[i]<0)continue;let e=!1;for(let s=0,o=n.length;s=r))&&!(t.sCount[o]=i){t.line=r;break}const e=t.line;let c=!1;for(let i=0;i=t.line)throw new Error("block rule didn't increment state.line");break}if(!c)throw new Error("none of the block rules matched");t.tight=!u,t.isEmpty(t.line-1)&&(u=!0),o=t.line,o0&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],s={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(n),this.tokens_meta.push(s),n},Vt.prototype.scanDelims=function(t,e){const r=this.posMax,n=this.src.charCodeAt(t),s=t>0?this.src.charCodeAt(t-1):32;let i=t;for(;i?@[]^_`{|}~-".split("").forEach((function(t){Jt[t.charCodeAt(0)]=1}));var Xt={tokenize:function(t,e){const r=t.pos,n=t.src.charCodeAt(r);if(e)return!1;if(126!==n)return!1;const s=t.scanDelims(t.pos,!0);let i=s.length;const o=String.fromCharCode(n);if(i<2)return!1;let u;i%2&&(u=t.push("text","",0),u.content=o,i--);for(let e=0;e=0;r--){const n=e[r];if(95!==n.marker&&42!==n.marker)continue;if(-1===n.end)continue;const s=e[n.end],i=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===s.token+1,o=String.fromCharCode(n.marker),u=t.tokens[n.token];u.type=i?"strong_open":"em_open",u.tag=i?"strong":"em",u.nesting=1,u.markup=i?o+o:o,u.content="";const c=t.tokens[s.token];c.type=i?"strong_close":"em_close",c.tag=i?"strong":"em",c.nesting=-1,c.markup=i?o+o:o,c.content="",i&&(t.tokens[e[r-1].token].content="",t.tokens[e[n.end+1].token].content="",r--)}}var Kt={tokenize:function(t,e){const r=t.pos,n=t.src.charCodeAt(r);if(e)return!1;if(95!==n&&42!==n)return!1;const s=t.scanDelims(t.pos,42===n);for(let e=0;e\x00-\x20]*)$/;const re=/^((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,ne=/^&([a-z][a-z0-9]{1,31});/i;function se(t){const e={},r=t.length;if(!r)return;let n=0,s=-2;const i=[];for(let o=0;ou;c-=i[c]+1){const e=t[c];if(e.marker===r.marker&&(e.open&&e.end<0)){let n=!1;if((e.close||r.open)&&(e.length+r.length)%3==0&&(e.length%3==0&&r.length%3==0||(n=!0)),!n){const n=c>0&&!t[c-1].open?i[c-1]+1:0;i[o]=o-c+n,i[c]=n,r.open=!1,e.end=o,e.close=!1,a=-1,s=-2;break}}}-1!==a&&(e[r.marker][(r.open?3:0)+(r.length||0)%3]=a)}}const ie=[["text",function(t,e){let r=t.pos;for(;r0)return!1;const r=t.pos;if(r+3>t.posMax)return!1;if(58!==t.src.charCodeAt(r))return!1;if(47!==t.src.charCodeAt(r+1))return!1;if(47!==t.src.charCodeAt(r+2))return!1;const n=t.pending.match(Wt);if(!n)return!1;const s=n[1],i=t.md.linkify.matchAtStart(t.src.slice(r-s.length));if(!i)return!1;let o=i.url;if(o.length<=s.length)return!1;o=o.replace(/\*+$/,"");const u=t.md.normalizeLink(o);if(!t.md.validateLink(u))return!1;if(!e){t.pending=t.pending.slice(0,-s.length);const e=t.push("link_open","a",1);e.attrs=[["href",u]],e.markup="linkify",e.info="auto";t.push("text","",0).content=t.md.normalizeLinkText(o);const r=t.push("link_close","a",-1);r.markup="linkify",r.info="auto"}return t.pos+=o.length-s.length,!0}],["newline",function(t,e){let r=t.pos;if(10!==t.src.charCodeAt(r))return!1;const n=t.pending.length-1,s=t.posMax;if(!e)if(n>=0&&32===t.pending.charCodeAt(n))if(n>=1&&32===t.pending.charCodeAt(n-1)){let e=n-1;for(;e>=1&&32===t.pending.charCodeAt(e-1);)e--;t.pending=t.pending.slice(0,e),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(r++;r=n)return!1;let s=t.src.charCodeAt(r);if(10===s){for(e||t.push("hardbreak","br",0),r++;r=55296&&s<=56319&&r+1=56320&&e<=57343&&(i+=t.src[r+1],r++)}const o="\\"+i;if(!e){const e=t.push("text_special","",0);s<256&&0!==Jt[s]?e.content=i:e.content=o,e.markup=o,e.info="escape"}return t.pos=r+1,!0}],["backticks",function(t,e){let r=t.pos;if(96!==t.src.charCodeAt(r))return!1;const n=r;r++;const s=t.posMax;for(;r=h)return!1;if(c=d,s=t.md.helpers.parseLinkDestination(t.src,d,t.posMax),s.ok){for(o=t.md.normalizeLink(s.str),t.md.validateLink(o)?d=s.pos:o="",c=d;d=h||41!==t.src.charCodeAt(d))&&(a=!0),d++}if(a){if(void 0===t.env.references)return!1;if(d=0?n=t.src.slice(c,d++):d=f+1):d=f+1,n||(n=t.src.slice(p,f)),i=t.env.references[ct(n)],!i)return t.pos=l,!1;o=i.href,u=i.title}if(!e){t.pos=p,t.posMax=f;const e=[["href",o]];t.push("link_open","a",1).attrs=e,u&&e.push(["title",u]),t.linkLevel++,t.md.inline.tokenize(t),t.linkLevel--,t.push("link_close","a",-1)}return t.pos=d,t.posMax=h,!0}],["image",function(t,e){let r,n,s,i,o,u,c,a,l="";const h=t.pos,p=t.posMax;if(33!==t.src.charCodeAt(t.pos))return!1;if(91!==t.src.charCodeAt(t.pos+1))return!1;const f=t.pos+2,d=t.md.helpers.parseLinkLabel(t,t.pos+1,!1);if(d<0)return!1;if(i=d+1,i=p)return!1;for(a=i,u=t.md.helpers.parseLinkDestination(t.src,i,t.posMax),u.ok&&(l=t.md.normalizeLink(u.str),t.md.validateLink(l)?i=u.pos:l=""),a=i;i
=p||41!==t.src.charCodeAt(i))return t.pos=h,!1;i++}else{if(void 0===t.env.references)return!1;if(i
=0?s=t.src.slice(a,i++):i=d+1):i=d+1,s||(s=t.src.slice(f,d)),o=t.env.references[ct(s)],!o)return t.pos=h,!1;l=o.href,c=o.title}if(!e){n=t.src.slice(f,d);const e=[];t.md.inline.parse(n,t.md,t.env,e);const r=t.push("image","img",0),s=[["src",l],["alt",""]];r.attrs=s,r.children=e,r.content=n,c&&s.push(["title",c])}return t.pos=i,t.posMax=p,!0}],["autolink",function(t,e){let r=t.pos;if(60!==t.src.charCodeAt(r))return!1;const n=t.pos,s=t.posMax;for(;;){if(++r>=s)return!1;const e=t.src.charCodeAt(r);if(60===e)return!1;if(62===e)break}const i=t.src.slice(n+1,r);if(ee.test(i)){const r=t.md.normalizeLink(i);if(!t.md.validateLink(r))return!1;if(!e){const e=t.push("link_open","a",1);e.attrs=[["href",r]],e.markup="autolink",e.info="auto";t.push("text","",0).content=t.md.normalizeLinkText(i);const n=t.push("link_close","a",-1);n.markup="autolink",n.info="auto"}return t.pos+=i.length+2,!0}if(te.test(i)){const r=t.md.normalizeLink("mailto:"+i);if(!t.md.validateLink(r))return!1;if(!e){const e=t.push("link_open","a",1);e.attrs=[["href",r]],e.markup="autolink",e.info="auto";t.push("text","",0).content=t.md.normalizeLinkText(i);const n=t.push("link_close","a",-1);n.markup="autolink",n.info="auto"}return t.pos+=i.length+2,!0}return!1}],["html_inline",function(t,e){if(!t.md.options.html)return!1;const r=t.posMax,n=t.pos;if(60!==t.src.charCodeAt(n)||n+2>=r)return!1;const s=t.src.charCodeAt(n+1);if(33!==s&&63!==s&&47!==s&&!function(t){const e=32|t;return e>=97&&e<=122}(s))return!1;const i=t.src.slice(n).match(jt);if(!i)return!1;if(!e){const e=t.push("html_inline","",0);e.content=i[0],o=e.content,/^\s]/i.test(o)&&t.linkLevel++,function(t){return/^<\/a\s*>/i.test(t)}(e.content)&&t.linkLevel--}var o;return t.pos+=i[0].length,!0}],["entity",function(t,e){const r=t.pos,n=t.posMax;if(38!==t.src.charCodeAt(r))return!1;if(r+1>=n)return!1;if(35===t.src.charCodeAt(r+1)){const n=t.src.slice(r).match(re);if(n){if(!e){const e="x"===n[1][0].toLowerCase()?parseInt(n[1].slice(1),16):parseInt(n[1],10),r=t.push("text_special","",0);r.content=V(e)?G(e):G(65533),r.markup=n[0],r.info="entity"}return t.pos+=n[0].length,!0}}else{const n=t.src.slice(r).match(ne);if(n){const r=j(n[0]);if(r!==n[0]){if(!e){const e=t.push("text_special","",0);e.content=r,e.markup=n[0],e.info="entity"}return t.pos+=n[0].length,!0}}}return!1}]],oe=[["balance_pairs",function(t){const e=t.tokens_meta,r=t.tokens_meta.length;se(t.delimiters);for(let t=0;t0&&n++,"text"===s[e].type&&e+1=t.pos)throw new Error("inline rule didn't increment state.pos");break}}else t.pos=t.posMax;o||t.pos++,i[e]=t.pos},ue.prototype.tokenize=function(t){const e=this.ruler.getRules(""),r=e.length,n=t.posMax,s=t.md.options.maxNesting;for(;t.pos=t.pos)throw new Error("inline rule didn't increment state.pos");break}if(o){if(t.pos>=n)break}else t.pending+=t.src[t.pos++]}t.pending&&t.pushPending()},ue.prototype.parse=function(t,e,r,n){const s=new this.State(t,e,r,n);this.tokenize(s);const i=this.ruler2.getRules(""),o=i.length;for(let t=0;t=3&&":"===t[e-3]||e>=3&&"/"===t[e-3]?0:n.match(r.re.no_http)[0].length:0}},"mailto:":{validate:function(t,e,r){const n=t.slice(e);return r.re.mailto||(r.re.mailto=new RegExp("^"+r.re.src_email_name+"@"+r.re.src_host_strict,"i")),r.re.mailto.test(n)?n.match(r.re.mailto)[0].length:0}}},de="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]",_e="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|\u0440\u0444".split("|");function me(t){const e=t.re=function(t){const e={};t=t||{},e.src_Any=C.source,e.src_Cc=y.source,e.src_Z=b.source,e.src_P=E.source,e.src_ZPCc=[e.src_Z,e.src_P,e.src_Cc].join("|"),e.src_ZCc=[e.src_Z,e.src_Cc].join("|");const r="[><\uff5c]";return e.src_pseudo_letter="(?:(?![><\uff5c]|"+e.src_ZPCc+")"+e.src_Any+")",e.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]?)",e.src_auth="(?:(?:(?!"+e.src_ZCc+"|[@/\\[\\]()]).)+@)?",e.src_port="(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?",e.src_host_terminator="(?=$|[><\uff5c]|"+e.src_ZPCc+")(?!"+(t["---"]?"-(?!--)|":"-|")+"_|:\\d|\\.-|\\.(?!$|"+e.src_ZPCc+"))",e.src_path="(?:[/?#](?:(?!"+e.src_ZCc+"|"+r+"|[()[\\]{}.,\"'?!\\-;]).|\\[(?:(?!"+e.src_ZCc+"|\\]).)*\\]|\\((?:(?!"+e.src_ZCc+"|[)]).)*\\)|\\{(?:(?!"+e.src_ZCc+'|[}]).)*\\}|\\"(?:(?!'+e.src_ZCc+'|["]).)+\\"|\\\'(?:(?!'+e.src_ZCc+"|[']).)+\\'|\\'(?="+e.src_pseudo_letter+"|[-])|\\.{2,}[a-zA-Z0-9%/&]|\\.(?!"+e.src_ZCc+"|[.]|$)|"+(t["---"]?"\\-(?!--(?:[^-]|$))(?:-*)|":"\\-+|")+",(?!"+e.src_ZCc+"|$)|;(?!"+e.src_ZCc+"|$)|\\!+(?!"+e.src_ZCc+"|[!]|$)|\\?(?!"+e.src_ZCc+"|[?]|$))+|\\/)?",e.src_email_name='[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*',e.src_xn="xn--[a-z0-9\\-]{1,59}",e.src_domain_root="(?:"+e.src_xn+"|"+e.src_pseudo_letter+"{1,63})",e.src_domain="(?:"+e.src_xn+"|(?:"+e.src_pseudo_letter+")|(?:"+e.src_pseudo_letter+"(?:-|"+e.src_pseudo_letter+"){0,61}"+e.src_pseudo_letter+"))",e.src_host="(?:(?:(?:(?:"+e.src_domain+")\\.)*"+e.src_domain+"))",e.tpl_host_fuzzy="(?:"+e.src_ip4+"|(?:(?:(?:"+e.src_domain+")\\.)+(?:%TLDS%)))",e.tpl_host_no_ip_fuzzy="(?:(?:(?:"+e.src_domain+")\\.)+(?:%TLDS%))",e.src_host_strict=e.src_host+e.src_host_terminator,e.tpl_host_fuzzy_strict=e.tpl_host_fuzzy+e.src_host_terminator,e.src_host_port_strict=e.src_host+e.src_port+e.src_host_terminator,e.tpl_host_port_fuzzy_strict=e.tpl_host_fuzzy+e.src_port+e.src_host_terminator,e.tpl_host_port_no_ip_fuzzy_strict=e.tpl_host_no_ip_fuzzy+e.src_port+e.src_host_terminator,e.tpl_host_fuzzy_test="localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:"+e.src_ZPCc+"|>|$))",e.tpl_email_fuzzy='(^|[><\uff5c]|"|\\(|'+e.src_ZCc+")("+e.src_email_name+"@"+e.tpl_host_fuzzy_strict+")",e.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`|\uff5c]|"+e.src_ZPCc+"))((?![$+<=>^`|\uff5c])"+e.tpl_host_port_fuzzy_strict+e.src_path+")",e.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`|\uff5c]|"+e.src_ZPCc+"))((?![$+<=>^`|\uff5c])"+e.tpl_host_port_no_ip_fuzzy_strict+e.src_path+")",e}(t.__opts__),r=t.__tlds__.slice();function n(t){return t.replace("%TLDS%",e.src_tlds)}t.onCompile(),t.__tlds_replaced__||r.push(de),r.push(e.src_xn),e.src_tlds=r.join("|"),e.email_fuzzy=RegExp(n(e.tpl_email_fuzzy),"i"),e.link_fuzzy=RegExp(n(e.tpl_link_fuzzy),"i"),e.link_no_ip_fuzzy=RegExp(n(e.tpl_link_no_ip_fuzzy),"i"),e.host_fuzzy_test=RegExp(n(e.tpl_host_fuzzy_test),"i");const s=[];function i(t,e){throw new Error('(LinkifyIt) Invalid schema "'+t+'": '+e)}t.__compiled__={},Object.keys(t.__schemas__).forEach((function(e){const r=t.__schemas__[e];if(null===r)return;const n={validate:null,link:null};if(t.__compiled__[e]=n,"[object Object]"===ae(r))return!function(t){return"[object RegExp]"===ae(t)}(r.validate)?le(r.validate)?n.validate=r.validate:i(e,r):n.validate=function(t){return function(e,r){const n=e.slice(r);return t.test(n)?n.match(t)[0].length:0}}(r.validate),void(le(r.normalize)?n.normalize=r.normalize:r.normalize?i(e,r):n.normalize=function(t,e){e.normalize(t)});!function(t){return"[object String]"===ae(t)}(r)?i(e,r):s.push(e)})),s.forEach((function(e){t.__compiled__[t.__schemas__[e]]&&(t.__compiled__[e].validate=t.__compiled__[t.__schemas__[e]].validate,t.__compiled__[e].normalize=t.__compiled__[t.__schemas__[e]].normalize)})),t.__compiled__[""]={validate:null,normalize:function(t,e){e.normalize(t)}};const o=Object.keys(t.__compiled__).filter((function(e){return e.length>0&&t.__compiled__[e]})).map(he).join("|");t.re.schema_test=RegExp("(^|(?!_)(?:[><\uff5c]|"+e.src_ZPCc+"))("+o+")","i"),t.re.schema_search=RegExp("(^|(?!_)(?:[><\uff5c]|"+e.src_ZPCc+"))("+o+")","ig"),t.re.schema_at_start=RegExp("^"+t.re.schema_search.source,"i"),t.re.pretest=RegExp("("+t.re.schema_test.source+")|("+t.re.host_fuzzy_test.source+")|@","i"),function(t){t.__index__=-1,t.__text_cache__=""}(t)}function ge(t,e){const r=t.__index__,n=t.__last_index__,s=t.__text_cache__.slice(r,n);this.schema=t.__schema__.toLowerCase(),this.index=r+e,this.lastIndex=n+e,this.raw=s,this.text=s,this.url=s}function ke(t,e){const r=new ge(t,e);return t.__compiled__[r.schema].normalize(r,t),r}function De(t,e){if(!(this instanceof De))return new De(t,e);var r;e||(r=t,Object.keys(r||{}).reduce((function(t,e){return t||pe.hasOwnProperty(e)}),!1)&&(e=t,t={})),this.__opts__=ce({},pe,e),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=ce({},fe,t),this.__compiled__={},this.__tlds__=_e,this.__tlds_replaced__=!1,this.re={},me(this)}De.prototype.add=function(t,e){return this.__schemas__[t]=e,me(this),this},De.prototype.set=function(t){return this.__opts__=ce(this.__opts__,t),this},De.prototype.test=function(t){if(this.__text_cache__=t,this.__index__=-1,!t.length)return!1;let e,r,n,s,i,o,u,c,a;if(this.re.schema_test.test(t))for(u=this.re.schema_search,u.lastIndex=0;null!==(e=u.exec(t));)if(s=this.testSchemaAt(t,e[2],u.lastIndex),s){this.__schema__=e[2],this.__index__=e.index+e[1].length,this.__last_index__=e.index+e[0].length+s;break}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(c=t.search(this.re.host_fuzzy_test),c>=0&&(this.__index__<0||c=0&&null!==(n=t.match(this.re.email_fuzzy))&&(i=n.index+n[1].length,o=n.index+n[0].length,(this.__index__<0||ithis.__last_index__)&&(this.__schema__="mailto:",this.__index__=i,this.__last_index__=o))),this.__index__>=0},De.prototype.pretest=function(t){return this.re.pretest.test(t)},De.prototype.testSchemaAt=function(t,e,r){return this.__compiled__[e.toLowerCase()]?this.__compiled__[e.toLowerCase()].validate(t,r,this):0},De.prototype.match=function(t){const e=[];let r=0;this.__index__>=0&&this.__text_cache__===t&&(e.push(ke(this,r)),r=this.__last_index__);let n=r?t.slice(r):t;for(;this.test(n);)e.push(ke(this,r)),n=n.slice(this.__last_index__),r+=this.__last_index__;return e.length?e:null},De.prototype.matchAtStart=function(t){if(this.__text_cache__=t,this.__index__=-1,!t.length)return null;const e=this.re.schema_at_start.exec(t);if(!e)return null;const r=this.testSchemaAt(t,e[2],e[0].length);return r?(this.__schema__=e[2],this.__index__=e.index+e[1].length,this.__last_index__=e.index+e[0].length+r,ke(this,0)):null},De.prototype.tlds=function(t,e){return t=Array.isArray(t)?t:[t],e?(this.__tlds__=this.__tlds__.concat(t).sort().filter((function(t,e,r){return t!==r[e-1]})).reverse(),me(this),this):(this.__tlds__=t.slice(),this.__tlds_replaced__=!0,me(this),this)},De.prototype.normalize=function(t){t.schema||(t.url="http://"+t.url),"mailto:"!==t.schema||/^mailto:/i.test(t.url)||(t.url="mailto:"+t.url)},De.prototype.onCompile=function(){};const Ce=2147483647,ye=36,Ee=/^xn--/,Ae=/[^\0-\x7F]/,be=/[\x2E\u3002\uFF0E\uFF61]/g,Fe={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},xe=Math.floor,we=String.fromCharCode;function ve(t){throw new RangeError(Fe[t])}function ze(t,e){const r=t.split("@");let n="";r.length>1&&(n=r[0]+"@",t=r[1]);const s=function(t,e){const r=[];let n=t.length;for(;n--;)r[n]=e(t[n]);return r}((t=t.replace(be,".")).split("."),e).join(".");return n+s}function Se(t){const e=[];let r=0;const n=t.length;for(;r=55296&&s<=56319&&r>1,t+=xe(t/e);t>455;n+=ye)t=xe(t/35);return xe(n+36*t/(t+38))},Le=function(t){const e=[],r=t.length;let n=0,s=128,i=72,o=t.lastIndexOf("-");o<0&&(o=0);for(let r=0;r=128&&ve("not-basic"),e.push(t.charCodeAt(r));for(let c=o>0?o+1:0;c=r&&ve("invalid-input");const o=(u=t.charCodeAt(c++))>=48&&u<58?u-48+26:u>=65&&u<91?u-65:u>=97&&u<123?u-97:ye;o>=ye&&ve("invalid-input"),o>xe((Ce-n)/e)&&ve("overflow"),n+=o*e;const a=s<=i?1:s>=i+26?26:s-i;if(oxe(Ce/l)&&ve("overflow"),e*=l}const a=e.length+1;i=Be(n-o,a,0==o),xe(n/a)>Ce-s&&ve("overflow"),s+=xe(n/a),n%=a,e.splice(n++,0,s)}var u;return String.fromCodePoint(...e)},Ie=function(t){const e=[],r=(t=Se(t)).length;let n=128,s=0,i=72;for(const r of t)r<128&&e.push(we(r));const o=e.length;let u=o;for(o&&e.push("-");u=n&&exe((Ce-s)/c)&&ve("overflow"),s+=(r-n)*c,n=r;for(const r of t)if(rCe&&ve("overflow"),r===n){let t=s;for(let r=ye;;r+=ye){const n=r<=i?1:r>=i+26?26:r-i;if(tString.fromCodePoint(...t)},decode:Le,encode:Ie,toASCII:function(t){return ze(t,(function(t){return Ae.test(t)?"xn--"+Ie(t):t}))},toUnicode:function(t){return ze(t,(function(t){return Ee.test(t)?Le(t.slice(4).toLowerCase()):t}))}};const Te={default:{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:{}}},zero:{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","text_join"]},block:{rules:["paragraph"]},inline:{rules:["text"],rules2:["balance_pairs","fragments_join"]}}},commonmark:{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","text_join"]},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","fragments_join"]}}}},Re=/^(vbscript|javascript|file|data):/,Ne=/^data:image\/(gif|png|jpeg|webp);/;function Pe(t){const e=t.trim().toLowerCase();return!Re.test(e)||Ne.test(e)}const Oe=["http:","https:","mailto:"];function je(t){const e=g(t,!0);if(e.hostname&&(!e.protocol||Oe.indexOf(e.protocol)>=0))try{e.hostname=Me.toASCII(e.hostname)}catch(t){}return n(s(e))}function Ze(t){const r=g(t,!0);if(r.hostname&&(!r.protocol||Oe.indexOf(r.protocol)>=0))try{r.hostname=Me.toUnicode(r.hostname)}catch(t){}return e(s(r),e.defaultChars+"%")}function $e(t,e){if(!(this instanceof $e))return new $e(t,e);e||Z(t)||(e=t||{},t="default"),this.inline=new ue,this.block=new Ht,this.core=new Lt,this.renderer=new ft,this.linkify=new De,this.validateLink=Pe,this.normalizeLink=je,this.normalizeLinkText=Ze,this.utils=lt,this.helpers=U({},ht),this.options={},this.configure(t),e&&this.set(e)}return $e.prototype.set=function(t){return U(this.options,t),this},$e.prototype.configure=function(t){const e=this;if(Z(t)){const e=t;if(!(t=Te[e]))throw new Error('Wrong `markdown-it` preset "'+e+'", check name')}if(!t)throw new Error("Wrong `markdown-it` preset, can't be empty");return t.options&&e.set(t.options),t.components&&Object.keys(t.components).forEach((function(r){t.components[r].rules&&e[r].ruler.enableOnly(t.components[r].rules),t.components[r].rules2&&e[r].ruler2.enableOnly(t.components[r].rules2)})),this},$e.prototype.enable=function(t,e){let r=[];Array.isArray(t)||(t=[t]),["core","block","inline"].forEach((function(e){r=r.concat(this[e].ruler.enable(t,!0))}),this),r=r.concat(this.inline.ruler2.enable(t,!0));const n=t.filter((function(t){return r.indexOf(t)<0}));if(n.length&&!e)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+n);return this},$e.prototype.disable=function(t,e){let r=[];Array.isArray(t)||(t=[t]),["core","block","inline"].forEach((function(e){r=r.concat(this[e].ruler.disable(t,!0))}),this),r=r.concat(this.inline.ruler2.disable(t,!0));const n=t.filter((function(t){return r.indexOf(t)<0}));if(n.length&&!e)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+n);return this},$e.prototype.use=function(t){const e=[this].concat(Array.prototype.slice.call(arguments,1));return t.apply(t,e),this},$e.prototype.parse=function(t,e){if("string"!=typeof t)throw new Error("Input data should be a String");const r=new this.core.State(t,this,e);return this.core.process(r),r.tokens},$e.prototype.render=function(t,e){return e=e||{},this.renderer.render(this.parse(t,e),this.options,e)},$e.prototype.parseInline=function(t,e){const r=new this.core.State(t,this,e);return r.inlineMode=!0,this.core.process(r),r.tokens},$e.prototype.renderInline=function(t,e){return e=e||{},this.renderer.render(this.parseInline(t,e),this.options,e)},$e}));
diff --git a/public/site/js/qs.min.js b/public/site/js/qs.min.js
deleted file mode 100644
index 8b329032d..000000000
--- a/public/site/js/qs.min.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
- * Minified by jsDelivr using Terser v5.19.2.
- * Original file: /npm/qs@6.13.0/dist/qs.js
- *
- * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
- */
-!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).Qs=t()}}((function(){return function t(e,r,o){function n(a,l){if(!r[a]){if(!e[a]){var p="function"==typeof require&&require;if(!l&&p)return p(a,!0);if(i)return i(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var f=r[a]={exports:{}};e[a][0].call(f.exports,(function(t){return n(e[a][1][t]||t)}),f,f.exports,t,e,r,o)}return r[a].exports}for(var i="function"==typeof require&&require,a=0;a-1?t.split(","):t},c=function(t,e,r,o){if(t){var i=r.allowDots?t.replace(/\.([^.[]+)/g,"[$1]"):t,a=/(\[[^[\]]*])/g,l=r.depth>0&&/(\[[^[\]]*])/.exec(i),c=l?i.slice(0,l.index):i,f=[];if(c){if(!r.plainObjects&&n.call(Object.prototype,c)&&!r.allowPrototypes)return;f.push(c)}for(var u=0;r.depth>0&&null!==(l=a.exec(i))&&u=0;--i){var a,l=t[i];if("[]"===l&&r.parseArrays)a=r.allowEmptyArrays&&(""===n||r.strictNullHandling&&null===n)?[]:[].concat(n);else{a=r.plainObjects?Object.create(null):{};var c="["===l.charAt(0)&&"]"===l.charAt(l.length-1)?l.slice(1,-1):l,f=r.decodeDotInKeys?c.replace(/%2E/g,"."):c,u=parseInt(f,10);r.parseArrays||""!==f?!isNaN(u)&&l!==f&&String(u)===f&&u>=0&&r.parseArrays&&u<=r.arrayLimit?(a=[])[u]=n:"__proto__"!==f&&(a[f]=n):a={0:n}}n=a}return n}(f,e,r,o)}};e.exports=function(t,e){var r=function(t){if(!t)return a;if(void 0!==t.allowEmptyArrays&&"boolean"!=typeof t.allowEmptyArrays)throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(void 0!==t.decodeDotInKeys&&"boolean"!=typeof t.decodeDotInKeys)throw new TypeError("`decodeDotInKeys` option can only be `true` or `false`, when provided");if(null!==t.decoder&&void 0!==t.decoder&&"function"!=typeof t.decoder)throw new TypeError("Decoder has to be a function.");if(void 0!==t.charset&&"utf-8"!==t.charset&&"iso-8859-1"!==t.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var e=void 0===t.charset?a.charset:t.charset,r=void 0===t.duplicates?a.duplicates:t.duplicates;if("combine"!==r&&"first"!==r&&"last"!==r)throw new TypeError("The duplicates option must be either combine, first, or last");return{allowDots:void 0===t.allowDots?!0===t.decodeDotInKeys||a.allowDots:!!t.allowDots,allowEmptyArrays:"boolean"==typeof t.allowEmptyArrays?!!t.allowEmptyArrays:a.allowEmptyArrays,allowPrototypes:"boolean"==typeof t.allowPrototypes?t.allowPrototypes:a.allowPrototypes,allowSparse:"boolean"==typeof t.allowSparse?t.allowSparse:a.allowSparse,arrayLimit:"number"==typeof t.arrayLimit?t.arrayLimit:a.arrayLimit,charset:e,charsetSentinel:"boolean"==typeof t.charsetSentinel?t.charsetSentinel:a.charsetSentinel,comma:"boolean"==typeof t.comma?t.comma:a.comma,decodeDotInKeys:"boolean"==typeof t.decodeDotInKeys?t.decodeDotInKeys:a.decodeDotInKeys,decoder:"function"==typeof t.decoder?t.decoder:a.decoder,delimiter:"string"==typeof t.delimiter||o.isRegExp(t.delimiter)?t.delimiter:a.delimiter,depth:"number"==typeof t.depth||!1===t.depth?+t.depth:a.depth,duplicates:r,ignoreQueryPrefix:!0===t.ignoreQueryPrefix,interpretNumericEntities:"boolean"==typeof t.interpretNumericEntities?t.interpretNumericEntities:a.interpretNumericEntities,parameterLimit:"number"==typeof t.parameterLimit?t.parameterLimit:a.parameterLimit,parseArrays:!1!==t.parseArrays,plainObjects:"boolean"==typeof t.plainObjects?t.plainObjects:a.plainObjects,strictDepth:"boolean"==typeof t.strictDepth?!!t.strictDepth:a.strictDepth,strictNullHandling:"boolean"==typeof t.strictNullHandling?t.strictNullHandling:a.strictNullHandling}}(e);if(""===t||null==t)return r.plainObjects?Object.create(null):{};for(var f="string"==typeof t?function(t,e){var r={__proto__:null},c=e.ignoreQueryPrefix?t.replace(/^\?/,""):t;c=c.replace(/%5B/gi,"[").replace(/%5D/gi,"]");var f,u=e.parameterLimit===1/0?void 0:e.parameterLimit,y=c.split(e.delimiter,u),s=-1,d=e.charset;if(e.charsetSentinel)for(f=0;f-1&&(g=i(g)?[g]:g);var w=n.call(r,b);w&&"combine"===e.duplicates?r[b]=o.combine(r[b],g):w&&"last"!==e.duplicates||(r[b]=g)}return r}(t,r):t,u=r.plainObjects?Object.create(null):{},y=Object.keys(f),s=0;s0?E.join(",")||null:void 0}];else if(p(g))F=g;else{var k=Object.keys(E);F=h?k.sort(h):k}var N=y?r.replace(/\./g,"%2E"):r,_=a&&p(E)&&1===E.length?N+"[]":N;if(l&&p(E)&&0===E.length)return _+"[]";for(var M=0;M0?w+v:""}},{1:1,29:29,5:5}],5:[function(t,e,r){"use strict";var o=t(1),n=Object.prototype.hasOwnProperty,i=Array.isArray,a=function(){for(var t=[],e=0;e<256;++e)t.push("%"+((e<16?"0":"")+e.toString(16)).toUpperCase());return t}(),l=1024;e.exports={combine:function(t,e){return[].concat(t,e)},compact:function(t){for(var e=[{obj:{o:t},prop:"o"}],r=[],o=0;o1;){var e=t.pop(),r=e.obj[e.prop];if(i(r)){for(var o=[],n=0;n=l?p.slice(f,f+l):p,y=[],s=0;s=48&&d<=57||d>=65&&d<=90||d>=97&&d<=122||i===o.RFC1738&&(40===d||41===d)?y[y.length]=u.charAt(s):d<128?y[y.length]=a[d]:d<2048?y[y.length]=a[192|d>>6]+a[128|63&d]:d<55296||d>=57344?y[y.length]=a[224|d>>12]+a[128|d>>6&63]+a[128|63&d]:(s+=1,d=65536+((1023&d)<<10|1023&u.charCodeAt(s)),y[y.length]=a[240|d>>18]+a[128|d>>12&63]+a[128|d>>6&63]+a[128|63&d])}c+=y.join("")}return c},isBuffer:function(t){return!(!t||"object"!=typeof t||!(t.constructor&&t.constructor.isBuffer&&t.constructor.isBuffer(t)))},isRegExp:function(t){return"[object RegExp]"===Object.prototype.toString.call(t)},maybeMap:function(t,e){if(i(t)){for(var r=[],o=0;o-1?n(r):r}},{20:20,8:8}],20:[function(t,e,r){"use strict";var o,n=t(12),i=t(11),a=t(13),l=t(14),p=t(15),c=t(16),f=t(17),u=Function,y=function(t){try{return u('"use strict"; return ('+t+").constructor;")()}catch(t){}},s=Object.getOwnPropertyDescriptor;if(s)try{s({},"")}catch(t){s=null}var d=function(){throw new c},b=s?function(){try{return d}catch(t){try{return s(arguments,"callee").get}catch(t){return d}}}():d,g=t(24)(),h=t(23)(),m=Object.getPrototypeOf||(h?function(t){return t.__proto__}:null),v={},w="undefined"!=typeof Uint8Array&&m?m(Uint8Array):o,S={__proto__:null,"%AggregateError%":"undefined"==typeof AggregateError?o:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?o:ArrayBuffer,"%ArrayIteratorPrototype%":g&&m?m([][Symbol.iterator]()):o,"%AsyncFromSyncIteratorPrototype%":o,"%AsyncFunction%":v,"%AsyncGenerator%":v,"%AsyncGeneratorFunction%":v,"%AsyncIteratorPrototype%":v,"%Atomics%":"undefined"==typeof Atomics?o:Atomics,"%BigInt%":"undefined"==typeof BigInt?o:BigInt,"%BigInt64Array%":"undefined"==typeof BigInt64Array?o:BigInt64Array,"%BigUint64Array%":"undefined"==typeof BigUint64Array?o:BigUint64Array,"%Boolean%":Boolean,"%DataView%":"undefined"==typeof DataView?o:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":n,"%eval%":eval,"%EvalError%":i,"%Float32Array%":"undefined"==typeof Float32Array?o:Float32Array,"%Float64Array%":"undefined"==typeof Float64Array?o:Float64Array,"%FinalizationRegistry%":"undefined"==typeof FinalizationRegistry?o:FinalizationRegistry,"%Function%":u,"%GeneratorFunction%":v,"%Int8Array%":"undefined"==typeof Int8Array?o:Int8Array,"%Int16Array%":"undefined"==typeof Int16Array?o:Int16Array,"%Int32Array%":"undefined"==typeof Int32Array?o:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":g&&m?m(m([][Symbol.iterator]())):o,"%JSON%":"object"==typeof JSON?JSON:o,"%Map%":"undefined"==typeof Map?o:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&g&&m?m((new Map)[Symbol.iterator]()):o,"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?o:Promise,"%Proxy%":"undefined"==typeof Proxy?o:Proxy,"%RangeError%":a,"%ReferenceError%":l,"%Reflect%":"undefined"==typeof Reflect?o:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"==typeof Set?o:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&g&&m?m((new Set)[Symbol.iterator]()):o,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?o:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":g&&m?m(""[Symbol.iterator]()):o,"%Symbol%":g?Symbol:o,"%SyntaxError%":p,"%ThrowTypeError%":b,"%TypedArray%":w,"%TypeError%":c,"%Uint8Array%":"undefined"==typeof Uint8Array?o:Uint8Array,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?o:Uint8ClampedArray,"%Uint16Array%":"undefined"==typeof Uint16Array?o:Uint16Array,"%Uint32Array%":"undefined"==typeof Uint32Array?o:Uint32Array,"%URIError%":f,"%WeakMap%":"undefined"==typeof WeakMap?o:WeakMap,"%WeakRef%":"undefined"==typeof WeakRef?o:WeakRef,"%WeakSet%":"undefined"==typeof WeakSet?o:WeakSet};if(m)try{null.error}catch(t){var A=m(m(t));S["%Error.prototype%"]=A}var j=function t(e){var r;if("%AsyncFunction%"===e)r=y("async function () {}");else if("%GeneratorFunction%"===e)r=y("function* () {}");else if("%AsyncGeneratorFunction%"===e)r=y("async function* () {}");else if("%AsyncGenerator%"===e){var o=t("%AsyncGeneratorFunction%");o&&(r=o.prototype)}else if("%AsyncIteratorPrototype%"===e){var n=t("%AsyncGenerator%");n&&m&&(r=m(n.prototype))}return S[e]=r,r},O={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},E=t(19),P=t(26),x=E.call(Function.call,Array.prototype.concat),I=E.call(Function.apply,Array.prototype.splice),D=E.call(Function.call,String.prototype.replace),F=E.call(Function.call,String.prototype.slice),R=E.call(Function.call,RegExp.prototype.exec),k=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,N=/\\(\\)?/g,_=function(t,e){var r,o=t;if(P(O,o)&&(o="%"+(r=O[o])[0]+"%"),P(S,o)){var n=S[o];if(n===v&&(n=j(o)),void 0===n&&!e)throw new c("intrinsic "+t+" exists, but is not available. Please file an issue!");return{alias:r,name:o,value:n}}throw new p("intrinsic "+t+" does not exist!")};e.exports=function(t,e){if("string"!=typeof t||0===t.length)throw new c("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof e)throw new c('"allowMissing" argument must be a boolean');if(null===R(/^%?[^%]*%?$/,t))throw new p("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var r=function(t){var e=F(t,0,1),r=F(t,-1);if("%"===e&&"%"!==r)throw new p("invalid intrinsic syntax, expected closing `%`");if("%"===r&&"%"!==e)throw new p("invalid intrinsic syntax, expected opening `%`");var o=[];return D(t,k,(function(t,e,r,n){o[o.length]=r?D(n,N,"$1"):e||t})),o}(t),o=r.length>0?r[0]:"",n=_("%"+o+"%",e),i=n.name,a=n.value,l=!1,f=n.alias;f&&(o=f[0],I(r,x([0,1],f)));for(var u=1,y=!0;u=r.length){var h=s(a,d);a=(y=!!h)&&"get"in h&&!("originalValue"in h.get)?h.get:a[d]}else y=P(a,d),a=a[d];y&&!l&&(S[i]=a)}}return a}},{11:11,12:12,13:13,14:14,15:15,16:16,17:17,19:19,23:23,24:24,26:26}],8:[function(t,e,r){"use strict";var o=t(19),n=t(20),i=t(28),a=t(16),l=n("%Function.prototype.apply%"),p=n("%Function.prototype.call%"),c=n("%Reflect.apply%",!0)||o.call(p,l),f=t(10),u=n("%Math.max%");e.exports=function(t){if("function"!=typeof t)throw new a("a function is required");var e=c(o,p,arguments);return i(e,1+u(0,t.length-(arguments.length-1)),!0)};var y=function(){return c(o,l,arguments)};f?f(e.exports,"apply",{value:y}):e.exports.apply=y},{10:10,16:16,19:19,20:20,28:28}],16:[function(t,e,r){"use strict";e.exports=TypeError},{}],19:[function(t,e,r){"use strict";var o=t(18);e.exports=Function.prototype.bind||o},{18:18}],10:[function(t,e,r){"use strict";var o=t(20)("%Object.defineProperty%",!0)||!1;if(o)try{o({},"a",{value:1})}catch(t){o=!1}e.exports=o},{20:20}],28:[function(t,e,r){"use strict";var o=t(20),n=t(9),i=t(22)(),a=t(21),l=t(16),p=o("%Math.floor%");e.exports=function(t,e){if("function"!=typeof t)throw new l("`fn` is not a function");if("number"!=typeof e||e<0||e>4294967295||p(e)!==e)throw new l("`length` must be a positive 32-bit integer");var r=arguments.length>2&&!!arguments[2],o=!0,c=!0;if("length"in t&&a){var f=a(t,"length");f&&!f.configurable&&(o=!1),f&&!f.writable&&(c=!1)}return(o||c||!r)&&(i?n(t,"length",e,!0,!0):n(t,"length",e)),t}},{16:16,20:20,21:21,22:22,9:9}],9:[function(t,e,r){"use strict";var o=t(10),n=t(15),i=t(16),a=t(21);e.exports=function(t,e,r){if(!t||"object"!=typeof t&&"function"!=typeof t)throw new i("`obj` must be an object or a function`");if("string"!=typeof e&&"symbol"!=typeof e)throw new i("`property` must be a string or a symbol`");if(arguments.length>3&&"boolean"!=typeof arguments[3]&&null!==arguments[3])throw new i("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&"boolean"!=typeof arguments[4]&&null!==arguments[4])throw new i("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&"boolean"!=typeof arguments[5]&&null!==arguments[5])throw new i("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&"boolean"!=typeof arguments[6])throw new i("`loose`, if provided, must be a boolean");var l=arguments.length>3?arguments[3]:null,p=arguments.length>4?arguments[4]:null,c=arguments.length>5?arguments[5]:null,f=arguments.length>6&&arguments[6],u=!!a&&a(t,e);if(o)o(t,e,{configurable:null===c&&u?u.configurable:!c,enumerable:null===l&&u?u.enumerable:!l,value:r,writable:null===p&&u?u.writable:!p});else{if(!f&&(l||p||c))throw new n("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.");t[e]=r}}},{10:10,15:15,16:16,21:21}],15:[function(t,e,r){"use strict";e.exports=SyntaxError},{}],21:[function(t,e,r){"use strict";var o=t(20)("%Object.getOwnPropertyDescriptor%",!0);if(o)try{o([],"length")}catch(t){o=null}e.exports=o},{20:20}],11:[function(t,e,r){"use strict";e.exports=EvalError},{}],12:[function(t,e,r){"use strict";e.exports=Error},{}],13:[function(t,e,r){"use strict";e.exports=RangeError},{}],14:[function(t,e,r){"use strict";e.exports=ReferenceError},{}],17:[function(t,e,r){"use strict";e.exports=URIError},{}],18:[function(t,e,r){"use strict";var o=Object.prototype.toString,n=Math.max,i=function(t,e){for(var r=[],o=0;o-1e3&&t<1e3||A.call(/e/,e))return e;var r=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if("number"==typeof t){var o=t<0?-P(-t):P(t);if(o!==t){var n=String(o),i=m.call(e,n.length+1);return v.call(n,r,"$&_")+"."+v.call(v.call(i,/([0-9]{3})/g,"$&_"),/_$/,"")}}return v.call(e,r,"$&_")}var M=t(6),T=M.custom,U=K(T)?T:null;function B(t,e,r){var o="double"===(r.quoteStyle||e)?'"':"'";return o+t+o}function W(t){return v.call(String(t),/"/g,""")}function C(t){return!("[object Array]"!==$(t)||R&&"object"==typeof t&&R in t)}function L(t){return!("[object RegExp]"!==$(t)||R&&"object"==typeof t&&R in t)}function K(t){if(F)return t&&"object"==typeof t&&t instanceof Symbol;if("symbol"==typeof t)return!0;if(!t||"object"!=typeof t||!D)return!1;try{return D.call(t),!0}catch(t){}return!1}e.exports=function t(e,o,n,l){var p=o||{};if(G(p,"quoteStyle")&&"single"!==p.quoteStyle&&"double"!==p.quoteStyle)throw new TypeError('option "quoteStyle" must be "single" or "double"');if(G(p,"maxStringLength")&&("number"==typeof p.maxStringLength?p.maxStringLength<0&&p.maxStringLength!==1/0:null!==p.maxStringLength))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var b=!G(p,"customInspect")||p.customInspect;if("boolean"!=typeof b&&"symbol"!==b)throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(G(p,"indent")&&null!==p.indent&&"\t"!==p.indent&&!(parseInt(p.indent,10)===p.indent&&p.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(G(p,"numericSeparator")&&"boolean"!=typeof p.numericSeparator)throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var w=p.numericSeparator;if(void 0===e)return"undefined";if(null===e)return"null";if("boolean"==typeof e)return e?"true":"false";if("string"==typeof e)return V(e,p);if("number"==typeof e){if(0===e)return 1/0/e>0?"0":"-0";var A=String(e);return w?_(e,A):A}if("bigint"==typeof e){var P=String(e)+"n";return w?_(e,P):P}var I=void 0===p.depth?5:p.depth;if(void 0===n&&(n=0),n>=I&&I>0&&"object"==typeof e)return C(e)?"[Array]":"[Object]";var T=function(t,e){var r;if("\t"===t.indent)r="\t";else{if(!("number"==typeof t.indent&&t.indent>0))return null;r=O.call(Array(t.indent+1)," ")}return{base:r,prev:O.call(Array(e+1),r)}}(p,n);if(void 0===l)l=[];else if(H(l,e)>=0)return"[Circular]";function q(e,r,o){if(r&&(l=E.call(l)).push(r),o){var i={depth:p.depth};return G(p,"quoteStyle")&&(i.quoteStyle=p.quoteStyle),t(e,i,n+1,l)}return t(e,p,n+1,l)}if("function"==typeof e&&!L(e)){var z=function(t){if(t.name)return t.name;var e=h.call(g.call(t),/^function\s*([\w$]+)/);return e?e[1]:null}(e),tt=Z(e,q);return"[Function"+(z?": "+z:" (anonymous)")+"]"+(tt.length>0?" { "+O.call(tt,", ")+" }":"")}if(K(e)){var et=F?v.call(String(e),/^(Symbol\(.*\))_[^)]*$/,"$1"):D.call(e);return"object"!=typeof e||F?et:Q(et)}if(function(t){return!(!t||"object"!=typeof t)&&("undefined"!=typeof HTMLElement&&t instanceof HTMLElement||"string"==typeof t.nodeName&&"function"==typeof t.getAttribute)}(e)){for(var rt="<"+S.call(String(e.nodeName)),ot=e.attributes||[],nt=0;nt",e.childNodes&&e.childNodes.length&&(rt+="..."),rt+""+S.call(String(e.nodeName))+">"}if(C(e)){if(0===e.length)return"[]";var it=Z(e,q);return T&&!function(t){for(var e=0;e=0)return!1;return!0}(it)?"["+Y(it,T)+"]":"[ "+O.call(it,", ")+" ]"}if(function(t){return!("[object Error]"!==$(t)||R&&"object"==typeof t&&R in t)}(e)){var at=Z(e,q);return"cause"in Error.prototype||!("cause"in e)||k.call(e,"cause")?0===at.length?"["+String(e)+"]":"{ ["+String(e)+"] "+O.call(at,", ")+" }":"{ ["+String(e)+"] "+O.call(j.call("[cause]: "+q(e.cause),at),", ")+" }"}if("object"==typeof e&&b){if(U&&"function"==typeof e[U]&&M)return M(e,{depth:I-n});if("symbol"!==b&&"function"==typeof e.inspect)return e.inspect()}if(function(t){if(!i||!t||"object"!=typeof t)return!1;try{i.call(t);try{c.call(t)}catch(t){return!0}return t instanceof Map}catch(t){}return!1}(e)){var lt=[];return a&&a.call(e,(function(t,r){lt.push(q(r,e,!0)+" => "+q(t,e))})),X("Map",i.call(e),lt,T)}if(function(t){if(!c||!t||"object"!=typeof t)return!1;try{c.call(t);try{i.call(t)}catch(t){return!0}return t instanceof Set}catch(t){}return!1}(e)){var pt=[];return f&&f.call(e,(function(t){pt.push(q(t,e))})),X("Set",c.call(e),pt,T)}if(function(t){if(!u||!t||"object"!=typeof t)return!1;try{u.call(t,u);try{y.call(t,y)}catch(t){return!0}return t instanceof WeakMap}catch(t){}return!1}(e))return J("WeakMap");if(function(t){if(!y||!t||"object"!=typeof t)return!1;try{y.call(t,y);try{u.call(t,u)}catch(t){return!0}return t instanceof WeakSet}catch(t){}return!1}(e))return J("WeakSet");if(function(t){if(!s||!t||"object"!=typeof t)return!1;try{return s.call(t),!0}catch(t){}return!1}(e))return J("WeakRef");if(function(t){return!("[object Number]"!==$(t)||R&&"object"==typeof t&&R in t)}(e))return Q(q(Number(e)));if(function(t){if(!t||"object"!=typeof t||!x)return!1;try{return x.call(t),!0}catch(t){}return!1}(e))return Q(q(x.call(e)));if(function(t){return!("[object Boolean]"!==$(t)||R&&"object"==typeof t&&R in t)}(e))return Q(d.call(e));if(function(t){return!("[object String]"!==$(t)||R&&"object"==typeof t&&R in t)}(e))return Q(q(String(e)));if("undefined"!=typeof window&&e===window)return"{ [object Window] }";if("undefined"!=typeof globalThis&&e===globalThis||void 0!==r&&e===r)return"{ [object globalThis] }";if(!function(t){return!("[object Date]"!==$(t)||R&&"object"==typeof t&&R in t)}(e)&&!L(e)){var ct=Z(e,q),ft=N?N(e)===Object.prototype:e instanceof Object||e.constructor===Object,ut=e instanceof Object?"":"null prototype",yt=!ft&&R&&Object(e)===e&&R in e?m.call($(e),8,-1):ut?"Object":"",st=(ft||"function"!=typeof e.constructor?"":e.constructor.name?e.constructor.name+" ":"")+(yt||ut?"["+O.call(j.call([],yt||[],ut||[]),": ")+"] ":"");return 0===ct.length?st+"{}":T?st+"{"+Y(ct,T)+"}":st+"{ "+O.call(ct,", ")+" }"}return String(e)};var q=Object.prototype.hasOwnProperty||function(t){return t in this};function G(t,e){return q.call(t,e)}function $(t){return b.call(t)}function H(t,e){if(t.indexOf)return t.indexOf(e);for(var r=0,o=t.length;re.maxStringLength){var r=t.length-e.maxStringLength,o="... "+r+" more character"+(r>1?"s":"");return V(m.call(t,0,e.maxStringLength),e)+o}return B(v.call(v.call(t,/(['\\])/g,"\\$1"),/[\x00-\x1f]/g,z),"single",e)}function z(t){var e=t.charCodeAt(0),r={8:"b",9:"t",10:"n",12:"f",13:"r"}[e];return r?"\\"+r:"\\x"+(e<16?"0":"")+w.call(e.toString(16))}function Q(t){return"Object("+t+")"}function J(t){return t+" { ? }"}function X(t,e,r,o){return t+" ("+e+") {"+(o?Y(r,o):O.call(r,", "))+"}"}function Y(t,e){if(0===t.length)return"";var r="\n"+e.prev+e.base;return r+O.call(t,","+r)+"\n"+e.prev}function Z(t,e){var r=C(t),o=[];if(r){o.length=t.length;for(var n=0;n
-
-
-
-
- 关于我们 - DooTask
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 关于我们的公司
-
-
- 专注于网络安全领域,我们致力于为用户提供全方位的网络安全解决方案。
-
-
-
-
- 2020
-
-
- 公司成立
-
-
-
-
-
- 10
-
- +
-
-
- 团队经验
-
-
-
-
-
- 99
-
- %
-
-
- 客户满意
-
-
-
-
-
-
-
-
-
-
-
-
- 公司介绍
-
-
-
-
-
- 自成立以来,广西海豚有海信息科技有限公司(HITOSEA)一直专注于网络安全领域前沿技术的创新,提供包括边界安全、云安全、数据安全、内网安全在内的网络安全产品和服务,致力于为用户提供更全面、更智能、零干扰的网络安全解决方案,是一家拥有年轻活力的技术公司。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 支持
-
-
-
-
-
- 下载中心
-
-
- 帮助中心
-
-
- 隐私政策
-
-
- API 文档
-
-
-
-
-
-
-
-
- 主题
-
-
-
-
-
- Light
-
-
- Dark
-
-
-
-
- 语言
-
-
-
-
-
- 简体中文
-
-
- English
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/public/site/zh/ad.html b/public/site/zh/ad.html
deleted file mode 100644
index f4e1fd4bb..000000000
--- a/public/site/zh/ad.html
+++ /dev/null
@@ -1,872 +0,0 @@
-
-
-
-
-
- DooTask - 最受欢迎的开源项目协助工具
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 如需购买请扫码添加微信客服专员
-
-
-
-
-
-
-
-
-
- 我们使用第一方 cookie
- 来改善您在我们网站上的浏览体验、分析我们的网站流量并了解我们的访问者来自哪里。如果您选择退出,则只会使用绝对必要的
- cookie。
我们的 cookie 政策
-
-
-
- 我拒绝
-
-
- 允许cookies
-
-
-
-
-
-
-
-
-
-
-
- DooTask
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ,轻量级
-
- 任务管理工具
-
-
-
- 助力团队高效推进项目,让工作更简单。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 支持
-
-
-
-
-
- 下载中心
-
-
- 帮助中心
-
-
- 隐私政策
-
-
- API 文档
-
-
-
-
-
-
-
-
- 主题
-
-
-
-
-
- Light
-
-
- Dark
-
-
-
-
- 语言
-
-
-
-
-
- 简体中文
-
-
- English
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 免费版
-
-
-
- 0
-
- /月
-
-
-
- 最多3人
-
-
-
-
-
-
-
最受欢迎
-
- 10人专业版
-
-
-
- ¥5,800
-
-
-
-
- ¥8,800
-
-
-
-
-
-
-
热销
-
- 无限专业版
-
-
-
- ¥16,800
-
-
-
-
- ¥18,888
-
-
-
-
-
-
-
-
-
-
-
- 为何选择DooTask?
-
-
-
-
-
-
-
-
-
-
-
- 项目管理
-
-
- 支持多种项目管理模式,如敏捷开发、水晶计划、看板等,适用于各种规模和类型的项目管理。用户可以使用DooTask里的项目管理工具,例如任务分配、进度跟踪、资源分配等来管理整个项目。
-
-
-
-
-
-
-
-
-
- 团队协作
-
-
- DooTask的丰富实用的工具可以方便团队成员之间的沟通和协作,提高工作效率。例如,团队成员可以使用DooTask里的文档协作工具、在线思维导图、流程图等工具进行协作。
-
-
-
-
-
-
-
-
-
- 数据安全保护
-
-
- DooTask在消息功能上使用非对称加密技术,确保用户的信息得到最大程度的保护。此外,它还提供了强大的权限管理系统,能够根据不同用户的角色和职责,灵活地设置他们在项目管理中的权限和操作范围。
-
-
-
-
-
-
-
-
-
- 自由定制
-
-
- DooTask是一款完全开源的工具,用户可以自由修改和定制,避免了商业软件订阅费用带来的额外成本。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/zh/cookie.html b/public/site/zh/cookie.html
deleted file mode 100644
index 06164e673..000000000
--- a/public/site/zh/cookie.html
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
-
-
- Cookie Policy - DooTask
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/zh/cookie.md b/public/site/zh/cookie.md
deleted file mode 100644
index 9d4ccecd4..000000000
--- a/public/site/zh/cookie.md
+++ /dev/null
@@ -1,80 +0,0 @@
-# Cookie 政策
-
-最后更新时间:2023 年 8 月 10 日
-
-本 Cookie 政策解释了什么是 Cookie 以及我们如何使用它们。您应该阅读本政策,以便您了解我们使用什么类型的 Cookie,或者我们使用 Cookie 收集的信息以及如何使用该信息。本 Cookie 政策是在[Cookie 政策生成器](https://www.termsfeed.com/cookies-policy-generator/)的帮助下创建的。
-
-Cookie 通常不包含任何可识别用户个人身份的信息,但我们存储的有关您的个人信息可能与 Cookie 中存储和获取的信息相关联。有关我们如何使用、存储和保证您的个人数据安全的更多信息,请参阅我们的隐私政策。
-
-我们不会在我们使用的 Cookie 中存储敏感的个人信息,例如邮寄地址、帐户密码等。
-
-# 解释和定义
-
-## 解释
-
-首字母大写的单词具有在以下条件下定义的含义。下列定义无论以单数还是复数形式出现,均具有相同的含义。
-
-## 定义
-
-就本 Cookie 政策而言:
-
-- __公司__ (在本Cookies政策中称为"公司"、“我们”、“我们”或“我们的”)是指广西海豚有海信息科技有限公司,地址:中国广西壮族自治区南宁市良庆区五象航洋城 1 号楼 14 层 1411 号。
-- __Cookies__ 是指网站放置在您的计算机、移动设备或任何其他设备上的小文件,其中包含您在该网站上的浏览历史记录以及其多种用途的详细信息。
-- __网站__ 指的是 DooTask,可从 [ https://www.dootask.com/]( https://www.dootask.com/)访问。
-- __您__ 是指访问或使用本网站的个人,或代表该个人访问或使用本网站的公司或任何法律实体(如果适用)。
-
-# Cookie 的使用
-
-## 我们使用的 Cookie 类型
-
-Cookie 可以是“持久”Cookie 或“会话”Cookie。 当您离线时,持久 Cookie 会保留在您的个人计算机或移动设备上,而会话 Cookie 会在您关闭网络浏览器后立即删除。
-
-我们出于以下目的使用会话 Cookie 和持久 Cookie:
-
-- __必要/必需的 Cookie__
-
- 类型:会话 Cookie
-
- 管理机构:我们
-
- 目的:这些 Cookie 对于向您提供通过网站提供的服务以及使您能够使用网站的某些功能至关重要。它们有助于验证用户身份并防止欺诈性使用用户帐户。如果没有这些 Cookie,则无法提供您所请求的服务,我们仅使用这些 Cookie 来为您提供这些服务。
-
-- __功能性 Cookie__
-
- 类型:持久性 Cookie
-
- 管理机构:我们
-
- 目的:这些 Cookie 使我们能够记住您在使用本网站时所做的选择,例如记住您的登录详细信息或语言偏好。这些 Cookie 的目的是为您提供更加个性化的体验,并避免您每次使用网站时都必须重新输入您的偏好设置。
-
-
-
-
-## 您对 Cookie 的选择
-
-如果您希望避免在网站上使用 Cookie,首先您必须在浏览器中禁用 Cookie,然后删除浏览器中保存的与本网站关联的 Cookie。您可以随时使用此选项来阻止使用 Cookie。
-
-如果您不接受我们的 Cookie,您在使用本网站时可能会遇到一些不便,并且某些功能可能无法正常运行。
-
-如果您想删除 Cookie 或指示您的网络浏览器删除或拒绝 Cookie,请访问您的网络浏览器的帮助页面。
-
-- 对于 Chrome 网络浏览器,请访问 Google 的此页面:[https://support.google.com/accounts/answer/32050](https://support.google.com/accounts/answer/32050)
-
-- 对于 Internet Explorer Web 浏览器,请访问 Microsoft 的此页面:[http://support.microsoft.com/kb/278835](http://support.microsoft.com/kb/278835)
-
-- 对于 Firefox 网络浏览器,请从 Mozilla 访问此页面:[https://support.mozilla.org/en-US/kb/delete-cookies-remove-info-websites-stored](https://support.mozilla.org/en-US/kb/delete-cookies-remove-info-websites-stored)
-
-- 对于 Safari 网络浏览器,请访问 Apple 的此页面:[https://support.apple.com/guide/safari/manage-cookies-and-website-data-sfri11471/mac](https://support.apple.com/guide/safari/manage-cookies-and-website-data-sfri11471/mac)
-
-对于任何其他网络浏览器,请访问您的网络浏览器的官方网页。
-
-## 有关 Cookie 的更多信息
-
-您可以在此处了解有关 Cookie 的更多信息:[TermsFeed 提供的有关 Cookie 的所有信息](https://www.termsfeed.com/blog/cookies/)。
-
-## 联系我们
-
-如果您对此 Cookie 政策有任何疑问,您可以联系我们:
-
-
-- 通过电子邮件:service@hitosea.com
diff --git a/public/site/zh/download.html b/public/site/zh/download.html
deleted file mode 100644
index 71b969411..000000000
--- a/public/site/zh/download.html
+++ /dev/null
@@ -1,648 +0,0 @@
-
-
-
-
-
- 下载中心 - DooTask
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 下载DooTask客户端
-
-
- 同时支持iOS、Android、macOS、Windows版本
-
-
-
其他版本
-
-
-
-
-
-
-
-
-
-
-
-
-
- 支持
-
-
-
-
-
- 下载中心
-
-
- 帮助中心
-
-
- 隐私政策
-
-
- API 文档
-
-
-
-
-
-
-
-
- 主题
-
-
-
-
-
- Light
-
-
- Dark
-
-
-
-
- 语言
-
-
-
-
-
- 简体中文
-
-
- English
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/public/site/zh/help.html b/public/site/zh/help.html
deleted file mode 100644
index ae89c5bc9..000000000
--- a/public/site/zh/help.html
+++ /dev/null
@@ -1,1357 +0,0 @@
-
-
-
-
-
- 帮助中心 - DooTask
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 支持
-
-
-
-
-
- 下载中心
-
-
- 帮助中心
-
-
- 隐私政策
-
-
- API 文档
-
-
-
-
-
-
-
-
- 主题
-
-
-
-
-
- Light
-
-
- Dark
-
-
-
-
- 语言
-
-
-
-
-
- 简体中文
-
-
- English
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/public/site/zh/index.html b/public/site/zh/index.html
deleted file mode 100644
index 1918eb673..000000000
--- a/public/site/zh/index.html
+++ /dev/null
@@ -1,1016 +0,0 @@
-
-
-
-
-
- DooTask - 最受欢迎的开源项目协助工具
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 我们使用第一方 cookie
- 来改善您在我们网站上的浏览体验、分析我们的网站流量并了解我们的访问者来自哪里。如果您选择退出,则只会使用绝对必要的
- cookie。
我们的 cookie 政策
-
-
-
- 我拒绝
-
-
- 允许cookies
-
-
-
-
-
-
-
-
-
-
-
- DooTask
-
-
-
-
-
,轻量级任务管理工具
-
-
- DooTask是一款轻量级的开源在线项目任务管理工具,提供各类文档协作工具、在线思维导图、在线流程图、项目管理、任务分发、即时IM,文件管理等工具。助力团队高效推进项目,让工作更简单。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 支持
-
-
-
-
-
- 下载中心
-
-
- 帮助中心
-
-
- 隐私政策
-
-
- API 文档
-
-
-
-
-
-
-
-
- 主题
-
-
-
-
-
- Light
-
-
- Dark
-
-
-
-
- 语言
-
-
-
-
-
- 简体中文
-
-
- English
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 受到许多公司的信任
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
使用场景
-
-
-
-
-
-
- 项目管理
-
-
-
-
-
-
- 项目管理
-
-
-
-
支持多种项目管理模式,适用于各种规模和类型的项目管理,实时掌控项目进度,优化工作流程。
-
-
-
-
-
-
- 团队协作
-
-
-
-
-
-
- 团队协作
-
-
-
-
提供丰富实用的在线文档协作工具,方便团队成员之间的沟通和协作,提高工作效率。
-
-
-
-
-
-
- 任务协同
-
-
-
-
-
-
- 任务协同
-
-
-
-
以任务化的方式让团队的工作井井有条,保证团队协作的高效性和任务分工的明确性。
-
-
-
-
-
-
- 绩效衡量
-
-
-
-
-
-
- 绩效衡量
-
-
-
-
建立可量化的评价标准,数据化呈现工作成效,凝聚核心人才。
-
-
-
-
-
-
- 沟通汇报
-
-
-
-
-
-
- 沟通汇报
-
-
-
-
基于工作场景的即时通讯及共享,实现更好的团队沟通。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 为什么选择我们
-
-
-
-
-
-
-
- 01
-
-
- 高效便捷的团队沟通工具
-
-
- 针对项目和任务建立群组,工作问题可及时沟通,促进团队快速协作,提高团队工作效率。
-
-
-
-
- 02
-
-
- 强大易用的协同创作云文档
-
-
- 汇集文档、电子表格、思维笔记等多种在线工具,汇聚企业知识资源于一处,支持多人实时协同编辑,让团队协作更便捷。
-
-
-
-
-
-
- 03
-
-
- 便捷多样的项目管理模版
-
-
- 模版满足多种团队协作场景,同时支持自定义模版,满足团队个性化场景管理需求,可直观的查看项目的进展情况,团队协作更方便。
-
-
-
-
- 04
-
-
- 清晰直观的任务日历
-
-
- 通过灵活的任务日历,轻松安排每一天的日程,把任务拆解到每天,让工作目标更清晰,时间分配更合理。
-
-
-
-
- 05
-
-
- 支持多平台应用
-
-
- 多平台应用支持,随时随地追踪项目进度,同时让你在工作中每一个步骤都能拥有更高效愉悦的体验。
-
-
-
-
-
-
- 为什么选择我们
-
-
-
-
-
- 01
-
-
- 高效便捷的团队沟通工具
-
-
- 针对项目和任务建立群组,工作问题可及时沟通,促进团队快速协作,提高团队工作效率。
-
-
-
-
- 02
-
-
- 强大易用的协同创作云文档
-
-
- 汇集文档、电子表格、思维笔记等多种在线工具,汇聚企业知识资源于一处,支持多人实时协同编辑,让团队协作更便捷。
-
-
-
-
- 03
-
-
- 便捷多样的项目管理模版
-
-
- 模版满足多种团队协作场景,同时支持自定义模版,满足团队个性化场景管理需求,可直观的查看项目的进展情况,团队协作更方便。
-
-
-
-
- 04
-
-
- 清晰直观的任务日历
-
-
- 通过灵活的任务日历,轻松安排每一天的日程,把任务拆解到每天,让工作目标更清晰,时间分配更合理。
-
-
-
-
- 05
-
-
- 支持多平台应用
-
-
- 多平台应用支持,随时随地追踪项目进度,同时让你在工作中每一个步骤都能拥有更高效愉悦的体验。
-
-
-
-
-
-
-
-
-
-
-
-
- 开启您的DooTask团队协作
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/public/site/zh/log.html b/public/site/zh/log.html
deleted file mode 100644
index ad47f09dd..000000000
--- a/public/site/zh/log.html
+++ /dev/null
@@ -1,699 +0,0 @@
-
-
-
-
-
- 更新日志 - DooTask
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 支持
-
-
-
-
-
- 下载中心
-
-
- 帮助中心
-
-
- 隐私政策
-
-
- API 文档
-
-
-
-
-
-
-
-
- 主题
-
-
-
-
-
- Light
-
-
- Dark
-
-
-
-
- 语言
-
-
-
-
-
- 简体中文
-
-
- English
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/public/site/zh/price.html b/public/site/zh/price.html
deleted file mode 100644
index 6d37df786..000000000
--- a/public/site/zh/price.html
+++ /dev/null
@@ -1,1977 +0,0 @@
-
-
-
-
-
- 服务价格 - DooTask
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
如果有任何问题,欢迎使用以下方式与我们联系。
-
座机电话:0771-3164099
-
邮箱地址:service@hitosea.com
-
-
-
-
-
-
-
-
-
-
-
- 选择你的方案
-
-
- 根据你的企业的规模和需求,有不同的版本可供选择
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 支持
-
-
-
-
-
- 下载中心
-
-
- 帮助中心
-
-
- 隐私政策
-
-
- API 文档
-
-
-
-
-
-
-
-
- 主题
-
-
-
-
-
- Light
-
-
- Dark
-
-
-
-
- 语言
-
-
-
-
-
- 简体中文
-
-
- English
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 对比所有计划
-
-
- 该产品支持各种应用场景,帮助团队协作
-
-
-
-
-
- 普通版
-
-
-
-
-
- 系统使用
-
-
-
-
- 用户数量
-
-
- 无限制
-
-
-
-
- 项目数量
-
-
- 无限制
-
-
-
-
- 任务数量
-
-
- 无限制
-
-
-
-
- 离线部署
-
-
- 支持
-
-
-
-
-
-
- 任务协作
-
-
-
-
- 多视图展示
-
-
-
-
-
- 自定义栏目
-
-
-
-
-
- 可见性设置
-
-
-
-
-
- 重复周期
-
-
-
-
-
-
-
- 项目管理
-
-
-
-
- 项目进度
-
-
-
-
-
- 项目模板
-
-
-
-
-
- 甘特图
-
-
-
-
-
-
-
- 应用
-
-
-
-
- 审批中心
-
-
-
-
-
- OKR管理
-
-
-
-
-
- AI机器人
-
-
-
-
-
- 会议
-
-
-
-
-
- OKR结果分析
-
-
-
-
-
- LDAP
-
-
-
-
-
- 邮件
-
-
-
-
-
- APP推送
-
-
-
-
-
- 团队管理
-
-
-
-
-
-
-
- 聊天
-
-
-
-
- @功能
-
-
-
-
-
- 关联任务
-
-
-
-
-
- 表情
-
-
-
-
-
- 消息分类
-
-
-
-
-
- 消息右键功能
-
-
-
-
-
- 消息免打扰
-
-
-
-
-
- 颜色标注
-
-
-
-
-
-
- ¥0
-
- /月
-
-
-
-
-
- 立即部署
-
-
-
-
-
-
-
-
- 专业版
-
-
-
-
-
- 系统使用
-
-
-
-
- 用户数量
-
-
- ≤3
-
-
-
-
- 项目数量
-
-
- 无限制
-
-
-
-
- 任务数量
-
-
- 无限制
-
-
-
-
- 离线部署
-
-
- 支持
-
-
-
-
-
-
- 任务协作
-
-
-
-
- 多视图展示
-
-
-
-
-
- 自定义栏目
-
-
-
-
-
- 可见性设置
-
-
-
-
-
- 重复周期
-
-
-
-
-
-
-
- 项目管理
-
-
-
-
- 项目进度
-
-
-
-
-
- 项目模板
-
-
-
-
-
- 甘特图
-
-
-
-
-
-
-
- 应用
-
-
-
-
- 审批中心
-
-
-
-
-
- OKR管理
-
-
-
-
-
- AI机器人
-
-
-
-
-
- 会议
-
-
-
-
-
- OKR结果分析
-
-
-
-
-
- LDAP
-
-
-
-
-
- 邮件
-
-
-
-
-
- APP推送
-
-
-
-
-
- 团队管理
-
-
-
-
-
-
-
- 聊天
-
-
-
-
- @功能
-
-
-
-
-
- 关联任务
-
-
-
-
-
- 表情
-
-
-
-
-
- 消息分类
-
-
-
-
-
- 消息右键功能
-
-
-
-
-
- 消息免打扰
-
-
-
-
-
- 颜色标注
-
-
-
-
-
-
- ¥0
-
- /月
-
-
-
-
-
- 立即部署
-
-
-
-
-
-
-
-
- 专业版
-
-
-
-
-
- 系统使用
-
-
-
-
- 用户数量
-
-
- 无限制
-
-
-
-
- 项目数量
-
-
- 无限制
-
-
-
-
- 任务数量
-
-
- 无限制
-
-
-
-
- 离线部署
-
-
- 官方支持
-
-
-
-
-
-
- 任务协作
-
-
-
-
- 多视图展示
-
-
-
-
-
- 自定义栏目
-
-
-
-
-
- 可见性设置
-
-
-
-
-
- 重复周期
-
-
-
-
-
-
-
- 项目管理
-
-
-
-
- 项目进度
-
-
-
-
-
- 项目模板
-
-
-
-
-
- 甘特图
-
-
-
-
-
-
-
- 应用
-
-
-
-
- 审批中心
-
-
-
-
-
- OKR管理
-
-
-
-
-
- AI机器人
-
-
-
-
-
- 会议
-
-
-
-
-
- OKR结果分析
-
-
-
-
-
- LDAP
-
-
-
-
-
- 邮件
-
-
-
-
-
- APP推送
-
-
-
-
-
- 团队管理
-
-
-
-
-
-
-
- 聊天
-
-
-
-
- @功能
-
-
-
-
-
- 关联任务
-
-
-
-
-
- 表情
-
-
-
-
-
- 消息分类
-
-
-
-
-
- 消息右键功能
-
-
-
-
-
- 消息免打扰
-
-
-
-
-
- 颜色标注
-
-
-
-
-
-
- ¥18,888
-
- /永久
-
-
-
-
- 联系我们
-
-
-
-
-
-
-
- 定制版
-
-
-
-
-
- 系统使用
-
-
-
-
- 用户数量
-
-
- 可定制
-
-
-
-
- 项目数量
-
-
- 无限制
-
-
-
-
- 任务数量
-
-
- 无限制
-
-
-
-
- 离线部署
-
-
- 官方支持
-
-
-
-
-
-
- 任务协作
-
-
-
-
- 多视图展示
-
-
-
-
-
- 自定义栏目
-
-
-
-
-
- 可见性设置
-
-
-
-
-
- 重复周期
-
-
-
-
-
-
-
- 项目管理
-
-
-
-
- 项目进度
-
-
-
-
-
- 项目模板
-
-
-
-
-
- 甘特图
-
-
-
-
-
-
-
- 应用
-
-
-
-
- 审批中心
-
-
-
-
-
- OKR管理
-
-
-
-
-
- AI机器人
-
-
-
-
-
- 会议
-
-
-
-
-
- OKR结果分析
-
-
-
-
-
- LDAP
-
-
-
-
-
- 邮件
-
-
-
-
-
- APP推送
-
-
-
-
-
- 团队管理
-
-
-
-
-
-
-
- 聊天
-
-
-
-
- @功能
-
-
-
-
-
- 关联任务
-
-
-
-
-
- 表情
-
-
-
-
-
- 消息分类
-
-
-
-
-
- 消息右键功能
-
-
-
-
-
- 消息免打扰
-
-
-
-
-
- 颜色标注
-
-
-
-
-
-
- 定制
-
-
-
-
-
-
- 定制咨询
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/public/site/zh/privacy.html b/public/site/zh/privacy.html
deleted file mode 100644
index d8e1fd548..000000000
--- a/public/site/zh/privacy.html
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
-
-
- 隐私政策 - DooTask
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/zh/privacy.md b/public/site/zh/privacy.md
deleted file mode 100644
index 228924dd6..000000000
--- a/public/site/zh/privacy.md
+++ /dev/null
@@ -1,189 +0,0 @@
-# 隐私政策
-
-最后更新 2023 年 7 月 21 日
-
-本隐私政策描述了我们在您使用本服务时收集、使用和披露您的信息的政策和程序,并向您介绍了您的隐私权以及法律如何保护您。
-
-我们使用您的个人数据来提供和改进服务。使用本服务即表示您同意我们按照本隐私政策收集和使用信息。本隐私政策在[隐私政策生成器](https://www.termsfeed.com/privacy-policy-generator/)的帮助下创建。
-
-# 解释和定义
-
-## 释义
-
-首字母大写的词语在以下情况下具有定义的含义。以下定义具有相同含义,无论其为单数还是复数。
-
-## 定义
-
-在本隐私政策中:
-
-- 账户:是指为您访问我们的服务或我们服务的部分内容而创建的唯一账户。
-- 关联方:指控制一方、受一方控制或与一方受共同控制的实体,其中 "控制 "系指拥有 50%或 50%以上有权投票选举董事或其他管理权的股份、股权或其他证券。
-- 公司:(在本协议中称为 "本公司"、"我们"、"我们的 "或 "我们的")是指广西海豚有海信息科技公司,地址为中国广西壮族自治区南宁市良庆区五象航洋城 1 号楼 14 层 1411 号。
-- Cookies:是网站放置在您的计算机、移动设备或任何其他设备上的小文件,其中包含您在该网站上的详细浏览记录及其他多种用途。
-- 国家:是指中国
-- 设备:是指可以访问本服务的任何设备,如计算机、手机或数字平板电脑。
-- 个人数据:是指与已识别或可识别的个人有关的任何信息。
-- 服务:系指本网站。
-- 服务提供商:指代表本公司处理数据的任何自然人或法人。它指公司雇用的第三方公司或个人,以促进服务、代表公司提供服务、执行与服务有关的服务或协助公司分析服务的使用情况。
-- 使用数据:系指自动收集的数据,这些数据可以是使用本服务时产生的,也可以是本服务基础设施本身产生的(例如,访问页面的持续时间)。
-- 网站:是指 DooTask,可从 [https://www.dootask.com/](https://www.dootask.com/)访问。
-- 您:指访问或使用本服务的个人,或该个人访问或使用本服务所代表的公司或其他法人实体(如适用)。
-
-
-# 收集和使用您的个人数据
-
-## 收集的数据类型
-
-### 个人数据
-
-在使用我们的服务时,我们可能会要求您向我们提供某些可用于联系或识别您身份的个人身份信息。个人身份信息可能包括但不限于
-
-- 电话号码
-- 使用数据
-
-#### 使用数据
-
-使用数据是在使用服务时自动收集的。
-
-使用数据可能包括以下信息:您设备的互联网协议地址(如 IP 地址)、浏览器类型、浏览器版本、您访问的服务页面、访问时间和日期、在这些页面上花费的时间、唯一设备标识符和其他诊断数据。
-
-当您使用或通过移动设备访问本服务时,我们可能会自动收集某些信息,包括但不限于您使用的移动设备类型、您的移动设备唯一 ID、您的移动设备 IP 地址、您的移动操作系统、您使用的移动互联网浏览器类型、唯一设备标识符和其他诊断数据。
-
-当您访问我们的服务时,或者当您通过移动设备访问服务时,我们也会收集您的浏览器发送的信息。
-
-
-### 跟踪技术和 Cookie
-
-我们使用 Cookie 和类似的跟踪技术来跟踪我们服务上的活动并存储某些信息。跟踪技术包括信标、标签和脚本,用于收集和跟踪信息以及改进和分析我们的服务。我们使用的技术可能包括
-
-- Cookie 或浏览器 Cookie 是放置在您设备上的一个小文件。您可以指示您的浏览器拒绝所有 Cookie 或在发送 Cookie 时进行提示。但是,如果您不接受 Cookie,您可能无法使用我们服务的某些部分。除非您已将浏览器设置调整为拒绝 Cookie,否则我们的服务可能会使用 Cookie。
-- 本公司服务的某些部分和本公司的电子邮件可能包含称为网站信标(也称为透明 gifs、像素标签和单像素 gifs)的小型电子文件,这些电子文件允许本公司对访问过这些页面或打开过电子邮件的用户进行计数,并用于其他相关的网站统计(例如,记录特定部分的受欢迎程度以及验证系统和服务器的完整性)。
-
-Cookie 可以是 "持久 "或 "会话 "Cookie。永久 Cookie 会在您离线后保留在您的个人电脑或移动设备上,而 Session Cookie 会在您关闭网络浏览器后立即删除。您可以在[TermsFeed 网站](https://www.termsfeed.com/blog/cookies/#What_Are_Cookies) 文章中了解有关 Cookie 的更多信息。
-
-我们使用会话 Cookie 和永久 Cookie 的目的如下:
-
-- __必要/基本 Cookie__
-
- 类型: 会话 Cookie
-
- 管理者: 我们
-
- 目的:这些 Cookies 对于通过本网站向您提供服务以及使您能够使用本网站的某些功能至关重要。它们有助于验证用户身份,防止用户账户被冒用。如果没有这些 Cookies,您所要求的服务将无法提供,而我们使用这些 Cookies 只是为了向您提供这些服务。
-- __Cookies政策/通知接受Cookies__
-
- 类型: 持久 Cookie
-
- 管理者 我们
-
- 目的:这些 Cookie 可识别用户是否接受本网站使用 Cookie。
-- 功能 Cookies
-
- 类型 持久 Cookie
-
- 管理者: 我们
-
- 目的:这些 Cookies 允许我们记住您在使用本网站时所作的选择,例如记住您的登录信息或语言偏好。这些 Cookies 的目的是为您提供更加个性化的体验,避免您每次使用网站时都要重新输入您的偏好。
-
-
-
-有关我们使用的 Cookie 以及您对 Cookie 的选择的更多信息,请访问我们的 Cookie 政策或隐私政策中的 Cookie 部分。
-
-
-## 您个人资料的使用
-
-公司可将个人数据用于以下目的:
-
-- 提供并维护本公司的服务,包括监控本公司服务的使用情况。
-- 管理您的帐户:管理您作为服务用户的注册。您提供的个人数据可以让您作为注册用户使用本服务的不同功能。
-- 履行合同:您通过本服务购买的产品、项目或服务的购买合同或与我们签订的任何其他合同的制定、遵守和履行。
-- 与您联系:在必要或合理的情况下,通过电子邮件、电话、短信或其他同等形式的电子通信(如移动应用程序的推送通知),就与功能、产品或合同服务(包括安全更新)有关的更新或信息通信与您联系。
-- 向您提供有关我们提供的与您已购买或询问的产品、服务和活动类似的其他产品、服务和活动的新闻、特别优惠和一般信息,除非您选择不接收此类信息。
-- 管理您的请求: 处理和管理您向我们提出的请求。
-
-- 用于业务转让:我们可能会使用您的信息来评估或进行合并、剥离、重组、改组、解散或以其他方式出售或转让我们的部分或全部资产,无论是作为持续经营还是作为破产、清算或类似程序的一部分,在转让的资产中包括我们持有的关于我们服务用户的个人数据。
-- 用于其他目的: 我们可能会将您的信息用于其他目的,例如数据分析、确定使用趋势、确定我们促销活动的有效性,以及评估和改进我们的服务、产品、服务、营销和您的体验。
-
-在以下情况下,我们可能会共享您的个人信息:
-
-- 与服务提供商共享: 我们可能会与服务提供商共享您的个人信息,以监控和分析我们服务的使用情况,并与您联系。
-- 业务转让:我们可能会在任何合并、出售公司资产、融资或向另一家公司收购我们全部或部分业务的过程中或谈判期间共享或转让您的个人信息。
-- 与关联公司:我们可能会与我们的关联公司共享您的信息,在这种情况下,我们将要求这些关联公司遵守本隐私政策。关联公司包括我们的母公司以及我们控制的或与我们处于共同控制下的任何其他子公司、合资伙伴或其他公司。
-- 与业务合作伙伴: 我们可能会与我们的业务合作伙伴共享您的信息,以便向您提供某些产品、服务或促销活动。
-- 与其他用户:当您在公共区域与其他用户共享个人信息或以其他方式进行交互时,这些信息可能会被所有用户查看,并可能被公开传播到外部。
-- 经您同意: 在征得您同意的情况下,我们可以出于任何其他目的披露您的个人信息。
-
-## 保留您的个人资料
-
-本公司保留您的个人资料的期限仅限于本隐私政策规定的目的所需的时间。我们将在必要的范围内保留和使用您的个人数据,以履行我们的法律义务(例如,如果我们被要求保留您的数据以遵守适用法律)、解决争议以及执行我们的法律协议和政策。
-
-本公司还将保留使用数据用于内部分析。使用数据的保留期限一般较短,除非这些数据用于加强安全或改进我们服务的功能,或者我们有法律义务将这些数据保留更长时间。
-
-## 您个人数据的传输
-
-您的信息(包括个人数据)将在本公司的运营办事处以及参与处理的各方所在的任何其他地方进行处理。这意味着这些信息可能会被转移到您所在州、省、国家或其他政府管辖区以外的计算机上,并在这些计算机上进行维护,而这些地方的数据保护法律可能与您所在的管辖区不同。
-
-您同意本隐私政策并提交此类信息,即表示您同意该转移。
-
-本公司将采取一切合理必要的措施,确保您的数据得到安全处理,并遵守本隐私政策,除非有适当的控制措施(包括您的数据和其他个人信息的安全),否则不会将您的个人数据传输到任何组织或国家。
-
-##删除您的个人数据
-
-您有权删除或要求我们协助删除我们收集到的关于您的个人数据。
-
-我们的服务可能会让您能够在服务内删除有关您的某些信息。
-
-您可以随时登录您的账户(如果您有账户),访问允许您管理个人信息的账户设置部分,更新、修改或删除您的信息。您也可以联系我们,要求访问、修改或删除您提供给我们的任何个人信息。
-
-但请注意,当我们有法律义务或合法依据时,我们可能需要保留某些信息。
-
-## 您个人信息的披露
-
-### 商业交易
-
-如果公司涉及合并、收购或资产出售,您的个人数据可能会被转移。在您的个人数据被转移并受不同的隐私政策约束之前,我们将发出通知。
-
-#### 执法
-
-在某些情况下,如果法律要求或公共当局(如法院或政府机构)的有效要求,本公司可能需要披露您的个人资料。
-
-### 其他法律要求
-
-公司可能会在真诚相信有必要披露您的个人数据的情况下披露您的个人数据,以便
-
-- 遵守法律义务
-- 保护和捍卫公司的权利或财产
-- 防止或调查与服务有关的可能不当行为
-- 保护服务用户或公众的人身安全
-- 防止承担法律责任
-
-## 您个人数据的安全
-
-我们非常重视您的个人数据的安全,但请记住,任何互联网传输方式或电子存储方式都不是百分之百安全的。虽然我们努力使用商业上可接受的方法来保护您的个人数据,但我们不能保证其绝对安全。
-
-
-# 儿童隐私
-
-我们的服务不针对 13 岁以下的任何人。如果您是家长或监护人,并意识到您的孩子向我们提供了个人数据,请联系我们。如果我们发现我们在未核实父母同意的情况下收集了 13 岁以下任何人的个人数据,我们会采取措施从我们的服务器上删除该信息。
-
-如果我们需要依赖同意作为处理您的信息的法律依据,而您所在的国家/地区要求获得父母的同意,我们可能会在收集和使用该信息之前要求获得您父母的同意。
-
-
-#与其他网站的链接
-
-我们的服务可能包含指向非我们运营的其他网站的链接。如果您点击第三方链接,您将被引导至该第三方网站。我们强烈建议您查看您访问的每个网站的隐私政策。
-
-对于任何第三方网站或服务的内容、隐私政策或做法,我们无法控制,也不承担任何责任。
-
-# 本隐私政策的变更
-
-我们可能会不时更新我们的隐私政策。如有任何变更,我们将通过在本页面上发布新的隐私政策来通知您。
-
-在变更生效之前,我们将通过电子邮件和/或我们服务上的显著通知告知您,并更新本隐私政策顶部的 "最后更新 "日期。
-
-建议您定期查看本隐私政策是否有任何变更。本隐私政策的变更在本页面发布时生效。
-
-# 联系我们
-
-如果您对本隐私政策有任何疑问,可以联系我们:
-- 电话号码:0771-3164099
diff --git a/public/site/zh/product.html b/public/site/zh/product.html
deleted file mode 100644
index 1cdf861f0..000000000
--- a/public/site/zh/product.html
+++ /dev/null
@@ -1,1092 +0,0 @@
-
-
-
-
-
- 产品 - DooTask
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 一个产品,多种强大的工具
-
-
- 该产品汇集了各种文档协作、在线思维导图、在线流程图、项目管理、任务分配、即时IM、文档管理等功能。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 协同创作
-
-
-
-
- 即时沟通
-
-
-
-
- 项目管理
-
-
-
-
- 任务仪表盘
-
-
-
-
- 任务日历
-
-
-
-
- 机器人助手
-
-
-
-
- 团队管理
-
-
-
-
- 端到端加密
-
-
-
-
- 多平台应用
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 01
-
-
- 团队协作无界限
-
-
- 汇集文档、电子表格、思维笔记等多种在线工具,汇聚企业知识资源于一处,支持多人实时协同编辑,让团队协作更便捷。
-
-
-
-
- 02
-
-
- 不再是文件孤岛
-
-
- 具有多种文件格式支持,团队内部文件共享,可控制的文件权限、历史版本追踪等,方便团队成员之间进行文件协作和讨论,提高工作效率。
-
-
-
-
-
-
-
-
-
-
-
-
- 01
-
-
- 聚焦沟通,高效交流
-
-
- 针对项目和任务建立群组,即时IM功能可以帮助团队成员之间实时沟通,在任务卡片中添加评论、附件、提醒等,促进团队快速协作,提高团队工作效率。
-
-
-
-
- 02
-
-
- 消息必达沟通无阻碍
-
-
- 消息支持查看已读未读,未读消息通过官方邮件通知对方,高效传达。
-
-
-
-
- 03
-
-
- 云端同步查阅历史信息不受限
-
-
- 信息多端同步,不丢失。新员工加入组织,支持查看聊天历史消息,无缝融入团队。
-
-
-
-
- 04
-
-
- 随时随地参会
-
-
- 使用沟通群组视频会议,项目人员随时随地参会,提升线上会议便捷性,保证会议全程安全可控,有序进行。
-
-
-
-
-
-
-
-
-
-
-
- 01
-
-
- 聚焦沟通,高效交流
-
-
- 针对项目和任务建立群组,即时IM功能可以帮助团队成员之间实时沟通,在任务卡片中添加评论、附件、提醒等,促进团队快速协作,提高团队工作效率。
-
-
-
-
- 02
-
-
- 消息必达沟通无阻碍
-
-
- 消息支持查看已读未读,未读消息通过官方邮件通知对方,高效传达。
-
-
-
-
- 03
-
-
- 云端同步查阅历史信息不受限
-
-
- 信息多端同步,不丢失。新员工加入组织,支持查看聊天历史消息,无缝融入团队。
-
-
-
-
- 04
-
-
- 随时随地参会
-
-
- 使用沟通群组视频会议,项目人员随时随地参会,提升线上会议便捷性,保证会议全程安全可控,有序进行。
-
-
-
-
-
-
-
-
-
-
-
- 01
-
-
- 多样式管理模版
-
-
- 模版满足多种团队协作场景,同时支持自定义模版,满足团队个性化场景管理需求,可直观的查看项目的进展情况,团队协作更方便。
-
-
-
-
- 02
-
-
- 项目化办公,行动可视化
-
-
- 使用看板、表格、列表等多种视图让整体项目一目了然;成员可对任务灵活筛选、排序和分组,让要事优先,并保持专注。
-
-
-
-
- 03
-
-
- 动态管理,实时监控
-
-
- 实时变更项目动态,具体任务变更情况记录提醒,以便团队把控项目整体进程,制定相应计划。
-
-
-
-
- 04
-
-
- 关联文件一键归档
-
-
- 项目及相关任务文件自动归档储存,便于之后查阅使用。
-
-
-
-
-
-
-
-
-
-
-
- 01
-
-
- 多样式管理模版
-
-
- 模版满足多种团队协作场景,同时支持自定义模版,满足团队个性化场景管理需求,可直观的查看项目的进展情况,团队协作更方便。
-
-
-
-
- 02
-
-
- 项目化办公,行动可视化
-
-
- 使用看板、表格、列表等多种视图让整体项目一目了然;成员可对任务灵活筛选、排序和分组,让要事优先,并保持专注。
-
-
-
-
- 03
-
-
- 动态管理,实时监控
-
-
- 实时变更项目动态,具体任务变更情况记录提醒,以便团队把控项目整体进程,制定相应计划。
-
-
-
-
- 04
-
-
- 关联文件一键归档
-
-
- 项目及相关任务文件自动归档储存,便于之后查阅使用。
-
-
-
-
-
-
-
-
-
-
-
- 01
-
-
- 全面洞悉任务数据
-
-
- 任务仪表盘内展示任务状态分类统计,便于个人掌握任务进度,合理安排和规划工作,提高工作效率。
-
-
-
-
-
-
-
-
-
-
-
-
- 01
-
-
- 精准掌握时间进度
-
-
- 展现各项工作的日程排期,让工作任务一目了然,更好的平衡工作和生活。
-
-
-
-
- 02
-
-
- 多款日历视图
-
-
- 提供月/周/日等多款日历视图,便捷切换;支持按使用目的创建多个日历,自定义可见范围和颜色标识,让日程分类展示。
-
-
-
-
-
-
-
-
-
-
-
-
- 01
-
-
- 智能提示,让科技贴近生活
-
-
- 智能机器人可对员工日常签到打卡、任务提醒、推送最新咨询消息等进行服务,帮用户实现有效的工作进度管理及时间规划。
-
-
-
-
- 02
-
-
- 人工智能,实现与AI实时交流
-
-
- 聪明的小海豚,基于人工智能技术的语言处理工具,能够通过学习和理解人类的语言来进行对话,实时交流,全面掌握各种文字信息,极大提高工作的便捷性。
-
-
-
-
-
-
-
-
-
-
-
-
- 01
-
-
- 全面提升层级化组织效能
-
-
- 管理人员可在后台设置公司人员架构,形成完整团队形态,便于对项目和相关任务进行分级协同管理。
-
-
-
-
- 02
-
-
- 多功能协助企业管理团队
-
-
- 提供日常工作报告编辑汇总,项目及任务数据汇总统计,多种功能协助企业管理团队和项目,提高公司管理效率和管理水平。
-
-
-
-
-
-
-
-
-
-
-
-
- 01
-
-
- 掌控加密密钥,保障安全可靠
-
-
- 使用端到端加密技术,确保用户的数据只能由他们自己解密。这意味着即使黑客入侵了DooTask的服务器,也无法访问用户的数据。
-
-
-
-
- 02
-
-
- 数据分类加密,实现安全同步
-
-
- 使用分类加密技术,用户可以在多个设备间同步其任务和文件,不必担心数据被窃取或篡改。
-
-
-
-
-
-
-
-
-
-
-
-
- 01
-
-
- 多平台应用
-
-
- 多平台应用支持,随时随地追踪项目进度,同时让你在工作中每一个步骤都能拥有更高效愉悦的体验。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 支持
-
-
-
-
-
- 下载中心
-
-
- 帮助中心
-
-
- 隐私政策
-
-
- API 文档
-
-
-
-
-
-
-
-
- 主题
-
-
-
-
-
- Light
-
-
- Dark
-
-
-
-
- 语言
-
-
-
-
-
- 简体中文
-
-
- English
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 组织管理
-
-
- 统一管理内部和外部工作,实时查看统计数据,透明的目标,可见的进展,可控的绩效
-
-
-
-
-
-
-
-
- 考勤数据可视化分析
-
-
- 统计每个团队成员的出勤率、迟到次数、早退次数、加班时长等相关数据,并生成可视化的统计图表。通过这些数据和图表,企业管理层可以深入了解团队成员的工作状况和工作效率,为后续的人事安排和绩效考核提供参考依据。
-
-
-
-
-
-
-
-
-
顺利打卡上班
-
-
- 出勤签到
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/public/site/zh/sideNav.html b/public/site/zh/sideNav.html
deleted file mode 100644
index 8739669cd..000000000
--- a/public/site/zh/sideNav.html
+++ /dev/null
@@ -1,58 +0,0 @@
-
-
-
-
- DooTask - 最受欢迎的开源项目协助工具
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/site/zh/solutions.html b/public/site/zh/solutions.html
deleted file mode 100644
index f6fa26636..000000000
--- a/public/site/zh/solutions.html
+++ /dev/null
@@ -1,536 +0,0 @@
-
-
-
-
-
- 解决方案 - DooTask
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 帮助您更好地进行协作
-
-
- DooTask提供了一系列基于不同场景的解决方案,以便您可以快速开始与您的团队或部门合作
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 支持
-
-
-
-
-
- 下载中心
-
-
- 帮助中心
-
-
- 隐私政策
-
-
- API 文档
-
-
-
-
-
-
-
-
- 主题
-
-
-
-
-
- Light
-
-
- Dark
-
-
-
-
- 语言
-
-
-
-
-
- 简体中文
-
-
- English
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 场景应用
-
-
-
- 该产品支持各种应用场景,帮助团队协作
-
-
-
-
-
-
-
-
-
- 项目管理
-
-
- 支持多种项目管理模式,如敏捷开发、水晶计划、看板等,适用于各种规模和类型的项目管理。用户可以使用DooTask里的项目管理工具,例如任务分配、进度跟踪、资源分配等来管理整个项目。
-
-
-
-
-
-
-
- 团队协作
-
-
- DooTask的丰富实用的工具可以方便团队成员之间的沟通和协作,提高工作效率。例如,团队成员可以使用DooTask里的文档协作工具、在线思维导图、流程图等工具进行协作。
-
-
-
-
-
-
-
- 数据安全保护
-
-
- DooTask在消息功能上使用非对称加密技术,确保用户的信息得到最大程度的保护。此外,它还提供了强大的权限管理系统,能够根据不同用户的角色和职责,灵活地设置他们在项目管理中的权限和操作范围。
-
-
-
-
-
-
-
- 自由定制
-
-
- DooTask是一款完全开源的工具,用户可以自由修改和定制,避免了商业软件订阅费用带来的额外成本。
-
-
-
-
-
-
-
-
-
团队运营
-
-
-
-
- 公司管理
-
-
- 帮助企业对其公司目标,将目标、关键结果与个人工作连接,共同推动战略落地、目标达成;通过协同创作,共享企业各项工作的进度、完成状态、日程安排,促进信息流动,让全员获取项目关键信息,及时跟进,推动跨部门协作。
-
-
-
-
-
- 产品管理
-
-
- 自定义产品研发过程的工作流程,在不同阶段把任务分派不同角色,推动产品研发进程;
- 各完成项目及任务历史资料统一归档,方便随时调用或展开讨论,形成知识沉淀到复用的闭环。
-
-
-
-
-
- 人事行政
-
-
- 通过数据可视化统计报表获取多维度企业数据,全面了解员工表现,让绩效评价更客观、公正;使用公告发布通知,安排公司活动,传递企业决策,便于塑造企业文化,让员工更有参与感。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/resources/assets/js/pages/index.vue b/resources/assets/js/pages/index.vue
index 75ca35859..1ff363ba3 100644
--- a/resources/assets/js/pages/index.vue
+++ b/resources/assets/js/pages/index.vue
@@ -37,30 +37,6 @@ export default {
methods: {
start() {
- if (this.$isSoftware) {
- this.goNext()
- return;
- }
- //
- this.$store.dispatch("showSpinner", 1000)
- this.$store.dispatch("needHome").then(_ => {
- this.goIndex();
- }).catch(_ => {
- this.goNext();
- }).finally(_ => {
- this.$store.dispatch("hiddenSpinner")
- });
- },
-
- goIndex() {
- if (languageName === "zh" || languageName === "zh-CHT") {
- window.location.href = $A.mainUrl("site/zh/index.html")
- } else {
- window.location.href = $A.mainUrl("site/en/index.html")
- }
- },
-
- goNext() {
if (this.userId > 0) {
this.goForward({name: 'manage-dashboard'}, true);
} else {
diff --git a/resources/assets/js/pages/login.vue b/resources/assets/js/pages/login.vue
index 8c4dde506..183162c27 100644
--- a/resources/assets/js/pages/login.vue
+++ b/resources/assets/js/pages/login.vue
@@ -2,7 +2,7 @@
-
+
@@ -196,8 +196,6 @@ export default {
code: '',
invite: '',
- needStartHome: false,
-
needInvite: false,
privacyShow: false,
@@ -228,7 +226,6 @@ export default {
this.loginType = this.$route.query.type === 'reg' ? 'reg' : 'login'
//
this.getDemoAccount();
- this.getNeedStartHome();
},
deactivated() {
@@ -302,12 +299,6 @@ export default {
},
methods: {
- goHome() {
- if (this.needStartHome) {
- this.goForward('index');
- }
- },
-
setTheme(mode) {
this.$store.dispatch("setTheme", mode)
},
@@ -328,17 +319,6 @@ export default {
});
},
- getNeedStartHome() {
- if (this.isNotServer()) {
- return
- }
- this.$store.dispatch("needHome").then(_ => {
- this.needStartHome = true
- }).catch(_ => {
- this.needStartHome = false
- })
- },
-
getNeedInvite() {
this.$store.dispatch("call", {
url: 'users/reg/needinvite',
diff --git a/resources/assets/js/pages/manage.vue b/resources/assets/js/pages/manage.vue
index 96b07ddeb..e166f9a1c 100644
--- a/resources/assets/js/pages/manage.vue
+++ b/resources/assets/js/pages/manage.vue
@@ -451,8 +451,6 @@ export default {
operateVisible: false,
operateItem: {},
- needStartHome: false,
-
complaintShow: false,
approveDetails: {id: 0},
@@ -477,12 +475,6 @@ export default {
this.$store.dispatch("getTaskPriority", 1000)
this.$store.dispatch("getReportUnread", 1000)
this.$store.dispatch("getApproveUnread", 1000)
- //
- this.$store.dispatch("needHome").then(_ => {
- this.needStartHome = true
- }).catch(_ => {
- this.needStartHome = false
- })
},
beforeDestroy() {
@@ -619,7 +611,7 @@ export default {
},
menu() {
- const {userIsAdmin, needStartHome} = this;
+ const {userIsAdmin} = this;
const array = [
{path: 'taskBrowse', name: '最近打开的任务'}
];
@@ -646,18 +638,10 @@ export default {
{path: 'archivedProject', name: '已归档的项目'},
])
}
- if (needStartHome) {
- array.push(...[
- {path: 'goHome', name: '打开首页', divided: true},
- {path: 'clearCache', name: '清除缓存'},
- {path: 'logout', name: '退出登录', style: {color: '#f40'}}
- ])
- } else {
- array.push(...[
- {path: 'clearCache', name: '清除缓存', divided: true},
- {path: 'logout', name: '退出登录', style: {color: '#f40'}}
- ])
- }
+ array.push(...[
+ {path: 'clearCache', name: '清除缓存', divided: true},
+ {path: 'logout', name: '退出登录', style: {color: '#f40'}}
+ ])
return array
},
@@ -810,11 +794,6 @@ export default {
$A.reloadUrl()
});
return;
- case 'goHome':
- if (this.needStartHome) {
- this.goForward('index');
- }
- return;
case 'approve':
if (this.menu.findIndex((m) => m.path == path) > -1) {
this.goForward({name: 'manage-approve'});
diff --git a/resources/assets/js/pages/manage/setting/components/SystemSetting.vue b/resources/assets/js/pages/manage/setting/components/SystemSetting.vue
index ea6634fd5..c3eed78ce 100644
--- a/resources/assets/js/pages/manage/setting/components/SystemSetting.vue
+++ b/resources/assets/js/pages/manage/setting/components/SystemSetting.vue
@@ -289,18 +289,6 @@
-