Merge branch 'v2-dev' into v2_admin_mode

This commit is contained in:
xiaojunnuo
2026-02-06 16:51:57 +08:00
39 changed files with 198 additions and 66 deletions
+12
View File
@@ -3,6 +3,18 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.38.7](https://github.com/certd/certd/compare/v1.38.6...v1.38.7) (2026-02-05)
### Bug Fixes
* 修复有域名记录时,域名输入框无法关闭的bug ([54c8217](https://github.com/certd/certd/commit/54c8217808453b121abf646b004596f28932509f))
### Performance Improvements
* eab从更多参数中挪到外面 ([5ea4f46](https://github.com/certd/certd/commit/5ea4f46de7ae403a7a16e9488dc1d9c7523d019a))
* 第三方登录支持Microsoft ([beb7a4c](https://github.com/certd/certd/commit/beb7a4c99277262bb9681c5594cfcd3e36c52074))
* 优化zerossl申请证书稳定性 ([4d86fb3](https://github.com/certd/certd/commit/4d86fb319b81dbf6fa6485982105725b1b066593))
## [1.38.6](https://github.com/certd/certd/compare/v1.38.5...v1.38.6) (2026-02-04)
### Bug Fixes
+12
View File
@@ -3,6 +3,18 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.38.7](https://github.com/certd/certd/compare/v1.38.6...v1.38.7) (2026-02-05)
### Bug Fixes
* 修复有域名记录时,域名输入框无法关闭的bug ([54c8217](https://github.com/certd/certd/commit/54c8217808453b121abf646b004596f28932509f))
### Performance Improvements
* eab从更多参数中挪到外面 ([5ea4f46](https://github.com/certd/certd/commit/5ea4f46de7ae403a7a16e9488dc1d9c7523d019a))
* 第三方登录支持Microsoft ([beb7a4c](https://github.com/certd/certd/commit/beb7a4c99277262bb9681c5594cfcd3e36c52074))
* 优化zerossl申请证书稳定性 ([4d86fb3](https://github.com/certd/certd/commit/4d86fb319b81dbf6fa6485982105725b1b066593))
## [1.38.6](https://github.com/certd/certd/compare/v1.38.5...v1.38.6) (2026-02-04)
### Bug Fixes
+1 -1
View File
@@ -9,5 +9,5 @@
}
},
"npmClient": "pnpm",
"version": "1.38.6"
"version": "1.38.7"
}
+6
View File
@@ -3,6 +3,12 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.38.7](https://github.com/publishlab/node-acme-client/compare/v1.38.6...v1.38.7) (2026-02-05)
### Performance Improvements
* 优化zerossl申请证书稳定性 ([4d86fb3](https://github.com/publishlab/node-acme-client/commit/4d86fb319b81dbf6fa6485982105725b1b066593))
## [1.38.6](https://github.com/publishlab/node-acme-client/compare/v1.38.5...v1.38.6) (2026-02-04)
**Note:** Version bump only for package @certd/acme-client
+3 -3
View File
@@ -3,7 +3,7 @@
"description": "Simple and unopinionated ACME client",
"private": false,
"author": "nmorsman",
"version": "1.38.6",
"version": "1.38.7",
"type": "module",
"module": "scr/index.js",
"main": "src/index.js",
@@ -18,7 +18,7 @@
"types"
],
"dependencies": {
"@certd/basic": "^1.38.6",
"@certd/basic": "^1.38.7",
"@peculiar/x509": "^1.11.0",
"asn1js": "^3.0.5",
"axios": "^1.9.0",
@@ -70,5 +70,5 @@
"bugs": {
"url": "https://github.com/publishlab/node-acme-client/issues"
},
"gitHead": "1368259a1e780486204e9d814c88a741a373dcca"
"gitHead": "29d37075dd600fa4898c5e38611e09db522e32fc"
}
+4 -1
View File
@@ -601,7 +601,10 @@ class AcmeClient {
};
this.log(`[${d}] Waiting for valid status (等待valid状态): ${item.url}`, JSON.stringify(this.backoffOpts));
return util.retry(verifyFn, this.backoffOpts);
const log = (...args)=>{
this.logger.info(...args)
}
return util.retry(verifyFn, this.backoffOpts,log);
}
/**
+8 -2
View File
@@ -52,11 +52,17 @@ async function retryPromise(fn, attempts, backoff, logger = log) {
let aborted = false;
try {
const data = await fn(() => { aborted = true; });
const setAbort = () => { aborted = true; }
const data = await fn(setAbort);
return data;
}
catch (e) {
if (aborted || ((backoff.attempts + 1) >= attempts)) {
if (aborted){
logger(`用户取消重试`);
throw e;
}
if ( ((backoff.attempts + 1) >= attempts)) {
logger(`重试次数超过${attempts}`);
throw e;
}
+4
View File
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.38.7](https://github.com/certd/certd/compare/v1.38.6...v1.38.7) (2026-02-05)
**Note:** Version bump only for package @certd/basic
## [1.38.6](https://github.com/certd/certd/compare/v1.38.5...v1.38.6) (2026-02-04)
**Note:** Version bump only for package @certd/basic
+1 -1
View File
@@ -1 +1 @@
01:13
16:26
+2 -2
View File
@@ -1,7 +1,7 @@
{
"name": "@certd/basic",
"private": false,
"version": "1.38.6",
"version": "1.38.7",
"type": "module",
"main": "./dist/index.js",
"module": "./dist/index.js",
@@ -47,5 +47,5 @@
"tslib": "^2.8.1",
"typescript": "^5.4.2"
},
"gitHead": "1368259a1e780486204e9d814c88a741a373dcca"
"gitHead": "29d37075dd600fa4898c5e38611e09db522e32fc"
}
@@ -77,6 +77,8 @@ export type ILogger = {
fatal(message: any, ...args: any[]): void;
mark(message: any, ...args: any[]): void;
addSecret(secret: string): void;
};
const locale = Intl.DateTimeFormat().resolvedOptions().locale;
@@ -106,10 +108,14 @@ export class PipelineLogger implements ILogger {
constructor(name: string, write: (text: string) => void) {
this.customWriter = write;
//@ts-ignore
this.logger = log4js.getLogger(name);
}
addSecret(secret: string) {
if (!secret) {
return;
}
this._secrets.push(secret);
}
+4
View File
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.38.7](https://github.com/certd/certd/compare/v1.38.6...v1.38.7) (2026-02-05)
**Note:** Version bump only for package @certd/pipeline
## [1.38.6](https://github.com/certd/certd/compare/v1.38.5...v1.38.6) (2026-02-04)
**Note:** Version bump only for package @certd/pipeline
+4 -4
View File
@@ -1,7 +1,7 @@
{
"name": "@certd/pipeline",
"private": false,
"version": "1.38.6",
"version": "1.38.7",
"type": "module",
"main": "./dist/index.js",
"module": "./dist/index.js",
@@ -18,8 +18,8 @@
"compile": "tsc --skipLibCheck --watch"
},
"dependencies": {
"@certd/basic": "^1.38.6",
"@certd/plus-core": "^1.38.6",
"@certd/basic": "^1.38.7",
"@certd/plus-core": "^1.38.7",
"dayjs": "^1.11.7",
"lodash-es": "^4.17.21",
"reflect-metadata": "^0.1.13"
@@ -45,5 +45,5 @@
"tslib": "^2.8.1",
"typescript": "^5.4.2"
},
"gitHead": "1368259a1e780486204e9d814c88a741a373dcca"
"gitHead": "29d37075dd600fa4898c5e38611e09db522e32fc"
}
+4
View File
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.38.7](https://github.com/certd/certd/compare/v1.38.6...v1.38.7) (2026-02-05)
**Note:** Version bump only for package @certd/lib-huawei
## [1.38.6](https://github.com/certd/certd/compare/v1.38.5...v1.38.6) (2026-02-04)
**Note:** Version bump only for package @certd/lib-huawei
+2 -2
View File
@@ -1,7 +1,7 @@
{
"name": "@certd/lib-huawei",
"private": false,
"version": "1.38.6",
"version": "1.38.7",
"main": "./dist/bundle.js",
"module": "./dist/bundle.js",
"types": "./dist/d/index.d.ts",
@@ -24,5 +24,5 @@
"prettier": "^2.8.8",
"tslib": "^2.8.1"
},
"gitHead": "1368259a1e780486204e9d814c88a741a373dcca"
"gitHead": "29d37075dd600fa4898c5e38611e09db522e32fc"
}
+4
View File
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.38.7](https://github.com/certd/certd/compare/v1.38.6...v1.38.7) (2026-02-05)
**Note:** Version bump only for package @certd/lib-iframe
## [1.38.6](https://github.com/certd/certd/compare/v1.38.5...v1.38.6) (2026-02-04)
**Note:** Version bump only for package @certd/lib-iframe
+2 -2
View File
@@ -1,7 +1,7 @@
{
"name": "@certd/lib-iframe",
"private": false,
"version": "1.38.6",
"version": "1.38.7",
"type": "module",
"main": "./dist/index.js",
"module": "./dist/index.js",
@@ -31,5 +31,5 @@
"tslib": "^2.8.1",
"typescript": "^5.4.2"
},
"gitHead": "1368259a1e780486204e9d814c88a741a373dcca"
"gitHead": "29d37075dd600fa4898c5e38611e09db522e32fc"
}
+4
View File
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.38.7](https://github.com/certd/certd/compare/v1.38.6...v1.38.7) (2026-02-05)
**Note:** Version bump only for package @certd/jdcloud
## [1.38.6](https://github.com/certd/certd/compare/v1.38.5...v1.38.6) (2026-02-04)
**Note:** Version bump only for package @certd/jdcloud
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@certd/jdcloud",
"version": "1.38.6",
"version": "1.38.7",
"description": "jdcloud openApi sdk",
"main": "./dist/bundle.js",
"module": "./dist/bundle.js",
@@ -56,5 +56,5 @@
"fetch"
]
},
"gitHead": "1368259a1e780486204e9d814c88a741a373dcca"
"gitHead": "29d37075dd600fa4898c5e38611e09db522e32fc"
}
+4
View File
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.38.7](https://github.com/certd/certd/compare/v1.38.6...v1.38.7) (2026-02-05)
**Note:** Version bump only for package @certd/lib-k8s
## [1.38.6](https://github.com/certd/certd/compare/v1.38.5...v1.38.6) (2026-02-04)
**Note:** Version bump only for package @certd/lib-k8s
+3 -3
View File
@@ -1,7 +1,7 @@
{
"name": "@certd/lib-k8s",
"private": false,
"version": "1.38.6",
"version": "1.38.7",
"type": "module",
"main": "./dist/index.js",
"module": "./dist/index.js",
@@ -17,7 +17,7 @@
"pub": "npm publish"
},
"dependencies": {
"@certd/basic": "^1.38.6",
"@certd/basic": "^1.38.7",
"@kubernetes/client-node": "0.21.0"
},
"devDependencies": {
@@ -32,5 +32,5 @@
"tslib": "^2.8.1",
"typescript": "^5.4.2"
},
"gitHead": "1368259a1e780486204e9d814c88a741a373dcca"
"gitHead": "29d37075dd600fa4898c5e38611e09db522e32fc"
}
+4
View File
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.38.7](https://github.com/certd/certd/compare/v1.38.6...v1.38.7) (2026-02-05)
**Note:** Version bump only for package @certd/lib-server
## [1.38.6](https://github.com/certd/certd/compare/v1.38.5...v1.38.6) (2026-02-04)
**Note:** Version bump only for package @certd/lib-server
+7 -7
View File
@@ -1,6 +1,6 @@
{
"name": "@certd/lib-server",
"version": "1.38.6",
"version": "1.38.7",
"description": "midway with flyway, sql upgrade way ",
"private": false,
"type": "module",
@@ -28,11 +28,11 @@
],
"license": "AGPL",
"dependencies": {
"@certd/acme-client": "^1.38.6",
"@certd/basic": "^1.38.6",
"@certd/pipeline": "^1.38.6",
"@certd/plugin-lib": "^1.38.6",
"@certd/plus-core": "^1.38.6",
"@certd/acme-client": "^1.38.7",
"@certd/basic": "^1.38.7",
"@certd/pipeline": "^1.38.7",
"@certd/plugin-lib": "^1.38.7",
"@certd/plus-core": "^1.38.7",
"@midwayjs/cache": "3.14.0",
"@midwayjs/core": "3.20.11",
"@midwayjs/i18n": "3.20.13",
@@ -64,5 +64,5 @@
"typeorm": "^0.3.11",
"typescript": "^5.4.2"
},
"gitHead": "1368259a1e780486204e9d814c88a741a373dcca"
"gitHead": "29d37075dd600fa4898c5e38611e09db522e32fc"
}
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.38.7](https://github.com/certd/certd/compare/v1.38.6...v1.38.7) (2026-02-05)
**Note:** Version bump only for package @certd/midway-flyway-js
## [1.38.6](https://github.com/certd/certd/compare/v1.38.5...v1.38.6) (2026-02-04)
**Note:** Version bump only for package @certd/midway-flyway-js
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@certd/midway-flyway-js",
"version": "1.38.6",
"version": "1.38.7",
"description": "midway with flyway, sql upgrade way ",
"private": false,
"type": "module",
@@ -46,5 +46,5 @@
"typeorm": "^0.3.11",
"typescript": "^5.4.2"
},
"gitHead": "1368259a1e780486204e9d814c88a741a373dcca"
"gitHead": "29d37075dd600fa4898c5e38611e09db522e32fc"
}
@@ -3,6 +3,12 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.38.7](https://github.com/certd/certd/compare/v1.38.6...v1.38.7) (2026-02-05)
### Performance Improvements
* eab从更多参数中挪到外面 ([5ea4f46](https://github.com/certd/certd/commit/5ea4f46de7ae403a7a16e9488dc1d9c7523d019a))
## [1.38.6](https://github.com/certd/certd/compare/v1.38.5...v1.38.6) (2026-02-04)
**Note:** Version bump only for package @certd/plugin-cert
+6 -6
View File
@@ -1,7 +1,7 @@
{
"name": "@certd/plugin-cert",
"private": false,
"version": "1.38.6",
"version": "1.38.7",
"type": "module",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
@@ -17,10 +17,10 @@
"compile": "tsc --skipLibCheck --watch"
},
"dependencies": {
"@certd/acme-client": "^1.38.6",
"@certd/basic": "^1.38.6",
"@certd/pipeline": "^1.38.6",
"@certd/plugin-lib": "^1.38.6",
"@certd/acme-client": "^1.38.7",
"@certd/basic": "^1.38.7",
"@certd/pipeline": "^1.38.7",
"@certd/plugin-lib": "^1.38.7",
"psl": "^1.9.0",
"punycode.js": "^2.3.1"
},
@@ -38,5 +38,5 @@
"tslib": "^2.8.1",
"typescript": "^5.4.2"
},
"gitHead": "1368259a1e780486204e9d814c88a741a373dcca"
"gitHead": "29d37075dd600fa4898c5e38611e09db522e32fc"
}
+4
View File
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.38.7](https://github.com/certd/certd/compare/v1.38.6...v1.38.7) (2026-02-05)
**Note:** Version bump only for package @certd/plugin-lib
## [1.38.6](https://github.com/certd/certd/compare/v1.38.5...v1.38.6) (2026-02-04)
**Note:** Version bump only for package @certd/plugin-lib
+6 -6
View File
@@ -1,7 +1,7 @@
{
"name": "@certd/plugin-lib",
"private": false,
"version": "1.38.6",
"version": "1.38.7",
"type": "module",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
@@ -22,10 +22,10 @@
"@alicloud/pop-core": "^1.7.10",
"@alicloud/tea-util": "^1.4.11",
"@aws-sdk/client-s3": "^3.964.0",
"@certd/acme-client": "^1.38.6",
"@certd/basic": "^1.38.6",
"@certd/pipeline": "^1.38.6",
"@certd/plus-core": "^1.38.6",
"@certd/acme-client": "^1.38.7",
"@certd/basic": "^1.38.7",
"@certd/pipeline": "^1.38.7",
"@certd/plus-core": "^1.38.7",
"@kubernetes/client-node": "0.21.0",
"ali-oss": "^6.22.0",
"basic-ftp": "^5.0.5",
@@ -57,5 +57,5 @@
"tslib": "^2.8.1",
"typescript": "^5.4.2"
},
"gitHead": "1368259a1e780486204e9d814c88a741a373dcca"
"gitHead": "29d37075dd600fa4898c5e38611e09db522e32fc"
}
+10
View File
@@ -3,6 +3,16 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.38.7](https://github.com/certd/certd/compare/v1.38.6...v1.38.7) (2026-02-05)
### Bug Fixes
* 修复有域名记录时,域名输入框无法关闭的bug ([54c8217](https://github.com/certd/certd/commit/54c8217808453b121abf646b004596f28932509f))
### Performance Improvements
* eab从更多参数中挪到外面 ([5ea4f46](https://github.com/certd/certd/commit/5ea4f46de7ae403a7a16e9488dc1d9c7523d019a))
## [1.38.6](https://github.com/certd/certd/compare/v1.38.5...v1.38.6) (2026-02-04)
### Performance Improvements
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@certd/ui-client",
"version": "1.38.6",
"version": "1.38.7",
"private": true,
"scripts": {
"dev": "vite --open",
@@ -106,8 +106,8 @@
"zod-defaults": "^0.1.3"
},
"devDependencies": {
"@certd/lib-iframe": "^1.38.6",
"@certd/pipeline": "^1.38.6",
"@certd/lib-iframe": "^1.38.7",
"@certd/pipeline": "^1.38.7",
"@rollup/plugin-commonjs": "^25.0.7",
"@rollup/plugin-node-resolve": "^15.2.3",
"@types/chai": "^4.3.12",
+8
View File
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.38.7](https://github.com/certd/certd/compare/v1.38.6...v1.38.7) (2026-02-05)
### Performance Improvements
* eab从更多参数中挪到外面 ([5ea4f46](https://github.com/certd/certd/commit/5ea4f46de7ae403a7a16e9488dc1d9c7523d019a))
* 第三方登录支持Microsoft ([beb7a4c](https://github.com/certd/certd/commit/beb7a4c99277262bb9681c5594cfcd3e36c52074))
* 优化zerossl申请证书稳定性 ([4d86fb3](https://github.com/certd/certd/commit/4d86fb319b81dbf6fa6485982105725b1b066593))
## [1.38.6](https://github.com/certd/certd/compare/v1.38.5...v1.38.6) (2026-02-04)
### Bug Fixes
@@ -0,0 +1,26 @@
addonType: oauth
name: microsoft
title: Microsoft认证
desc: Microsoft OAuth2登录
icon: simple-icons:microsoft
showTest: false
input:
clientId:
title: ClientId
helper: '[Azure Portal](https://portal.azure.com/)创建应用后获取'
required: true
clientSecretKey:
title: ClientSecretKey
component:
placeholder: ClientSecretKey / appSecretKey
required: true
tenantId:
title: TenantId
helper: 租户ID,留空使用/common端点(需要应用配置为多租户)
component:
placeholder: common 或 租户ID
value: common
required: false
pluginType: addon
type: builtIn
scriptFilePath: /plugins/plugin-oauth/oauth2/plugin-microsoft.js
@@ -215,7 +215,7 @@ input:
component:
name: access-selector
type: eab
maybeNeed: true
maybeNeed: false
required: false
helper: >-
需要提供EAB授权
@@ -246,7 +246,7 @@ input:
component:
name: access-selector
type: google
maybeNeed: true
maybeNeed: false
required: false
helper: >-
google服务账号授权与EAB授权选填其中一个,[服务账号授权获取方法](https://certd.docmirror.cn/guide/use/google/)
+14 -14
View File
@@ -1,6 +1,6 @@
{
"name": "@certd/ui-server",
"version": "1.38.6",
"version": "1.38.7",
"description": "fast-server base midway",
"private": true,
"type": "module",
@@ -48,20 +48,20 @@
"@aws-sdk/client-iam": "^3.964.0",
"@aws-sdk/client-route-53": "^3.964.0",
"@aws-sdk/client-s3": "^3.964.0",
"@certd/acme-client": "^1.38.6",
"@certd/basic": "^1.38.6",
"@certd/commercial-core": "^1.38.6",
"@certd/acme-client": "^1.38.7",
"@certd/basic": "^1.38.7",
"@certd/commercial-core": "^1.38.7",
"@certd/cv4pve-api-javascript": "^8.4.2",
"@certd/jdcloud": "^1.38.6",
"@certd/lib-huawei": "^1.38.6",
"@certd/lib-k8s": "^1.38.6",
"@certd/lib-server": "^1.38.6",
"@certd/midway-flyway-js": "^1.38.6",
"@certd/pipeline": "^1.38.6",
"@certd/plugin-cert": "^1.38.6",
"@certd/plugin-lib": "^1.38.6",
"@certd/plugin-plus": "^1.38.6",
"@certd/plus-core": "^1.38.6",
"@certd/jdcloud": "^1.38.7",
"@certd/lib-huawei": "^1.38.7",
"@certd/lib-k8s": "^1.38.7",
"@certd/lib-server": "^1.38.7",
"@certd/midway-flyway-js": "^1.38.7",
"@certd/pipeline": "^1.38.7",
"@certd/plugin-cert": "^1.38.7",
"@certd/plugin-lib": "^1.38.7",
"@certd/plugin-plus": "^1.38.7",
"@certd/plus-core": "^1.38.7",
"@google-cloud/publicca": "^1.3.0",
"@huaweicloud/huaweicloud-sdk-cdn": "^3.1.185",
"@huaweicloud/huaweicloud-sdk-core": "^3.1.185",
@@ -147,7 +147,7 @@ export class AcmeService {
externalAccountBinding: this.eab,
backoffAttempts: this.options.maxCheckRetryCount || 20,
backoffMin: 5000,
backoffMax: 1000*1000,
backoffMax: 30*1000,
urlMapping,
signal: this.options.signal,
logger: this.logger,
@@ -60,6 +60,7 @@ export abstract class CertApplyBasePlugin extends CertApplyBaseConvertPlugin {
abstract doCertApply(): Promise<CertReader>;
async execute(): Promise<string | void> {
this.logger.addSecret(this.pfxPassword);
const oldCert = await this.condition();
if (oldCert != null) {
await this.output(oldCert, false);
+1 -1
View File
@@ -1 +1 @@
01:18
16:31
+1 -1
View File
@@ -1 +1 @@
01:33
17:12